diff --git a/clients/bigquery/bigquery.go b/clients/bigquery/bigquery.go index e43b3b642..3a13ebae1 100644 --- a/clients/bigquery/bigquery.go +++ b/clients/bigquery/bigquery.go @@ -47,6 +47,10 @@ type Store struct { db.Store } +func (s *Store) DropTable(_ context.Context, _ sql.TableIdentifier) error { + return fmt.Errorf("not supported") +} + func (s *Store) Append(ctx context.Context, tableData *optimization.TableData, useTempTable bool) error { if !useTempTable { return shared.Append(ctx, s, tableData, types.AdditionalSettings{ diff --git a/clients/databricks/store.go b/clients/databricks/store.go index 956d9708c..84a073ed7 100644 --- a/clients/databricks/store.go +++ b/clients/databricks/store.go @@ -32,6 +32,10 @@ type Store struct { configMap *types.DwhToTablesConfigMap } +func (s Store) DropTable(_ context.Context, _ sql.TableIdentifier) error { + return fmt.Errorf("not supported") +} + func (s Store) Merge(ctx context.Context, tableData *optimization.TableData) error { return shared.Merge(ctx, s, tableData, types.MergeOpts{}) } diff --git a/clients/mssql/store.go b/clients/mssql/store.go index 5c173839b..6d14786b1 100644 --- a/clients/mssql/store.go +++ b/clients/mssql/store.go @@ -2,6 +2,7 @@ package mssql import ( "context" + "fmt" "strings" _ "github.com/microsoft/go-mssqldb" @@ -31,6 +32,10 @@ func getSchema(schema string) string { return schema } +func (s *Store) DropTable(_ context.Context, _ sql.TableIdentifier) error { + return fmt.Errorf("not supported") +} + func (s *Store) Dialect() sql.Dialect { return s.dialect() } diff --git a/clients/redshift/redshift.go b/clients/redshift/redshift.go index ccbb57590..8616f0e3c 100644 --- a/clients/redshift/redshift.go +++ b/clients/redshift/redshift.go @@ -27,6 +27,10 @@ type Store struct { db.Store } +func (s *Store) DropTable(_ context.Context, _ sql.TableIdentifier) error { + return fmt.Errorf("not supported") +} + func (s *Store) Append(ctx context.Context, tableData *optimization.TableData, _ bool) error { return shared.Append(ctx, s, tableData, types.AdditionalSettings{}) } diff --git a/clients/snowflake/snowflake.go b/clients/snowflake/snowflake.go index 328bcdaaa..168e90456 100644 --- a/clients/snowflake/snowflake.go +++ b/clients/snowflake/snowflake.go @@ -26,6 +26,10 @@ func (s *Store) IdentifierFor(topicConfig kafkalib.TopicConfig, table string) sq return dialect.NewTableIdentifier(topicConfig.Database, topicConfig.Schema, table) } +func (s *Store) DropTable(_ context.Context, _ sql.TableIdentifier) error { + return fmt.Errorf("not supported") +} + func (s *Store) GetTableConfig(tableID sql.TableIdentifier, dropDeletedColumns bool) (*types.DwhTableConfig, error) { return shared.GetTableCfgArgs{ Dwh: s, diff --git a/lib/destination/dwh.go b/lib/destination/dwh.go index 61df2582b..5729f934e 100644 --- a/lib/destination/dwh.go +++ b/lib/destination/dwh.go @@ -27,6 +27,9 @@ type DataWarehouse interface { // Helper functions for merge GetTableConfig(tableID sqllib.TableIdentifier, dropDeletedColumns bool) (*types.DwhTableConfig, error) PrepareTemporaryTable(ctx context.Context, tableData *optimization.TableData, tableConfig *types.DwhTableConfig, tempTableID sqllib.TableIdentifier, parentTableID sqllib.TableIdentifier, additionalSettings types.AdditionalSettings, createTempTable bool) error + + // Helper function for multi-step merge + DropTable(ctx context.Context, tableID sqllib.TableIdentifier) error } type Baseline interface {