Make Satellite HWM safe against outside truncate
tkirschke opened this issue · comments
In All Kinds of Satellites there is a HWM logic applied for incremental runs. This logic checks
WHERE ldts > (SELECT max(ldts) FROM {{ this }})
But for cases, where this table is truncated outside of dbt, SELECT max(ldts)
would return NULL
, and on some databases the comparison ldts > NULL
throws an error.
To avoid this, we need to insert the beginning-of-all-times for cases when max(ldts)
returns NULL
, like this:
WHERE ldts > (SELECT COALESCE(max(ldts), {{ datavault4dbt.beginning_of_all_times() }}) FROM {{ this }})
Thanks to
for pointing out this issue and proposing a solution!
COALESCE(MAX({{ src_ldts }}),{{ datavault4dbt.string_to_timestamp(timestamp_format, beginning_of_all_times) }})