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/dialect/mysql/test_compiler.py | |
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/dialect/mysql/test_compiler.py')
-rw-r--r-- | test/dialect/mysql/test_compiler.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/dialect/mysql/test_compiler.py b/test/dialect/mysql/test_compiler.py index 3fb52416e..9d2c43bfe 100644 --- a/test/dialect/mysql/test_compiler.py +++ b/test/dialect/mysql/test_compiler.py @@ -61,6 +61,7 @@ from sqlalchemy.sql.expression import literal_column from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import AssertsCompiledSQL from sqlalchemy.testing import eq_ +from sqlalchemy.testing import eq_ignore_whitespace from sqlalchemy.testing import expect_warnings from sqlalchemy.testing import fixtures from sqlalchemy.testing import mock @@ -146,6 +147,25 @@ class CompileTest(ReservedWordFixture, fixtures.TestBase, AssertsCompiledSQL): dialect=dialect, ) + def test_plain_stringify_returning(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.compile(dialect=mysql.dialect(is_mariadb=True))), + "INSERT INTO t (description) VALUES (lower(%s)) " + "RETURNING t.myid, t.name, t.description", + ) + eq_ignore_whitespace( + str(stmt.compile(dialect=mysql.dialect())), + "INSERT INTO t (description) VALUES (lower(%s))", + ) + def test_create_index_simple(self): m = MetaData() tbl = Table("testtbl", m, Column("data", String(255))) |