motedb-python 0.15.0__tar.gz → 0.15.2__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 (554) hide show
  1. motedb_python-0.15.2/.github/ISSUE_TEMPLATE/bug_report.yml +73 -0
  2. motedb_python-0.15.2/.github/ISSUE_TEMPLATE/config.yml +11 -0
  3. motedb_python-0.15.2/.github/ISSUE_TEMPLATE/feature_request.yml +50 -0
  4. motedb_python-0.15.2/.github/ISSUE_TEMPLATE/install_problem.yml +64 -0
  5. motedb_python-0.15.2/.github/pull_request_template.md +29 -0
  6. {motedb_python-0.15.0 → motedb_python-0.15.2}/.github/workflows/ci.yml +42 -7
  7. motedb_python-0.15.2/.github/workflows/node-publish.yml +304 -0
  8. motedb_python-0.15.2/.github/workflows/release-smoke.yml +160 -0
  9. motedb_python-0.15.2/.github/workflows/site.yml +35 -0
  10. {motedb_python-0.15.0 → motedb_python-0.15.2}/CHANGELOG.md +86 -0
  11. motedb_python-0.15.2/CONTRIBUTING.md +111 -0
  12. {motedb_python-0.15.0 → motedb_python-0.15.2}/Cargo.lock +362 -3
  13. {motedb_python-0.15.0 → motedb_python-0.15.2}/Cargo.toml +14 -5
  14. {motedb_python-0.15.0 → motedb_python-0.15.2}/Makefile +22 -1
  15. {motedb_python-0.15.0 → motedb_python-0.15.2}/PKG-INFO +3 -3
  16. {motedb_python-0.15.0 → motedb_python-0.15.2}/README.md +19 -5
  17. {motedb_python-0.15.0 → motedb_python-0.15.2}/RELEASE_NOTES.md +6 -1
  18. motedb_python-0.15.2/SECURITY.md +76 -0
  19. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/Cargo.lock +505 -4
  20. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/Cargo.toml +2 -1
  21. motedb_python-0.15.2/bindings/python/bench/compete_vec_engines.py +344 -0
  22. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/src/lib.rs +15 -2
  23. motedb_python-0.15.2/bindings/python/tests/test_parquet_lerobot.py +159 -0
  24. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/01-quick-start.md +4 -1
  25. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/02-installation.md +15 -4
  26. motedb_python-0.15.2/docs/18-install-troubleshooting.md +169 -0
  27. motedb_python-0.15.2/docs/19-training-dataloader.md +49 -0
  28. motedb_python-0.15.2/docs/20-mcp.md +40 -0
  29. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/README.md +7 -1
  30. motedb_python-0.15.2/docs/design/2026-10-good-first-issues.md +177 -0
  31. motedb_python-0.15.2/docs/design/2026-10-industry-parity-plan.md +358 -0
  32. motedb_python-0.15.2/examples/lerobot_interop.rs +55 -0
  33. motedb_python-0.15.2/examples/parquet_interop.rs +81 -0
  34. motedb_python-0.15.2/examples/torch_dataloader.py +60 -0
  35. {motedb_python-0.15.0 → motedb_python-0.15.2}/pyproject.toml +6 -2
  36. {motedb_python-0.15.0 → motedb_python-0.15.2}/python/motedb/__init__.py +53 -0
  37. motedb_python-0.15.2/python/motedb/mcp.py +190 -0
  38. motedb_python-0.15.2/python/motedb/torch.py +87 -0
  39. motedb_python-0.15.2/scripts/bench_industry.sh +26 -0
  40. motedb_python-0.15.2/scripts/bench_report.py +63 -0
  41. motedb_python-0.15.2/scripts/release_smoke.sh +242 -0
  42. motedb_python-0.15.2/site/index.html +18 -0
  43. motedb_python-0.15.2/site/llms-full.txt +70 -0
  44. motedb_python-0.15.2/site/llms.txt +41 -0
  45. motedb_python-0.15.2/site/robots.txt +22 -0
  46. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/api.rs +9 -3
  47. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/catalog/registry.rs +12 -4
  48. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/core.rs +11 -1
  49. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/crud.rs +6 -36
  50. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/persistence.rs +6 -0
  51. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/snapshot.rs +12 -2
  52. motedb_python-0.15.2/src/export/lerobot.rs +707 -0
  53. motedb_python-0.15.2/src/export/mod.rs +8 -0
  54. motedb_python-0.15.2/src/export/parquet.rs +608 -0
  55. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/lib.rs +3 -0
  56. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/ast.rs +21 -0
  57. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/executor/mod.rs +110 -0
  58. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/parser.rs +148 -2
  59. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/col_segment/merge.rs +2 -30
  60. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/col_segment/store.rs +3 -49
  61. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/columnar.rs +27 -0
  62. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_corruption_robustness.rs +5 -0
  63. motedb_python-0.15.2/tests/test_lerobot_export.rs +234 -0
  64. motedb_python-0.15.2/tests/test_parquet_roundtrip.rs +208 -0
  65. motedb_python-0.15.2/tests/test_show_indexes_and_open_snapshot.rs +85 -0
  66. motedb_python-0.15.2/tests/test_vector_null_scan.rs +95 -0
  67. motedb_python-0.15.0/.github/workflows/node-publish.yml +0 -185
  68. {motedb_python-0.15.0 → motedb_python-0.15.2}/.cargo/config.toml +0 -0
  69. {motedb_python-0.15.0 → motedb_python-0.15.2}/.devcontainer/devcontainer.json +0 -0
  70. {motedb_python-0.15.0 → motedb_python-0.15.2}/.github/workflows/fuzz.yml +0 -0
  71. {motedb_python-0.15.0 → motedb_python-0.15.2}/.github/workflows/perf-gate.yml +0 -0
  72. {motedb_python-0.15.0 → motedb_python-0.15.2}/.github/workflows/publish.yml +0 -0
  73. {motedb_python-0.15.0 → motedb_python-0.15.2}/.github/workflows/python-wheels.yml +0 -0
  74. {motedb_python-0.15.0 → motedb_python-0.15.2}/.gitignore +0 -0
  75. {motedb_python-0.15.0 → motedb_python-0.15.2}/.zcode/plans/plan-sess_abb2c954-05fb-477e-9d0a-3e22261e2449.md +0 -0
  76. {motedb_python-0.15.0 → motedb_python-0.15.2}/.zcode/plans/plan-sess_b5937a06-b7bf-4471-9756-dbf2787b263c.md +0 -0
  77. {motedb_python-0.15.0 → motedb_python-0.15.2}/LICENSE +0 -0
  78. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/go/README.md +0 -0
  79. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/go/go.mod +0 -0
  80. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/go/motedb.go +0 -0
  81. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/go/motedb.h +0 -0
  82. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/go/motedb_test.go +0 -0
  83. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/README.md +0 -0
  84. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/README.md +0 -0
  85. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/adversarial_verify.py +0 -0
  86. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/bench_edge.py +0 -0
  87. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/compete_bench.py +0 -0
  88. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/compete_fts_industry.py +0 -0
  89. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/compete_scale.py +0 -0
  90. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/compete_spatial_ts.py +0 -0
  91. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/compete_vec_industry.py +0 -0
  92. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/compete_writes.py +0 -0
  93. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/fts_probe_once.py +0 -0
  94. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/perf_ab.py +0 -0
  95. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/perf_overall.py +0 -0
  96. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/prof_ann.py +0 -0
  97. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/prof_fts.py +0 -0
  98. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/prof_insert.py +0 -0
  99. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/prof_point.py +0 -0
  100. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/prof_real.py +0 -0
  101. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/prof_scale.py +0 -0
  102. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/prof_scale_vec.py +0 -0
  103. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/prof_vec_parallel.py +0 -0
  104. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/resource_bench.py +0 -0
  105. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/resource_bench_2026-09_profile.json +0 -0
  106. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/resource_bench_v0.10.0.json +0 -0
  107. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/spatial_eval.py +0 -0
  108. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/text_eval.py +0 -0
  109. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/ts_eval.py +0 -0
  110. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/bench/vector_recall_eval.py +0 -0
  111. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/build.rs +0 -0
  112. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/e2e/e2e_workload.py +0 -0
  113. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/e2e/test_durability_kwarg.py +0 -0
  114. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/e2e/test_snapshot_export.py +0 -0
  115. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/licenses/LICENSE +0 -0
  116. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/scripts/build_wheel.sh +0 -0
  117. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/data/demo.mcap +0 -0
  118. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_backup.py +0 -0
  119. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_crash_recovery.py +0 -0
  120. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_e2e_cli.py +0 -0
  121. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_e2e_functional.py +0 -0
  122. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_feature_selfcheck.py +0 -0
  123. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_fetch_arrays.py +0 -0
  124. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_fuzz_bigtable.py +0 -0
  125. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_fuzz_differential.py +0 -0
  126. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_insert_arrays.py +0 -0
  127. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_mcap_import.py +0 -0
  128. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_parallel_ab.py +0 -0
  129. {motedb_python-0.15.0 → motedb_python-0.15.2}/bindings/python/tests/test_smoke.py +0 -0
  130. {motedb_python-0.15.0 → motedb_python-0.15.2}/deny.toml +0 -0
  131. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/03-sql-operations.md +0 -0
  132. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/04-batch-operations.md +0 -0
  133. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/05-transactions.md +0 -0
  134. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/06-indexes-overview.md +0 -0
  135. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/07-column-index.md +0 -0
  136. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/08-vector-index.md +0 -0
  137. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/09-text-index.md +0 -0
  138. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/10-spatial-index.md +0 -0
  139. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/11-timestamp-index.md +0 -0
  140. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/12-performance.md +0 -0
  141. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/13-data-types.md +0 -0
  142. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/14-api-reference.md +0 -0
  143. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/15-best-practices.md +0 -0
  144. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/16-faq.md +0 -0
  145. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/17-hybrid-arrow.md +0 -0
  146. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/benchmark_methodology.md +0 -0
  147. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/design/2026-10-embodied-roadmap.md +0 -0
  148. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/design/2026-10-file-layout-plan.md +0 -0
  149. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/design/2026-10-file-layout.md +0 -0
  150. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/design/2026-10-traj-spike.md +0 -0
  151. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/paper/README.md +0 -0
  152. {motedb_python-0.15.0 → motedb_python-0.15.2}/docs/paper/motedb.tex +0 -0
  153. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_300k.rs +0 -0
  154. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_autocommit_lock.rs +0 -0
  155. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_disk.rs +0 -0
  156. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_exec_only.rs +0 -0
  157. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_insert_engine.rs +0 -0
  158. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_layer.rs +0 -0
  159. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_memory.rs +0 -0
  160. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_multimodal_vs_competitors.rs +0 -0
  161. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_point_read.rs +0 -0
  162. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_profile_hot.rs +0 -0
  163. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_scaling.rs +0 -0
  164. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_stability.rs +0 -0
  165. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/bench_vs_sqlite.rs +0 -0
  166. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/corruption_fuzz.rs +0 -0
  167. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/crud.rs +0 -0
  168. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/differential_fuzz.rs +0 -0
  169. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/file_layout_bench.rs +0 -0
  170. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/gen_test_bag.rs +0 -0
  171. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/hello_world.rs +0 -0
  172. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/join_differential_fuzz.rs +0 -0
  173. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/logging.rs +0 -0
  174. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/perf_smoke.rs +0 -0
  175. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/probe_ckpt.rs +0 -0
  176. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/probe_filter_decomp.rs +0 -0
  177. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/probe_jemalloc.rs +0 -0
  178. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/probe_memory_source.rs +0 -0
  179. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/probe_tail_latency.rs +0 -0
  180. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/text_rank_probe.rs +0 -0
  181. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/traj_spike.rs +0 -0
  182. {motedb_python-0.15.0 → motedb_python-0.15.2}/examples/vector_recall_real.rs +0 -0
  183. {motedb_python-0.15.0 → motedb_python-0.15.2}/licenses/LICENSE +0 -0
  184. {motedb_python-0.15.0 → motedb_python-0.15.2}/scripts/Dockerfile.e2e +0 -0
  185. {motedb_python-0.15.0 → motedb_python-0.15.2}/scripts/compete.sh +0 -0
  186. {motedb_python-0.15.0 → motedb_python-0.15.2}/scripts/docker_e2e.sh +0 -0
  187. {motedb_python-0.15.0 → motedb_python-0.15.2}/scripts/repro_point_query_gap.sh +0 -0
  188. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/bin/motedb-cli.rs +0 -0
  189. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/cache/mod.rs +0 -0
  190. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/cache/row_cache.rs +0 -0
  191. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/catalog/mod.rs +0 -0
  192. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/config.rs +0 -0
  193. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/datasets.rs +0 -0
  194. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/doctor.rs +0 -0
  195. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/helpers.rs +0 -0
  196. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/index_metadata.rs +0 -0
  197. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/indexes/column.rs +0 -0
  198. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/indexes/dashmap_migration.md +0 -0
  199. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/indexes/ioctree.rs +0 -0
  200. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/indexes/mod.rs +0 -0
  201. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/indexes/text.rs +0 -0
  202. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/indexes/timestamp.rs +0 -0
  203. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/indexes/vector.rs +0 -0
  204. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/mem_buffer.rs +0 -0
  205. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/meta_store.rs +0 -0
  206. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/mod.rs +0 -0
  207. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/pk_cache.rs +0 -0
  208. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/table.rs +0 -0
  209. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/timeseries.rs +0 -0
  210. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/database/transaction.rs +0 -0
  211. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/distance/cosine.rs +0 -0
  212. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/distance/euclidean.rs +0 -0
  213. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/distance/mod.rs +0 -0
  214. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/error.rs +0 -0
  215. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/ffi.rs +0 -0
  216. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/btree.rs +0 -0
  217. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/btree_generic.rs +0 -0
  218. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/builder.rs +0 -0
  219. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/cached_index.rs +0 -0
  220. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/column_value.rs +0 -0
  221. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/fresh_graph.rs +0 -0
  222. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/ioctree/leaf_store.rs +0 -0
  223. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/ioctree/mod.rs +0 -0
  224. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/ioctree/node.rs +0 -0
  225. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/ioctree/persistence.rs +0 -0
  226. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/ioctree/search.rs +0 -0
  227. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/mod.rs +0 -0
  228. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/primary_key.rs +0 -0
  229. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/text_dictionary.rs +0 -0
  230. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/text_encoding.rs +0 -0
  231. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/text_fts.rs +0 -0
  232. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/text_query.rs +0 -0
  233. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/text_types.rs +0 -0
  234. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/tokenizers.rs +0 -0
  235. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/vamana/config.rs +0 -0
  236. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/vamana/disk_graph.rs +0 -0
  237. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/vamana/diskann_index.rs +0 -0
  238. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/vamana/mod.rs +0 -0
  239. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/vamana/pruner.rs +0 -0
  240. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/vamana/sq8.rs +0 -0
  241. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/index/vamana/sq8_vectors.rs +0 -0
  242. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/mcap_import.rs +0 -0
  243. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/platform_io.rs +0 -0
  244. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/evaluator.rs +0 -0
  245. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/executor/agg.rs +0 -0
  246. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/executor/join.rs +0 -0
  247. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/executor/scan.rs +0 -0
  248. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/join/hash_join.rs +0 -0
  249. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/join/index_join.rs +0 -0
  250. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/join/mod.rs +0 -0
  251. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/lexer.rs +0 -0
  252. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/mod.rs +0 -0
  253. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/optimizer.rs +0 -0
  254. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/row_converter.rs +0 -0
  255. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/token.rs +0 -0
  256. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/sql/vector_exec.rs +0 -0
  257. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/checksum.rs +0 -0
  258. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/col_segment/manifest.rs +0 -0
  259. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/col_segment/mod.rs +0 -0
  260. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/col_segment/segment.rs +0 -0
  261. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/colbatch.rs +0 -0
  262. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/columnar/column_encoding.rs +0 -0
  263. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/columnar/config.rs +0 -0
  264. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/columnar/gorilla.rs +0 -0
  265. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/columnar/mod.rs +0 -0
  266. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/columnar/segment.rs +0 -0
  267. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/columnar/segment_manager.rs +0 -0
  268. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/columnar/store.rs +0 -0
  269. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/columnar/write_buffer.rs +0 -0
  270. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/file_manager.rs +0 -0
  271. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/blobstore.rs +0 -0
  272. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/bloom.rs +0 -0
  273. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/compaction.rs +0 -0
  274. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/engine.rs +0 -0
  275. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/memtable.rs +0 -0
  276. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/merging_iterator.rs +0 -0
  277. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/mod.rs +0 -0
  278. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/sstable.rs +0 -0
  279. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/lsm/unified_memtable.rs +0 -0
  280. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/manifest/manifest.rs +0 -0
  281. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/manifest/mod.rs +0 -0
  282. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/manifest/version.rs +0 -0
  283. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/mod.rs +0 -0
  284. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/storage/row_format.rs +0 -0
  285. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/txn/coordinator.rs +0 -0
  286. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/txn/lock_manager.rs +0 -0
  287. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/txn/mod.rs +0 -0
  288. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/txn/mvcc.rs +0 -0
  289. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/txn/recovery.rs +0 -0
  290. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/txn/version_store.rs +0 -0
  291. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/txn/wal.rs +0 -0
  292. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/types/comp_sum.rs +0 -0
  293. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/types/mod.rs +0 -0
  294. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/types/spatial.rs +0 -0
  295. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/types/table.rs +0 -0
  296. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/types/tensor.rs +0 -0
  297. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/types/text.rs +0 -0
  298. {motedb_python-0.15.0 → motedb_python-0.15.2}/src/types/timestamp.rs +0 -0
  299. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/acid_test.rs +0 -0
  300. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_2m.rs +0 -0
  301. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_acid.rs +0 -0
  302. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_batch_ops.rs +0 -0
  303. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_compare.rs +0 -0
  304. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_comprehensive.rs +0 -0
  305. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_concurrent.rs +0 -0
  306. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_index_ops.rs +0 -0
  307. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_multimodal.rs +0 -0
  308. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_multimodal_full.rs +0 -0
  309. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_multimodal_ops.rs +0 -0
  310. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_perf_report.rs +0 -0
  311. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_quick_baseline.rs +0 -0
  312. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_release.rs +0 -0
  313. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_report.rs +0 -0
  314. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_resource.rs +0 -0
  315. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_sql_queries.rs +0 -0
  316. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_timeseries_index.rs +0 -0
  317. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_v060_report.rs +0 -0
  318. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_vs_sqlite_100k.rs +0 -0
  319. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/bench_vs_sqlite_v05.rs +0 -0
  320. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/common/mod.rs +0 -0
  321. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/durability_probe.rs +0 -0
  322. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/fts_probe.rs +0 -0
  323. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/perf_test.rs +0 -0
  324. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/repro_multirow_update_fts.rs +0 -0
  325. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/repro_point_gap.rs +0 -0
  326. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/stress_300k.rs +0 -0
  327. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/stress_test.rs +0 -0
  328. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_acid_audit.rs +0 -0
  329. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_acid_comprehensive.rs +0 -0
  330. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_advanced_hunt.rs +0 -0
  331. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_api_correctness.rs +0 -0
  332. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_asof_join.rs +0 -0
  333. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_auto_checkpoint_segments.rs +0 -0
  334. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_backup.rs +0 -0
  335. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_blob_type.rs +0 -0
  336. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_btree_integrity.rs +0 -0
  337. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt.rs +0 -0
  338. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt2.rs +0 -0
  339. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt3.rs +0 -0
  340. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt4.rs +0 -0
  341. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt5.rs +0 -0
  342. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt6.rs +0 -0
  343. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt7.rs +0 -0
  344. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v10.rs +0 -0
  345. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v100.rs +0 -0
  346. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v101.rs +0 -0
  347. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v11.rs +0 -0
  348. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v12.rs +0 -0
  349. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v13.rs +0 -0
  350. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v14.rs +0 -0
  351. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v15.rs +0 -0
  352. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v16.rs +0 -0
  353. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v17_cte.rs +0 -0
  354. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v18.rs +0 -0
  355. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v19.rs +0 -0
  356. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v2.rs +0 -0
  357. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v20.rs +0 -0
  358. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v21.rs +0 -0
  359. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v22.rs +0 -0
  360. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v23.rs +0 -0
  361. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v24.rs +0 -0
  362. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v25.rs +0 -0
  363. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v26.rs +0 -0
  364. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v27.rs +0 -0
  365. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v28.rs +0 -0
  366. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v29.rs +0 -0
  367. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v3.rs +0 -0
  368. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v30.rs +0 -0
  369. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v31.rs +0 -0
  370. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v32.rs +0 -0
  371. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v33.rs +0 -0
  372. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v34.rs +0 -0
  373. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v35.rs +0 -0
  374. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v36.rs +0 -0
  375. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v38.rs +0 -0
  376. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v39.rs +0 -0
  377. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v4.rs +0 -0
  378. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v40.rs +0 -0
  379. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v43.rs +0 -0
  380. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v45.rs +0 -0
  381. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v48.rs +0 -0
  382. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v49.rs +0 -0
  383. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v5.rs +0 -0
  384. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v50.rs +0 -0
  385. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v51.rs +0 -0
  386. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v52.rs +0 -0
  387. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v53.rs +0 -0
  388. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v54.rs +0 -0
  389. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v55.rs +0 -0
  390. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v56.rs +0 -0
  391. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v57.rs +0 -0
  392. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v58.rs +0 -0
  393. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v59.rs +0 -0
  394. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v6.rs +0 -0
  395. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v60.rs +0 -0
  396. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v61.rs +0 -0
  397. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v62.rs +0 -0
  398. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v63.rs +0 -0
  399. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v64.rs +0 -0
  400. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v65.rs +0 -0
  401. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v66.rs +0 -0
  402. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v67.rs +0 -0
  403. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v68.rs +0 -0
  404. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v69.rs +0 -0
  405. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v7.rs +0 -0
  406. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v70.rs +0 -0
  407. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v71.rs +0 -0
  408. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v72.rs +0 -0
  409. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v73.rs +0 -0
  410. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v74.rs +0 -0
  411. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v75.rs +0 -0
  412. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v76.rs +0 -0
  413. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v77.rs +0 -0
  414. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v78.rs +0 -0
  415. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v79.rs +0 -0
  416. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v8.rs +0 -0
  417. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v80.rs +0 -0
  418. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v81.rs +0 -0
  419. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v82.rs +0 -0
  420. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v83.rs +0 -0
  421. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v84.rs +0 -0
  422. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v85.rs +0 -0
  423. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v86.rs +0 -0
  424. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v87.rs +0 -0
  425. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v88.rs +0 -0
  426. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v89.rs +0 -0
  427. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v9.rs +0 -0
  428. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v90.rs +0 -0
  429. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v91.rs +0 -0
  430. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v92.rs +0 -0
  431. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v93.rs +0 -0
  432. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v94.rs +0 -0
  433. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v95.rs +0 -0
  434. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v96.rs +0 -0
  435. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v97.rs +0 -0
  436. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v98.rs +0 -0
  437. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_bug_hunt_v99.rs +0 -0
  438. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_col_segment.rs +0 -0
  439. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_col_segment_fastpaths.rs +0 -0
  440. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_columnar.rs +0 -0
  441. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_columnar_acid.rs +0 -0
  442. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_compact_storage.rs +0 -0
  443. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_compaction_integrity.rs +0 -0
  444. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_compiled_where_semantics.rs +0 -0
  445. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_comprehensive.rs +0 -0
  446. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_comprehensive_audit.rs +0 -0
  447. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_concurrent_sql_features.rs +0 -0
  448. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_concurrent_stress.rs +0 -0
  449. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_corruption_recovery.rs +0 -0
  450. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_crash_injection.rs +0 -0
  451. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_crash_recovery.rs +0 -0
  452. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_data_types.rs +0 -0
  453. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_datasets.rs +0 -0
  454. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_db_path_hygiene.rs +0 -0
  455. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_deadlock_stress.rs +0 -0
  456. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_deep_edge.rs +0 -0
  457. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_delete_persist.rs +0 -0
  458. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_differential_correctness.rs +0 -0
  459. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_disk_bloat.rs +0 -0
  460. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_disk_usage.rs +0 -0
  461. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_doctor.rs +0 -0
  462. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_durability.rs +0 -0
  463. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_e2e_crash_and_stress.rs +0 -0
  464. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_edge_cases.rs +0 -0
  465. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_edge_semantics.rs +0 -0
  466. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_episodes.rs +0 -0
  467. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_executemany.rs +0 -0
  468. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_exists_subquery.rs +0 -0
  469. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_explain.rs +0 -0
  470. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_extreme_hunt.rs +0 -0
  471. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_fast_paths.rs +0 -0
  472. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_file_layout.rs +0 -0
  473. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_fts_recovery_staleness.rs +0 -0
  474. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_fuzz_sql_combinations.rs +0 -0
  475. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_global_manifest.rs +0 -0
  476. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_groupby_first_query.rs +0 -0
  477. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_hybrid_search.rs +0 -0
  478. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_index_maintenance.rs +0 -0
  479. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_index_reopen.rs +0 -0
  480. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_index_robustness.rs +0 -0
  481. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_indexed_query_semantics.rs +0 -0
  482. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_insert_engine.rs +0 -0
  483. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_insert_explicit_fastpath.rs +0 -0
  484. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_insert_paths_index_maintenance.rs +0 -0
  485. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_insert_select.rs +0 -0
  486. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_ioctree.rs +0 -0
  487. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_isolation_levels.rs +0 -0
  488. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_join_count_fold.rs +0 -0
  489. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_knn_parallel.rs +0 -0
  490. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_large_rows.rs +0 -0
  491. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_m5_mines.rs +0 -0
  492. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_mcap_import.rs +0 -0
  493. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_memory_leak.rs +0 -0
  494. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_memory_linear.rs +0 -0
  495. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_multimodal.rs +0 -0
  496. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_multimodal_e2e.rs +0 -0
  497. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_mvcc_isolation.rs +0 -0
  498. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_mvcc_recovery.rs +0 -0
  499. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_no_bloat.rs +0 -0
  500. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_optimization_regression.rs +0 -0
  501. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_order_by_expr_keys.rs +0 -0
  502. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_parser_fuzz_regression.rs +0 -0
  503. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_performance_guarantees.rs +0 -0
  504. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_pk_change_semantics.rs +0 -0
  505. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_prepared_dml.rs +0 -0
  506. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_public_api.rs +0 -0
  507. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_query_equivalence.rs +0 -0
  508. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_range_count.rs +0 -0
  509. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_release_readiness.rs +0 -0
  510. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_repro12.rs +0 -0
  511. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_round12_optimizations.rs +0 -0
  512. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_round12b_edge.rs +0 -0
  513. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_round12c_e2e_bugs.rs +0 -0
  514. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_round13_bug_hunt.rs +0 -0
  515. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_row_api.rs +0 -0
  516. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_rrf_hybrid.rs +0 -0
  517. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_savepoint_window.rs +0 -0
  518. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_scalability.rs +0 -0
  519. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_scan_integrity.rs +0 -0
  520. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_semantic_edges.rs +0 -0
  521. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_snapshot.rs +0 -0
  522. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_spatial_index.rs +0 -0
  523. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_spatial_large_geometry.rs +0 -0
  524. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_spatial_sql_semantics.rs +0 -0
  525. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_sql_advanced.rs +0 -0
  526. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_sql_correctness.rs +0 -0
  527. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_sql_correctness_part2.rs +0 -0
  528. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_sql_ddl_features.rs +0 -0
  529. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_sql_errors_edges.rs +0 -0
  530. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_sql_functions.rs +0 -0
  531. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_sql_groupby.rs +0 -0
  532. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_sql_joins.rs +0 -0
  533. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_sql_scenarios.rs +0 -0
  534. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_storage_integrity.rs +0 -0
  535. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_stress.rs +0 -0
  536. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_stress_hunt.rs +0 -0
  537. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_text_ts_search_semantics.rs +0 -0
  538. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_timeseries_index.rs +0 -0
  539. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_timeseries_semantics.rs +0 -0
  540. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_timestamp_recovery.rs +0 -0
  541. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_transaction_semantics.rs +0 -0
  542. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_txn_ddl_and_nan_ordering.rs +0 -0
  543. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_update_perf.rs +0 -0
  544. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_upsert.rs +0 -0
  545. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_v050_features.rs +0 -0
  546. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_vec_m0.rs +0 -0
  547. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_vec_m4.rs +0 -0
  548. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_vector_column_read_paths.rs +0 -0
  549. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_vector_durability.rs +0 -0
  550. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_vector_index_recall.rs +0 -0
  551. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_vector_spatial_text.rs +0 -0
  552. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_vector_visibility.rs +0 -0
  553. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_wide_tables.rs +0 -0
  554. {motedb_python-0.15.0 → motedb_python-0.15.2}/tests/test_write_concurrency.rs +0 -0
