motedb-python 0.12.9__tar.gz → 0.14.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. {motedb_python-0.12.9 → motedb_python-0.14.0}/CHANGELOG.md +93 -0
  2. {motedb_python-0.12.9 → motedb_python-0.14.0}/Cargo.lock +145 -1
  3. {motedb_python-0.12.9 → motedb_python-0.14.0}/Cargo.toml +2 -1
  4. {motedb_python-0.12.9 → motedb_python-0.14.0}/PKG-INFO +1 -1
  5. {motedb_python-0.12.9 → motedb_python-0.14.0}/README.md +84 -5
  6. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/Cargo.lock +174 -4
  7. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/Cargo.toml +1 -1
  8. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/src/lib.rs +128 -0
  9. motedb_python-0.14.0/bindings/python/tests/data/demo.mcap +0 -0
  10. motedb_python-0.14.0/bindings/python/tests/test_mcap_import.py +71 -0
  11. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/13-data-types.md +19 -0
  12. motedb_python-0.14.0/docs/design/2026-10-embodied-roadmap.md +231 -0
  13. motedb_python-0.14.0/docs/design/2026-10-traj-spike.md +44 -0
  14. motedb_python-0.14.0/examples/gen_test_bag.rs +46 -0
  15. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/perf_smoke.rs +52 -0
  16. motedb_python-0.14.0/examples/traj_spike.rs +416 -0
  17. {motedb_python-0.12.9 → motedb_python-0.14.0}/pyproject.toml +1 -1
  18. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/bin/motedb-cli.rs +78 -0
  19. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/core.rs +22 -0
  20. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/crud.rs +59 -11
  21. motedb_python-0.14.0/src/database/datasets.rs +351 -0
  22. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/mod.rs +1 -0
  23. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/cached_index.rs +1 -0
  24. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/lib.rs +1 -0
  25. motedb_python-0.14.0/src/mcap_import.rs +296 -0
  26. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/ast.rs +50 -0
  27. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/evaluator.rs +217 -6
  28. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/executor/join.rs +284 -0
  29. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/executor/mod.rs +541 -12
  30. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/executor/scan.rs +34 -7
  31. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/lexer.rs +8 -19
  32. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/parser.rs +308 -6
  33. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/col_segment/segment.rs +64 -1
  34. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/col_segment/store.rs +91 -6
  35. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/colbatch.rs +3 -1
  36. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/columnar.rs +82 -1
  37. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/row_format.rs +63 -1
  38. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/types/mod.rs +56 -1
  39. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/types/table.rs +33 -0
  40. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/repro_multirow_update_fts.rs +8 -3
  41. motedb_python-0.14.0/tests/test_asof_join.rs +176 -0
  42. motedb_python-0.14.0/tests/test_blob_type.rs +186 -0
  43. motedb_python-0.14.0/tests/test_datasets.rs +168 -0
  44. motedb_python-0.14.0/tests/test_episodes.rs +220 -0
  45. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_fts_recovery_staleness.rs +9 -4
  46. motedb_python-0.14.0/tests/test_mcap_import.rs +173 -0
  47. motedb_python-0.14.0/tests/test_rrf_hybrid.rs +191 -0
  48. {motedb_python-0.12.9 → motedb_python-0.14.0}/.cargo/config.toml +0 -0
  49. {motedb_python-0.12.9 → motedb_python-0.14.0}/.devcontainer/devcontainer.json +0 -0
  50. {motedb_python-0.12.9 → motedb_python-0.14.0}/.github/workflows/ci.yml +0 -0
  51. {motedb_python-0.12.9 → motedb_python-0.14.0}/.github/workflows/fuzz.yml +0 -0
  52. {motedb_python-0.12.9 → motedb_python-0.14.0}/.github/workflows/perf-gate.yml +0 -0
  53. {motedb_python-0.12.9 → motedb_python-0.14.0}/.github/workflows/publish.yml +0 -0
  54. {motedb_python-0.12.9 → motedb_python-0.14.0}/.github/workflows/python-wheels.yml +0 -0
  55. {motedb_python-0.12.9 → motedb_python-0.14.0}/.gitignore +0 -0
  56. {motedb_python-0.12.9 → motedb_python-0.14.0}/.zcode/plans/plan-sess_abb2c954-05fb-477e-9d0a-3e22261e2449.md +0 -0
  57. {motedb_python-0.12.9 → motedb_python-0.14.0}/.zcode/plans/plan-sess_b5937a06-b7bf-4471-9756-dbf2787b263c.md +0 -0
  58. {motedb_python-0.12.9 → motedb_python-0.14.0}/LICENSE +0 -0
  59. {motedb_python-0.12.9 → motedb_python-0.14.0}/Makefile +0 -0
  60. {motedb_python-0.12.9 → motedb_python-0.14.0}/RELEASE_NOTES.md +0 -0
  61. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/README.md +0 -0
  62. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/README.md +0 -0
  63. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/adversarial_verify.py +0 -0
  64. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/bench_edge.py +0 -0
  65. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/compete_bench.py +0 -0
  66. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/compete_fts_industry.py +0 -0
  67. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/compete_scale.py +0 -0
  68. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/compete_spatial_ts.py +0 -0
  69. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/compete_vec_industry.py +0 -0
  70. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/compete_writes.py +0 -0
  71. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/fts_probe_once.py +0 -0
  72. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/perf_ab.py +0 -0
  73. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/perf_overall.py +0 -0
  74. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/prof_ann.py +0 -0
  75. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/prof_fts.py +0 -0
  76. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/prof_insert.py +0 -0
  77. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/prof_point.py +0 -0
  78. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/prof_real.py +0 -0
  79. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/prof_scale.py +0 -0
  80. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/prof_scale_vec.py +0 -0
  81. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/prof_vec_parallel.py +0 -0
  82. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/resource_bench.py +0 -0
  83. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/resource_bench_2026-09_profile.json +0 -0
  84. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/resource_bench_v0.10.0.json +0 -0
  85. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/spatial_eval.py +0 -0
  86. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/text_eval.py +0 -0
  87. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/ts_eval.py +0 -0
  88. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/bench/vector_recall_eval.py +0 -0
  89. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/build.rs +0 -0
  90. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/e2e/e2e_workload.py +0 -0
  91. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/e2e/test_durability_kwarg.py +0 -0
  92. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/licenses/LICENSE +0 -0
  93. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/scripts/build_wheel.sh +0 -0
  94. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_backup.py +0 -0
  95. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_crash_recovery.py +0 -0
  96. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_e2e_cli.py +0 -0
  97. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_e2e_functional.py +0 -0
  98. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_feature_selfcheck.py +0 -0
  99. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_fetch_arrays.py +0 -0
  100. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_fuzz_bigtable.py +0 -0
  101. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_fuzz_differential.py +0 -0
  102. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_insert_arrays.py +0 -0
  103. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_parallel_ab.py +0 -0
  104. {motedb_python-0.12.9 → motedb_python-0.14.0}/bindings/python/tests/test_smoke.py +0 -0
  105. {motedb_python-0.12.9 → motedb_python-0.14.0}/deny.toml +0 -0
  106. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/01-quick-start.md +0 -0
  107. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/02-installation.md +0 -0
  108. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/03-sql-operations.md +0 -0
  109. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/04-batch-operations.md +0 -0
  110. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/05-transactions.md +0 -0
  111. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/06-indexes-overview.md +0 -0
  112. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/07-column-index.md +0 -0
  113. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/08-vector-index.md +0 -0
  114. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/09-text-index.md +0 -0
  115. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/10-spatial-index.md +0 -0
  116. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/11-timestamp-index.md +0 -0
  117. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/12-performance.md +0 -0
  118. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/14-api-reference.md +0 -0
  119. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/15-best-practices.md +0 -0
  120. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/16-faq.md +0 -0
  121. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/17-hybrid-arrow.md +0 -0
  122. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/README.md +0 -0
  123. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/benchmark_methodology.md +0 -0
  124. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/paper/README.md +0 -0
  125. {motedb_python-0.12.9 → motedb_python-0.14.0}/docs/paper/motedb.tex +0 -0
  126. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_300k.rs +0 -0
  127. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_autocommit_lock.rs +0 -0
  128. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_disk.rs +0 -0
  129. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_exec_only.rs +0 -0
  130. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_insert_engine.rs +0 -0
  131. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_layer.rs +0 -0
  132. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_memory.rs +0 -0
  133. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_multimodal_vs_competitors.rs +0 -0
  134. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_point_read.rs +0 -0
  135. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_profile_hot.rs +0 -0
  136. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_scaling.rs +0 -0
  137. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_stability.rs +0 -0
  138. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/bench_vs_sqlite.rs +0 -0
  139. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/corruption_fuzz.rs +0 -0
  140. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/crud.rs +0 -0
  141. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/differential_fuzz.rs +0 -0
  142. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/hello_world.rs +0 -0
  143. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/join_differential_fuzz.rs +0 -0
  144. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/logging.rs +0 -0
  145. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/probe_filter_decomp.rs +0 -0
  146. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/probe_jemalloc.rs +0 -0
  147. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/probe_memory_source.rs +0 -0
  148. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/probe_tail_latency.rs +0 -0
  149. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/text_rank_probe.rs +0 -0
  150. {motedb_python-0.12.9 → motedb_python-0.14.0}/examples/vector_recall_real.rs +0 -0
  151. {motedb_python-0.12.9 → motedb_python-0.14.0}/licenses/LICENSE +0 -0
  152. {motedb_python-0.12.9 → motedb_python-0.14.0}/python/motedb/__init__.py +0 -0
  153. {motedb_python-0.12.9 → motedb_python-0.14.0}/scripts/Dockerfile.e2e +0 -0
  154. {motedb_python-0.12.9 → motedb_python-0.14.0}/scripts/compete.sh +0 -0
  155. {motedb_python-0.12.9 → motedb_python-0.14.0}/scripts/docker_e2e.sh +0 -0
  156. {motedb_python-0.12.9 → motedb_python-0.14.0}/scripts/repro_point_query_gap.sh +0 -0
  157. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/api.rs +0 -0
  158. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/cache/mod.rs +0 -0
  159. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/cache/row_cache.rs +0 -0
  160. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/catalog/mod.rs +0 -0
  161. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/catalog/registry.rs +0 -0
  162. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/config.rs +0 -0
  163. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/doctor.rs +0 -0
  164. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/helpers.rs +0 -0
  165. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/index_metadata.rs +0 -0
  166. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/indexes/column.rs +0 -0
  167. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/indexes/dashmap_migration.md +0 -0
  168. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/indexes/ioctree.rs +0 -0
  169. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/indexes/mod.rs +0 -0
  170. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/indexes/text.rs +0 -0
  171. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/indexes/timestamp.rs +0 -0
  172. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/indexes/vector.rs +0 -0
  173. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/mem_buffer.rs +0 -0
  174. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/persistence.rs +0 -0
  175. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/pk_cache.rs +0 -0
  176. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/table.rs +0 -0
  177. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/timeseries.rs +0 -0
  178. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/database/transaction.rs +0 -0
  179. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/distance/cosine.rs +0 -0
  180. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/distance/euclidean.rs +0 -0
  181. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/distance/mod.rs +0 -0
  182. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/error.rs +0 -0
  183. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/ffi.rs +0 -0
  184. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/btree.rs +0 -0
  185. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/btree_generic.rs +0 -0
  186. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/builder.rs +0 -0
  187. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/column_value.rs +0 -0
  188. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/fresh_graph.rs +0 -0
  189. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/ioctree/leaf_store.rs +0 -0
  190. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/ioctree/mod.rs +0 -0
  191. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/ioctree/node.rs +0 -0
  192. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/ioctree/persistence.rs +0 -0
  193. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/ioctree/search.rs +0 -0
  194. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/mod.rs +0 -0
  195. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/primary_key.rs +0 -0
  196. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/text_dictionary.rs +0 -0
  197. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/text_encoding.rs +0 -0
  198. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/text_fts.rs +0 -0
  199. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/text_query.rs +0 -0
  200. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/text_types.rs +0 -0
  201. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/tokenizers.rs +0 -0
  202. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/vamana/config.rs +0 -0
  203. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/vamana/disk_graph.rs +0 -0
  204. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/vamana/diskann_index.rs +0 -0
  205. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/vamana/mod.rs +0 -0
  206. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/vamana/pruner.rs +0 -0
  207. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/vamana/sq8.rs +0 -0
  208. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/index/vamana/sq8_vectors.rs +0 -0
  209. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/platform_io.rs +0 -0
  210. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/executor/agg.rs +0 -0
  211. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/join/hash_join.rs +0 -0
  212. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/join/index_join.rs +0 -0
  213. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/join/mod.rs +0 -0
  214. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/mod.rs +0 -0
  215. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/optimizer.rs +0 -0
  216. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/row_converter.rs +0 -0
  217. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/token.rs +0 -0
  218. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/sql/vector_exec.rs +0 -0
  219. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/checksum.rs +0 -0
  220. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/col_segment/manifest.rs +0 -0
  221. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/col_segment/merge.rs +0 -0
  222. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/col_segment/mod.rs +0 -0
  223. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/columnar/column_encoding.rs +0 -0
  224. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/columnar/config.rs +0 -0
  225. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/columnar/gorilla.rs +0 -0
  226. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/columnar/mod.rs +0 -0
  227. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/columnar/segment.rs +0 -0
  228. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/columnar/segment_manager.rs +0 -0
  229. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/columnar/store.rs +0 -0
  230. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/columnar/write_buffer.rs +0 -0
  231. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/file_manager.rs +0 -0
  232. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/blobstore.rs +0 -0
  233. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/bloom.rs +0 -0
  234. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/compaction.rs +0 -0
  235. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/engine.rs +0 -0
  236. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/memtable.rs +0 -0
  237. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/merging_iterator.rs +0 -0
  238. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/mod.rs +0 -0
  239. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/sstable.rs +0 -0
  240. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/lsm/unified_memtable.rs +0 -0
  241. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/manifest/manifest.rs +0 -0
  242. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/manifest/mod.rs +0 -0
  243. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/manifest/version.rs +0 -0
  244. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/storage/mod.rs +0 -0
  245. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/txn/coordinator.rs +0 -0
  246. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/txn/lock_manager.rs +0 -0
  247. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/txn/mod.rs +0 -0
  248. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/txn/mvcc.rs +0 -0
  249. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/txn/recovery.rs +0 -0
  250. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/txn/version_store.rs +0 -0
  251. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/txn/wal.rs +0 -0
  252. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/types/comp_sum.rs +0 -0
  253. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/types/spatial.rs +0 -0
  254. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/types/tensor.rs +0 -0
  255. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/types/text.rs +0 -0
  256. {motedb_python-0.12.9 → motedb_python-0.14.0}/src/types/timestamp.rs +0 -0
  257. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/acid_test.rs +0 -0
  258. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_2m.rs +0 -0
  259. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_acid.rs +0 -0
  260. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_batch_ops.rs +0 -0
  261. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_compare.rs +0 -0
  262. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_comprehensive.rs +0 -0
  263. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_concurrent.rs +0 -0
  264. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_index_ops.rs +0 -0
  265. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_multimodal.rs +0 -0
  266. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_multimodal_full.rs +0 -0
  267. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_multimodal_ops.rs +0 -0
  268. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_perf_report.rs +0 -0
  269. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_quick_baseline.rs +0 -0
  270. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_release.rs +0 -0
  271. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_report.rs +0 -0
  272. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_resource.rs +0 -0
  273. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_sql_queries.rs +0 -0
  274. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_timeseries_index.rs +0 -0
  275. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_v060_report.rs +0 -0
  276. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_vs_sqlite_100k.rs +0 -0
  277. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/bench_vs_sqlite_v05.rs +0 -0
  278. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/common/mod.rs +0 -0
  279. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/durability_probe.rs +0 -0
  280. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/fts_probe.rs +0 -0
  281. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/perf_test.rs +0 -0
  282. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/repro_point_gap.rs +0 -0
  283. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/stress_300k.rs +0 -0
  284. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/stress_test.rs +0 -0
  285. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_acid_audit.rs +0 -0
  286. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_acid_comprehensive.rs +0 -0
  287. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_advanced_hunt.rs +0 -0
  288. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_api_correctness.rs +0 -0
  289. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_auto_checkpoint_segments.rs +0 -0
  290. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_backup.rs +0 -0
  291. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_btree_integrity.rs +0 -0
  292. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt.rs +0 -0
  293. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt2.rs +0 -0
  294. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt3.rs +0 -0
  295. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt4.rs +0 -0
  296. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt5.rs +0 -0
  297. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt6.rs +0 -0
  298. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt7.rs +0 -0
  299. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v10.rs +0 -0
  300. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v100.rs +0 -0
  301. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v101.rs +0 -0
  302. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v11.rs +0 -0
  303. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v12.rs +0 -0
  304. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v13.rs +0 -0
  305. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v14.rs +0 -0
  306. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v15.rs +0 -0
  307. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v16.rs +0 -0
  308. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v17_cte.rs +0 -0
  309. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v18.rs +0 -0
  310. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v19.rs +0 -0
  311. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v2.rs +0 -0
  312. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v20.rs +0 -0
  313. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v21.rs +0 -0
  314. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v22.rs +0 -0
  315. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v23.rs +0 -0
  316. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v24.rs +0 -0
  317. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v25.rs +0 -0
  318. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v26.rs +0 -0
  319. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v27.rs +0 -0
  320. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v28.rs +0 -0
  321. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v29.rs +0 -0
  322. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v3.rs +0 -0
  323. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v30.rs +0 -0
  324. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v31.rs +0 -0
  325. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v32.rs +0 -0
  326. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v33.rs +0 -0
  327. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v34.rs +0 -0
  328. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v35.rs +0 -0
  329. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v36.rs +0 -0
  330. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v38.rs +0 -0
  331. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v39.rs +0 -0
  332. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v4.rs +0 -0
  333. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v40.rs +0 -0
  334. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v43.rs +0 -0
  335. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v45.rs +0 -0
  336. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v48.rs +0 -0
  337. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v49.rs +0 -0
  338. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v5.rs +0 -0
  339. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v50.rs +0 -0
  340. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v51.rs +0 -0
  341. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v52.rs +0 -0
  342. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v53.rs +0 -0
  343. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v54.rs +0 -0
  344. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v55.rs +0 -0
  345. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v56.rs +0 -0
  346. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v57.rs +0 -0
  347. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v58.rs +0 -0
  348. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v59.rs +0 -0
  349. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v6.rs +0 -0
  350. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v60.rs +0 -0
  351. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v61.rs +0 -0
  352. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v62.rs +0 -0
  353. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v63.rs +0 -0
  354. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v64.rs +0 -0
  355. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v65.rs +0 -0
  356. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v66.rs +0 -0
  357. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v67.rs +0 -0
  358. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v68.rs +0 -0
  359. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v69.rs +0 -0
  360. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v7.rs +0 -0
  361. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v70.rs +0 -0
  362. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v71.rs +0 -0
  363. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v72.rs +0 -0
  364. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v73.rs +0 -0
  365. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v74.rs +0 -0
  366. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v75.rs +0 -0
  367. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v76.rs +0 -0
  368. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v77.rs +0 -0
  369. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v78.rs +0 -0
  370. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v79.rs +0 -0
  371. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v8.rs +0 -0
  372. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v80.rs +0 -0
  373. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v81.rs +0 -0
  374. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v82.rs +0 -0
  375. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v83.rs +0 -0
  376. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v84.rs +0 -0
  377. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v85.rs +0 -0
  378. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v86.rs +0 -0
  379. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v87.rs +0 -0
  380. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v88.rs +0 -0
  381. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v89.rs +0 -0
  382. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v9.rs +0 -0
  383. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v90.rs +0 -0
  384. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v91.rs +0 -0
  385. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v92.rs +0 -0
  386. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v93.rs +0 -0
  387. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v94.rs +0 -0
  388. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v95.rs +0 -0
  389. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v96.rs +0 -0
  390. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v97.rs +0 -0
  391. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v98.rs +0 -0
  392. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_bug_hunt_v99.rs +0 -0
  393. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_col_segment.rs +0 -0
  394. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_col_segment_fastpaths.rs +0 -0
  395. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_columnar.rs +0 -0
  396. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_columnar_acid.rs +0 -0
  397. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_compact_storage.rs +0 -0
  398. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_compaction_integrity.rs +0 -0
  399. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_compiled_where_semantics.rs +0 -0
  400. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_comprehensive.rs +0 -0
  401. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_comprehensive_audit.rs +0 -0
  402. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_concurrent_sql_features.rs +0 -0
  403. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_concurrent_stress.rs +0 -0
  404. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_corruption_recovery.rs +0 -0
  405. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_corruption_robustness.rs +0 -0
  406. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_crash_injection.rs +0 -0
  407. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_crash_recovery.rs +0 -0
  408. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_data_types.rs +0 -0
  409. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_db_path_hygiene.rs +0 -0
  410. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_deadlock_stress.rs +0 -0
  411. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_deep_edge.rs +0 -0
  412. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_delete_persist.rs +0 -0
  413. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_differential_correctness.rs +0 -0
  414. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_disk_bloat.rs +0 -0
  415. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_disk_usage.rs +0 -0
  416. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_doctor.rs +0 -0
  417. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_durability.rs +0 -0
  418. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_e2e_crash_and_stress.rs +0 -0
  419. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_edge_cases.rs +0 -0
  420. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_edge_semantics.rs +0 -0
  421. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_executemany.rs +0 -0
  422. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_exists_subquery.rs +0 -0
  423. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_explain.rs +0 -0
  424. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_extreme_hunt.rs +0 -0
  425. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_fast_paths.rs +0 -0
  426. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_fuzz_sql_combinations.rs +0 -0
  427. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_groupby_first_query.rs +0 -0
  428. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_hybrid_search.rs +0 -0
  429. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_index_maintenance.rs +0 -0
  430. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_index_reopen.rs +0 -0
  431. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_index_robustness.rs +0 -0
  432. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_indexed_query_semantics.rs +0 -0
  433. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_insert_engine.rs +0 -0
  434. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_insert_explicit_fastpath.rs +0 -0
  435. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_insert_paths_index_maintenance.rs +0 -0
  436. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_insert_select.rs +0 -0
  437. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_ioctree.rs +0 -0
  438. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_isolation_levels.rs +0 -0
  439. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_join_count_fold.rs +0 -0
  440. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_knn_parallel.rs +0 -0
  441. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_large_rows.rs +0 -0
  442. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_m5_mines.rs +0 -0
  443. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_memory_leak.rs +0 -0
  444. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_memory_linear.rs +0 -0
  445. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_multimodal.rs +0 -0
  446. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_multimodal_e2e.rs +0 -0
  447. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_mvcc_isolation.rs +0 -0
  448. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_mvcc_recovery.rs +0 -0
  449. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_no_bloat.rs +0 -0
  450. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_optimization_regression.rs +0 -0
  451. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_order_by_expr_keys.rs +0 -0
  452. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_parser_fuzz_regression.rs +0 -0
  453. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_performance_guarantees.rs +0 -0
  454. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_pk_change_semantics.rs +0 -0
  455. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_prepared_dml.rs +0 -0
  456. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_public_api.rs +0 -0
  457. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_query_equivalence.rs +0 -0
  458. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_range_count.rs +0 -0
  459. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_release_readiness.rs +0 -0
  460. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_repro12.rs +0 -0
  461. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_round12_optimizations.rs +0 -0
  462. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_round12b_edge.rs +0 -0
  463. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_round12c_e2e_bugs.rs +0 -0
  464. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_round13_bug_hunt.rs +0 -0
  465. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_row_api.rs +0 -0
  466. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_savepoint_window.rs +0 -0
  467. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_scalability.rs +0 -0
  468. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_scan_integrity.rs +0 -0
  469. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_semantic_edges.rs +0 -0
  470. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_spatial_index.rs +0 -0
  471. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_spatial_large_geometry.rs +0 -0
  472. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_spatial_sql_semantics.rs +0 -0
  473. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_sql_advanced.rs +0 -0
  474. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_sql_correctness.rs +0 -0
  475. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_sql_correctness_part2.rs +0 -0
  476. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_sql_ddl_features.rs +0 -0
  477. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_sql_errors_edges.rs +0 -0
  478. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_sql_functions.rs +0 -0
  479. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_sql_groupby.rs +0 -0
  480. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_sql_joins.rs +0 -0
  481. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_sql_scenarios.rs +0 -0
  482. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_storage_integrity.rs +0 -0
  483. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_stress.rs +0 -0
  484. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_stress_hunt.rs +0 -0
  485. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_text_ts_search_semantics.rs +0 -0
  486. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_timeseries_index.rs +0 -0
  487. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_timeseries_semantics.rs +0 -0
  488. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_timestamp_recovery.rs +0 -0
  489. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_transaction_semantics.rs +0 -0
  490. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_txn_ddl_and_nan_ordering.rs +0 -0
  491. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_update_perf.rs +0 -0
  492. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_upsert.rs +0 -0
  493. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_v050_features.rs +0 -0
  494. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_vec_m0.rs +0 -0
  495. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_vec_m4.rs +0 -0
  496. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_vector_column_read_paths.rs +0 -0
  497. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_vector_durability.rs +0 -0
  498. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_vector_index_recall.rs +0 -0
  499. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_vector_spatial_text.rs +0 -0
  500. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_vector_visibility.rs +0 -0
  501. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_wide_tables.rs +0 -0
  502. {motedb_python-0.12.9 → motedb_python-0.14.0}/tests/test_write_concurrency.rs +0 -0
