pyturso 0.4.3rc2__tar.gz → 0.4.4__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.3rc2 → pyturso-0.4.4}/Cargo.lock +50 -47
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/Cargo.toml +12 -12
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/PKG-INFO +1 -1
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/src/turso.rs +7 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/Cargo.toml +1 -1
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/busy.rs +19 -40
- pyturso-0.4.3rc2/core/lib.rs → pyturso-0.4.4/core/connection.rs +66 -1294
- pyturso-0.4.4/core/io/clock.rs +150 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/io/generic.rs +8 -3
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/io/io_uring.rs +7 -3
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/io/memory.rs +8 -5
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/io/mod.rs +1 -1
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/io/unix.rs +7 -3
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/io/vfs.rs +7 -3
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/io/windows.rs +8 -5
- pyturso-0.4.4/core/lib.rs +1270 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/mvcc/database/checkpoint_state_machine.rs +71 -2
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/mvcc/database/mod.rs +13 -1
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/statement.rs +2 -2
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/pager.rs +139 -79
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/sqlite3_ondisk.rs +14 -3
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/wal.rs +269 -247
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/optimizer/mod.rs +3 -5
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/schema.rs +3 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/util.rs +269 -152
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/bloom_filter.rs +3 -2
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/execute.rs +286 -293
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/mod.rs +19 -42
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/sorter.rs +19 -1
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/value.rs +8 -1
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/src/parser.rs +8 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit/src/bindings.rs +1 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit/src/rsapi.rs +6 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/database_sync_engine.rs +4 -4
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/sparse_io.rs +8 -3
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/types.rs +1 -1
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/sdk-kit/src/capi.rs +0 -3
- pyturso-0.4.3rc2/core/io/clock.rs +0 -103
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/Cargo.toml +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/README.md +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/build.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/example.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/py-bindings-db-aio.mdx +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/py-bindings-db.mdx +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/py-bindings-sync-aio.mdx +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/py-bindings-sync.mdx +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/py-bindings-tests-aio.mdx +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/py-bindings-tests.mdx +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/requirements-dev.txt +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/requirements.txt +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/src/lib.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/src/turso_sync.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/tests/__init__.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/tests/test_database.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/tests/test_database_aio.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/tests/test_database_sync.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/tests/test_database_sync_aio.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/tests/utils.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/__init__.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/aio/__init__.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/aio/sync/__init__.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/lib.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/lib_aio.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/lib_sync.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/lib_sync_aio.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/py.typed +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/sync/__init__.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/bindings/python/turso/worker.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/assert.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/benches/benchmark.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/benches/json_benchmark.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/benches/mvcc_benchmark.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/benches/tpc_h_benchmark.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/build.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/error.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/ext/dynamic.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/ext/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/ext/vtab_xconnect.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/fast_lock.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/function.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/functions/datetime.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/functions/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/functions/printf.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/functions/strftime.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/aggregate_operator.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/compiler.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/cursor.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/dbsp.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/expr_compiler.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/filter_operator.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/input_operator.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/join_operator.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/merge_operator.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/operator.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/persistence.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/project_operator.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/incremental/view.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/index_method/backing_btree.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/index_method/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/index_method/toy_vector_sparse_ivf.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/info.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/io/common.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/io/completions.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/json/cache.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/json/error.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/json/jsonb.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/json/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/json/ops.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/json/path.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/json/vtab.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/mvcc/clock.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/mvcc/cursor.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/mvcc/database/tests.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/mvcc/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/mvcc/persistent_storage/logical_log.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/mvcc/persistent_storage/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/numeric/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/numeric/nonnan.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/parameters.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/pragma.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/pseudo.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/schema.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/series.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/state_machine.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/stats.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/btree.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/buffer_pool.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/checksum.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/database.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/encryption.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/journal_mode.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/page_cache.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/slot_bitmap.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/state_machines.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/storage/subjournal.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/time/internal.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/time/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/aggregation.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/alter.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/analyze.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/attach.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/collate.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/compound_select.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/delete.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/display.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/emitter.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/expr.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/expression_index.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/fkeys.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/group_by.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/index.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/insert.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/integrity_check.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/logical.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/main_loop.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/optimizer/OPTIMIZER.md +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/optimizer/access_method.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/optimizer/constraints.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/optimizer/cost.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/optimizer/join.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/optimizer/lift_common_subexpressions.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/optimizer/order.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/order_by.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/plan.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/planner.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/pragma.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/result_row.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/rollback.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/select.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/subquery.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/transaction.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/trigger.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/trigger_exec.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/update.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/upsert.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/values.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/view.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/translate/window.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/types.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/uuid.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/affinity.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/builder.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/explain.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/hash_table.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/insn.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/likeop.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/metrics.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vdbe/rowset.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/concat.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/convert.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/distance_cos.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/distance_dot.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/distance_l2.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/jaccard.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/serialize.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/slice.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/operations/text.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vector/vector_types.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/core/vtab.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/extensions/core/Cargo.toml +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/extensions/core/README.md +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/extensions/core/build.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/extensions/core/src/functions.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/extensions/core/src/lib.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/extensions/core/src/types.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/extensions/core/src/vfs_modules.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/extensions/core/src/vtabs.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/Cargo.toml +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/src/atomic_enum.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/src/ext/agg_derive.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/src/ext/match_ignore_ascii_case.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/src/ext/mod.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/src/ext/scalars.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/src/ext/vfs_derive.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/src/ext/vtab_derive.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/src/lib.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/macros/src/test.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/Cargo.toml +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/README.md +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/benches/parser_benchmark.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/src/ast/check.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/src/ast/fmt.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/src/ast.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/src/error.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/src/lexer.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/src/lib.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/parser/src/token.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/pyproject.toml +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit/Cargo.toml +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit/README.md +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit/bindgen.sh +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit/readme-sdk-kit.mdx +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit/src/capi.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit/src/lib.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit/turso.h +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit-macros/Cargo.toml +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sdk-kit-macros/src/lib.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/.gitignore +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/Cargo.toml +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/database_replay_generator.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/database_sync_engine_io.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/database_sync_lazy_storage.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/database_sync_operations.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/database_tape.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/errors.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/io_operations.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/lib.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/server_proto.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/engine/src/wal_session.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/sdk-kit/Cargo.toml +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/sdk-kit/bindgen.sh +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/sdk-kit/src/bindings.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/sdk-kit/src/lib.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/sdk-kit/src/rsapi.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/sdk-kit/src/sync_engine_io.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/sdk-kit/src/turso_async_operation.rs +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/sync/sdk-kit/turso_sync.h +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/turso/__init__.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/turso/aio/__init__.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/turso/aio/sync/__init__.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/turso/lib.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/turso/lib_aio.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/turso/lib_sync.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/turso/lib_sync_aio.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/turso/py.typed +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/turso/sync/__init__.py +0 -0
- {pyturso-0.4.3rc2 → pyturso-0.4.4}/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.
|
|
884
|
+
version = "0.4.4"
|
|
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.
|
|
2729
|
+
version = "0.4.4"
|
|
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.
|
|
2737
|
+
version = "0.4.4"
|
|
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.
|
|
2750
|
+
version = "0.4.4"
|
|
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.
|
|
2760
|
+
version = "0.4.4"
|
|
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.
|
|
2768
|
+
version = "0.4.4"
|
|
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.
|
|
2777
|
+
version = "0.4.4"
|
|
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.
|
|
2785
|
+
version = "0.4.4"
|
|
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.
|
|
2794
|
+
version = "0.4.4"
|
|
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.
|
|
2831
|
+
version = "0.4.4"
|
|
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.
|
|
3718
|
+
version = "0.4.4"
|
|
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.
|
|
4601
|
+
version = "0.4.4"
|
|
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.
|
|
5305
|
+
version = "0.4.4"
|
|
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.
|
|
5329
|
+
version = "0.4.4"
|
|
5327
5330
|
dependencies = [
|
|
5328
5331
|
"turso_core",
|
|
5329
5332
|
]
|
|
5330
5333
|
|
|
5331
5334
|
[[package]]
|
|
5332
5335
|
name = "turso-java"
|
|
5333
|
-
version = "0.4.
|
|
5336
|
+
version = "0.4.4"
|
|
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.
|
|
5345
|
+
version = "0.4.4"
|
|
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.
|
|
5386
|
+
version = "0.4.4"
|
|
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.
|
|
5453
|
+
version = "0.4.4"
|
|
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.
|
|
5461
|
+
version = "0.4.4"
|
|
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.
|
|
5470
|
+
version = "0.4.4"
|
|
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.
|
|
5481
|
+
version = "0.4.4"
|
|
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.
|
|
5490
|
+
version = "0.4.4"
|
|
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.
|
|
5503
|
+
version = "0.4.4"
|
|
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.
|
|
5520
|
+
version = "0.4.4"
|
|
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.
|
|
5533
|
+
version = "0.4.4"
|
|
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.
|
|
5542
|
+
version = "0.4.4"
|
|
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.
|
|
5555
|
+
version = "0.4.4"
|
|
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.
|
|
5571
|
+
version = "0.4.4"
|
|
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.
|
|
5598
|
+
version = "0.4.4"
|
|
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.
|
|
5613
|
+
version = "0.4.4"
|
|
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.
|
|
5630
|
+
version = "0.4.4"
|
|
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.
|
|
9
|
+
version = "0.4.4"
|
|
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.
|
|
17
|
-
turso_node = { path = "bindings/javascript", version = "0.4.
|
|
18
|
-
turso_sdk_kit = { path = "sdk-kit", version = "0.4.
|
|
19
|
-
turso_sdk_kit_macros = { path = "sdk-kit-macros", version = "0.4.
|
|
20
|
-
turso_sync_sdk_kit = { path = "sync/sdk-kit", version = "0.4.
|
|
21
|
-
limbo_completion = { path = "extensions/completion", version = "0.4.
|
|
22
|
-
turso_core = { path = "core", version = "0.4.
|
|
23
|
-
turso_sync_engine = { path = "sync/engine", version = "0.4.
|
|
24
|
-
turso_ext = { path = "extensions/core", version = "0.4.
|
|
25
|
-
turso_macros = { path = "macros", version = "0.4.
|
|
26
|
-
turso_parser = { path = "parser", version = "0.4.
|
|
16
|
+
turso = { path = "bindings/rust", version = "0.4.4" }
|
|
17
|
+
turso_node = { path = "bindings/javascript", version = "0.4.4" }
|
|
18
|
+
turso_sdk_kit = { path = "sdk-kit", version = "0.4.4" }
|
|
19
|
+
turso_sdk_kit_macros = { path = "sdk-kit-macros", version = "0.4.4" }
|
|
20
|
+
turso_sync_sdk_kit = { path = "sync/sdk-kit", version = "0.4.4" }
|
|
21
|
+
limbo_completion = { path = "extensions/completion", version = "0.4.4" }
|
|
22
|
+
turso_core = { path = "core", version = "0.4.4" }
|
|
23
|
+
turso_sync_engine = { path = "sync/engine", version = "0.4.4" }
|
|
24
|
+
turso_ext = { path = "extensions/core", version = "0.4.4" }
|
|
25
|
+
turso_macros = { path = "macros", version = "0.4.4" }
|
|
26
|
+
turso_parser = { path = "parser", version = "0.4.4" }
|
|
27
27
|
sql_generation = { path = "sql_generation" }
|
|
28
28
|
strum = { version = "0.26", features = ["derive"] }
|
|
29
29
|
strum_macros = "0.26"
|
|
@@ -18,6 +18,12 @@ pub enum PyTursoStatusCode {
|
|
|
18
18
|
Io = 3,
|
|
19
19
|
}
|
|
20
20
|
create_exception!(turso, Busy, PyException, "database is locked");
|
|
21
|
+
create_exception!(
|
|
22
|
+
turso,
|
|
23
|
+
BusySnapshot,
|
|
24
|
+
PyException,
|
|
25
|
+
"database snapshot is stale"
|
|
26
|
+
);
|
|
21
27
|
create_exception!(turso, Interrupt, PyException, "interrupted");
|
|
22
28
|
create_exception!(turso, Error, PyException, "generic error");
|
|
23
29
|
create_exception!(turso, Misuse, PyException, "API misuse");
|
|
@@ -31,6 +37,7 @@ create_exception!(turso, IoError, PyException, "I/O error");
|
|
|
31
37
|
pub(crate) fn turso_error_to_py_err(err: TursoError) -> PyErr {
|
|
32
38
|
match err {
|
|
33
39
|
rsapi::TursoError::Busy(message) => Busy::new_err(message),
|
|
40
|
+
rsapi::TursoError::BusySnapshot(message) => BusySnapshot::new_err(message),
|
|
34
41
|
rsapi::TursoError::Interrupt(message) => Interrupt::new_err(message),
|
|
35
42
|
rsapi::TursoError::Error(message) => Error::new_err(message),
|
|
36
43
|
rsapi::TursoError::Misuse(message) => Misuse::new_err(message),
|
|
@@ -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]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
use crate::
|
|
1
|
+
use crate::MonotonicInstant;
|
|
2
2
|
use std::time::Duration;
|
|
3
3
|
|
|
4
4
|
/// Type alias for busy handler callback function.
|
|
@@ -52,7 +52,7 @@ pub struct BusyHandlerState {
|
|
|
52
52
|
/// Number of times the busy handler has been invoked for this locking event
|
|
53
53
|
invocation_count: i32,
|
|
54
54
|
/// For timeout-based handlers: the next timeout instant to wait until
|
|
55
|
-
timeout:
|
|
55
|
+
timeout: MonotonicInstant,
|
|
56
56
|
/// For timeout-based handlers: the current iteration index into DELAYS
|
|
57
57
|
iteration: usize,
|
|
58
58
|
}
|
|
@@ -91,7 +91,7 @@ impl BusyHandlerState {
|
|
|
91
91
|
];
|
|
92
92
|
|
|
93
93
|
/// Create a new busy handler state
|
|
94
|
-
pub fn new(now:
|
|
94
|
+
pub fn new(now: MonotonicInstant) -> Self {
|
|
95
95
|
Self {
|
|
96
96
|
invocation_count: 0,
|
|
97
97
|
timeout: now,
|
|
@@ -100,14 +100,14 @@ impl BusyHandlerState {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
/// Reset the state for a new locking event
|
|
103
|
-
pub fn reset(&mut self, now:
|
|
103
|
+
pub fn reset(&mut self, now: MonotonicInstant) {
|
|
104
104
|
self.invocation_count = 0;
|
|
105
105
|
self.timeout = now;
|
|
106
106
|
self.iteration = 0;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
/// Get the current timeout instant
|
|
110
|
-
pub fn timeout(&self) ->
|
|
110
|
+
pub fn timeout(&self) -> MonotonicInstant {
|
|
111
111
|
self.timeout
|
|
112
112
|
}
|
|
113
113
|
|
|
@@ -118,7 +118,7 @@ impl BusyHandlerState {
|
|
|
118
118
|
///
|
|
119
119
|
/// For timeout-based handlers, this also updates the internal timeout instant.
|
|
120
120
|
/// For custom handlers, this invokes the callback and respects its return value.
|
|
121
|
-
pub fn invoke(&mut self, handler: &BusyHandler, now:
|
|
121
|
+
pub fn invoke(&mut self, handler: &BusyHandler, now: MonotonicInstant) -> bool {
|
|
122
122
|
match handler {
|
|
123
123
|
BusyHandler::None => {
|
|
124
124
|
// No handler: return BUSY immediately
|
|
@@ -142,7 +142,7 @@ impl BusyHandlerState {
|
|
|
142
142
|
/// Implements sqliteDefaultBusyCallback logic for timeout-based handling.
|
|
143
143
|
///
|
|
144
144
|
/// This uses an exponentially increasing delay schedule, capped at 100ms per iteration.
|
|
145
|
-
fn invoke_timeout_handler(&mut self, max_duration: Duration, now:
|
|
145
|
+
fn invoke_timeout_handler(&mut self, max_duration: Duration, now: MonotonicInstant) -> bool {
|
|
146
146
|
let idx = self.iteration.min(11);
|
|
147
147
|
let mut delay = Self::DELAYS[idx];
|
|
148
148
|
let mut prior = Self::TOTALS[idx];
|
|
@@ -170,21 +170,11 @@ impl BusyHandlerState {
|
|
|
170
170
|
///
|
|
171
171
|
/// This returns the duration between `now` and the timeout instant.
|
|
172
172
|
/// Returns `Duration::ZERO` if the timeout has already passed.
|
|
173
|
-
pub fn get_delay(&self, now:
|
|
174
|
-
if now
|
|
175
|
-
|| (now.secs == self.timeout.secs && now.micros >= self.timeout.micros)
|
|
176
|
-
{
|
|
173
|
+
pub fn get_delay(&self, now: MonotonicInstant) -> Duration {
|
|
174
|
+
if now >= self.timeout {
|
|
177
175
|
Duration::ZERO
|
|
178
176
|
} else {
|
|
179
|
-
|
|
180
|
-
let micros_diff = if self.timeout.micros >= now.micros {
|
|
181
|
-
self.timeout.micros - now.micros
|
|
182
|
-
} else {
|
|
183
|
-
// Borrow from seconds
|
|
184
|
-
return Duration::from_secs(secs_diff.saturating_sub(1))
|
|
185
|
-
+ Duration::from_micros((1_000_000 + self.timeout.micros - now.micros) as u64);
|
|
186
|
-
};
|
|
187
|
-
Duration::from_secs(secs_diff) + Duration::from_micros(micros_diff as u64)
|
|
177
|
+
self.timeout.duration_since(now)
|
|
188
178
|
}
|
|
189
179
|
}
|
|
190
180
|
}
|
|
@@ -192,8 +182,9 @@ impl BusyHandlerState {
|
|
|
192
182
|
#[cfg(test)]
|
|
193
183
|
mod tests {
|
|
194
184
|
use super::*;
|
|
195
|
-
|
|
196
|
-
|
|
185
|
+
|
|
186
|
+
fn test_instant() -> MonotonicInstant {
|
|
187
|
+
MonotonicInstant::now()
|
|
197
188
|
}
|
|
198
189
|
|
|
199
190
|
#[test]
|
|
@@ -365,7 +356,7 @@ mod tests {
|
|
|
365
356
|
state.invoke(&handler, now);
|
|
366
357
|
|
|
367
358
|
// Reset
|
|
368
|
-
let later =
|
|
359
|
+
let later = MonotonicInstant::now();
|
|
369
360
|
state.reset(later);
|
|
370
361
|
|
|
371
362
|
// Should be back to initial state
|
|
@@ -377,25 +368,21 @@ mod tests {
|
|
|
377
368
|
|
|
378
369
|
#[test]
|
|
379
370
|
fn test_get_delay_when_timeout_passed() {
|
|
380
|
-
let now =
|
|
381
|
-
secs: 10,
|
|
382
|
-
micros: 0,
|
|
383
|
-
};
|
|
371
|
+
let now = MonotonicInstant::now();
|
|
384
372
|
let state = BusyHandlerState::new(now);
|
|
385
373
|
|
|
386
374
|
// Timeout is at `now`, so any time >= now should return zero delay
|
|
387
375
|
assert_eq!(state.get_delay(now), Duration::ZERO);
|
|
388
376
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
};
|
|
377
|
+
// A later time should also return zero
|
|
378
|
+
std::thread::sleep(Duration::from_micros(10));
|
|
379
|
+
let later = MonotonicInstant::now();
|
|
393
380
|
assert_eq!(state.get_delay(later), Duration::ZERO);
|
|
394
381
|
}
|
|
395
382
|
|
|
396
383
|
#[test]
|
|
397
384
|
fn test_get_delay_calculates_remaining_time() {
|
|
398
|
-
let now =
|
|
385
|
+
let now = MonotonicInstant::now();
|
|
399
386
|
let mut state = BusyHandlerState::new(now);
|
|
400
387
|
|
|
401
388
|
let handler = BusyHandler::Timeout(Duration::from_millis(100));
|
|
@@ -404,13 +391,5 @@ mod tests {
|
|
|
404
391
|
// Check delay from `now` - should be 1ms
|
|
405
392
|
let delay = state.get_delay(now);
|
|
406
393
|
assert_eq!(delay, Duration::from_millis(1));
|
|
407
|
-
|
|
408
|
-
// Check delay from half-way point
|
|
409
|
-
let half = Instant {
|
|
410
|
-
secs: 0,
|
|
411
|
-
micros: 500,
|
|
412
|
-
};
|
|
413
|
-
let delay = state.get_delay(half);
|
|
414
|
-
assert_eq!(delay, Duration::from_micros(500));
|
|
415
394
|
}
|
|
416
395
|
}
|