sqldelight v1.5.0 Release Notes

Release Date: 2021-04-23 // 3 months ago
  • โž• Added

    • [SQLite Javascript Driver] Enable sqljs-driver publication (#1667 by [Derek Ellis][dellisd])
    • [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)

    ๐Ÿ”„ Changed

    • [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

    ๐Ÿ›  Fixed

    • [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.


Previous changes from v1.4.4

  • โž• Added

    • ๐Ÿ‘ [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)

    ๐Ÿ”„ Changed

    • [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)

    ๐Ÿ›  Fixed

    • [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)