Starting from the versions superior v4.6.0.1, the release notes and changelog will be provided in the GitHub Releases of the project. See https://github.com/zio/zio-protoquill/releases
- Implement Dynamic Query DSL for ProtoQuill
- Fix dynamic Insert/UpdateMeta and better warning message
- Support for structural types in Quoted functions
- Upstream changes. Add JDBC encoders for java.time dates
- Update zio-idiomatic context
- Implement ZIO-Idiomatic JDBC Context
- Adding idiomatic-zio cassandra context
- Change infix"$content" to sql"$content"
- Upgrade caliban and re-enable quill-caliban
- Remove matrowl and do token splicing at runtime
- Fix for indirect-dynamic
- The
infix
interpolator is now deprecated because in Scala 2, infix is a keyword. Instead ofinfix"MyUdf(${person.name})"
usesql"MyUdf(${person.name})"
. For contexts such as Doobie that already have ansql
interpolator. Importcontext.compat._
and use theqsql
interpolator instead.
- Similar to 2504 in Scala2-Quill, 109 in ProtoQuill changes the handling of optional-product rows. Whereas before, if any non-optional column of an optional-product row was null, then entre optional-product would be null. Now however, an optional-product will only be null if every column inside is null. For example, before, if a query returning
Person(name:Option(Name(first:String, last:String)), age: Int)
resulted in the rowResultRow("Joe", null, 123)
before the entity would be decoded intoPerson(None, 123)
(i.e. the optional-productOption[Name]
would decode toNone
).
Now however,Option[Name]
only decodes toNone
if every column inside it is null. This means that theResultRow("Joe", null, 123)
decodes toPerson(Name("Joe", 0 /*default-placeholder for null*/), 123)
. Only when the bothfirst
andlast
columns in Name are null i.e.ResultRow(null, null, 123)
will the result be:Person(None, 123)
.
Note: Changing the version convention due to findings of SCL-19345. This should allow correct Scala 3 code identification in IntelliJ. Also moving DSL to top level since Tasty reader seems to process that correctly.
Note: This release is to try to resolve some IntelliJ issues regarding SCL-19345. There are no functionality changes. For this reason I had to change the version convention.
- Enable context.translate in remaining contexts
- Implement context
translate
methods - Adding extras module based on Scala2-Quill
- Adding DistinctOn functionality from Scala2-Quill
- Bump to 3.16.4
Note: This change should resolve the IntelliJ issue SCL-20078 but as of now still has the SCL-19345 issue.
- Note: Similar to zio-quill/pull/2413 this change just removes the deprecated
EntityQuery.insert(CaseClass)
andEntityQuery.update(CaseClass)
APIs that have been updated toEntityQuery.insertValue(CaseClass)
andEntityQuery.updateValue(CaseClass)
, and it is the only change in this release. This is needed because of scala/scala3#14043.
- Bump ZIO to 1.0.12
- Update quill-engine to 3.15.0, update APIs
- Prepare build for upcoming Scala2-Quill dependency and community build integration
- Remove elaboration from SELECT queries
- Introduce implicit hint to fail non-static query build
- ProtoQuill does not support Scala 2 style implicit extensions. Warn about it
- Tail-recursive generic derivation
- Cleanup in various places
- Refactor Parser into a clean ADT
- Fix stack overflow from enums with no encoder
- Fixing Caliban integration & adding quill-caliban to build
- Move ZIO Contexts to latest Scala2-Quill implementations & Cassandra
- use existing transactional context
- Port quill-cassandra
- Cassandra UDT Encoders/Decoders
- Implementing Cassandra ZIO Context
- Refactoring, introducing filterColumns
- Move to 3.10.0 of base and zio. ProtoContext now in portable.
- Implement static operator for splicing constants
- Pass Session to all Encoders/Decoders, implement static operator
- Lift & Serialize when update-macro state is static. More efficient.
- Various Fixes for Lifter and Unlifter
This change lines up the zio-jdbc modules with the latest 3.10.0 line. Various fixes are done to Ast lifting as well as the InsertUpdateMacro for increased efficiency. The static
keyword is introduced.
- Kryo-Serialize entire AST. Further improves performance.
- Allow
x -> y
syntax for constructing tuples. - Allow
sql"..."
without.as[...]
in some needed cases.
- Aggressively serialize quats via Kryo. This seems to significantly improve performance.
- Introduce
context.prepare
command.
- Initial release