diff options
| author | Federico Caselli <cfederico87@gmail.com> | 2022-09-09 21:29:53 +0200 |
|---|---|---|
| committer | Federico Caselli <cfederico87@gmail.com> | 2022-09-09 21:29:53 +0200 |
| commit | efbe38d8e8186c1816d2d3b052f92965787649da (patch) | |
| tree | abb85a8da5515de279b3dd57b72badcf2c1c71b9 /lib/sqlalchemy/dialects | |
| parent | 479dbc99e7fc5a60f846992c0cca8542047a8933 (diff) | |
| download | sqlalchemy-efbe38d8e8186c1816d2d3b052f92965787649da.tar.gz | |
Support GROUP BY ROLLUP on MySql/MariaDB
The ``ROLLUP`` function will now correctly render ``WITH ROLLUP`` on
MySql and MariaDB, allowing the use of group by rollup with these
backend.
Fixes: #8503
Change-Id: I9289af3a39ca667a2f0f84f73346ebd4b091fedd
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/mysql/base.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py index 4b0a5e6c5..c0521f61e 100644 --- a/lib/sqlalchemy/dialects/mysql/base.py +++ b/lib/sqlalchemy/dialects/mysql/base.py @@ -1210,6 +1210,12 @@ class MySQLCompiler(compiler.SQLCompiler): def visit_random_func(self, fn, **kw): return "rand%s" % self.function_argspec(fn) + def visit_rollup_func(self, fn, **kw): + clause = ", ".join( + elem._compiler_dispatch(self, **kw) for elem in fn.clauses + ) + return f"{clause} WITH ROLLUP" + def visit_sequence(self, seq, **kw): return "nextval(%s)" % self.preparer.format_sequence(seq) |
