From 78e196275f2ac953c460c8bbe48b719c6298083e Mon Sep 17 00:00:00 2001 From: mvgijssel <6029816+mvgijssel@users.noreply.github.com> Date: Thu, 3 Feb 2022 13:57:28 +0100 Subject: [PATCH] Consider flush_all_streams for schema updates --- target_snowflake/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target_snowflake/__init__.py b/target_snowflake/__init__.py index 62caca8e..1abbaebe 100644 --- a/target_snowflake/__init__.py +++ b/target_snowflake/__init__.py @@ -240,13 +240,19 @@ def persist_lines(config, lines, table_cache=None, file_format_type: FileFormatT # if same stream has been encountered again, it means the schema might have been altered # so previous records need to be flushed if row_count.get(stream, 0) > 0: + # flush all streams, delete records if needed, reset counts and then emit current state + if config.get('flush_all_streams'): + filter_streams = None + else: + filter_streams = [stream] flushed_state = flush_streams(records_to_load, row_count, stream_to_sync, config, state, flushed_state, - archive_load_files_data) + archive_load_files_data, + filter_streams=filter_streams) # emit latest encountered state emit_state(flushed_state)