motedb-python 0.15.1__tar.gz → 0.16.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (646) hide show
  1. motedb_python-0.16.0/.github/FUNDING.yml +11 -0
  2. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/workflows/ci.yml +52 -8
  3. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/workflows/node-publish.yml +23 -11
  4. motedb_python-0.16.0/CAPABILITIES.md +178 -0
  5. {motedb_python-0.15.1 → motedb_python-0.16.0}/CHANGELOG.md +118 -0
  6. motedb_python-0.16.0/CODE_OF_CONDUCT.md +105 -0
  7. {motedb_python-0.15.1 → motedb_python-0.16.0}/Cargo.lock +362 -3
  8. {motedb_python-0.15.1 → motedb_python-0.16.0}/Cargo.toml +11 -2
  9. motedb_python-0.16.0/GOVERNANCE.md +153 -0
  10. {motedb_python-0.15.1 → motedb_python-0.16.0}/Makefile +7 -1
  11. {motedb_python-0.15.1 → motedb_python-0.16.0}/PKG-INFO +1 -1
  12. {motedb_python-0.15.1 → motedb_python-0.16.0}/README.md +16 -3
  13. motedb_python-0.16.0/ROADMAP.md +151 -0
  14. motedb_python-0.16.0/VERSIONING.md +49 -0
  15. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/Cargo.lock +505 -4
  16. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/Cargo.toml +2 -1
  17. motedb_python-0.16.0/bindings/python/bench/compete_vec_engines.py +344 -0
  18. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/e2e/e2e_workload.py +40 -0
  19. motedb_python-0.16.0/bindings/python/e2e/test_mcp_stdio.py +98 -0
  20. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/src/lib.rs +40 -2
  21. motedb_python-0.16.0/bindings/python/tests/test_parquet_lerobot.py +159 -0
  22. motedb_python-0.16.0/community/README.md +160 -0
  23. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/01-quick-start.md +1 -1
  24. motedb_python-0.16.0/docs/03-sql-operations.md +361 -0
  25. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/05-transactions.md +14 -0
  26. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/08-vector-index.md +49 -0
  27. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/09-text-index.md +30 -0
  28. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/10-spatial-index.md +9 -10
  29. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/13-data-types.md +28 -7
  30. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/14-api-reference.md +52 -1
  31. motedb_python-0.16.0/docs/17-hybrid-arrow.md +52 -0
  32. motedb_python-0.16.0/docs/19-training-dataloader.md +49 -0
  33. motedb_python-0.16.0/docs/20-mcp.md +40 -0
  34. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/README.md +4 -1
  35. motedb_python-0.16.0/docs/api/public-api-baseline.txt +9480 -0
  36. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/design/2026-10-industry-parity-plan.md +109 -15
  37. motedb_python-0.16.0/docs/design/2026-10-order-by-internals.md +248 -0
  38. motedb_python-0.16.0/docs/design/2026-10-txn-fix-log.md +170 -0
  39. motedb_python-0.16.0/examples/lerobot_interop.rs +55 -0
  40. motedb_python-0.16.0/examples/parquet_interop.rs +81 -0
  41. motedb_python-0.16.0/examples/torch_dataloader.py +60 -0
  42. {motedb_python-0.15.1 → motedb_python-0.16.0}/pyproject.toml +1 -1
  43. {motedb_python-0.15.1 → motedb_python-0.16.0}/python/motedb/__init__.py +53 -0
  44. motedb_python-0.16.0/python/motedb/mcp.py +204 -0
  45. motedb_python-0.16.0/python/motedb/torch.py +87 -0
  46. motedb_python-0.16.0/scripts/bench_industry.sh +26 -0
  47. motedb_python-0.16.0/scripts/bench_report.py +63 -0
  48. motedb_python-0.16.0/scripts/check_public_api.sh +49 -0
  49. motedb_python-0.16.0/scripts/gen_format_fixture.rs +57 -0
  50. motedb_python-0.16.0/scripts/gen_format_fixtures.sh +32 -0
  51. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/api.rs +17 -7
  52. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/bin/motedb-cli.rs +4 -0
  53. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/cache/row_cache.rs +64 -1
  54. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/catalog/registry.rs +42 -2
  55. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/core.rs +53 -1
  56. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/crud.rs +158 -75
  57. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/indexes/timestamp.rs +7 -7
  58. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/indexes/vector.rs +53 -1
  59. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/snapshot.rs +12 -2
  60. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/transaction.rs +208 -89
  61. motedb_python-0.16.0/src/export/lerobot.rs +707 -0
  62. motedb_python-0.16.0/src/export/mod.rs +8 -0
  63. motedb_python-0.16.0/src/export/parquet.rs +625 -0
  64. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/cached_index.rs +1 -0
  65. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/text_fts.rs +4 -2
  66. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/tokenizers.rs +46 -0
  67. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/vamana/config.rs +9 -0
  68. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/vamana/disk_graph.rs +57 -15
  69. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/vamana/diskann_index.rs +32 -13
  70. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/vamana/sq8_vectors.rs +33 -0
  71. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/lib.rs +3 -0
  72. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/ast.rs +117 -6
  73. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/evaluator.rs +133 -34
  74. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/executor/agg.rs +5 -1
  75. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/executor/mod.rs +1306 -238
  76. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/executor/scan.rs +77 -14
  77. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/lexer.rs +26 -0
  78. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/parser.rs +394 -10
  79. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/row_converter.rs +7 -54
  80. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/vector_exec.rs +43 -9
  81. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/col_segment/merge.rs +25 -31
  82. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/col_segment/segment.rs +9 -1
  83. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/col_segment/store.rs +506 -150
  84. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/colbatch.rs +16 -1
  85. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/columnar.rs +263 -3
  86. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/row_format.rs +56 -0
  87. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/txn/coordinator.rs +30 -0
  88. motedb_python-0.16.0/src/types/date.rs +146 -0
  89. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/types/mod.rs +42 -0
  90. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/types/table.rs +70 -0
  91. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/types/timestamp.rs +44 -9
  92. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/.lock +0 -0
  93. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/catalog.bin +0 -0
  94. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/columnar_ms/mig/0000000001.sst +0 -0
  95. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/columnar_ms/mig/MANIFEST +0 -0
  96. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/columnar_ms/mig_vec/0000000001.sst +0 -0
  97. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/columnar_ms/mig_vec/MANIFEST +0 -0
  98. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/fts_indexes.fresh +1 -0
  99. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/indexes/timestamp.idx +0 -0
  100. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/lsm/blobs/00000001.blob +0 -0
  101. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/lsn_counter +0 -0
  102. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/wal/partition_0.wal +0 -0
  103. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/wal/partition_1.wal +0 -0
  104. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/wal/partition_2.wal +0 -0
  105. motedb_python-0.16.0/tests/fixtures/formats/v0.12.9/db.mote/wal/partition_3.wal +0 -0
  106. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/.lock +0 -0
  107. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/catalog.bin +0 -0
  108. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/columnar_ms/mig/0000000001.sst +0 -0
  109. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/columnar_ms/mig/MANIFEST +0 -0
  110. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/columnar_ms/mig_vec/0000000001.sst +0 -0
  111. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/columnar_ms/mig_vec/MANIFEST +0 -0
  112. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/fts_indexes.fresh +1 -0
  113. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/indexes/timestamp.idx +0 -0
  114. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/lsm/blobs/00000001.blob +0 -0
  115. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/lsn_counter +0 -0
  116. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/wal/partition_0.wal +0 -0
  117. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/wal/partition_1.wal +0 -0
  118. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/wal/partition_2.wal +0 -0
  119. motedb_python-0.16.0/tests/fixtures/formats/v0.13.0/db.mote/wal/partition_3.wal +0 -0
  120. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/.lock +0 -0
  121. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/catalog.bin +0 -0
  122. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/columnar_ms/mig/0000000001.sst +0 -0
  123. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/columnar_ms/mig/MANIFEST +0 -0
  124. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/columnar_ms/mig_vec/0000000001.sst +0 -0
  125. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/columnar_ms/mig_vec/MANIFEST +0 -0
  126. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/fts_indexes.fresh +1 -0
  127. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/indexes/timestamp.idx +0 -0
  128. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/lsm/blobs/00000001.blob +0 -0
  129. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/lsn_counter +0 -0
  130. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/wal/partition_0.wal +0 -0
  131. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/wal/partition_1.wal +0 -0
  132. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/wal/partition_2.wal +0 -0
  133. motedb_python-0.16.0/tests/fixtures/formats/v0.14.0/db.mote/wal/partition_3.wal +0 -0
  134. motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/.lock +0 -0
  135. motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/columnar_ms/MANIFEST +0 -0
  136. motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/columnar_ms/mig/0000000001.sst +0 -0
  137. motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/columnar_ms/mig_vec/0000000001.sst +0 -0
  138. motedb_python-0.16.0/tests/fixtures/formats/v0.15.2/db.mote/meta.bin +0 -0
  139. motedb_python-0.16.0/tests/test_blob_where.rs +156 -0
  140. motedb_python-0.16.0/tests/test_bug_hunt_v102.rs +279 -0
  141. motedb_python-0.16.0/tests/test_bug_hunt_v103.rs +201 -0
  142. motedb_python-0.16.0/tests/test_bug_hunt_v104.rs +332 -0
  143. motedb_python-0.16.0/tests/test_bug_hunt_v105.rs +272 -0
  144. motedb_python-0.16.0/tests/test_bug_hunt_v106.rs +201 -0
  145. motedb_python-0.16.0/tests/test_bug_hunt_v107.rs +228 -0
  146. motedb_python-0.16.0/tests/test_bug_hunt_v108.rs +242 -0
  147. motedb_python-0.16.0/tests/test_bug_hunt_v110.rs +432 -0
  148. motedb_python-0.16.0/tests/test_bug_hunt_v111.rs +459 -0
  149. motedb_python-0.16.0/tests/test_bug_hunt_v112.rs +366 -0
  150. motedb_python-0.16.0/tests/test_bug_hunt_v113.rs +410 -0
  151. motedb_python-0.16.0/tests/test_bug_hunt_v114.rs +269 -0
  152. motedb_python-0.16.0/tests/test_bug_hunt_v115.rs +317 -0
  153. motedb_python-0.16.0/tests/test_bug_hunt_v116.rs +297 -0
  154. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v18.rs +8 -7
  155. motedb_python-0.16.0/tests/test_concurrent_agg_consistency.rs +329 -0
  156. motedb_python-0.16.0/tests/test_concurrent_transfer_drift.rs +118 -0
  157. motedb_python-0.16.0/tests/test_concurrent_txn_ww.rs +230 -0
  158. motedb_python-0.16.0/tests/test_correlated_subquery.rs +145 -0
  159. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_corruption_robustness.rs +5 -0
  160. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_crash_injection.rs +198 -1
  161. motedb_python-0.16.0/tests/test_date_type.rs +212 -0
  162. motedb_python-0.16.0/tests/test_format_migration.rs +131 -0
  163. motedb_python-0.16.0/tests/test_lerobot_export.rs +234 -0
  164. motedb_python-0.16.0/tests/test_like_escape.rs +155 -0
  165. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_no_bloat.rs +15 -5
  166. motedb_python-0.16.0/tests/test_parquet_roundtrip.rs +208 -0
  167. motedb_python-0.16.0/tests/test_quoted_vector_literal.rs +114 -0
  168. motedb_python-0.16.0/tests/test_row_cache_delete_ghost.rs +103 -0
  169. motedb_python-0.16.0/tests/test_show_indexes_and_open_snapshot.rs +85 -0
  170. motedb_python-0.16.0/tests/test_ts_index_nonfirst.rs +102 -0
  171. motedb_python-0.16.0/tests/test_txn_delete_reinsert.rs +132 -0
  172. motedb_python-0.16.0/tests/test_txn_read_your_writes.rs +104 -0
  173. motedb_python-0.16.0/tests/test_vector_index_knobs.rs +86 -0
  174. motedb_python-0.16.0/tests/test_vector_null_scan.rs +95 -0
  175. motedb_python-0.16.0/tests/test_window_frames.rs +385 -0
  176. motedb_python-0.15.1/docs/03-sql-operations.md +0 -570
  177. motedb_python-0.15.1/docs/17-hybrid-arrow.md +0 -50
  178. {motedb_python-0.15.1 → motedb_python-0.16.0}/.cargo/config.toml +0 -0
  179. {motedb_python-0.15.1 → motedb_python-0.16.0}/.devcontainer/devcontainer.json +0 -0
  180. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  181. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  182. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  183. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/ISSUE_TEMPLATE/install_problem.yml +0 -0
  184. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/pull_request_template.md +0 -0
  185. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/workflows/fuzz.yml +0 -0
  186. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/workflows/perf-gate.yml +0 -0
  187. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/workflows/publish.yml +0 -0
  188. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/workflows/python-wheels.yml +0 -0
  189. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/workflows/release-smoke.yml +0 -0
  190. {motedb_python-0.15.1 → motedb_python-0.16.0}/.github/workflows/site.yml +0 -0
  191. {motedb_python-0.15.1 → motedb_python-0.16.0}/.gitignore +0 -0
  192. {motedb_python-0.15.1 → motedb_python-0.16.0}/.zcode/plans/plan-sess_abb2c954-05fb-477e-9d0a-3e22261e2449.md +0 -0
  193. {motedb_python-0.15.1 → motedb_python-0.16.0}/.zcode/plans/plan-sess_b5937a06-b7bf-4471-9756-dbf2787b263c.md +0 -0
  194. {motedb_python-0.15.1 → motedb_python-0.16.0}/CONTRIBUTING.md +0 -0
  195. {motedb_python-0.15.1 → motedb_python-0.16.0}/LICENSE +0 -0
  196. {motedb_python-0.15.1 → motedb_python-0.16.0}/RELEASE_NOTES.md +0 -0
  197. {motedb_python-0.15.1 → motedb_python-0.16.0}/SECURITY.md +0 -0
  198. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/go/README.md +0 -0
  199. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/go/go.mod +0 -0
  200. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/go/motedb.go +0 -0
  201. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/go/motedb.h +0 -0
  202. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/go/motedb_test.go +0 -0
  203. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/README.md +0 -0
  204. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/README.md +0 -0
  205. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/adversarial_verify.py +0 -0
  206. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/bench_edge.py +0 -0
  207. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/compete_bench.py +0 -0
  208. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/compete_fts_industry.py +0 -0
  209. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/compete_scale.py +0 -0
  210. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/compete_spatial_ts.py +0 -0
  211. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/compete_vec_industry.py +0 -0
  212. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/compete_writes.py +0 -0
  213. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/fts_probe_once.py +0 -0
  214. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/perf_ab.py +0 -0
  215. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/perf_overall.py +0 -0
  216. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/prof_ann.py +0 -0
  217. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/prof_fts.py +0 -0
  218. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/prof_insert.py +0 -0
  219. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/prof_point.py +0 -0
  220. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/prof_real.py +0 -0
  221. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/prof_scale.py +0 -0
  222. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/prof_scale_vec.py +0 -0
  223. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/prof_vec_parallel.py +0 -0
  224. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/resource_bench.py +0 -0
  225. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/resource_bench_2026-09_profile.json +0 -0
  226. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/resource_bench_v0.10.0.json +0 -0
  227. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/spatial_eval.py +0 -0
  228. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/text_eval.py +0 -0
  229. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/ts_eval.py +0 -0
  230. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/bench/vector_recall_eval.py +0 -0
  231. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/build.rs +0 -0
  232. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/e2e/test_durability_kwarg.py +0 -0
  233. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/e2e/test_snapshot_export.py +0 -0
  234. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/licenses/LICENSE +0 -0
  235. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/scripts/build_wheel.sh +0 -0
  236. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/data/demo.mcap +0 -0
  237. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_backup.py +0 -0
  238. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_crash_recovery.py +0 -0
  239. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_e2e_cli.py +0 -0
  240. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_e2e_functional.py +0 -0
  241. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_feature_selfcheck.py +0 -0
  242. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_fetch_arrays.py +0 -0
  243. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_fuzz_bigtable.py +0 -0
  244. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_fuzz_differential.py +0 -0
  245. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_insert_arrays.py +0 -0
  246. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_mcap_import.py +0 -0
  247. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_parallel_ab.py +0 -0
  248. {motedb_python-0.15.1 → motedb_python-0.16.0}/bindings/python/tests/test_smoke.py +0 -0
  249. {motedb_python-0.15.1 → motedb_python-0.16.0}/deny.toml +0 -0
  250. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/02-installation.md +0 -0
  251. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/04-batch-operations.md +0 -0
  252. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/06-indexes-overview.md +0 -0
  253. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/07-column-index.md +0 -0
  254. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/11-timestamp-index.md +0 -0
  255. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/12-performance.md +0 -0
  256. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/15-best-practices.md +0 -0
  257. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/16-faq.md +0 -0
  258. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/18-install-troubleshooting.md +0 -0
  259. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/benchmark_methodology.md +0 -0
  260. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/design/2026-10-embodied-roadmap.md +0 -0
  261. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/design/2026-10-file-layout-plan.md +0 -0
  262. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/design/2026-10-file-layout.md +0 -0
  263. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/design/2026-10-good-first-issues.md +0 -0
  264. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/design/2026-10-traj-spike.md +0 -0
  265. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/paper/README.md +0 -0
  266. {motedb_python-0.15.1 → motedb_python-0.16.0}/docs/paper/motedb.tex +0 -0
  267. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_300k.rs +0 -0
  268. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_autocommit_lock.rs +0 -0
  269. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_disk.rs +0 -0
  270. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_exec_only.rs +0 -0
  271. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_insert_engine.rs +0 -0
  272. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_layer.rs +0 -0
  273. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_memory.rs +0 -0
  274. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_multimodal_vs_competitors.rs +0 -0
  275. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_point_read.rs +0 -0
  276. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_profile_hot.rs +0 -0
  277. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_scaling.rs +0 -0
  278. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_stability.rs +0 -0
  279. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/bench_vs_sqlite.rs +0 -0
  280. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/corruption_fuzz.rs +0 -0
  281. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/crud.rs +0 -0
  282. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/differential_fuzz.rs +0 -0
  283. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/file_layout_bench.rs +0 -0
  284. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/gen_test_bag.rs +0 -0
  285. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/hello_world.rs +0 -0
  286. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/join_differential_fuzz.rs +0 -0
  287. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/logging.rs +0 -0
  288. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/perf_smoke.rs +0 -0
  289. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/probe_ckpt.rs +0 -0
  290. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/probe_filter_decomp.rs +0 -0
  291. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/probe_jemalloc.rs +0 -0
  292. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/probe_memory_source.rs +0 -0
  293. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/probe_tail_latency.rs +0 -0
  294. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/text_rank_probe.rs +0 -0
  295. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/traj_spike.rs +0 -0
  296. {motedb_python-0.15.1 → motedb_python-0.16.0}/examples/vector_recall_real.rs +0 -0
  297. {motedb_python-0.15.1 → motedb_python-0.16.0}/licenses/LICENSE +0 -0
  298. {motedb_python-0.15.1 → motedb_python-0.16.0}/scripts/Dockerfile.e2e +0 -0
  299. {motedb_python-0.15.1 → motedb_python-0.16.0}/scripts/compete.sh +0 -0
  300. {motedb_python-0.15.1 → motedb_python-0.16.0}/scripts/docker_e2e.sh +0 -0
  301. {motedb_python-0.15.1 → motedb_python-0.16.0}/scripts/release_smoke.sh +0 -0
  302. {motedb_python-0.15.1 → motedb_python-0.16.0}/scripts/repro_point_query_gap.sh +0 -0
  303. {motedb_python-0.15.1 → motedb_python-0.16.0}/site/index.html +0 -0
  304. {motedb_python-0.15.1 → motedb_python-0.16.0}/site/llms-full.txt +0 -0
  305. {motedb_python-0.15.1 → motedb_python-0.16.0}/site/llms.txt +0 -0
  306. {motedb_python-0.15.1 → motedb_python-0.16.0}/site/robots.txt +0 -0
  307. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/cache/mod.rs +0 -0
  308. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/catalog/mod.rs +0 -0
  309. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/config.rs +0 -0
  310. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/datasets.rs +0 -0
  311. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/doctor.rs +0 -0
  312. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/helpers.rs +0 -0
  313. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/index_metadata.rs +0 -0
  314. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/indexes/column.rs +0 -0
  315. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/indexes/dashmap_migration.md +0 -0
  316. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/indexes/ioctree.rs +0 -0
  317. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/indexes/mod.rs +0 -0
  318. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/indexes/text.rs +0 -0
  319. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/mem_buffer.rs +0 -0
  320. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/meta_store.rs +0 -0
  321. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/mod.rs +0 -0
  322. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/persistence.rs +0 -0
  323. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/pk_cache.rs +0 -0
  324. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/table.rs +0 -0
  325. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/database/timeseries.rs +0 -0
  326. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/distance/cosine.rs +0 -0
  327. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/distance/euclidean.rs +0 -0
  328. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/distance/mod.rs +0 -0
  329. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/error.rs +0 -0
  330. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/ffi.rs +0 -0
  331. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/btree.rs +0 -0
  332. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/btree_generic.rs +0 -0
  333. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/builder.rs +0 -0
  334. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/column_value.rs +0 -0
  335. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/fresh_graph.rs +0 -0
  336. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/ioctree/leaf_store.rs +0 -0
  337. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/ioctree/mod.rs +0 -0
  338. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/ioctree/node.rs +0 -0
  339. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/ioctree/persistence.rs +0 -0
  340. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/ioctree/search.rs +0 -0
  341. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/mod.rs +0 -0
  342. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/primary_key.rs +0 -0
  343. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/text_dictionary.rs +0 -0
  344. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/text_encoding.rs +0 -0
  345. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/text_query.rs +0 -0
  346. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/text_types.rs +0 -0
  347. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/vamana/mod.rs +0 -0
  348. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/vamana/pruner.rs +0 -0
  349. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/index/vamana/sq8.rs +0 -0
  350. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/mcap_import.rs +0 -0
  351. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/platform_io.rs +0 -0
  352. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/executor/join.rs +0 -0
  353. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/join/hash_join.rs +0 -0
  354. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/join/index_join.rs +0 -0
  355. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/join/mod.rs +0 -0
  356. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/mod.rs +0 -0
  357. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/optimizer.rs +0 -0
  358. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/sql/token.rs +0 -0
  359. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/checksum.rs +0 -0
  360. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/col_segment/manifest.rs +0 -0
  361. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/col_segment/mod.rs +0 -0
  362. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/columnar/column_encoding.rs +0 -0
  363. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/columnar/config.rs +0 -0
  364. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/columnar/gorilla.rs +0 -0
  365. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/columnar/mod.rs +0 -0
  366. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/columnar/segment.rs +0 -0
  367. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/columnar/segment_manager.rs +0 -0
  368. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/columnar/store.rs +0 -0
  369. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/columnar/write_buffer.rs +0 -0
  370. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/file_manager.rs +0 -0
  371. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/blobstore.rs +0 -0
  372. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/bloom.rs +0 -0
  373. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/compaction.rs +0 -0
  374. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/engine.rs +0 -0
  375. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/memtable.rs +0 -0
  376. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/merging_iterator.rs +0 -0
  377. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/mod.rs +0 -0
  378. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/sstable.rs +0 -0
  379. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/lsm/unified_memtable.rs +0 -0
  380. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/manifest/manifest.rs +0 -0
  381. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/manifest/mod.rs +0 -0
  382. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/manifest/version.rs +0 -0
  383. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/storage/mod.rs +0 -0
  384. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/txn/lock_manager.rs +0 -0
  385. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/txn/mod.rs +0 -0
  386. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/txn/mvcc.rs +0 -0
  387. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/txn/recovery.rs +0 -0
  388. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/txn/version_store.rs +0 -0
  389. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/txn/wal.rs +0 -0
  390. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/types/comp_sum.rs +0 -0
  391. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/types/spatial.rs +0 -0
  392. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/types/tensor.rs +0 -0
  393. {motedb_python-0.15.1 → motedb_python-0.16.0}/src/types/text.rs +0 -0
  394. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/acid_test.rs +0 -0
  395. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_2m.rs +0 -0
  396. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_acid.rs +0 -0
  397. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_batch_ops.rs +0 -0
  398. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_compare.rs +0 -0
  399. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_comprehensive.rs +0 -0
  400. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_concurrent.rs +0 -0
  401. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_index_ops.rs +0 -0
  402. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_multimodal.rs +0 -0
  403. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_multimodal_full.rs +0 -0
  404. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_multimodal_ops.rs +0 -0
  405. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_perf_report.rs +0 -0
  406. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_quick_baseline.rs +0 -0
  407. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_release.rs +0 -0
  408. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_report.rs +0 -0
  409. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_resource.rs +0 -0
  410. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_sql_queries.rs +0 -0
  411. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_timeseries_index.rs +0 -0
  412. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_v060_report.rs +0 -0
  413. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_vs_sqlite_100k.rs +0 -0
  414. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/bench_vs_sqlite_v05.rs +0 -0
  415. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/common/mod.rs +0 -0
  416. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/durability_probe.rs +0 -0
  417. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/fts_probe.rs +0 -0
  418. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/perf_test.rs +0 -0
  419. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/repro_multirow_update_fts.rs +0 -0
  420. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/repro_point_gap.rs +0 -0
  421. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/stress_300k.rs +0 -0
  422. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/stress_test.rs +0 -0
  423. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_acid_audit.rs +0 -0
  424. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_acid_comprehensive.rs +0 -0
  425. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_advanced_hunt.rs +0 -0
  426. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_api_correctness.rs +0 -0
  427. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_asof_join.rs +0 -0
  428. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_auto_checkpoint_segments.rs +0 -0
  429. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_backup.rs +0 -0
  430. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_blob_type.rs +0 -0
  431. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_btree_integrity.rs +0 -0
  432. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt.rs +0 -0
  433. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt2.rs +0 -0
  434. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt3.rs +0 -0
  435. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt4.rs +0 -0
  436. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt5.rs +0 -0
  437. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt6.rs +0 -0
  438. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt7.rs +0 -0
  439. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v10.rs +0 -0
  440. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v100.rs +0 -0
  441. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v101.rs +0 -0
  442. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v11.rs +0 -0
  443. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v12.rs +0 -0
  444. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v13.rs +0 -0
  445. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v14.rs +0 -0
  446. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v15.rs +0 -0
  447. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v16.rs +0 -0
  448. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v17_cte.rs +0 -0
  449. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v19.rs +0 -0
  450. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v2.rs +0 -0
  451. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v20.rs +0 -0
  452. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v21.rs +0 -0
  453. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v22.rs +0 -0
  454. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v23.rs +0 -0
  455. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v24.rs +0 -0
  456. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v25.rs +0 -0
  457. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v26.rs +0 -0
  458. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v27.rs +0 -0
  459. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v28.rs +0 -0
  460. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v29.rs +0 -0
  461. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v3.rs +0 -0
  462. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v30.rs +0 -0
  463. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v31.rs +0 -0
  464. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v32.rs +0 -0
  465. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v33.rs +0 -0
  466. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v34.rs +0 -0
  467. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v35.rs +0 -0
  468. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v36.rs +0 -0
  469. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v38.rs +0 -0
  470. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v39.rs +0 -0
  471. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v4.rs +0 -0
  472. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v40.rs +0 -0
  473. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v43.rs +0 -0
  474. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v45.rs +0 -0
  475. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v48.rs +0 -0
  476. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v49.rs +0 -0
  477. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v5.rs +0 -0
  478. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v50.rs +0 -0
  479. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v51.rs +0 -0
  480. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v52.rs +0 -0
  481. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v53.rs +0 -0
  482. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v54.rs +0 -0
  483. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v55.rs +0 -0
  484. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v56.rs +0 -0
  485. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v57.rs +0 -0
  486. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v58.rs +0 -0
  487. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v59.rs +0 -0
  488. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v6.rs +0 -0
  489. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v60.rs +0 -0
  490. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v61.rs +0 -0
  491. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v62.rs +0 -0
  492. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v63.rs +0 -0
  493. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v64.rs +0 -0
  494. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v65.rs +0 -0
  495. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v66.rs +0 -0
  496. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v67.rs +0 -0
  497. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v68.rs +0 -0
  498. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v69.rs +0 -0
  499. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v7.rs +0 -0
  500. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v70.rs +0 -0
  501. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v71.rs +0 -0
  502. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v72.rs +0 -0
  503. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v73.rs +0 -0
  504. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v74.rs +0 -0
  505. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v75.rs +0 -0
  506. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v76.rs +0 -0
  507. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v77.rs +0 -0
  508. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v78.rs +0 -0
  509. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v79.rs +0 -0
  510. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v8.rs +0 -0
  511. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v80.rs +0 -0
  512. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v81.rs +0 -0
  513. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v82.rs +0 -0
  514. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v83.rs +0 -0
  515. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v84.rs +0 -0
  516. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v85.rs +0 -0
  517. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v86.rs +0 -0
  518. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v87.rs +0 -0
  519. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v88.rs +0 -0
  520. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v89.rs +0 -0
  521. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v9.rs +0 -0
  522. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v90.rs +0 -0
  523. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v91.rs +0 -0
  524. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v92.rs +0 -0
  525. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v93.rs +0 -0
  526. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v94.rs +0 -0
  527. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v95.rs +0 -0
  528. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v96.rs +0 -0
  529. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v97.rs +0 -0
  530. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v98.rs +0 -0
  531. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_bug_hunt_v99.rs +0 -0
  532. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_col_segment.rs +0 -0
  533. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_col_segment_fastpaths.rs +0 -0
  534. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_columnar.rs +0 -0
  535. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_columnar_acid.rs +0 -0
  536. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_compact_storage.rs +0 -0
  537. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_compaction_integrity.rs +0 -0
  538. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_compiled_where_semantics.rs +0 -0
  539. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_comprehensive.rs +0 -0
  540. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_comprehensive_audit.rs +0 -0
  541. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_concurrent_sql_features.rs +0 -0
  542. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_concurrent_stress.rs +0 -0
  543. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_corruption_recovery.rs +0 -0
  544. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_crash_recovery.rs +0 -0
  545. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_data_types.rs +0 -0
  546. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_datasets.rs +0 -0
  547. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_db_path_hygiene.rs +0 -0
  548. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_deadlock_stress.rs +0 -0
  549. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_deep_edge.rs +0 -0
  550. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_delete_persist.rs +0 -0
  551. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_differential_correctness.rs +0 -0
  552. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_disk_bloat.rs +0 -0
  553. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_disk_usage.rs +0 -0
  554. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_doctor.rs +0 -0
  555. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_durability.rs +0 -0
  556. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_e2e_crash_and_stress.rs +0 -0
  557. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_edge_cases.rs +0 -0
  558. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_edge_semantics.rs +0 -0
  559. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_episodes.rs +0 -0
  560. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_executemany.rs +0 -0
  561. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_exists_subquery.rs +0 -0
  562. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_explain.rs +0 -0
  563. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_extreme_hunt.rs +0 -0
  564. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_fast_paths.rs +0 -0
  565. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_file_layout.rs +0 -0
  566. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_fts_recovery_staleness.rs +0 -0
  567. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_fuzz_sql_combinations.rs +0 -0
  568. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_global_manifest.rs +0 -0
  569. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_groupby_first_query.rs +0 -0
  570. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_hybrid_search.rs +0 -0
  571. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_index_maintenance.rs +0 -0
  572. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_index_reopen.rs +0 -0
  573. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_index_robustness.rs +0 -0
  574. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_indexed_query_semantics.rs +0 -0
  575. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_insert_engine.rs +0 -0
  576. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_insert_explicit_fastpath.rs +0 -0
  577. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_insert_paths_index_maintenance.rs +0 -0
  578. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_insert_select.rs +0 -0
  579. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_ioctree.rs +0 -0
  580. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_isolation_levels.rs +0 -0
  581. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_join_count_fold.rs +0 -0
  582. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_knn_parallel.rs +0 -0
  583. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_large_rows.rs +0 -0
  584. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_m5_mines.rs +0 -0
  585. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_mcap_import.rs +0 -0
  586. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_memory_leak.rs +0 -0
  587. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_memory_linear.rs +0 -0
  588. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_multimodal.rs +0 -0
  589. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_multimodal_e2e.rs +0 -0
  590. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_mvcc_isolation.rs +0 -0
  591. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_mvcc_recovery.rs +0 -0
  592. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_optimization_regression.rs +0 -0
  593. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_order_by_expr_keys.rs +0 -0
  594. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_parser_fuzz_regression.rs +0 -0
  595. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_performance_guarantees.rs +0 -0
  596. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_pk_change_semantics.rs +0 -0
  597. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_prepared_dml.rs +0 -0
  598. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_public_api.rs +0 -0
  599. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_query_equivalence.rs +0 -0
  600. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_range_count.rs +0 -0
  601. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_release_readiness.rs +0 -0
  602. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_repro12.rs +0 -0
  603. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_round12_optimizations.rs +0 -0
  604. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_round12b_edge.rs +0 -0
  605. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_round12c_e2e_bugs.rs +0 -0
  606. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_round13_bug_hunt.rs +0 -0
  607. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_row_api.rs +0 -0
  608. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_rrf_hybrid.rs +0 -0
  609. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_savepoint_window.rs +0 -0
  610. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_scalability.rs +0 -0
  611. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_scan_integrity.rs +0 -0
  612. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_semantic_edges.rs +0 -0
  613. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_snapshot.rs +0 -0
  614. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_spatial_index.rs +0 -0
  615. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_spatial_large_geometry.rs +0 -0
  616. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_spatial_sql_semantics.rs +0 -0
  617. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_sql_advanced.rs +0 -0
  618. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_sql_correctness.rs +0 -0
  619. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_sql_correctness_part2.rs +0 -0
  620. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_sql_ddl_features.rs +0 -0
  621. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_sql_errors_edges.rs +0 -0
  622. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_sql_functions.rs +0 -0
  623. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_sql_groupby.rs +0 -0
  624. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_sql_joins.rs +0 -0
  625. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_sql_scenarios.rs +0 -0
  626. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_storage_integrity.rs +0 -0
  627. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_stress.rs +0 -0
  628. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_stress_hunt.rs +0 -0
  629. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_text_ts_search_semantics.rs +0 -0
  630. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_timeseries_index.rs +0 -0
  631. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_timeseries_semantics.rs +0 -0
  632. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_timestamp_recovery.rs +0 -0
  633. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_transaction_semantics.rs +0 -0
  634. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_txn_ddl_and_nan_ordering.rs +0 -0
  635. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_update_perf.rs +0 -0
  636. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_upsert.rs +0 -0
  637. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_v050_features.rs +0 -0
  638. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_vec_m0.rs +0 -0
  639. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_vec_m4.rs +0 -0
  640. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_vector_column_read_paths.rs +0 -0
  641. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_vector_durability.rs +0 -0
  642. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_vector_index_recall.rs +0 -0
  643. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_vector_spatial_text.rs +0 -0
  644. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_vector_visibility.rs +0 -0
  645. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_wide_tables.rs +0 -0
  646. {motedb_python-0.15.1 → motedb_python-0.16.0}/tests/test_write_concurrency.rs +0 -0
