- Date format: YYYY-MM-dd
- New experimental DSL API:
DatabaseScope#CREATE_INDEXfor creating indexes - New experimental DSL API:
DatabaseScope#CREATE_UNIQUE_INDEXfor creating unique indexes - New experimental DSL API:
DatabaseScope#PRAGMA_FOREIGN_KEYSfor enabling foreign keys - New experimental annotation APIs:
ForeignKeyGroup,References,ForeignKeyfor supporting foreign keys for table and column levels - New experimental annotation API:
@Defaultfor specifying default values for columns in CREATE TABLE statements - New SQL aggregate function:
group_concatfor concatenating values with a separator - New SQL scalar functions:
round,random - New SQL string functions:
substr,trim,ltrim,rtrim,replace,instr,printf - New overload for
lengthfunction to supportClauseBlobtype - Breaking change: The parameter type of
absfunction changed fromClauseElementtoClauseNumber - Breaking change: The parameter type of
upperfunction changed fromClauseElementtoClauseString - Breaking change: The parameter type of
lowerfunction changed fromClauseElementtoClauseString - Breaking change: The parameter type of
lengthfunction changed fromClauseElementtoClauseString
- Update the
sqlite-jdbc's version to3.51.1.0
- Update
KSP's version to2.3.3
- Support typealias of supported types(primitive types, String, ByteArray etc) in generated tables
- Support enumerated types in DSL APIs, includes
=,!=,<,<=,>,>=operators - Support
<,<=,>,>=,IN,BETWEEN...ANDoperators for String - Support
=,!=,<,<=,>,>=,IN,BETWEEN...ANDoperators for ByteArray - Add a new condiction function
ISNOTfor Boolean, andISstarts to support to receive a nullable parameter - Refactored CREATE statements building process, move it from runtime to compile-time.
- New experimental annotation API for COLLATE NOCASE keyword:
@CollateNoCase - New experimental annotation API for single column with UNIQUE keyword:
@Unique - New experimental annotation API for composite column groups with UNIQUE keyword:
@CompositeUnique
- Update
Kotlin's version to2.2.21 - Remove the Desuger configuration
- Update minimal supported Android version from API 23 to 24
- Optimized performance for SQL assembly
- New experimental annotation for marking primary key:
@PrimaryKey - New experimental annotation for marking composite primary key:
@CompositePrimaryKey - New experimental API for creating Database:
DSLDBConfiguration - New experimental DSL API:
DatabaseScope#CREATE - New experimental DSL API:
DatabaseScope#DROP - New experimental DSL API:
DatabaseSceop#ALERT - Support using
ByteArrayin DSL, that represents BLOB in SQLite
- Update the
sqlite-jdbc's version to3.50.3.0 - Breaking change: The data type of
bindParamsinDatabaseConnection#querychanged fromArray<out String?>?toArray<out Any?>?
- Update
KSP's version to2.3.0
- Update
Kotlin's version to2.2.0
- Update
kotlinx.serialization's version to1.9.0
- Update the
sqlite-jdbc's version to3.50.2.0
- Update
KSP's version to2.2.0-2.0.2
- Update
Kotlin's version to2.1.21
- Update
KSP's version to2.1.21-2.0.1
- Update
Kotlin's version to2.1.20
- Update
kotlinx.coroutines's version to1.10.2 - Update
kotlinx.serialization's version to1.8.1
- Update the
sqlite-jdbc's version to3.49.1.0
- Update
KSP's version to2.1.20-1.0.32
- Update
Kotlin's version to2.1.10
- Update
kotlinx.coroutines's version to1.10.1 - Update
kotlinx.serialization's version to1.8.0 - Add some
DslMakerannotations, make the DSL apis be more readable
- Update the
sqlite-jdbc's version to3.48.0.0
- Update
KSP's version to2.1.10-1.0.29
- Update
Kotlin's version to2.1.0
- Update
kotlinx.coroutines's version to1.9.0 - Update
kotlinx.serialization's version to1.7.3
- Update the
sqlite-jdbc's version to3.47.1.0
- Update
KSP's version to2.1.0-1.0.29
- Update
Kotlin's version to1.9.24
- Now, you can annotate properties with
kotlinx.serialization.transmintin your data classes to ignore these properties when serialization or deserialization andTableclasses generation.
- Update
KSP's version to1.9.24-1.0.20
- Fix a crash when a data class doesn't contain any
Stringelement. - Fix the issue#81 about insert and query null values
- Fix some wrongs about generation of SQL syntax
- Breaking change: Remove the deprecated API
CommonCursor#forEachRows - Breaking change: the
getInt,getLong,getFloatandgetDoublewill throw an exception when the value is NULL in SQLite - Add a new public API:
CommonCursor#isNull, for check if the value is NULL in SQLite
- Update
Kotlin's version to1.9.23
- Update
kotlinx.coroutines's version to1.8.0 - Update
kotlinx.serialization's version to1.6.3 - Modify the SQL statements' splicing method, that fixed the issue#77 that users can't read/write special symbols as the values in SQL statements.
- Performance optimization, use
ArrayDequeto replace the LinkedList for SQL statements management (self-implemented). - The parameter
enableSimpleSQLLogof theDatabase's constructors of isfalseby default.
- Update the
sqlite-jdbc's version to3.45.3.0
- Update
KSP's version to1.9.23-1.0.20
- Update
Kotlin's version to1.9.22
- Update
kotlinx.serialization's version to1.6.2
- Update
KSP's version to1.9.22-1.0.16
- Update
Kotlin's version to1.9.21
- Now, the
ORDER_BYclause could ignore theOrderByWayparameter like SQL. - Optimize the performance in concurrent scenarios. Some types have changed, but users don't need to change the code.
- Now,
SelectStatementhas been changed to lazy deserialization mode, that's means the first time you invoke the functionSelectStatement#getResultswill consume more time. But, correspondingly, executingSELECTstatements will be faster. - Add the
enableSimpleSQLLogparameter toDatabase's constructor, default bytrue, if you set it tofalse, you can disable the simple SQL logout.
- Deprecated the public API
CommonCursor#forEachRows, you can replace withCommonCursor#forEachRow. This change just for fixing a typo :). And, theCommonCursor#forEachRowswill be removed in next version.
- Update
KSP's version to1.9.21-1.0.15
- Update
Kotlin's version to1.9.20
- Add the new native target support:
linuxArm64 - Add the new API
Database#suspendedScope, it could be used to ensure concurrency safety(#55) - Begin with this version, sqllin-dsl depends on kotlinx.coroutines version
1.7.3 - Breaking change: Remove the public class
DBEntity, we have deprecated it in version1.1.1
- Add the new native target support:
linuxArm64
- Update
KSP's version to1.9.20-1.0.13 - Fix the bug for when the code that is generated by
sqllin-processorcan't be compiled(#58)
- Update
Kotlin's version to1.9.10
- Fix the problem: Native driver does not respect isReadOnly. On native platforms.
Now, if a user set
isReadOnly = trueinDatabaseConfigurtaion, the database file must exist. And, if opening in read-write mode fails due to OS-level permissions, the user will get a read-only database, and if the user try to modify the database, will receive a runtime exception. Thanks for @nbransby.
- Update
KSP's version to1.9.10-1.0.13 - Now, if your data class with
@DBRowcan't be solved or imported successfully(UsingKSNode#validateto judge), theClauseProcessorwould try to resolve it in second round.
- Add the new JVM target
- Add the new JVM target
- Breaking change: Remove the public property:
DatabaseConnection#closed - The Android(< 9) target supports to set the
journalModeandsynchronousModenow
- Update
Kotlin's version to1.9.0
- Deprecated the public API
DBEntity(#36, #37), any data classes used in sqllin-dsl don't need to extendDBEntityanymore.
- Fix a bug about empty
ByteArrayon native platforms(#30)
- Update
KSP's version to1.9.0-1.0.13
- Remove the
iosArm32,watchosX86andmingwX86these three targets' support - Add the new native target support:
watchosDeviceArm64
- Update
kotlinx.serialization's version to1.5.1
- Enable the
New Native Driverto replace SQLiter - Make some unnecessary APIs be internal (
CursorImpl,DatabaseConnectionImpland more...) - Add the new public function in
Cursor#next - Add the new public function
deleteDatabase - Add the new public property:
DatabaseConnection#isClosed - Deprecated the public property:
DatabaseConnection#closed
- Update
Kotlin's version to1.8.20
- Update
kotlinx.serialization's version to1.5.0
- Update
KSP's version to1.8.20-1.0.11
- Fix some bugs about unit tests
- Add the
ONclause support - Fix some bugs about
JOINclause
- Update
KSP's version to1.7.20-1.0.8
- Based on
Kotlin 1.7.20 - Based on
KSP 1.7.20-1.0.7 - Based on
kotlinx.serialization 1.4.1