Skip to content

Commit 65b3791

Browse files
committed
Address comments
1 parent e0f2c43 commit 65b3791

2 files changed

Lines changed: 30 additions & 8 deletions

File tree

sqlmesh/core/engine_adapter/base.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2126,14 +2126,30 @@ def execute(
21262126
else e
21272127
),
21282128
)
2129-
contains_values = isinstance(e, exp.Insert) and e.find(exp.Values) is not None
2130-
self._log_sql(sql, contains_values=contains_values)
2129+
self._log_sql(
2130+
sql,
2131+
expression=e if isinstance(e, exp.Expression) else None,
2132+
quote_identifiers=quote_identifiers,
2133+
)
21312134
self._execute(sql, **kwargs)
21322135

2133-
def _log_sql(self, sql: str, contains_values: bool = False) -> None:
2134-
if contains_values:
2135-
sql = "<Redacted because SQL contains values>"
2136-
logger.log(self._execute_log_level, "Executing SQL: %s", sql)
2136+
def _log_sql(
2137+
self,
2138+
sql: str,
2139+
expression: t.Optional[exp.Expression] = None,
2140+
quote_identifiers: bool = True,
2141+
) -> None:
2142+
if not logger.isEnabledFor(self._execute_log_level):
2143+
return
2144+
2145+
sql_to_log = sql
2146+
if expression is not None and not isinstance(expression, exp.Query):
2147+
values = expression.find(exp.Values)
2148+
if values:
2149+
values.set("expressions", [exp.to_identifier("<REDACTED VALUES>")])
2150+
sql_to_log = self._to_sql(expression, quote=quote_identifiers)
2151+
2152+
logger.log(self._execute_log_level, "Executing SQL: %s", sql_to_log)
21372153

21382154
def _execute(self, sql: str, **kwargs: t.Any) -> None:
21392155
self.cursor.execute(sql, **kwargs)

tests/core/engine_adapter/test_base.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3088,5 +3088,11 @@ def test_log_sql(make_mocked_engine_adapter: t.Callable, mocker: MockerFixture):
30883088
assert mock_logger.log.call_count == 4
30893089
assert mock_logger.log.call_args_list[0][0][2] == "SELECT 1"
30903090
assert mock_logger.log.call_args_list[1][0][2] == 'INSERT INTO "test" SELECT * FROM "source"'
3091-
assert mock_logger.log.call_args_list[2][0][2] == "<Redacted because SQL contains values>"
3092-
assert mock_logger.log.call_args_list[3][0][2] == "<Redacted because SQL contains values>"
3091+
assert (
3092+
mock_logger.log.call_args_list[2][0][2]
3093+
== 'INSERT INTO "test" ("id", "value") VALUES "<REDACTED VALUES>"'
3094+
)
3095+
assert (
3096+
mock_logger.log.call_args_list[3][0][2]
3097+
== 'INSERT INTO "test" ("id", "value") SELECT CAST("id" AS BIGINT) AS "id", CAST("value" AS TEXT) AS "value" FROM (VALUES "<REDACTED VALUES>") AS "t"("id", "value")'
3098+
)

0 commit comments

Comments
 (0)