@@ -1,5 +1,98 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.14.0] — 2026-10-12
4
+
5
+ - **🔑 ASOF JOIN(W8, v0.14)**: 机器人帧↔状态对齐原语
6
+ - `t1 ASOF JOIN t2 ON key = key AND right_ts <= left_ts`(也接受
7
+ `left_ts >= right_ts` 等价形)— 每左行取同键下 ts 不超过它的最新右行
8
+ - `LEFT ASOF JOIN` 保留无匹配左行(右侧 NULL);可选键等值(缺省=全局桶)
9
+ - 实现: 右表按 (key → ts 升序) 建桶, 左行二分 partition_point, O(N·logM)
10
+ - 基建修复: **隐式别名吞 ASOF**(`fr ASOF JOIN jt` 曾解析为
11
+ fr{alias:"ASOF"} + Inner JOIN → 静默 0 行); normalize 操作数交换时
12
+ 镜像不等号; 前向形式(left_ts <= right_ts)v1 明确报错
13
+ - 测试: test_asof_join.rs(4) — 对齐/左保留/反向形式与错误/30×40 抖动
14
+ 时间戳 vs 测试内暴力参照逐行对拍
15
+ - **Perf Gate 新形状**: +blob_scan(0.30x)/rrf_fusion(0.04x)/
16
+ traj_sim_topk(1.79x) 三个 v0.14 查询形状的比率预算(基线=全表扫描)
17
+ - **🔑 数据集快照(W7, v0.14)**:
18
+ - `COMMIT DATASET 'name' [NOTE '…']` — 钉住全部用户表的当前段集
19
+ (段 = 不可变文件,快照即段 id 清单,近乎免费);清单持久化在
20
+ `_dataset_commits` 表(dataset/table/seg_id/note/committed_at)
21
+ - **GC 引用保护**: ColSegmentStore 增加 gc_filter(三个构造点统一安装:
22
+ get_or_create Vacant/Occupied 补装/open 直接构造点)—— sync_manifest
23
+ 对被钉住的段**延迟物理删除**(留在 pending_gc 反复复查);reopen 时
24
+ 非 active 段的清理同样改为延迟(修复:原先直接删除会吃掉被钉段,
25
+ kill 测试实抓)
26
+ - `EXPORT DATASET 'name' TO 'path'` — 把快照物化为独立新库(清单段:
27
+ 内存句柄或按 `{id:010}.sst` 直开 Segment::open;逐活行写入新库,
28
+ 同 schema 含 EPISODE BY;索引在目标库按需重建);导出末尾 checkpoint
29
+ 保证即时持久化与一致首读
30
+ - `DROP DATASET [IF EXISTS] 'name'` — 释放钉(原生 delete_rows_batch,
31
+ 引用集全量重建)
32
+ - 测试: test_datasets.rs(2) — 快照隔离(commit 前后变更不串)、
33
+ reopen+VACUUM 后导出仍完整(GC 保护实抓:open 路径绕过 filter 安装)、
34
+ DROP/IF EXISTS/未知数据集错误
35
+ - **🔑 Episode 数据模型(W6, v0.14 第一块)**:
36
+ - `CREATE EPISODE TABLE … EPISODE BY (key_col, ts_col) GAP '5s'|'100ms'|
37
+ microseconds` — 列存在性校验, 配置持久化在 TableSchema(serde 兼容旧库)
38
+ - `FROM EPISODES(t)` 表函数: 按 key 分组 → ts 排序 → gap 分片, 每片段一行
39
+ (`<key>`, `t0`, `t1`, `n_rows`), 且每个 VECTOR 列派生 `traj_<col>` —
40
+ 统一 64 采样线性插值重采样的展平轨迹(64×dim)。Episode 为**派生数据**
41
+ (分片是 key/ts/gap 的纯函数) — 无注册表需持久化, 重开一致性免费
42
+ - `traj_sim(traj_col, demo)` — 64×dim DTW 距离(demo 任意采样数, 内部
43
+ 重采样到 64); W5 spike 决议的两段式架构(无物理倒排, PAA 短名单化
44
+ 为后续优化), evaluator/positional/simple 三求值表接线
45
+ - 基建: 表函数参数支持裸表名 + 字符串字面量; UNION 合成支持 Vector
46
+ 字面量(EPISODES 内联通道, 递归 CTE 路径保持标量限制)
47
+ - 测试: test_episodes.rs(3) — 分片正确性/形状、traj_sim vs 测试内
48
+ 暴力 DTW 对拍、重开耐久
49
+
50
+ ## [0.13.0] — 2026-10-11
51
+
52
+ - **🔑 BLOB 类型(全链路)**: `payload BLOB` 列 — 第 8 个 ColumnType。
53
+ - 字面量: SQLite 兼容 `X'0aff00'`(奇数位/非 hex 报错); Python `bytes`/
54
+ `bytearray` 参数与取回; CLI 十六进制预览; 16 MiB 上限
55
+ - 存储: 复用 Text 段字节布局 + 独立 `ColumnTypeTag::Blob`(读侧按 schema
56
+ 包装 `Value::Blob`, 非 UTF-8 字节零损耗); row_format 变长编解码;
57
+ 非定长批/缓存/点查/扫描/缓冲各读路径补齐
58
+ - 语义: 字节等值(`=`/`IS NULL`)、`LENGTH(blob)`=字节数(SQLite 语义)
59
+ - **已知缺口(v0.13.0, 测试内注释标注)**: BLOB 列上的标量函数在部分
60
+ 执行器路径(含 VECTOR 混合表/`WHERE` 内函数)与 `ORDER BY` 输出下返回
61
+ NULL — 裸投影/等值/时间窗扫描/参数全稳
62
+ - **🔑 MCAP 机器人数据导入(具身工作流入场券)**:
63
+ - `motedb-cli import mcap <db> <file> [--include s] [--exclude s] [--prefix p]`
64
+ 与 Python `db.import_mcap(path, include=…, prefix=…, decode={topic: fn})`
65
+ - 每 topic 一表: `_uid INTEGER PRIMARY KEY`((channel<<40)|seq, 天然去重)、
66
+ `log_time/publish_time TIMESTAMP`(自动时间索引, ns→µs)、`data BLOB`
67
+ (原始消息字节)。解码边界在 Python 钩子(返回 dict → 类型化列, 可产
68
+ VECTOR 列) — 引擎不碰 ROS2 CDR/protobuf 语义
69
+ - 重放幂等: `INSERT OR IGNORE` + `_uid` 去重(kill -9 后重跑即续)
70
+ - 依赖: 官方 `mcap` crate 0.25(只读, 经 cargo-deny)
71
+ - **🔑 词法平方级修复(BLOB 测试实抓)**: `Lexer::current_utf8_char` 每字符
72
+ 对剩余输入跑 `str::from_utf8` 全量校验 — 任何 16 MiB 字符串/X'' 字面量
73
+ 解析耗时 ~1h; 改为仅解码首码点(decode_first_codepoint), 行为不变
74
+ - **🔑 RRF 混合检索 + bm25()/snippet()**:
75
+ - `FROM RRF((子查询1), (子查询2)[, k = n][, rrk = n][, w1..w4 = f])` 表
76
+ 函数: 2..=4 路排名列表的 Reciprocal Rank Fusion( score = Σ wᵢ/(rrk+rankᵢ),
77
+ 默认 k=10/rrk=60/均权), 输出按分数降序、值升序 tie-break(确定性可对拍),
78
+ 经 `rows_to_union_statement` 内联为派生表 → 外层 WHERE/ORDER BY 走常规机制
79
+ - `bm25(col)` 作为 `BM25_SCORE` 的别名接入 MATCH 快路径: `ORDER BY
80
+ bm25(body)` 与 `ORDER BY score DESC` 等价, LIMIT 下取 ranked top-k
81
+ - `snippet(text, query[, width=64])`: FTS5 风格摘录(首命中窗口 +
82
+ `<b>` 高亮 + 省略号), 纯字符索引实现
83
+ - **顺带修复**: FROM 为非普通表(JOIN/派生表/TableFn)且 ORDER BY+LIMIT
84
+ 的查询被 optimizer 的 "unknown" 占位表名绊倒(FullScan 计划臂现按
85
+ FROM 形状回退通用机制)
86
+ - 测试: test_rrf_hybrid.rs(3) — 引擎融合 vs 测试内参照公式逐 id 对拍、
87
+ 命名参数(w1=0 退化为单路)、形状错误、bm25 排序等价、snippet 窗口/高亮
88
+ - 文档对齐: README SQL Support 勘误(WITH RECURSIVE/窗口函数 0.12 已实现
89
+ 但写着不支持)+ BLOB/MCAP 能力与已知缺口如实标注
90
+ - 测试: test_blob_type.rs(4)、test_mcap_import.rs(合成 bag 回环: 布局/
91
+ 字节保真/钩子/过滤/重放幂等/重开)、bindings/python/tests/
92
+ test_mcap_import.py(固定 fixture bag 端到端)、examples/gen_test_bag.rs
93
+ - 顺延(下版): RRF 混合检索 + bm25()/snippet()(设计已定: docs/design/
94
+ 2026-10-embodied-roadmap.md); MCAP 断点续导清单表(`_mcap_imports`)
95
+
3
96
  ## [0.12.9] — 2026-10-10
