Generate valid GnuCash SQL by not inserting values if there are none.

This commit is contained in:
Chris Berkhout 2021-05-31 18:50:48 +02:00
parent 82c4f45ce0
commit 5fdbb480e7
2 changed files with 5 additions and 3 deletions

View file

@ -66,6 +66,7 @@ class GnuCashSQL(BaseOutput):
) )
values_parts.append(v) values_parts.append(v)
values = ",\n".join(values_parts) values = ",\n".join(values_parts)
values_comment = "" if values_parts else "-- "
if too_big: if too_big:
# https://code.gnucash.org/docs/MAINT/group__Numeric.html # https://code.gnucash.org/docs/MAINT/group__Numeric.html
@ -83,6 +84,7 @@ class GnuCashSQL(BaseOutput):
timestamp=datetime.utcnow().isoformat() + "Z", timestamp=datetime.utcnow().isoformat() + "Z",
base=self._sql_str(base), base=self._sql_str(base),
quote=self._sql_str(quote), quote=self._sql_str(quote),
values_comment=values_comment,
values=values, values=values,
) )

View file

@ -16,9 +16,9 @@ FROM prices p, commodities c
WHERE FALSE; WHERE FALSE;
-- Populate the staging table. -- Populate the staging table.
INSERT INTO new_prices (guid, date, base, quote, source, type, value_num, value_denom) VALUES {values_comment}INSERT INTO new_prices (guid, date, base, quote, source, type, value_num, value_denom) VALUES
{values} {values_comment}{values}
; {values_comment};
-- Get some numbers for the summary. -- Get some numbers for the summary.
CREATE TEMPORARY TABLE summary (description TEXT, num INT); CREATE TEMPORARY TABLE summary (description TEXT, num INT);