- [Paging3 Extension] Extension for Android Paging 3 Library (#1786 by [Kevin Cianfarini][kevincianfarini])
- ⚡️ [MySQL Dialect] Adds support for mysql's ON DUPLICATE KEY UPDATE conflict resolution. (by [Ryan Harter][rharter])
- 👍 [SQLite Dialect] Add compiler support for SQLite offsets() (by [Quinton Roberts][qjroberts])
- 🔌 [IDE Plugin] Add import quick fix for unknown type (#683 by [Alexander Perfilyev][aperfilyev])
- 🔌 [IDE Plugin] Add unused import inspection (#1161 by [Alexander Perfilyev][aperfilyev])
- 🔌 [IDE Plugin] Add unused query inspection (by [Alexander Perfilyev][aperfilyev])
- 🔌 [IDE Plugin] Add unused column inspection (#569 by [Alexander Perfilyev][aperfilyev])
- 🔌 [IDE Plugin] Automatically bring imports on copy/paste (#684 by [Alexander Perfilyev][aperfilyev])
- 🔌 [IDE Plugin] Pop a balloon when there are incompatibilities between gradle/intellij plugin versions
- 🔌 [IDE Plugin] Insert Into ... VALUES(?) parameter hints (#506 by [Alexander Perfilyev][aperfilyev])
- 🔌 [IDE Plugin] Inline parameter hints (by [Alexander Perfilyev][aperfilyev])
- [Runtime] Include an API in the runtime for running migrations with callbacks (#1844)
- [Compiler] Smart cast "IS NOT NULL" queries (#867)
- [Compiler] Protect against keywords that will fail at runtime (#1471, #1629)
- 🔌 [Gradle Plugin] Reduce size of gradle plugin from 60mb -> 13mb.
- 🚚 [Gradle Plugin] Properly support android variants, and remove support for KMM target-specific sql (#1039)
- 🔌 [Gradle Plugin] Pick a minimum sqlite version based on minsdk (#1684)
- 🐎 [Native Driver] Native driver connection pool and performance updates
- [Compiler] NBSP before lambdas (by [Benoît Quenaudon][oldergod])
- [Compiler] Fix incompatible types in generated bind* and cursor.get* statements
- [Compiler] SQL clause should persist adapted type (#2067)
- [Compiler] Column with only NULL keyword should be nullable
- [Compiler] Dont generate mapper lambda with type annotations (#1957)
- 📦 [Compiler] If custom queries would clash, use the file name as an additional package suffix (#1057, #1278)
- [Compiler] Ensure foreign key cascades cause query listeners to be notified (#1325, #1485)
- [Compiler] If unioning two of the same type, return the table type (#1342)
- [Compiler] Ensure params to ifnull and coalesce can be nullable (#1263)
- [Compiler] Correctly use query-imposed nullability for expressions
- 👍 [MySQL Dialect] Support MySQL if statements
- [PostgreSQL Dialect] Retrieve NUMERIC and DECIMAL as Double in PostgreSQL (#2118)
- ⚡️ [SQLite Dialect] UPSERT notifications should account for BEFORE/AFTER UPDATE triggers. (#2198 by [Anders Ha][andersio])
- [SQLite Driver] Use multiple connections for threads in the SqliteDriver unless we are in memory (#1832)
- [JDBC Driver] JDBC Driver assumes autoCommit is true (#2041)
- 👻 [JDBC Driver] Ensure that we close connections on exception (#2306)
- 🏁 [IDE Plugin] Fix GoToDeclaration/FindUsages being broken on Windows due to path separator bug (#2054 by [Angus Holder][AngusH])
- 🔌 [IDE Plugin] Ignore gradle errors instead of crashing in the IDE.
- 🚚 [IDE Plugin] If a sqldelight file is moved to a non-sqldelight module, do not attempt codegen
- 🔌 [IDE Plugin] Ignore codegen errors in IDE
- 🔌 [IDE Plugin] Ensure that we dont try to negatively substring (#2068)
- 🔌 [IDE Plugin] Also ensure project is not disposed before running gradle action (#2155)
- 🔌 [IDE Plugin] Arithmetic on nullable types should also be nullable (#1853)
- 🔌 [IDE Plugin] Make 'expand * intention' work with additional projections (#2173 by [Alexander Perfilyev][aperfilyev])
- 🔌 [IDE Plugin] If kotlin resolution fails during GoTo, dont attempt to go to sqldelight files
- 🔌 [IDE Plugin] If IntelliJ encounters an exception while sqldelight is indexing, dont crash
- 🔌 [IDE Plugin] Handle exceptions that happen while detecting errors before codegen in the IDE
- 🔌 [IDE Plugin] Make the IDE plugin compatible with Dynamic Plugins (#1536)
- 🔌 [Gradle Plugin] Race condition generating a database using WorkerApi (#2062 by [Stéphane Nicolas][stephanenicolas])
- 🔌 [Gradle Plugin] classLoaderIsolation prevents custom jdbc usage (#2048 by [Ben Asher][BenA])
- 📦 [Gradle Plugin] Improve missing packageName error message (by [Niklas Baudy][vanniktech])
- 🏗 [Gradle Plugin] SQLDelight bleeds IntelliJ dependencies onto buildscript class path (#1998)
- 🏗 [Gradle Plugin] Fix gradle build caching (#2075)
- 🔌 [Gradle Plugin] Do not depend on kotlin-native-utils in Gradle plugin (by [Ilya Matveev][ilmat192])
- 🔌 [Gradle Plugin] Also write the database if there are only migration files (#2094)
- 🔌 [Gradle Plugin] Ensure diamond dependencies only get picked up once in the final compilation unit (#1455)
🚀 Also just a general shoutout to [Matthew Haughton][3flex] who did a lot of work to improve the SQLDelight infrastructure this release.
- 👍 [PostgreSQL Dialect] Support data-modifying statements in WITH
- 👍 [PostgreSQL Dialect] Support substring function
- 🔌 [Gradle Plugin] Added verifyMigrations flag for validating migrations during SQLDelight compilation (#1872)
- [Compiler] Flag SQLite specific functions as unknown in non-SQLite dialects
- 🔧 [Gradle Plugin] Provide a warning when the sqldelight plugin is applied but no databases are configured (#1421)
- [Compiler] Report an error when binding a column name in an ORDER BY clause (#1187 by Eliezer Graber)
- ⚠ [Compiler] Registry warnings appear when generating the db interface (#1792)
- [Compiler] Incorrect type inference for case statement (#1811)
- 👍 [Compiler] Provide better errors for migration files with no version (#2006)
- [Compiler] Required database type to marshal is incorrect for some database type ColumnAdapter's (#2012)
- [Compiler] Nullability of CAST (#1261)
- ⚠ [Compiler] Lots of name shadowed warnings in query wrappers (#1946 by Eliezer Graber)
- [Compiler] Generated code is using full qualifier names (#1939)
- 🔀 [IDE Plugin] Trigger sqldelight code gen from gradle syncs
- 🔌 [IDE Plugin] Plugin not regenerating database interface when changing .sq files (#1945)
- 📦 [IDE Plugin] Issue when moving files to new packages (#444)
- 🚚 [IDE Plugin] If theres nowhere to move the cursor, do nothing instead of crashing (#1994)
- 📦 [IDE Plugin] Use empty package name for files outside of a gradle project (#1973)
- 🔌 [IDE Plugin] Fail gracefully for invalid types (#1943)
- 🔌 [IDE Plugin] Throw a better error message when encountering an unknown expression (#1958)
- 🏗 [Gradle Plugin] SQLDelight bleeds IntelliJ dependencies onto buildscript class path (#1998)
- 🔌 [Gradle Plugin] "JavadocIntegrationKt not found" compilation error when adding method doc in *.sq file (#1982)
- 🔧 [Gradle Plugin] SqlDeslight gradle plugin doesn't support Configuration Caching (CoCa). (#1947 by Stéphane Nicolas)
- [SQLite JDBC Driver] SQLException: database in auto-commit mode (#1832)
- [Coroutines Extension] Fix IR backend for coroutines-extensions (#1918 by Derek Ellis)
- [MySQL Dialect] Add support for MySQL last_insert_id function (by Kelvin Law)
- 👍 [PostgreSQL Dialect] Support SERIAL data type (by Veyndan Stuart & Felipe Lima)
- 👍 [PostgreSQL Dialect] Support PostgreSQL RETURNING (by Veyndan Stuart)
- 0️⃣ [MySQL Dialect] Treat MySQL AUTO_INCREMENT as having a default value (#1823)
- [Compiler] Fix Upsert statement compiler error (#1809 by Eliezer Graber)
- [Compiler] Fix issue with invalid Kotlin being generated (#1925 by Eliezer Grabar)
- 👍 [Compiler] Have a better error message for unknown functions (#1843)
- [Compiler] Expose string as the type for the second parameter of instr
- 🔌 [IDE Plugin] Fix daemon bloat and UI thread stalling for IDE plugin (#1916)
- 🔌 [IDE Plugin] Handle null module scenario (#1902)
- 📦 [IDE Plugin] In unconfigured sq files return empty string for the package name (#1920)
- ✅ [IDE Plugin] Fix grouped statements and add an integration test for them (#1820)
- 🔌 [IDE Plugin] Use built in ModuleUtil to find the module for an element (#1854)
- 🔌 [IDE Plugin] Only add valid elements to lookups (#1909)
- 🔌 [IDE Plugin] Parent can be null (#1857)
- 👍 [Runtime] Support new JS IR backend
- 🔌 [Gradle Plugin] Add generateSqlDelightInterface Gradle task. (by Niklas Baudy)
- 🔌 [Gradle Plugin] Add verifySqlDelightMigration Gradle task. (by Niklas Baudy)
- 🔌 [IDE Plugin] Use the gradle tooling API to facilitate data sharing between the IDE and gradle
- 0️⃣ [IDE Plugin] Default to false for schema derivation
- 🔌 [IDE Plugin] Properly retrieve the commonMain source set
- [MySQL Dialect] Added minute to mySqlFunctionType() (by MaaxGr)
- 👍 [Runtime] Support Kotlin 1.4.0 (#1859)
- 🔌 [Gradle Plugin] Make AGP dependency compileOnly (#1362)
- [Compiler] Add optional javadoc to column defintion rule and to table interface generator (#1224 by Daniel Eke)
- 👍 [SQLite Dialect] Add support for sqlite fts5 auxiliary functions highlight, snippet, and bm25 (by Daniel Rampelt)
- 👍 [MySQL Dialect] Support MySQL bit data type
- 👍 [MySQL Dialect] Support MySQL binary literals
- [PostgreSQL Dialect] Expose SERIAL from sql-psi (by Veyndan Stuart)
- [PostgreSQL Dialect] Add BOOLEAN data type (by Veyndan Stuart)
- [PostgreSQL Dialect] Add NULL column constraint (by Veyndan Stuart)
- 👍 [HSQL Dialect] Adds
AUTO_INCREMENTsupport to HSQL (by Ryan Harter)
- 👍 [MySQL Dialect] MySQL support (by Jeff Gulbronson & Veyndan Stuart)
- 👍 [PostgreSQL Dialect] Experimental PostgreSQL support (by Veyndan Stuat)
- 👍 [HSQL Dialect] Experimental H2 support (by Marius Volkhart)
- 👍 [SQLite Dialect] SQLite FTS5 support (by Ben Asher & James Palawaga)
- 👍 [SQLite Dialect] Support alter table rename column (#1505 by Angus Holder)
- 👍 [IDE] IDE support for migration (.sqm) files
- [IDE] Add SQLDelight Live Templates that mimic built-in SQL Live Templates (#1154 by Veyndan Stuart)
- [IDE] Add new SqlDelight file action (#42 by Roman Zavarnitsyn)
- [Runtime] transactionWithReturn API for transactions that return results
- [Compiler] Syntax for grouping multiple SQL statements together in a .sq file
- 👍 [Compiler] Support generating schemas from migration files
- 🔌 [Gradle Plugin] Add a task for outputting migration files as valid sql
- 📚 [Documentation] Overhaul of the documentation website (by Saket Narayan)
- 🔌 [Gradle Plugin] Improve unsupported dialect error message (by Veyndan Stuart)
- [IDE] Dynamically change file icon based on dialect (by Veyndan Stuart)
- [JDBC Driver] Expose a JdbcDriver constructor off of javax.sql.DataSource (#1614)
- 👍 [Compiler]Support Javadoc on tables and fix multiple javadoc in one file (#1224)
- [Compiler] Enable inserting a value for synthesized columns (#1351)
- [Compiler] Fix inconsistency in directory name sanitizing (by Zac Sweers)
- [Compiler] Synthesized columns should retain nullability across joins (#1656)
- 📌 [Compiler] Pin the delete statement on the delete keyword (#1643)
- [Compiler] Fix quoting (#1525 by Angus Holder)
- [Compiler] Fix the between operator to properly recurse into expressions (#1279)
- 👍 [Compiler] Give better error for missing table/column when creating an index (#1372)
- [Compiler] Enable using the outer querys projection in join constraints (#1346)
- [Native Driver] Make execute use transationPool (by Ben Asher)
- [JDBC Driver] Use the jdbc transaction APIs instead of sqlite (#1693)
- [IDE] Fix virtualFile references to always be the original file (#1782)
- [IDE] Use the correct throwable when reporting errors to bugsnag (#1262)
- [Paging Extension] Fix leaky DataSource (#1628)
- 🔌 [Gradle Plugin] If the output db file already exists when generating a schema, delete it (#1645)
- 🔌 [Gradle Plugin] Fail migration validation if there are gaps
- 🔌 [Gradle Plugin] Explicitely use the file index we set (#1644)
- 🆕 New: [Gradle] Dialect property to specify with sql dialect to compile against.
- 🆕 New: [Compiler] #1009 Experimental support of the mysql dialect.
- 🆕 New: [Compiler] #1436 Support of sqlite:3.24 dialect and upsert.
- 🆕 New: [JDBC Driver] Split out JDBC driver from sqlite jvm driver.
- 🛠 Fix: [Compiler] #1199 Support lambdas of any length.
- 🛠 Fix: [Compiler] #1610 Fix the return type of avg() to be nullable.
- 🛠 Fix: [IntelliJ] #1594 Fix path separator handling which broke Goto and Find Usages on Windows.
🚀 An add-on for the 1.3.0 release which publishes the new RxJava 3 extensions at
- 🆕 New: [Runtime] Support for Windows (mingW), tvOS, watchOS, and macOS architectures.
- 🛠 Fix: [Compiler] Return type of sum() should be nullable.
- 🛠 Fix: [Paging] Pass Transacter into QueryDataSourceFactory to avoid race conditions.
- 🛠 Fix: [IntelliJ Plugin] Don't search through dependencies when looking for a file's package name.
- 🛠 Fix: [Gradle] #862 Change validator logs in Gradle to debug level.
- ✨ Enhancement: [Gradle] Convert GenerateSchemaTask to use Gradle worker.
- Note: sqldelight-runtime artifact renamed to runtime. ios-driver artifact renamed to native-driver
- 🛠 Fix: [Gradle] Kotlin Native 1.3.60 support.
- 🛠 Fix: [Gradle] #1287 Warning when syncing.
- 🛠 Fix: [Compiler] #1469 SynetheticAccessor creation for query.
- 🛠 Fix: [JVM Driver] Fixed memory leak.
- 🏗 NOTE: The coroutine extension artifact requires kotlinx bintray maven repository be added to your buildscript.