4
97
 
5
98
  - **🔑 崩溃恢复审计三连修(0.12.8 stale 检测的边界补全)**:
@@ -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.12.9"
924
+ version = "0.14.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.12.9"
3
+ version = "0.14.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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: motedb-python
3
- Version: 0.12.9
3
+ Version: 0.14.0
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Intended Audience :: Science/Research
@@ -160,6 +160,76 @@ 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
+ ### Frame↔state alignment: ASOF JOIN (v0.14 work-in-progress)
177
+
178
+ ```sql
179
+ -- For each frame, the latest joint-state at-or-before its timestamp (per session):
180
+ SELECT f.fname, j.q FROM frames f
181
+ ASOF JOIN joints j ON f.session = j.session AND j.ts <= f.ts;
182
+ -- LEFT ASOF JOIN keeps frames with no prior state (NULL right side).
183
+ ```
184
+
185
+ ### Episode model + trajectory search (v0.14 work-in-progress)
186
+
187
+ ```sql
188
+ CREATE EPISODE TABLE teleop (
189
+ session TEXT, ts TIMESTAMP, joint VECTOR(7), gripper FLOAT
190
+ ) EPISODE BY (session, ts) GAP '5s';
191
+
192
+ -- One row per episode: bounds, row count, and a 64-sample resampled
193
+ -- trajectory per VECTOR column (flattened 64×dim).
194
+ SELECT session, t0, t1, n_rows FROM EPISODES(teleop);
195
+
196
+ -- Trajectory similarity (DTW over the resampled series; two-stage
197
+ -- PAA-shortlist design validated in docs/design/2026-10-traj-spike.md):
198
+ SELECT session, t0 FROM EPISODES(teleop)
199
+ ORDER BY traj_sim(traj_joint, [0.0, 0.1, …]) LIMIT 10;
200
+ ```
201
+
202
+ Episodes are **derived data** — segmentation is a pure function of
203
+ `(key, ts, gap)`, so there is no registry to persist or invalidate and
204
+ reopen consistency is free.
205
+
206
+ ### Dataset snapshots (v0.14 work-in-progress)
207
+
208
+ ```sql
209
+ COMMIT DATASET 'fixpos-v3' NOTE 'after gripper fix';
210
+ -- … table keeps evolving (compaction GC will not touch pinned segments) …
211
+ EXPORT DATASET 'fixpos-v3' TO '/data/fixpos-v3.mote'; -- materialized copy
212
+ DROP DATASET 'fixpos-v3'; -- release the pin
213
+ ```
214
+
215
+ A snapshot is just the pinned segment list (segments are immutable files)
216
+ — near-free to take, persisted in `_dataset_commits`, and compaction
217
+ physically defers deletion of pinned files until the pin is dropped.
218
+ EXPORT materializes the pinned state into a fresh standalone database.
219
+
220
+ ### Robotics data on-ramp (new in v0.13)
221
+
222
+ ```bash
223
+ motedb import mcap robot.mote recording.mcap # CLI
224
+ # 或 Python:
225
+ db.import_mcap("recording.mcap", decode={"/joint_states": my_decoder})
226
+ ```
227
+
228
+ One table per topic (`_uid` PK, `log_time`/`publish_time` TIMESTAMP + auto
229
+ index, raw message `data BLOB`); a per-topic Python decode hook adds typed
230
+ columns (e.g. decoded `emb VECTOR`) at import time. Re-imports are no-ops
231
+ (`_uid` dedup) — crash-safe resumes.
232
+
163
233
  ### Multimodal
