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
nullvalue in the primary key column. - This latter problem completely breaks any attempts at merging
- ✅ 10x improvement in perf when migrating
crrtables - ❌ 15% reduction in perf when writing to
crrtables :( - ✅ 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