]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
handling single token bracketed schemas. Added corresponding unit test. All tests...
authorShan <shan224@gmail.com>
Sat, 21 Jan 2023 06:48:17 +0000 (22:48 -0800)
committerShan <shan224@gmail.com>
Sat, 21 Jan 2023 06:49:21 +0000 (22:49 -0800)
References: #9133

lib/sqlalchemy/dialects/mssql/base.py
test/dialect/mssql/test_compiler.py

index b1f30d577248441caf2bb8c488951dd6a75fdb76..b8fe8a3710ae99f6e892a3cd28cfaf4b497ae10a 100644 (file)
@@ -2871,10 +2871,9 @@ def _switch_db(dbname, connection, fn, *arg, **kw):
 def _owner_plus_db(dialect, schema):
     if not schema:
         return None, dialect.default_schema_name
-    elif "." in schema:
-        return _schema_elements(schema)
     else:
-        return None, schema
+        return _schema_elements(schema)
+
 
 
 _memoized_schema = util.LRUCache()
index 00bbc2af45fd7c8c5531367f9ddc8b85b779e989..b666c3cba9a10360609ce1296b67470e9b7b9195 100644 (file)
@@ -599,6 +599,20 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL):
             checkpositional=("bar",),
         )
 
+    def test_schema_single_token_bracketed(self):
+        metadata = MetaData()
+        tbl = Table(
+            "test",
+            metadata,
+            Column("id", Integer, primary_key=True),
+            schema="[abc]",
+        )
+
+        self.assert_compile(
+            select(tbl),
+            "SELECT abc.test.id FROM abc.test",
+        )
+
     def test_schema_many_tokens_one(self):
         metadata = MetaData()
         tbl = Table(