diff --git a/data_diff/databases/_connect.py b/data_diff/databases/_connect.py index 31ed9329..7dc11e09 100644 --- a/data_diff/databases/_connect.py +++ b/data_diff/databases/_connect.py @@ -298,7 +298,7 @@ def _connection_created(self, db): try: db.query(db.dialect.set_timezone_to_utc()) except NotImplementedError: - logging.debug( + logging.warning( f"Database '{db}' does not allow setting timezone. We recommend making sure it's set to 'UTC'." ) return db diff --git a/data_diff/databases/bigquery.py b/data_diff/databases/bigquery.py index d518aa7c..6d13b78c 100644 --- a/data_diff/databases/bigquery.py +++ b/data_diff/databases/bigquery.py @@ -152,7 +152,9 @@ def to_comparable(self, value: str, coltype: ColType) -> str: return super().to_comparable(value, coltype) def set_timezone_to_utc(self) -> str: - raise NotImplementedError() + # BigQuery uses stateless REST jobs; SET @@time_zone only affects a single job, + # not subsequent queries. BigQuery stores timestamps in UTC internally. + raise NotImplementedError("BigQuery uses stateless jobs; session SET has no cross-query effect.") def parse_table_name(self, name: str) -> DbPath: path = parse_table_name(name) diff --git a/data_diff/databases/clickhouse.py b/data_diff/databases/clickhouse.py index d26ca93b..3d042aad 100644 --- a/data_diff/databases/clickhouse.py +++ b/data_diff/databases/clickhouse.py @@ -96,7 +96,7 @@ def parse_type(self, table_path: DbPath, info: RawColumnInfo) -> ColType: # return f"'{str(t)[:19]}'" def set_timezone_to_utc(self) -> str: - raise NotImplementedError() + return "SET session_timezone = 'UTC'" def current_timestamp(self) -> str: return "now()"