@@ -0,0 +1,11 @@
1
+ # MoteDB is maintained by one person, on evenings and weekends.
2
+ # If MoteDB saved you time, or if you depend on it to run a robot in
3
+ # production, a small GitHub Sponsors contribution is what keeps it going.
4
+ #
5
+ # See the community page for everything else:
6
+ # https://github.com/motedb/motedb/blob/main/community/README.md
7
+
8
+ github: [motedb]
9
+ # Once a second funding route exists (or if you prefer not to use GitHub
10
+ # Sponsors), replace the line above with:
11
+ # custom: ["<your-funding-url>"]
@@ -32,6 +32,15 @@ jobs:
32
32
  - name: cargo clippy (advisory — warnings do not fail the job)
33
33
  run: cargo clippy --all-targets --all-features --no-deps
34
34
  continue-on-error: true
35
+ # e3ebb24 shipped a mid-match wildcard in BOTH bindings: every concrete
36
+ # arm after it became unreachable (a warn-only lint) and Python returned
37
+ # None for every value. The root-crate clippy above never sees the
38
+ # binding crates — they are not workspace members. Deny the lint here.
39
+ - name: bindings check — unreachable_patterns denied
40
+ run: |
41
+ for m in bindings/python/Cargo.toml bindings/node/Cargo.toml; do
42
+ RUSTFLAGS="-D unreachable_patterns" cargo check --manifest-path "$m" --quiet
43
+ done
35
44
 
