summaryrefslogtreecommitdiff
path: root/test/sql
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2020-08-07 11:24:29 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2020-08-07 11:24:29 -0400
commited50a003e296ac6bfb998f2b401091d87874cb4c (patch)
tree5f675cd3096ff7dcc29e69c2f961092b4ee9f273 /test/sql
parentf1626c784efc800a912a815085b9bac609c0d1cb (diff)
downloadsqlalchemy-ed50a003e296ac6bfb998f2b401091d87874cb4c.tar.gz
Pass schema_translate_map from DDLCompiler to SQLCompiler
Fixed issue where the :paramref:`_engine.Connection.execution_options.schema_translate_map` feature would not take effect when the :meth:`_schema.Sequence.next_value` function function for a :class:`_schema.Sequence` were used in the :paramref:`_schema.Column.server_default` parameter and the create table DDL were emitted. Fixes: #5500 Change-Id: I74a9fa13d22749d06c8202669f9ea220d9d984d9
Diffstat (limited to 'test/sql')
-rw-r--r--test/sql/test_compiler.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py
index 1d31f1ea5..1084d30cb 100644
--- a/test/sql/test_compiler.py
+++ b/test/sql/test_compiler.py
@@ -4271,17 +4271,94 @@ class DDLTest(fixtures.TestBase, AssertsCompiledSQL):
)
self.assert_compile(
+ s1.next_value(),
+ "<next sequence value: [SCHEMA__none].s1>",
+ schema_translate_map=schema_translate_map,
+ dialect="default_enhanced",
+ )
+
+ self.assert_compile(
schema.CreateSequence(s2),
"CREATE SEQUENCE [SCHEMA_foo].s2 START WITH 1",
schema_translate_map=schema_translate_map,
)
self.assert_compile(
+ s2.next_value(),
+ "<next sequence value: [SCHEMA_foo].s2>",
+ schema_translate_map=schema_translate_map,
+ dialect="default_enhanced",
+ )
+
+ self.assert_compile(
schema.CreateSequence(s3),
"CREATE SEQUENCE [SCHEMA_bar].s3 START WITH 1",
schema_translate_map=schema_translate_map,
)
+ self.assert_compile(
+ s3.next_value(),
+ "<next sequence value: [SCHEMA_bar].s3>",
+ schema_translate_map=schema_translate_map,
+ dialect="default_enhanced",
+ )
+
+ def test_schema_translate_map_sequence_server_default(self):
+ s1 = schema.Sequence("s1")
+ s2 = schema.Sequence("s2", schema="foo")
+ s3 = schema.Sequence("s3", schema="bar")
+
+ schema_translate_map = {None: "z", "bar": None, "foo": "bat"}
+
+ m = MetaData()
+
+ t1 = Table(
+ "t1",
+ m,
+ Column(
+ "id", Integer, server_default=s1.next_value(), primary_key=True
+ ),
+ )
+ t2 = Table(
+ "t2",
+ m,
+ Column(
+ "id", Integer, server_default=s2.next_value(), primary_key=True
+ ),
+ )
+ t3 = Table(
+ "t3",
+ m,
+ Column(
+ "id", Integer, server_default=s3.next_value(), primary_key=True
+ ),
+ )
+
+ self.assert_compile(
+ schema.CreateTable(t1),
+ "CREATE TABLE [SCHEMA__none].t1 "
+ "(id INTEGER DEFAULT <next sequence value: [SCHEMA__none].s1> "
+ "NOT NULL, PRIMARY KEY (id))",
+ schema_translate_map=schema_translate_map,
+ dialect="default_enhanced",
+ )
+ self.assert_compile(
+ schema.CreateTable(t2),
+ "CREATE TABLE [SCHEMA__none].t2 "
+ "(id INTEGER DEFAULT <next sequence value: [SCHEMA_foo].s2> "
+ "NOT NULL, PRIMARY KEY (id))",
+ schema_translate_map=schema_translate_map,
+ dialect="default_enhanced",
+ )
+ self.assert_compile(
+ schema.CreateTable(t3),
+ "CREATE TABLE [SCHEMA__none].t3 "
+ "(id INTEGER DEFAULT <next sequence value: [SCHEMA_bar].s3> "
+ "NOT NULL, PRIMARY KEY (id))",
+ schema_translate_map=schema_translate_map,
+ dialect="default_enhanced",
+ )
+
def test_fk_render(self):
a = Table("a", MetaData(), Column("q", Integer))
b = Table("b", MetaData(), Column("p", Integer))