From 5fdbb480e7ac0d138e72e5013c72f02c6d7dd801 Mon Sep 17 00:00:00 2001 From: Chris Berkhout Date: Mon, 31 May 2021 18:50:48 +0200 Subject: [PATCH] Generate valid GnuCash SQL by not inserting values if there are none. --- src/pricehist/outputs/gnucashsql.py | 2 ++ src/pricehist/resources/gnucash.sql | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/pricehist/outputs/gnucashsql.py b/src/pricehist/outputs/gnucashsql.py index 173ea4f..005d0ad 100644 --- a/src/pricehist/outputs/gnucashsql.py +++ b/src/pricehist/outputs/gnucashsql.py @@ -66,6 +66,7 @@ class GnuCashSQL(BaseOutput): ) values_parts.append(v) values = ",\n".join(values_parts) + values_comment = "" if values_parts else "-- " if too_big: # https://code.gnucash.org/docs/MAINT/group__Numeric.html @@ -83,6 +84,7 @@ class GnuCashSQL(BaseOutput): timestamp=datetime.utcnow().isoformat() + "Z", base=self._sql_str(base), quote=self._sql_str(quote), + values_comment=values_comment, values=values, ) diff --git a/src/pricehist/resources/gnucash.sql b/src/pricehist/resources/gnucash.sql index a91e084..b9ea5aa 100644 --- a/src/pricehist/resources/gnucash.sql +++ b/src/pricehist/resources/gnucash.sql @@ -16,9 +16,9 @@ FROM prices p, commodities c WHERE FALSE; -- Populate the staging table. -INSERT INTO new_prices (guid, date, base, quote, source, type, value_num, value_denom) VALUES -{values} -; +{values_comment}INSERT INTO new_prices (guid, date, base, quote, source, type, value_num, value_denom) VALUES +{values_comment}{values} +{values_comment}; -- Get some numbers for the summary. CREATE TEMPORARY TABLE summary (description TEXT, num INT);