diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-09-07 11:39:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2023-09-07 11:39:43 +0000 |
commit | 341eb1a6bdf0dd5b015e5140d3b068c6fd3f4d87 (patch) | |
tree | 61fb7eca2238fb5d41d3906f4af41de03abd25ea /sqlglot/transforms.py | |
parent | Adding upstream version 17.12.0. (diff) | |
download | sqlglot-341eb1a6bdf0dd5b015e5140d3b068c6fd3f4d87.tar.xz sqlglot-341eb1a6bdf0dd5b015e5140d3b068c6fd3f4d87.zip |
Adding upstream version 18.2.0.upstream/18.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sqlglot/transforms.py')
-rw-r--r-- | sqlglot/transforms.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sqlglot/transforms.py b/sqlglot/transforms.py index 7c7c2a7..48ea8dc 100644 --- a/sqlglot/transforms.py +++ b/sqlglot/transforms.py @@ -68,11 +68,17 @@ def eliminate_distinct_on(expression: exp.Expression) -> exp.Expression: if order: window.set("order", order.pop().copy()) + else: + window.set("order", exp.Order(expressions=[c.copy() for c in distinct_cols])) window = exp.alias_(window, row_number) expression.select(window, copy=False) - return exp.select(*outer_selects).from_(expression.subquery()).where(f'"{row_number}" = 1') + return ( + exp.select(*outer_selects) + .from_(expression.subquery()) + .where(exp.column(row_number).eq(1)) + ) return expression @@ -126,7 +132,7 @@ def remove_precision_parameterized_types(expression: exp.Expression) -> exp.Expr """ for node in expression.find_all(exp.DataType): node.set( - "expressions", [e for e in node.expressions if not isinstance(e, exp.DataTypeSize)] + "expressions", [e for e in node.expressions if not isinstance(e, exp.DataTypeParam)] ) return expression |