pyturso 0.4.0rc16__tar.gz → 0.4.0rc17__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.0rc16 → pyturso-0.4.0rc17}/Cargo.lock +33 -41
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/Cargo.toml +20 -20
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/PKG-INFO +1 -1
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/py-bindings-sync.mdx +1 -1
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/src/turso_sync.rs +6 -6
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/tests/test_database.py +17 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/tests/test_database_sync.py +2 -2
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/tests/test_database_sync_aio.py +2 -2
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/lib_sync.py +2 -2
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/error.rs +2 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/lib.rs +17 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/mvcc/cursor.rs +10 -5
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/mvcc/database/tests.rs +34 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/pager.rs +94 -43
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/sqlite3_ondisk.rs +122 -1
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/wal.rs +8 -1
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/integrity_check.rs +1 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/bloom_filter.rs +70 -27
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/execute.rs +5 -1
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/hash_table.rs +50 -3
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/mod.rs +45 -3
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/src/test.rs +0 -1
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/database_sync_lazy_storage.rs +10 -10
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/types.rs +1 -1
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/sdk-kit/src/bindings.rs +4 -5
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/sdk-kit/src/rsapi.rs +2 -2
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/sdk-kit/turso_sync.h +2 -2
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/lib_sync.py +2 -2
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/README.md +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/build.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/example.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/py-bindings-db-aio.mdx +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/py-bindings-db.mdx +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/py-bindings-sync-aio.mdx +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/py-bindings-tests-aio.mdx +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/py-bindings-tests.mdx +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/requirements-dev.txt +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/requirements.txt +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/src/lib.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/src/turso.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/tests/__init__.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/tests/test_database_aio.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/__init__.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/aio/__init__.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/aio/sync/__init__.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/lib.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/lib_aio.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/lib_sync_aio.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/py.typed +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/sync/__init__.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/python/turso/worker.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/README.md +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/examples/example.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/examples/example_struct.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/src/lib.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/src/params.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/src/rows.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/src/transaction.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/src/value.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/bindings/rust/tests/integration_tests.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/assert.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/benches/benchmark.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/benches/json_benchmark.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/benches/mvcc_benchmark.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/benches/tpc_h_benchmark.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/build.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/ext/dynamic.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/ext/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/ext/vtab_xconnect.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/fast_lock.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/function.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/functions/datetime.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/functions/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/functions/printf.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/functions/strftime.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/aggregate_operator.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/compiler.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/cursor.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/dbsp.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/expr_compiler.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/filter_operator.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/input_operator.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/join_operator.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/merge_operator.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/operator.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/persistence.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/project_operator.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/incremental/view.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/index_method/backing_btree.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/index_method/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/index_method/toy_vector_sparse_ivf.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/info.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/clock.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/common.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/completions.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/generic.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/io_uring.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/memory.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/unix.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/vfs.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/io/windows.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/json/cache.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/json/error.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/json/jsonb.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/json/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/json/ops.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/json/path.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/json/vtab.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/mvcc/clock.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/mvcc/database/checkpoint_state_machine.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/mvcc/database/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/mvcc/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/mvcc/persistent_storage/logical_log.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/mvcc/persistent_storage/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/numeric/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/numeric/nonnan.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/parameters.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/pragma.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/pseudo.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/schema.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/series.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/state_machine.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/stats.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/btree.rs +2 -2
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/buffer_pool.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/checksum.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/database.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/encryption.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/page_cache.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/slot_bitmap.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/state_machines.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/storage/subjournal.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/time/internal.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/time/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/aggregation.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/alter.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/analyze.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/attach.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/collate.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/compound_select.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/delete.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/display.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/emitter.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/expr.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/expression_index.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/fkeys.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/group_by.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/index.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/insert.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/logical.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/main_loop.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/optimizer/OPTIMIZER.md +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/optimizer/access_method.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/optimizer/constraints.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/optimizer/cost.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/optimizer/join.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/optimizer/lift_common_subexpressions.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/optimizer/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/optimizer/order.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/order_by.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/plan.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/planner.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/pragma.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/result_row.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/rollback.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/schema.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/select.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/subquery.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/transaction.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/trigger.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/trigger_exec.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/update.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/upsert.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/values.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/view.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/translate/window.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/types.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/util.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/uuid.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/affinity.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/builder.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/explain.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/insn.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/likeop.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/metrics.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/rowset.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/sorter.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vdbe/value.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/concat.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/convert.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/distance_cos.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/distance_dot.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/distance_l2.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/jaccard.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/serialize.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/slice.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/operations/text.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vector/vector_types.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/core/vtab.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/extensions/core/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/extensions/core/README.md +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/extensions/core/build.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/extensions/core/src/functions.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/extensions/core/src/lib.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/extensions/core/src/types.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/extensions/core/src/vfs_modules.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/extensions/core/src/vtabs.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/src/atomic_enum.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/src/ext/agg_derive.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/src/ext/match_ignore_ascii_case.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/src/ext/mod.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/src/ext/scalars.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/src/ext/vfs_derive.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/src/ext/vtab_derive.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/macros/src/lib.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/README.md +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/benches/parser_benchmark.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/src/ast/check.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/src/ast/fmt.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/src/ast.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/src/error.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/src/lexer.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/src/lib.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/src/parser.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/parser/src/token.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/pyproject.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit/README.md +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit/bindgen.sh +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit/readme-sdk-kit.mdx +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit/src/bindings.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit/src/capi.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit/src/lib.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit/src/rsapi.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit/turso.h +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit-macros/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sdk-kit-macros/src/lib.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/.gitignore +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/database_replay_generator.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/database_sync_engine.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/database_sync_engine_io.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/database_sync_operations.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/database_tape.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/errors.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/io_operations.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/lib.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/server_proto.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/sparse_io.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/engine/src/wal_session.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/sdk-kit/Cargo.toml +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/sdk-kit/bindgen.sh +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/sdk-kit/src/capi.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/sdk-kit/src/lib.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/sdk-kit/src/sync_engine_io.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/sync/sdk-kit/src/turso_async_operation.rs +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/__init__.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/aio/__init__.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/aio/sync/__init__.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/lib.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/lib_aio.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/lib_sync_aio.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/py.typed +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/sync/__init__.py +0 -0
- {pyturso-0.4.0rc16 → pyturso-0.4.0rc17}/turso/worker.py +0 -0
|
@@ -104,15 +104,6 @@ dependencies = [
|
|
|
104
104
|
"backtrace",
|
|
105
105
|
]
|
|
106
106
|
|
|
107
|
-
[[package]]
|
|
108
|
-
name = "anarchist-readable-name-generator-lib"
|
|
109
|
-
version = "0.1.2"
|
|
110
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
111
|
-
checksum = "18a1e15a87b13ae79e04e07b3714fc41d5f6993dff11662fdbe0b207c6ad0fe0"
|
|
112
|
-
dependencies = [
|
|
113
|
-
"rand 0.8.5",
|
|
114
|
-
]
|
|
115
|
-
|
|
116
107
|
[[package]]
|
|
117
108
|
name = "anarchist-readable-name-generator-lib"
|
|
118
109
|
version = "0.2.0"
|
|
@@ -886,7 +877,7 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
|
|
886
877
|
|
|
887
878
|
[[package]]
|
|
888
879
|
name = "core_tester"
|
|
889
|
-
version = "0.4.0-pre.
|
|
880
|
+
version = "0.4.0-pre.17"
|
|
890
881
|
dependencies = [
|
|
891
882
|
"anyhow",
|
|
892
883
|
"assert_cmd",
|
|
@@ -2641,7 +2632,7 @@ dependencies = [
|
|
|
2641
2632
|
|
|
2642
2633
|
[[package]]
|
|
2643
2634
|
name = "limbo_completion"
|
|
2644
|
-
version = "0.4.0-pre.
|
|
2635
|
+
version = "0.4.0-pre.17"
|
|
2645
2636
|
dependencies = [
|
|
2646
2637
|
"mimalloc",
|
|
2647
2638
|
"turso_ext",
|
|
@@ -2649,7 +2640,7 @@ dependencies = [
|
|
|
2649
2640
|
|
|
2650
2641
|
[[package]]
|
|
2651
2642
|
name = "limbo_crypto"
|
|
2652
|
-
version = "0.4.0-pre.
|
|
2643
|
+
version = "0.4.0-pre.17"
|
|
2653
2644
|
dependencies = [
|
|
2654
2645
|
"blake3",
|
|
2655
2646
|
"data-encoding",
|
|
@@ -2662,7 +2653,7 @@ dependencies = [
|
|
|
2662
2653
|
|
|
2663
2654
|
[[package]]
|
|
2664
2655
|
name = "limbo_csv"
|
|
2665
|
-
version = "0.4.0-pre.
|
|
2656
|
+
version = "0.4.0-pre.17"
|
|
2666
2657
|
dependencies = [
|
|
2667
2658
|
"csv",
|
|
2668
2659
|
"mimalloc",
|
|
@@ -2672,7 +2663,7 @@ dependencies = [
|
|
|
2672
2663
|
|
|
2673
2664
|
[[package]]
|
|
2674
2665
|
name = "limbo_fuzzy"
|
|
2675
|
-
version = "0.4.0-pre.
|
|
2666
|
+
version = "0.4.0-pre.17"
|
|
2676
2667
|
dependencies = [
|
|
2677
2668
|
"mimalloc",
|
|
2678
2669
|
"turso_ext",
|
|
@@ -2680,7 +2671,7 @@ dependencies = [
|
|
|
2680
2671
|
|
|
2681
2672
|
[[package]]
|
|
2682
2673
|
name = "limbo_ipaddr"
|
|
2683
|
-
version = "0.4.0-pre.
|
|
2674
|
+
version = "0.4.0-pre.17"
|
|
2684
2675
|
dependencies = [
|
|
2685
2676
|
"ipnetwork",
|
|
2686
2677
|
"mimalloc",
|
|
@@ -2689,7 +2680,7 @@ dependencies = [
|
|
|
2689
2680
|
|
|
2690
2681
|
[[package]]
|
|
2691
2682
|
name = "limbo_percentile"
|
|
2692
|
-
version = "0.4.0-pre.
|
|
2683
|
+
version = "0.4.0-pre.17"
|
|
2693
2684
|
dependencies = [
|
|
2694
2685
|
"mimalloc",
|
|
2695
2686
|
"turso_ext",
|
|
@@ -2697,7 +2688,7 @@ dependencies = [
|
|
|
2697
2688
|
|
|
2698
2689
|
[[package]]
|
|
2699
2690
|
name = "limbo_regexp"
|
|
2700
|
-
version = "0.4.0-pre.
|
|
2691
|
+
version = "0.4.0-pre.17"
|
|
2701
2692
|
dependencies = [
|
|
2702
2693
|
"mimalloc",
|
|
2703
2694
|
"regex",
|
|
@@ -2706,7 +2697,7 @@ dependencies = [
|
|
|
2706
2697
|
|
|
2707
2698
|
[[package]]
|
|
2708
2699
|
name = "limbo_sim"
|
|
2709
|
-
version = "0.4.0-pre.
|
|
2700
|
+
version = "0.4.0-pre.17"
|
|
2710
2701
|
dependencies = [
|
|
2711
2702
|
"anyhow",
|
|
2712
2703
|
"bitflags 2.9.4",
|
|
@@ -2743,7 +2734,7 @@ dependencies = [
|
|
|
2743
2734
|
|
|
2744
2735
|
[[package]]
|
|
2745
2736
|
name = "limbo_sqlite_test_ext"
|
|
2746
|
-
version = "0.4.0-pre.
|
|
2737
|
+
version = "0.4.0-pre.17"
|
|
2747
2738
|
dependencies = [
|
|
2748
2739
|
"cc",
|
|
2749
2740
|
]
|
|
@@ -3569,7 +3560,7 @@ dependencies = [
|
|
|
3569
3560
|
|
|
3570
3561
|
[[package]]
|
|
3571
3562
|
name = "py-turso"
|
|
3572
|
-
version = "0.4.0-pre.
|
|
3563
|
+
version = "0.4.0-pre.17"
|
|
3573
3564
|
dependencies = [
|
|
3574
3565
|
"anyhow",
|
|
3575
3566
|
"pyo3",
|
|
@@ -4329,9 +4320,9 @@ checksum = "d372029cb5195f9ab4e4b9aef550787dce78b124fcaee8d82519925defcd6f0d"
|
|
|
4329
4320
|
|
|
4330
4321
|
[[package]]
|
|
4331
4322
|
name = "sql_generation"
|
|
4332
|
-
version = "0.4.0-pre.
|
|
4323
|
+
version = "0.4.0-pre.17"
|
|
4333
4324
|
dependencies = [
|
|
4334
|
-
"anarchist-readable-name-generator-lib
|
|
4325
|
+
"anarchist-readable-name-generator-lib",
|
|
4335
4326
|
"anyhow",
|
|
4336
4327
|
"garde",
|
|
4337
4328
|
"hex",
|
|
@@ -4957,7 +4948,7 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
|
|
4957
4948
|
|
|
4958
4949
|
[[package]]
|
|
4959
4950
|
name = "turso"
|
|
4960
|
-
version = "0.4.0-pre.
|
|
4951
|
+
version = "0.4.0-pre.17"
|
|
4961
4952
|
dependencies = [
|
|
4962
4953
|
"mimalloc",
|
|
4963
4954
|
"rand 0.9.2",
|
|
@@ -4972,7 +4963,7 @@ dependencies = [
|
|
|
4972
4963
|
|
|
4973
4964
|
[[package]]
|
|
4974
4965
|
name = "turso-java"
|
|
4975
|
-
version = "0.4.0-pre.
|
|
4966
|
+
version = "0.4.0-pre.17"
|
|
4976
4967
|
dependencies = [
|
|
4977
4968
|
"jni",
|
|
4978
4969
|
"thiserror 2.0.16",
|
|
@@ -4981,7 +4972,7 @@ dependencies = [
|
|
|
4981
4972
|
|
|
4982
4973
|
[[package]]
|
|
4983
4974
|
name = "turso_cli"
|
|
4984
|
-
version = "0.4.0-pre.
|
|
4975
|
+
version = "0.4.0-pre.17"
|
|
4985
4976
|
dependencies = [
|
|
4986
4977
|
"anyhow",
|
|
4987
4978
|
"cfg-if",
|
|
@@ -4993,6 +4984,7 @@ dependencies = [
|
|
|
4993
4984
|
"dirs 5.0.1",
|
|
4994
4985
|
"env_logger 0.11.7",
|
|
4995
4986
|
"include_dir",
|
|
4987
|
+
"itertools 0.14.0",
|
|
4996
4988
|
"libc",
|
|
4997
4989
|
"limbo_completion",
|
|
4998
4990
|
"miette",
|
|
@@ -5017,7 +5009,7 @@ dependencies = [
|
|
|
5017
5009
|
|
|
5018
5010
|
[[package]]
|
|
5019
5011
|
name = "turso_core"
|
|
5020
|
-
version = "0.4.0-pre.
|
|
5012
|
+
version = "0.4.0-pre.17"
|
|
5021
5013
|
dependencies = [
|
|
5022
5014
|
"aegis",
|
|
5023
5015
|
"aes",
|
|
@@ -5082,7 +5074,7 @@ dependencies = [
|
|
|
5082
5074
|
|
|
5083
5075
|
[[package]]
|
|
5084
5076
|
name = "turso_dart"
|
|
5085
|
-
version = "0.4.0-pre.
|
|
5077
|
+
version = "0.4.0-pre.17"
|
|
5086
5078
|
dependencies = [
|
|
5087
5079
|
"flutter_rust_bridge",
|
|
5088
5080
|
"turso_core",
|
|
@@ -5090,7 +5082,7 @@ dependencies = [
|
|
|
5090
5082
|
|
|
5091
5083
|
[[package]]
|
|
5092
5084
|
name = "turso_ext"
|
|
5093
|
-
version = "0.4.0-pre.
|
|
5085
|
+
version = "0.4.0-pre.17"
|
|
5094
5086
|
dependencies = [
|
|
5095
5087
|
"chrono",
|
|
5096
5088
|
"getrandom 0.3.2",
|
|
@@ -5099,7 +5091,7 @@ dependencies = [
|
|
|
5099
5091
|
|
|
5100
5092
|
[[package]]
|
|
5101
5093
|
name = "turso_ext_tests"
|
|
5102
|
-
version = "0.4.0-pre.
|
|
5094
|
+
version = "0.4.0-pre.17"
|
|
5103
5095
|
dependencies = [
|
|
5104
5096
|
"env_logger 0.11.7",
|
|
5105
5097
|
"lazy_static",
|
|
@@ -5110,7 +5102,7 @@ dependencies = [
|
|
|
5110
5102
|
|
|
5111
5103
|
[[package]]
|
|
5112
5104
|
name = "turso_macros"
|
|
5113
|
-
version = "0.4.0-pre.
|
|
5105
|
+
version = "0.4.0-pre.17"
|
|
5114
5106
|
dependencies = [
|
|
5115
5107
|
"proc-macro2",
|
|
5116
5108
|
"quote",
|
|
@@ -5119,7 +5111,7 @@ dependencies = [
|
|
|
5119
5111
|
|
|
5120
5112
|
[[package]]
|
|
5121
5113
|
name = "turso_node"
|
|
5122
|
-
version = "0.4.0-pre.
|
|
5114
|
+
version = "0.4.0-pre.17"
|
|
5123
5115
|
dependencies = [
|
|
5124
5116
|
"chrono",
|
|
5125
5117
|
"napi",
|
|
@@ -5132,7 +5124,7 @@ dependencies = [
|
|
|
5132
5124
|
|
|
5133
5125
|
[[package]]
|
|
5134
5126
|
name = "turso_parser"
|
|
5135
|
-
version = "0.4.0-pre.
|
|
5127
|
+
version = "0.4.0-pre.17"
|
|
5136
5128
|
dependencies = [
|
|
5137
5129
|
"bitflags 2.9.4",
|
|
5138
5130
|
"criterion",
|
|
@@ -5148,7 +5140,7 @@ dependencies = [
|
|
|
5148
5140
|
|
|
5149
5141
|
[[package]]
|
|
5150
5142
|
name = "turso_sdk_kit"
|
|
5151
|
-
version = "0.4.0-pre.
|
|
5143
|
+
version = "0.4.0-pre.17"
|
|
5152
5144
|
dependencies = [
|
|
5153
5145
|
"bindgen",
|
|
5154
5146
|
"env_logger 0.11.7",
|
|
@@ -5161,7 +5153,7 @@ dependencies = [
|
|
|
5161
5153
|
|
|
5162
5154
|
[[package]]
|
|
5163
5155
|
name = "turso_sdk_kit_macros"
|
|
5164
|
-
version = "0.4.0-pre.
|
|
5156
|
+
version = "0.4.0-pre.17"
|
|
5165
5157
|
dependencies = [
|
|
5166
5158
|
"proc-macro2",
|
|
5167
5159
|
"quote",
|
|
@@ -5170,7 +5162,7 @@ dependencies = [
|
|
|
5170
5162
|
|
|
5171
5163
|
[[package]]
|
|
5172
5164
|
name = "turso_sqlite3"
|
|
5173
|
-
version = "0.4.0-pre.
|
|
5165
|
+
version = "0.4.0-pre.17"
|
|
5174
5166
|
dependencies = [
|
|
5175
5167
|
"env_logger 0.11.7",
|
|
5176
5168
|
"libc",
|
|
@@ -5183,12 +5175,12 @@ dependencies = [
|
|
|
5183
5175
|
|
|
5184
5176
|
[[package]]
|
|
5185
5177
|
name = "turso_stress"
|
|
5186
|
-
version = "0.4.0-pre.
|
|
5178
|
+
version = "0.4.0-pre.17"
|
|
5187
5179
|
dependencies = [
|
|
5188
|
-
"anarchist-readable-name-generator-lib 0.1.2",
|
|
5189
5180
|
"antithesis_sdk",
|
|
5190
5181
|
"clap",
|
|
5191
5182
|
"hex",
|
|
5183
|
+
"rand 0.9.2",
|
|
5192
5184
|
"rusqlite",
|
|
5193
5185
|
"tempfile",
|
|
5194
5186
|
"tokio",
|
|
@@ -5200,7 +5192,7 @@ dependencies = [
|
|
|
5200
5192
|
|
|
5201
5193
|
[[package]]
|
|
5202
5194
|
name = "turso_sync_engine"
|
|
5203
|
-
version = "0.4.0-pre.
|
|
5195
|
+
version = "0.4.0-pre.17"
|
|
5204
5196
|
dependencies = [
|
|
5205
5197
|
"base64 0.22.1",
|
|
5206
5198
|
"bytes",
|
|
@@ -5228,7 +5220,7 @@ dependencies = [
|
|
|
5228
5220
|
|
|
5229
5221
|
[[package]]
|
|
5230
5222
|
name = "turso_sync_js"
|
|
5231
|
-
version = "0.4.0-pre.
|
|
5223
|
+
version = "0.4.0-pre.17"
|
|
5232
5224
|
dependencies = [
|
|
5233
5225
|
"genawaiter",
|
|
5234
5226
|
"napi",
|
|
@@ -5243,7 +5235,7 @@ dependencies = [
|
|
|
5243
5235
|
|
|
5244
5236
|
[[package]]
|
|
5245
5237
|
name = "turso_sync_sdk_kit"
|
|
5246
|
-
version = "0.4.0-pre.
|
|
5238
|
+
version = "0.4.0-pre.17"
|
|
5247
5239
|
dependencies = [
|
|
5248
5240
|
"bindgen",
|
|
5249
5241
|
"env_logger 0.11.7",
|
|
@@ -5260,7 +5252,7 @@ dependencies = [
|
|
|
5260
5252
|
|
|
5261
5253
|
[[package]]
|
|
5262
5254
|
name = "turso_whopper"
|
|
5263
|
-
version = "0.4.0-pre.
|
|
5255
|
+
version = "0.4.0-pre.17"
|
|
5264
5256
|
dependencies = [
|
|
5265
5257
|
"anyhow",
|
|
5266
5258
|
"clap",
|
|
@@ -6,32 +6,32 @@ members = ["bindings/python"]
|
|
|
6
6
|
exclude = ["perf/latency/limbo"]
|
|
7
7
|
|
|
8
8
|
[workspace.package]
|
|
9
|
-
version = "0.4.0-pre.
|
|
9
|
+
version = "0.4.0-pre.17"
|
|
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.0-pre.
|
|
17
|
-
turso_node = { path = "bindings/javascript", version = "0.4.0-pre.
|
|
18
|
-
turso_sdk_kit = { path = "sdk-kit", version = "0.4.0-pre.
|
|
19
|
-
turso_sdk_kit_macros = { path = "sdk-kit-macros", version = "0.4.0-pre.
|
|
20
|
-
turso_sync_sdk_kit = { path = "sync/sdk-kit", version = "0.4.0-pre.
|
|
21
|
-
limbo_completion = { path = "extensions/completion", version = "0.4.0-pre.
|
|
22
|
-
turso_core = { path = "core", version = "0.4.0-pre.
|
|
23
|
-
turso_sync_engine = { path = "sync/engine", version = "0.4.0-pre.
|
|
24
|
-
limbo_crypto = { path = "extensions/crypto", version = "0.4.0-pre.
|
|
25
|
-
limbo_csv = { path = "extensions/csv", version = "0.4.0-pre.
|
|
26
|
-
turso_ext = { path = "extensions/core", version = "0.4.0-pre.
|
|
27
|
-
turso_ext_tests = { path = "extensions/tests", version = "0.4.0-pre.
|
|
28
|
-
limbo_ipaddr = { path = "extensions/ipaddr", version = "0.4.0-pre.
|
|
29
|
-
turso_macros = { path = "macros", version = "0.4.0-pre.
|
|
30
|
-
limbo_percentile = { path = "extensions/percentile", version = "0.4.0-pre.
|
|
31
|
-
limbo_regexp = { path = "extensions/regexp", version = "0.4.0-pre.
|
|
32
|
-
limbo_uuid = { path = "extensions/uuid", version = "0.4.0-pre.
|
|
33
|
-
turso_parser = { path = "parser", version = "0.4.0-pre.
|
|
34
|
-
limbo_fuzzy = { path = "extensions/fuzzy", version = "0.4.0-pre.
|
|
16
|
+
turso = { path = "bindings/rust", version = "0.4.0-pre.17" }
|
|
17
|
+
turso_node = { path = "bindings/javascript", version = "0.4.0-pre.17" }
|
|
18
|
+
turso_sdk_kit = { path = "sdk-kit", version = "0.4.0-pre.17" }
|
|
19
|
+
turso_sdk_kit_macros = { path = "sdk-kit-macros", version = "0.4.0-pre.17" }
|
|
20
|
+
turso_sync_sdk_kit = { path = "sync/sdk-kit", version = "0.4.0-pre.17" }
|
|
21
|
+
limbo_completion = { path = "extensions/completion", version = "0.4.0-pre.17" }
|
|
22
|
+
turso_core = { path = "core", version = "0.4.0-pre.17" }
|
|
23
|
+
turso_sync_engine = { path = "sync/engine", version = "0.4.0-pre.17" }
|
|
24
|
+
limbo_crypto = { path = "extensions/crypto", version = "0.4.0-pre.17" }
|
|
25
|
+
limbo_csv = { path = "extensions/csv", version = "0.4.0-pre.17" }
|
|
26
|
+
turso_ext = { path = "extensions/core", version = "0.4.0-pre.17" }
|
|
27
|
+
turso_ext_tests = { path = "extensions/tests", version = "0.4.0-pre.17" }
|
|
28
|
+
limbo_ipaddr = { path = "extensions/ipaddr", version = "0.4.0-pre.17" }
|
|
29
|
+
turso_macros = { path = "macros", version = "0.4.0-pre.17" }
|
|
30
|
+
limbo_percentile = { path = "extensions/percentile", version = "0.4.0-pre.17" }
|
|
31
|
+
limbo_regexp = { path = "extensions/regexp", version = "0.4.0-pre.17" }
|
|
32
|
+
limbo_uuid = { path = "extensions/uuid", version = "0.4.0-pre.17" }
|
|
33
|
+
turso_parser = { path = "parser", version = "0.4.0-pre.17" }
|
|
34
|
+
limbo_fuzzy = { path = "extensions/fuzzy", version = "0.4.0-pre.17" }
|
|
35
35
|
sql_generation = { path = "sql_generation" }
|
|
36
36
|
strum = { version = "0.26", features = ["derive"] }
|
|
37
37
|
strum_macros = "0.26"
|
|
@@ -55,7 +55,7 @@ class PartialSyncQueryBootstrap:
|
|
|
55
55
|
class PartialSyncOpts:
|
|
56
56
|
bootstrap_strategy: Union[PartialSyncPrefixBootstrap, PartialSyncQueryBootstrap]
|
|
57
57
|
segment_size: Optional[int] = None
|
|
58
|
-
|
|
58
|
+
prefetch: Optional[bool] = None
|
|
59
59
|
|
|
60
60
|
def connect_sync(
|
|
61
61
|
path: str, # path to the main database file locally
|
|
@@ -27,7 +27,7 @@ pub struct PyTursoPartialSyncOpts {
|
|
|
27
27
|
// query bootstrap strategy which will enable partial sync which lazily pull necessary pages on demand and bootstrap db with pages touched by the server with given SQL query
|
|
28
28
|
pub bootstrap_strategy_query: Option<String>,
|
|
29
29
|
pub segment_size: Option<usize>,
|
|
30
|
-
pub
|
|
30
|
+
pub prefetch: Option<bool>,
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
#[pymethods]
|
|
@@ -37,19 +37,19 @@ impl PyTursoPartialSyncOpts {
|
|
|
37
37
|
bootstrap_strategy_prefix=None,
|
|
38
38
|
bootstrap_strategy_query=None,
|
|
39
39
|
segment_size=None,
|
|
40
|
-
|
|
40
|
+
prefetch=None,
|
|
41
41
|
))]
|
|
42
42
|
fn new(
|
|
43
43
|
bootstrap_strategy_prefix: Option<usize>,
|
|
44
44
|
bootstrap_strategy_query: Option<String>,
|
|
45
45
|
segment_size: Option<usize>,
|
|
46
|
-
|
|
46
|
+
prefetch: Option<bool>,
|
|
47
47
|
) -> Self {
|
|
48
48
|
Self {
|
|
49
49
|
bootstrap_strategy_prefix,
|
|
50
50
|
bootstrap_strategy_query,
|
|
51
51
|
segment_size,
|
|
52
|
-
|
|
52
|
+
prefetch,
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
}
|
|
@@ -124,7 +124,7 @@ pub fn py_turso_sync_new(
|
|
|
124
124
|
Some(PartialSyncOpts {
|
|
125
125
|
bootstrap_strategy: PartialBootstrapStrategy::Prefix { length },
|
|
126
126
|
segment_size: config.segment_size.unwrap_or(0),
|
|
127
|
-
|
|
127
|
+
prefetch: config.prefetch.unwrap_or(false),
|
|
128
128
|
})
|
|
129
129
|
} else {
|
|
130
130
|
config
|
|
@@ -135,7 +135,7 @@ pub fn py_turso_sync_new(
|
|
|
135
135
|
query: query.clone(),
|
|
136
136
|
},
|
|
137
137
|
segment_size: config.segment_size.unwrap_or(0),
|
|
138
|
-
|
|
138
|
+
prefetch: config.prefetch.unwrap_or(false),
|
|
139
139
|
})
|
|
140
140
|
}
|
|
141
141
|
}
|
|
@@ -1478,3 +1478,20 @@ def test_insert_returning_single_and_multiple_commit_without_consuming(provider)
|
|
|
1478
1478
|
finally:
|
|
1479
1479
|
conn.close()
|
|
1480
1480
|
|
|
1481
|
+
|
|
1482
|
+
@pytest.mark.parametrize("provider", ["sqlite3", "turso"])
|
|
1483
|
+
def test_pragma_integrity_check(provider):
|
|
1484
|
+
conn = connect(provider, ":memory:")
|
|
1485
|
+
cursor = conn.cursor()
|
|
1486
|
+
cursor.execute("PRAGMA integrity_check")
|
|
1487
|
+
|
|
1488
|
+
# Verify fetchone returns the expected result, not None
|
|
1489
|
+
# Bug: missing add_pragma_result_column in translate_integrity_check
|
|
1490
|
+
# caused column_count to be 0, making execute() finalize the statement
|
|
1491
|
+
# and leaving fetchone() to return None
|
|
1492
|
+
row = cursor.fetchone()
|
|
1493
|
+
assert row is not None, "PRAGMA integrity_check should return a row"
|
|
1494
|
+
assert row == ("ok",)
|
|
1495
|
+
|
|
1496
|
+
conn.close()
|
|
1497
|
+
|
|
@@ -208,7 +208,7 @@ def test_partial_sync_segment_size():
|
|
|
208
208
|
print(time.time() - start)
|
|
209
209
|
assert conn_partial.stats().network_received_bytes > 2000 * 1024
|
|
210
210
|
|
|
211
|
-
def
|
|
211
|
+
def test_partial_sync_prefetch():
|
|
212
212
|
# turso.setup_logging(level=logging.DEBUG)
|
|
213
213
|
|
|
214
214
|
name = random_str()
|
|
@@ -229,7 +229,7 @@ def test_partial_sync_speculative_load():
|
|
|
229
229
|
partial_sync_opts=turso.sync.PartialSyncOpts(
|
|
230
230
|
bootstrap_strategy=turso.sync.PartialSyncPrefixBootstrap(length=128 * 1024),
|
|
231
231
|
segment_size=4 * 1024,
|
|
232
|
-
|
|
232
|
+
prefetch=True,
|
|
233
233
|
),
|
|
234
234
|
)
|
|
235
235
|
assert conn_partial.execute("SELECT LENGTH(x) FROM t LIMIT 1").fetchall() == [(1024,)]
|
|
@@ -214,7 +214,7 @@ async def test_partial_sync_segment_size():
|
|
|
214
214
|
assert (await conn_partial.stats()).network_received_bytes > 2000 * 1024
|
|
215
215
|
|
|
216
216
|
@pytest.mark.asyncio
|
|
217
|
-
async def
|
|
217
|
+
async def test_partial_sync_prefetch():
|
|
218
218
|
# turso.setup_logging(level=logging.DEBUG)
|
|
219
219
|
|
|
220
220
|
name = random_str()
|
|
@@ -236,7 +236,7 @@ async def test_partial_sync_speculative_load():
|
|
|
236
236
|
partial_sync_opts=turso.aio.sync.PartialSyncOpts(
|
|
237
237
|
bootstrap_strategy=turso.aio.sync.PartialSyncPrefixBootstrap(length=128*1024),
|
|
238
238
|
segment_size=4 * 1024,
|
|
239
|
-
|
|
239
|
+
prefetch=True,
|
|
240
240
|
),
|
|
241
241
|
)
|
|
242
242
|
assert await (await conn_partial.execute("SELECT LENGTH(x) FROM t LIMIT 1")).fetchall() == [(1024,)]
|
|
@@ -43,7 +43,7 @@ class PartialSyncQueryBootstrap:
|
|
|
43
43
|
class PartialSyncOpts:
|
|
44
44
|
bootstrap_strategy: Union[PartialSyncPrefixBootstrap, PartialSyncQueryBootstrap]
|
|
45
45
|
segment_size: Optional[int] = None
|
|
46
|
-
|
|
46
|
+
prefetch: Optional[bool] = None
|
|
47
47
|
|
|
48
48
|
class _HttpContext:
|
|
49
49
|
"""
|
|
@@ -451,7 +451,7 @@ def connect_sync(
|
|
|
451
451
|
bootstrap_strategy_prefix=prefix_len,
|
|
452
452
|
bootstrap_strategy_query=query_str,
|
|
453
453
|
segment_size=partial_sync_opts.segment_size,
|
|
454
|
-
|
|
454
|
+
prefetch=partial_sync_opts.prefetch
|
|
455
455
|
) if partial_sync_opts is not None else None,
|
|
456
456
|
)
|
|
457
457
|
|
|
@@ -77,6 +77,8 @@ pub enum LimboError {
|
|
|
77
77
|
InvalidBlobSize(usize),
|
|
78
78
|
#[error("Planning error: {0}")]
|
|
79
79
|
PlanningError(String),
|
|
80
|
+
#[error("Checkpoint failed: {0}")]
|
|
81
|
+
CheckpointFailed(String),
|
|
80
82
|
}
|
|
81
83
|
|
|
82
84
|
// We only propagate the error kind so we can avoid string allocation in hot path and copying/cloning enums is cheaper
|
|
@@ -192,6 +192,18 @@ enum TransactionState {
|
|
|
192
192
|
None,
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
+
impl TransactionState {
|
|
196
|
+
/// Whether the transaction is a write transaction that changes the schema
|
|
197
|
+
pub fn is_ddl_write_tx(&self) -> bool {
|
|
198
|
+
matches!(
|
|
199
|
+
self,
|
|
200
|
+
TransactionState::Write {
|
|
201
|
+
schema_did_change: true
|
|
202
|
+
}
|
|
203
|
+
)
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
195
207
|
#[derive(Debug, AtomicEnum, Clone, Copy, PartialEq, Eq)]
|
|
196
208
|
pub enum SyncMode {
|
|
197
209
|
Off = 0,
|
|
@@ -1877,6 +1889,11 @@ impl Connection {
|
|
|
1877
1889
|
|
|
1878
1890
|
if !force_commit {
|
|
1879
1891
|
// remove all non-commited changes in case if WAL session left some suffix without commit frame
|
|
1892
|
+
if let Some(mv_store) = self.mv_store().as_ref() {
|
|
1893
|
+
if let Some(tx_id) = self.get_mv_tx_id() {
|
|
1894
|
+
mv_store.rollback_tx(tx_id, pager.clone(), self);
|
|
1895
|
+
}
|
|
1896
|
+
}
|
|
1880
1897
|
pager.rollback(false, self, true);
|
|
1881
1898
|
}
|
|
1882
1899
|
if let Some(err) = commit_err {
|
|
@@ -378,7 +378,7 @@ impl<Clock: LogicalClock + 'static> MvccLazyCursor<Clock> {
|
|
|
378
378
|
/// transactions are not conflicting.
|
|
379
379
|
/// Therefore, we will always choose the highest rowid in the table, regardless of the visibility of the row to the
|
|
380
380
|
/// transaction.
|
|
381
|
-
pub fn get_next_rowid(&mut self) -> Result<IOResult<i64>> {
|
|
381
|
+
pub fn get_next_rowid(&mut self) -> Result<IOResult<(i64, i64)>> {
|
|
382
382
|
// lock so we don't get same two rowids
|
|
383
383
|
let lock = self.next_rowid_lock.clone();
|
|
384
384
|
let _lock = lock.write();
|
|
@@ -392,7 +392,11 @@ impl<Clock: LogicalClock + 'static> MvccLazyCursor<Clock> {
|
|
|
392
392
|
"rowid overflow, random rowids not implemented yet".to_string(),
|
|
393
393
|
));
|
|
394
394
|
}
|
|
395
|
-
|
|
395
|
+
|
|
396
|
+
let prev_max_rowid = rowid.to_int_or_panic();
|
|
397
|
+
let new_row_id = prev_max_rowid + 1;
|
|
398
|
+
tracing::trace!("new_row_id={new_row_id}");
|
|
399
|
+
Ok((new_row_id, prev_max_rowid))
|
|
396
400
|
};
|
|
397
401
|
match self.current_pos.borrow().clone() {
|
|
398
402
|
CursorPosition::Loaded {
|
|
@@ -420,14 +424,14 @@ impl<Clock: LogicalClock + 'static> MvccLazyCursor<Clock> {
|
|
|
420
424
|
}
|
|
421
425
|
CursorPosition::BeforeFirst => {
|
|
422
426
|
let res = match last_rowid_in_mvcc_index {
|
|
423
|
-
None => 1,
|
|
427
|
+
None => (1, 0),
|
|
424
428
|
Some(k) => incremented_rowid(&k)?,
|
|
425
429
|
};
|
|
426
430
|
Ok(IOResult::Done(res))
|
|
427
431
|
}
|
|
428
432
|
CursorPosition::End => {
|
|
429
433
|
let res = match last_rowid_in_mvcc_index {
|
|
430
|
-
None => 1,
|
|
434
|
+
None => (1, 0),
|
|
431
435
|
Some(k) => incremented_rowid(&k)?,
|
|
432
436
|
};
|
|
433
437
|
Ok(IOResult::Done(res))
|
|
@@ -1409,7 +1413,7 @@ impl<Clock: LogicalClock + 'static> CursorTrait for MvccLazyCursor<Clock> {
|
|
|
1409
1413
|
self.tx_id,
|
|
1410
1414
|
&mut self.table_iterator,
|
|
1411
1415
|
);
|
|
1412
|
-
let exists = if let Some(rowid) = rowid {
|
|
1416
|
+
let exists = if let Some(rowid) = &rowid {
|
|
1413
1417
|
let RowKey::Int(rowid) = rowid.row_id else {
|
|
1414
1418
|
panic!("Rowid is not an integer in mvcc table cursor");
|
|
1415
1419
|
};
|
|
@@ -1417,6 +1421,7 @@ impl<Clock: LogicalClock + 'static> CursorTrait for MvccLazyCursor<Clock> {
|
|
|
1417
1421
|
} else {
|
|
1418
1422
|
false
|
|
1419
1423
|
};
|
|
1424
|
+
tracing::trace!("Row exists: {exists} find={int_key} got={rowid:?}");
|
|
1420
1425
|
if exists {
|
|
1421
1426
|
self.current_pos.replace(CursorPosition::Loaded {
|
|
1422
1427
|
row_id: RowID {
|
|
@@ -1935,3 +1935,37 @@ fn test_cursor_with_btree_and_mvcc_delete_after_checkpoint() {
|
|
|
1935
1935
|
let rows = get_rows(&conn, "SELECT * FROM t order by x desc");
|
|
1936
1936
|
assert_eq!(rows.len(), 0);
|
|
1937
1937
|
}
|
|
1938
|
+
|
|
1939
|
+
#[test]
|
|
1940
|
+
fn test_skips_updated_rowid() {
|
|
1941
|
+
tracing_subscriber::fmt()
|
|
1942
|
+
.with_ansi(false)
|
|
1943
|
+
.with_max_level(tracing_subscriber::filter::LevelFilter::TRACE)
|
|
1944
|
+
.init();
|
|
1945
|
+
let db = MvccTestDbNoConn::new_with_random_db();
|
|
1946
|
+
let conn = db.connect();
|
|
1947
|
+
|
|
1948
|
+
conn.execute("CREATE TABLE t(a INTEGER PRIMARY KEY AUTOINCREMENT)")
|
|
1949
|
+
.unwrap();
|
|
1950
|
+
|
|
1951
|
+
// we insert with default values
|
|
1952
|
+
conn.execute("INSERT INTO t DEFAULT VALUES").unwrap();
|
|
1953
|
+
let rows = get_rows(&conn, "SELECT * FROM sqlite_sequence");
|
|
1954
|
+
dbg!(&rows);
|
|
1955
|
+
assert_eq!(rows.len(), 1);
|
|
1956
|
+
assert_eq!(rows[0][1].as_int().unwrap(), 1);
|
|
1957
|
+
|
|
1958
|
+
// we update the rowid to +1
|
|
1959
|
+
conn.execute("UPDATE t SET a = a + 1").unwrap();
|
|
1960
|
+
let rows = get_rows(&conn, "SELECT * FROM sqlite_sequence");
|
|
1961
|
+
dbg!(&rows);
|
|
1962
|
+
assert_eq!(rows.len(), 1);
|
|
1963
|
+
assert_eq!(rows[0][1].as_int().unwrap(), 1);
|
|
1964
|
+
|
|
1965
|
+
// we insert with default values again
|
|
1966
|
+
conn.execute("INSERT INTO t DEFAULT VALUES").unwrap();
|
|
1967
|
+
let rows = get_rows(&conn, "SELECT * FROM sqlite_sequence");
|
|
1968
|
+
dbg!(&rows);
|
|
1969
|
+
assert_eq!(rows.len(), 1);
|
|
1970
|
+
assert_eq!(rows[0][1].as_int().unwrap(), 3);
|
|
1971
|
+
}
|