motedb-python 0.15.2__tar.gz → 0.16.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.16.0/.github/FUNDING.yml +11 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/workflows/ci.yml +10 -1
- motedb_python-0.16.0/CAPABILITIES.md +178 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/CHANGELOG.md +70 -0
- motedb_python-0.16.0/CODE_OF_CONDUCT.md +105 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/Cargo.lock +1 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/Cargo.toml +1 -1
- motedb_python-0.16.0/GOVERNANCE.md +153 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/PKG-INFO +1 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/README.md +6 -3
- motedb_python-0.16.0/ROADMAP.md +151 -0
- motedb_python-0.16.0/VERSIONING.md +49 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/Cargo.lock +2 -2
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/Cargo.toml +1 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/e2e/e2e_workload.py +40 -0
- motedb_python-0.16.0/bindings/python/e2e/test_mcp_stdio.py +98 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/src/lib.rs +25 -0
- motedb_python-0.16.0/community/README.md +160 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/01-quick-start.md +1 -1
- motedb_python-0.16.0/docs/03-sql-operations.md +361 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/05-transactions.md +14 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/08-vector-index.md +49 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/09-text-index.md +30 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/10-spatial-index.md +9 -10
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/13-data-types.md +28 -7
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/14-api-reference.md +52 -1
- motedb_python-0.16.0/docs/17-hybrid-arrow.md +52 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/README.md +1 -1
- motedb_python-0.16.0/docs/api/public-api-baseline.txt +9480 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/design/2026-10-industry-parity-plan.md +71 -12
- motedb_python-0.16.0/docs/design/2026-10-order-by-internals.md +248 -0
- motedb_python-0.16.0/docs/design/2026-10-txn-fix-log.md +170 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/pyproject.toml +1 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/python/motedb/mcp.py +19 -5
- motedb_python-0.16.0/scripts/check_public_api.sh +49 -0
- motedb_python-0.16.0/scripts/gen_format_fixture.rs +57 -0
- motedb_python-0.16.0/scripts/gen_format_fixtures.sh +32 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/api.rs +8 -4
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/bin/motedb-cli.rs +4 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/cache/row_cache.rs +64 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/catalog/registry.rs +42 -2
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/core.rs +42 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/crud.rs +152 -39
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/indexes/timestamp.rs +7 -7
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/indexes/vector.rs +53 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/transaction.rs +208 -89
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/export/parquet.rs +17 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/cached_index.rs +1 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/text_fts.rs +4 -2
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/tokenizers.rs +46 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/vamana/config.rs +9 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/vamana/disk_graph.rs +57 -15
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/vamana/diskann_index.rs +32 -13
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/vamana/sq8_vectors.rs +33 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/ast.rs +96 -6
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/evaluator.rs +133 -34
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/executor/agg.rs +5 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/executor/mod.rs +1196 -238
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/executor/scan.rs +77 -14
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/lexer.rs +26 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/parser.rs +246 -8
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/row_converter.rs +7 -54
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/vector_exec.rs +43 -9
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/col_segment/merge.rs +23 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/col_segment/segment.rs +9 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/col_segment/store.rs +503 -101
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/colbatch.rs +16 -1
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/columnar.rs +236 -3
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/row_format.rs +56 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/txn/coordinator.rs +30 -0
- motedb_python-0.16.0/src/types/date.rs +146 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/types/mod.rs +42 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/types/table.rs +70 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/types/timestamp.rs +44 -9
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/.lock +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/catalog.bin +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/columnar_ms/mig/0000000001.sst +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/columnar_ms/mig/MANIFEST +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/columnar_ms/mig_vec/0000000001.sst +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/columnar_ms/mig_vec/MANIFEST +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/fts_indexes.fresh +1 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/indexes/timestamp.idx +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/lsm/blobs/00000001.blob +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/lsn_counter +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/wal/partition_0.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/wal/partition_1.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/wal/partition_2.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/wal/partition_3.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/.lock +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/catalog.bin +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/columnar_ms/mig/0000000001.sst +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/columnar_ms/mig/MANIFEST +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/columnar_ms/mig_vec/0000000001.sst +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/columnar_ms/mig_vec/MANIFEST +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/fts_indexes.fresh +1 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/indexes/timestamp.idx +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/lsm/blobs/00000001.blob +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/lsn_counter +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/wal/partition_0.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/wal/partition_1.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/wal/partition_2.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/wal/partition_3.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/.lock +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/catalog.bin +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/columnar_ms/mig/0000000001.sst +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/columnar_ms/mig/MANIFEST +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/columnar_ms/mig_vec/0000000001.sst +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/columnar_ms/mig_vec/MANIFEST +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/fts_indexes.fresh +1 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/indexes/timestamp.idx +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/lsm/blobs/00000001.blob +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/lsn_counter +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/wal/partition_0.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/wal/partition_1.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/wal/partition_2.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/wal/partition_3.wal +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/.lock +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/columnar_ms/MANIFEST +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/columnar_ms/mig/0000000001.sst +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/columnar_ms/mig_vec/0000000001.sst +0 -0
- motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/meta.bin +0 -0
- motedb_python-0.16.0/tests/test_blob_where.rs +156 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v102.rs +279 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v103.rs +201 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v104.rs +332 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v105.rs +272 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v106.rs +201 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v107.rs +228 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v108.rs +242 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v110.rs +432 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v111.rs +459 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v112.rs +366 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v113.rs +410 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v114.rs +269 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v115.rs +317 -0
- motedb_python-0.16.0/tests/test_bug_hunt_v116.rs +297 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v18.rs +8 -7
- motedb_python-0.16.0/tests/test_concurrent_agg_consistency.rs +329 -0
- motedb_python-0.16.0/tests/test_concurrent_transfer_drift.rs +118 -0
- motedb_python-0.16.0/tests/test_concurrent_txn_ww.rs +230 -0
- motedb_python-0.16.0/tests/test_correlated_subquery.rs +145 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_crash_injection.rs +198 -1
- motedb_python-0.16.0/tests/test_date_type.rs +212 -0
- motedb_python-0.16.0/tests/test_format_migration.rs +131 -0
- motedb_python-0.16.0/tests/test_like_escape.rs +155 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_no_bloat.rs +15 -5
- motedb_python-0.16.0/tests/test_quoted_vector_literal.rs +114 -0
- motedb_python-0.16.0/tests/test_row_cache_delete_ghost.rs +103 -0
- motedb_python-0.16.0/tests/test_ts_index_nonfirst.rs +102 -0
- motedb_python-0.16.0/tests/test_txn_delete_reinsert.rs +132 -0
- motedb_python-0.16.0/tests/test_txn_read_your_writes.rs +104 -0
- motedb_python-0.16.0/tests/test_vector_index_knobs.rs +86 -0
- motedb_python-0.16.0/tests/test_window_frames.rs +385 -0
- motedb_python-0.15.2/docs/03-sql-operations.md +0 -570
- motedb_python-0.15.2/docs/17-hybrid-arrow.md +0 -50
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.cargo/config.toml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.devcontainer/devcontainer.json +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/ISSUE_TEMPLATE/install_problem.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/pull_request_template.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/workflows/fuzz.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/workflows/node-publish.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/workflows/perf-gate.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/workflows/publish.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/workflows/python-wheels.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/workflows/release-smoke.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.github/workflows/site.yml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.gitignore +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.zcode/plans/plan-sess_abb2c954-05fb-477e-9d0a-3e22261e2449.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/.zcode/plans/plan-sess_b5937a06-b7bf-4471-9756-dbf2787b263c.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/CONTRIBUTING.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/LICENSE +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/Makefile +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/RELEASE_NOTES.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/SECURITY.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/go/README.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/go/go.mod +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/go/motedb.go +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/go/motedb.h +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/go/motedb_test.go +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/README.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/README.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/adversarial_verify.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/bench_edge.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/compete_bench.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/compete_fts_industry.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/compete_scale.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/compete_spatial_ts.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/compete_vec_engines.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/compete_vec_industry.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/compete_writes.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/fts_probe_once.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/perf_ab.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/perf_overall.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/prof_ann.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/prof_fts.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/prof_insert.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/prof_point.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/prof_real.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/prof_scale.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/prof_scale_vec.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/prof_vec_parallel.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/resource_bench.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/resource_bench_2026-09_profile.json +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/resource_bench_v0.10.0.json +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/spatial_eval.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/text_eval.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/ts_eval.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/bench/vector_recall_eval.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/build.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/e2e/test_durability_kwarg.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/e2e/test_snapshot_export.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/licenses/LICENSE +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/scripts/build_wheel.sh +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/data/demo.mcap +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_backup.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_crash_recovery.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_e2e_cli.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_e2e_functional.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_feature_selfcheck.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_fetch_arrays.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_fuzz_bigtable.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_fuzz_differential.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_insert_arrays.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_mcap_import.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_parallel_ab.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_parquet_lerobot.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/bindings/python/tests/test_smoke.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/deny.toml +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/02-installation.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/04-batch-operations.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/06-indexes-overview.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/07-column-index.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/11-timestamp-index.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/12-performance.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/15-best-practices.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/16-faq.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/18-install-troubleshooting.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/19-training-dataloader.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/20-mcp.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/benchmark_methodology.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/design/2026-10-embodied-roadmap.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/design/2026-10-file-layout-plan.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/design/2026-10-file-layout.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/design/2026-10-good-first-issues.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/design/2026-10-traj-spike.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/paper/README.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/docs/paper/motedb.tex +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_300k.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_autocommit_lock.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_disk.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_exec_only.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_insert_engine.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_layer.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_memory.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_multimodal_vs_competitors.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_point_read.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_profile_hot.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_scaling.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_stability.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/bench_vs_sqlite.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/corruption_fuzz.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/crud.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/differential_fuzz.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/file_layout_bench.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/gen_test_bag.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/hello_world.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/join_differential_fuzz.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/lerobot_interop.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/logging.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/parquet_interop.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/perf_smoke.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/probe_ckpt.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/probe_filter_decomp.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/probe_jemalloc.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/probe_memory_source.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/probe_tail_latency.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/text_rank_probe.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/torch_dataloader.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/traj_spike.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/examples/vector_recall_real.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/licenses/LICENSE +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/python/motedb/__init__.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/python/motedb/torch.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/scripts/Dockerfile.e2e +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/scripts/bench_industry.sh +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/scripts/bench_report.py +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/scripts/compete.sh +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/scripts/docker_e2e.sh +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/scripts/release_smoke.sh +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/scripts/repro_point_query_gap.sh +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/site/index.html +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/site/llms-full.txt +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/site/llms.txt +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/site/robots.txt +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/cache/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/catalog/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/config.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/datasets.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/doctor.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/helpers.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/index_metadata.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/indexes/column.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/indexes/dashmap_migration.md +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/indexes/ioctree.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/indexes/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/indexes/text.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/mem_buffer.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/meta_store.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/persistence.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/pk_cache.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/snapshot.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/table.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/database/timeseries.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/distance/cosine.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/distance/euclidean.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/distance/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/error.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/export/lerobot.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/export/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/ffi.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/btree.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/btree_generic.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/builder.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/column_value.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/fresh_graph.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/ioctree/leaf_store.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/ioctree/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/ioctree/node.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/ioctree/persistence.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/ioctree/search.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/primary_key.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/text_dictionary.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/text_encoding.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/text_query.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/text_types.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/vamana/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/vamana/pruner.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/index/vamana/sq8.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/lib.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/mcap_import.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/platform_io.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/executor/join.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/join/hash_join.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/join/index_join.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/join/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/optimizer.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/sql/token.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/checksum.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/col_segment/manifest.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/col_segment/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/columnar/column_encoding.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/columnar/config.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/columnar/gorilla.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/columnar/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/columnar/segment.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/columnar/segment_manager.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/columnar/store.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/columnar/write_buffer.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/file_manager.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/blobstore.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/bloom.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/compaction.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/engine.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/memtable.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/merging_iterator.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/sstable.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/lsm/unified_memtable.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/manifest/manifest.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/manifest/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/manifest/version.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/storage/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/txn/lock_manager.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/txn/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/txn/mvcc.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/txn/recovery.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/txn/version_store.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/txn/wal.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/types/comp_sum.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/types/spatial.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/types/tensor.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/src/types/text.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/acid_test.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_2m.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_acid.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_batch_ops.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_compare.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_comprehensive.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_concurrent.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_index_ops.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_multimodal.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_multimodal_full.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_multimodal_ops.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_perf_report.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_quick_baseline.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_release.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_report.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_resource.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_sql_queries.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_timeseries_index.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_v060_report.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_vs_sqlite_100k.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/bench_vs_sqlite_v05.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/common/mod.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/durability_probe.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/fts_probe.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/perf_test.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/repro_multirow_update_fts.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/repro_point_gap.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/stress_300k.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/stress_test.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_acid_audit.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_acid_comprehensive.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_advanced_hunt.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_api_correctness.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_asof_join.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_auto_checkpoint_segments.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_backup.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_blob_type.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_btree_integrity.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt2.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt3.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt4.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt5.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt6.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt7.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v10.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v100.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v101.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v11.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v12.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v13.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v14.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v15.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v16.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v17_cte.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v19.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v2.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v20.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v21.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v22.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v23.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v24.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v25.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v26.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v27.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v28.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v29.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v3.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v30.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v31.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v32.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v33.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v34.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v35.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v36.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v38.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v39.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v4.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v40.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v43.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v45.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v48.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v49.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v5.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v50.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v51.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v52.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v53.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v54.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v55.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v56.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v57.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v58.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v59.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v6.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v60.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v61.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v62.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v63.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v64.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v65.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v66.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v67.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v68.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v69.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v7.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v70.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v71.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v72.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v73.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v74.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v75.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v76.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v77.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v78.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v79.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v8.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v80.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v81.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v82.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v83.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v84.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v85.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v86.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v87.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v88.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v89.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v9.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v90.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v91.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v92.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v93.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v94.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v95.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v96.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v97.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v98.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_bug_hunt_v99.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_col_segment.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_col_segment_fastpaths.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_columnar.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_columnar_acid.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_compact_storage.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_compaction_integrity.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_compiled_where_semantics.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_comprehensive.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_comprehensive_audit.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_concurrent_sql_features.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_concurrent_stress.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_corruption_recovery.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_corruption_robustness.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_crash_recovery.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_data_types.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_datasets.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_db_path_hygiene.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_deadlock_stress.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_deep_edge.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_delete_persist.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_differential_correctness.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_disk_bloat.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_disk_usage.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_doctor.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_durability.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_e2e_crash_and_stress.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_edge_cases.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_edge_semantics.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_episodes.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_executemany.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_exists_subquery.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_explain.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_extreme_hunt.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_fast_paths.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_file_layout.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_fts_recovery_staleness.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_fuzz_sql_combinations.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_global_manifest.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_groupby_first_query.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_hybrid_search.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_index_maintenance.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_index_reopen.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_index_robustness.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_indexed_query_semantics.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_insert_engine.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_insert_explicit_fastpath.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_insert_paths_index_maintenance.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_insert_select.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_ioctree.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_isolation_levels.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_join_count_fold.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_knn_parallel.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_large_rows.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_lerobot_export.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_m5_mines.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_mcap_import.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_memory_leak.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_memory_linear.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_multimodal.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_multimodal_e2e.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_mvcc_isolation.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_mvcc_recovery.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_optimization_regression.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_order_by_expr_keys.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_parquet_roundtrip.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_parser_fuzz_regression.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_performance_guarantees.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_pk_change_semantics.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_prepared_dml.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_public_api.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_query_equivalence.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_range_count.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_release_readiness.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_repro12.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_round12_optimizations.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_round12b_edge.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_round12c_e2e_bugs.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_round13_bug_hunt.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_row_api.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_rrf_hybrid.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_savepoint_window.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_scalability.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_scan_integrity.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_semantic_edges.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_show_indexes_and_open_snapshot.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_snapshot.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_spatial_index.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_spatial_large_geometry.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_spatial_sql_semantics.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_sql_advanced.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_sql_correctness.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_sql_correctness_part2.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_sql_ddl_features.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_sql_errors_edges.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_sql_functions.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_sql_groupby.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_sql_joins.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_sql_scenarios.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_storage_integrity.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_stress.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_stress_hunt.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_text_ts_search_semantics.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_timeseries_index.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_timeseries_semantics.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_timestamp_recovery.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_transaction_semantics.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_txn_ddl_and_nan_ordering.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_update_perf.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_upsert.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_v050_features.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_vec_m0.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_vec_m4.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_vector_column_read_paths.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_vector_durability.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_vector_index_recall.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_vector_null_scan.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_vector_spatial_text.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_vector_visibility.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_wide_tables.rs +0 -0
- {motedb_python-0.15.2 → motedb_python-0.16.0}/tests/test_write_concurrency.rs +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# MoteDB is maintained by one person, on evenings and weekends.
|
|
2
|
+
# If MoteDB saved you time, or if you depend on it to run a robot in
|
|
3
|
+
# production, a small GitHub Sponsors contribution is what keeps it going.
|
|
4
|
+
#
|
|
5
|
+
# See the community page for everything else:
|
|
6
|
+
# https://github.com/motedb/motedb/blob/main/community/README.md
|
|
7
|
+
|
|
8
|
+
github: [motedb]
|
|
9
|
+
# Once a second funding route exists (or if you prefer not to use GitHub
|
|
10
|
+
# Sponsors), replace the line above with:
|
|
11
|
+
# custom: ["<your-funding-url>"]
|
|
@@ -32,6 +32,15 @@ jobs:
|
|
|
32
32
|
- name: cargo clippy (advisory — warnings do not fail the job)
|
|
33
33
|
run: cargo clippy --all-targets --all-features --no-deps
|
|
34
34
|
continue-on-error: true
|
|
35
|
+
# e3ebb24 shipped a mid-match wildcard in BOTH bindings: every concrete
|
|
36
|
+
# arm after it became unreachable (a warn-only lint) and Python returned
|
|
37
|
+
# None for every value. The root-crate clippy above never sees the
|
|
38
|
+
# binding crates — they are not workspace members. Deny the lint here.
|
|
39
|
+
- name: bindings check — unreachable_patterns denied
|
|
40
|
+
run: |
|
|
41
|
+
for m in bindings/python/Cargo.toml bindings/node/Cargo.toml; do
|
|
42
|
+
RUSTFLAGS="-D unreachable_patterns" cargo check --manifest-path "$m" --quiet
|
|
43
|
+
done
|
|
35
44
|
|
|
36
45
|
# ── Supply-chain: vulnerability + license gate (cargo-deny) ──────────────
|
|
37
46
|
# Fails on any NEW RustSec advisory (vulnerability/unsound). Four known
|
|
@@ -322,7 +331,7 @@ jobs:
|
|
|
322
331
|
args: --release
|
|
323
332
|
- name: Install wheel
|
|
324
333
|
run: pip install bindings/python/target/wheels/*.whl
|
|
325
|
-
- name: Run E2E workload (
|
|
334
|
+
- name: Run E2E workload (12 suites)
|
|
326
335
|
env:
|
|
327
336
|
MOTE_CLI: ${{ github.workspace }}/target/release/motedb-cli
|
|
328
337
|
run: python bindings/python/e2e/e2e_workload.py --root /tmp/e2e
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Capability Manifest
|
|
2
|
+
|
|
3
|
+
> This file is the **single source of truth** for what MoteDB can do.
|
|
4
|
+
> The website, the README, blog posts and any external material should cite
|
|
5
|
+
> this manifest rather than restating feature claims.
|
|
6
|
+
> The point: every line below should map to an implementation and a test.
|
|
7
|
+
|
|
8
|
+
**Version baseline:** v0.15.2 · **Last verified:** 2026-10-24
|
|
9
|
+
|
|
10
|
+
Legend: `✅ supported` · `🟡 partial (see note)` · `❌ not supported` · `🟢 differentiator`
|
|
11
|
+
|
|
12
|
+
> If you find a line here that does not match actual behaviour, please open an
|
|
13
|
+
> issue — **those are the ones we triage first**.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1. SQL engine
|
|
18
|
+
|
|
19
|
+
| Capability | Status | Notes |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| `CREATE TABLE` / `CREATE INDEX` / `DROP TABLE [IF EXISTS]` / `DROP INDEX` | ✅ | Column, vector, text, spatial, timestamp index variants |
|
|
22
|
+
| `ALTER TABLE` | ✅ | `ADD COLUMN`, `AUTO_INCREMENT = N` |
|
|
23
|
+
| `INSERT` (incl. `INSERT ... SELECT`) | ✅ | |
|
|
24
|
+
| `UPDATE` / `DELETE` | ✅ | |
|
|
25
|
+
| `SELECT` with `WHERE` | ✅ | |
|
|
26
|
+
| `JOIN` — INNER / LEFT / RIGHT / FULL | ✅ | |
|
|
27
|
+
| Subqueries in `WHERE`, derived tables (`FROM (SELECT ...)`) | ✅ | |
|
|
28
|
+
| `GROUP BY` | ✅ | Columns, expressions (`id % 5`), and SELECT aliases |
|
|
29
|
+
| `HAVING` | ✅ | Incl. aggregate aliases |
|
|
30
|
+
| `ORDER BY` | ✅ | Multi-key, expressions, non-projected columns, `NULLS FIRST/LAST` |
|
|
31
|
+
| `LIMIT` / `OFFSET` | ✅ | |
|
|
32
|
+
| `DISTINCT` (rows) / `COUNT(DISTINCT col)` | ✅ | |
|
|
33
|
+
| Aggregates: `COUNT` `SUM` `AVG` `MIN` `MAX` `STDDEV` `VARIANCE` | ✅ | |
|
|
34
|
+
| `UNION` / `UNION ALL` | ✅ | |
|
|
35
|
+
| `CASE WHEN ... THEN ... ELSE ... END` | ✅ | |
|
|
36
|
+
| `WITH` / CTEs, incl. `WITH RECURSIVE` | ✅ | Semi-naive fixed-point iteration, `UNION ALL` bodies, chained CTEs |
|
|
37
|
+
| Window functions: `ROW_NUMBER` `RANK` `DENSE_RANK` `NTILE` `LAG` `LEAD` `FIRST_VALUE` `LAST_VALUE` + aggregates | ✅ | `OVER (PARTITION BY … ORDER BY …)` |
|
|
38
|
+
| Explicit window frames (`ROWS` / `RANGE BETWEEN <bound> AND <bound>`) | ✅ 🟢 | ROWS = physical rows; RANGE = peer groups, or value intervals (`RANGE BETWEEN 10 PRECEDING AND 10 FOLLOWING`) on a numeric/timestamp order key. Default frame is the RANGE peer-group frame. Tested in `tests/test_window_frames.rs` |
|
|
39
|
+
| Scalar functions: `UPPER` `LOWER` `LENGTH` `TRIM` `SUBSTR` `REPLACE` `CONCAT` `INSTR` `COALESCE` `ROUND` `ABS` + arithmetic | ✅ | `CONCAT` skips NULL args (SQLite/Postgres semantics); `\|\|` propagates NULL; `ROUND` is binary-exact decimal rounding |
|
|
40
|
+
| `EXPORT TABLE t TO 'x.parquet'` / `IMPORT PARQUET 'x' INTO t` | ✅ 🟢 | Columnar dump / batch load through the insert pipeline; pyarrow / pandas / DuckDB round-trip |
|
|
41
|
+
| `EXPORT LEROBOT <table> TO 'dir/' [FPS n] [TASKS col]` | ✅ 🟢 | Writes a LeRobot v3 dataset on disk that the official `LeRobotDataset` (lerobot ≥ 0.6) loads directly |
|
|
42
|
+
| `DECIMAL` / `DATE` types | ❌ | Planned — see [ROADMAP](./ROADMAP.md) |
|
|
43
|
+
| Cross-statement server-side cursors | ❌ | Planned — see [ROADMAP](./ROADMAP.md) |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 2. Multimodal types
|
|
48
|
+
|
|
49
|
+
| Type | Status | Notes |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| `VECTOR(n)` | ✅ 🟢 | Index-accelerated KNN; `ORDER BY emb <-> '[…]'` (L2) or `<~>` (cosine) |
|
|
52
|
+
| `BLOB` | 🟡 | Byte-exact round-trip, **16 MiB cap per value** |
|
|
53
|
+
| `TIMESTAMP` | ✅ 🟢 | Microsecond precision; `TIMESERIES(ts)` adds time-series semantics |
|
|
54
|
+
| `TEXT` | ✅ | Built-in tokenizer (jieba and others configurable) |
|
|
55
|
+
| Spatial coordinates | ✅ 🟢 | R-Tree index; `ST_POINT` / `ST_WITHIN` / `ST_DISTANCE` / `ST_KNN`, and `loc <-> ST_POINT(x, y)` distance ordering |
|
|
56
|
+
| Array types (`TEXT[]` / `ARRAY<FLOAT>`) | ❌ | Use BLOB, a separate table, or TEXT + JOIN |
|
|
57
|
+
|
|
58
|
+
### ⚠️ Known BLOB gaps (unchanged since v0.13)
|
|
59
|
+
|
|
60
|
+
- Scalar functions over BLOB columns (e.g. `LENGTH(payload)`) are **not wired through all executor paths**
|
|
61
|
+
- BLOB output under `ORDER BY` is **not wired through all executor paths**
|
|
62
|
+
- **Verified working:** bare projection, equality (`WHERE payload = X'…'`), time-window scans, parameter binding
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## 3. Indexes
|
|
67
|
+
|
|
68
|
+
| Index | Status | Notes |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| Column index | ✅ 🟢 | Equality / range |
|
|
71
|
+
| Vector index | ✅ 🟢 | **DiskANN** (FreshDiskANN + rerank). **Not** HNSW, not IVF |
|
|
72
|
+
| Full-text index | ✅ 🟢 | BM25 ranking + snippet; `MATCH(col) AGAINST('q')`; multi-word defaults to AND (SQLite FTS5-compatible), explicit `a OR b` unions |
|
|
73
|
+
| Spatial index | ✅ 🟢 | R-Tree |
|
|
74
|
+
| Time-series index | ✅ 🟢 | Range scan + compaction + `TIME_BUCKET` aggregation + TTL |
|
|
75
|
+
|
|
76
|
+
> 📌 **Correction notice.** Older material describing the vector index as
|
|
77
|
+
> "HNSW / IVF" is out of date. The current implementation is **DiskANN**.
|
|
78
|
+
> This file and `docs/08-vector-index.md` are authoritative.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 4. Transactions & consistency
|
|
83
|
+
|
|
84
|
+
| Capability | Status | Notes |
|
|
85
|
+
|---|---|---|
|
|
86
|
+
| `BEGIN` / `COMMIT` / `ROLLBACK` | ✅ | |
|
|
87
|
+
| Savepoints | ✅ | |
|
|
88
|
+
| Read-your-writes inside a transaction | ✅ | Scans, aggregates, point lookups |
|
|
89
|
+
| MVCC | ✅ | |
|
|
90
|
+
| WAL group commit | ✅ 🟢 | |
|
|
91
|
+
| `LATEST BY` on tables > 1M rows | 🟡 | Performance not yet optimized (large-table merge path) |
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 5. Retrieval
|
|
96
|
+
|
|
97
|
+
| Capability | Status | Notes |
|
|
98
|
+
|---|---|---|
|
|
99
|
+
| Vector KNN | ✅ 🟢 | `ORDER BY emb <-> '[…]'`, index-accelerated |
|
|
100
|
+
| Full-text search | ✅ 🟢 | BM25 ranking |
|
|
101
|
+
| **Hybrid search (BM25 × KNN, RRF fusion)** | ✅ 🟢 | One call — you don't implement score calibration yourself |
|
|
102
|
+
| Time-series window aggregation | ✅ 🟢 | `TIME_BUCKET` + TTL |
|
|
103
|
+
| Spatial range / KNN | ✅ 🟢 | `ST_WITHIN` / `ST_DISTANCE` / `ST_KNN` |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 6. Data shapes & deployment
|
|
108
|
+
|
|
109
|
+
| Capability | Status | Notes |
|
|
110
|
+
|---|---|---|
|
|
111
|
+
| Collection: high-performance directory | ✅ 🟢 | Atomic publish via temp + fsync + rename, plus WAL group commit |
|
|
112
|
+
| Transport: single-file snapshot | ✅ 🟢 | `EXPORT DB TO '…'`; per-file CRC32, optional zstd, incremental re-export |
|
|
113
|
+
| Deployment: read-only container | ✅ 🟢 | All write paths rejected, multiple concurrent readers |
|
|
114
|
+
| MCAP import | ✅ 🟢 | |
|
|
115
|
+
| Index self-healing | ✅ 🟢 | Rebuilds a corrupt index from source data |
|
|
116
|
+
| Crash recovery | ✅ 🟢 | WAL replay + segment migration + orphan segment adoption |
|
|
117
|
+
| `for_edge()` low-memory profile | ✅ | Tuned for small-memory devices |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 7. Interop & SDKs
|
|
122
|
+
|
|
123
|
+
| Surface | Status | Notes |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| Rust crate | ✅ | `cargo add motedb` (Rust ≥ 1.87) |
|
|
126
|
+
| Python | ✅ | `pip install motedb-python` — imported as `motedb`. The `motedb` name on PyPI is **not yet claimed**; use `motedb-python` |
|
|
127
|
+
| Arrow | ✅ 🟢 | `query_arrow()` → canonical `pyarrow.Table`, vector columns as `FixedSizeList<float32>` |
|
|
128
|
+
| pandas | ✅ | `query_pandas()` |
|
|
129
|
+
| numpy bulk load | ✅ | `insert_arrays()` |
|
|
130
|
+
| Node.js | 🟡 | npm package **is published** (`motedb@0.15.2`). Prebuilt binaries cover macOS (arm64/x64) and Linux (x64/arm64, glibc); **musl and Windows prebuilds are not published yet**, so `npm install motedb` on Windows currently yields no native binary |
|
|
131
|
+
| Go | 🟡 | Binding lives in `bindings/go` (with `go.mod`), but is **not published as a tagged Go module** yet — the module proxy only resolves a pseudo-version off the default branch |
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 8. Engineering quality
|
|
136
|
+
|
|
137
|
+
| Practice | Status | Notes |
|
|
138
|
+
|---|---|---|
|
|
139
|
+
| Crash-injection tests | ✅ 🟢 | Resident in CI |
|
|
140
|
+
| Differential fuzzing (SQLite as oracle) | ✅ 🟢 | Permanent regression suite, including JOIN diffing |
|
|
141
|
+
| Corruption-recovery tests | ✅ 🟢 | |
|
|
142
|
+
| Machine-independent performance gate | ✅ 🟢 | A complexity regression turns CI red |
|
|
143
|
+
| `cargo fmt --check` strict gate | ✅ 🟢 | Whole tree is fmt-clean |
|
|
144
|
+
| cargo-deny supply-chain audit | ✅ 🟢 | Vulnerabilities + licenses |
|
|
145
|
+
| clippy | 🟡 advisory | CI runs clippy in advisory mode (`continue-on-error`); a backlog of style lints is being cleared. **New commits must not introduce new warnings** |
|
|
146
|
+
| Prebuilt binaries | 🟡 | macOS (arm64/x64) and Linux (x64/arm64) prebuilt. Windows works through `cargo add motedb` (source build); a Windows prebuild is on the way |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 9. Explicitly not supported
|
|
151
|
+
|
|
152
|
+
> Written down so you don't have to discover it the hard way.
|
|
153
|
+
|
|
154
|
+
| Capability | Why |
|
|
155
|
+
|---|---|
|
|
156
|
+
| **Built-in inference engine / ONNX** | MoteDB is a storage and query layer, not an inference runtime. We invest in **Arrow interop** and leave inference in your own stack |
|
|
157
|
+
| **Distributed / multi-node replication** | The current target is single-machine edge |
|
|
158
|
+
| **Server mode / multi-process concurrent writes** | Contradicts the "embedded, zero-ops" positioning |
|
|
159
|
+
| **Multi-user permission system** | In embedded deployments the host application owns that |
|
|
160
|
+
| **Array types** | Use BLOB, a separate table, or TEXT + JOIN |
|
|
161
|
+
| **`DECIMAL` / `DATE` types** | Planned |
|
|
162
|
+
| **Cross-statement server-side cursors** | Planned |
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 10. Performance methodology
|
|
167
|
+
|
|
168
|
+
Full benchmark data: [`BENCHMARK.md`](./BENCHMARK.md),
|
|
169
|
+
[`PERFORMANCE_REPORT.md`](./PERFORMANCE_REPORT.md), and
|
|
170
|
+
[`docs/benchmark_methodology.md`](./docs/benchmark_methodology.md).
|
|
171
|
+
|
|
172
|
+
> ⚠️ **Citation rule.** Every performance number published anywhere must carry
|
|
173
|
+
> its **machine configuration, data scale, comparison baseline, and measurement
|
|
174
|
+
> method**. Numbers without that context should not be released.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
*Found something here that does not match real behaviour? Open an issue.*
|
|
@@ -1,5 +1,75 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.16.0] — 2026-10-30
|
|
4
|
+
|
|
5
|
+
> 28 轮系统性猎虫与验证后的正确性版本。**42 个缺陷修复**(含 1 个数据
|
|
6
|
+
> 损坏级、多个"静默错误结果"类),SQL 兼容性大幅提升(隐式别名、复合
|
|
7
|
+
> 主键验证、中文全文检索、时间戳算术),四层 API(Rust/Node/Go/Python)
|
|
8
|
+
> 与 MCP 全部在当前引擎上端到端验证。全面性能 A/B 对照确认无回归
|
|
9
|
+
> (ORDER BY 快 ~28%,查询内存省 18%,其余持平)。
|
|
10
|
+
|
|
11
|
+
### 静默错误结果类(最关键)
|
|
12
|
+
|
|
13
|
+
- **🔴🔴 数据损坏**: 向量列在 UPDATE+DELETE+段合并后读成 65535 维全零
|
|
14
|
+
向量 — 列段合并的墓碑/ALTER 占位写裸 [0xFFFF],逐行 [dim:u16] 编码里
|
|
15
|
+
是合法非空维度且无载荷 → 顺序走读者错位、同列后续全雪崩。占位改
|
|
16
|
+
[0x0000] (dim 0 = NULL)。回归: KNN 与暴力扫描全阶段逐 id 一致
|
|
17
|
+
- WHERE 未知列被静默吞掉 — 单表 SELECT/UPDATE/DELETE 拼错列名返回
|
|
18
|
+
0 行/affected_rows: 0 无提示;语句入口 schema 绑定校验立即报
|
|
19
|
+
ColumnNotFound
|
|
20
|
+
- SHOW TABLES / DESCRIBE 流式分发丢弃结果行(db.query 返回 []、
|
|
21
|
+
MCP list_tables 空)——行数据流经完整路径
|
|
22
|
+
- 日期函数对 DATE 列返回 NULL(YEAR/MONTH/DAY_OF_MONTH/DATEDIFF)
|
|
23
|
+
- CAST(x AS TEXT) 泄漏 Rust Debug 串(`Date { days: 19753 }`)——
|
|
24
|
+
现按 SQL 文本形态渲染(新增 Timestamp::to_iso)
|
|
25
|
+
- ISO 时间戳小数秒被丢弃('…12:00:00.5' 的 .5 消失,schema-order
|
|
26
|
+
INSERT 路径)——解析到 µs,双实现去重
|
|
27
|
+
- 中文 MATCH 恒不命中 — FTS 索引与逐行 MATCH 都硬编码空白分词器;
|
|
28
|
+
新增 AutoTokenizer(CJK→Jieba,其余→空白)两路径统一
|
|
29
|
+
- TIMESTAMP ± INTEGER(µs) 算术 TypeError 被吞 → WHERE 静默空
|
|
30
|
+
- TIMESTAMP 列 BETWEEN 文本字面量恒空(vector_exec 预解析缺口,
|
|
31
|
+
`>= AND <=` 却正常)——同一 col_lit 预解析
|
|
32
|
+
- GROUP BY 表达式 + ORDER BY 同表达式乱序(快路径丢键 + full_row
|
|
33
|
+
zip 错位配对)——表达式键读分组投影值,不可解析则明确报错
|
|
34
|
+
- NULLS FIRST/LAST 被四条排序路径中的三条静默忽略——全路径统一
|
|
35
|
+
- 0x 十六进制字面量静默返回 0(词法器缺十六进制 + 隐式别名吞噬)
|
|
36
|
+
- MCP describe 工具返回 DESCRIBE 表头而非 schema(行被丢弃)
|
|
37
|
+
|
|
38
|
+
### SQL 兼容性
|
|
39
|
+
|
|
40
|
+
- **SELECT 列表隐式别名**(`SELECT v x`、`SELECT COUNT(*) c`)——此前
|
|
41
|
+
全部死于误导性解析错误;别名可在 ORDER BY/GROUP BY/HAVING 引用
|
|
42
|
+
- 验证钉住: 复合 PRIMARY KEY(重复拒绝/双键点查/复合 upsert/重开强制)、
|
|
43
|
+
列 DEFAULT 值、NOT NULL 双路径强制、LIMIT ?/OFFSET ? 绑定参数
|
|
44
|
+
|
|
45
|
+
### 语义钉住(文档化,防止引擎间歧义)
|
|
46
|
+
|
|
47
|
+
- 除零: 整型/浮点除数一律 DivisionByZero(PostgreSQL 语义)
|
|
48
|
+
- LIKE 与 = 一致大小写敏感;表名大小写敏感/列名不敏感
|
|
49
|
+
- CONCAT 忽略 NULL(PG 风格),|| 按标准传播 NULL;DATEDIFF = a−b 秒
|
|
50
|
+
- 同进程二次 open() 附着同一引擎(共享句柄注册表,docs/14);跨进程
|
|
51
|
+
flock 互斥
|
|
52
|
+
- DDL 非事务(CREATE 留存+行回滚,事务内 DROP 被拒)
|
|
53
|
+
- 圆整 ROUND(x,-n) half-away;DATE 函数表(docs/13);已知限制:
|
|
54
|
+
WHERE 中除零静默 0 行(v0.16+ 候选修复)
|
|
55
|
+
|
|
56
|
+
### 质量与验证
|
|
57
|
+
|
|
58
|
+
- clippy 双 feature 集零警告(默认集 + node 最小集——后者此前从未
|
|
59
|
+
被门禁覆盖)
|
|
60
|
+
- 绑定层全面验证: Node smoke 双绿、Go 6/6 首跑、Python 13/13、
|
|
61
|
+
MCP stdio e2e 6/6(round-20/22 修复的端到端确认)
|
|
62
|
+
- 性能 A/B(round-19 基线 vs 0.16.0,同机背靠背): 无回归;ORDER BY
|
|
63
|
+
快 ~28%,查询后 RSS 省 18%,其余持平
|
|
64
|
+
- 新增回归: test_bug_hunt_v110~v116(57 项)、MCP e2e
|
|
65
|
+
|
|
66
|
+
### 此前积累(0.15.2 后、猎虫前)
|
|
67
|
+
|
|
68
|
+
- 向量索引旋钮 SQL 化: CREATE VECTOR INDEX ... WITH (metric=, max_degree=,
|
|
69
|
+
build_search_list=, search_list=);构建期精确 f32 快照
|
|
70
|
+
- ORDER BY emb <-> '带引号向量' 三拼写回归;CREATE INDEX WITH 子句
|
|
71
|
+
死代码复活
|
|
72
|
+
|
|
3
73
|
## [0.15.2] — 2026-10-22
|
|
4
74
|
|
|
5
75
|
### 功能测试轮修复 (2026-10-22 外部功能测试 24/27 → 全绿)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and maintainers pledge to make participation in
|
|
6
|
+
this project a harassment-free experience for everyone, regardless of age, body
|
|
7
|
+
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
|
8
|
+
identity and expression, level of experience, education, socio-economic status,
|
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
|
10
|
+
orientation.
|
|
11
|
+
|
|
12
|
+
We pledge to act and interact in ways that contribute to an open, welcoming,
|
|
13
|
+
diverse, inclusive, and healthy community.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Our standards
|
|
18
|
+
|
|
19
|
+
### Behaviour that contributes to a positive environment
|
|
20
|
+
|
|
21
|
+
- Demonstrating empathy and kindness toward other people
|
|
22
|
+
- Being respectful of differing opinions, viewpoints, and experiences
|
|
23
|
+
- Giving and gracefully accepting constructive feedback
|
|
24
|
+
- Accepting responsibility, apologising to those affected by our mistakes, and
|
|
25
|
+
learning from the experience
|
|
26
|
+
- Focusing on what is best for the overall community
|
|
27
|
+
|
|
28
|
+
### Behaviour that is unacceptable
|
|
29
|
+
|
|
30
|
+
- The use of sexualised language or imagery, and sexual attention or advances
|
|
31
|
+
of any kind
|
|
32
|
+
- Trolling, insulting or derogatory comments, and personal or political attacks
|
|
33
|
+
- Public or private harassment
|
|
34
|
+
- Publishing others' private information, such as a physical or email address,
|
|
35
|
+
without their explicit permission
|
|
36
|
+
- Other conduct which could reasonably be considered inappropriate in a
|
|
37
|
+
professional setting
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Scope
|
|
42
|
+
|
|
43
|
+
This Code of Conduct applies within all community spaces, and also applies when
|
|
44
|
+
an individual is officially representing the community in public spaces.
|
|
45
|
+
Community spaces currently include:
|
|
46
|
+
|
|
47
|
+
- The project's GitHub repository — issues, pull requests, discussions, commits,
|
|
48
|
+
and code review
|
|
49
|
+
- The project's website and any space created in the project's name
|
|
50
|
+
- Public events where the project is represented
|
|
51
|
+
|
|
52
|
+
Any space the project opens later — a mailing list, a newsletter, or a chat
|
|
53
|
+
channel — is covered by this Code of Conduct from the day it opens.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Enforcement
|
|
58
|
+
|
|
59
|
+
Instances of abusive, harassing, or otherwise unacceptable behaviour may be
|
|
60
|
+
reported to the maintainers through any of these channels:
|
|
61
|
+
|
|
62
|
+
- **GitHub issue or discussion**, mentioning `@meluo`
|
|
63
|
+
- **GitHub private message** to [@meluo](https://github.com/meluo)
|
|
64
|
+
- **Email** to <motedb@126.com> with the subject `[motedb conduct]`
|
|
65
|
+
|
|
66
|
+
All complaints will be reviewed and investigated promptly and fairly. The
|
|
67
|
+
project maintainer is obligated to respect the privacy and security of the
|
|
68
|
+
reporter of any incident.
|
|
69
|
+
|
|
70
|
+
**Our commitments:**
|
|
71
|
+
|
|
72
|
+
- Reports are handled confidentially
|
|
73
|
+
- The identity of the reporter is not disclosed publicly
|
|
74
|
+
- The maintainer responds to reports within 48 hours
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Enforcement guidelines
|
|
79
|
+
|
|
80
|
+
The project maintainers are responsible for clarifying and enforcing these
|
|
81
|
+
standards, and will take appropriate and fair corrective action in response to
|
|
82
|
+
any behaviour they deem inappropriate, threatening, offensive, or harmful.
|
|
83
|
+
Enforcement actions may include:
|
|
84
|
+
|
|
85
|
+
1. **Correction** — a private, written warning from the maintainers, providing
|
|
86
|
+
clarity around the nature of the violation and an explanation of why the
|
|
87
|
+
behaviour was inappropriate
|
|
88
|
+
2. **Warning** — a warning with consequences for continued behaviour, including
|
|
89
|
+
a period of no interaction with the people involved
|
|
90
|
+
3. **Temporary ban** — a temporary ban from any sort of interaction or public
|
|
91
|
+
communication with the community
|
|
92
|
+
4. **Permanent ban** — a permanent ban from any sort of public interaction
|
|
93
|
+
within the community
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Attribution
|
|
98
|
+
|
|
99
|
+
This Code of Conduct is adapted from the
|
|
100
|
+
[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, and
|
|
101
|
+
also draws on the
|
|
102
|
+
[Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct).
|
|
103
|
+
|
|
104
|
+
Questions or suggestions about this Code of Conduct belong in a discussion or
|
|
105
|
+
an issue on this repository.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Governance
|
|
2
|
+
|
|
3
|
+
MoteDB is an open-source project maintained by **one person**. This document
|
|
4
|
+
explains **how decisions get made**, so you know where your input goes and who
|
|
5
|
+
is accountable for the outcome.
|
|
6
|
+
|
|
7
|
+
Being a single-maintainer project is a constraint, not a secret. It means
|
|
8
|
+
turnaround is fast and nobody can quietly outvote you — and it also means the
|
|
9
|
+
project needs your scrutiny more than a large committee would. Everything below
|
|
10
|
+
is written to make that explicit.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Governance model
|
|
15
|
+
|
|
16
|
+
**The maintainer decides; the community participates.** Concretely:
|
|
17
|
+
|
|
18
|
+
| Decision | Who decides | How the community participates |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| Roadmap priorities | Maintainer | Discussion votes + issue proposals |
|
|
21
|
+
| Bug fix ordering | Maintainer | The maintainer explains priority in the issue thread |
|
|
22
|
+
| API design | Maintainer | Open a Discussion first; breaking changes are announced at least 2 weeks ahead |
|
|
23
|
+
| Docs & examples | Anyone can PR directly | — |
|
|
24
|
+
| Day-to-day code review | Maintainer (+ committers, once appointed) | — |
|
|
25
|
+
| Project direction (annual) | Maintainer | Community newsletter, annual AMA |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## How decisions are made
|
|
30
|
+
|
|
31
|
+
### Default: consensus
|
|
32
|
+
|
|
33
|
+
Most decisions do not need a vote — we try to reach agreement in discussion.
|
|
34
|
+
|
|
35
|
+
**How to participate:** state your position in an issue or discussion → the
|
|
36
|
+
maintainer integrates it → if there is no substantial objection, it ships.
|
|
37
|
+
|
|
38
|
+
### Changes that require extra care
|
|
39
|
+
|
|
40
|
+
The following need the maintainer's explicit, written agreement **and** a
|
|
41
|
+
public comment window of at least 2 weeks:
|
|
42
|
+
|
|
43
|
+
- Removing or renaming a public API
|
|
44
|
+
- Introducing a breaking change (SQL semantics, file format, configuration keys)
|
|
45
|
+
- Changing the minimum supported version (Rust version, platform support matrix)
|
|
46
|
+
- Changing the license
|
|
47
|
+
- Changing the project's positioning or target audience
|
|
48
|
+
|
|
49
|
+
Because there is only one maintainer, there is no second approver to
|
|
50
|
+
formally countersign. Instead of pretending otherwise, the maintainer
|
|
51
|
+
**records the decision, the reasoning, and the fact that no second reviewer
|
|
52
|
+
existed** in a tracking issue that stays open and visible. If a suitable
|
|
53
|
+
maintainer or committer exists at the time, their agreement is sought and
|
|
54
|
+
recorded in the same place.
|
|
55
|
+
|
|
56
|
+
### Disputes
|
|
57
|
+
|
|
58
|
+
When consensus is not reachable, the maintainer makes the final call and
|
|
59
|
+
**states the reasoning**. Anyone who disagrees may ask for the decision to be
|
|
60
|
+
recorded in an issue so it stays visible long-term — **we do not delete
|
|
61
|
+
recorded decisions.**
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Roles
|
|
66
|
+
|
|
67
|
+
### Contributor
|
|
68
|
+
|
|
69
|
+
Anyone who files an issue, opens a pull request, or contributes docs or code.
|
|
70
|
+
No application, no ceremony.
|
|
71
|
+
|
|
72
|
+
### Committer
|
|
73
|
+
|
|
74
|
+
Someone with write access to the repository who can merge PRs and close
|
|
75
|
+
issues.
|
|
76
|
+
|
|
77
|
+
**How the role is granted** (any one of these is enough):
|
|
78
|
+
|
|
79
|
+
- Sustained contribution over at least 3 months, with ≥ 10 merged PRs
|
|
80
|
+
- ≥ 5 high-quality PRs in one critical subsystem (vector index, full-text
|
|
81
|
+
search, the Python or Node binding), plus a willingness to maintain that
|
|
82
|
+
subsystem long-term
|
|
83
|
+
- A clear recommendation from an existing committer, approved by the
|
|
84
|
+
maintainer
|
|
85
|
+
|
|
86
|
+
**What it grants:** independent review and merge rights within your own
|
|
87
|
+
subsystem, a voice in technical discussion, and a vote in release decisions.
|
|
88
|
+
|
|
89
|
+
> The first committers will be chosen from the earliest contributors. The
|
|
90
|
+
> maintainer will reach out to people who look like good candidates.
|
|
91
|
+
|
|
92
|
+
### Champion
|
|
93
|
+
|
|
94
|
+
Not a maintainer — a core contributor on the community side. Someone who is
|
|
95
|
+
active in Discussions, writes Show & Tell posts, produces content in Chinese
|
|
96
|
+
or English, organises events, and helps newcomers.
|
|
97
|
+
|
|
98
|
+
**What it grants:** a public badge of recognition, early access to new
|
|
99
|
+
versions and features, and a role in shaping community activities.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## Public commitments
|
|
104
|
+
|
|
105
|
+
### The roadmap is public
|
|
106
|
+
|
|
107
|
+
Major feature directions are written into [`ROADMAP.md`](./ROADMAP.md) with a
|
|
108
|
+
status: `in progress` / `planned` / `done` / `not planned`.
|
|
109
|
+
|
|
110
|
+
**"Not planned" is public information too** — it comes with a reason, so the
|
|
111
|
+
community doesn't have to ask the same question twice.
|
|
112
|
+
|
|
113
|
+
### Breaking changes are announced in advance
|
|
114
|
+
|
|
115
|
+
Breaking changes are announced in Discussions **at least 2 weeks** before they
|
|
116
|
+
land, including:
|
|
117
|
+
|
|
118
|
+
- What changes and why
|
|
119
|
+
- How to migrate, with runnable code
|
|
120
|
+
- The tracking issue and the target version
|
|
121
|
+
|
|
122
|
+
> Example: v0.12 changed the default semantics of multi-word `MATCH` from OR to
|
|
123
|
+
> AND, to match SQLite FTS5. It was announced with a migration recipe — **this
|
|
124
|
+
> is what the announcement mechanism is supposed to look like.**
|
|
125
|
+
|
|
126
|
+
### Attribution
|
|
127
|
+
|
|
128
|
+
Every merged PR is credited in the CHANGELOG and in the contributor list on
|
|
129
|
+
the README. Every accepted issue proposal is publicly acknowledged.
|
|
130
|
+
**This is a fixed part of the process, not an optional courtesy.**
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Handling disputes
|
|
135
|
+
|
|
136
|
+
1. Discuss it rationally in the original issue or discussion
|
|
137
|
+
2. If the discussion stalls, @ the maintainer
|
|
138
|
+
3. If it concerns conduct, follow the reporting process in
|
|
139
|
+
[`CODE_OF_CONDUCT.md`](./CODE_OF_CONDUCT.md)
|
|
140
|
+
4. If it is still unresolved: the maintainer makes the final call and records
|
|
141
|
+
the reasoning
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Contact
|
|
146
|
+
|
|
147
|
+
Governance questions can go straight to a Discussion tagged `governance`, or
|
|
148
|
+
to the maintainer ([@meluo](https://github.com/meluo)).
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
*This document changes as the community matures. Anyone can propose a change
|
|
153
|
+
to it — open a pull request.*
|
|
@@ -297,13 +297,13 @@ cargo add motedb
|
|
|
297
297
|
Or in `Cargo.toml`:
|
|
298
298
|
```toml
|
|
299
299
|
[dependencies]
|
|
300
|
-
motedb = "0.
|
|
300
|
+
motedb = "0.16"
|
|
301
301
|
```
|
|
302
302
|
|
|
303
303
|
For minimal edge builds (no tokenizer, no parallelism), disable default features:
|
|
304
304
|
```toml
|
|
305
305
|
[dependencies]
|
|
306
|
-
motedb = { version = "0.
|
|
306
|
+
motedb = { version = "0.16", default-features = false, features = ["jemalloc"] }
|
|
307
307
|
```
|
|
308
308
|
|
|
309
309
|
## Configuration
|
|
@@ -345,7 +345,10 @@ EXISTS]` / `DROP INDEX`, `ALTER TABLE` (`ADD COLUMN`, `AUTO_INCREMENT = N`),
|
|
|
345
345
|
fixed-point, UNION ALL bodies, chained CTEs)
|
|
346
346
|
- Window functions: `ROW_NUMBER`, `RANK`, `DENSE_RANK`, `NTILE`, `LAG`,
|
|
347
347
|
`LEAD`, `FIRST_VALUE`, `LAST_VALUE` + aggregates `OVER (PARTITION BY …
|
|
348
|
-
ORDER BY …
|
|
348
|
+
ORDER BY … [ROWS|RANGE BETWEEN <bound> AND <bound>])` — explicit frames
|
|
349
|
+
(ROWS physical rows; RANGE peer groups or value intervals like
|
|
350
|
+
`RANGE BETWEEN 10 PRECEDING AND 10 FOLLOWING` on the numeric/timestamp
|
|
351
|
+
order key; default RANGE peer-group frame)
|
|
349
352
|
- 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
|
|
350
353
|
- Interop: `EXPORT TABLE t TO 'x.parquet'` / `IMPORT PARQUET 'x' INTO t`
|
|
351
354
|
(pyarrow/pandas/DuckDB round-trip), `EXPORT LEROBOT <episode-table> TO
|