motedb-python 0.13.0__tar.gz → 0.14.0__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.
- {motedb_python-0.13.0 → motedb_python-0.14.0}/CHANGELOG.md +47 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/Cargo.lock +1 -1
- {motedb_python-0.13.0 → motedb_python-0.14.0}/Cargo.toml +1 -1
- {motedb_python-0.13.0 → motedb_python-0.14.0}/PKG-INFO +1 -1
- {motedb_python-0.13.0 → motedb_python-0.14.0}/README.md +44 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/Cargo.lock +2 -2
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/Cargo.toml +1 -1
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/design/2026-10-embodied-roadmap.md +7 -1
- motedb_python-0.14.0/docs/design/2026-10-traj-spike.md +44 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/perf_smoke.rs +52 -0
- motedb_python-0.14.0/examples/traj_spike.rs +416 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/pyproject.toml +1 -1
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/core.rs +22 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/crud.rs +20 -1
- motedb_python-0.14.0/src/database/datasets.rs +351 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/mod.rs +1 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/ast.rs +36 -1
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/evaluator.rs +97 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/executor/join.rs +284 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/executor/mod.rs +313 -10
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/parser.rs +235 -33
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/col_segment/store.rs +38 -3
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/types/mod.rs +3 -1
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/types/table.rs +16 -0
- motedb_python-0.14.0/tests/test_asof_join.rs +176 -0
- motedb_python-0.14.0/tests/test_datasets.rs +168 -0
- motedb_python-0.14.0/tests/test_episodes.rs +220 -0
- motedb_python-0.13.0/tests/blob_probe3.rs +0 -73
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.cargo/config.toml +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.devcontainer/devcontainer.json +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.github/workflows/ci.yml +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.github/workflows/fuzz.yml +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.github/workflows/perf-gate.yml +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.github/workflows/publish.yml +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.github/workflows/python-wheels.yml +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.gitignore +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.zcode/plans/plan-sess_abb2c954-05fb-477e-9d0a-3e22261e2449.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/.zcode/plans/plan-sess_b5937a06-b7bf-4471-9756-dbf2787b263c.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/LICENSE +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/Makefile +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/RELEASE_NOTES.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/README.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/README.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/adversarial_verify.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/bench_edge.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/compete_bench.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/compete_fts_industry.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/compete_scale.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/compete_spatial_ts.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/compete_vec_industry.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/compete_writes.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/fts_probe_once.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/perf_ab.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/perf_overall.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/prof_ann.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/prof_fts.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/prof_insert.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/prof_point.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/prof_real.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/prof_scale.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/prof_scale_vec.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/prof_vec_parallel.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/resource_bench.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/resource_bench_2026-09_profile.json +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/resource_bench_v0.10.0.json +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/spatial_eval.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/text_eval.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/ts_eval.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/bench/vector_recall_eval.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/build.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/e2e/e2e_workload.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/e2e/test_durability_kwarg.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/licenses/LICENSE +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/scripts/build_wheel.sh +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/src/lib.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/data/demo.mcap +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_backup.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_crash_recovery.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_e2e_cli.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_e2e_functional.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_feature_selfcheck.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_fetch_arrays.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_fuzz_bigtable.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_fuzz_differential.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_insert_arrays.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_mcap_import.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_parallel_ab.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/bindings/python/tests/test_smoke.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/deny.toml +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/01-quick-start.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/02-installation.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/03-sql-operations.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/04-batch-operations.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/05-transactions.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/06-indexes-overview.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/07-column-index.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/08-vector-index.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/09-text-index.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/10-spatial-index.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/11-timestamp-index.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/12-performance.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/13-data-types.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/14-api-reference.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/15-best-practices.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/16-faq.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/17-hybrid-arrow.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/README.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/benchmark_methodology.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/paper/README.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/docs/paper/motedb.tex +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_300k.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_autocommit_lock.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_disk.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_exec_only.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_insert_engine.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_layer.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_memory.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_multimodal_vs_competitors.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_point_read.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_profile_hot.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_scaling.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_stability.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/bench_vs_sqlite.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/corruption_fuzz.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/crud.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/differential_fuzz.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/gen_test_bag.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/hello_world.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/join_differential_fuzz.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/logging.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/probe_filter_decomp.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/probe_jemalloc.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/probe_memory_source.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/probe_tail_latency.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/text_rank_probe.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/examples/vector_recall_real.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/licenses/LICENSE +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/python/motedb/__init__.py +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/scripts/Dockerfile.e2e +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/scripts/compete.sh +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/scripts/docker_e2e.sh +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/scripts/repro_point_query_gap.sh +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/api.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/bin/motedb-cli.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/cache/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/cache/row_cache.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/catalog/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/catalog/registry.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/config.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/doctor.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/helpers.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/index_metadata.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/indexes/column.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/indexes/dashmap_migration.md +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/indexes/ioctree.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/indexes/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/indexes/text.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/indexes/timestamp.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/indexes/vector.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/mem_buffer.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/persistence.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/pk_cache.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/table.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/timeseries.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/database/transaction.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/distance/cosine.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/distance/euclidean.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/distance/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/error.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/ffi.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/btree.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/btree_generic.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/builder.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/cached_index.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/column_value.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/fresh_graph.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/ioctree/leaf_store.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/ioctree/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/ioctree/node.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/ioctree/persistence.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/ioctree/search.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/primary_key.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/text_dictionary.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/text_encoding.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/text_fts.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/text_query.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/text_types.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/tokenizers.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/vamana/config.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/vamana/disk_graph.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/vamana/diskann_index.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/vamana/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/vamana/pruner.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/vamana/sq8.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/index/vamana/sq8_vectors.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/lib.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/mcap_import.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/platform_io.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/executor/agg.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/executor/scan.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/join/hash_join.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/join/index_join.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/join/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/lexer.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/optimizer.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/row_converter.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/token.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/sql/vector_exec.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/checksum.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/col_segment/manifest.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/col_segment/merge.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/col_segment/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/col_segment/segment.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/colbatch.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/columnar/column_encoding.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/columnar/config.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/columnar/gorilla.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/columnar/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/columnar/segment.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/columnar/segment_manager.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/columnar/store.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/columnar/write_buffer.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/file_manager.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/blobstore.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/bloom.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/columnar.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/compaction.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/engine.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/memtable.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/merging_iterator.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/sstable.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/lsm/unified_memtable.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/manifest/manifest.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/manifest/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/manifest/version.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/storage/row_format.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/txn/coordinator.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/txn/lock_manager.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/txn/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/txn/mvcc.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/txn/recovery.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/txn/version_store.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/txn/wal.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/types/comp_sum.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/types/spatial.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/types/tensor.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/types/text.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/src/types/timestamp.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/acid_test.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_2m.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_acid.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_batch_ops.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_compare.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_comprehensive.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_concurrent.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_index_ops.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_multimodal.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_multimodal_full.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_multimodal_ops.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_perf_report.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_quick_baseline.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_release.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_report.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_resource.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_sql_queries.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_timeseries_index.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_v060_report.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_vs_sqlite_100k.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/bench_vs_sqlite_v05.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/common/mod.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/durability_probe.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/fts_probe.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/perf_test.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/repro_multirow_update_fts.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/repro_point_gap.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/stress_300k.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/stress_test.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_acid_audit.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_acid_comprehensive.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_advanced_hunt.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_api_correctness.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_auto_checkpoint_segments.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_backup.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_blob_type.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_btree_integrity.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt2.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt3.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt4.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt5.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt6.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt7.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v10.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v100.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v101.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v11.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v12.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v13.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v14.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v15.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v16.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v17_cte.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v18.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v19.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v2.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v20.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v21.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v22.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v23.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v24.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v25.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v26.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v27.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v28.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v29.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v3.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v30.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v31.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v32.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v33.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v34.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v35.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v36.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v38.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v39.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v4.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v40.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v43.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v45.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v48.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v49.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v5.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v50.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v51.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v52.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v53.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v54.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v55.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v56.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v57.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v58.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v59.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v6.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v60.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v61.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v62.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v63.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v64.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v65.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v66.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v67.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v68.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v69.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v7.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v70.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v71.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v72.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v73.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v74.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v75.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v76.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v77.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v78.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v79.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v8.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v80.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v81.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v82.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v83.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v84.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v85.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v86.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v87.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v88.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v89.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v9.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v90.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v91.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v92.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v93.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v94.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v95.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v96.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v97.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v98.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_bug_hunt_v99.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_col_segment.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_col_segment_fastpaths.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_columnar.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_columnar_acid.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_compact_storage.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_compaction_integrity.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_compiled_where_semantics.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_comprehensive.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_comprehensive_audit.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_concurrent_sql_features.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_concurrent_stress.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_corruption_recovery.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_corruption_robustness.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_crash_injection.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_crash_recovery.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_data_types.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_db_path_hygiene.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_deadlock_stress.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_deep_edge.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_delete_persist.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_differential_correctness.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_disk_bloat.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_disk_usage.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_doctor.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_durability.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_e2e_crash_and_stress.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_edge_cases.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_edge_semantics.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_executemany.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_exists_subquery.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_explain.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_extreme_hunt.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_fast_paths.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_fts_recovery_staleness.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_fuzz_sql_combinations.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_groupby_first_query.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_hybrid_search.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_index_maintenance.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_index_reopen.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_index_robustness.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_indexed_query_semantics.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_insert_engine.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_insert_explicit_fastpath.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_insert_paths_index_maintenance.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_insert_select.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_ioctree.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_isolation_levels.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_join_count_fold.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_knn_parallel.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_large_rows.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_m5_mines.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_mcap_import.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_memory_leak.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_memory_linear.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_multimodal.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_multimodal_e2e.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_mvcc_isolation.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_mvcc_recovery.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_no_bloat.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_optimization_regression.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_order_by_expr_keys.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_parser_fuzz_regression.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_performance_guarantees.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_pk_change_semantics.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_prepared_dml.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_public_api.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_query_equivalence.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_range_count.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_release_readiness.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_repro12.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_round12_optimizations.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_round12b_edge.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_round12c_e2e_bugs.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_round13_bug_hunt.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_row_api.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_rrf_hybrid.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_savepoint_window.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_scalability.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_scan_integrity.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_semantic_edges.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_spatial_index.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_spatial_large_geometry.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_spatial_sql_semantics.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_sql_advanced.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_sql_correctness.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_sql_correctness_part2.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_sql_ddl_features.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_sql_errors_edges.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_sql_functions.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_sql_groupby.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_sql_joins.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_sql_scenarios.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_storage_integrity.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_stress.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_stress_hunt.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_text_ts_search_semantics.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_timeseries_index.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_timeseries_semantics.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_timestamp_recovery.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_transaction_semantics.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_txn_ddl_and_nan_ordering.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_update_perf.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_upsert.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_v050_features.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_vec_m0.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_vec_m4.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_vector_column_read_paths.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_vector_durability.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_vector_index_recall.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_vector_spatial_text.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_vector_visibility.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_wide_tables.rs +0 -0
- {motedb_python-0.13.0 → motedb_python-0.14.0}/tests/test_write_concurrency.rs +0 -0
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.14.0] — 2026-10-12
|
|
4
|
+
|
|
5
|
+
- **🔑 ASOF JOIN(W8, v0.14)**: 机器人帧↔状态对齐原语
|
|
6
|
+
- `t1 ASOF JOIN t2 ON key = key AND right_ts <= left_ts`(也接受
|
|
7
|
+
`left_ts >= right_ts` 等价形)— 每左行取同键下 ts 不超过它的最新右行
|
|
8
|
+
- `LEFT ASOF JOIN` 保留无匹配左行(右侧 NULL);可选键等值(缺省=全局桶)
|
|
9
|
+
- 实现: 右表按 (key → ts 升序) 建桶, 左行二分 partition_point, O(N·logM)
|
|
10
|
+
- 基建修复: **隐式别名吞 ASOF**(`fr ASOF JOIN jt` 曾解析为
|
|
11
|
+
fr{alias:"ASOF"} + Inner JOIN → 静默 0 行); normalize 操作数交换时
|
|
12
|
+
镜像不等号; 前向形式(left_ts <= right_ts)v1 明确报错
|
|
13
|
+
- 测试: test_asof_join.rs(4) — 对齐/左保留/反向形式与错误/30×40 抖动
|
|
14
|
+
时间戳 vs 测试内暴力参照逐行对拍
|
|
15
|
+
- **Perf Gate 新形状**: +blob_scan(0.30x)/rrf_fusion(0.04x)/
|
|
16
|
+
traj_sim_topk(1.79x) 三个 v0.14 查询形状的比率预算(基线=全表扫描)
|
|
17
|
+
- **🔑 数据集快照(W7, v0.14)**:
|
|
18
|
+
- `COMMIT DATASET 'name' [NOTE '…']` — 钉住全部用户表的当前段集
|
|
19
|
+
(段 = 不可变文件,快照即段 id 清单,近乎免费);清单持久化在
|
|
20
|
+
`_dataset_commits` 表(dataset/table/seg_id/note/committed_at)
|
|
21
|
+
- **GC 引用保护**: ColSegmentStore 增加 gc_filter(三个构造点统一安装:
|
|
22
|
+
get_or_create Vacant/Occupied 补装/open 直接构造点)—— sync_manifest
|
|
23
|
+
对被钉住的段**延迟物理删除**(留在 pending_gc 反复复查);reopen 时
|
|
24
|
+
非 active 段的清理同样改为延迟(修复:原先直接删除会吃掉被钉段,
|
|
25
|
+
kill 测试实抓)
|
|
26
|
+
- `EXPORT DATASET 'name' TO 'path'` — 把快照物化为独立新库(清单段:
|
|
27
|
+
内存句柄或按 `{id:010}.sst` 直开 Segment::open;逐活行写入新库,
|
|
28
|
+
同 schema 含 EPISODE BY;索引在目标库按需重建);导出末尾 checkpoint
|
|
29
|
+
保证即时持久化与一致首读
|
|
30
|
+
- `DROP DATASET [IF EXISTS] 'name'` — 释放钉(原生 delete_rows_batch,
|
|
31
|
+
引用集全量重建)
|
|
32
|
+
- 测试: test_datasets.rs(2) — 快照隔离(commit 前后变更不串)、
|
|
33
|
+
reopen+VACUUM 后导出仍完整(GC 保护实抓:open 路径绕过 filter 安装)、
|
|
34
|
+
DROP/IF EXISTS/未知数据集错误
|
|
35
|
+
- **🔑 Episode 数据模型(W6, v0.14 第一块)**:
|
|
36
|
+
- `CREATE EPISODE TABLE … EPISODE BY (key_col, ts_col) GAP '5s'|'100ms'|
|
|
37
|
+
microseconds` — 列存在性校验, 配置持久化在 TableSchema(serde 兼容旧库)
|
|
38
|
+
- `FROM EPISODES(t)` 表函数: 按 key 分组 → ts 排序 → gap 分片, 每片段一行
|
|
39
|
+
(`<key>`, `t0`, `t1`, `n_rows`), 且每个 VECTOR 列派生 `traj_<col>` —
|
|
40
|
+
统一 64 采样线性插值重采样的展平轨迹(64×dim)。Episode 为**派生数据**
|
|
41
|
+
(分片是 key/ts/gap 的纯函数) — 无注册表需持久化, 重开一致性免费
|
|
42
|
+
- `traj_sim(traj_col, demo)` — 64×dim DTW 距离(demo 任意采样数, 内部
|
|
43
|
+
重采样到 64); W5 spike 决议的两段式架构(无物理倒排, PAA 短名单化
|
|
44
|
+
为后续优化), evaluator/positional/simple 三求值表接线
|
|
45
|
+
- 基建: 表函数参数支持裸表名 + 字符串字面量; UNION 合成支持 Vector
|
|
46
|
+
字面量(EPISODES 内联通道, 递归 CTE 路径保持标量限制)
|
|
47
|
+
- 测试: test_episodes.rs(3) — 分片正确性/形状、traj_sim vs 测试内
|
|
48
|
+
暴力 DTW 对拍、重开耐久
|
|
49
|
+
|
|
3
50
|
## [0.13.0] — 2026-10-11
|
|
4
51
|
|
|
5
52
|
- **🔑 BLOB 类型(全链路)**: `payload BLOB` 列 — 第 8 个 ColumnType。
|
|
@@ -173,6 +173,50 @@ One-SQL BM25 ⊕ vector fusion (Reciprocal Rank Fusion, `k`/`rrk`/`w1..w4`
|
|
|
173
173
|
tunable). `snippet(body, 'grasp failure', 80)` renders FTS5-style excerpts
|
|
174
174
|
with `<b>` highlights.
|
|
175
175
|
|
|
176
|
+
### Frame↔state alignment: ASOF JOIN (v0.14 work-in-progress)
|
|
177
|
+
|
|
178
|
+
```sql
|
|
179
|
+
-- For each frame, the latest joint-state at-or-before its timestamp (per session):
|
|
180
|
+
SELECT f.fname, j.q FROM frames f
|
|
181
|
+
ASOF JOIN joints j ON f.session = j.session AND j.ts <= f.ts;
|
|
182
|
+
-- LEFT ASOF JOIN keeps frames with no prior state (NULL right side).
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Episode model + trajectory search (v0.14 work-in-progress)
|
|
186
|
+
|
|
187
|
+
```sql
|
|
188
|
+
CREATE EPISODE TABLE teleop (
|
|
189
|
+
session TEXT, ts TIMESTAMP, joint VECTOR(7), gripper FLOAT
|
|
190
|
+
) EPISODE BY (session, ts) GAP '5s';
|
|
191
|
+
|
|
192
|
+
-- One row per episode: bounds, row count, and a 64-sample resampled
|
|
193
|
+
-- trajectory per VECTOR column (flattened 64×dim).
|
|
194
|
+
SELECT session, t0, t1, n_rows FROM EPISODES(teleop);
|
|
195
|
+
|
|
196
|
+
-- Trajectory similarity (DTW over the resampled series; two-stage
|
|
197
|
+
-- PAA-shortlist design validated in docs/design/2026-10-traj-spike.md):
|
|
198
|
+
SELECT session, t0 FROM EPISODES(teleop)
|
|
199
|
+
ORDER BY traj_sim(traj_joint, [0.0, 0.1, …]) LIMIT 10;
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Episodes are **derived data** — segmentation is a pure function of
|
|
203
|
+
`(key, ts, gap)`, so there is no registry to persist or invalidate and
|
|
204
|
+
reopen consistency is free.
|
|
205
|
+
|
|
206
|
+
### Dataset snapshots (v0.14 work-in-progress)
|
|
207
|
+
|
|
208
|
+
```sql
|
|
209
|
+
COMMIT DATASET 'fixpos-v3' NOTE 'after gripper fix';
|
|
210
|
+
-- … table keeps evolving (compaction GC will not touch pinned segments) …
|
|
211
|
+
EXPORT DATASET 'fixpos-v3' TO '/data/fixpos-v3.mote'; -- materialized copy
|
|
212
|
+
DROP DATASET 'fixpos-v3'; -- release the pin
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
A snapshot is just the pinned segment list (segments are immutable files)
|
|
216
|
+
— near-free to take, persisted in `_dataset_commits`, and compaction
|
|
217
|
+
physically defers deletion of pinned files until the pin is dropped.
|
|
218
|
+
EXPORT materializes the pinned state into a fresh standalone database.
|
|
219
|
+
|
|
176
220
|
### Robotics data on-ramp (new in v0.13)
|
|
177
221
|
|
|
178
222
|
```bash
|
|
@@ -530,7 +530,7 @@ dependencies = [
|
|
|
530
530
|
|
|
531
531
|
[[package]]
|
|
532
532
|
name = "motedb"
|
|
533
|
-
version = "0.
|
|
533
|
+
version = "0.14.0"
|
|
534
534
|
dependencies = [
|
|
535
535
|
"arc-swap",
|
|
536
536
|
"bincode",
|
|
@@ -558,7 +558,7 @@ dependencies = [
|
|
|
558
558
|
|
|
559
559
|
[[package]]
|
|
560
560
|
name = "motedb-python"
|
|
561
|
-
version = "0.
|
|
561
|
+
version = "0.14.0"
|
|
562
562
|
dependencies = [
|
|
563
563
|
"motedb",
|
|
564
564
|
"pyo3",
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# 技术方案:具身数据工作流 — v0.13「入场」与 v0.14「品类定义」
|
|
2
2
|
|
|
3
|
-
> 状态:**
|
|
3
|
+
> 状态:**W8 收口完成**(ASOF JOIN 对齐原语 + Perf Gate 三新形状 +
|
|
4
|
+
> v0.14 发布)→ Phase 2 全部落地。W7 数据集快照已实现(COMMIT/DROP/EXPORT + GC 引用保护,
|
|
5
|
+
> 3 构造点统一 gc_filter;CHECKOUT 只读视图顺延 — EXPORT 物化覆盖训练
|
|
6
|
+
> 数据管线场景)。W6 Episode 模型已实现(DDL + EPISODES(t) 表函数 + traj_sim
|
|
7
|
+
> DTW 排序, 3 项集成测试含暴力 DTW 对拍)。W5 spike 决议: → 见 docs/design/2026-10-traj-spike.md:
|
|
8
|
+
> SAX 倒排 NO-GO(recall 0.762<0.90),PAA+DTW 两段 GO(recall 1.000,
|
|
9
|
+
> p99 26ms,开销 ~1%)—— §5-§6 产品化方案已按决议修订。Phase 1 完成(W1a 文档对齐 ✅、W1b BLOB ✅ 含词法平方级修复、
|
|
4
10
|
> W2-3 MCAP 核心/CLI/Python 钩子/重放幂等 ✅、W4 RRF+bm25+snippet ✅ 含
|
|
5
11
|
> 非 Table FROM 执行器修复)。顺延项:MCAP 断点续导清单表、BLOB 标量函数
|
|
6
12
|
> 求值/ORDER BY 输出缺口。下一阶段:W5 轨迹索引 spike(go/no-go)。
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# W5 轨迹索引 Spike 备忘录 — 决议: SAX 倒排 NO-GO,PAA+DTW 两段 GO
|
|
2
|
+
|
|
3
|
+
> 2026-10-11 · `examples/traj_spike.rs`(可复跑:`cargo run --release --example traj_spike`)
|
|
4
|
+
> 预注册门(roadmap §5):recall@10 ≥ 0.90(structured 查询)· p99 ≤ 500ms · 索引 ≤ 8%
|
|
5
|
+
|
|
6
|
+
## 实验设置
|
|
7
|
+
|
|
8
|
+
- 语料 110k × 64 点:90k z-norm 随机游走 + 20k 结构化形状(10 个运动
|
|
9
|
+
族 × 2k,频率按族、相位/幅值/噪声按成员抖动 —— 机器人"动作基元"模型)
|
|
10
|
+
- 查询 100:50 结构化(同族新噪声/相位)+ 50 随机游走(真值病态,只报不判)
|
|
11
|
+
- 真值:并行暴力 DTW top-10(8 线程 ~11.6s)
|
|
12
|
+
- 策略 A(计划方案):z-norm → PAA(8) → SAX 词(8 符号/字母表 8)→ 倒排桶;
|
|
13
|
+
查询 = Hamming≤2 邻域(1+56+1372 词)→ DTW 精排(堆满后 early-abandon)
|
|
14
|
+
- 策略 B(预注册降级):PAA 欧氏 top-500 → DTW 精排(无倒排索引)
|
|
15
|
+
|
|
16
|
+
## 结果(三次运行稳定)
|
|
17
|
+
|
|
18
|
+
| 指标 | A SAX→DTW | B PAA→DTW | 门 |
|
|
19
|
+
|---|---|---|---|
|
|
20
|
+
| structured recall@10 | **0.762** | **1.000** | ≥ 0.90 |
|
|
21
|
+
| p50 / p99 延迟 | 450µs / 3.4ms | 3.3ms / 25.8ms | ≤ 500ms |
|
|
22
|
+
| 索引开销 | 4.7%(1.32MB) | **~1.1%**(仅 PAA 列 32B/条,无倒排) | ≤ 8% |
|
|
23
|
+
| 平均候选数 | 206 | 500 | — |
|
|
24
|
+
|
|
25
|
+
## 结论
|
|
26
|
+
|
|
27
|
+
1. **SAX 词倒排 NO-GO**:8 符号词分辨率不足 —— 相位移动使 DTW 相似的
|
|
28
|
+
轨迹在 ≥3/8 个 PAA 段上跨越量化边界,Hamming≤2 邻域系统性漏召
|
|
29
|
+
(0.762 < 0.90)。加长词/放大邻域会指数级放大候选与实现复杂度,
|
|
30
|
+
而降级路线已满分,无迭代价值。spike 一下午击毙了复杂设计 —— 目标达成。
|
|
31
|
+
2. **PAA+DTW 两段 GO**:structured recall 1.000、p99 25.8ms(门余量 19×)、
|
|
32
|
+
存储仅 PAA 列(~1%)。且架构上更契合嵌入式定位:**无独立索引结构需要
|
|
33
|
+
维护** —— 与向量检索"预计算紧凑表示 + 精确扫描 + 精排"是同一模式,
|
|
34
|
+
复用 episode close 时的异步预计算管线。
|
|
35
|
+
|
|
36
|
+
## v0.14 产品化含义(修订 §5-§6)
|
|
37
|
+
|
|
38
|
+
- **不建** `TRAJECTORY INDEX` 倒排;`traj_sim(trajectory, ?)` ORDER BY 实现
|
|
39
|
+
为:episode close 时预计算 PAA(8) 列(f32×8)→ 查询时欧氏 top-500
|
|
40
|
+
(可 morsel 并行,110k 单线程 3.3ms;10M 级再并行/IVF-flat)→ DTW 精排
|
|
41
|
+
- 原始 z-norm 序列已在列存中(精排零额外存储);PAA 列为唯一派生数据
|
|
42
|
+
- `CREATE TRAJECTORY INDEX` 语法保留为元数据标记(声明该列参与
|
|
43
|
+
traj_sim),不再是物理结构 —— 对用户心智模型不变
|
|
44
|
+
- 短名单 500 有余量(B 在 250 时预计仍 ≥0.95,产品化时按 Perf Gate 调参)
|
|
@@ -58,6 +58,55 @@ fn main() {
|
|
|
58
58
|
}
|
|
59
59
|
println!("setup: {} rows", n);
|
|
60
60
|
|
|
61
|
+
// v0.14 shapes: BLOB scan, RRF fusion, traj_sim (episode DTW). A second
|
|
62
|
+
// table carries the multimodal payloads; sizes kept modest so the gate
|
|
63
|
+
// stays fast while still catching complexity-class regressions.
|
|
64
|
+
db.execute("CREATE TABLE payloads (id INT PRIMARY KEY, body TEXT, data BLOB)")
|
|
65
|
+
.unwrap();
|
|
66
|
+
for i in 0..20_000i64 {
|
|
67
|
+
db.execute(&format!(
|
|
68
|
+
"INSERT INTO payloads VALUES ({}, 'doc {} about grasp {}', X'{}')",
|
|
69
|
+
i,
|
|
70
|
+
i,
|
|
71
|
+
i % 50,
|
|
72
|
+
"ab".repeat(16)
|
|
73
|
+
))
|
|
74
|
+
.unwrap();
|
|
75
|
+
}
|
|
76
|
+
db.execute("CREATE TEXT INDEX payloads_body ON payloads(body)")
|
|
77
|
+
.unwrap();
|
|
78
|
+
db.execute(
|
|
79
|
+
"CREATE EPISODE TABLE teleop (session TEXT, ts TIMESTAMP, joint VECTOR(2)) EPISODE BY (session, ts) GAP 1000000",
|
|
80
|
+
)
|
|
81
|
+
.unwrap();
|
|
82
|
+
for s in 0..2i64 {
|
|
83
|
+
for e in 0..200i64 {
|
|
84
|
+
let base = 1_700_000_000_000_000i64 + s * 1_000_000_000_000 + e * 2_000_000_000;
|
|
85
|
+
for k in 0..64i64 {
|
|
86
|
+
let x = ((e + k) as f64) * 0.05;
|
|
87
|
+
db.execute(&format!(
|
|
88
|
+
"INSERT INTO teleop VALUES ('s{}', {}, [{}, 0.5])",
|
|
89
|
+
s,
|
|
90
|
+
base + k * 100_000,
|
|
91
|
+
x
|
|
92
|
+
))
|
|
93
|
+
.unwrap();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
let demo: String = (0..64)
|
|
98
|
+
.map(|i| format!("{}", i as f64 * 0.05))
|
|
99
|
+
.collect::<Vec<_>>()
|
|
100
|
+
.join(", ");
|
|
101
|
+
let blob_hex = "ab".repeat(16);
|
|
102
|
+
let blob_scan_sql = format!("SELECT COUNT(*) FROM payloads WHERE data = X'{blob_hex}'");
|
|
103
|
+
let rrf_sql = "SELECT id FROM RRF((SELECT id FROM payloads WHERE MATCH(body, 'grasp') ORDER BY bm25(body) LIMIT 50), (SELECT id FROM payloads ORDER BY id LIMIT 50), k = 10)";
|
|
104
|
+
let traj_sql = format!(
|
|
105
|
+
"SELECT session, t0 FROM EPISODES(teleop) ORDER BY traj_sim(traj_joint, [{}]) LIMIT 10",
|
|
106
|
+
demo
|
|
107
|
+
);
|
|
108
|
+
println!("setup: {} rows (+20k payloads, 400 episodes)", n);
|
|
109
|
+
|
|
61
110
|
let queries: &[(&str, &str, f64)] = &[
|
|
62
111
|
("full_scan (baseline)", "SELECT * FROM sales LIMIT 200000", f64::INFINITY),
|
|
63
112
|
("text_eq_filter", "SELECT id FROM sales WHERE region = 'US' LIMIT 100000", 8.0),
|
|
@@ -65,6 +114,9 @@ fn main() {
|
|
|
65
114
|
("count_sum_filter", "SELECT COUNT(*), SUM(amount) FROM sales WHERE region = 'US'", 6.0),
|
|
66
115
|
("order_topk", "SELECT id, amount FROM sales WHERE region = 'US' ORDER BY amount DESC LIMIT 10", 8.0),
|
|
67
116
|
("in_subquery", "SELECT id FROM sales WHERE customer IN (SELECT customer FROM sales WHERE region = 'US') LIMIT 100000", 14.0),
|
|
117
|
+
("blob_scan", blob_scan_sql.as_str(), 10.0),
|
|
118
|
+
("rrf_fusion", rrf_sql, 20.0),
|
|
119
|
+
("traj_sim_topk", traj_sql.as_str(), 30.0),
|
|
68
120
|
];
|
|
69
121
|
|
|
70
122
|
let mut baseline = Duration::ZERO;
|