motedb-python 0.15.1__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 (553) hide show
  1. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/workflows/ci.yml +42 -7
  2. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/workflows/node-publish.yml +23 -11
  3. {motedb_python-0.15.1 → motedb_python-0.15.2}/CHANGELOG.md +48 -0
  4. {motedb_python-0.15.1 → motedb_python-0.15.2}/Cargo.lock +362 -3
  5. {motedb_python-0.15.1 → motedb_python-0.15.2}/Cargo.toml +11 -2
  6. {motedb_python-0.15.1 → motedb_python-0.15.2}/Makefile +7 -1
  7. {motedb_python-0.15.1 → motedb_python-0.15.2}/PKG-INFO +1 -1
  8. {motedb_python-0.15.1 → motedb_python-0.15.2}/README.md +10 -0
  9. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/Cargo.lock +505 -4
  10. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/Cargo.toml +2 -1
  11. motedb_python-0.15.2/bindings/python/bench/compete_vec_engines.py +344 -0
  12. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/src/lib.rs +15 -2
  13. motedb_python-0.15.2/bindings/python/tests/test_parquet_lerobot.py +159 -0
  14. motedb_python-0.15.2/docs/19-training-dataloader.md +49 -0
  15. motedb_python-0.15.2/docs/20-mcp.md +40 -0
  16. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/README.md +3 -0
  17. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/design/2026-10-industry-parity-plan.md +38 -3
  18. motedb_python-0.15.2/examples/lerobot_interop.rs +55 -0
  19. motedb_python-0.15.2/examples/parquet_interop.rs +81 -0
  20. motedb_python-0.15.2/examples/torch_dataloader.py +60 -0
  21. {motedb_python-0.15.1 → motedb_python-0.15.2}/pyproject.toml +1 -1
  22. {motedb_python-0.15.1 → motedb_python-0.15.2}/python/motedb/__init__.py +53 -0
  23. motedb_python-0.15.2/python/motedb/mcp.py +190 -0
  24. motedb_python-0.15.2/python/motedb/torch.py +87 -0
  25. motedb_python-0.15.2/scripts/bench_industry.sh +26 -0
  26. motedb_python-0.15.2/scripts/bench_report.py +63 -0
  27. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/api.rs +9 -3
  28. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/core.rs +11 -1
  29. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/crud.rs +6 -36
  30. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/snapshot.rs +12 -2
  31. motedb_python-0.15.2/src/export/lerobot.rs +707 -0
  32. motedb_python-0.15.2/src/export/mod.rs +8 -0
  33. motedb_python-0.15.2/src/export/parquet.rs +608 -0
  34. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/lib.rs +3 -0
  35. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/ast.rs +21 -0
  36. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/executor/mod.rs +110 -0
  37. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/parser.rs +148 -2
  38. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/col_segment/merge.rs +2 -30
  39. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/col_segment/store.rs +3 -49
  40. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/columnar.rs +27 -0
  41. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_corruption_robustness.rs +5 -0
  42. motedb_python-0.15.2/tests/test_lerobot_export.rs +234 -0
  43. motedb_python-0.15.2/tests/test_parquet_roundtrip.rs +208 -0
  44. motedb_python-0.15.2/tests/test_show_indexes_and_open_snapshot.rs +85 -0
  45. motedb_python-0.15.2/tests/test_vector_null_scan.rs +95 -0
  46. {motedb_python-0.15.1 → motedb_python-0.15.2}/.cargo/config.toml +0 -0
  47. {motedb_python-0.15.1 → motedb_python-0.15.2}/.devcontainer/devcontainer.json +0 -0
  48. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  49. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  50. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  51. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/ISSUE_TEMPLATE/install_problem.yml +0 -0
  52. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/pull_request_template.md +0 -0
  53. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/workflows/fuzz.yml +0 -0
  54. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/workflows/perf-gate.yml +0 -0
  55. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/workflows/publish.yml +0 -0
  56. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/workflows/python-wheels.yml +0 -0
  57. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/workflows/release-smoke.yml +0 -0
  58. {motedb_python-0.15.1 → motedb_python-0.15.2}/.github/workflows/site.yml +0 -0
  59. {motedb_python-0.15.1 → motedb_python-0.15.2}/.gitignore +0 -0
  60. {motedb_python-0.15.1 → motedb_python-0.15.2}/.zcode/plans/plan-sess_abb2c954-05fb-477e-9d0a-3e22261e2449.md +0 -0
  61. {motedb_python-0.15.1 → motedb_python-0.15.2}/.zcode/plans/plan-sess_b5937a06-b7bf-4471-9756-dbf2787b263c.md +0 -0
  62. {motedb_python-0.15.1 → motedb_python-0.15.2}/CONTRIBUTING.md +0 -0
  63. {motedb_python-0.15.1 → motedb_python-0.15.2}/LICENSE +0 -0
  64. {motedb_python-0.15.1 → motedb_python-0.15.2}/RELEASE_NOTES.md +0 -0
  65. {motedb_python-0.15.1 → motedb_python-0.15.2}/SECURITY.md +0 -0
  66. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/go/README.md +0 -0
  67. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/go/go.mod +0 -0
  68. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/go/motedb.go +0 -0
  69. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/go/motedb.h +0 -0
  70. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/go/motedb_test.go +0 -0
  71. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/README.md +0 -0
  72. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/README.md +0 -0
  73. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/adversarial_verify.py +0 -0
  74. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/bench_edge.py +0 -0
  75. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/compete_bench.py +0 -0
  76. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/compete_fts_industry.py +0 -0
  77. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/compete_scale.py +0 -0
  78. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/compete_spatial_ts.py +0 -0
  79. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/compete_vec_industry.py +0 -0
  80. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/compete_writes.py +0 -0
  81. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/fts_probe_once.py +0 -0
  82. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/perf_ab.py +0 -0
  83. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/perf_overall.py +0 -0
  84. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/prof_ann.py +0 -0
  85. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/prof_fts.py +0 -0
  86. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/prof_insert.py +0 -0
  87. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/prof_point.py +0 -0
  88. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/prof_real.py +0 -0
  89. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/prof_scale.py +0 -0
  90. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/prof_scale_vec.py +0 -0
  91. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/prof_vec_parallel.py +0 -0
  92. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/resource_bench.py +0 -0
  93. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/resource_bench_2026-09_profile.json +0 -0
  94. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/resource_bench_v0.10.0.json +0 -0
  95. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/spatial_eval.py +0 -0
  96. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/text_eval.py +0 -0
  97. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/ts_eval.py +0 -0
  98. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/bench/vector_recall_eval.py +0 -0
  99. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/build.rs +0 -0
  100. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/e2e/e2e_workload.py +0 -0
  101. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/e2e/test_durability_kwarg.py +0 -0
  102. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/e2e/test_snapshot_export.py +0 -0
  103. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/licenses/LICENSE +0 -0
  104. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/scripts/build_wheel.sh +0 -0
  105. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/data/demo.mcap +0 -0
  106. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_backup.py +0 -0
  107. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_crash_recovery.py +0 -0
  108. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_e2e_cli.py +0 -0
  109. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_e2e_functional.py +0 -0
  110. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_feature_selfcheck.py +0 -0
  111. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_fetch_arrays.py +0 -0
  112. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_fuzz_bigtable.py +0 -0
  113. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_fuzz_differential.py +0 -0
  114. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_insert_arrays.py +0 -0
  115. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_mcap_import.py +0 -0
  116. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_parallel_ab.py +0 -0
  117. {motedb_python-0.15.1 → motedb_python-0.15.2}/bindings/python/tests/test_smoke.py +0 -0
  118. {motedb_python-0.15.1 → motedb_python-0.15.2}/deny.toml +0 -0
  119. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/01-quick-start.md +0 -0
  120. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/02-installation.md +0 -0
  121. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/03-sql-operations.md +0 -0
  122. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/04-batch-operations.md +0 -0
  123. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/05-transactions.md +0 -0
  124. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/06-indexes-overview.md +0 -0
  125. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/07-column-index.md +0 -0
  126. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/08-vector-index.md +0 -0
  127. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/09-text-index.md +0 -0
  128. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/10-spatial-index.md +0 -0
  129. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/11-timestamp-index.md +0 -0
  130. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/12-performance.md +0 -0
  131. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/13-data-types.md +0 -0
  132. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/14-api-reference.md +0 -0
  133. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/15-best-practices.md +0 -0
  134. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/16-faq.md +0 -0
  135. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/17-hybrid-arrow.md +0 -0
  136. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/18-install-troubleshooting.md +0 -0
  137. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/benchmark_methodology.md +0 -0
  138. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/design/2026-10-embodied-roadmap.md +0 -0
  139. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/design/2026-10-file-layout-plan.md +0 -0
  140. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/design/2026-10-file-layout.md +0 -0
  141. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/design/2026-10-good-first-issues.md +0 -0
  142. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/design/2026-10-traj-spike.md +0 -0
  143. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/paper/README.md +0 -0
  144. {motedb_python-0.15.1 → motedb_python-0.15.2}/docs/paper/motedb.tex +0 -0
  145. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_300k.rs +0 -0
  146. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_autocommit_lock.rs +0 -0
  147. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_disk.rs +0 -0
  148. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_exec_only.rs +0 -0
  149. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_insert_engine.rs +0 -0
  150. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_layer.rs +0 -0
  151. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_memory.rs +0 -0
  152. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_multimodal_vs_competitors.rs +0 -0
  153. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_point_read.rs +0 -0
  154. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_profile_hot.rs +0 -0
  155. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_scaling.rs +0 -0
  156. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_stability.rs +0 -0
  157. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/bench_vs_sqlite.rs +0 -0
  158. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/corruption_fuzz.rs +0 -0
  159. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/crud.rs +0 -0
  160. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/differential_fuzz.rs +0 -0
  161. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/file_layout_bench.rs +0 -0
  162. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/gen_test_bag.rs +0 -0
  163. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/hello_world.rs +0 -0
  164. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/join_differential_fuzz.rs +0 -0
  165. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/logging.rs +0 -0
  166. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/perf_smoke.rs +0 -0
  167. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/probe_ckpt.rs +0 -0
  168. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/probe_filter_decomp.rs +0 -0
  169. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/probe_jemalloc.rs +0 -0
  170. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/probe_memory_source.rs +0 -0
  171. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/probe_tail_latency.rs +0 -0
  172. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/text_rank_probe.rs +0 -0
  173. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/traj_spike.rs +0 -0
  174. {motedb_python-0.15.1 → motedb_python-0.15.2}/examples/vector_recall_real.rs +0 -0
  175. {motedb_python-0.15.1 → motedb_python-0.15.2}/licenses/LICENSE +0 -0
  176. {motedb_python-0.15.1 → motedb_python-0.15.2}/scripts/Dockerfile.e2e +0 -0
  177. {motedb_python-0.15.1 → motedb_python-0.15.2}/scripts/compete.sh +0 -0
  178. {motedb_python-0.15.1 → motedb_python-0.15.2}/scripts/docker_e2e.sh +0 -0
  179. {motedb_python-0.15.1 → motedb_python-0.15.2}/scripts/release_smoke.sh +0 -0
  180. {motedb_python-0.15.1 → motedb_python-0.15.2}/scripts/repro_point_query_gap.sh +0 -0
  181. {motedb_python-0.15.1 → motedb_python-0.15.2}/site/index.html +0 -0
  182. {motedb_python-0.15.1 → motedb_python-0.15.2}/site/llms-full.txt +0 -0
  183. {motedb_python-0.15.1 → motedb_python-0.15.2}/site/llms.txt +0 -0
  184. {motedb_python-0.15.1 → motedb_python-0.15.2}/site/robots.txt +0 -0
  185. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/bin/motedb-cli.rs +0 -0
  186. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/cache/mod.rs +0 -0
  187. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/cache/row_cache.rs +0 -0
  188. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/catalog/mod.rs +0 -0
  189. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/catalog/registry.rs +0 -0
  190. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/config.rs +0 -0
  191. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/datasets.rs +0 -0
  192. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/doctor.rs +0 -0
  193. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/helpers.rs +0 -0
  194. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/index_metadata.rs +0 -0
  195. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/indexes/column.rs +0 -0
  196. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/indexes/dashmap_migration.md +0 -0
  197. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/indexes/ioctree.rs +0 -0
  198. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/indexes/mod.rs +0 -0
  199. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/indexes/text.rs +0 -0
  200. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/indexes/timestamp.rs +0 -0
  201. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/indexes/vector.rs +0 -0
  202. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/mem_buffer.rs +0 -0
  203. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/meta_store.rs +0 -0
  204. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/mod.rs +0 -0
  205. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/persistence.rs +0 -0
  206. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/pk_cache.rs +0 -0
  207. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/table.rs +0 -0
  208. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/timeseries.rs +0 -0
  209. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/database/transaction.rs +0 -0
  210. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/distance/cosine.rs +0 -0
  211. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/distance/euclidean.rs +0 -0
  212. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/distance/mod.rs +0 -0
  213. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/error.rs +0 -0
  214. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/ffi.rs +0 -0
  215. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/btree.rs +0 -0
  216. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/btree_generic.rs +0 -0
  217. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/builder.rs +0 -0
  218. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/cached_index.rs +0 -0
  219. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/column_value.rs +0 -0
  220. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/fresh_graph.rs +0 -0
  221. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/ioctree/leaf_store.rs +0 -0
  222. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/ioctree/mod.rs +0 -0
  223. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/ioctree/node.rs +0 -0
  224. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/ioctree/persistence.rs +0 -0
  225. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/ioctree/search.rs +0 -0
  226. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/mod.rs +0 -0
  227. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/primary_key.rs +0 -0
  228. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/text_dictionary.rs +0 -0
  229. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/text_encoding.rs +0 -0
  230. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/text_fts.rs +0 -0
  231. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/text_query.rs +0 -0
  232. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/text_types.rs +0 -0
  233. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/tokenizers.rs +0 -0
  234. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/vamana/config.rs +0 -0
  235. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/vamana/disk_graph.rs +0 -0
  236. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/vamana/diskann_index.rs +0 -0
  237. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/vamana/mod.rs +0 -0
  238. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/vamana/pruner.rs +0 -0
  239. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/vamana/sq8.rs +0 -0
  240. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/index/vamana/sq8_vectors.rs +0 -0
  241. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/mcap_import.rs +0 -0
  242. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/platform_io.rs +0 -0
  243. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/evaluator.rs +0 -0
  244. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/executor/agg.rs +0 -0
  245. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/executor/join.rs +0 -0
  246. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/executor/scan.rs +0 -0
  247. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/join/hash_join.rs +0 -0
  248. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/join/index_join.rs +0 -0
  249. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/join/mod.rs +0 -0
  250. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/lexer.rs +0 -0
  251. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/mod.rs +0 -0
  252. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/optimizer.rs +0 -0
  253. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/row_converter.rs +0 -0
  254. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/token.rs +0 -0
  255. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/sql/vector_exec.rs +0 -0
  256. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/checksum.rs +0 -0
  257. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/col_segment/manifest.rs +0 -0
  258. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/col_segment/mod.rs +0 -0
  259. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/col_segment/segment.rs +0 -0
  260. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/colbatch.rs +0 -0
  261. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/columnar/column_encoding.rs +0 -0
  262. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/columnar/config.rs +0 -0
  263. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/columnar/gorilla.rs +0 -0
  264. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/columnar/mod.rs +0 -0
  265. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/columnar/segment.rs +0 -0
  266. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/columnar/segment_manager.rs +0 -0
  267. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/columnar/store.rs +0 -0
  268. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/columnar/write_buffer.rs +0 -0
  269. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/file_manager.rs +0 -0
  270. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/blobstore.rs +0 -0
  271. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/bloom.rs +0 -0
  272. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/compaction.rs +0 -0
  273. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/engine.rs +0 -0
  274. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/memtable.rs +0 -0
  275. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/merging_iterator.rs +0 -0
  276. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/mod.rs +0 -0
  277. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/sstable.rs +0 -0
  278. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/lsm/unified_memtable.rs +0 -0
  279. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/manifest/manifest.rs +0 -0
  280. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/manifest/mod.rs +0 -0
  281. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/manifest/version.rs +0 -0
  282. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/mod.rs +0 -0
  283. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/storage/row_format.rs +0 -0
  284. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/txn/coordinator.rs +0 -0
  285. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/txn/lock_manager.rs +0 -0
  286. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/txn/mod.rs +0 -0
  287. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/txn/mvcc.rs +0 -0
  288. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/txn/recovery.rs +0 -0
  289. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/txn/version_store.rs +0 -0
  290. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/txn/wal.rs +0 -0
  291. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/types/comp_sum.rs +0 -0
  292. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/types/mod.rs +0 -0
  293. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/types/spatial.rs +0 -0
  294. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/types/table.rs +0 -0
  295. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/types/tensor.rs +0 -0
  296. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/types/text.rs +0 -0
  297. {motedb_python-0.15.1 → motedb_python-0.15.2}/src/types/timestamp.rs +0 -0
  298. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/acid_test.rs +0 -0
  299. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_2m.rs +0 -0
  300. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_acid.rs +0 -0
  301. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_batch_ops.rs +0 -0
  302. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_compare.rs +0 -0
  303. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_comprehensive.rs +0 -0
  304. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_concurrent.rs +0 -0
  305. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_index_ops.rs +0 -0
  306. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_multimodal.rs +0 -0
  307. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_multimodal_full.rs +0 -0
  308. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_multimodal_ops.rs +0 -0
  309. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_perf_report.rs +0 -0
  310. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_quick_baseline.rs +0 -0
  311. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_release.rs +0 -0
  312. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_report.rs +0 -0
  313. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_resource.rs +0 -0
  314. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_sql_queries.rs +0 -0
  315. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_timeseries_index.rs +0 -0
  316. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_v060_report.rs +0 -0
  317. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_vs_sqlite_100k.rs +0 -0
  318. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/bench_vs_sqlite_v05.rs +0 -0
  319. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/common/mod.rs +0 -0
  320. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/durability_probe.rs +0 -0
  321. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/fts_probe.rs +0 -0
  322. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/perf_test.rs +0 -0
  323. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/repro_multirow_update_fts.rs +0 -0
  324. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/repro_point_gap.rs +0 -0
  325. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/stress_300k.rs +0 -0
  326. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/stress_test.rs +0 -0
  327. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_acid_audit.rs +0 -0
  328. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_acid_comprehensive.rs +0 -0
  329. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_advanced_hunt.rs +0 -0
  330. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_api_correctness.rs +0 -0
  331. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_asof_join.rs +0 -0
  332. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_auto_checkpoint_segments.rs +0 -0
  333. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_backup.rs +0 -0
  334. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_blob_type.rs +0 -0
  335. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_btree_integrity.rs +0 -0
  336. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt.rs +0 -0
  337. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt2.rs +0 -0
  338. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt3.rs +0 -0
  339. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt4.rs +0 -0
  340. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt5.rs +0 -0
  341. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt6.rs +0 -0
  342. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt7.rs +0 -0
  343. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v10.rs +0 -0
  344. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v100.rs +0 -0
  345. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v101.rs +0 -0
  346. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v11.rs +0 -0
  347. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v12.rs +0 -0
  348. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v13.rs +0 -0
  349. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v14.rs +0 -0
  350. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v15.rs +0 -0
  351. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v16.rs +0 -0
  352. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v17_cte.rs +0 -0
  353. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v18.rs +0 -0
  354. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v19.rs +0 -0
  355. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v2.rs +0 -0
  356. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v20.rs +0 -0
  357. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v21.rs +0 -0
  358. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v22.rs +0 -0
  359. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v23.rs +0 -0
  360. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v24.rs +0 -0
  361. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v25.rs +0 -0
  362. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v26.rs +0 -0
  363. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v27.rs +0 -0
  364. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v28.rs +0 -0
  365. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v29.rs +0 -0
  366. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v3.rs +0 -0
  367. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v30.rs +0 -0
  368. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v31.rs +0 -0
  369. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v32.rs +0 -0
  370. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v33.rs +0 -0
  371. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v34.rs +0 -0
  372. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v35.rs +0 -0
  373. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v36.rs +0 -0
  374. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v38.rs +0 -0
  375. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v39.rs +0 -0
  376. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v4.rs +0 -0
  377. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v40.rs +0 -0
  378. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v43.rs +0 -0
  379. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v45.rs +0 -0
  380. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v48.rs +0 -0
  381. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v49.rs +0 -0
  382. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v5.rs +0 -0
  383. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v50.rs +0 -0
  384. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v51.rs +0 -0
  385. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v52.rs +0 -0
  386. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v53.rs +0 -0
  387. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v54.rs +0 -0
  388. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v55.rs +0 -0
  389. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v56.rs +0 -0
  390. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v57.rs +0 -0
  391. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v58.rs +0 -0
  392. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v59.rs +0 -0
  393. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v6.rs +0 -0
  394. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v60.rs +0 -0
  395. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v61.rs +0 -0
  396. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v62.rs +0 -0
  397. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v63.rs +0 -0
  398. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v64.rs +0 -0
  399. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v65.rs +0 -0
  400. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v66.rs +0 -0
  401. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v67.rs +0 -0
  402. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v68.rs +0 -0
  403. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v69.rs +0 -0
  404. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v7.rs +0 -0
  405. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v70.rs +0 -0
  406. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v71.rs +0 -0
  407. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v72.rs +0 -0
  408. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v73.rs +0 -0
  409. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v74.rs +0 -0
  410. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v75.rs +0 -0
  411. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v76.rs +0 -0
  412. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v77.rs +0 -0
  413. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v78.rs +0 -0
  414. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v79.rs +0 -0
  415. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v8.rs +0 -0
  416. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v80.rs +0 -0
  417. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v81.rs +0 -0
  418. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v82.rs +0 -0
  419. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v83.rs +0 -0
  420. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v84.rs +0 -0
  421. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v85.rs +0 -0
  422. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v86.rs +0 -0
  423. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v87.rs +0 -0
  424. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v88.rs +0 -0
  425. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v89.rs +0 -0
  426. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v9.rs +0 -0
  427. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v90.rs +0 -0
  428. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v91.rs +0 -0
  429. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v92.rs +0 -0
  430. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v93.rs +0 -0
  431. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v94.rs +0 -0
  432. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v95.rs +0 -0
  433. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v96.rs +0 -0
  434. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v97.rs +0 -0
  435. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v98.rs +0 -0
  436. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_bug_hunt_v99.rs +0 -0
  437. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_col_segment.rs +0 -0
  438. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_col_segment_fastpaths.rs +0 -0
  439. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_columnar.rs +0 -0
  440. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_columnar_acid.rs +0 -0
  441. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_compact_storage.rs +0 -0
  442. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_compaction_integrity.rs +0 -0
  443. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_compiled_where_semantics.rs +0 -0
  444. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_comprehensive.rs +0 -0
  445. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_comprehensive_audit.rs +0 -0
  446. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_concurrent_sql_features.rs +0 -0
  447. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_concurrent_stress.rs +0 -0
  448. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_corruption_recovery.rs +0 -0
  449. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_crash_injection.rs +0 -0
  450. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_crash_recovery.rs +0 -0
  451. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_data_types.rs +0 -0
  452. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_datasets.rs +0 -0
  453. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_db_path_hygiene.rs +0 -0
  454. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_deadlock_stress.rs +0 -0
  455. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_deep_edge.rs +0 -0
  456. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_delete_persist.rs +0 -0
  457. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_differential_correctness.rs +0 -0
  458. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_disk_bloat.rs +0 -0
  459. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_disk_usage.rs +0 -0
  460. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_doctor.rs +0 -0
  461. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_durability.rs +0 -0
  462. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_e2e_crash_and_stress.rs +0 -0
  463. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_edge_cases.rs +0 -0
  464. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_edge_semantics.rs +0 -0
  465. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_episodes.rs +0 -0
  466. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_executemany.rs +0 -0
  467. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_exists_subquery.rs +0 -0
  468. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_explain.rs +0 -0
  469. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_extreme_hunt.rs +0 -0
  470. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_fast_paths.rs +0 -0
  471. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_file_layout.rs +0 -0
  472. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_fts_recovery_staleness.rs +0 -0
  473. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_fuzz_sql_combinations.rs +0 -0
  474. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_global_manifest.rs +0 -0
  475. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_groupby_first_query.rs +0 -0
  476. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_hybrid_search.rs +0 -0
  477. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_index_maintenance.rs +0 -0
  478. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_index_reopen.rs +0 -0
  479. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_index_robustness.rs +0 -0
  480. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_indexed_query_semantics.rs +0 -0
  481. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_insert_engine.rs +0 -0
  482. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_insert_explicit_fastpath.rs +0 -0
  483. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_insert_paths_index_maintenance.rs +0 -0
  484. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_insert_select.rs +0 -0
  485. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_ioctree.rs +0 -0
  486. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_isolation_levels.rs +0 -0
  487. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_join_count_fold.rs +0 -0
  488. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_knn_parallel.rs +0 -0
  489. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_large_rows.rs +0 -0
  490. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_m5_mines.rs +0 -0
  491. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_mcap_import.rs +0 -0
  492. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_memory_leak.rs +0 -0
  493. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_memory_linear.rs +0 -0
  494. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_multimodal.rs +0 -0
  495. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_multimodal_e2e.rs +0 -0
  496. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_mvcc_isolation.rs +0 -0
  497. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_mvcc_recovery.rs +0 -0
  498. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_no_bloat.rs +0 -0
  499. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_optimization_regression.rs +0 -0
  500. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_order_by_expr_keys.rs +0 -0
  501. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_parser_fuzz_regression.rs +0 -0
  502. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_performance_guarantees.rs +0 -0
  503. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_pk_change_semantics.rs +0 -0
  504. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_prepared_dml.rs +0 -0
  505. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_public_api.rs +0 -0
  506. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_query_equivalence.rs +0 -0
  507. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_range_count.rs +0 -0
  508. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_release_readiness.rs +0 -0
  509. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_repro12.rs +0 -0
  510. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_round12_optimizations.rs +0 -0
  511. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_round12b_edge.rs +0 -0
  512. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_round12c_e2e_bugs.rs +0 -0
  513. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_round13_bug_hunt.rs +0 -0
  514. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_row_api.rs +0 -0
  515. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_rrf_hybrid.rs +0 -0
  516. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_savepoint_window.rs +0 -0
  517. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_scalability.rs +0 -0
  518. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_scan_integrity.rs +0 -0
  519. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_semantic_edges.rs +0 -0
  520. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_snapshot.rs +0 -0
  521. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_spatial_index.rs +0 -0
  522. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_spatial_large_geometry.rs +0 -0
  523. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_spatial_sql_semantics.rs +0 -0
  524. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_sql_advanced.rs +0 -0
  525. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_sql_correctness.rs +0 -0
  526. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_sql_correctness_part2.rs +0 -0
  527. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_sql_ddl_features.rs +0 -0
  528. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_sql_errors_edges.rs +0 -0
  529. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_sql_functions.rs +0 -0
  530. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_sql_groupby.rs +0 -0
  531. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_sql_joins.rs +0 -0
  532. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_sql_scenarios.rs +0 -0
  533. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_storage_integrity.rs +0 -0
  534. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_stress.rs +0 -0
  535. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_stress_hunt.rs +0 -0
  536. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_text_ts_search_semantics.rs +0 -0
  537. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_timeseries_index.rs +0 -0
  538. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_timeseries_semantics.rs +0 -0
  539. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_timestamp_recovery.rs +0 -0
  540. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_transaction_semantics.rs +0 -0
  541. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_txn_ddl_and_nan_ordering.rs +0 -0
  542. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_update_perf.rs +0 -0
  543. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_upsert.rs +0 -0
  544. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_v050_features.rs +0 -0
  545. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_vec_m0.rs +0 -0
  546. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_vec_m4.rs +0 -0
  547. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_vector_column_read_paths.rs +0 -0
  548. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_vector_durability.rs +0 -0
  549. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_vector_index_recall.rs +0 -0
  550. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_vector_spatial_text.rs +0 -0
  551. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_vector_visibility.rs +0 -0
  552. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_wide_tables.rs +0 -0
  553. {motedb_python-0.15.1 → motedb_python-0.15.2}/tests/test_write_concurrency.rs +0 -0