36
45
  # ── Supply-chain: vulnerability + license gate (cargo-deny) ──────────────
37
46
  # Fails on any NEW RustSec advisory (vulnerability/unsound). Four known
@@ -131,6 +140,7 @@ jobs:
131
140
  # hardware-speed assumptions shared runners can't meet. Tracked in
132
141
  # BENCHMARK.md instead.
133
142
  run: |
143
+ set +e
134
144
  cargo test --workspace --all-features -- \
135
145
  --test-threads=1 \
136
146
  --skip bench_ --skip stress_ --skip perf_ \
@@ -150,13 +160,29 @@ jobs:
150
160
  --skip test_scalability_latency \
151
161
  --skip test_scalability_memory \
152
162
  --skip test_durability_large_dataset_checkpoint_recovery \
153
- --skip test_performance_guarantees
163
+ --skip test_performance_guarantees \
164
+ > /tmp/ci-test.log 2>&1
165
+ rc=$?
166
+ if [ $rc -ne 0 ]; then
167
+ # 🔑 Anonymous-readable failure surface: the trailing `Running
168
+ # tests/…` line before the failure block names the failing
169
+ # binary. (The separate diagnostics step proved unreliable — its
170
+ # `{ } || …` grouping suppressed set -e and silently skipped.)
171
+ grep -E "Running (tests|unittests)|FAILED|panicked at|^failures:" /tmp/ci-test.log \
172
+ | tail -8 | while IFS= read -r line; do
173
+ echo "::error title=integration-fail::$line"
174
+ done
175
+ echo "---- tail of test log ----"
176
+ tail -30 /tmp/ci-test.log
177
+ fi
178
+ exit $rc
154
179
  - name: cargo test (workspace, hardware-threshold tests skipped) [attempt 2]
