mirror of
https://github.com/enso-org/enso.git
synced 2024-12-23 00:11:45 +03:00
8260a9587f
This implements `DB_Column.with`, which uses `WITH ... AS` SQL clauses to remove duplicates in the generated SQL. After a discussion with @radeusgd, we concluded that we will probably want a more complete CTE implementation, so this one is useful for now to deal with big queries (like `round`). # Important Notes Still to do in this PR: - [x] Rename `with` to `let` (or something similar) - [x] tests - [x] documentation - [x] remove `State` hack by moving query generation into a class and using a `Ref` field for scoping Results on `round_float`: | --- | SQL length in characters (unprettified) | SQL length in lines (prettified) | | --- | --- | --- | | Without CTEs | 13193 | 851 | | With CTEs | 3644 | 187 | Compare the SQL: [without-ctes.sql.txt](https://github.com/user-attachments/files/16629356/without-ctes.sql.txt) [with-ctes.sql.txt](https://github.com/user-attachments/files/16629357/with-ctes.sql.txt) Update, with name shortening: | --- | SQL length in characters (unprettified) | SQL length in lines (prettified) | | --- | --- | --- | | Without CTEs | 13193 | 853 | | With CTEs | 2427 | 176 | [without-cte.txt](https://github.com/user-attachments/files/16694328/without-cte.txt) [with-cte.txt](https://github.com/user-attachments/files/16694327/with-cte.txt) |
||
---|---|---|
.. | ||
0.0.0-dev |