pyturso 0.4.4rc1__tar.gz → 0.4.4rc2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/Cargo.lock +50 -47
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/Cargo.toml +12 -12
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/PKG-INFO +1 -1
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/Cargo.toml +1 -1
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/lib.rs +1 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/mvcc/database/checkpoint_state_machine.rs +71 -2
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/mvcc/database/mod.rs +13 -1
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/pager.rs +63 -8
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/wal.rs +63 -96
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/bloom_filter.rs +3 -2
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/execute.rs +2 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/Cargo.toml +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/README.md +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/build.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/example.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/py-bindings-db-aio.mdx +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/py-bindings-db.mdx +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/py-bindings-sync-aio.mdx +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/py-bindings-sync.mdx +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/py-bindings-tests-aio.mdx +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/py-bindings-tests.mdx +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/requirements-dev.txt +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/requirements.txt +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/src/lib.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/src/turso.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/src/turso_sync.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/tests/__init__.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/tests/test_database.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/tests/test_database_aio.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/tests/test_database_sync.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/tests/test_database_sync_aio.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/tests/utils.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/__init__.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/aio/__init__.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/aio/sync/__init__.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/lib.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/lib_aio.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/lib_sync.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/lib_sync_aio.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/py.typed +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/sync/__init__.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/bindings/python/turso/worker.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/assert.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/benches/benchmark.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/benches/json_benchmark.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/benches/mvcc_benchmark.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/benches/tpc_h_benchmark.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/build.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/busy.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/error.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/ext/dynamic.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/ext/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/ext/vtab_xconnect.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/fast_lock.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/function.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/functions/datetime.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/functions/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/functions/printf.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/functions/strftime.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/aggregate_operator.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/compiler.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/cursor.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/dbsp.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/expr_compiler.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/filter_operator.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/input_operator.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/join_operator.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/merge_operator.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/operator.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/persistence.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/project_operator.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/incremental/view.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/index_method/backing_btree.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/index_method/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/index_method/toy_vector_sparse_ivf.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/info.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/clock.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/common.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/completions.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/generic.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/io_uring.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/memory.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/unix.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/vfs.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/io/windows.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/json/cache.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/json/error.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/json/jsonb.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/json/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/json/ops.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/json/path.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/json/vtab.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/mvcc/clock.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/mvcc/cursor.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/mvcc/database/tests.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/mvcc/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/mvcc/persistent_storage/logical_log.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/mvcc/persistent_storage/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/numeric/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/numeric/nonnan.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/parameters.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/pragma.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/pseudo.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/schema.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/series.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/state_machine.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/statement.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/stats.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/btree.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/buffer_pool.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/checksum.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/database.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/encryption.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/journal_mode.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/page_cache.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/slot_bitmap.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/sqlite3_ondisk.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/state_machines.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/storage/subjournal.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/time/internal.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/time/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/aggregation.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/alter.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/analyze.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/attach.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/collate.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/compound_select.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/delete.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/display.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/emitter.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/expr.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/expression_index.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/fkeys.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/group_by.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/index.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/insert.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/integrity_check.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/logical.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/main_loop.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/optimizer/OPTIMIZER.md +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/optimizer/access_method.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/optimizer/constraints.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/optimizer/cost.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/optimizer/join.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/optimizer/lift_common_subexpressions.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/optimizer/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/optimizer/order.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/order_by.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/plan.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/planner.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/pragma.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/result_row.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/rollback.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/schema.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/select.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/subquery.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/transaction.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/trigger.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/trigger_exec.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/update.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/upsert.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/values.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/view.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/translate/window.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/types.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/util.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/uuid.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/affinity.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/builder.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/explain.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/hash_table.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/insn.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/likeop.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/metrics.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/rowset.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/sorter.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vdbe/value.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/concat.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/convert.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/distance_cos.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/distance_dot.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/distance_l2.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/jaccard.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/serialize.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/slice.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/operations/text.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vector/vector_types.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/core/vtab.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/extensions/core/Cargo.toml +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/extensions/core/README.md +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/extensions/core/build.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/extensions/core/src/functions.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/extensions/core/src/lib.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/extensions/core/src/types.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/extensions/core/src/vfs_modules.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/extensions/core/src/vtabs.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/Cargo.toml +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/src/atomic_enum.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/src/ext/agg_derive.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/src/ext/match_ignore_ascii_case.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/src/ext/mod.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/src/ext/scalars.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/src/ext/vfs_derive.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/src/ext/vtab_derive.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/src/lib.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/macros/src/test.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/Cargo.toml +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/README.md +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/benches/parser_benchmark.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/src/ast/check.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/src/ast/fmt.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/src/ast.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/src/error.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/src/lexer.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/src/lib.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/src/parser.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/parser/src/token.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/pyproject.toml +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit/Cargo.toml +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit/README.md +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit/bindgen.sh +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit/readme-sdk-kit.mdx +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit/src/bindings.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit/src/capi.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit/src/lib.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit/src/rsapi.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit/turso.h +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit-macros/Cargo.toml +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sdk-kit-macros/src/lib.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/.gitignore +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/Cargo.toml +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/database_replay_generator.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/database_sync_engine.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/database_sync_engine_io.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/database_sync_lazy_storage.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/database_sync_operations.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/database_tape.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/errors.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/io_operations.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/lib.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/server_proto.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/sparse_io.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/types.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/engine/src/wal_session.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/sdk-kit/Cargo.toml +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/sdk-kit/bindgen.sh +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/sdk-kit/src/bindings.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/sdk-kit/src/capi.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/sdk-kit/src/lib.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/sdk-kit/src/rsapi.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/sdk-kit/src/sync_engine_io.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/sdk-kit/src/turso_async_operation.rs +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/sync/sdk-kit/turso_sync.h +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/__init__.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/aio/__init__.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/aio/sync/__init__.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/lib.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/lib_aio.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/lib_sync.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/lib_sync_aio.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/py.typed +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/sync/__init__.py +0 -0
- {pyturso-0.4.4rc1 → pyturso-0.4.4rc2}/turso/worker.py +0 -0
|
@@ -418,12 +418,6 @@ dependencies = [
|
|
|
418
418
|
"which",
|
|
419
419
|
]
|
|
420
420
|
|
|
421
|
-
[[package]]
|
|
422
|
-
name = "bit-vec"
|
|
423
|
-
version = "0.4.4"
|
|
424
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
425
|
-
checksum = "02b4ff8b16e6076c3e14220b39fbc1fabb6737522281a388998046859400895f"
|
|
426
|
-
|
|
427
421
|
[[package]]
|
|
428
422
|
name = "bitflags"
|
|
429
423
|
version = "1.3.2"
|
|
@@ -467,15 +461,6 @@ dependencies = [
|
|
|
467
461
|
"generic-array",
|
|
468
462
|
]
|
|
469
463
|
|
|
470
|
-
[[package]]
|
|
471
|
-
name = "bloom"
|
|
472
|
-
version = "0.3.2"
|
|
473
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
474
|
-
checksum = "d00ac8e5056d6d65376a3c1aa5c7c34850d6949ace17f0266953a254eb3d6fe8"
|
|
475
|
-
dependencies = [
|
|
476
|
-
"bit-vec",
|
|
477
|
-
]
|
|
478
|
-
|
|
479
464
|
[[package]]
|
|
480
465
|
name = "branches"
|
|
481
466
|
version = "0.4.3"
|
|
@@ -896,7 +881,7 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
|
|
896
881
|
|
|
897
882
|
[[package]]
|
|
898
883
|
name = "core_tester"
|
|
899
|
-
version = "0.4.4-pre.
|
|
884
|
+
version = "0.4.4-pre.2"
|
|
900
885
|
dependencies = [
|
|
901
886
|
"anyhow",
|
|
902
887
|
"assert_cmd",
|
|
@@ -1592,6 +1577,18 @@ version = "0.1.9"
|
|
|
1592
1577
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1593
1578
|
checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
|
|
1594
1579
|
|
|
1580
|
+
[[package]]
|
|
1581
|
+
name = "fastbloom"
|
|
1582
|
+
version = "0.14.1"
|
|
1583
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1584
|
+
checksum = "4e7f34442dbe69c60fe8eaf58a8cafff81a1f278816d8ab4db255b3bef4ac3c4"
|
|
1585
|
+
dependencies = [
|
|
1586
|
+
"getrandom 0.3.2",
|
|
1587
|
+
"libm",
|
|
1588
|
+
"rand 0.9.2",
|
|
1589
|
+
"siphasher",
|
|
1590
|
+
]
|
|
1591
|
+
|
|
1595
1592
|
[[package]]
|
|
1596
1593
|
name = "fastrand"
|
|
1597
1594
|
version = "2.3.0"
|
|
@@ -2729,7 +2726,7 @@ dependencies = [
|
|
|
2729
2726
|
|
|
2730
2727
|
[[package]]
|
|
2731
2728
|
name = "limbo_completion"
|
|
2732
|
-
version = "0.4.4-pre.
|
|
2729
|
+
version = "0.4.4-pre.2"
|
|
2733
2730
|
dependencies = [
|
|
2734
2731
|
"mimalloc",
|
|
2735
2732
|
"turso_ext",
|
|
@@ -2737,7 +2734,7 @@ dependencies = [
|
|
|
2737
2734
|
|
|
2738
2735
|
[[package]]
|
|
2739
2736
|
name = "limbo_crypto"
|
|
2740
|
-
version = "0.4.4-pre.
|
|
2737
|
+
version = "0.4.4-pre.2"
|
|
2741
2738
|
dependencies = [
|
|
2742
2739
|
"blake3",
|
|
2743
2740
|
"data-encoding",
|
|
@@ -2750,7 +2747,7 @@ dependencies = [
|
|
|
2750
2747
|
|
|
2751
2748
|
[[package]]
|
|
2752
2749
|
name = "limbo_csv"
|
|
2753
|
-
version = "0.4.4-pre.
|
|
2750
|
+
version = "0.4.4-pre.2"
|
|
2754
2751
|
dependencies = [
|
|
2755
2752
|
"csv",
|
|
2756
2753
|
"mimalloc",
|
|
@@ -2760,7 +2757,7 @@ dependencies = [
|
|
|
2760
2757
|
|
|
2761
2758
|
[[package]]
|
|
2762
2759
|
name = "limbo_fuzzy"
|
|
2763
|
-
version = "0.4.4-pre.
|
|
2760
|
+
version = "0.4.4-pre.2"
|
|
2764
2761
|
dependencies = [
|
|
2765
2762
|
"mimalloc",
|
|
2766
2763
|
"turso_ext",
|
|
@@ -2768,7 +2765,7 @@ dependencies = [
|
|
|
2768
2765
|
|
|
2769
2766
|
[[package]]
|
|
2770
2767
|
name = "limbo_ipaddr"
|
|
2771
|
-
version = "0.4.4-pre.
|
|
2768
|
+
version = "0.4.4-pre.2"
|
|
2772
2769
|
dependencies = [
|
|
2773
2770
|
"ipnetwork",
|
|
2774
2771
|
"mimalloc",
|
|
@@ -2777,7 +2774,7 @@ dependencies = [
|
|
|
2777
2774
|
|
|
2778
2775
|
[[package]]
|
|
2779
2776
|
name = "limbo_percentile"
|
|
2780
|
-
version = "0.4.4-pre.
|
|
2777
|
+
version = "0.4.4-pre.2"
|
|
2781
2778
|
dependencies = [
|
|
2782
2779
|
"mimalloc",
|
|
2783
2780
|
"turso_ext",
|
|
@@ -2785,7 +2782,7 @@ dependencies = [
|
|
|
2785
2782
|
|
|
2786
2783
|
[[package]]
|
|
2787
2784
|
name = "limbo_regexp"
|
|
2788
|
-
version = "0.4.4-pre.
|
|
2785
|
+
version = "0.4.4-pre.2"
|
|
2789
2786
|
dependencies = [
|
|
2790
2787
|
"mimalloc",
|
|
2791
2788
|
"regex",
|
|
@@ -2794,7 +2791,7 @@ dependencies = [
|
|
|
2794
2791
|
|
|
2795
2792
|
[[package]]
|
|
2796
2793
|
name = "limbo_sim"
|
|
2797
|
-
version = "0.4.4-pre.
|
|
2794
|
+
version = "0.4.4-pre.2"
|
|
2798
2795
|
dependencies = [
|
|
2799
2796
|
"anyhow",
|
|
2800
2797
|
"bitflags 2.9.4",
|
|
@@ -2831,7 +2828,7 @@ dependencies = [
|
|
|
2831
2828
|
|
|
2832
2829
|
[[package]]
|
|
2833
2830
|
name = "limbo_sqlite_test_ext"
|
|
2834
|
-
version = "0.4.4-pre.
|
|
2831
|
+
version = "0.4.4-pre.2"
|
|
2835
2832
|
dependencies = [
|
|
2836
2833
|
"cc",
|
|
2837
2834
|
]
|
|
@@ -3718,7 +3715,7 @@ dependencies = [
|
|
|
3718
3715
|
|
|
3719
3716
|
[[package]]
|
|
3720
3717
|
name = "py-turso"
|
|
3721
|
-
version = "0.4.4-pre.
|
|
3718
|
+
version = "0.4.4-pre.2"
|
|
3722
3719
|
dependencies = [
|
|
3723
3720
|
"anyhow",
|
|
3724
3721
|
"pyo3",
|
|
@@ -4543,6 +4540,12 @@ dependencies = [
|
|
|
4543
4540
|
"cc",
|
|
4544
4541
|
]
|
|
4545
4542
|
|
|
4543
|
+
[[package]]
|
|
4544
|
+
name = "siphasher"
|
|
4545
|
+
version = "1.0.1"
|
|
4546
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
4547
|
+
checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d"
|
|
4548
|
+
|
|
4546
4549
|
[[package]]
|
|
4547
4550
|
name = "slab"
|
|
4548
4551
|
version = "0.4.9"
|
|
@@ -4595,7 +4598,7 @@ checksum = "d372029cb5195f9ab4e4b9aef550787dce78b124fcaee8d82519925defcd6f0d"
|
|
|
4595
4598
|
|
|
4596
4599
|
[[package]]
|
|
4597
4600
|
name = "sql_generation"
|
|
4598
|
-
version = "0.4.4-pre.
|
|
4601
|
+
version = "0.4.4-pre.2"
|
|
4599
4602
|
dependencies = [
|
|
4600
4603
|
"anarchist-readable-name-generator-lib",
|
|
4601
4604
|
"anyhow",
|
|
@@ -5299,7 +5302,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
|
|
5299
5302
|
|
|
5300
5303
|
[[package]]
|
|
5301
5304
|
name = "turso"
|
|
5302
|
-
version = "0.4.4-pre.
|
|
5305
|
+
version = "0.4.4-pre.2"
|
|
5303
5306
|
dependencies = [
|
|
5304
5307
|
"anyhow",
|
|
5305
5308
|
"bytes",
|
|
@@ -5323,14 +5326,14 @@ dependencies = [
|
|
|
5323
5326
|
|
|
5324
5327
|
[[package]]
|
|
5325
5328
|
name = "turso-dotnet"
|
|
5326
|
-
version = "0.4.4-pre.
|
|
5329
|
+
version = "0.4.4-pre.2"
|
|
5327
5330
|
dependencies = [
|
|
5328
5331
|
"turso_core",
|
|
5329
5332
|
]
|
|
5330
5333
|
|
|
5331
5334
|
[[package]]
|
|
5332
5335
|
name = "turso-java"
|
|
5333
|
-
version = "0.4.4-pre.
|
|
5336
|
+
version = "0.4.4-pre.2"
|
|
5334
5337
|
dependencies = [
|
|
5335
5338
|
"jni",
|
|
5336
5339
|
"thiserror 2.0.16",
|
|
@@ -5339,7 +5342,7 @@ dependencies = [
|
|
|
5339
5342
|
|
|
5340
5343
|
[[package]]
|
|
5341
5344
|
name = "turso_cli"
|
|
5342
|
-
version = "0.4.4-pre.
|
|
5345
|
+
version = "0.4.4-pre.2"
|
|
5343
5346
|
dependencies = [
|
|
5344
5347
|
"anyhow",
|
|
5345
5348
|
"bytes",
|
|
@@ -5380,7 +5383,7 @@ dependencies = [
|
|
|
5380
5383
|
|
|
5381
5384
|
[[package]]
|
|
5382
5385
|
name = "turso_core"
|
|
5383
|
-
version = "0.4.4-pre.
|
|
5386
|
+
version = "0.4.4-pre.2"
|
|
5384
5387
|
dependencies = [
|
|
5385
5388
|
"aegis",
|
|
5386
5389
|
"aes",
|
|
@@ -5388,7 +5391,6 @@ dependencies = [
|
|
|
5388
5391
|
"antithesis_sdk",
|
|
5389
5392
|
"arc-swap",
|
|
5390
5393
|
"bitflags 2.9.4",
|
|
5391
|
-
"bloom",
|
|
5392
5394
|
"branches",
|
|
5393
5395
|
"built",
|
|
5394
5396
|
"bumpalo",
|
|
@@ -5400,6 +5402,7 @@ dependencies = [
|
|
|
5400
5402
|
"either",
|
|
5401
5403
|
"env_logger 0.11.7",
|
|
5402
5404
|
"fallible-iterator",
|
|
5405
|
+
"fastbloom",
|
|
5403
5406
|
"hex",
|
|
5404
5407
|
"intrusive-collections",
|
|
5405
5408
|
"io-uring",
|
|
@@ -5447,7 +5450,7 @@ dependencies = [
|
|
|
5447
5450
|
|
|
5448
5451
|
[[package]]
|
|
5449
5452
|
name = "turso_dart"
|
|
5450
|
-
version = "0.4.4-pre.
|
|
5453
|
+
version = "0.4.4-pre.2"
|
|
5451
5454
|
dependencies = [
|
|
5452
5455
|
"flutter_rust_bridge",
|
|
5453
5456
|
"turso_core",
|
|
@@ -5455,7 +5458,7 @@ dependencies = [
|
|
|
5455
5458
|
|
|
5456
5459
|
[[package]]
|
|
5457
5460
|
name = "turso_ext"
|
|
5458
|
-
version = "0.4.4-pre.
|
|
5461
|
+
version = "0.4.4-pre.2"
|
|
5459
5462
|
dependencies = [
|
|
5460
5463
|
"chrono",
|
|
5461
5464
|
"getrandom 0.3.2",
|
|
@@ -5464,7 +5467,7 @@ dependencies = [
|
|
|
5464
5467
|
|
|
5465
5468
|
[[package]]
|
|
5466
5469
|
name = "turso_ext_tests"
|
|
5467
|
-
version = "0.4.4-pre.
|
|
5470
|
+
version = "0.4.4-pre.2"
|
|
5468
5471
|
dependencies = [
|
|
5469
5472
|
"env_logger 0.11.7",
|
|
5470
5473
|
"lazy_static",
|
|
@@ -5475,7 +5478,7 @@ dependencies = [
|
|
|
5475
5478
|
|
|
5476
5479
|
[[package]]
|
|
5477
5480
|
name = "turso_macros"
|
|
5478
|
-
version = "0.4.4-pre.
|
|
5481
|
+
version = "0.4.4-pre.2"
|
|
5479
5482
|
dependencies = [
|
|
5480
5483
|
"proc-macro2",
|
|
5481
5484
|
"quote",
|
|
@@ -5484,7 +5487,7 @@ dependencies = [
|
|
|
5484
5487
|
|
|
5485
5488
|
[[package]]
|
|
5486
5489
|
name = "turso_node"
|
|
5487
|
-
version = "0.4.4-pre.
|
|
5490
|
+
version = "0.4.4-pre.2"
|
|
5488
5491
|
dependencies = [
|
|
5489
5492
|
"chrono",
|
|
5490
5493
|
"napi",
|
|
@@ -5497,7 +5500,7 @@ dependencies = [
|
|
|
5497
5500
|
|
|
5498
5501
|
[[package]]
|
|
5499
5502
|
name = "turso_parser"
|
|
5500
|
-
version = "0.4.4-pre.
|
|
5503
|
+
version = "0.4.4-pre.2"
|
|
5501
5504
|
dependencies = [
|
|
5502
5505
|
"bitflags 2.9.4",
|
|
5503
5506
|
"criterion",
|
|
@@ -5514,7 +5517,7 @@ dependencies = [
|
|
|
5514
5517
|
|
|
5515
5518
|
[[package]]
|
|
5516
5519
|
name = "turso_sdk_kit"
|
|
5517
|
-
version = "0.4.4-pre.
|
|
5520
|
+
version = "0.4.4-pre.2"
|
|
5518
5521
|
dependencies = [
|
|
5519
5522
|
"bindgen",
|
|
5520
5523
|
"env_logger 0.11.7",
|
|
@@ -5527,7 +5530,7 @@ dependencies = [
|
|
|
5527
5530
|
|
|
5528
5531
|
[[package]]
|
|
5529
5532
|
name = "turso_sdk_kit_macros"
|
|
5530
|
-
version = "0.4.4-pre.
|
|
5533
|
+
version = "0.4.4-pre.2"
|
|
5531
5534
|
dependencies = [
|
|
5532
5535
|
"proc-macro2",
|
|
5533
5536
|
"quote",
|
|
@@ -5536,7 +5539,7 @@ dependencies = [
|
|
|
5536
5539
|
|
|
5537
5540
|
[[package]]
|
|
5538
5541
|
name = "turso_sqlite3"
|
|
5539
|
-
version = "0.4.4-pre.
|
|
5542
|
+
version = "0.4.4-pre.2"
|
|
5540
5543
|
dependencies = [
|
|
5541
5544
|
"env_logger 0.11.7",
|
|
5542
5545
|
"libc",
|
|
@@ -5549,7 +5552,7 @@ dependencies = [
|
|
|
5549
5552
|
|
|
5550
5553
|
[[package]]
|
|
5551
5554
|
name = "turso_stress"
|
|
5552
|
-
version = "0.4.4-pre.
|
|
5555
|
+
version = "0.4.4-pre.2"
|
|
5553
5556
|
dependencies = [
|
|
5554
5557
|
"antithesis_sdk",
|
|
5555
5558
|
"clap",
|
|
@@ -5565,7 +5568,7 @@ dependencies = [
|
|
|
5565
5568
|
|
|
5566
5569
|
[[package]]
|
|
5567
5570
|
name = "turso_sync_engine"
|
|
5568
|
-
version = "0.4.4-pre.
|
|
5571
|
+
version = "0.4.4-pre.2"
|
|
5569
5572
|
dependencies = [
|
|
5570
5573
|
"base64 0.22.1",
|
|
5571
5574
|
"bytes",
|
|
@@ -5592,7 +5595,7 @@ dependencies = [
|
|
|
5592
5595
|
|
|
5593
5596
|
[[package]]
|
|
5594
5597
|
name = "turso_sync_js"
|
|
5595
|
-
version = "0.4.4-pre.
|
|
5598
|
+
version = "0.4.4-pre.2"
|
|
5596
5599
|
dependencies = [
|
|
5597
5600
|
"genawaiter",
|
|
5598
5601
|
"napi",
|
|
@@ -5607,7 +5610,7 @@ dependencies = [
|
|
|
5607
5610
|
|
|
5608
5611
|
[[package]]
|
|
5609
5612
|
name = "turso_sync_sdk_kit"
|
|
5610
|
-
version = "0.4.4-pre.
|
|
5613
|
+
version = "0.4.4-pre.2"
|
|
5611
5614
|
dependencies = [
|
|
5612
5615
|
"bindgen",
|
|
5613
5616
|
"env_logger 0.11.7",
|
|
@@ -5624,7 +5627,7 @@ dependencies = [
|
|
|
5624
5627
|
|
|
5625
5628
|
[[package]]
|
|
5626
5629
|
name = "turso_whopper"
|
|
5627
|
-
version = "0.4.4-pre.
|
|
5630
|
+
version = "0.4.4-pre.2"
|
|
5628
5631
|
dependencies = [
|
|
5629
5632
|
"anyhow",
|
|
5630
5633
|
"clap",
|
|
@@ -6,24 +6,24 @@ members = ["bindings/python"]
|
|
|
6
6
|
exclude = ["perf/latency/limbo", "turso-test-runner"]
|
|
7
7
|
|
|
8
8
|
[workspace.package]
|
|
9
|
-
version = "0.4.4-pre.
|
|
9
|
+
version = "0.4.4-pre.2"
|
|
10
10
|
authors = ["the Limbo authors"]
|
|
11
11
|
edition = "2021"
|
|
12
12
|
license = "MIT"
|
|
13
13
|
repository = "https://github.com/tursodatabase/turso"
|
|
14
14
|
|
|
15
15
|
[workspace.dependencies]
|
|
16
|
-
turso = { path = "bindings/rust", version = "0.4.4-pre.
|
|
17
|
-
turso_node = { path = "bindings/javascript", version = "0.4.4-pre.
|
|
18
|
-
turso_sdk_kit = { path = "sdk-kit", version = "0.4.4-pre.
|
|
19
|
-
turso_sdk_kit_macros = { path = "sdk-kit-macros", version = "0.4.4-pre.
|
|
20
|
-
turso_sync_sdk_kit = { path = "sync/sdk-kit", version = "0.4.4-pre.
|
|
21
|
-
limbo_completion = { path = "extensions/completion", version = "0.4.4-pre.
|
|
22
|
-
turso_core = { path = "core", version = "0.4.4-pre.
|
|
23
|
-
turso_sync_engine = { path = "sync/engine", version = "0.4.4-pre.
|
|
24
|
-
turso_ext = { path = "extensions/core", version = "0.4.4-pre.
|
|
25
|
-
turso_macros = { path = "macros", version = "0.4.4-pre.
|
|
26
|
-
turso_parser = { path = "parser", version = "0.4.4-pre.
|
|
16
|
+
turso = { path = "bindings/rust", version = "0.4.4-pre.2" }
|
|
17
|
+
turso_node = { path = "bindings/javascript", version = "0.4.4-pre.2" }
|
|
18
|
+
turso_sdk_kit = { path = "sdk-kit", version = "0.4.4-pre.2" }
|
|
19
|
+
turso_sdk_kit_macros = { path = "sdk-kit-macros", version = "0.4.4-pre.2" }
|
|
20
|
+
turso_sync_sdk_kit = { path = "sync/sdk-kit", version = "0.4.4-pre.2" }
|
|
21
|
+
limbo_completion = { path = "extensions/completion", version = "0.4.4-pre.2" }
|
|
22
|
+
turso_core = { path = "core", version = "0.4.4-pre.2" }
|
|
23
|
+
turso_sync_engine = { path = "sync/engine", version = "0.4.4-pre.2" }
|
|
24
|
+
turso_ext = { path = "extensions/core", version = "0.4.4-pre.2" }
|
|
25
|
+
turso_macros = { path = "macros", version = "0.4.4-pre.2" }
|
|
26
|
+
turso_parser = { path = "parser", version = "0.4.4-pre.2" }
|
|
27
27
|
sql_generation = { path = "sql_generation" }
|
|
28
28
|
strum = { version = "0.26", features = ["derive"] }
|
|
29
29
|
strum_macros = "0.26"
|
|
@@ -86,13 +86,13 @@ intrusive-collections = "0.9.7"
|
|
|
86
86
|
roaring = "0.11.2"
|
|
87
87
|
simsimd = "6.5.3"
|
|
88
88
|
arc-swap = "1.7"
|
|
89
|
-
bloom = "0.3.2"
|
|
90
89
|
rustc-hash = "2.0"
|
|
91
90
|
either = { workspace = true }
|
|
92
91
|
tracing-subscriber.workspace = true
|
|
93
92
|
rapidhash = "4.1.1"
|
|
94
93
|
branches = { version = "0.4.3", default-features = false }
|
|
95
94
|
bumpalo = { version = "3", features = ["collections"] }
|
|
95
|
+
fastbloom = "0.14.1"
|
|
96
96
|
|
|
97
97
|
# Use pure-rust for Android to avoid C cross-compilation issues
|
|
98
98
|
[target.'cfg(target_os = "android")'.dependencies]
|
|
@@ -10,8 +10,8 @@ use crate::storage::pager::CreateBTreeFlags;
|
|
|
10
10
|
use crate::storage::wal::{CheckpointMode, TursoRwLock};
|
|
11
11
|
use crate::types::{IOCompletions, IOResult, ImmutableRecord, RecordCursor};
|
|
12
12
|
use crate::{
|
|
13
|
-
CheckpointResult, Completion, Connection, IOExt, LimboError, Pager, Result,
|
|
14
|
-
Value, ValueRef,
|
|
13
|
+
CheckpointResult, Completion, Connection, IOExt, LimboError, Pager, Result, SyncMode,
|
|
14
|
+
TransactionState, Value, ValueRef,
|
|
15
15
|
};
|
|
16
16
|
use parking_lot::RwLock;
|
|
17
17
|
use std::collections::{HashMap, HashSet};
|
|
@@ -47,6 +47,12 @@ pub enum CheckpointState {
|
|
|
47
47
|
TruncateLogicalLog,
|
|
48
48
|
FsyncLogicalLog,
|
|
49
49
|
CheckpointWal,
|
|
50
|
+
/// Fsync the database file after checkpoint, before truncating WAL.
|
|
51
|
+
/// This ensures durability: if we crash after WAL truncation but before DB fsync,
|
|
52
|
+
/// the data would be lost.
|
|
53
|
+
SyncDbFile,
|
|
54
|
+
/// Truncate the WAL file after DB file is safely synced (for TRUNCATE checkpoint mode)
|
|
55
|
+
TruncateWal,
|
|
50
56
|
Finalize,
|
|
51
57
|
}
|
|
52
58
|
|
|
@@ -114,6 +120,8 @@ pub struct CheckpointStateMachine<Clock: LogicalClock> {
|
|
|
114
120
|
/// process in a transaction we don't want to change the state as we assume we are already on a
|
|
115
121
|
/// write transaction and any failure will be cleared on vdbe error handling.
|
|
116
122
|
update_transaction_state: bool,
|
|
123
|
+
/// The synchronous mode for fsync operations. When set to Off, fsync is skipped.
|
|
124
|
+
sync_mode: SyncMode,
|
|
117
125
|
}
|
|
118
126
|
|
|
119
127
|
#[derive(Debug, PartialEq, Eq, Clone, Copy)]
|
|
@@ -146,6 +154,7 @@ impl<Clock: LogicalClock> CheckpointStateMachine<Clock> {
|
|
|
146
154
|
mvstore: Arc<MvStore<Clock>>,
|
|
147
155
|
connection: Arc<Connection>,
|
|
148
156
|
update_transaction_state: bool,
|
|
157
|
+
sync_mode: SyncMode,
|
|
149
158
|
) -> Self {
|
|
150
159
|
let checkpoint_lock = mvstore.blocking_checkpoint_lock.clone();
|
|
151
160
|
let index_id_to_index = connection
|
|
@@ -187,6 +196,7 @@ impl<Clock: LogicalClock> CheckpointStateMachine<Clock> {
|
|
|
187
196
|
index_id_to_index,
|
|
188
197
|
checkpoint_result: None,
|
|
189
198
|
update_transaction_state,
|
|
199
|
+
sync_mode,
|
|
190
200
|
}
|
|
191
201
|
}
|
|
192
202
|
|
|
@@ -1071,6 +1081,12 @@ impl<Clock: LogicalClock> CheckpointStateMachine<Clock> {
|
|
|
1071
1081
|
}
|
|
1072
1082
|
|
|
1073
1083
|
CheckpointState::FsyncLogicalLog => {
|
|
1084
|
+
// Skip fsync when synchronous mode is off
|
|
1085
|
+
if self.sync_mode == SyncMode::Off {
|
|
1086
|
+
tracing::debug!("Skipping fsync of logical log file (synchronous=off)");
|
|
1087
|
+
self.state = CheckpointState::CheckpointWal;
|
|
1088
|
+
return Ok(TransitionResult::Continue);
|
|
1089
|
+
}
|
|
1074
1090
|
tracing::debug!("Fsyncing logical log file");
|
|
1075
1091
|
let c = self.fsync_logical_log()?;
|
|
1076
1092
|
self.state = CheckpointState::CheckpointWal;
|
|
@@ -1087,6 +1103,59 @@ impl<Clock: LogicalClock> CheckpointStateMachine<Clock> {
|
|
|
1087
1103
|
match self.checkpoint_wal()? {
|
|
1088
1104
|
IOResult::Done(result) => {
|
|
1089
1105
|
self.checkpoint_result = Some(result);
|
|
1106
|
+
self.state = CheckpointState::SyncDbFile;
|
|
1107
|
+
Ok(TransitionResult::Continue)
|
|
1108
|
+
}
|
|
1109
|
+
IOResult::IO(io) => Ok(TransitionResult::Io(io)),
|
|
1110
|
+
}
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
CheckpointState::SyncDbFile => {
|
|
1114
|
+
// Fsync database file before truncating WAL.
|
|
1115
|
+
// This ensures durability: if we crash after WAL truncation but before DB fsync,
|
|
1116
|
+
// the checkpointed data would be lost.
|
|
1117
|
+
if self.sync_mode == SyncMode::Off {
|
|
1118
|
+
tracing::debug!("Skipping fsync of database file (synchronous=off)");
|
|
1119
|
+
self.state = CheckpointState::TruncateWal;
|
|
1120
|
+
return Ok(TransitionResult::Continue);
|
|
1121
|
+
}
|
|
1122
|
+
|
|
1123
|
+
let checkpoint_result = self
|
|
1124
|
+
.checkpoint_result
|
|
1125
|
+
.as_mut()
|
|
1126
|
+
.expect("checkpoint_result should be set");
|
|
1127
|
+
|
|
1128
|
+
// Only sync if we actually backfilled any frames
|
|
1129
|
+
if checkpoint_result.num_backfilled == 0 {
|
|
1130
|
+
self.state = CheckpointState::TruncateWal;
|
|
1131
|
+
return Ok(TransitionResult::Continue);
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
// Check if we already sent the sync
|
|
1135
|
+
if checkpoint_result.db_sync_sent {
|
|
1136
|
+
self.state = CheckpointState::TruncateWal;
|
|
1137
|
+
return Ok(TransitionResult::Continue);
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
tracing::debug!("Fsyncing database file before WAL truncation");
|
|
1141
|
+
let c = self.pager.db_file.sync(Completion::new_sync(|_| {}))?;
|
|
1142
|
+
checkpoint_result.db_sync_sent = true;
|
|
1143
|
+
Ok(TransitionResult::Io(IOCompletions::Single(c)))
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1146
|
+
CheckpointState::TruncateWal => {
|
|
1147
|
+
// Truncate WAL file after DB file is safely synced.
|
|
1148
|
+
// This must be done explicitly because MVCC calls wal.checkpoint() directly,
|
|
1149
|
+
// bypassing the pager's TruncateWalFile phase.
|
|
1150
|
+
let Some(wal) = &self.pager.wal else {
|
|
1151
|
+
panic!("No WAL to truncate");
|
|
1152
|
+
};
|
|
1153
|
+
let checkpoint_result = self
|
|
1154
|
+
.checkpoint_result
|
|
1155
|
+
.as_mut()
|
|
1156
|
+
.expect("checkpoint_result should be set");
|
|
1157
|
+
match wal.truncate_wal(checkpoint_result)? {
|
|
1158
|
+
IOResult::Done(()) => {
|
|
1090
1159
|
self.state = CheckpointState::Finalize;
|
|
1091
1160
|
Ok(TransitionResult::Continue)
|
|
1092
1161
|
}
|
|
@@ -27,7 +27,7 @@ use crate::IOExt;
|
|
|
27
27
|
use crate::LimboError;
|
|
28
28
|
use crate::Result;
|
|
29
29
|
use crate::ValueRef;
|
|
30
|
-
use crate::{Connection, Pager};
|
|
30
|
+
use crate::{Connection, Pager, SyncMode};
|
|
31
31
|
use crossbeam_skiplist::map::Entry;
|
|
32
32
|
use crossbeam_skiplist::{SkipMap, SkipSet};
|
|
33
33
|
use parking_lot::{Mutex, RwLock};
|
|
@@ -510,6 +510,8 @@ pub struct CommitStateMachine<Clock: LogicalClock> {
|
|
|
510
510
|
commit_coordinator: Arc<CommitCoordinator>,
|
|
511
511
|
header: Arc<RwLock<Option<DatabaseHeader>>>,
|
|
512
512
|
pager: Arc<Pager>,
|
|
513
|
+
/// The synchronous mode for fsync operations. When set to Off, fsync is skipped.
|
|
514
|
+
sync_mode: SyncMode,
|
|
513
515
|
_phantom: PhantomData<Clock>,
|
|
514
516
|
}
|
|
515
517
|
|
|
@@ -552,6 +554,7 @@ impl<Clock: LogicalClock> CommitStateMachine<Clock> {
|
|
|
552
554
|
connection: Arc<Connection>,
|
|
553
555
|
commit_coordinator: Arc<CommitCoordinator>,
|
|
554
556
|
header: Arc<RwLock<Option<DatabaseHeader>>>,
|
|
557
|
+
sync_mode: SyncMode,
|
|
555
558
|
) -> Self {
|
|
556
559
|
let pager = connection.pager.load().clone();
|
|
557
560
|
Self {
|
|
@@ -564,6 +567,7 @@ impl<Clock: LogicalClock> CommitStateMachine<Clock> {
|
|
|
564
567
|
commit_coordinator,
|
|
565
568
|
pager,
|
|
566
569
|
header,
|
|
570
|
+
sync_mode,
|
|
567
571
|
_phantom: PhantomData,
|
|
568
572
|
}
|
|
569
573
|
}
|
|
@@ -825,6 +829,12 @@ impl<Clock: LogicalClock> StateTransition for CommitStateMachine<Clock> {
|
|
|
825
829
|
}
|
|
826
830
|
|
|
827
831
|
CommitState::SyncLogicalLog { end_ts } => {
|
|
832
|
+
// Skip fsync when synchronous mode is off
|
|
833
|
+
if self.sync_mode == SyncMode::Off {
|
|
834
|
+
tracing::debug!("Skipping fsync of logical log (synchronous=off)");
|
|
835
|
+
self.state = CommitState::EndCommitLogicalLog { end_ts: *end_ts };
|
|
836
|
+
return Ok(TransitionResult::Continue);
|
|
837
|
+
}
|
|
828
838
|
let c = mvcc_store.storage.sync()?;
|
|
829
839
|
self.state = CommitState::EndCommitLogicalLog { end_ts: *end_ts };
|
|
830
840
|
// if Completion Completed without errors we can continue
|
|
@@ -894,6 +904,7 @@ impl<Clock: LogicalClock> StateTransition for CommitStateMachine<Clock> {
|
|
|
894
904
|
mvcc_store.clone(),
|
|
895
905
|
self.connection.clone(),
|
|
896
906
|
false,
|
|
907
|
+
self.connection.get_sync_mode(),
|
|
897
908
|
));
|
|
898
909
|
let state_machine = Mutex::new(state_machine);
|
|
899
910
|
self.state = CommitState::Checkpoint { state_machine };
|
|
@@ -2216,6 +2227,7 @@ impl<Clock: LogicalClock> MvStore<Clock> {
|
|
|
2216
2227
|
connection.clone(),
|
|
2217
2228
|
self.commit_coordinator.clone(),
|
|
2218
2229
|
self.global_header.clone(),
|
|
2230
|
+
connection.get_sync_mode(),
|
|
2219
2231
|
));
|
|
2220
2232
|
Ok(state_machine)
|
|
2221
2233
|
}
|