diff --git a/sqlmesh/core/engine_adapter/mssql.py b/sqlmesh/core/engine_adapter/mssql.py index 88b3f51ed3..a00e11e0f7 100644 --- a/sqlmesh/core/engine_adapter/mssql.py +++ b/sqlmesh/core/engine_adapter/mssql.py @@ -90,18 +90,18 @@ def columns( sql = ( exp.select( - "column_name", - "data_type", - "character_maximum_length", - "numeric_precision", - "numeric_scale", + "COLUMN_NAME", + "DATA_TYPE", + "CHARACTER_MAXIMUM_LENGTH", + "NUMERIC_PRECISION", + "NUMERIC_SCALE", ) - .from_("information_schema.columns") - .where(f"table_name = '{table.name}'") + .from_("INFORMATION_SCHEMA.COLUMNS") + .where(f"TABLE_NAME = '{table.name}'") ) database_name = table.db if database_name: - sql = sql.where(f"table_schema = '{database_name}'") + sql = sql.where(f"TABLE_SCHEMA = '{database_name}'") columns_raw = self.fetchall(sql, quote_identifiers=True) @@ -145,12 +145,12 @@ def table_exists(self, table_name: TableName) -> bool: sql = ( exp.select("1") - .from_("information_schema.tables") - .where(f"table_name = '{table.alias_or_name}'") + .from_("INFORMATION_SCHEMA.TABLES") + .where(f"TABLE_NAME = '{table.alias_or_name}'") ) database_name = table.db if database_name: - sql = sql.where(f"table_schema = '{database_name}'") + sql = sql.where(f"TABLE_SCHEMA = '{database_name}'") result = self.fetchone(sql, quote_identifiers=True) diff --git a/tests/core/engine_adapter/test_mssql.py b/tests/core/engine_adapter/test_mssql.py index beeaa59c89..22f371746c 100644 --- a/tests/core/engine_adapter/test_mssql.py +++ b/tests/core/engine_adapter/test_mssql.py @@ -79,7 +79,7 @@ def test_columns(adapter: MSSQLEngineAdapter): } adapter.cursor.execute.assert_called_once_with( - """SELECT [column_name], [data_type], [character_maximum_length], [numeric_precision], [numeric_scale] FROM [information_schema].[columns] WHERE [table_name] = 'table' AND [table_schema] = 'db';""" + """SELECT [COLUMN_NAME], [DATA_TYPE], [CHARACTER_MAXIMUM_LENGTH], [NUMERIC_PRECISION], [NUMERIC_SCALE] FROM [INFORMATION_SCHEMA].[COLUMNS] WHERE [TABLE_NAME] = 'table' AND [TABLE_SCHEMA] = 'db';""" ) @@ -149,8 +149,8 @@ def test_table_exists(make_mocked_engine_adapter: t.Callable): resp = adapter.table_exists("db.table") adapter.cursor.execute.assert_called_once_with( """SELECT 1 """ - """FROM [information_schema].[tables] """ - """WHERE [table_name] = 'table' AND [table_schema] = 'db';""" + """FROM [INFORMATION_SCHEMA].[TABLES] """ + """WHERE [TABLE_NAME] = 'table' AND [TABLE_SCHEMA] = 'db';""" ) assert resp adapter.cursor.fetchone.return_value = None @@ -506,7 +506,7 @@ def test_replace_query(make_mocked_engine_adapter: t.Callable): adapter.replace_query("test_table", parse_one("SELECT a FROM tbl"), {"a": "int"}) assert to_sql_calls(adapter) == [ - """SELECT 1 FROM [information_schema].[tables] WHERE [table_name] = 'test_table';""", + """SELECT 1 FROM [INFORMATION_SCHEMA].[TABLES] WHERE [TABLE_NAME] = 'test_table';""", "TRUNCATE TABLE [test_table];", "INSERT INTO [test_table] ([a]) SELECT [a] FROM [tbl];", ]