From ed50a003e296ac6bfb998f2b401091d87874cb4c Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 7 Aug 2020 11:24:29 -0400 Subject: 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 --- test/sql/test_compiler.py | 77 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) (limited to 'test/sql/test_compiler.py') 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 @@ -4270,18 +4270,95 @@ class DDLTest(fixtures.TestBase, AssertsCompiledSQL): schema_translate_map=schema_translate_map, ) + self.assert_compile( + s1.next_value(), + "", + 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(), + "", + 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(), + "", + 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 " + "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 " + "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 " + "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)) -- cgit v1.2.1