155
180
  id: ci2
156
181
  if: steps.ci1.outcome == 'failure'
157
182
  env:
158
183
  CI: "1"
159
184
  run: |
185
+ set +e
160
186
  cargo test --workspace --all-features -- \
161
187
  --test-threads=1 \
162
188
  --skip bench_ --skip stress_ --skip perf_ \
@@ -176,7 +202,22 @@ jobs:
176
202
  --skip test_scalability_latency \
177
203
  --skip test_scalability_memory \
178
204
  --skip test_durability_large_dataset_checkpoint_recovery \
179
- --skip test_performance_guarantees
205
+ --skip test_performance_guarantees \
206
+ > /tmp/ci-test.log 2>&1
207
+ rc=$?
208
+ if [ $rc -ne 0 ]; then
209
+ # 🔑 Anonymous-readable failure surface: the trailing `Running
210
+ # tests/…` line before the failure block names the failing
211
+ # binary. (The separate diagnostics step proved unreliable — its
212
+ # `{ } || …` grouping suppressed set -e and silently skipped.)
213
+ grep -E "Running (tests|unittests)|FAILED|panicked at|^failures:" /tmp/ci-test.log \
214
+ | tail -8 | while IFS= read -r line; do
215
+ echo "::error title=integration-fail::$line"
216
+ done
217
+ echo "---- tail of test log ----"
218
+ tail -30 /tmp/ci-test.log
219
+ fi
220
+ exit $rc
180
221
  - name: verdict
