Quill v3.5.3 Release Notes
-
🚀 Please skip this release and proceed directly to the 3.6.0-RC line. This release was originally a test-bed for the new Quats-based functionality which was supposed to be a strictly internal mechanism. Unfortunately multiple issues were found. They will be addressed in the 3.6.X line.
- Adding Quill-Application-Types (Quats) to AST
- Translate boolean literals
- breakdown caseclasses in groupBy clause
- allowed distinct to be placed on an infix
- Change Subquery Expansion to be Quat-based
- Use quats to expand nested queries in Spark
- 🛠 Fixed bug where alias of filter clause did not match alias of inner query.
- 0️⃣ Add default implementations so Query can be more easily inherited from Dotty
- Monix streaming with NDBC
- Fix SqlServer snake case - OUTPUT i_n_s_e_r_t_e_d.id
Migration Notes:`
- Quill 3.5.3 is source-compatible but not binary-compatible with Quill 3.5.2.
- Any code generated by the Quill Code Generator with
quote { ... }
blocks will have to be regenerated with Quill 3.5.3 as the AST has substantially changed. - The implementation of Quill Application Types (Quats) has changed the internals of nested query expansion. Queries
with a
querySchema
or aschemaMeta
will be aliased between nested clauses slightly differently. Given:case class Person(firstName:String, lastName:String) val ctx = new SqlMirrorContext(PostgresDialect, Literal)
Before:SELECT x.first_name, x.last_name FROM ( SELECT x.first_name, x.last_name FROM person x) AS x
After:SELECT x.firstName, x.lastName FROM ( SELECT x.first_name AS firstName, x.last_name AS lastName FROM person x) AS x
Note however that the semantic result of the queries should be the same. No user-level code change for this should be required.