diff options
author | mike bayer <mike_mp@zzzcomputing.com> | 2021-02-28 16:16:09 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2021-02-28 16:16:09 +0000 |
commit | 844914bf9043a0213df2eb3358790e9975a88f4a (patch) | |
tree | 3ee397e6d23a282ff17098a856962740f379cffe /lib/sqlalchemy/sql/compiler.py | |
parent | aae934d171ab0eaaa6b53db4e1db65b0d20ff1e9 (diff) | |
parent | 0c31059a1d6303d2d16b59eb6a5c2c751acdf14a (diff) | |
download | sqlalchemy-844914bf9043a0213df2eb3358790e9975a88f4a.tar.gz |
Merge "support stringify for plain CTE"
Diffstat (limited to 'lib/sqlalchemy/sql/compiler.py')
-rw-r--r-- | lib/sqlalchemy/sql/compiler.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/lib/sqlalchemy/sql/compiler.py b/lib/sqlalchemy/sql/compiler.py index c4577e397..c6fa6072e 100644 --- a/lib/sqlalchemy/sql/compiler.py +++ b/lib/sqlalchemy/sql/compiler.py @@ -2556,12 +2556,23 @@ class SQLCompiler(Compiled): kwargs["positional_names"] = self.cte_positional[cte] = [] assert kwargs.get("subquery", False) is False - text += " AS %s\n(%s)" % ( - self._generate_prefixes(cte, cte._prefixes, **kwargs), - cte.element._compiler_dispatch( + + if not self.stack: + # toplevel, this is a stringify of the + # cte directly. just compile the inner + # the way alias() does. + return cte.element._compiler_dispatch( + self, asfrom=asfrom, **kwargs + ) + else: + prefixes = self._generate_prefixes( + cte, cte._prefixes, **kwargs + ) + inner = cte.element._compiler_dispatch( self, asfrom=True, **kwargs - ), - ) + ) + + text += " AS %s\n(%s)" % (prefixes, inner) if cte._suffixes: text += " " + self._generate_prefixes( |