v0.16.1
The biggest changes:
site_id
is required and no longer nullable in crsql_changes
This means that for selecting local only changes you need to do SELECT * FROM crsql_changes WHERE db_version > ? AND site_id = crsql_site_id()
rather than site_id IS NULL
Primary key columns may no longer be nullable. This was always the case but now it is explicitly enforced
- We now throw an error if any primary key columns are set to be nullable.
- Null primary keys are not allowed in any DB except SQLite.
- SQLite doesn't enforce uniqueness when a primary key is set to null. I.e., you can have many duplicate rows with a
null
value in the primary key column. - This latter problem completely breaks any attempts at merging
- ✅ 10x improvement in perf when migrating
crr
tables - ❌ 15% reduction in perf when writing to
crr
tables :( - ✅ 5x reduction in CRDT metadata (at the cost of the above write perf)
- Compilable under
libsql
- site id is now a required column in
crsql_changes
- release artifacts are zip files containing the properly named loadable extension. This removes the need for a rename step #385