181
222
  if: always()
182
223
  run: |
@@ -191,8 +232,12 @@ jobs:
191
232
  # 🔑 K-debug: cargo 顶层一次跑时,crashing binary 会以 exit 101
192
233
  # 中断整个套件且不留 FAILED 行。逐 bin 运行并把每个 bin 的退出码
193
234
  # 通过 ::error:: annotations 上报(匿名可读)。
235
+ # 2026-10-21 修复: 曾有一行多余的 `} || echo …`(未配对大括号)
236
+ # 让本步骤自身以 exit 2 崩溃,逐 bin 上报从未生效过;同时对
237
+ # rc=101(真实测试失败,有 FAILED 行)也提取失败测试名,不再只
238
+ # 处理非 101 的编译错误。
194
239
  {
195
- echo "### mac integration per-binary status"
240
+ echo "### integration per-binary status ($RUNNER_OS)"
196
241
  BINS=$(cargo test --workspace --all-features -- --list 2>/dev/null \
197
242
  | grep -E "^Running|^ " >/dev/null; cargo test --workspace \
198
243
  --all-features --no-run 2>&1 | grep -oE "Executable tests/[a-z0-9_]+\.rs" \
@@ -213,14 +258,13 @@ jobs:
213
258
  --skip test_performance_guarantees --no-fail-fast \
214
259
  > /tmp/one.log 2>&1
215
260
  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 \
261
+ echo "::error title=integration-$RUNNER_OS::$t exit=$rc"
262
+ if [ $rc -ne 0 ]; then
263
+ grep -E "^test .* FAILED|^failures:|panicked at" /tmp/one.log | head -8 \
219
264
  | while read -r line; do echo "::error ::$line"; done
220
265
  fi
221
266
  done
222
267
  } || echo "per-binary diagnostics done" >> "$GITHUB_STEP_SUMMARY"
223
- } || echo "diagnostics pass done" >> "$GITHUB_STEP_SUMMARY"
224
268
 
225
269
 
226
270
  # ── Cross-compile: aarch64-unknown-linux-gnu (build only) ────────────────
@@ -287,7 +331,7 @@ jobs:
287
331
  args: --release
288
332
  - name: Install wheel