@@ -0,0 +1,73 @@
1
+ name: Bug report
2
+ description: Something returns the wrong result, panics, corrupts data or hangs.
3
+ title: "[bug] "
4
+ labels: ["bug"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for the report. Install / import problems have their own template ("Installation problem").
10
+ Security-relevant bugs (crash from crafted input, path traversal, data loss): please use
11
+ private reporting instead — see SECURITY.md.
12
+ - type: input
13
+ id: version
14
+ attributes:
15
+ label: MoteDB version
16
+ description: "`cargo tree -i motedb`, `python -c \"import importlib.metadata as m; print(m.version('motedb-python'))\"`, or `node -p \"require('motedb/package.json').version\"`"
17
+ placeholder: "0.15.0"
18
+ validations:
19
+ required: true
20
+ - type: dropdown
21
+ id: surface
22
+ attributes:
23
+ label: Where you hit it
24
+ options:
25
+ - Rust crate
26
+ - Python (motedb-python)
27
+ - Node.js (motedb)
28
+ - Go binding
29
+ - motedb-cli
30
+ - SQL (any surface)
31
+ validations:
32
+ required: true
33
+ - type: input
34
+ id: platform
35
+ attributes:
36
+ label: Platform
37
+ placeholder: "macOS 15 arm64 / Ubuntu 24.04 x86_64 (glibc) / Alpine 3.20 (musl) / Windows 11 x64"
38
+ validations:
39
+ required: true
40
+ - type: textarea
41
+ id: what
42
+ attributes:
43
+ label: What happened
44
+ description: Actual behaviour, including the full error message or panic backtrace (`RUST_BACKTRACE=1`).
45
+ validations:
46
+ required: true
47
+ - type: textarea
48
+ id: expected
49
+ attributes:
50
+ label: What you expected
51
+ validations:
52
+ required: true
53
+ - type: textarea
54
+ id: repro
55
+ attributes:
56
+ label: Minimal reproduction
57
+ description: |
58
+ The smallest schema + statements (or code) that shows the problem. Starting from an empty
59
+ database is ideal. If it needs an existing database file, say whether you can share it.
60
+ render: sql
61
+ validations:
62
+ required: true
63
+ - type: textarea
64
+ id: logs
65
+ attributes:
66
+ label: Logs
67
+ description: "Output with `RUST_LOG=motedb=debug` (Rust) or the equivalent logger in your language, if relevant."
68
+ render: text
69
+ - type: textarea
70
+ id: config
71
+ attributes:
72
+ label: Configuration
73
+ description: "Preset (`for_edge` / `for_robotics` / `for_embodied` / default) and any overridden `DBConfig` fields, read-only container or not."
@@ -0,0 +1,11 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Questions & usage help
4
+ url: https://github.com/motedb/motedb/discussions/categories/q-a
5
+ about: "\"How do I…\", \"is this expected?\", schema design — ask in Discussions."
6
+ - name: Security vulnerability
7
+ url: https://github.com/motedb/motedb/security/advisories/new
8
+ about: Crash from crafted input, path traversal, silent data loss — report privately (see SECURITY.md).
9
+ - name: Show & tell
10
+ url: https://github.com/motedb/motedb/discussions/categories/show-and-tell
11
+ about: Built something on MoteDB? Robot, pipeline, benchmark — we would love to see it.
@@ -0,0 +1,50 @@
1
+ name: Feature request
2
+ description: A capability MoteDB should have — SQL syntax, an API, a format, a platform.
3
+ title: "[feat] "
4
+ labels: ["enhancement"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Not sure it fits? Open a [Discussion](https://github.com/motedb/motedb/discussions) first.
10
+ Out of scope by design (see `docs/design/`): distributed / clustered mode, a client-server daemon,
11
+ a visualization frontend, full DuckDB-level SQL parity.
12
+ - type: textarea
13
+ id: problem
14
+ attributes:
15
+ label: The problem
16
+ description: What you are trying to do and why the current engine makes it hard. Concrete data shapes (rows, dimensions, rates) help a lot.
17
+ validations:
18
+ required: true
19
+ - type: dropdown
20
+ id: scenario
21
+ attributes:
22
+ label: Scenario
23
+ options:
24
+ - On-robot / edge capture (power-fail safety, low memory)
25
+ - Training-data pipeline (MCAP / LeRobot / Parquet / DataLoader)
26
+ - Retrieval (vector / FTS / hybrid / trajectory)
27
+ - Time series / episodes / alignment (ASOF JOIN etc.)
28
+ - SQL surface / types
29
+ - SDK / bindings / platform support
30
+ - Tooling (CLI, doctor, MCP, observability)
31
+ - Other
32
+ validations:
33
+ required: true
34
+ - type: textarea
35
+ id: proposal
36
+ attributes:
37
+ label: Proposed shape
38
+ description: The SQL or API you would like to write. Pseudocode is fine.
39
+ render: sql
40
+ - type: textarea
41
+ id: alternatives
42
+ attributes:
43
+ label: Alternatives considered
44
+ description: What you do today instead (another tool, a workaround), and why it falls short.
45
+ - type: checkboxes
46
+ id: help
47
+ attributes:
48
+ label: Contribution
49
+ options:
50
+ - label: I am willing to implement this with guidance.
@@ -0,0 +1,64 @@
1
+ name: Installation problem
2
+ description: pip / npm / cargo install fails, or the module does not load.
3
+ title: "[install] "
4
+ labels: ["install"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Please read [docs/18-install-troubleshooting.md](https://github.com/motedb/motedb/blob/main/docs/18-install-troubleshooting.md)
10
+ first — the package names differ per registry (`pip install motedb-python`, `npm install motedb`,
11
+ `cargo add motedb`) and most reports are covered there.
12
+ - type: dropdown
13
+ id: lang
14
+ attributes:
15
+ label: Language
16
+ options:
17
+ - Python (pip install motedb-python)
18
+ - Node.js (npm install motedb)
19
+ - Rust (cargo add motedb)
20
+ - Go (bindings/go)
21
+ validations:
22
+ required: true
23
+ - type: input
24
+ id: version
25
+ attributes:
26
+ label: Version you tried to install
27
+ placeholder: "0.15.0"
28
+ validations:
29
+ required: true
30
+ - type: input
31
+ id: platform
32
+ attributes:
33
+ label: OS / architecture / libc
34
+ description: "`uname -a` (or `ver` on Windows). On Linux say glibc or musl (Alpine)."
35
+ placeholder: "Linux 6.8 aarch64, Debian 12 (glibc 2.36) / Alpine 3.20 (musl) / macOS 15 arm64 / Windows 11 x64"
36
+ validations:
37
+ required: true
38
+ - type: input
39
+ id: runtime
40
+ attributes:
41
+ label: Runtime version
42
+ description: "`python -V && python -m pip --version` / `node -v && npm -v` / `rustc -V && cargo -V`"
43
+ validations:
44
+ required: true
45
+ - type: textarea
46
+ id: command
47
+ attributes:
48
+ label: Exact command
49
+ render: shell
50
+ validations:
51
+ required: true
52
+ - type: textarea
53
+ id: output
54
+ attributes:
55
+ label: Full output
56
+ description: Everything the command printed, unedited. For Node loader errors include `npm ls | grep motedb-`.
57
+ render: text
58
+ validations:
59
+ required: true
60
+ - type: textarea
61
+ id: env
62
+ attributes:
63
+ label: Environment details
64
+ description: "Container / CI image, proxy or private registry mirror, `--no-optional` / `--omit=optional`, pnpm/yarn, virtualenv/conda, anything non-default."
@@ -0,0 +1,29 @@
1
+ <!-- Thanks! Keep the PR focused: one behaviour change per PR. -->
2
+
3
+ ## What
4
+
5
+ <!-- One or two sentences: what changes and why. Link the issue / discussion / design note. -->
6
+
7
+ ## How
8
+
9
+ <!-- The approach, and anything a reviewer should look at first (a tricky invariant, a lock order, a format change). -->
10
+
11
+ ## Checklist
12
+
13
+ - [ ] Tests: new behaviour has a test; a bug fix has a regression test that failed before.
14
+ - [ ] `cargo fmt --check` and `cargo test --lib --all-features` pass locally.
15
+ - [ ] Touched suites pass: `cargo test --test <suite>` (and `CI=1 cargo test --workspace` if the change is broad).
16
+ - [ ] Storage format / WAL / recovery touched → migration test added, `docs/design/2026-10-file-layout.md` rules respected, crash tests run.
17
+ - [ ] SQL surface changed → `README.md` *SQL Support* and `docs/` updated; fuzz template / differential test extended where applicable.
18
+ - [ ] Engine capability added → wired through FFI + Python + Node (+ Go) or the gap is called out below.
19
+ - [ ] New dependency → passes `cargo deny check`, feature-gated if not needed by edge builds.
20
+ - [ ] `CHANGELOG.md` entry under the upcoming version.
21
+ - [ ] No `println!`/`eprintln!` in library code (use the `log` facade macros).
22
+
23
+ ## Performance
24
+
25
+ <!-- Delete if not relevant. Otherwise: `make compete-quick` JSON attached, or "perf gate unchanged". No ad-hoc numbers. -->
26
+
27
+ ## Not in this PR
28
+
29
+ <!-- Follow-ups you deliberately left out, so reviewers do not ask for them. -->
@@ -131,6 +131,7 @@ jobs:
131
131
  # hardware-speed assumptions shared runners can't meet. Tracked in
132
132
  # BENCHMARK.md instead.
133
133
  run: |
134
+ set +e
134
135
  cargo test --workspace --all-features -- \
135
136
  --test-threads=1 \
136
137
  --skip bench_ --skip stress_ --skip perf_ \
@@ -150,13 +151,29 @@ jobs:
150
151
  --skip test_scalability_latency \
151
152
  --skip test_scalability_memory \
152
153
  --skip test_durability_large_dataset_checkpoint_recovery \
153
- --skip test_performance_guarantees
154
+ --skip test_performance_guarantees \
155
+ > /tmp/ci-test.log 2>&1
156
+ rc=$?
157
+ if [ $rc -ne 0 ]; then
158
+ # 🔑 Anonymous-readable failure surface: the trailing `Running
159
+ # tests/…` line before the failure block names the failing
160
+ # binary. (The separate diagnostics step proved unreliable — its
161
+ # `{ } || …` grouping suppressed set -e and silently skipped.)
162
+ grep -E "Running (tests|unittests)|FAILED|panicked at|^failures:" /tmp/ci-test.log \
163
+ | tail -8 | while IFS= read -r line; do
164
+ echo "::error title=integration-fail::$line"
165
+ done
166
+ echo "---- tail of test log ----"
167
+ tail -30 /tmp/ci-test.log
168
+ fi
169
+ exit $rc
154
170
  - name: cargo test (workspace, hardware-threshold tests skipped) [attempt 2]
155
171
  id: ci2
156
172
  if: steps.ci1.outcome == 'failure'
157
173
  env:
158
174
  CI: "1"
159
175
  run: |
176
+ set +e
160
177
  cargo test --workspace --all-features -- \
161
178
  --test-threads=1 \
162
179
  --skip bench_ --skip stress_ --skip perf_ \
@@ -176,7 +193,22 @@ jobs:
176
193
  --skip test_scalability_latency \
177
194
  --skip test_scalability_memory \
178
195
  --skip test_durability_large_dataset_checkpoint_recovery \
179
- --skip test_performance_guarantees
196
+ --skip test_performance_guarantees \
197
+ > /tmp/ci-test.log 2>&1
198
+ rc=$?
199
+ if [ $rc -ne 0 ]; then
200
+ # 🔑 Anonymous-readable failure surface: the trailing `Running
201
+ # tests/…` line before the failure block names the failing
202
+ # binary. (The separate diagnostics step proved unreliable — its
203
+ # `{ } || …` grouping suppressed set -e and silently skipped.)
204
+ grep -E "Running (tests|unittests)|FAILED|panicked at|^failures:" /tmp/ci-test.log \
205
+ | tail -8 | while IFS= read -r line; do
206
+ echo "::error title=integration-fail::$line"
207
+ done
208
+ echo "---- tail of test log ----"
209
+ tail -30 /tmp/ci-test.log
210
+ fi
211
+ exit $rc
180
212
  - name: verdict
181
213
  if: always()
182
214
  run: |
@@ -191,8 +223,12 @@ jobs:
191
223
  # 🔑 K-debug: cargo 顶层一次跑时,crashing binary 会以 exit 101
192
224
  # 中断整个套件且不留 FAILED 行。逐 bin 运行并把每个 bin 的退出码
193
225
  # 通过 ::error:: annotations 上报(匿名可读)。
226
+ # 2026-10-21 修复: 曾有一行多余的 `} || echo …`(未配对大括号)
227
+ # 让本步骤自身以 exit 2 崩溃,逐 bin 上报从未生效过;同时对
228
+ # rc=101(真实测试失败,有 FAILED 行)也提取失败测试名,不再只
229
+ # 处理非 101 的编译错误。
194
230
  {
195
- echo "### mac integration per-binary status"
231
+ echo "### integration per-binary status ($RUNNER_OS)"
196
232
  BINS=$(cargo test --workspace --all-features -- --list 2>/dev/null \
197
233
  | grep -E "^Running|^ " >/dev/null; cargo test --workspace \
198
234
  --all-features --no-run 2>&1 | grep -oE "Executable tests/[a-z0-9_]+\.rs" \
@@ -213,14 +249,13 @@ jobs:
213
249
  --skip test_performance_guarantees --no-fail-fast \
214
250
  > /tmp/one.log 2>&1
215
251
  rc=$?
216
- echo "::error title=mac-integration::$t exit=$rc"
217
- if [ $rc -ne 0 ] && [ $rc -ne 101 ]; then
218
- grep -E "panicked at|FAILED" /tmp/one.log | head -5 \
252
+ echo "::error title=integration-$RUNNER_OS::$t exit=$rc"
253
+ if [ $rc -ne 0 ]; then
254
+ grep -E "^test .* FAILED|^failures:|panicked at" /tmp/one.log | head -8 \
219
255
  | while read -r line; do echo "::error ::$line"; done
220
256
  fi
221
257
  done
222
258
  } || echo "per-binary diagnostics done" >> "$GITHUB_STEP_SUMMARY"
223
- } || echo "diagnostics pass done" >> "$GITHUB_STEP_SUMMARY"
224
259
 
225
260
 
226
261
  # ── Cross-compile: aarch64-unknown-linux-gnu (build only) ────────────────
@@ -0,0 +1,304 @@
1
+ name: Node SDK publish (npm)
2
+
3
+ # Multi-platform prebuilt napi binaries → npmjs.org (unscoped):
4
+ # motedb (main, pure JS loader) + one platform package per target:
5
+ # motedb-darwin-arm64 / -darwin-x64 / -linux-x64-gnu / -linux-arm64-gnu /
6
+ # -win32-x64-msvc
7
+ # Triggers on v* tags (publish) and PRs touching the binding (build-only).
8
+ # 🔑 Publishing needs the NPM_TOKEN repository secret (an npmjs.org automation
9
+ # token with publish rights on the motedb* packages). The publish job fails
10
+ # fast with a clear message when it is missing.
11
+ # musl (Alpine) targets: the Alpine-container build step below is wired up but
12
+ # the two matrix entries stay commented out until a PR run has proven them —
13
+ # `publish` needs every matrix job green, so an unproven target must not be
14
+ # able to block a release. Enable them together with the matching
15
+ # package.json targets/optionalDependencies.
16
+
17
+ on:
18
+ push:
19
+ tags: ["v*"]
20
+ pull_request:
21
+ paths:
22
+ - "bindings/node/**"
23
+ - ".github/workflows/node-publish.yml"
24
+ workflow_dispatch:
25
+
26
+ concurrency:
27
+ group: node-publish-${{ github.ref }}
28
+ cancel-in-progress: true
29
+
30
+ permissions:
31
+ contents: write
32
+ id-token: write
33
+ packages: write
34
+
35
+ jobs:
36
+ build:
37
+ strategy:
38
+ fail-fast: false
39
+ matrix:
40
+ include:
41
+ - os: macos-latest # arm64
42
+ target: aarch64-apple-darwin
43
+ # x64-macOS via CROSS-COMPILE on the arm64 runner — macos-13
44
+ # (Intel) runners are retiring and queue for an hour+; rust
45
+ # cross-compiles x86_64-apple-darwin natively from arm64.
46
+ - os: macos-latest # arm64 → cross x64
47
+ target: x86_64-apple-darwin
48
+ - os: ubuntu-latest # x64 gnu
49
+ target: x86_64-unknown-linux-gnu
50
+ - os: ubuntu-24.04-arm
51
+ target: aarch64-unknown-linux-gnu
52
+ # musl: GitHub runners are glibc, so these build in the napi-rs
53
+ # Alpine image (same recipe as the napi-rs project template; the
54
+ # image carries the aarch64-linux-musl cross toolchain). Commented
55
+ # out until proven by a PR run — see the header note.
56
+ # - os: ubuntu-latest
57
+ # target: x86_64-unknown-linux-musl
58
+ # docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
59
+ # - os: ubuntu-latest
60
+ # target: aarch64-unknown-linux-musl
61
+ # docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine
62
+ - os: windows-latest
63
+ target: x86_64-pc-windows-msvc
64
+ runs-on: ${{ matrix.os }}
65
+ steps:
66
+ - uses: actions/checkout@v4
67
+
68
+ - uses: actions/setup-node@v4
69
+ with:
70
+ node-version: 22
71
+
72
+ - uses: dtolnay/rust-toolchain@stable
73
+ if: ${{ !matrix.docker }}
74
+ with:
75
+ targets: ${{ matrix.target }}
76
+
77
+ - uses: Swatinem/rust-cache@v2
78
+ if: ${{ !matrix.docker }}
79
+ with:
80
+ workspaces: bindings/node
81
+ key: ${{ matrix.target }}
82
+
83
+ - name: Install napi CLI
84
+ if: ${{ !matrix.docker }}
85
+ working-directory: bindings/node
86
+ run: npm install --no-save @napi-rs/cli@3.10.8
87
+
88
+ - name: Build (napi layout)
89
+ if: ${{ !matrix.docker }}
90
+ working-directory: bindings/node
91
+ shell: bash
92
+ run: |
93
+ set -e
94
+ ARGS=(--release --platform --target ${{ matrix.target }} --js false --dts false)
95
+ npx napi build "${ARGS[@]}"
96
+
97
+ - name: Build (napi layout, musl in Alpine container)
98
+ if: ${{ matrix.docker }}
99
+ uses: addnab/docker-run-action@v3
100
+ with:
101
+ image: ${{ matrix.docker }}
102
+ options: -v ${{ github.workspace }}:/build -w /build/bindings/node -e CARGO_TERM_COLOR=always
103
+ run: |
104
+ set -e
105
+ # 容器自带 Node 18, 而 @napi-rs/cli 的依赖树 (@inquirer/core) 已要求
106
+ # Node≥20 (styleText) 且 --no-save 无锁文件每次拉最新 — 曾于 2026-10-20
107
+ # 上游漂移打破构建。装固定版本的官方 musl Node, 消除漂移。
108
+ NODE_ARCH=$(uname -m); [ "$NODE_ARCH" = "x86_64" ] && NODE_ARCH=x64
109
+ NODE_VER=v22.14.0
110
+ wget -qO- "https://nodejs.org/dist/$NODE_VER/node-$NODE_VER-linux-$NODE_ARCH-musl.tar.xz" \
111
+ | tar xJ -C /usr/local --strip-components=1
112
+ node -v | grep -Eq '^v2[2-9]' || { echo "node upgrade failed: $(node -v)"; exit 1; }
113
+ rustup target add ${{ matrix.target }}
114
+ if [ "${{ matrix.target }}" = "aarch64-unknown-linux-musl" ]; then
115
+ # zstd-sys compiles C: point cc + the linker at the image's cross toolchain.
116
+ export CC_aarch64_unknown_linux_musl=aarch64-linux-musl-gcc
117
+ export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-musl-gcc
118
+ fi
119
+ npm install --no-save @napi-rs/cli@3.10.8
120
+ npx napi build --release --platform --target ${{ matrix.target }} --js false --dts false
121
+ if [ "${{ matrix.target }}" = "x86_64-unknown-linux-musl" ]; then
122
+ node smoke_ci.js
123
+ fi
124
+
125
+ - name: Smoke (JS loader)
126
+ if: matrix.target == 'aarch64-apple-darwin' || matrix.target == 'x86_64-unknown-linux-gnu'
127
+ working-directory: bindings/node
128
+ shell: bash
129
+ # smoke_ci.js is committed (also reused by scripts/release_smoke.sh);
130
+ # it requires './index.js' FILE-relative, so run it from the package dir.
131
+ run: node smoke_ci.js
132
+
133
+ - name: Upload binding artifact
134
+ uses: actions/upload-artifact@v4
135
+ with:
136
+ name: bindings-${{ matrix.target }}
137
+ path: bindings/node/*.node
138
+ if-no-files-found: error
139
+
140
+ package:
141
+ needs: build
142
+ runs-on: ubuntu-latest
143
+ steps:
144
+ - uses: actions/checkout@v4
145
+ - uses: actions/setup-node@v4
146
+ with:
147
+ node-version: 22
148
+ - name: Install napi CLI
149
+ working-directory: bindings/node
150
+ run: npm install --no-save @napi-rs/cli@3.10.8
151
+ - name: Create npm dirs
152
+ working-directory: bindings/node
153
+ run: npx napi create-npm-dirs
154
+ - uses: actions/download-artifact@v4
155
+ with:
156
+ path: bindings/node/artifacts
157
+ - name: Place binaries into npm dirs
158
+ working-directory: bindings/node
159
+ shell: bash
160
+ # 🔑 Deterministic placement (napi artifacts misbehaves with
161
+ # cross-compiled targets): match each downloaded .node against the
162
+ # platform package's "main" field, copy, then verify completeness.
163
+ run: |
164
+ set -e
165
+ for d in artifacts/bindings-*; do
166
+ node_file=$(ls "$d"/*.node 2>/dev/null | head -1 || true)
167
+ [ -n "$node_file" ] || { echo "no .node in $d"; ls -la "$d"; exit 1; }
168
+ base=$(basename "$node_file")
169
+ placed=0
170
+ for pkg in npm/*/; do
171
+ main=$(jq -r .main "${pkg}package.json")
172
+ if [ "$main" = "$base" ]; then
173
+ cp "$node_file" "$pkg"
174
+ echo "placed $base -> $pkg"
175
+ placed=1
176
+ fi
177
+ done
178
+ [ "$placed" = 1 ] || { echo "no package wants $base"; exit 1; }
179
+ done
180
+ missing=0
181
+ for pkg in npm/*/; do
182
+ main=$(jq -r .main "${pkg}package.json")
183
+ [ -f "$pkg/$main" ] || { echo "MISSING $pkg/$main"; missing=1; }
184
+ done
185
+ [ "$missing" = 0 ] || exit 1
186
+ ls -R npm | head -40
187
+ - name: Dry-run publish (structure validation only)
188
+ if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
189
+ working-directory: bindings/node
190
+ shell: bash
191
+ run: |
192
+ set -e
193
+ # pre-publish performs REAL npm publishes, so staging (PRs) only
194
+ # validates each platform package with npm publish --dry-run.
195
+ for d in npm/*/; do
196
+ (cd "$d" && npm publish --dry-run --access public) || exit 1
197
+ done
198
+ npm pack --dry-run
199
+
200
+ publish:
201
+ needs: [build, package]
202
+ # workflow_dispatch 允许在 npm 反垃圾拦截后从 main 手动慢速重发 (无需新标签)
203
+ if: startsWith(github.ref, 'refs/tags/v') || github.event_name == 'workflow_dispatch'
204
+ runs-on: ubuntu-latest
205
+ steps:
206
+ - uses: actions/checkout@v4
207
+ - uses: actions/setup-node@v4
208
+ with:
209
+ node-version: 22
210
+ registry-url: https://registry.npmjs.org
211
+ - name: Install napi CLI
212
+ working-directory: bindings/node
213
+ run: npm install --no-save @napi-rs/cli@3.10.8
214
+ - name: Create npm dirs
215
+ working-directory: bindings/node
216
+ run: npx napi create-npm-dirs
217
+ - uses: actions/download-artifact@v4
218
+ with:
219
+ path: bindings/node/artifacts
220
+ - name: Place binaries into npm dirs
221
+ working-directory: bindings/node
222
+ shell: bash
223
+ run: |
224
+ set -e
225
+ for d in artifacts/bindings-*; do
226
+ node_file=$(ls "$d"/*.node 2>/dev/null | head -1 || true)
227
+ [ -n "$node_file" ] || { echo "no .node in $d"; ls -la "$d"; exit 1; }
228
+ base=$(basename "$node_file")
229
+ placed=0
230
+ for pkg in npm/*/; do
231
+ main=$(jq -r .main "${pkg}package.json")
232
+ if [ "$main" = "$base" ]; then
233
+ cp "$node_file" "$pkg"
234
+ echo "placed $base -> $pkg"
235
+ placed=1
236
+ fi
237
+ done
238
+ [ "$placed" = 1 ] || { echo "no package wants $base"; exit 1; }
239
+ done
240
+ missing=0
241
+ for pkg in npm/*/; do
242
+ main=$(jq -r .main "${pkg}package.json")
243
+ [ -f "$pkg/$main" ] || { echo "MISSING $pkg/$main"; missing=1; }
244
+ done
245
+ [ "$missing" = 0 ] || exit 1
246
+ - name: Check NPM_TOKEN is configured
247
+ env:
248
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
249
+ run: |
250
+ if [ -z "$NPM_TOKEN" ]; then
251
+ echo "::error::NPM_TOKEN repository secret is not set — cannot publish to npmjs.org. Create an automation token at https://www.npmjs.com/settings/~/tokens and add it under Settings → Secrets → Actions."
252
+ exit 1
253
+ fi
254
+ - name: Publish platform packages + root
255
+ # 🔑 Plain `npm publish` per package (platform packages first, then the
256
+ # root loader whose optionalDependencies point at them). Auth comes
257
+ # from setup-node's .npmrc + NODE_AUTH_TOKEN. `napi pre-publish` is
258
+ # deliberately NOT used: it assumes a GitHub release flow we don't run.
259
+ # Idempotent + burst-safe: skips versions already on the registry
260
+ # (EPUBLISHCONFLICT would otherwise abort the loop on re-runs) and
261
+ # paces publishes with escalating retries — npm's anti-spam
262
+ # heuristics reject rapid-fire new-package creation from new accounts
263
+ # (v0.15.1 tag run: the one brand-new platform package burned all 3
264
+ # fast retries; a cooldown + re-dispatch is the recovery path).
265
+ working-directory: bindings/node
266
+ env:
267
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
268
+ run: |
269
+ set -e
270
+ pub() {
271
+ local d="$1" name ver try wait
272
+ name=$(jq -r .name "$d/package.json")
273
+ ver=$(jq -r .version "$d/package.json")
274
+ # Compare the PINNED version, not mere existence: after a version
275
+ # bump the old package is on npm but this version is not, and
276
+ # skipping would leave root's optionalDependencies pointing at a
277
+ # version that never ships (E404 for every consumer).
278
+ if npm view "$name@$ver" version >/dev/null 2>&1; then
279
+ echo " $name@$ver already on npm — skip"; return 0
280
+ fi
281
+ # Escalating backoff: anti-spam blocks clear after a cooldown,
282
+ # not immediately — fast retries just burn the attempts.
283
+ for try in 1 2 3 4 5; do
284
+ echo "::group::publish $name@$ver (attempt $try)"
285
+ if (cd "$d" && npm publish --access public); then
286
+ echo "::endgroup::"; echo " published $name@$ver"; return 0
287
+ fi
288
+ echo "::endgroup::"
289
+ [ "$try" = 5 ] && break
290
+ case "$try" in
291
+ 1) wait=120 ;; 2) wait=300 ;; 3) wait=600 ;; *) wait=900 ;;
292
+ esac
293
+ echo " retry in ${wait}s (npm anti-spam/rate heuristics)"; sleep "$wait"
294
+ done
295
+ echo "::error::gave up publishing $name@$ver after 5 attempts"
296
+ return 1
297
+ }
298
+ # 主包最优先 — 它是 `npm install motedb` 的入口; 平台包是
299
+ # optionalDependencies, 单个被 npm 反垃圾拦截不应拖死主包
300
+ # (失败让 job 标红以便跟踪, 但其余包继续发)。
301
+ pub . || exit 1
302
+ rc=0
303
+ for d in npm/*/; do pub "$d" || rc=1; sleep 120; done
304
+ exit $rc