@@ -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) ────────────────
@@ -256,17 +256,19 @@ jobs:
256
256
  # root loader whose optionalDependencies point at them). Auth comes
257
257
  # from setup-node's .npmrc + NODE_AUTH_TOKEN. `napi pre-publish` is
258
258
  # deliberately NOT used: it assumes a GitHub release flow we don't run.
259
- # Idempotent + burst-safe: skips packages already on the registry
259
+ # Idempotent + burst-safe: skips versions already on the registry
260
260
  # (EPUBLISHCONFLICT would otherwise abort the loop on re-runs) and
261
- # paces publishes ~3 min apart with retries — npm's anti-spam
262
- # heuristics reject rapid-fire new-package creation from new accounts.
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).
263
265
  working-directory: bindings/node
264
266
  env:
265
267
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
266
268
  run: |
267
269
  set -e
268
270
  pub() {
269
- local d="$1" name ver try
271
+ local d="$1" name ver try wait
270
272
  name=$(jq -r .name "$d/package.json")
271
273
  ver=$(jq -r .version "$d/package.json")
272
274
  # Compare the PINNED version, not mere existence: after a version
@@ -276,17 +278,27 @@ jobs:
276
278
  if npm view "$name@$ver" version >/dev/null 2>&1; then
277
279
  echo " $name@$ver already on npm — skip"; return 0
278
280
  fi
279
- for try in 1 2 3; do
280
- echo "::group::publish $name (attempt $try)"
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)"
281
285
  if (cd "$d" && npm publish --access public); then
