diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-11-30 13:02:39 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-11-30 13:02:39 -0500 |
commit | 9c2c2475637d47f5a49e1457174308e7b98a4be8 (patch) | |
tree | f12653d68184780eca950b8a667243ce0a2cdbd0 | |
parent | c3fbfa8257dd198f1020166ce3c94556984abed0 (diff) | |
parent | fd47fea6fbb11ee84b7eea5772f40855703ebe47 (diff) | |
download | sqlalchemy-9c2c2475637d47f5a49e1457174308e7b98a4be8.tar.gz |
Merge remote-tracking branch 'origin/pr/216'
-rw-r--r-- | lib/sqlalchemy/dialects/postgresql/base.py | 2 | ||||
-rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 4 | ||||
-rw-r--r-- | test/dialect/postgresql/test_compiler.py | 16 |
3 files changed, 19 insertions, 3 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/base.py b/lib/sqlalchemy/dialects/postgresql/base.py index 8de5bede7..e9001f79a 100644 --- a/lib/sqlalchemy/dialects/postgresql/base.py +++ b/lib/sqlalchemy/dialects/postgresql/base.py @@ -1158,7 +1158,7 @@ class PGCompiler(compiler.SQLCompiler): c.table if isinstance(c, expression.ColumnClause) else c for c in select._for_update_arg.of) tmp += " OF " + ", ".join( - self.process(table, ashint=True, **kw) + self.process(table, ashint=True, use_schema=False, **kw) for table in tables ) diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index f1220ce31..d28ac313b 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -1799,9 +1799,9 @@ class SQLCompiler(Compiled): return text def visit_table(self, table, asfrom=False, iscrud=False, ashint=False, - fromhints=None, **kwargs): + fromhints=None, use_schema=True, **kwargs): if asfrom or ashint: - if getattr(table, "schema", None): + if use_schema and getattr(table, "schema", None): ret = self.preparer.quote_schema(table.schema) + \ "." + self.preparer.quote(table.name) else: diff --git a/test/dialect/postgresql/test_compiler.py b/test/dialect/postgresql/test_compiler.py index 13acf8c86..71d8fa3e5 100644 --- a/test/dialect/postgresql/test_compiler.py +++ b/test/dialect/postgresql/test_compiler.py @@ -593,6 +593,22 @@ class CompileTest(fixtures.TestBase, AssertsCompiledSQL): "WHERE mytable_1.myid = %(myid_1)s FOR UPDATE OF mytable_1" ) + def test_for_update_with_schema(self): + m = MetaData() + table1 = Table( + 'mytable', m, + Column('myid'), + Column('name'), + schema='testschema' + ) + + self.assert_compile( + table1.select(table1.c.myid == 7).with_for_update(of=table1), + "SELECT testschema.mytable.myid, testschema.mytable.name " + "FROM testschema.mytable " + "WHERE testschema.mytable.myid = %(myid_1)s " + "FOR UPDATE OF mytable") + def test_reserved_words(self): table = Table("pg_table", MetaData(), Column("col1", Integer), |