pyturso 0.3.0rc2__tar.gz → 0.3.0rc3__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.
Potentially problematic release.
This version of pyturso might be problematic. Click here for more details.
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/Cargo.lock +29 -27
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/Cargo.toml +17 -17
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/PKG-INFO +1 -1
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/aggregate_operator.rs +1 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/compiler.rs +11 -1
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/cursor.rs +1 -1
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/join_operator.rs +1 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/operator.rs +3 -1
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/view.rs +15 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/mod.rs +270 -10
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/lib.rs +7 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/database/checkpoint_state_machine.rs +1 -1
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/schema.rs +27 -5
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/btree.rs +37 -693
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/pager.rs +23 -13
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/wal.rs +10 -6
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/expr.rs +12 -8
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/insert.rs +383 -298
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/planner.rs +21 -1
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/schema.rs +49 -24
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/types.rs +0 -20
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/util.rs +0 -6
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/mod.rs +11 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/sorter.rs +19 -14
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/Cargo.toml +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/build.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/example.py +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/requirements-dev.txt +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/requirements.txt +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/src/errors.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/src/lib.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/tests/__init__.py +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/tests/test_database.py +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/turso/__init__.py +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/bindings/python/turso/py.typed +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/Cargo.toml +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/assert.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/benches/benchmark.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/benches/json_benchmark.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/benches/mvcc_benchmark.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/benches/tpc_h_benchmark.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/build.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/error.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/ext/dynamic.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/ext/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/ext/vtab_xconnect.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/fast_lock.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/function.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/functions/datetime.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/functions/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/functions/printf.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/functions/strftime.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/dbsp.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/expr_compiler.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/filter_operator.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/input_operator.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/merge_operator.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/persistence.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/incremental/project_operator.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/info.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/clock.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/common.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/generic.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/io_uring.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/memory.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/unix.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/vfs.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/io/windows.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/cache.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/error.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/jsonb.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/ops.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/path.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/json/vtab.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/clock.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/cursor.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/database/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/database/tests.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/persistent_storage/logical_log.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/mvcc/persistent_storage/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/numeric/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/numeric/nonnan.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/parameters.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/pragma.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/pseudo.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/series.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/state_machine.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/buffer_pool.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/checksum.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/database.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/encryption.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/page_cache.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/slot_bitmap.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/sqlite3_ondisk.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/storage/state_machines.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/time/internal.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/time/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/aggregation.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/alter.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/analyze.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/attach.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/collate.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/compound_select.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/delete.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/display.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/emitter.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/fkeys.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/group_by.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/index.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/integrity_check.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/logical.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/main_loop.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/OPTIMIZER.md +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/access_method.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/constraints.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/cost.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/join.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/lift_common_subexpressions.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/optimizer/order.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/order_by.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/plan.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/pragma.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/result_row.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/rollback.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/select.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/subquery.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/transaction.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/update.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/upsert.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/values.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/view.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/translate/window.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/uuid.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/builder.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/execute.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/explain.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/insn.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/likeop.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vdbe/metrics.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/concat.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/convert.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/distance_cos.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/distance_l2.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/jaccard.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/serialize.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/slice.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/operations/text.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vector/vector_types.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/core/vtab.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/Cargo.toml +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/README.md +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/build.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/functions.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/lib.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/types.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/vfs_modules.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/extensions/core/src/vtabs.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/Cargo.toml +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/agg_derive.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/match_ignore_ascii_case.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/mod.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/scalars.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/vfs_derive.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/ext/vtab_derive.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/macros/src/lib.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/Cargo.toml +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/README.md +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/benches/parser_benchmark.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/ast/check.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/ast/fmt.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/ast.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/error.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/lexer.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/lib.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/parser.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/parser/src/token.rs +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/pyproject.toml +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/turso/__init__.py +0 -0
- {pyturso-0.3.0rc2 → pyturso-0.3.0rc3}/turso/py.typed +0 -0
|
@@ -821,7 +821,7 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
|
|
821
821
|
|
|
822
822
|
[[package]]
|
|
823
823
|
name = "core_tester"
|
|
824
|
-
version = "0.3.0-pre.
|
|
824
|
+
version = "0.3.0-pre.3"
|
|
825
825
|
dependencies = [
|
|
826
826
|
"anyhow",
|
|
827
827
|
"assert_cmd",
|
|
@@ -2539,7 +2539,7 @@ dependencies = [
|
|
|
2539
2539
|
|
|
2540
2540
|
[[package]]
|
|
2541
2541
|
name = "limbo_completion"
|
|
2542
|
-
version = "0.3.0-pre.
|
|
2542
|
+
version = "0.3.0-pre.3"
|
|
2543
2543
|
dependencies = [
|
|
2544
2544
|
"mimalloc",
|
|
2545
2545
|
"turso_ext",
|
|
@@ -2547,7 +2547,7 @@ dependencies = [
|
|
|
2547
2547
|
|
|
2548
2548
|
[[package]]
|
|
2549
2549
|
name = "limbo_crypto"
|
|
2550
|
-
version = "0.3.0-pre.
|
|
2550
|
+
version = "0.3.0-pre.3"
|
|
2551
2551
|
dependencies = [
|
|
2552
2552
|
"blake3",
|
|
2553
2553
|
"data-encoding",
|
|
@@ -2560,7 +2560,7 @@ dependencies = [
|
|
|
2560
2560
|
|
|
2561
2561
|
[[package]]
|
|
2562
2562
|
name = "limbo_csv"
|
|
2563
|
-
version = "0.3.0-pre.
|
|
2563
|
+
version = "0.3.0-pre.3"
|
|
2564
2564
|
dependencies = [
|
|
2565
2565
|
"csv",
|
|
2566
2566
|
"mimalloc",
|
|
@@ -2570,7 +2570,7 @@ dependencies = [
|
|
|
2570
2570
|
|
|
2571
2571
|
[[package]]
|
|
2572
2572
|
name = "limbo_fuzzy"
|
|
2573
|
-
version = "0.3.0-pre.
|
|
2573
|
+
version = "0.3.0-pre.3"
|
|
2574
2574
|
dependencies = [
|
|
2575
2575
|
"mimalloc",
|
|
2576
2576
|
"turso_ext",
|
|
@@ -2578,7 +2578,7 @@ dependencies = [
|
|
|
2578
2578
|
|
|
2579
2579
|
[[package]]
|
|
2580
2580
|
name = "limbo_ipaddr"
|
|
2581
|
-
version = "0.3.0-pre.
|
|
2581
|
+
version = "0.3.0-pre.3"
|
|
2582
2582
|
dependencies = [
|
|
2583
2583
|
"ipnetwork",
|
|
2584
2584
|
"mimalloc",
|
|
@@ -2587,7 +2587,7 @@ dependencies = [
|
|
|
2587
2587
|
|
|
2588
2588
|
[[package]]
|
|
2589
2589
|
name = "limbo_percentile"
|
|
2590
|
-
version = "0.3.0-pre.
|
|
2590
|
+
version = "0.3.0-pre.3"
|
|
2591
2591
|
dependencies = [
|
|
2592
2592
|
"mimalloc",
|
|
2593
2593
|
"turso_ext",
|
|
@@ -2595,7 +2595,7 @@ dependencies = [
|
|
|
2595
2595
|
|
|
2596
2596
|
[[package]]
|
|
2597
2597
|
name = "limbo_regexp"
|
|
2598
|
-
version = "0.3.0-pre.
|
|
2598
|
+
version = "0.3.0-pre.3"
|
|
2599
2599
|
dependencies = [
|
|
2600
2600
|
"mimalloc",
|
|
2601
2601
|
"regex",
|
|
@@ -2604,7 +2604,7 @@ dependencies = [
|
|
|
2604
2604
|
|
|
2605
2605
|
[[package]]
|
|
2606
2606
|
name = "limbo_sim"
|
|
2607
|
-
version = "0.3.0-pre.
|
|
2607
|
+
version = "0.3.0-pre.3"
|
|
2608
2608
|
dependencies = [
|
|
2609
2609
|
"anyhow",
|
|
2610
2610
|
"bitflags 2.9.4",
|
|
@@ -2640,7 +2640,7 @@ dependencies = [
|
|
|
2640
2640
|
|
|
2641
2641
|
[[package]]
|
|
2642
2642
|
name = "limbo_sqlite_test_ext"
|
|
2643
|
-
version = "0.3.0-pre.
|
|
2643
|
+
version = "0.3.0-pre.3"
|
|
2644
2644
|
dependencies = [
|
|
2645
2645
|
"cc",
|
|
2646
2646
|
]
|
|
@@ -3456,7 +3456,7 @@ dependencies = [
|
|
|
3456
3456
|
|
|
3457
3457
|
[[package]]
|
|
3458
3458
|
name = "py-turso"
|
|
3459
|
-
version = "0.3.0-pre.
|
|
3459
|
+
version = "0.3.0-pre.3"
|
|
3460
3460
|
dependencies = [
|
|
3461
3461
|
"anyhow",
|
|
3462
3462
|
"pyo3",
|
|
@@ -4193,7 +4193,7 @@ checksum = "d372029cb5195f9ab4e4b9aef550787dce78b124fcaee8d82519925defcd6f0d"
|
|
|
4193
4193
|
|
|
4194
4194
|
[[package]]
|
|
4195
4195
|
name = "sql_generation"
|
|
4196
|
-
version = "0.3.0-pre.
|
|
4196
|
+
version = "0.3.0-pre.3"
|
|
4197
4197
|
dependencies = [
|
|
4198
4198
|
"anarchist-readable-name-generator-lib 0.2.0",
|
|
4199
4199
|
"anyhow",
|
|
@@ -4821,19 +4821,21 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
|
|
|
4821
4821
|
|
|
4822
4822
|
[[package]]
|
|
4823
4823
|
name = "turso"
|
|
4824
|
-
version = "0.3.0-pre.
|
|
4824
|
+
version = "0.3.0-pre.3"
|
|
4825
4825
|
dependencies = [
|
|
4826
4826
|
"rand 0.9.2",
|
|
4827
4827
|
"rand_chacha 0.9.0",
|
|
4828
4828
|
"tempfile",
|
|
4829
4829
|
"thiserror 2.0.16",
|
|
4830
4830
|
"tokio",
|
|
4831
|
+
"tracing",
|
|
4832
|
+
"tracing-subscriber",
|
|
4831
4833
|
"turso_core",
|
|
4832
4834
|
]
|
|
4833
4835
|
|
|
4834
4836
|
[[package]]
|
|
4835
4837
|
name = "turso-java"
|
|
4836
|
-
version = "0.3.0-pre.
|
|
4838
|
+
version = "0.3.0-pre.3"
|
|
4837
4839
|
dependencies = [
|
|
4838
4840
|
"jni",
|
|
4839
4841
|
"thiserror 2.0.16",
|
|
@@ -4842,7 +4844,7 @@ dependencies = [
|
|
|
4842
4844
|
|
|
4843
4845
|
[[package]]
|
|
4844
4846
|
name = "turso_cli"
|
|
4845
|
-
version = "0.3.0-pre.
|
|
4847
|
+
version = "0.3.0-pre.3"
|
|
4846
4848
|
dependencies = [
|
|
4847
4849
|
"anyhow",
|
|
4848
4850
|
"cfg-if",
|
|
@@ -4878,7 +4880,7 @@ dependencies = [
|
|
|
4878
4880
|
|
|
4879
4881
|
[[package]]
|
|
4880
4882
|
name = "turso_core"
|
|
4881
|
-
version = "0.3.0-pre.
|
|
4883
|
+
version = "0.3.0-pre.3"
|
|
4882
4884
|
dependencies = [
|
|
4883
4885
|
"aegis",
|
|
4884
4886
|
"aes",
|
|
@@ -4938,7 +4940,7 @@ dependencies = [
|
|
|
4938
4940
|
|
|
4939
4941
|
[[package]]
|
|
4940
4942
|
name = "turso_dart"
|
|
4941
|
-
version = "0.3.0-pre.
|
|
4943
|
+
version = "0.3.0-pre.3"
|
|
4942
4944
|
dependencies = [
|
|
4943
4945
|
"flutter_rust_bridge",
|
|
4944
4946
|
"turso_core",
|
|
@@ -4946,7 +4948,7 @@ dependencies = [
|
|
|
4946
4948
|
|
|
4947
4949
|
[[package]]
|
|
4948
4950
|
name = "turso_ext"
|
|
4949
|
-
version = "0.3.0-pre.
|
|
4951
|
+
version = "0.3.0-pre.3"
|
|
4950
4952
|
dependencies = [
|
|
4951
4953
|
"chrono",
|
|
4952
4954
|
"getrandom 0.3.2",
|
|
@@ -4955,7 +4957,7 @@ dependencies = [
|
|
|
4955
4957
|
|
|
4956
4958
|
[[package]]
|
|
4957
4959
|
name = "turso_ext_tests"
|
|
4958
|
-
version = "0.3.0-pre.
|
|
4960
|
+
version = "0.3.0-pre.3"
|
|
4959
4961
|
dependencies = [
|
|
4960
4962
|
"env_logger 0.11.7",
|
|
4961
4963
|
"lazy_static",
|
|
@@ -4966,7 +4968,7 @@ dependencies = [
|
|
|
4966
4968
|
|
|
4967
4969
|
[[package]]
|
|
4968
4970
|
name = "turso_macros"
|
|
4969
|
-
version = "0.3.0-pre.
|
|
4971
|
+
version = "0.3.0-pre.3"
|
|
4970
4972
|
dependencies = [
|
|
4971
4973
|
"proc-macro2",
|
|
4972
4974
|
"quote",
|
|
@@ -4975,7 +4977,7 @@ dependencies = [
|
|
|
4975
4977
|
|
|
4976
4978
|
[[package]]
|
|
4977
4979
|
name = "turso_node"
|
|
4978
|
-
version = "0.3.0-pre.
|
|
4980
|
+
version = "0.3.0-pre.3"
|
|
4979
4981
|
dependencies = [
|
|
4980
4982
|
"chrono",
|
|
4981
4983
|
"napi",
|
|
@@ -4988,7 +4990,7 @@ dependencies = [
|
|
|
4988
4990
|
|
|
4989
4991
|
[[package]]
|
|
4990
4992
|
name = "turso_parser"
|
|
4991
|
-
version = "0.3.0-pre.
|
|
4993
|
+
version = "0.3.0-pre.3"
|
|
4992
4994
|
dependencies = [
|
|
4993
4995
|
"bitflags 2.9.4",
|
|
4994
4996
|
"criterion",
|
|
@@ -5004,7 +5006,7 @@ dependencies = [
|
|
|
5004
5006
|
|
|
5005
5007
|
[[package]]
|
|
5006
5008
|
name = "turso_sqlite3"
|
|
5007
|
-
version = "0.3.0-pre.
|
|
5009
|
+
version = "0.3.0-pre.3"
|
|
5008
5010
|
dependencies = [
|
|
5009
5011
|
"env_logger 0.11.7",
|
|
5010
5012
|
"libc",
|
|
@@ -5017,7 +5019,7 @@ dependencies = [
|
|
|
5017
5019
|
|
|
5018
5020
|
[[package]]
|
|
5019
5021
|
name = "turso_stress"
|
|
5020
|
-
version = "0.3.0-pre.
|
|
5022
|
+
version = "0.3.0-pre.3"
|
|
5021
5023
|
dependencies = [
|
|
5022
5024
|
"anarchist-readable-name-generator-lib 0.1.2",
|
|
5023
5025
|
"antithesis_sdk",
|
|
@@ -5034,7 +5036,7 @@ dependencies = [
|
|
|
5034
5036
|
|
|
5035
5037
|
[[package]]
|
|
5036
5038
|
name = "turso_sync_engine"
|
|
5037
|
-
version = "0.3.0-pre.
|
|
5039
|
+
version = "0.3.0-pre.3"
|
|
5038
5040
|
dependencies = [
|
|
5039
5041
|
"base64 0.22.1",
|
|
5040
5042
|
"bytes",
|
|
@@ -5061,7 +5063,7 @@ dependencies = [
|
|
|
5061
5063
|
|
|
5062
5064
|
[[package]]
|
|
5063
5065
|
name = "turso_sync_js"
|
|
5064
|
-
version = "0.3.0-pre.
|
|
5066
|
+
version = "0.3.0-pre.3"
|
|
5065
5067
|
dependencies = [
|
|
5066
5068
|
"genawaiter",
|
|
5067
5069
|
"napi",
|
|
@@ -5076,7 +5078,7 @@ dependencies = [
|
|
|
5076
5078
|
|
|
5077
5079
|
[[package]]
|
|
5078
5080
|
name = "turso_whopper"
|
|
5079
|
-
version = "0.3.0-pre.
|
|
5081
|
+
version = "0.3.0-pre.3"
|
|
5080
5082
|
dependencies = [
|
|
5081
5083
|
"anyhow",
|
|
5082
5084
|
"clap",
|
|
@@ -8,29 +8,29 @@ exclude = [
|
|
|
8
8
|
]
|
|
9
9
|
|
|
10
10
|
[workspace.package]
|
|
11
|
-
version = "0.3.0-pre.
|
|
11
|
+
version = "0.3.0-pre.3"
|
|
12
12
|
authors = ["the Limbo authors"]
|
|
13
13
|
edition = "2021"
|
|
14
14
|
license = "MIT"
|
|
15
15
|
repository = "https://github.com/tursodatabase/turso"
|
|
16
16
|
|
|
17
17
|
[workspace.dependencies]
|
|
18
|
-
turso = { path = "bindings/rust", version = "0.3.0-pre.
|
|
19
|
-
turso_node = { path = "bindings/javascript", version = "0.3.0-pre.
|
|
20
|
-
limbo_completion = { path = "extensions/completion", version = "0.3.0-pre.
|
|
21
|
-
turso_core = { path = "core", version = "0.3.0-pre.
|
|
22
|
-
turso_sync_engine = { path = "sync/engine", version = "0.3.0-pre.
|
|
23
|
-
limbo_crypto = { path = "extensions/crypto", version = "0.3.0-pre.
|
|
24
|
-
limbo_csv = { path = "extensions/csv", version = "0.3.0-pre.
|
|
25
|
-
turso_ext = { path = "extensions/core", version = "0.3.0-pre.
|
|
26
|
-
turso_ext_tests = { path = "extensions/tests", version = "0.3.0-pre.
|
|
27
|
-
limbo_ipaddr = { path = "extensions/ipaddr", version = "0.3.0-pre.
|
|
28
|
-
turso_macros = { path = "macros", version = "0.3.0-pre.
|
|
29
|
-
limbo_percentile = { path = "extensions/percentile", version = "0.3.0-pre.
|
|
30
|
-
limbo_regexp = { path = "extensions/regexp", version = "0.3.0-pre.
|
|
31
|
-
limbo_uuid = { path = "extensions/uuid", version = "0.3.0-pre.
|
|
32
|
-
turso_parser = { path = "parser", version = "0.3.0-pre.
|
|
33
|
-
limbo_fuzzy = { path = "extensions/fuzzy", version = "0.3.0-pre.
|
|
18
|
+
turso = { path = "bindings/rust", version = "0.3.0-pre.3" }
|
|
19
|
+
turso_node = { path = "bindings/javascript", version = "0.3.0-pre.3" }
|
|
20
|
+
limbo_completion = { path = "extensions/completion", version = "0.3.0-pre.3" }
|
|
21
|
+
turso_core = { path = "core", version = "0.3.0-pre.3" }
|
|
22
|
+
turso_sync_engine = { path = "sync/engine", version = "0.3.0-pre.3" }
|
|
23
|
+
limbo_crypto = { path = "extensions/crypto", version = "0.3.0-pre.3" }
|
|
24
|
+
limbo_csv = { path = "extensions/csv", version = "0.3.0-pre.3" }
|
|
25
|
+
turso_ext = { path = "extensions/core", version = "0.3.0-pre.3" }
|
|
26
|
+
turso_ext_tests = { path = "extensions/tests", version = "0.3.0-pre.3" }
|
|
27
|
+
limbo_ipaddr = { path = "extensions/ipaddr", version = "0.3.0-pre.3" }
|
|
28
|
+
turso_macros = { path = "macros", version = "0.3.0-pre.3" }
|
|
29
|
+
limbo_percentile = { path = "extensions/percentile", version = "0.3.0-pre.3" }
|
|
30
|
+
limbo_regexp = { path = "extensions/regexp", version = "0.3.0-pre.3" }
|
|
31
|
+
limbo_uuid = { path = "extensions/uuid", version = "0.3.0-pre.3" }
|
|
32
|
+
turso_parser = { path = "parser", version = "0.3.0-pre.3" }
|
|
33
|
+
limbo_fuzzy = { path = "extensions/fuzzy", version = "0.3.0-pre.3" }
|
|
34
34
|
sql_generation = { path = "sql_generation" }
|
|
35
35
|
strum = { version = "0.26", features = ["derive"] }
|
|
36
36
|
strum_macros = "0.26"
|
|
@@ -7,6 +7,7 @@ use crate::incremental::operator::{
|
|
|
7
7
|
generate_storage_id, ComputationTracker, DbspStateCursors, EvalState, IncrementalOperator,
|
|
8
8
|
};
|
|
9
9
|
use crate::incremental::persistence::{ReadRecord, WriteRow};
|
|
10
|
+
use crate::storage::btree::CursorTrait;
|
|
10
11
|
use crate::types::{IOResult, ImmutableRecord, SeekKey, SeekOp, SeekResult, ValueRef};
|
|
11
12
|
use crate::{return_and_restore_if_io, return_if_io, LimboError, Result, Value};
|
|
12
13
|
use std::collections::{BTreeMap, HashMap, HashSet};
|
|
@@ -12,7 +12,7 @@ use crate::incremental::operator::{
|
|
|
12
12
|
IncrementalOperator, InputOperator, JoinOperator, JoinType, ProjectOperator,
|
|
13
13
|
};
|
|
14
14
|
use crate::schema::Type;
|
|
15
|
-
use crate::storage::btree::{BTreeCursor, BTreeKey};
|
|
15
|
+
use crate::storage::btree::{BTreeCursor, BTreeKey, CursorTrait};
|
|
16
16
|
// Note: logical module must be made pub(crate) in translate/mod.rs
|
|
17
17
|
use crate::translate::logical::{
|
|
18
18
|
BinaryOperator, Column, ColumnInfo, JoinType as LogicalJoinType, LogicalExpr, LogicalPlan,
|
|
@@ -329,6 +329,11 @@ pub struct DbspNode {
|
|
|
329
329
|
pub executable: Box<dyn IncrementalOperator>,
|
|
330
330
|
}
|
|
331
331
|
|
|
332
|
+
// SAFETY: This needs to be audited for thread safety.
|
|
333
|
+
// See: https://github.com/tursodatabase/turso/issues/1552
|
|
334
|
+
unsafe impl Send for DbspNode {}
|
|
335
|
+
unsafe impl Sync for DbspNode {}
|
|
336
|
+
|
|
332
337
|
impl std::fmt::Debug for DbspNode {
|
|
333
338
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
334
339
|
f.debug_struct("DbspNode")
|
|
@@ -395,6 +400,11 @@ pub struct DbspCircuit {
|
|
|
395
400
|
pub(super) internal_state_index_root: i64,
|
|
396
401
|
}
|
|
397
402
|
|
|
403
|
+
// SAFETY: This needs to be audited for thread safety.
|
|
404
|
+
// See: https://github.com/tursodatabase/turso/issues/1552
|
|
405
|
+
unsafe impl Send for DbspCircuit {}
|
|
406
|
+
unsafe impl Sync for DbspCircuit {}
|
|
407
|
+
|
|
398
408
|
impl DbspCircuit {
|
|
399
409
|
/// Create a new empty circuit with initial empty schema
|
|
400
410
|
/// The actual output schema will be set when the root node is established
|
|
@@ -6,6 +6,7 @@ use crate::incremental::operator::{
|
|
|
6
6
|
generate_storage_id, ComputationTracker, DbspStateCursors, EvalState, IncrementalOperator,
|
|
7
7
|
};
|
|
8
8
|
use crate::incremental::persistence::WriteRow;
|
|
9
|
+
use crate::storage::btree::CursorTrait;
|
|
9
10
|
use crate::types::{IOResult, ImmutableRecord, SeekKey, SeekOp, SeekResult};
|
|
10
11
|
use crate::{return_and_restore_if_io, return_if_io, Result, Value};
|
|
11
12
|
use std::sync::{Arc, Mutex};
|
|
@@ -218,7 +218,9 @@ pub enum QueryOperator {
|
|
|
218
218
|
|
|
219
219
|
/// Operator DAG (Directed Acyclic Graph)
|
|
220
220
|
/// Base trait for incremental operators
|
|
221
|
-
|
|
221
|
+
// SAFETY: This needs to be audited for thread safety.
|
|
222
|
+
// See: https://github.com/tursodatabase/turso/issues/1552
|
|
223
|
+
pub trait IncrementalOperator: Debug + Send {
|
|
222
224
|
/// Evaluate the operator with a state, without modifying internal state
|
|
223
225
|
/// This is used during query execution to compute results
|
|
224
226
|
/// May need to read from storage to get current state (e.g., for aggregates)
|
|
@@ -40,6 +40,11 @@ pub enum PopulateState {
|
|
|
40
40
|
Done,
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
// SAFETY: This needs to be audited for thread safety.
|
|
44
|
+
// See: https://github.com/tursodatabase/turso/issues/1552
|
|
45
|
+
unsafe impl Send for PopulateState {}
|
|
46
|
+
unsafe impl Sync for PopulateState {}
|
|
47
|
+
|
|
43
48
|
/// State machine for merge_delta to handle I/O operations
|
|
44
49
|
impl fmt::Debug for PopulateState {
|
|
45
50
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
@@ -130,6 +135,11 @@ pub struct AllViewsTxState {
|
|
|
130
135
|
states: Rc<RefCell<HashMap<String, Arc<ViewTransactionState>>>>,
|
|
131
136
|
}
|
|
132
137
|
|
|
138
|
+
// SAFETY: This needs to be audited for thread safety.
|
|
139
|
+
// See: https://github.com/tursodatabase/turso/issues/1552
|
|
140
|
+
unsafe impl Send for AllViewsTxState {}
|
|
141
|
+
unsafe impl Sync for AllViewsTxState {}
|
|
142
|
+
|
|
133
143
|
impl AllViewsTxState {
|
|
134
144
|
/// Create a new container for view transaction states
|
|
135
145
|
pub fn new() -> Self {
|
|
@@ -210,6 +220,11 @@ pub struct IncrementalView {
|
|
|
210
220
|
root_page: i64,
|
|
211
221
|
}
|
|
212
222
|
|
|
223
|
+
// SAFETY: This needs to be audited for thread safety.
|
|
224
|
+
// See: https://github.com/tursodatabase/turso/issues/1552
|
|
225
|
+
unsafe impl Send for IncrementalView {}
|
|
226
|
+
unsafe impl Sync for IncrementalView {}
|
|
227
|
+
|
|
213
228
|
impl IncrementalView {
|
|
214
229
|
/// Try to compile the SELECT statement into a DBSP circuit
|
|
215
230
|
fn try_compile_circuit(
|