289
333
  run: pip install bindings/python/target/wheels/*.whl
290
- - name: Run E2E workload (11 suites)
334
+ - name: Run E2E workload (12 suites)
291
335
  env:
292
336
  MOTE_CLI: ${{ github.workspace }}/target/release/motedb-cli
293
337
  run: python bindings/python/e2e/e2e_workload.py --root /tmp/e2e
@@ -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
@@ -0,0 +1,178 @@
1
+ # Capability Manifest
2
+
3
+ > This file is the **single source of truth** for what MoteDB can do.
4
+ > The website, the README, blog posts and any external material should cite
5
+ > this manifest rather than restating feature claims.
6
+ > The point: every line below should map to an implementation and a test.
7
+
8
+ **Version baseline:** v0.15.2 · **Last verified:** 2026-10-24
9
+
10
+ Legend: `✅ supported` · `🟡 partial (see note)` · `❌ not supported` · `🟢 differentiator`
11
+
12
+ > If you find a line here that does not match actual behaviour, please open an
13
+ > issue — **those are the ones we triage first**.
14
+
15
+ ---
16
+
17
+ ## 1. SQL engine
18
+
19
+ | Capability | Status | Notes |
20
+ |---|---|---|
21
+ | `CREATE TABLE` / `CREATE INDEX` / `DROP TABLE [IF EXISTS]` / `DROP INDEX` | ✅ | Column, vector, text, spatial, timestamp index variants |
22
+ | `ALTER TABLE` | ✅ | `ADD COLUMN`, `AUTO_INCREMENT = N` |
23
+ | `INSERT` (incl. `INSERT ... SELECT`) | ✅ | |
24
+ | `UPDATE` / `DELETE` | ✅ | |
25
+ | `SELECT` with `WHERE` | ✅ | |
26
+ | `JOIN` — INNER / LEFT / RIGHT / FULL | ✅ | |
27
+ | Subqueries in `WHERE`, derived tables (`FROM (SELECT ...)`) | ✅ | |
28
+ | `GROUP BY` | ✅ | Columns, expressions (`id % 5`), and SELECT aliases |
29
+ | `HAVING` | ✅ | Incl. aggregate aliases |
30
+ | `ORDER BY` | ✅ | Multi-key, expressions, non-projected columns, `NULLS FIRST/LAST` |
31
+ | `LIMIT` / `OFFSET` | ✅ | |
32
+ | `DISTINCT` (rows) / `COUNT(DISTINCT col)` | ✅ | |
33
+ | Aggregates: `COUNT` `SUM` `AVG` `MIN` `MAX` `STDDEV` `VARIANCE` | ✅ | |
34
+ | `UNION` / `UNION ALL` | ✅ | |
35
+ | `CASE WHEN ... THEN ... ELSE ... END` | ✅ | |
36
+ | `WITH` / CTEs, incl. `WITH RECURSIVE` | ✅ | Semi-naive fixed-point iteration, `UNION ALL` bodies, chained CTEs |
37
+ | Window functions: `ROW_NUMBER` `RANK` `DENSE_RANK` `NTILE` `LAG` `LEAD` `FIRST_VALUE` `LAST_VALUE` + aggregates | ✅ | `OVER (PARTITION BY … ORDER BY …)` |
38
+ | Explicit window frames (`ROWS` / `RANGE BETWEEN <bound> AND <bound>`) | ✅ 🟢 | ROWS = physical rows; RANGE = peer groups, or value intervals (`RANGE BETWEEN 10 PRECEDING AND 10 FOLLOWING`) on a numeric/timestamp order key. Default frame is the RANGE peer-group frame. Tested in `tests/test_window_frames.rs` |
39
+ | Scalar functions: `UPPER` `LOWER` `LENGTH` `TRIM` `SUBSTR` `REPLACE` `CONCAT` `INSTR` `COALESCE` `ROUND` `ABS` + arithmetic | ✅ | `CONCAT` skips NULL args (SQLite/Postgres semantics); `\|\|` propagates NULL; `ROUND` is binary-exact decimal rounding |
40
+ | `EXPORT TABLE t TO 'x.parquet'` / `IMPORT PARQUET 'x' INTO t` | ✅ 🟢 | Columnar dump / batch load through the insert pipeline; pyarrow / pandas / DuckDB round-trip |
41
+ | `EXPORT LEROBOT <table> TO 'dir/' [FPS n] [TASKS col]` | ✅ 🟢 | Writes a LeRobot v3 dataset on disk that the official `LeRobotDataset` (lerobot ≥ 0.6) loads directly |
42
+ | `DECIMAL` / `DATE` types | ❌ | Planned — see [ROADMAP](./ROADMAP.md) |
43
+ | Cross-statement server-side cursors | ❌ | Planned — see [ROADMAP](./ROADMAP.md) |
44
+
45
+ ---
46
+
47
+ ## 2. Multimodal types
48
+
49
+ | Type | Status | Notes |
50
+ |---|---|---|
51
+ | `VECTOR(n)` | ✅ 🟢 | Index-accelerated KNN; `ORDER BY emb <-> '[…]'` (L2) or `<~>` (cosine) |
52
+ | `BLOB` | 🟡 | Byte-exact round-trip, **16 MiB cap per value** |
53
+ | `TIMESTAMP` | ✅ 🟢 | Microsecond precision; `TIMESERIES(ts)` adds time-series semantics |
54
+ | `TEXT` | ✅ | Built-in tokenizer (jieba and others configurable) |
55
+ | Spatial coordinates | ✅ 🟢 | R-Tree index; `ST_POINT` / `ST_WITHIN` / `ST_DISTANCE` / `ST_KNN`, and `loc <-> ST_POINT(x, y)` distance ordering |
56
+ | Array types (`TEXT[]` / `ARRAY<FLOAT>`) | ❌ | Use BLOB, a separate table, or TEXT + JOIN |
57
+
58
+ ### ⚠️ Known BLOB gaps (unchanged since v0.13)
59
+
60
+ - Scalar functions over BLOB columns (e.g. `LENGTH(payload)`) are **not wired through all executor paths**
61
+ - BLOB output under `ORDER BY` is **not wired through all executor paths**
62
+ - **Verified working:** bare projection, equality (`WHERE payload = X'…'`), time-window scans, parameter binding
63
+
64
+ ---
65
+
66
+ ## 3. Indexes
67
+
68
+ | Index | Status | Notes |
69
+ |---|---|---|
70
+ | Column index | ✅ 🟢 | Equality / range |
71
+ | Vector index | ✅ 🟢 | **DiskANN** (FreshDiskANN + rerank). **Not** HNSW, not IVF |
72
+ | Full-text index | ✅ 🟢 | BM25 ranking + snippet; `MATCH(col) AGAINST('q')`; multi-word defaults to AND (SQLite FTS5-compatible), explicit `a OR b` unions |
73
+ | Spatial index | ✅ 🟢 | R-Tree |
74
+ | Time-series index | ✅ 🟢 | Range scan + compaction + `TIME_BUCKET` aggregation + TTL |
75
+
76
+ > 📌 **Correction notice.** Older material describing the vector index as
77
+ > "HNSW / IVF" is out of date. The current implementation is **DiskANN**.
78
+ > This file and `docs/08-vector-index.md` are authoritative.
79
+
80
+ ---
81
+
82
+ ## 4. Transactions & consistency
83
+
84
+ | Capability | Status | Notes |
85
+ |---|---|---|
86
+ | `BEGIN` / `COMMIT` / `ROLLBACK` | ✅ | |
87
+ | Savepoints | ✅ | |
88
+ | Read-your-writes inside a transaction | ✅ | Scans, aggregates, point lookups |
89
+ | MVCC | ✅ | |
90
+ | WAL group commit | ✅ 🟢 | |
91
+ | `LATEST BY` on tables > 1M rows | 🟡 | Performance not yet optimized (large-table merge path) |
92
+
93
+ ---
94
+
95
+ ## 5. Retrieval
96
+
97
+ | Capability | Status | Notes |
98
+ |---|---|---|
99
+ | Vector KNN | ✅ 🟢 | `ORDER BY emb <-> '[…]'`, index-accelerated |
100
+ | Full-text search | ✅ 🟢 | BM25 ranking |
101
+ | **Hybrid search (BM25 × KNN, RRF fusion)** | ✅ 🟢 | One call — you don't implement score calibration yourself |
102
+ | Time-series window aggregation | ✅ 🟢 | `TIME_BUCKET` + TTL |
103
+ | Spatial range / KNN | ✅ 🟢 | `ST_WITHIN` / `ST_DISTANCE` / `ST_KNN` |
104
+
105
+ ---
106
+
107
+ ## 6. Data shapes & deployment
108
+
109
+ | Capability | Status | Notes |
110
+ |---|---|---|
111
+ | Collection: high-performance directory | ✅ 🟢 | Atomic publish via temp + fsync + rename, plus WAL group commit |
112
+ | Transport: single-file snapshot | ✅ 🟢 | `EXPORT DB TO '…'`; per-file CRC32, optional zstd, incremental re-export |
113
+ | Deployment: read-only container | ✅ 🟢 | All write paths rejected, multiple concurrent readers |
114
+ | MCAP import | ✅ 🟢 | |
115
+ | Index self-healing | ✅ 🟢 | Rebuilds a corrupt index from source data |
116
+ | Crash recovery | ✅ 🟢 | WAL replay + segment migration + orphan segment adoption |
117
+ | `for_edge()` low-memory profile | ✅ | Tuned for small-memory devices |
118
+
119
+ ---
120
+
121
+ ## 7. Interop & SDKs
122
+
123
+ | Surface | Status | Notes |
124
+ |---|---|---|
125
+ | Rust crate | ✅ | `cargo add motedb` (Rust ≥ 1.87) |
126
+ | Python | ✅ | `pip install motedb-python` — imported as `motedb`. The `motedb` name on PyPI is **not yet claimed**; use `motedb-python` |
127
+ | Arrow | ✅ 🟢 | `query_arrow()` → canonical `pyarrow.Table`, vector columns as `FixedSizeList<float32>` |
128
+ | pandas | ✅ | `query_pandas()` |
129
+ | numpy bulk load | ✅ | `insert_arrays()` |
130
+ | Node.js | 🟡 | npm package **is published** (`motedb@0.15.2`). Prebuilt binaries cover macOS (arm64/x64) and Linux (x64/arm64, glibc); **musl and Windows prebuilds are not published yet**, so `npm install motedb` on Windows currently yields no native binary |
131
+ | Go | 🟡 | Binding lives in `bindings/go` (with `go.mod`), but is **not published as a tagged Go module** yet — the module proxy only resolves a pseudo-version off the default branch |
132
+
133
+ ---
134
+
135
+ ## 8. Engineering quality
136
+
137
+ | Practice | Status | Notes |
138
+ |---|---|---|
139
+ | Crash-injection tests | ✅ 🟢 | Resident in CI |
140
+ | Differential fuzzing (SQLite as oracle) | ✅ 🟢 | Permanent regression suite, including JOIN diffing |
141
+ | Corruption-recovery tests | ✅ 🟢 | |
142
+ | Machine-independent performance gate | ✅ 🟢 | A complexity regression turns CI red |
143
+ | `cargo fmt --check` strict gate | ✅ 🟢 | Whole tree is fmt-clean |
144
+ | cargo-deny supply-chain audit | ✅ 🟢 | Vulnerabilities + licenses |
145
+ | clippy | 🟡 advisory | CI runs clippy in advisory mode (`continue-on-error`); a backlog of style lints is being cleared. **New commits must not introduce new warnings** |
146
+ | Prebuilt binaries | 🟡 | macOS (arm64/x64) and Linux (x64/arm64) prebuilt. Windows works through `cargo add motedb` (source build); a Windows prebuild is on the way |
147
+
148
+ ---
149
+
150
+ ## 9. Explicitly not supported
151
+
152
+ > Written down so you don't have to discover it the hard way.
153
+
154
+ | Capability | Why |
155
+ |---|---|
156
+ | **Built-in inference engine / ONNX** | MoteDB is a storage and query layer, not an inference runtime. We invest in **Arrow interop** and leave inference in your own stack |
157
+ | **Distributed / multi-node replication** | The current target is single-machine edge |
158
+ | **Server mode / multi-process concurrent writes** | Contradicts the "embedded, zero-ops" positioning |
159
+ | **Multi-user permission system** | In embedded deployments the host application owns that |
160
+ | **Array types** | Use BLOB, a separate table, or TEXT + JOIN |
161
+ | **`DECIMAL` / `DATE` types** | Planned |
162
+ | **Cross-statement server-side cursors** | Planned |
163
+
164
+ ---
165
+
166
+ ## 10. Performance methodology
167
+
168
+ Full benchmark data: [`BENCHMARK.md`](./BENCHMARK.md),
169
+ [`PERFORMANCE_REPORT.md`](./PERFORMANCE_REPORT.md), and
170
+ [`docs/benchmark_methodology.md`](./docs/benchmark_methodology.md).
171
+
172
+ > ⚠️ **Citation rule.** Every performance number published anywhere must carry
173
+ > its **machine configuration, data scale, comparison baseline, and measurement
174
+ > method**. Numbers without that context should not be released.
175
+
176
+ ---
177
+
178
+ *Found something here that does not match real behaviour? Open an issue.*
@@ -1,5 +1,123 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.16.0] — 2026-10-30
4
+
5
+ > 28 轮系统性猎虫与验证后的正确性版本。**42 个缺陷修复**(含 1 个数据
6
+ > 损坏级、多个"静默错误结果"类),SQL 兼容性大幅提升(隐式别名、复合
7
+ > 主键验证、中文全文检索、时间戳算术),四层 API(Rust/Node/Go/Python)
8
+ > 与 MCP 全部在当前引擎上端到端验证。全面性能 A/B 对照确认无回归
9
+ > (ORDER BY 快 ~28%,查询内存省 18%,其余持平)。
10
+
11
+ ### 静默错误结果类(最关键)
12
+
13
+ - **🔴🔴 数据损坏**: 向量列在 UPDATE+DELETE+段合并后读成 65535 维全零
14
+ 向量 — 列段合并的墓碑/ALTER 占位写裸 [0xFFFF],逐行 [dim:u16] 编码里
15
+ 是合法非空维度且无载荷 → 顺序走读者错位、同列后续全雪崩。占位改
16
+ [0x0000] (dim 0 = NULL)。回归: KNN 与暴力扫描全阶段逐 id 一致
17
+ - WHERE 未知列被静默吞掉 — 单表 SELECT/UPDATE/DELETE 拼错列名返回
18
+ 0 行/affected_rows: 0 无提示;语句入口 schema 绑定校验立即报
19
+ ColumnNotFound
20
+ - SHOW TABLES / DESCRIBE 流式分发丢弃结果行(db.query 返回 []、
21
+ MCP list_tables 空)——行数据流经完整路径
22
+ - 日期函数对 DATE 列返回 NULL(YEAR/MONTH/DAY_OF_MONTH/DATEDIFF)
23
+ - CAST(x AS TEXT) 泄漏 Rust Debug 串(`Date { days: 19753 }`)——
24
+ 现按 SQL 文本形态渲染(新增 Timestamp::to_iso)
25
+ - ISO 时间戳小数秒被丢弃('…12:00:00.5' 的 .5 消失,schema-order
26
+ INSERT 路径)——解析到 µs,双实现去重
27
+ - 中文 MATCH 恒不命中 — FTS 索引与逐行 MATCH 都硬编码空白分词器;
28
+ 新增 AutoTokenizer(CJK→Jieba,其余→空白)两路径统一
29
+ - TIMESTAMP ± INTEGER(µs) 算术 TypeError 被吞 → WHERE 静默空
30
+ - TIMESTAMP 列 BETWEEN 文本字面量恒空(vector_exec 预解析缺口,
31
+ `>= AND <=` 却正常)——同一 col_lit 预解析
32
+ - GROUP BY 表达式 + ORDER BY 同表达式乱序(快路径丢键 + full_row
33
+ zip 错位配对)——表达式键读分组投影值,不可解析则明确报错
34
+ - NULLS FIRST/LAST 被四条排序路径中的三条静默忽略——全路径统一
35
+ - 0x 十六进制字面量静默返回 0(词法器缺十六进制 + 隐式别名吞噬)
36
+ - MCP describe 工具返回 DESCRIBE 表头而非 schema(行被丢弃)
37
+
38
+ ### SQL 兼容性
39
+
40
+ - **SELECT 列表隐式别名**(`SELECT v x`、`SELECT COUNT(*) c`)——此前
41
+ 全部死于误导性解析错误;别名可在 ORDER BY/GROUP BY/HAVING 引用
42
+ - 验证钉住: 复合 PRIMARY KEY(重复拒绝/双键点查/复合 upsert/重开强制)、
43
+ 列 DEFAULT 值、NOT NULL 双路径强制、LIMIT ?/OFFSET ? 绑定参数
44
+
45
+ ### 语义钉住(文档化,防止引擎间歧义)
46
+
47
+ - 除零: 整型/浮点除数一律 DivisionByZero(PostgreSQL 语义)
48
+ - LIKE 与 = 一致大小写敏感;表名大小写敏感/列名不敏感
49
+ - CONCAT 忽略 NULL(PG 风格),|| 按标准传播 NULL;DATEDIFF = a−b 秒
50
+ - 同进程二次 open() 附着同一引擎(共享句柄注册表,docs/14);跨进程
51
+ flock 互斥
52
+ - DDL 非事务(CREATE 留存+行回滚,事务内 DROP 被拒)
53
+ - 圆整 ROUND(x,-n) half-away;DATE 函数表(docs/13);已知限制:
54
+ WHERE 中除零静默 0 行(v0.16+ 候选修复)
55
+
56
+ ### 质量与验证
57
+
58
+ - clippy 双 feature 集零警告(默认集 + node 最小集——后者此前从未
59
+ 被门禁覆盖)
60
+ - 绑定层全面验证: Node smoke 双绿、Go 6/6 首跑、Python 13/13、
61
+ MCP stdio e2e 6/6(round-20/22 修复的端到端确认)
62
+ - 性能 A/B(round-19 基线 vs 0.16.0,同机背靠背): 无回归;ORDER BY
63
+ 快 ~28%,查询后 RSS 省 18%,其余持平
64
+ - 新增回归: test_bug_hunt_v110~v116(57 项)、MCP e2e
65
+
66
+ ### 此前积累(0.15.2 后、猎虫前)
67
+
68
+ - 向量索引旋钮 SQL 化: CREATE VECTOR INDEX ... WITH (metric=, max_degree=,
69
+ build_search_list=, search_list=);构建期精确 f32 快照
70
+ - ORDER BY emb <-> '带引号向量' 三拼写回归;CREATE INDEX WITH 子句
71
+ 死代码复活
72
+
73
+ ## [0.15.2] — 2026-10-22
74
+
75
+ ### 功能测试轮修复 (2026-10-22 外部功能测试 24/27 → 全绿)
76
+
77
+ - **🔴 P0 Node 浮点参数静默截断**: `arr.get::<i64>` 对 JS double 不报错而是
78
+ 向零截断(9.9→9, 1e-7→0, 123.456→123), f64 分支不可达 — 任何 `?` 传入的
79
+ 非整数 number 全部损坏(FLOAT/DOUBLE 列通杀)。BigInt 更写 9 读 null。
80
+ 修复 = f64 先探(napi 严格语义对非 number 干净失败)按 fract() 分流
81
+ Integer/Float(≤2^53), BigInt 走 get_i64 无损转换(超范围显式报错)。
82
+ smoke_ci.js 回归: 9.9/-2.75/1e-7/2.0/123n 逐值断言
83
+ - **快照往还(ENOENT / already exists)**: resolve_open_path 的目录判定标记
84
+ 还是旧布局(lsm/||wal/) — P1 惰性布局的解包快照(首写前无 wal/)判定不中,
85
+ 落到"兄弟 .mote"规则打开不存在的路径。Python 的 import_snapshot 同中
86
+ (观感即"Python 没有快照 API")。修复 = 标记集扩为 meta.bin/columnar_ms/
87
+ lsm/wal; unpack 接受已存在的**空** dest 目录(mkdir-then-import 自然用法),
88
+ 非空仍拒。Node openSnapshot/Python import_snapshot/Rust open_snapshot 三路
89
+ 往返回归全绿; Python 加 export_snapshot 别名(与 Node/Rust 命名对齐,
90
+ 原生名 export_to 保留)
91
+ - **SHOW INDEXES [FROM t]**: 引擎语法新增(parser 原只认 SHOW TABLES), 数据
92
+ 源为权威的 index_registry(TableSchema::indexes 不维护); 输出
93
+ Table/Index/Column/Type 四列
94
+
95
+ ### 训练生态互操作 (Phase 1 §5/§6, docs/design/2026-10-industry-parity-plan.md)
96
+
97
+ - **🔑 Parquet 双向**: `EXPORT TABLE t TO 'x.parquet'` / `IMPORT PARQUET 'x'
98
+ INTO t` — 全类型往返(INT/FLOAT/BOOL/TEXT/TIMESTAMP/VECTOR→FixedSizeList<
99
+ f32>/BLOB→Binary), NULL 保留, 按列名映射(乱序/子集/缺列补 NULL), 有损方向
100
+ 报错; arrow-array/schema/parquet 59.3.1(MSRV 1.85), feature `parquet`
101
+ 默认开(default-edge 可关)。pyarrow 双向互认实测。Python: `export_parquet` /
102
+ `import_parquet`
103
+ - **🔑 EXPORT LEROBOT**: EPISODE 表 → LeRobot v3 数据集目录(官方 writer 逐文件
104
+ 定标), 官方 `LeRobotDataset` 加载互认实测 — MCAP→SQL→训练管线打通。Python:
105
+ `export_lerobot(table, dir, fps, tasks=)`
106
+ - **修复(数据丢失级)**: 含 NULL 向量的表, 无 WHERE 全表扫描整列静默变 NULL,
107
+ 且 compaction 将丢失永久写回 — read_vectors/read_spatial 的 7 处只前进线性
108
+ 归并改为 `scatter_by_row_id` 精确散射; 回归测试 ×2
109
+ - **PyTorch DataLoader**: `from motedb.torch import MoteDataset` — 列式一次
110
+ 载入 + 逐行零拷贝视图, fork-safe; docs/19 + examples/torch_dataloader.py
111
+ - **🔑 MCP server (§8)**: `python -m motedb.mcp <db>` — stdio JSON-RPC,
112
+ 6 个 tools(list_tables/describe/query/vector_search/episodes/doctor);
113
+ 引擎级只读门(Database(read_only=True), 写被引擎拒绝而非字符串嗅探),
114
+ 多读者共存。docs/20-mcp.md; pyo3 构造器新增 read_only kwarg
115
+ - **🔑 多引擎公开基准 (§7)**: `make bench-industry` — MoteDB vs FAISS/
116
+ LanceDB/sqlite-vec/DuckDB-VSS/usearch, 同语料同暴力 ground truth,
117
+ N/DIM 规模参数化, 方法学随数据发布(含不利行)。220K×384 实测: MoteDB
118
+ DiskANN recall@10 1.0000 / p50 0.57ms。docs/benchmark_report_2026-10-21.md
119
+ - CI: 测试步骤失败时直接发逐行注解(替代从未生效的独立诊断步骤)
120
+
3
121
  ## [0.15.1] — 2026-10-20
4
122
 
5
123
  发布渠道与安装体验 patch(docs/design/2026-10-industry-parity-plan.md Phase 0)。
@@ -0,0 +1,105 @@
1
+ # Code of Conduct
2
+
3
+ ## Our pledge
4
+
5
+ We as members, contributors, and maintainers pledge to make participation in
6
+ this project a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ---
16
+
17
+ ## Our standards
18
+
19
+ ### Behaviour that contributes to a positive environment
20
+
21
+ - Demonstrating empathy and kindness toward other people
22
+ - Being respectful of differing opinions, viewpoints, and experiences
23
+ - Giving and gracefully accepting constructive feedback
24
+ - Accepting responsibility, apologising to those affected by our mistakes, and
25
+ learning from the experience
26
+ - Focusing on what is best for the overall community
27
+
28
+ ### Behaviour that is unacceptable
29
+
30
+ - The use of sexualised language or imagery, and sexual attention or advances
31
+ of any kind
32
+ - Trolling, insulting or derogatory comments, and personal or political attacks
33
+ - Public or private harassment
34
+ - Publishing others' private information, such as a physical or email address,
35
+ without their explicit permission
36
+ - Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ---
40
+
41
+ ## Scope
42
+
43
+ This Code of Conduct applies within all community spaces, and also applies when
44
+ an individual is officially representing the community in public spaces.
45
+ Community spaces currently include:
46
+
47
+ - The project's GitHub repository — issues, pull requests, discussions, commits,
48
+ and code review
49
+ - The project's website and any space created in the project's name
50
+ - Public events where the project is represented
51
+
52
+ Any space the project opens later — a mailing list, a newsletter, or a chat
53
+ channel — is covered by this Code of Conduct from the day it opens.
54
+
55
+ ---
56
+
57
+ ## Enforcement
58
+
59
+ Instances of abusive, harassing, or otherwise unacceptable behaviour may be
60
+ reported to the maintainers through any of these channels:
61
+
62
+ - **GitHub issue or discussion**, mentioning `@meluo`
63
+ - **GitHub private message** to [@meluo](https://github.com/meluo)
64
+ - **Email** to <motedb@126.com> with the subject `[motedb conduct]`
65
+
66
+ All complaints will be reviewed and investigated promptly and fairly. The
67
+ project maintainer is obligated to respect the privacy and security of the
68
+ reporter of any incident.
69
+
70
+ **Our commitments:**
71
+
72
+ - Reports are handled confidentially
73
+ - The identity of the reporter is not disclosed publicly
74
+ - The maintainer responds to reports within 48 hours
75
+
76
+ ---
77
+
78
+ ## Enforcement guidelines
79
+
80
+ The project maintainers are responsible for clarifying and enforcing these
81
+ standards, and will take appropriate and fair corrective action in response to
82
+ any behaviour they deem inappropriate, threatening, offensive, or harmful.
83
+ Enforcement actions may include:
84
+
85
+ 1. **Correction** — a private, written warning from the maintainers, providing
86
+ clarity around the nature of the violation and an explanation of why the
87
+ behaviour was inappropriate
88
+ 2. **Warning** — a warning with consequences for continued behaviour, including
89
+ a period of no interaction with the people involved
90
+ 3. **Temporary ban** — a temporary ban from any sort of interaction or public
91
+ communication with the community
92
+ 4. **Permanent ban** — a permanent ban from any sort of public interaction
93
+ within the community
94
+
95
+ ---
96
+
97
+ ## Attribution
98
+
99
+ This Code of Conduct is adapted from the
100
+ [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, and
101
+ also draws on the
102
+ [Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct).
103
+
104
+ Questions or suggestions about this Code of Conduct belong in a discussion or
105
+ an issue on this repository.