164
234
 
165
235
  | Modality | Index | Query |
@@ -253,8 +323,11 @@ EXISTS]` / `DROP INDEX`, `ALTER TABLE` (`ADD COLUMN`, `AUTO_INCREMENT = N`),
253
323
  - Aggregates: `COUNT`, `SUM`, `AVG`, `MIN`, `MAX`, `STDDEV`, `VARIANCE`
254
324
  - `UNION` / `UNION ALL`
255
325
  - `CASE WHEN ... THEN ... ELSE ... END`
256
- - `WITH` / Common Table Expressions (non-recursive; `WITH name [(cols)] AS
257
- (SELECT ...), ... <main query>`)
326
+ - `WITH` / Common Table Expressions incl. **`WITH RECURSIVE`** (semi-naive
327
+ fixed-point, UNION ALL bodies, chained CTEs)
328
+ - Window functions: `ROW_NUMBER`, `RANK`, `DENSE_RANK`, `NTILE`, `LAG`,
329
+ `LEAD`, `FIRST_VALUE`, `LAST_VALUE` + aggregates `OVER (PARTITION BY …
330
+ ORDER BY …)` (RANGE peer-group default frame)
258
331
  - 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
332
  - Multimodal predicates: `MATCH(col) AGAINST('q')` (BM25 ranked FTS;
260
333
  multi-word default is AND, explicit `a OR b` unions — FTS5-compatible),
@@ -263,9 +336,15 @@ EXISTS]` / `DROP INDEX`, `ALTER TABLE` (`ADD COLUMN`, `AUTO_INCREMENT = N`),
263
336
  - Transactions: `BEGIN` / `COMMIT` / `ROLLBACK`, savepoints, read-your-writes
264
337
  visibility inside a transaction
265
338
 
266
- **Not yet supported:** `WITH RECURSIVE` (the keyword is accepted but
267
- self-referencing CTEs error out), `DECIMAL`/`DATE`/`BLOB` types, window
268
- functions, and cross-statement server-side cursors.
339
+ **BLOB type:** `payload BLOB` columns with SQLite-style `X'0aff00'` hex
340
+ literals and Python `bytes` parameters (byte-exact round-trip, 16 MiB
341
+ cap). Known v0.13 gaps: scalar functions over BLOB columns
342
+ (`LENGTH(payload)`) and BLOB output under `ORDER BY` are not yet wired
343
+ through all executor paths — bare projection, equality (`WHERE payload =
344
+ X'…'`), time-window scans and parameters are solid.
345
+
346
+ **Not yet supported:** `DECIMAL`/`DATE` types, cross-statement server-side
347
+ cursors, and explicit window frames (`ROWS`/`RANGE` specs).
269
348
 
270
349
  ## Documentation
271
350