diff options
| author | Mark Sandan <msandan@utexas.edu> | 2016-05-23 17:08:36 -0700 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2016-06-16 11:43:02 -0400 |
| commit | d7b8b475f8a5c0ddf955157f89db3d44d0dc0d9a (patch) | |
| tree | 8ce3434eec8554bf085c2b7068c66d0588e2383a | |
| parent | e5bdf96bc0b1503c4e4c8461748cd061f624e346 (diff) | |
| download | sqlalchemy-d7b8b475f8a5c0ddf955157f89db3d44d0dc0d9a.tar.gz | |
Add DDLCompiler.create_table_suffix()
Allows custom dialects to add keywords after the
CREATE TABLE section.
Change-Id: I6fa66dfcf00ef95122f491a9115410df2746cf88
| -rw-r--r-- | doc/build/changelog/changelog_11.rst | 9 | ||||
| -rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 11 | ||||
| -rw-r--r-- | test/sql/test_compiler.py | 16 |
3 files changed, 35 insertions, 1 deletions
diff --git a/doc/build/changelog/changelog_11.rst b/doc/build/changelog/changelog_11.rst index 534c3993c..2b71c799d 100644 --- a/doc/build/changelog/changelog_11.rst +++ b/doc/build/changelog/changelog_11.rst @@ -266,6 +266,15 @@ .. change:: :tags: feature, sql + :pullreq: github:275 + + Added a hook in :meth:`.DDLCompiler.visit_create_table` called + :meth:`.DDLCompiler.create_table_suffix`, allowing custom dialects + to add keywords after the "CREATE TABLE" clause. Pull request + courtesy Mark Sandan. + + .. change:: + :tags: feature, sql :pullreq: github:231 Negative integer indexes are now accommodated by rows diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index 5e537dfdc..fc5073596 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -2260,7 +2260,13 @@ class DDLCompiler(Compiled): text = "\nCREATE " if table._prefixes: text += " ".join(table._prefixes) + " " - text += "TABLE " + preparer.format_table(table) + " (" + text += "TABLE " + preparer.format_table(table) + " " + + create_table_suffix = self.create_table_suffix(table) + if create_table_suffix: + text += create_table_suffix + " " + + text += "(" separator = "\n" @@ -2465,6 +2471,9 @@ class DDLCompiler(Compiled): colspec += " NOT NULL" return colspec + def create_table_suffix(self, table): + return '' + def post_create_table(self, table): return '' diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py index ca3468710..8b4e5053b 100644 --- a/test/sql/test_compiler.py +++ b/test/sql/test_compiler.py @@ -3081,6 +3081,22 @@ class DDLTest(fixtures.TestBase, AssertsCompiledSQL): "PRIMARY KEY (b, a))" ) + def test_create_table_suffix(self): + class MyDialect(default.DefaultDialect): + class MyCompiler(compiler.DDLCompiler): + def create_table_suffix(self, table): + return 'SOME SUFFIX' + + ddl_compiler = MyCompiler + + m = MetaData() + t1 = Table('t1', m, Column('q', Integer)) + self.assert_compile( + schema.CreateTable(t1), + "CREATE TABLE t1 SOME SUFFIX (q INTEGER)", + dialect=MyDialect() + ) + def test_table_no_cols(self): m = MetaData() t1 = Table('t1', m) |
