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

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