diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-08-03 14:08:32 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-08-03 20:47:27 -0400 |
| commit | f684bb7659ff195d4c55414162c1de4fbfdafc2f (patch) | |
| tree | f5bb7d7a4d2e03af9470ed2c539acd33ae6462d9 /test/sql | |
| parent | ea6fb4ff5bcffcf71cdbc587504f10f03fe921ca (diff) | |
| download | sqlalchemy-f684bb7659ff195d4c55414162c1de4fbfdafc2f.tar.gz | |
ensure RETURNING renders in stringify w/ no server version
just in my own testing, if I say insert().return_defaults()
and stringify, I should see it, so make sure all the dialects
default to "insert_returning" etc. , with downgrade on
server version check.
Change-Id: Id64e78fcb03c48b5dcb0feb21cb9cc495edd15e9
Diffstat (limited to 'test/sql')
| -rw-r--r-- | test/sql/test_compiler.py | 15 | ||||
| -rw-r--r-- | test/sql/test_insert.py | 6 |
2 files changed, 19 insertions, 2 deletions
diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py index 930f32b7b..1d3d17326 100644 --- a/test/sql/test_compiler.py +++ b/test/sql/test_compiler.py @@ -4914,6 +4914,21 @@ class StringifySpecialTest(fixtures.TestBase): stmt = table1.insert().values() eq_ignore_whitespace(str(stmt), "INSERT INTO mytable () VALUES ()") + def test_insert_return_defaults(self): + t = Table( + "t", + MetaData(), + Column("myid", Integer, primary_key=True), + Column("name", String, server_default="some str"), + Column("description", String, default=func.lower("hi")), + ) + stmt = t.insert().values().return_defaults() + eq_ignore_whitespace( + str(stmt), + "INSERT INTO t (description) VALUES (lower(:lower_1)) " + "RETURNING t.myid, t.name, t.description", + ) + def test_multirow_insert(self): stmt = table1.insert().values([{"myid": 1}, {"myid": 2}]) eq_ignore_whitespace( diff --git a/test/sql/test_insert.py b/test/sql/test_insert.py index 808b047a2..071f595f3 100644 --- a/test/sql/test_insert.py +++ b/test/sql/test_insert.py @@ -1542,7 +1542,9 @@ class MultirowTest(_InsertTestBase, fixtures.TablesTest, AssertsCompiledSQL): ) stmt = table.insert().return_defaults().values(id=func.foobar()) - compiled = stmt.compile(dialect=sqlite.dialect(), column_keys=["data"]) + dialect = sqlite.dialect() + dialect.insert_returning = False + compiled = stmt.compile(dialect=dialect, column_keys=["data"]) eq_(compiled.postfetch, []) eq_(compiled.implicit_returning, []) @@ -1551,7 +1553,7 @@ class MultirowTest(_InsertTestBase, fixtures.TablesTest, AssertsCompiledSQL): "INSERT INTO sometable (id, data) VALUES " "(foobar(), ?)", checkparams={"data": "foo"}, params={"data": "foo"}, - dialect=sqlite.dialect(), + dialect=dialect, ) def test_sql_expression_pk_autoinc_returning(self): |