282
- echo "::endgroup::"; echo " published $name"; return 0
286
+ echo "::endgroup::"; echo " published $name@$ver"; return 0
283
287
  fi
284
288
  echo "::endgroup::"
285
- [ "$try" = 3 ] && break
286
- echo " retry in 180s (npm anti-spam/rate heuristics)"; sleep 180
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"
287
294
  done
288
- echo "::error::gave up publishing $name after 3 attempts"
295
+ echo "::error::gave up publishing $name@$ver after 5 attempts"
289
296
  return 1
290
297
  }
291
- for d in npm/*/; do pub "$d" || exit 1; sleep 90; done
298
+ # 主包最优先 — 它是 `npm install motedb` 的入口; 平台包是
299
+ # optionalDependencies, 单个被 npm 反垃圾拦截不应拖死主包
300
+ # (失败让 job 标红以便跟踪, 但其余包继续发)。
292
301
  pub . || exit 1
302
+ rc=0
303
+ for d in npm/*/; do pub "$d" || rc=1; sleep 120; done
304
+ exit $rc
@@ -1,5 +1,53 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.15.2] — 2026-10-22
4
+
5
+ ### 功能测试轮修复 (2026-10-22 外部功能测试 24/27 → 全绿)
6
+
7
+ - **🔴 P0 Node 浮点参数静默截断**: `arr.get::<i64>` 对 JS double 不报错而是
8
+ 向零截断(9.9→9, 1e-7→0, 123.456→123), f64 分支不可达 — 任何 `?` 传入的
9
+ 非整数 number 全部损坏(FLOAT/DOUBLE 列通杀)。BigInt 更写 9 读 null。
10
+ 修复 = f64 先探(napi 严格语义对非 number 干净失败)按 fract() 分流
11
+ Integer/Float(≤2^53), BigInt 走 get_i64 无损转换(超范围显式报错)。
12
+ smoke_ci.js 回归: 9.9/-2.75/1e-7/2.0/123n 逐值断言
13
+ - **快照往还(ENOENT / already exists)**: resolve_open_path 的目录判定标记
14
+ 还是旧布局(lsm/||wal/) — P1 惰性布局的解包快照(首写前无 wal/)判定不中,
15
+ 落到"兄弟 .mote"规则打开不存在的路径。Python 的 import_snapshot 同中
16
+ (观感即"Python 没有快照 API")。修复 = 标记集扩为 meta.bin/columnar_ms/
17
+ lsm/wal; unpack 接受已存在的**空** dest 目录(mkdir-then-import 自然用法),
18
+ 非空仍拒。Node openSnapshot/Python import_snapshot/Rust open_snapshot 三路
19
+ 往返回归全绿; Python 加 export_snapshot 别名(与 Node/Rust 命名对齐,
20
+ 原生名 export_to 保留)
21
+ - **SHOW INDEXES [FROM t]**: 引擎语法新增(parser 原只认 SHOW TABLES), 数据
22
+ 源为权威的 index_registry(TableSchema::indexes 不维护); 输出
23
+ Table/Index/Column/Type 四列
24
+
25
+ ### 训练生态互操作 (Phase 1 §5/§6, docs/design/2026-10-industry-parity-plan.md)
26
+
27
+ - **🔑 Parquet 双向**: `EXPORT TABLE t TO 'x.parquet'` / `IMPORT PARQUET 'x'
28
+ INTO t` — 全类型往返(INT/FLOAT/BOOL/TEXT/TIMESTAMP/VECTOR→FixedSizeList<
29
+ f32>/BLOB→Binary), NULL 保留, 按列名映射(乱序/子集/缺列补 NULL), 有损方向
30
+ 报错; arrow-array/schema/parquet 59.3.1(MSRV 1.85), feature `parquet`
31
+ 默认开(default-edge 可关)。pyarrow 双向互认实测。Python: `export_parquet` /
32
+ `import_parquet`
33
+ - **🔑 EXPORT LEROBOT**: EPISODE 表 → LeRobot v3 数据集目录(官方 writer 逐文件
34
+ 定标), 官方 `LeRobotDataset` 加载互认实测 — MCAP→SQL→训练管线打通。Python:
35
+ `export_lerobot(table, dir, fps, tasks=)`
36
+ - **修复(数据丢失级)**: 含 NULL 向量的表, 无 WHERE 全表扫描整列静默变 NULL,
37
+ 且 compaction 将丢失永久写回 — read_vectors/read_spatial 的 7 处只前进线性
38
+ 归并改为 `scatter_by_row_id` 精确散射; 回归测试 ×2
39
+ - **PyTorch DataLoader**: `from motedb.torch import MoteDataset` — 列式一次
40
+ 载入 + 逐行零拷贝视图, fork-safe; docs/19 + examples/torch_dataloader.py
41
+ - **🔑 MCP server (§8)**: `python -m motedb.mcp <db>` — stdio JSON-RPC,
42
+ 6 个 tools(list_tables/describe/query/vector_search/episodes/doctor);
43
+ 引擎级只读门(Database(read_only=True), 写被引擎拒绝而非字符串嗅探),
44
+ 多读者共存。docs/20-mcp.md; pyo3 构造器新增 read_only kwarg
45
+ - **🔑 多引擎公开基准 (§7)**: `make bench-industry` — MoteDB vs FAISS/
46
+ LanceDB/sqlite-vec/DuckDB-VSS/usearch, 同语料同暴力 ground truth,
47
+ N/DIM 规模参数化, 方法学随数据发布(含不利行)。220K×384 实测: MoteDB
48
+ DiskANN recall@10 1.0000 / p50 0.57ms。docs/benchmark_report_2026-10-21.md
49
+ - CI: 测试步骤失败时直接发逐行注解(替代从未生效的独立诊断步骤)
50
+
3
51
  ## [0.15.1] — 2026-10-20
4
52
 
5
53
  发布渠道与安装体验 patch(docs/design/2026-10-industry-parity-plan.md Phase 0)。