Skip to content

Commit

Permalink
better messaging
Browse files Browse the repository at this point in the history
  • Loading branch information
buremba committed Aug 5, 2024
1 parent 0e2e326 commit 209c835
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion universql/catalog/snow/show_iceberg_tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ def get_table_references(self, cursor: duckdb.DuckDBPyConnection, tables: List[s
result = cur.fetchall()
used_tables = ",".join(set(table.sql() for table in tables))
logging.getLogger("❄️cloud").info(
f"Executed metadata query to get Iceberg table locations for tables {used_tables}")
f"[{self.query_id}] Executed metadata query to get Iceberg table locations for tables {used_tables}")
return {table: SnowflakeShowIcebergTables._get_ref(json.loads(result[0][idx])) for idx, table in
enumerate(tables)}

Expand Down
18 changes: 9 additions & 9 deletions universql/warehouse/duckdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,34 +114,34 @@ def _do_query(self, raw_query: str) -> (str, List, pyarrow.Table):
break
sql = transformed_ast.sql(dialect="duckdb", pretty=True)
planned_duration = time.perf_counter() - start_time
timedelta = datetime.timedelta(seconds=planned_duration)

logger.info("[%s] Re-written for DuckDB as: (%s)\n%s" % (self.token, timedelta, sql))
try:
self.duckdb_emulator.execute(sql)
timedelta = datetime.timedelta(seconds=planned_duration)
logger.info("[%s] Duckdb environment is prepared. (%s)\n%s" % (self.token, timedelta, sql))
# except duckdb.Error as e:
except DatabaseError as e:
local_error_message = f"DuckDB error: {e.args}"
local_error_message = f"Unable to run the query locally on DuckDB. {e.msg}"
can_run_locally = False
break

if compute == Compute.LOCAL.value:
if not should_run_locally:
raise SnowflakeError(self.token, f"Can't run the query locally, {local_error_message}")
return self.get_snowflake_result()
if can_run_locally and not run_snowflake_already and should_run_locally:
formatting = (self.token, datetime.timedelta(seconds=time.perf_counter() - start_time))
logger.info(f"[{self.token}] Run locally 🚀 ({formatting})")
logger.info(f"[{self.token}] Run locally 🚀 ({formatting[1]})")
return self.get_duckdb_result()
else:
if local_error_message:
logger.error(f"[{self.token}] {local_error_message}")
if not should_run_locally:
raise SnowflakeError(self.token, f"Can't run the query locally. {local_error_message}")
self.do_snowflake_query(queries, raw_query, start_time, local_error_message)
return self.get_snowflake_result()

def do_snowflake_query(self, queries, raw_query, start_time, local_error_message):
try:
self.snowflake.execute(queries, raw_query)
formatting = (self.token, datetime.timedelta(seconds=time.perf_counter() - start_time))
logger.info(f"[{self.token}] Query is done. ({formatting})")
logger.info(f"[{self.token}] Query is done. ({formatting[1]})")
except SnowflakeError as e:
final_error = f"{local_error_message}. {e.message}"
cloud_logger.error(f"[{self.token}] {final_error}")
Expand Down

0 comments on commit 209c835

Please sign in to comment.