motedb-python 0.12.8__tar.gz → 0.13.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.12.8 → motedb_python-0.13.0}/.gitignore +1 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/CHANGELOG.md +99 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/Cargo.lock +145 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/Cargo.toml +2 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/PKG-INFO +1 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/README.md +40 -5
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/Cargo.lock +174 -4
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/Cargo.toml +1 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/src/lib.rs +128 -0
- motedb_python-0.13.0/bindings/python/tests/data/demo.mcap +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_crash_recovery.py +28 -10
- motedb_python-0.13.0/bindings/python/tests/test_mcap_import.py +71 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/13-data-types.md +19 -0
- motedb_python-0.13.0/docs/design/2026-10-embodied-roadmap.md +225 -0
- motedb_python-0.13.0/examples/gen_test_bag.rs +46 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/pyproject.toml +1 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/api.rs +9 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/bin/motedb-cli.rs +78 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/core.rs +128 -10
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/crud.rs +39 -10
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/indexes/text.rs +22 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/persistence.rs +53 -7
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/cached_index.rs +1 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/lib.rs +1 -0
- motedb_python-0.13.0/src/mcap_import.rs +296 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/ast.rs +15 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/evaluator.rs +120 -6
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/executor/mod.rs +238 -12
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/executor/scan.rs +34 -7
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/lexer.rs +8 -19
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/parser.rs +101 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/col_segment/segment.rs +64 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/col_segment/store.rs +53 -3
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/colbatch.rs +3 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/columnar.rs +82 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/row_format.rs +63 -1
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/types/mod.rs +53 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/types/table.rs +17 -0
- motedb_python-0.13.0/tests/blob_probe3.rs +73 -0
- motedb_python-0.13.0/tests/repro_multirow_update_fts.rs +46 -0
- motedb_python-0.13.0/tests/test_blob_type.rs +186 -0
- motedb_python-0.13.0/tests/test_fts_recovery_staleness.rs +112 -0
- motedb_python-0.13.0/tests/test_mcap_import.rs +173 -0
- motedb_python-0.13.0/tests/test_rrf_hybrid.rs +191 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/.cargo/config.toml +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/.devcontainer/devcontainer.json +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/.github/workflows/ci.yml +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/.github/workflows/fuzz.yml +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/.github/workflows/perf-gate.yml +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/.github/workflows/publish.yml +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/.github/workflows/python-wheels.yml +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/.zcode/plans/plan-sess_abb2c954-05fb-477e-9d0a-3e22261e2449.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/.zcode/plans/plan-sess_b5937a06-b7bf-4471-9756-dbf2787b263c.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/LICENSE +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/Makefile +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/RELEASE_NOTES.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/README.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/README.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/adversarial_verify.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/bench_edge.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/compete_bench.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/compete_fts_industry.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/compete_scale.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/compete_spatial_ts.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/compete_vec_industry.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/compete_writes.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/fts_probe_once.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/perf_ab.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/perf_overall.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/prof_ann.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/prof_fts.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/prof_insert.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/prof_point.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/prof_real.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/prof_scale.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/prof_scale_vec.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/prof_vec_parallel.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/resource_bench.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/resource_bench_2026-09_profile.json +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/resource_bench_v0.10.0.json +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/spatial_eval.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/text_eval.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/ts_eval.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/bench/vector_recall_eval.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/build.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/e2e/e2e_workload.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/e2e/test_durability_kwarg.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/licenses/LICENSE +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/scripts/build_wheel.sh +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_backup.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_e2e_cli.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_e2e_functional.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_feature_selfcheck.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_fetch_arrays.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_fuzz_bigtable.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_fuzz_differential.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_insert_arrays.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_parallel_ab.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/bindings/python/tests/test_smoke.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/deny.toml +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/01-quick-start.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/02-installation.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/03-sql-operations.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/04-batch-operations.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/05-transactions.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/06-indexes-overview.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/07-column-index.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/08-vector-index.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/09-text-index.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/10-spatial-index.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/11-timestamp-index.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/12-performance.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/14-api-reference.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/15-best-practices.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/16-faq.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/17-hybrid-arrow.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/README.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/benchmark_methodology.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/paper/README.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/docs/paper/motedb.tex +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_300k.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_autocommit_lock.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_disk.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_exec_only.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_insert_engine.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_layer.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_memory.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_multimodal_vs_competitors.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_point_read.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_profile_hot.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_scaling.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_stability.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/bench_vs_sqlite.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/corruption_fuzz.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/crud.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/differential_fuzz.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/hello_world.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/join_differential_fuzz.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/logging.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/perf_smoke.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/probe_filter_decomp.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/probe_jemalloc.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/probe_memory_source.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/probe_tail_latency.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/text_rank_probe.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/examples/vector_recall_real.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/licenses/LICENSE +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/python/motedb/__init__.py +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/scripts/Dockerfile.e2e +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/scripts/compete.sh +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/scripts/docker_e2e.sh +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/scripts/repro_point_query_gap.sh +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/cache/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/cache/row_cache.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/catalog/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/catalog/registry.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/config.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/doctor.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/helpers.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/index_metadata.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/indexes/column.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/indexes/dashmap_migration.md +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/indexes/ioctree.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/indexes/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/indexes/timestamp.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/indexes/vector.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/mem_buffer.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/pk_cache.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/table.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/timeseries.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/database/transaction.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/distance/cosine.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/distance/euclidean.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/distance/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/error.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/ffi.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/btree.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/btree_generic.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/builder.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/column_value.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/fresh_graph.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/ioctree/leaf_store.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/ioctree/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/ioctree/node.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/ioctree/persistence.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/ioctree/search.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/primary_key.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/text_dictionary.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/text_encoding.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/text_fts.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/text_query.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/text_types.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/tokenizers.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/vamana/config.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/vamana/disk_graph.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/vamana/diskann_index.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/vamana/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/vamana/pruner.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/vamana/sq8.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/index/vamana/sq8_vectors.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/platform_io.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/executor/agg.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/executor/join.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/join/hash_join.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/join/index_join.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/join/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/optimizer.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/row_converter.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/token.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/sql/vector_exec.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/checksum.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/col_segment/manifest.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/col_segment/merge.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/col_segment/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/columnar/column_encoding.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/columnar/config.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/columnar/gorilla.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/columnar/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/columnar/segment.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/columnar/segment_manager.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/columnar/store.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/columnar/write_buffer.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/file_manager.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/blobstore.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/bloom.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/compaction.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/engine.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/memtable.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/merging_iterator.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/sstable.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/lsm/unified_memtable.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/manifest/manifest.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/manifest/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/manifest/version.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/storage/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/txn/coordinator.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/txn/lock_manager.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/txn/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/txn/mvcc.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/txn/recovery.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/txn/version_store.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/txn/wal.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/types/comp_sum.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/types/spatial.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/types/tensor.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/types/text.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/src/types/timestamp.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/acid_test.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_2m.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_acid.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_batch_ops.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_compare.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_comprehensive.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_concurrent.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_index_ops.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_multimodal.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_multimodal_full.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_multimodal_ops.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_perf_report.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_quick_baseline.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_release.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_report.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_resource.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_sql_queries.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_timeseries_index.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_v060_report.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_vs_sqlite_100k.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/bench_vs_sqlite_v05.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/common/mod.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/durability_probe.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/fts_probe.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/perf_test.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/repro_point_gap.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/stress_300k.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/stress_test.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_acid_audit.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_acid_comprehensive.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_advanced_hunt.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_api_correctness.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_auto_checkpoint_segments.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_backup.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_btree_integrity.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt2.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt3.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt4.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt5.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt6.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt7.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v10.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v100.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v101.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v11.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v12.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v13.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v14.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v15.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v16.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v17_cte.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v18.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v19.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v2.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v20.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v21.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v22.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v23.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v24.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v25.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v26.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v27.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v28.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v29.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v3.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v30.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v31.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v32.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v33.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v34.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v35.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v36.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v38.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v39.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v4.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v40.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v43.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v45.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v48.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v49.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v5.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v50.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v51.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v52.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v53.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v54.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v55.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v56.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v57.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v58.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v59.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v6.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v60.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v61.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v62.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v63.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v64.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v65.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v66.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v67.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v68.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v69.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v7.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v70.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v71.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v72.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v73.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v74.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v75.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v76.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v77.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v78.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v79.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v8.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v80.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v81.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v82.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v83.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v84.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v85.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v86.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v87.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v88.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v89.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v9.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v90.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v91.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v92.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v93.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v94.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v95.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v96.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v97.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v98.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_bug_hunt_v99.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_col_segment.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_col_segment_fastpaths.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_columnar.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_columnar_acid.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_compact_storage.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_compaction_integrity.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_compiled_where_semantics.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_comprehensive.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_comprehensive_audit.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_concurrent_sql_features.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_concurrent_stress.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_corruption_recovery.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_corruption_robustness.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_crash_injection.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_crash_recovery.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_data_types.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_db_path_hygiene.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_deadlock_stress.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_deep_edge.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_delete_persist.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_differential_correctness.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_disk_bloat.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_disk_usage.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_doctor.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_durability.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_e2e_crash_and_stress.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_edge_cases.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_edge_semantics.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_executemany.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_exists_subquery.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_explain.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_extreme_hunt.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_fast_paths.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_fuzz_sql_combinations.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_groupby_first_query.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_hybrid_search.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_index_maintenance.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_index_reopen.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_index_robustness.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_indexed_query_semantics.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_insert_engine.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_insert_explicit_fastpath.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_insert_paths_index_maintenance.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_insert_select.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_ioctree.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_isolation_levels.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_join_count_fold.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_knn_parallel.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_large_rows.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_m5_mines.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_memory_leak.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_memory_linear.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_multimodal.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_multimodal_e2e.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_mvcc_isolation.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_mvcc_recovery.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_no_bloat.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_optimization_regression.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_order_by_expr_keys.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_parser_fuzz_regression.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_performance_guarantees.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_pk_change_semantics.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_prepared_dml.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_public_api.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_query_equivalence.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_range_count.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_release_readiness.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_repro12.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_round12_optimizations.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_round12b_edge.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_round12c_e2e_bugs.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_round13_bug_hunt.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_row_api.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_savepoint_window.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_scalability.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_scan_integrity.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_semantic_edges.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_spatial_index.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_spatial_large_geometry.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_spatial_sql_semantics.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_sql_advanced.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_sql_correctness.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_sql_correctness_part2.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_sql_ddl_features.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_sql_errors_edges.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_sql_functions.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_sql_groupby.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_sql_joins.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_sql_scenarios.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_storage_integrity.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_stress.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_stress_hunt.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_text_ts_search_semantics.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_timeseries_index.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_timeseries_semantics.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_timestamp_recovery.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_transaction_semantics.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_txn_ddl_and_nan_ordering.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_update_perf.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_upsert.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_v050_features.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_vec_m0.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_vec_m4.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_vector_column_read_paths.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_vector_durability.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_vector_index_recall.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_vector_spatial_text.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_vector_visibility.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_wide_tables.rs +0 -0
- {motedb_python-0.12.8 → motedb_python-0.13.0}/tests/test_write_concurrency.rs +0 -0
|
@@ -1,5 +1,104 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.13.0] — 2026-10-11
|
|
4
|
+
|
|
5
|
+
- **🔑 BLOB 类型(全链路)**: `payload BLOB` 列 — 第 8 个 ColumnType。
|
|
6
|
+
- 字面量: SQLite 兼容 `X'0aff00'`(奇数位/非 hex 报错); Python `bytes`/
|
|
7
|
+
`bytearray` 参数与取回; CLI 十六进制预览; 16 MiB 上限
|
|
8
|
+
- 存储: 复用 Text 段字节布局 + 独立 `ColumnTypeTag::Blob`(读侧按 schema
|
|
9
|
+
包装 `Value::Blob`, 非 UTF-8 字节零损耗); row_format 变长编解码;
|
|
10
|
+
非定长批/缓存/点查/扫描/缓冲各读路径补齐
|
|
11
|
+
- 语义: 字节等值(`=`/`IS NULL`)、`LENGTH(blob)`=字节数(SQLite 语义)
|
|
12
|
+
- **已知缺口(v0.13.0, 测试内注释标注)**: BLOB 列上的标量函数在部分
|
|
13
|
+
执行器路径(含 VECTOR 混合表/`WHERE` 内函数)与 `ORDER BY` 输出下返回
|
|
14
|
+
NULL — 裸投影/等值/时间窗扫描/参数全稳
|
|
15
|
+
- **🔑 MCAP 机器人数据导入(具身工作流入场券)**:
|
|
16
|
+
- `motedb-cli import mcap <db> <file> [--include s] [--exclude s] [--prefix p]`
|
|
17
|
+
与 Python `db.import_mcap(path, include=…, prefix=…, decode={topic: fn})`
|
|
18
|
+
- 每 topic 一表: `_uid INTEGER PRIMARY KEY`((channel<<40)|seq, 天然去重)、
|
|
19
|
+
`log_time/publish_time TIMESTAMP`(自动时间索引, ns→µs)、`data BLOB`
|
|
20
|
+
(原始消息字节)。解码边界在 Python 钩子(返回 dict → 类型化列, 可产
|
|
21
|
+
VECTOR 列) — 引擎不碰 ROS2 CDR/protobuf 语义
|
|
22
|
+
- 重放幂等: `INSERT OR IGNORE` + `_uid` 去重(kill -9 后重跑即续)
|
|
23
|
+
- 依赖: 官方 `mcap` crate 0.25(只读, 经 cargo-deny)
|
|
24
|
+
- **🔑 词法平方级修复(BLOB 测试实抓)**: `Lexer::current_utf8_char` 每字符
|
|
25
|
+
对剩余输入跑 `str::from_utf8` 全量校验 — 任何 16 MiB 字符串/X'' 字面量
|
|
26
|
+
解析耗时 ~1h; 改为仅解码首码点(decode_first_codepoint), 行为不变
|
|
27
|
+
- **🔑 RRF 混合检索 + bm25()/snippet()**:
|
|
28
|
+
- `FROM RRF((子查询1), (子查询2)[, k = n][, rrk = n][, w1..w4 = f])` 表
|
|
29
|
+
函数: 2..=4 路排名列表的 Reciprocal Rank Fusion( score = Σ wᵢ/(rrk+rankᵢ),
|
|
30
|
+
默认 k=10/rrk=60/均权), 输出按分数降序、值升序 tie-break(确定性可对拍),
|
|
31
|
+
经 `rows_to_union_statement` 内联为派生表 → 外层 WHERE/ORDER BY 走常规机制
|
|
32
|
+
- `bm25(col)` 作为 `BM25_SCORE` 的别名接入 MATCH 快路径: `ORDER BY
|
|
33
|
+
bm25(body)` 与 `ORDER BY score DESC` 等价, LIMIT 下取 ranked top-k
|
|
34
|
+
- `snippet(text, query[, width=64])`: FTS5 风格摘录(首命中窗口 +
|
|
35
|
+
`<b>` 高亮 + 省略号), 纯字符索引实现
|
|
36
|
+
- **顺带修复**: FROM 为非普通表(JOIN/派生表/TableFn)且 ORDER BY+LIMIT
|
|
37
|
+
的查询被 optimizer 的 "unknown" 占位表名绊倒(FullScan 计划臂现按
|
|
38
|
+
FROM 形状回退通用机制)
|
|
39
|
+
- 测试: test_rrf_hybrid.rs(3) — 引擎融合 vs 测试内参照公式逐 id 对拍、
|
|
40
|
+
命名参数(w1=0 退化为单路)、形状错误、bm25 排序等价、snippet 窗口/高亮
|
|
41
|
+
- 文档对齐: README SQL Support 勘误(WITH RECURSIVE/窗口函数 0.12 已实现
|
|
42
|
+
但写着不支持)+ BLOB/MCAP 能力与已知缺口如实标注
|
|
43
|
+
- 测试: test_blob_type.rs(4)、test_mcap_import.rs(合成 bag 回环: 布局/
|
|
44
|
+
字节保真/钩子/过滤/重放幂等/重开)、bindings/python/tests/
|
|
45
|
+
test_mcap_import.py(固定 fixture bag 端到端)、examples/gen_test_bag.rs
|
|
46
|
+
- 顺延(下版): RRF 混合检索 + bm25()/snippet()(设计已定: docs/design/
|
|
47
|
+
2026-10-embodied-roadmap.md); MCAP 断点续导清单表(`_mcap_imports`)
|
|
48
|
+
|
|
49
|
+
## [0.12.9] — 2026-10-10
|
|
50
|
+
|
|
51
|
+
- **🔑 崩溃恢复审计三连修(0.12.8 stale 检测的边界补全)**:
|
|
52
|
+
- **重建不清空旧索引 → 统计膨胀**: 恢复重建在已加载的(可能滞后的)
|
|
53
|
+
索引上**追加**而非重置 —— `batch_insert` 不幂等(total_docs 无条件
|
|
54
|
+
自增、`PostingList::add` 对已有 doc 抬 TF), 一次重建即 total_docs
|
|
55
|
+
翻倍 + 词频加倍(BM25 静默漂移, MATCH 成员正确所以压测没抓到)。
|
|
56
|
+
修复: 重建前硬重置(删除 text_{name}.fts.d 与 dict.d 目录、新建空
|
|
57
|
+
索引, 与 load 路径同构), 重建后 total_docs 精确等于活行探针实测
|
|
58
|
+
80/80。回归: tests/test_fts_recovery_staleness.rs(UPDATE/DELETE/
|
|
59
|
+
NULL 混合 + 标记契约 + 恢复幂等)
|
|
60
|
+
- **NULL 文本行 → 每次全量重建**: NULL 不入索引是常态, 但 0.12.8 的
|
|
61
|
+
`indexed < table_rows` 谓词把含 NULL 的表判为永久 stale → 每次
|
|
62
|
+
open 全量重建(且触发上面的追加膨胀)。修复: 引入**干净关闭标记**
|
|
63
|
+
`fts_indexes.fresh` —— Drop 时 flush 全部文本索引(有界锁等待,
|
|
64
|
+
builder 卡死则跳过标记而非卡死 Drop)并原子写标记; open 起始消费
|
|
65
|
+
标记, 标记在位 → 干净重开零校验零重建, 标记缺失(崩溃证据)→ 才
|
|
66
|
+
跑计数校验。干净重开实测零重建
|
|
67
|
+
- **墓碑丢失方向 → MATCH 幻影**: crash 前 DELETE 的内存 tombstone
|
|
68
|
+
未落盘 → 磁盘索引 total_docs **大于**表行数, 旧 `<` 谓词不触发
|
|
69
|
+
重建 → posting 残留已删行, `COUNT(*) WHERE MATCH` 快路径按索引
|
|
70
|
+
计数会多计。修复: 谓词改 `indexed != table_rows`(双向); 实证中
|
|
71
|
+
干净关闭/WAL 回放通常兜底此窗口, `!=` 为纵深防御。回归:
|
|
72
|
+
test_crash_recovery.py 扩展奇数轮 kill@DELCKPT(删除后 checkpoint
|
|
73
|
+
即杀), 断言 MATCH 与活行精确一致
|
|
74
|
+
- 详查结论: UPDATE 后多 segment 无同 key 双活(重建计数精确); 文本
|
|
75
|
+
索引磁盘产物全部位于 fts.d/dict.d 两目录(重置完整)
|
|
76
|
+
- **WAL 截断点 durability 对齐(纵深防御)**: checkpoint_impl 与 vacuum
|
|
77
|
+
在 `wal.checkpoint_all()` 截断前新增有界(2s try-write)FTS flush。
|
|
78
|
+
原理: UPDATE 的 term 级墓碑(deleted_term_docs)纯内存, 计数谓词
|
|
79
|
+
(total_docs 净变化为零)天然看不见内容级漂移; 截断 WAL 会移除本可
|
|
80
|
+
回放重放的索引变更。实测该窗口被 WAL 回放兜住(不 flush 崩溃结果
|
|
81
|
+
也正确), 此为原理性对齐而非实测缺陷修复; 锁竞争时跳过(不劣于
|
|
82
|
+
修复前)
|
|
83
|
+
- **🔑 在线 backup 竞态修复(全套件并行实抓, 上项改动的连带暴露)**:
|
|
84
|
+
backup 拷贝与"已 in-flight 的段交换"竞态时 NotFound 只重试 3×50ms
|
|
85
|
+
— 全套件并行负载下逃逸(backup_to 报 Io NotFound)。且 auto-checkpoint
|
|
86
|
+
持 is_flushing 的临界区因上面的 FTS flush 变长, backup 的 CAS 冲突
|
|
87
|
+
从"立即报错"概率上升。修复: 拷贝重试 3×50ms → 10×100ms; is_flushing
|
|
88
|
+
CAS 冲突内部重试 ~2.5s 后才上抛 "retry backup"。因果验证: 去 FTS
|
|
89
|
+
flush 的全套件 exit 0, 带上后 2/2 失败, 加宽重试后收敛
|
|
90
|
+
- **标记契约加固(二轮自查)**:
|
|
91
|
+
- **重置顺序(Windows 关键)**: `TextFTSIndex::new` 是 create-or-OPEN,
|
|
92
|
+
会加载残留文件; 旧索引对象持着 fts.d 内文件句柄时 Windows 删除目录
|
|
93
|
+
因共享冲突失败 → new() 会加载旧状态、追加膨胀复活。修复: 先从 map
|
|
94
|
+
移除旧条目(释放句柄)再删目录再新建(macOS 上不可测, 代码序保证)
|
|
95
|
+
- **盖章归属与僵尸句柄**: close() 释放 flock 后对象可存活到 GC ——
|
|
96
|
+
僵尸 Drop 在新实例 open 之后再盖章 = 给新会话中途状态谎报"干净"。
|
|
97
|
+
修复: close() 在**持锁期间**(release_lock 之前)盖章(Python 主路径
|
|
98
|
+
即时生效, 不依赖 GC); Drop 路径仅在仍持锁(从未 close)时盖章
|
|
99
|
+
- **标记持久化**: fsync 文件 + rename + unix 目录 fsync, 标记严格
|
|
100
|
+
排在被 flush 的索引数据之后(断电不出现"标记在、数据不在")
|
|
101
|
+
|
|
3
102
|
## [0.12.8] — 2026-10-09
|
|
4
103
|
|
|
5
104
|
- **🔑 kill -9 崩溃后全文索引静默滞后修复(PyPI 包压测实抓)**: 崩溃发生在
|
|
@@ -100,12 +100,24 @@ dependencies = [
|
|
|
100
100
|
"rustversion",
|
|
101
101
|
]
|
|
102
102
|
|
|
103
|
+
[[package]]
|
|
104
|
+
name = "array-init"
|
|
105
|
+
version = "2.1.0"
|
|
106
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
107
|
+
checksum = "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc"
|
|
108
|
+
|
|
103
109
|
[[package]]
|
|
104
110
|
name = "autocfg"
|
|
105
111
|
version = "1.5.1"
|
|
106
112
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
107
113
|
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
108
114
|
|
|
115
|
+
[[package]]
|
|
116
|
+
name = "bimap"
|
|
117
|
+
version = "0.6.3"
|
|
118
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
119
|
+
checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7"
|
|
120
|
+
|
|
109
121
|
[[package]]
|
|
110
122
|
name = "bincode"
|
|
111
123
|
version = "1.3.3"
|
|
@@ -115,6 +127,30 @@ dependencies = [
|
|
|
115
127
|
"serde",
|
|
116
128
|
]
|
|
117
129
|
|
|
130
|
+
[[package]]
|
|
131
|
+
name = "binrw"
|
|
132
|
+
version = "0.15.2"
|
|
133
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
134
|
+
checksum = "6ad120d555272286c1017d25165ab8bd74806f13fc85b258484ec7e4ce75458f"
|
|
135
|
+
dependencies = [
|
|
136
|
+
"array-init",
|
|
137
|
+
"binrw_derive",
|
|
138
|
+
"bytemuck",
|
|
139
|
+
]
|
|
140
|
+
|
|
141
|
+
[[package]]
|
|
142
|
+
name = "binrw_derive"
|
|
143
|
+
version = "0.15.2"
|
|
144
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
145
|
+
checksum = "6df92e0e9baae4dc82c7bad7715ca40c0a5c71539057bf2ea04a5c29c980410b"
|
|
146
|
+
dependencies = [
|
|
147
|
+
"either",
|
|
148
|
+
"owo-colors",
|
|
149
|
+
"proc-macro2",
|
|
150
|
+
"quote",
|
|
151
|
+
"syn",
|
|
152
|
+
]
|
|
153
|
+
|
|
118
154
|
[[package]]
|
|
119
155
|
name = "bitflags"
|
|
120
156
|
version = "1.3.2"
|
|
@@ -327,6 +363,40 @@ version = "0.2.4"
|
|
|
327
363
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
328
364
|
checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
|
|
329
365
|
|
|
366
|
+
[[package]]
|
|
367
|
+
name = "darling"
|
|
368
|
+
version = "0.21.3"
|
|
369
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
370
|
+
checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0"
|
|
371
|
+
dependencies = [
|
|
372
|
+
"darling_core",
|
|
373
|
+
"darling_macro",
|
|
374
|
+
]
|
|
375
|
+
|
|
376
|
+
[[package]]
|
|
377
|
+
name = "darling_core"
|
|
378
|
+
version = "0.21.3"
|
|
379
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
380
|
+
checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4"
|
|
381
|
+
dependencies = [
|
|
382
|
+
"fnv",
|
|
383
|
+
"ident_case",
|
|
384
|
+
"proc-macro2",
|
|
385
|
+
"quote",
|
|
386
|
+
"syn",
|
|
387
|
+
]
|
|
388
|
+
|
|
389
|
+
[[package]]
|
|
390
|
+
name = "darling_macro"
|
|
391
|
+
version = "0.21.3"
|
|
392
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
393
|
+
checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81"
|
|
394
|
+
dependencies = [
|
|
395
|
+
"darling_core",
|
|
396
|
+
"quote",
|
|
397
|
+
"syn",
|
|
398
|
+
]
|
|
399
|
+
|
|
330
400
|
[[package]]
|
|
331
401
|
name = "dary_heap"
|
|
332
402
|
version = "0.3.9"
|
|
@@ -384,6 +454,27 @@ version = "1.16.0"
|
|
|
384
454
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
385
455
|
checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
|
|
386
456
|
|
|
457
|
+
[[package]]
|
|
458
|
+
name = "enumset"
|
|
459
|
+
version = "1.1.14"
|
|
460
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
461
|
+
checksum = "ccc5801fd11762e24d1e420d01d2ac518f2a2ca4329d4fbb6639f2412b6204e0"
|
|
462
|
+
dependencies = [
|
|
463
|
+
"enumset_derive",
|
|
464
|
+
]
|
|
465
|
+
|
|
466
|
+
[[package]]
|
|
467
|
+
name = "enumset_derive"
|
|
468
|
+
version = "0.15.0"
|
|
469
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
470
|
+
checksum = "4bd536557b58c682b217b8fb199afdff47cd3eff260623f19e77074eb073d63a"
|
|
471
|
+
dependencies = [
|
|
472
|
+
"darling",
|
|
473
|
+
"proc-macro2",
|
|
474
|
+
"quote",
|
|
475
|
+
"syn",
|
|
476
|
+
]
|
|
477
|
+
|
|
387
478
|
[[package]]
|
|
388
479
|
name = "env_filter"
|
|
389
480
|
version = "2.0.0"
|
|
@@ -447,6 +538,12 @@ version = "0.1.9"
|
|
|
447
538
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
448
539
|
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
|
449
540
|
|
|
541
|
+
[[package]]
|
|
542
|
+
name = "fnv"
|
|
543
|
+
version = "1.0.7"
|
|
544
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
545
|
+
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
|
|
546
|
+
|
|
450
547
|
[[package]]
|
|
451
548
|
name = "foldhash"
|
|
452
549
|
version = "0.2.0"
|
|
@@ -571,6 +668,12 @@ version = "0.5.2"
|
|
|
571
668
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
572
669
|
checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
|
|
573
670
|
|
|
671
|
+
[[package]]
|
|
672
|
+
name = "ident_case"
|
|
673
|
+
version = "1.0.1"
|
|
674
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
675
|
+
checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
|
|
676
|
+
|
|
574
677
|
[[package]]
|
|
575
678
|
name = "include-flate"
|
|
576
679
|
version = "0.3.3"
|
|
@@ -783,6 +886,24 @@ dependencies = [
|
|
|
783
886
|
"hashbrown 0.17.1",
|
|
784
887
|
]
|
|
785
888
|
|
|
889
|
+
[[package]]
|
|
890
|
+
name = "mcap"
|
|
891
|
+
version = "0.25.0"
|
|
892
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
893
|
+
checksum = "b215e79631de2a19ed76fda13cd52950c3057b487a2f41d9dc85c4079b969c40"
|
|
894
|
+
dependencies = [
|
|
895
|
+
"bimap",
|
|
896
|
+
"binrw",
|
|
897
|
+
"byteorder",
|
|
898
|
+
"crc32fast",
|
|
899
|
+
"enumset",
|
|
900
|
+
"log",
|
|
901
|
+
"num_cpus",
|
|
902
|
+
"paste",
|
|
903
|
+
"static_assertions",
|
|
904
|
+
"thiserror 2.0.18",
|
|
905
|
+
]
|
|
906
|
+
|
|
786
907
|
[[package]]
|
|
787
908
|
name = "memchr"
|
|
788
909
|
version = "2.8.2"
|
|
@@ -800,7 +921,7 @@ dependencies = [
|
|
|
800
921
|
|
|
801
922
|
[[package]]
|
|
802
923
|
name = "motedb"
|
|
803
|
-
version = "0.
|
|
924
|
+
version = "0.13.0"
|
|
804
925
|
dependencies = [
|
|
805
926
|
"arc-swap",
|
|
806
927
|
"bincode",
|
|
@@ -813,6 +934,7 @@ dependencies = [
|
|
|
813
934
|
"libc",
|
|
814
935
|
"log",
|
|
815
936
|
"lru",
|
|
937
|
+
"mcap",
|
|
816
938
|
"memmap2",
|
|
817
939
|
"parking_lot",
|
|
818
940
|
"phf",
|
|
@@ -848,6 +970,16 @@ dependencies = [
|
|
|
848
970
|
"autocfg",
|
|
849
971
|
]
|
|
850
972
|
|
|
973
|
+
[[package]]
|
|
974
|
+
name = "num_cpus"
|
|
975
|
+
version = "1.17.0"
|
|
976
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
977
|
+
checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b"
|
|
978
|
+
dependencies = [
|
|
979
|
+
"hermit-abi",
|
|
980
|
+
"libc",
|
|
981
|
+
]
|
|
982
|
+
|
|
851
983
|
[[package]]
|
|
852
984
|
name = "once_cell"
|
|
853
985
|
version = "1.21.4"
|
|
@@ -866,6 +998,12 @@ version = "11.1.5"
|
|
|
866
998
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
867
999
|
checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
|
|
868
1000
|
|
|
1001
|
+
[[package]]
|
|
1002
|
+
name = "owo-colors"
|
|
1003
|
+
version = "4.4.0"
|
|
1004
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1005
|
+
checksum = "13c45bb4a6ae1280ec0803b1ef9d3455eb50f01efbbe1447ab020f1d54fba9d8"
|
|
1006
|
+
|
|
869
1007
|
[[package]]
|
|
870
1008
|
name = "parking_lot"
|
|
871
1009
|
version = "0.12.5"
|
|
@@ -1282,6 +1420,12 @@ version = "1.1.1"
|
|
|
1282
1420
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1283
1421
|
checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b"
|
|
1284
1422
|
|
|
1423
|
+
[[package]]
|
|
1424
|
+
name = "static_assertions"
|
|
1425
|
+
version = "1.1.0"
|
|
1426
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1427
|
+
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
|
1428
|
+
|
|
1285
1429
|
[[package]]
|
|
1286
1430
|
name = "strsim"
|
|
1287
1431
|
version = "0.11.1"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "motedb"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.13.0"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
rust-version = "1.87"
|
|
6
6
|
description = "AI-native embedded multimodal database for embodied intelligence (robots, AR glasses, industrial arms)."
|
|
@@ -41,6 +41,7 @@ name = "motedb-cli"
|
|
|
41
41
|
path = "src/bin/motedb-cli.rs"
|
|
42
42
|
|
|
43
43
|
[dependencies]
|
|
44
|
+
mcap = { version = "0.25.0", default-features = false }
|
|
44
45
|
# Memory-mapped file I/O (used by: spatial_hybrid, diskann/sst)
|
|
45
46
|
memmap2 = "0.9"
|
|
46
47
|
|
|
@@ -160,6 +160,32 @@ See [`examples/logging.rs`](examples/logging.rs) for a runnable demo.
|
|
|
160
160
|
|
|
161
161
|
- 🔍 **运维自检** — `db.doctor()` / `motedb-cli doctor <path>`:表布局、内存预算、索引覆盖率、磁盘占用逐项 PASS/WARN 报告。
|
|
162
162
|
|
|
163
|
+
### Hybrid search (new in v0.13.1)
|
|
164
|
+
|
|
165
|
+
```sql
|
|
166
|
+
SELECT id FROM RRF(
|
|
167
|
+
(SELECT id FROM docs WHERE MATCH(body, 'grasp failure') ORDER BY bm25(body) LIMIT 100),
|
|
168
|
+
(SELECT id FROM docs ORDER BY emb <-> ? LIMIT 100)
|
|
169
|
+
);
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
One-SQL BM25 ⊕ vector fusion (Reciprocal Rank Fusion, `k`/`rrk`/`w1..w4`
|
|
173
|
+
tunable). `snippet(body, 'grasp failure', 80)` renders FTS5-style excerpts
|
|
174
|
+
with `<b>` highlights.
|
|
175
|
+
|
|
176
|
+
### Robotics data on-ramp (new in v0.13)
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
motedb import mcap robot.mote recording.mcap # CLI
|
|
180
|
+
# 或 Python:
|
|
181
|
+
db.import_mcap("recording.mcap", decode={"/joint_states": my_decoder})
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
One table per topic (`_uid` PK, `log_time`/`publish_time` TIMESTAMP + auto
|
|
185
|
+
index, raw message `data BLOB`); a per-topic Python decode hook adds typed
|
|
186
|
+
columns (e.g. decoded `emb VECTOR`) at import time. Re-imports are no-ops
|
|
187
|
+
(`_uid` dedup) — crash-safe resumes.
|
|
188
|
+
|
|
163
189
|
### Multimodal
|
|
164
190
|
|
|
165
191
|
| Modality | Index | Query |
|
|
@@ -253,8 +279,11 @@ EXISTS]` / `DROP INDEX`, `ALTER TABLE` (`ADD COLUMN`, `AUTO_INCREMENT = N`),
|
|
|
253
279
|
- Aggregates: `COUNT`, `SUM`, `AVG`, `MIN`, `MAX`, `STDDEV`, `VARIANCE`
|
|
254
280
|
- `UNION` / `UNION ALL`
|
|
255
281
|
- `CASE WHEN ... THEN ... ELSE ... END`
|
|
256
|
-
- `WITH` / Common Table Expressions
|
|
257
|
-
|
|
282
|
+
- `WITH` / Common Table Expressions incl. **`WITH RECURSIVE`** (semi-naive
|
|
283
|
+
fixed-point, UNION ALL bodies, chained CTEs)
|
|
284
|
+
- Window functions: `ROW_NUMBER`, `RANK`, `DENSE_RANK`, `NTILE`, `LAG`,
|
|
285
|
+
`LEAD`, `FIRST_VALUE`, `LAST_VALUE` + aggregates `OVER (PARTITION BY …
|
|
286
|
+
ORDER BY …)` (RANGE peer-group default frame)
|
|
258
287
|
- Scalar functions: `UPPER`/`LOWER`/`LENGTH`/`TRIM`/`SUBSTR`/`REPLACE`/`CONCAT` (skips NULL args, SQLite/Postgres semantics; `||` propagates NULL)/`INSTR`/`COALESCE`/`ROUND` (binary-exact decimal rounding)/`ABS`/arithmetic
|
|
259
288
|
- Multimodal predicates: `MATCH(col) AGAINST('q')` (BM25 ranked FTS;
|
|
260
289
|
multi-word default is AND, explicit `a OR b` unions — FTS5-compatible),
|
|
@@ -263,9 +292,15 @@ EXISTS]` / `DROP INDEX`, `ALTER TABLE` (`ADD COLUMN`, `AUTO_INCREMENT = N`),
|
|
|
263
292
|
- Transactions: `BEGIN` / `COMMIT` / `ROLLBACK`, savepoints, read-your-writes
|
|
264
293
|
visibility inside a transaction
|
|
265
294
|
|
|
266
|
-
**
|
|
267
|
-
|
|
268
|
-
functions
|
|
295
|
+
**BLOB type:** `payload BLOB` columns with SQLite-style `X'0aff00'` hex
|
|
296
|
+
literals and Python `bytes` parameters (byte-exact round-trip, 16 MiB
|
|
297
|
+
cap). Known v0.13 gaps: scalar functions over BLOB columns
|
|
298
|
+
(`LENGTH(payload)`) and BLOB output under `ORDER BY` are not yet wired
|
|
299
|
+
through all executor paths — bare projection, equality (`WHERE payload =
|
|
300
|
+
X'…'`), time-window scans and parameters are solid.
|
|
301
|
+
|
|
302
|
+
**Not yet supported:** `DECIMAL`/`DATE` types, cross-statement server-side
|
|
303
|
+
cursors, and explicit window frames (`ROWS`/`RANGE` specs).
|
|
269
304
|
|
|
270
305
|
## Documentation
|
|
271
306
|
|