hyperstreamdb 0.3.3__tar.gz → 0.4.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 (318) hide show
  1. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/Cargo.lock +19 -121
  2. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/Cargo.toml +14 -32
  3. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/PKG-INFO +1 -9
  4. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/build.rs +3 -3
  5. hyperstreamdb-0.4.0/docs/monitoring.md +57 -0
  6. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/pyproject.toml +2 -8
  7. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/python/hyperstreamdb/__init__.py +17 -4
  8. hyperstreamdb-0.4.0/recovered_plan.txt +0 -0
  9. hyperstreamdb-0.4.0/scripts/update_cache.py +46 -0
  10. hyperstreamdb-0.4.0/scripts/update_reader.py +57 -0
  11. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/bin/hdb.rs +9 -22
  12. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/cache.rs +23 -0
  13. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/compaction.rs +10 -0
  14. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/embeddings.rs +3 -3
  15. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/ffi.rs +14 -5
  16. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/iceberg/iceberg_delete.rs +10 -9
  17. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/iceberg.rs +236 -40
  18. hyperstreamdb-0.3.3/src/core/segment.rs → hyperstreamdb-0.4.0/src/core/index/build_inverted.rs +48 -792
  19. hyperstreamdb-0.4.0/src/core/index/build_vector.rs +98 -0
  20. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/gpu.rs +56 -56
  21. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_ivf.rs +2 -1
  22. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_rs/api.rs +1 -0
  23. hyperstreamdb-0.4.0/src/core/index/hnsw_rs/dist.rs +223 -0
  24. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_rs/hnswio.rs +3 -3
  25. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_rs/libext.rs +178 -472
  26. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_rs/mod.rs +1 -0
  27. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/mod.rs +3 -0
  28. hyperstreamdb-0.4.0/src/core/lock.rs +152 -0
  29. hyperstreamdb-0.3.3/src/core/manifest.rs → hyperstreamdb-0.4.0/src/core/manifest/manager.rs +66 -889
  30. hyperstreamdb-0.4.0/src/core/manifest/mod.rs +4 -0
  31. hyperstreamdb-0.4.0/src/core/manifest/types.rs +851 -0
  32. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/mod.rs +1 -0
  33. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/planner.rs +38 -6
  34. hyperstreamdb-0.4.0/src/core/reader/delete.rs +185 -0
  35. hyperstreamdb-0.4.0/src/core/reader/filter.rs +673 -0
  36. hyperstreamdb-0.4.0/src/core/reader/mod.rs +376 -0
  37. hyperstreamdb-0.4.0/src/core/reader/scan.rs +1234 -0
  38. hyperstreamdb-0.4.0/src/core/segment.rs +696 -0
  39. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/sql/mod.rs +35 -12
  40. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/sql/optimizer.rs +13 -3
  41. hyperstreamdb-0.4.0/src/core/sql/physical_plan/vector_merge.rs +223 -0
  42. hyperstreamdb-0.4.0/src/core/sql/physical_plan/vector_scan.rs +232 -0
  43. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/sql/physical_plan.rs +20 -91
  44. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/table/builder.rs +10 -10
  45. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/table/mod.rs +143 -85
  46. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/table/read.rs +132 -7
  47. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/table/schema.rs +5 -5
  48. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/table/write.rs +58 -39
  49. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/wal.rs +4 -4
  50. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/lib.rs +1 -0
  51. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/python_binding.rs +46 -22
  52. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/python_gpu_context.rs +33 -8
  53. hyperstreamdb-0.4.0/src/telemetry/metrics.rs +67 -0
  54. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/telemetry/tracing.rs +39 -13
  55. hyperstreamdb-0.4.0/tests/gpu_test_helpers.rs +5 -0
  56. hyperstreamdb-0.3.3/broken_binaries_all.txt +0 -134
  57. hyperstreamdb-0.3.3/broken_bins.txt +0 -107
  58. hyperstreamdb-0.3.3/compliance_output.txt +0 -152
  59. hyperstreamdb-0.3.3/debug_log.txt +0 -73
  60. hyperstreamdb-0.3.3/demo_basics_run.txt +0 -47
  61. hyperstreamdb-0.3.3/demo_basics_v2.txt +0 -21
  62. hyperstreamdb-0.3.3/python_test_output.txt +0 -2714
  63. hyperstreamdb-0.3.3/python_test_output_v2.txt +0 -2636
  64. hyperstreamdb-0.3.3/python_test_output_v3.txt +0 -1824
  65. hyperstreamdb-0.3.3/rust_check_all_warnings.txt +0 -1018
  66. hyperstreamdb-0.3.3/rust_test_output.txt +0 -447
  67. hyperstreamdb-0.3.3/rust_warnings.txt +0 -1071
  68. hyperstreamdb-0.3.3/simd_test_results.txt +0 -202
  69. hyperstreamdb-0.3.3/src/core/index/hnsw_rs/dist.rs +0 -1596
  70. hyperstreamdb-0.3.3/src/core/reader.rs +0 -1874
  71. hyperstreamdb-0.3.3/src/telemetry/metrics.rs +0 -35
  72. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/.gitattributes +0 -0
  73. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/.gitignore +0 -0
  74. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/.hypothesis/constants/32b327793848e7d8 +0 -0
  75. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/.hypothesis/constants/67b0a8ccf18bf5d2 +0 -0
  76. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/.hypothesis/constants/84828557b4ee7be4 +0 -0
  77. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/.instructions.md +0 -0
  78. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/.ipynb_checkpoints/Untitled-checkpoint.ipynb +0 -0
  79. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/CNAME +0 -0
  80. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/DORIS_OPTIMIZATION_PATTERNS.md +0 -0
  81. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/HyperStreamDB.png +0 -0
  82. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/LICENSE-APACHE +0 -0
  83. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/LICENSE-MIT +0 -0
  84. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/README.md +0 -0
  85. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/RUN_COMPLIANCE_TESTS.sh +0 -0
  86. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/STEERING.md +0 -0
  87. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/THIRDPARTY_NOTICES.md +0 -0
  88. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/Untitled.ipynb +0 -0
  89. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benches/bench_table.rs +0 -0
  90. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benches/performance.rs +0 -0
  91. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/BENCHMARK_REPORT.md +0 -0
  92. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/benchmark_charts.png +0 -0
  93. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/benchmark_results.csv +0 -0
  94. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/concurrent_queries_20260409_214245.json +0 -0
  95. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/concurrent_queries_20260409_214245.md +0 -0
  96. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_search_comparison_20260409_222607.json +0 -0
  97. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_search_comparison_20260409_222607.md +0 -0
  98. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_vector_search_20260409_214355.json +0 -0
  99. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_vector_search_20260409_214355.md +0 -0
  100. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_vector_search_20260409_220418.json +0 -0
  101. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_vector_search_20260409_220418.md +0 -0
  102. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_vector_search_20260409_222053.json +0 -0
  103. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_vector_search_20260409_222053.md +0 -0
  104. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_vector_search_20260409_225907.json +0 -0
  105. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/filtered_vector_search_20260409_225907.md +0 -0
  106. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/full_scan_baseline_20260409_222303.json +0 -0
  107. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/full_scan_baseline_20260409_222303.md +0 -0
  108. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/high_selectivity_filter_20260409_222302.json +0 -0
  109. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/high_selectivity_filter_20260409_222302.md +0 -0
  110. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/ingestion_comparison_20260409_222516.json +0 -0
  111. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/ingestion_comparison_20260409_222516.md +0 -0
  112. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_214428.json +0 -0
  113. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_214428.md +0 -0
  114. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_220450.json +0 -0
  115. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_220450.md +0 -0
  116. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_222131.json +0 -0
  117. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_222131.md +0 -0
  118. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_225938.json +0 -0
  119. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_225938.md +0 -0
  120. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_231713.json +0 -0
  121. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/multi_filter_vector_20260409_231713.md +0 -0
  122. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/post_vs_pre_filter_20260409_214501.json +0 -0
  123. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/post_vs_pre_filter_20260409_214501.md +0 -0
  124. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/post_vs_pre_filter_20260409_220524.json +0 -0
  125. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/post_vs_pre_filter_20260409_220524.md +0 -0
  126. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/post_vs_pre_filter_20260409_222204.json +0 -0
  127. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/post_vs_pre_filter_20260409_222204.md +0 -0
  128. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/post_vs_pre_filter_20260409_230010.json +0 -0
  129. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/post_vs_pre_filter_20260409_230010.md +0 -0
  130. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/query_comparison_20260409_222541.json +0 -0
  131. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/query_comparison_20260409_222541.md +0 -0
  132. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/range_query_20260409_222302.json +0 -0
  133. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/range_query_20260409_222302.md +0 -0
  134. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/search_filtered_high_selectivity_20260409_214144.json +0 -0
  135. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/search_filtered_high_selectivity_20260409_214144.md +0 -0
  136. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/search_unfiltered_20260409_214028.json +0 -0
  137. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/benchmark_results/search_unfiltered_20260409_214028.md +0 -0
  138. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/book.toml +0 -0
  139. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/build-connectors.sh +0 -0
  140. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/check_iceberg_compliance.py +0 -0
  141. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/critical_code_review.md +0 -0
  142. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docker-compose-minio-nessie.yml +0 -0
  143. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docker-compose.yml +0 -0
  144. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/.nojekyll +0 -0
  145. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/BENCHMARKING.md +0 -0
  146. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/COMPREHENSIVE_GUIDE.md +0 -0
  147. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/CONCURRENCY.md +0 -0
  148. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/CONFIGURATION.md +0 -0
  149. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/GPU_SETUP_GUIDE.md +0 -0
  150. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/ICEBERG_V2_V3_API.md +0 -0
  151. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/INSTALLATION.md +0 -0
  152. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/PGVECTOR_SQL_GUIDE.md +0 -0
  153. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/PYTHON_VECTOR_API.md +0 -0
  154. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/VECTOR_CONFIGURATION.md +0 -0
  155. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/api_reference.md +0 -0
  156. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/architecture.md +0 -0
  157. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/catalog_usage.md +0 -0
  158. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/index.md +0 -0
  159. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/integrations/README.md +0 -0
  160. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/integrations/java_jni.md +0 -0
  161. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/integrations/python.md +0 -0
  162. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/integrations/spark.md +0 -0
  163. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/integrations/trino.md +0 -0
  164. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/requirements.txt +0 -0
  165. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/source/_static/HyperStreamDB.png +0 -0
  166. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/source/api/python.rst +0 -0
  167. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/source/api/rust.rst +0 -0
  168. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/source/conf.py +0 -0
  169. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/source/index.rst +0 -0
  170. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/docs/source/roadmap.md +0 -0
  171. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/proptest-regressions/core/index/gpu.txt +0 -0
  172. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/proptest-regressions/core/sql/vector_literal.txt +0 -0
  173. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/proptest-regressions/core/sql/vector_udf.txt +0 -0
  174. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/python/hyperstreamdb/embeddings.py +0 -0
  175. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/scratch/check_os_error.rs +0 -0
  176. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0/scripts}/fix_nb.py +0 -0
  177. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0/scripts}/split_table.py +0 -0
  178. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0/scripts}/update_schema_patch.py +0 -0
  179. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0/scripts}/update_schema_patch2.py +0 -0
  180. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/.bloop/bloop.settings.json +0 -0
  181. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/.bloop/spark-hyperstream-test.json +0 -0
  182. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/.bloop/spark-hyperstream.json +0 -0
  183. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/pom.xml +0 -0
  184. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/DefaultSource.java +0 -0
  185. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartition.java +0 -0
  186. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartitionReader.java +0 -0
  187. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamPartitionReaderFactory.java +0 -0
  188. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamScanBuilder.java +0 -0
  189. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/spark-hyperstream/src/main/java/com/hyperstreamdb/spark/HyperStreamTable.java +0 -0
  190. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/bin/gateway.rs +0 -0
  191. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/bin/iceberg_rest.rs +0 -0
  192. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/bin/probe_datafusion.rs +0 -0
  193. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/bin/setup_test_data.rs +0 -0
  194. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/bin/verify_layered_indexing.rs +0 -0
  195. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/catalog/config.rs +0 -0
  196. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/catalog/glue.rs +0 -0
  197. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/catalog/hive.rs +0 -0
  198. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/catalog/jdbc.rs +0 -0
  199. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/catalog/mod.rs +0 -0
  200. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/catalog/nessie.rs +0 -0
  201. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/catalog/rest.rs +0 -0
  202. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/catalog/unity.rs +0 -0
  203. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/clustering.rs +0 -0
  204. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/cuda/cosine_distance.cu +0 -0
  205. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/cuda/hamming_distance.cu +0 -0
  206. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/cuda/inner_product.cu +0 -0
  207. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/cuda/jaccard_distance.cu +0 -0
  208. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/cuda/kmeans_assignment.cu +0 -0
  209. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/cuda/l1_distance.cu +0 -0
  210. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/cuda/l2_distance.cu +0 -0
  211. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/distance.rs +0 -0
  212. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_rs/annhdf5.rs +0 -0
  213. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_rs/flatten.rs +0 -0
  214. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_rs/hnsw.rs +0 -0
  215. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_rs/prelude.rs +0 -0
  216. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/hnsw_rs/test.rs +0 -0
  217. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/ivf.rs +0 -0
  218. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/memory.rs +0 -0
  219. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/mps/cosine_distance.metal +0 -0
  220. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/mps/hamming_distance.metal +0 -0
  221. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/mps/inner_product.metal +0 -0
  222. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/mps/jaccard_distance.metal +0 -0
  223. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/mps/kmeans_assignment.metal +0 -0
  224. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/mps/l1_distance.metal +0 -0
  225. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/mps/l2_distance.metal +0 -0
  226. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/opencl/cosine_distance.cl +0 -0
  227. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/opencl/hamming_distance.cl +0 -0
  228. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/opencl/inner_product.cl +0 -0
  229. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/opencl/jaccard_distance.cl +0 -0
  230. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/opencl/kmeans_assignment.cl +0 -0
  231. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/opencl/l1_distance.cl +0 -0
  232. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/opencl/l2_distance.cl +0 -0
  233. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/pq.rs +0 -0
  234. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/tokenizer.rs +0 -0
  235. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/turboquant.rs +0 -0
  236. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/index/wgpu_kernel.wgsl +0 -0
  237. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/license.rs +0 -0
  238. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/maintenance.rs +0 -0
  239. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/merge.rs +0 -0
  240. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/metadata.rs +0 -0
  241. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/nessie.rs +0 -0
  242. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/puffin.rs +0 -0
  243. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/query.rs +0 -0
  244. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/search/mod.rs +0 -0
  245. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/search/rrf.rs +0 -0
  246. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/sql/pgvector_rewriter.rs +0 -0
  247. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/sql/physical_plan/index_join.rs +0 -0
  248. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/sql/session.rs +0 -0
  249. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/sql/vector_literal.rs +0 -0
  250. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/sql/vector_operators.rs +0 -0
  251. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/sql/vector_udf.rs +0 -0
  252. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/storage.rs +0 -0
  253. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/core/table/fluent.rs +0 -0
  254. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/enterprise/continuous_indexing.rs +0 -0
  255. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/enterprise/license.rs +0 -0
  256. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/enterprise/mod.rs +0 -0
  257. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/index.rs.old +0 -0
  258. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/python_distance.rs +0 -0
  259. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/src/telemetry/mod.rs +0 -0
  260. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/task.md +0 -0
  261. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/all_types_index_test.rs +0 -0
  262. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/bin/generate_iceberg_manifests.rs +0 -0
  263. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/bin/verify_iceberg_read_check.rs +0 -0
  264. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/check_mmh3.py +0 -0
  265. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/data/download_nyc_taxi.sh +0 -0
  266. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/data/generate_embeddings.py +0 -0
  267. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/data/generate_wikipedia.py +0 -0
  268. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/data/start_nessie.sh +0 -0
  269. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/datafusion_rust_test.rs +0 -0
  270. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/debug_murmur3.rs +0 -0
  271. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/fuzz_murmur3.rs +0 -0
  272. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/integration_test_hnsw_ivf_native.rs +0 -0
  273. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/performance/README.md +0 -0
  274. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/prototype_merge.py +0 -0
  275. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0/tests/python}/verify_docstrings.py +0 -0
  276. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0/tests/python}/verify_fluent_api.py +0 -0
  277. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0/tests/python}/verify_unified_ingest.py +0 -0
  278. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/schema_evolution_test.rs +0 -0
  279. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/stability.rs +0 -0
  280. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_all_algos.py +0 -0
  281. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_catalog_commit.rs +0 -0
  282. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_compliance.rs +0 -0
  283. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_delete_correctness.rs +0 -0
  284. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_iceberg_python_delete.sh +0 -0
  285. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_iceberg_rest.sh +0 -0
  286. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_iceberg_rest_create.sh +0 -0
  287. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_iceberg_rest_delete.sh +0 -0
  288. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_iceberg_rest_remove_index.sh +0 -0
  289. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_iceberg_rest_update.sh +0 -0
  290. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_metadata_creation.rs +0 -0
  291. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_mor_reads.rs +0 -0
  292. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_mor_writes.rs +0 -0
  293. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_partition_transforms.rs +0 -0
  294. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_partitioned_writes.rs +0 -0
  295. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_puffin_index.sh +0 -0
  296. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_rest_updates.sh +0 -0
  297. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/tests/verify_schema_compat.rs +0 -0
  298. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/.DS_Store +0 -0
  299. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/catalog/glue_catalog.properties +0 -0
  300. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/catalog/hyperstreamdb.properties +0 -0
  301. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/catalog/iceberg.properties +0 -0
  302. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/catalog/memory.properties +0 -0
  303. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/catalog/postgres.properties +0 -0
  304. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/config.properties +0 -0
  305. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/entrypoint.sh +0 -0
  306. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/jvm.config +0 -0
  307. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config/node.properties +0 -0
  308. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-config.zip +0 -0
  309. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/pom.xml +0 -0
  310. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBColumnHandle.java +0 -0
  311. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBConnectorFactory.java +0 -0
  312. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBMetadata.java +0 -0
  313. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPageSource.java +0 -0
  314. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPageSourceProvider.java +0 -0
  315. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBPlugin.java +0 -0
  316. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBSplit.java +0 -0
  317. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBSplitManager.java +0 -0
  318. {hyperstreamdb-0.3.3 → hyperstreamdb-0.4.0}/trino-hyperstream/src/main/java/com/hyperstreamdb/trino/HyperStreamDBTableHandle.java +0 -0
@@ -14,12 +14,6 @@ version = "1.2.0"
14
14
  source = "registry+https://github.com/rust-lang/crates.io-index"
15
15
  checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
16
16
 
17
- [[package]]
18
- name = "ahash"
19
- version = "0.4.8"
20
- source = "registry+https://github.com/rust-lang/crates.io-index"
21
- checksum = "0453232ace82dee0dd0b4c87a59bd90f7b53b314f3e0f61fe2ee7c8a16482289"
22
-
23
17
  [[package]]
24
18
  name = "ahash"
25
19
  version = "0.8.12"
@@ -160,15 +154,6 @@ dependencies = [
160
154
  "uuid",
161
155
  ]
162
156
 
163
- [[package]]
164
- name = "approx"
165
- version = "0.5.1"
166
- source = "registry+https://github.com/rust-lang/crates.io-index"
167
- checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
168
- dependencies = [
169
- "num-traits",
170
- ]
171
-
172
157
  [[package]]
173
158
  name = "ar_archive_writer"
174
159
  version = "0.5.1"
@@ -232,7 +217,7 @@ version = "57.3.0"
232
217
  source = "registry+https://github.com/rust-lang/crates.io-index"
233
218
  checksum = "4c8955af33b25f3b175ee10af580577280b4bd01f7e823d94c7cdef7cf8c9aef"
234
219
  dependencies = [
235
- "ahash 0.8.12",
220
+ "ahash",
236
221
  "arrow-buffer",
237
222
  "arrow-data",
238
223
  "arrow-schema",
@@ -402,7 +387,7 @@ version = "57.3.0"
402
387
  source = "registry+https://github.com/rust-lang/crates.io-index"
403
388
  checksum = "68bf3e3efbd1278f770d67e5dc410257300b161b93baedb3aae836144edcaf4b"
404
389
  dependencies = [
405
- "ahash 0.8.12",
390
+ "ahash",
406
391
  "arrow-array",
407
392
  "arrow-buffer",
408
393
  "arrow-data",
@@ -1330,17 +1315,6 @@ dependencies = [
1330
1315
  "half",
1331
1316
  ]
1332
1317
 
1333
- [[package]]
1334
- name = "cl3"
1335
- version = "0.9.5"
1336
- source = "registry+https://github.com/rust-lang/crates.io-index"
1337
- checksum = "b823f24e72fa0c68aa14a250ae1c0848e68d4ae188b71c3972343e45b46f8644"
1338
- dependencies = [
1339
- "libc",
1340
- "opencl-sys",
1341
- "thiserror 1.0.69",
1342
- ]
1343
-
1344
1318
  [[package]]
1345
1319
  name = "clap"
1346
1320
  version = "4.6.0"
@@ -1893,7 +1867,7 @@ version = "52.4.0"
1893
1867
  source = "registry+https://github.com/rust-lang/crates.io-index"
1894
1868
  checksum = "205dc1e20441973f470e6b7ef87626a3b9187970e5106058fef1b713047f770c"
1895
1869
  dependencies = [
1896
- "ahash 0.8.12",
1870
+ "ahash",
1897
1871
  "arrow",
1898
1872
  "arrow-ipc",
1899
1873
  "chrono",
@@ -2156,7 +2130,7 @@ version = "52.4.0"
2156
2130
  source = "registry+https://github.com/rust-lang/crates.io-index"
2157
2131
  checksum = "4e42c227d9e55a6c8041785d4a8a117e4de531033d480aae10984247ac62e27e"
2158
2132
  dependencies = [
2159
- "ahash 0.8.12",
2133
+ "ahash",
2160
2134
  "arrow",
2161
2135
  "datafusion-common",
2162
2136
  "datafusion-doc",
@@ -2177,7 +2151,7 @@ version = "52.4.0"
2177
2151
  source = "registry+https://github.com/rust-lang/crates.io-index"
2178
2152
  checksum = "cead3cfed825b0b688700f4338d281cd7857e4907775a5b9554c083edd5f3f95"
2179
2153
  dependencies = [
2180
- "ahash 0.8.12",
2154
+ "ahash",
2181
2155
  "arrow",
2182
2156
  "datafusion-common",
2183
2157
  "datafusion-expr-common",
@@ -2288,7 +2262,7 @@ version = "52.4.0"
2288
2262
  source = "registry+https://github.com/rust-lang/crates.io-index"
2289
2263
  checksum = "987c5e29e96186589301b42e25aa7d11bbe319a73eb02ef8d755edc55b5b89fc"
2290
2264
  dependencies = [
2291
- "ahash 0.8.12",
2265
+ "ahash",
2292
2266
  "arrow",
2293
2267
  "datafusion-common",
2294
2268
  "datafusion-expr",
@@ -2327,7 +2301,7 @@ version = "52.4.0"
2327
2301
  source = "registry+https://github.com/rust-lang/crates.io-index"
2328
2302
  checksum = "602d1970c0fe87f1c3a36665d131fbfe1c4379d35f8fc5ec43a362229ad2954d"
2329
2303
  dependencies = [
2330
- "ahash 0.8.12",
2304
+ "ahash",
2331
2305
  "arrow",
2332
2306
  "chrono",
2333
2307
  "datafusion-common",
@@ -2363,7 +2337,7 @@ version = "52.4.0"
2363
2337
  source = "registry+https://github.com/rust-lang/crates.io-index"
2364
2338
  checksum = "c21d94141ea5043e98793f170798e9c1887095813b8291c5260599341e383a38"
2365
2339
  dependencies = [
2366
- "ahash 0.8.12",
2340
+ "ahash",
2367
2341
  "arrow",
2368
2342
  "arrow-ord",
2369
2343
  "arrow-schema",
@@ -3047,15 +3021,6 @@ dependencies = [
3047
3021
  "zerocopy",
3048
3022
  ]
3049
3023
 
3050
- [[package]]
3051
- name = "hashbrown"
3052
- version = "0.9.1"
3053
- source = "registry+https://github.com/rust-lang/crates.io-index"
3054
- checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
3055
- dependencies = [
3056
- "ahash 0.4.8",
3057
- ]
3058
-
3059
3024
  [[package]]
3060
3025
  name = "hashbrown"
3061
3026
  version = "0.12.3"
@@ -3067,6 +3032,10 @@ name = "hashbrown"
3067
3032
  version = "0.14.5"
3068
3033
  source = "registry+https://github.com/rust-lang/crates.io-index"
3069
3034
  checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
3035
+ dependencies = [
3036
+ "ahash",
3037
+ "allocator-api2",
3038
+ ]
3070
3039
 
3071
3040
  [[package]]
3072
3041
  name = "hashbrown"
@@ -3364,20 +3333,11 @@ dependencies = [
3364
3333
  "tracing",
3365
3334
  ]
3366
3335
 
3367
- [[package]]
3368
- name = "hyperloglogplus"
3369
- version = "0.4.1"
3370
- source = "registry+https://github.com/rust-lang/crates.io-index"
3371
- checksum = "621debdf94dcac33e50475fdd76d34d5ea9c0362a834b9db08c3024696c1fbe3"
3372
- dependencies = [
3373
- "serde",
3374
- ]
3375
-
3376
3336
  [[package]]
3377
3337
  name = "hyperstreamdb"
3378
- version = "0.3.3"
3338
+ version = "0.4.0"
3379
3339
  dependencies = [
3380
- "ahash 0.8.12",
3340
+ "ahash",
3381
3341
  "anyhow",
3382
3342
  "apache-avro",
3383
3343
  "arrow",
@@ -3407,27 +3367,23 @@ dependencies = [
3407
3367
  "env_logger",
3408
3368
  "faststr",
3409
3369
  "futures",
3410
- "hashbrown 0.9.1",
3370
+ "hashbrown 0.14.5",
3411
3371
  "hive_metastore",
3412
- "hyperloglogplus",
3413
3372
  "jni",
3414
3373
  "lazy_static",
3415
3374
  "log",
3416
3375
  "metal 0.27.0",
3417
3376
  "moka",
3418
3377
  "murmur3",
3419
- "num-traits",
3420
3378
  "num_cpus",
3421
3379
  "numpy",
3422
3380
  "object_store",
3423
3381
  "once_cell",
3424
- "opencl3",
3425
3382
  "opentelemetry",
3426
3383
  "opentelemetry-otlp",
3427
3384
  "opentelemetry_sdk",
3428
3385
  "parking_lot",
3429
3386
  "parquet",
3430
- "pilota",
3431
3387
  "pollster",
3432
3388
  "prometheus",
3433
3389
  "proptest",
@@ -3444,7 +3400,6 @@ dependencies = [
3444
3400
  "serde_json",
3445
3401
  "sha2",
3446
3402
  "skiplist",
3447
- "smartcore",
3448
3403
  "sqlx",
3449
3404
  "tempfile",
3450
3405
  "thiserror 1.0.69",
@@ -4105,7 +4060,7 @@ version = "0.7.14"
4105
4060
  source = "registry+https://github.com/rust-lang/crates.io-index"
4106
4061
  checksum = "cdc67a1d6ef0340a7f5152b9fd34ad7477b4d518920f7557267f1fc6e5a62641"
4107
4062
  dependencies = [
4108
- "ahash 0.8.12",
4063
+ "ahash",
4109
4064
  "faststr",
4110
4065
  "paste",
4111
4066
  "rustc-hash 2.1.1",
@@ -4332,20 +4287,6 @@ dependencies = [
4332
4287
  "windows-sys 0.61.2",
4333
4288
  ]
4334
4289
 
4335
- [[package]]
4336
- name = "num"
4337
- version = "0.4.3"
4338
- source = "registry+https://github.com/rust-lang/crates.io-index"
4339
- checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23"
4340
- dependencies = [
4341
- "num-bigint",
4342
- "num-complex",
4343
- "num-integer",
4344
- "num-iter",
4345
- "num-rational",
4346
- "num-traits",
4347
- ]
4348
-
4349
4290
  [[package]]
4350
4291
  name = "num-bigint"
4351
4292
  version = "0.4.6"
@@ -4408,17 +4349,6 @@ dependencies = [
4408
4349
  "num-traits",
4409
4350
  ]
4410
4351
 
4411
- [[package]]
4412
- name = "num-rational"
4413
- version = "0.4.2"
4414
- source = "registry+https://github.com/rust-lang/crates.io-index"
4415
- checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824"
4416
- dependencies = [
4417
- "num-bigint",
4418
- "num-integer",
4419
- "num-traits",
4420
- ]
4421
-
4422
4352
  [[package]]
4423
4353
  name = "num-traits"
4424
4354
  version = "0.2.19"
@@ -4561,25 +4491,6 @@ version = "11.1.5"
4561
4491
  source = "registry+https://github.com/rust-lang/crates.io-index"
4562
4492
  checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
4563
4493
 
4564
- [[package]]
4565
- name = "opencl-sys"
4566
- version = "0.2.9"
4567
- source = "registry+https://github.com/rust-lang/crates.io-index"
4568
- checksum = "de15dd01496ae90c5799f5266184ab020082b4065800ff0b732f489371d0e5cf"
4569
- dependencies = [
4570
- "libc",
4571
- ]
4572
-
4573
- [[package]]
4574
- name = "opencl3"
4575
- version = "0.9.5"
4576
- source = "registry+https://github.com/rust-lang/crates.io-index"
4577
- checksum = "26ab4a90cb496f787d3934deb0c54fa9d65e7bed710c10071234aab0196fba04"
4578
- dependencies = [
4579
- "cl3",
4580
- "libc",
4581
- ]
4582
-
4583
4494
  [[package]]
4584
4495
  name = "openssl-probe"
4585
4496
  version = "0.2.1"
@@ -4727,7 +4638,7 @@ version = "57.3.0"
4727
4638
  source = "registry+https://github.com/rust-lang/crates.io-index"
4728
4639
  checksum = "6ee96b29972a257b855ff2341b37e61af5f12d6af1158b6dcdb5b31ea07bb3cb"
4729
4640
  dependencies = [
4730
- "ahash 0.8.12",
4641
+ "ahash",
4731
4642
  "arrow-array",
4732
4643
  "arrow-buffer",
4733
4644
  "arrow-cast",
@@ -4815,7 +4726,7 @@ version = "0.11.10"
4815
4726
  source = "registry+https://github.com/rust-lang/crates.io-index"
4816
4727
  checksum = "520e32b295867834617b8a352b6fd4837e578f328f4e48813db4904ebc0d70b2"
4817
4728
  dependencies = [
4818
- "ahash 0.8.12",
4729
+ "ahash",
4819
4730
  "anyhow",
4820
4731
  "async-recursion",
4821
4732
  "bytes",
@@ -6188,19 +6099,6 @@ dependencies = [
6188
6099
  "serde",
6189
6100
  ]
6190
6101
 
6191
- [[package]]
6192
- name = "smartcore"
6193
- version = "0.3.2"
6194
- source = "registry+https://github.com/rust-lang/crates.io-index"
6195
- checksum = "c42ca1fcd851ada8834d3dfcd088850dc8c703bde50c2baccd89181b74dc3ade"
6196
- dependencies = [
6197
- "approx",
6198
- "cfg-if",
6199
- "num",
6200
- "num-traits",
6201
- "rand 0.8.5",
6202
- ]
6203
-
6204
6102
  [[package]]
6205
6103
  name = "snap"
6206
6104
  version = "1.1.1"
@@ -7373,7 +7271,7 @@ version = "0.10.8"
7373
7271
  source = "registry+https://github.com/rust-lang/crates.io-index"
7374
7272
  checksum = "a4a41a936651c3b8206339898466fd4f39596cfedf789e5ee6a8d02a45feb45f"
7375
7273
  dependencies = [
7376
- "ahash 0.8.12",
7274
+ "ahash",
7377
7275
  "anyhow",
7378
7276
  "bytes",
7379
7277
  "chrono",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "hyperstreamdb"
3
- version = "0.3.3"
3
+ version = "0.4.0"
4
4
  edition = "2021"
5
5
  license = "MIT AND Apache-2.0"
6
6
  description = "HyperStreamDB - Serverless Index-Streaming Database with Overlay Indexing and Vector Search"
@@ -30,20 +30,16 @@ name = "hyperstreamdb"
30
30
  crate-type = ["cdylib", "rlib"]
31
31
 
32
32
  [features]
33
- default = []
33
+ default = ["simd"]
34
34
  enterprise = []
35
- python = ["dep:pyo3", "pyo3/extension-module", "dep:numpy", "dep:pythonize"]
35
+ python = ["dep:pyo3", "pyo3/extension-module", "dep:numpy", "dep:pythonize", "wgpu", "pollster"]
36
36
  java = ["dep:jni"]
37
- simdeez_f = []
38
37
  stdsimd = []
39
- intel_cpu = ["simdeez_f", "stdsimd"]
40
- simd = ["intel_cpu"]
38
+ simd = []
41
39
 
42
40
  # GPU Acceleration Features
43
- cuda = ["dep:cudarc"]
44
- mps = []
45
- rocm = []
46
- intel = []
41
+ wgpu = ["dep:wgpu"]
42
+ pollster = ["dep:pollster"]
47
43
 
48
44
  [dependencies]
49
45
  # core columnar memory format
@@ -79,7 +75,6 @@ aws-sdk-glue = "1.0"
79
75
 
80
76
  # Thrift for Hive Metastore
81
77
  volo-thrift = "0.10"
82
- pilota = "0.11"
83
78
 
84
79
  # Hardware Acceleration (moved to bottom of file)
85
80
  # indexing
@@ -90,11 +85,9 @@ bincode = "1.3"
90
85
  cpu-time = "1.0"
91
86
  env_logger = "0.10"
92
87
  log = "0.4"
93
- hashbrown = "0.9"
94
- num-traits = "0.2"
88
+ hashbrown = "0.14"
95
89
  num_cpus = "1.16"
96
90
  parking_lot = "0.12"
97
- skiplist = "0.3"
98
91
  # lance removed due to missing protoc
99
92
 
100
93
  # error handling
@@ -117,9 +110,7 @@ datafusion-functions = "52.0.0"
117
110
  datafusion-functions-aggregate = "52.0.0"
118
111
  datafusion-functions-aggregate-common = "52.0.0"
119
112
  async-stream = "0.3.6"
120
- smartcore = "0.3" # For k-means clustering (IVF index)
121
- rand = "0.8" # For k-means initialization
122
- hyperloglogplus = "0.4" # For NDV (distinct count) estimation
113
+ rand = "0.8"
123
114
  clap = { version = "4.5.54", features = ["derive"] }
124
115
  rustyline = "17.0.2"
125
116
  hive_metastore = "0.2.0"
@@ -132,28 +123,19 @@ opentelemetry-otlp = { version = "0.15", features = ["grpc-tonic"] }
132
123
  opentelemetry_sdk = { version = "0.22", features = ["rt-tokio"] }
133
124
  tracing-opentelemetry = "0.23"
134
125
  base64 = "0.22.1"
135
- sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "postgres", "mysql", "chrono", "uuid", "any"] }
126
+ sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "sqlite", "chrono", "uuid", "any"] }
136
127
  murmur3 = "0.5.2"
137
128
  regex = "1.10"
138
129
 
139
130
  sha2 = "0.10"
140
- wgpu = "0.20.0"
141
- pollster = "0.4.0"
131
+ wgpu = { version = "0.20.0", optional = true }
132
+ pollster = { version = "0.4.0", optional = true }
142
133
 
143
134
  [target.'cfg(not(target_os = "macos"))'.dependencies]
144
- cudarc = { version = "0.13.0", features = ["driver", "nvrtc", "cuda-12000"], optional = true }
145
- opencl3 = { version = "0.9" } # Intel / OpenCL
135
+ cudarc = { version = "0.13.0", features = ["driver", "nvrtc", "cuda-12000"] }
146
136
 
147
137
  [target.'cfg(target_os = "macos")'.dependencies]
148
- metal = { version = "0.27.0" } # MPS
149
- opencl3 = { version = "0.9" } # Intel / OpenCL
150
-
151
- [target.'cfg(target_os = "linux")'.dependencies]
152
- # rocm-smi = { version = "0.4.0", optional = true } # ROCm monitoring
153
- # Note: rocm-rs is not on crates.io, we will use git or a local path if needed.
154
- # For now, we will use opencl3 as a fallback/stub for ROCm or assume system libraries.
155
- # If rocm-rs is required, we can add:
156
- # rocm-rs = { git = "https://github.com/RadeonOpenCompute/rocm-rs", optional = true }
138
+ metal = { version = "0.27.0" } # MPS
157
139
 
158
140
  [dependencies.jni]
159
141
  version = "0.21"
@@ -180,6 +162,7 @@ rand_distr = "0.4"
180
162
  # hnsw_rs removed and internalized
181
163
  tempfile = "3.10"
182
164
  proptest = "1.4"
165
+ skiplist = "0.3"
183
166
 
184
167
  [[bin]]
185
168
  name = "generate_iceberg_manifests"
@@ -196,4 +179,3 @@ harness = false
196
179
  [[bench]]
197
180
  name = "bench_table"
198
181
  harness = false
199
-
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperstreamdb
3
- Version: 0.3.3
3
+ Version: 0.4.0
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Programming Language :: Rust
@@ -16,20 +16,12 @@ Classifier: Topic :: Database
16
16
  Classifier: Topic :: Scientific/Engineering
17
17
  Requires-Dist: pyarrow>=14.0.0
18
18
  Requires-Dist: numpy>=1.20.0
19
- Requires-Dist: mps ; extra == 'all-gpu'
20
- Requires-Dist: cuda ; extra == 'all-gpu'
21
- Requires-Dist: rocm ; extra == 'all-gpu'
22
- Requires-Dist: intel ; extra == 'all-gpu'
23
19
  Requires-Dist: pytest>=7.0 ; extra == 'dev'
24
20
  Requires-Dist: pytest-asyncio>=0.21 ; extra == 'dev'
25
21
  Requires-Dist: maturin>=1.7 ; extra == 'dev'
26
22
  Requires-Dist: maturin>=1.7 ; extra == 'src'
27
23
  Provides-Extra: all_gpu
28
- Provides-Extra: cuda
29
24
  Provides-Extra: dev
30
- Provides-Extra: intel
31
- Provides-Extra: mps
32
- Provides-Extra: rocm
33
25
  Provides-Extra: src
34
26
  License-File: LICENSE-APACHE
35
27
  License-File: LICENSE-MIT
@@ -19,10 +19,10 @@ fn main() {
19
19
 
20
20
  let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap_or_default();
21
21
 
22
- // CUDA kernel compilation - only when the cuda feature is explicitly enabled
22
+ // CUDA kernel compilation - unconditionally on non-macos platforms
23
23
  // (MPS is handled by #[cfg(target_os = "macos")] in source code)
24
24
  // (Intel/ROCm are handled natively via WGPU)
25
- if env::var("CARGO_FEATURE_CUDA").is_ok() && target_os != "macos" {
25
+ if target_os != "macos" {
26
26
  let has_nvcc = Command::new("nvcc").arg("--version").output().is_ok();
27
27
 
28
28
  if has_nvcc {
@@ -51,7 +51,7 @@ fn main() {
51
51
  }
52
52
  }
53
53
  } else {
54
- println!("cargo:warning=CUDA feature enabled but nvcc not found. Creating dummy PTX files to allow CI to pass Cargo Check/Docs.");
54
+ println!("cargo:warning=nvcc not found. Creating dummy PTX files to allow CI to pass Cargo Check/Docs.");
55
55
  let out_dir = env::var("OUT_DIR").unwrap();
56
56
  let kernels = vec![
57
57
  "l2_distance",
@@ -0,0 +1,57 @@
1
+ # HyperStreamDB Monitoring & Operations
2
+
3
+ HyperStreamDB is designed to be highly observable and easy to operate in serverless, ephemeral environments as well as traditional long-running daemon setups.
4
+
5
+ ## Telemetry & Tracing
6
+
7
+ HyperStreamDB leverages a push-based OpenTelemetry (OTLP) pipeline to export distributed traces. Because it often runs in serverless functions (like AWS Lambda) where instances may be frozen between invocations, the `Table` API explicitly flushes traces on teardown (via the `Drop` trait) to ensure no data is lost.
8
+
9
+ ### Configuration
10
+
11
+ Tracing is disabled by default. To enable tracing, set the `JAEGER_ENABLED` environment variable. When enabled, traces are automatically pushed to an OTLP-compatible endpoint.
12
+
13
+ | Environment Variable | Description | Default |
14
+ |----------------------|-------------|---------|
15
+ | `JAEGER_ENABLED` | Set to `true` to enable OpenTelemetry exporting. | `false` |
16
+ | `OTEL_EXPORTER_OTLP_ENDPOINT` | The destination URL for OTLP traces. | `http://localhost:4317` (OTLP/gRPC default) |
17
+ | `RUST_LOG` | The log level filter (e.g., `info`, `hyperstreamdb=debug`). | `info` |
18
+
19
+ ### Core Instrumentation
20
+ We instrument key paths to provide visibility into latency and bottlenecks:
21
+ - **Write Path:** `write_async`, `commit_async`
22
+ - **Read Path:** `read_async`, `stream_all`, `vector_search_index`, `vector_search_flat`
23
+ - **Manifest Orchestration:** Optimistic concurrency loops, schema updates, and conflict resolution in the `ManifestManager`.
24
+
25
+ ## Stateless Operational CLI (`hdb`)
26
+
27
+ The `hdb` binary is a standalone CLI tool that performs administrative actions directly against the object storage tier without requiring a long-running database server to be active.
28
+
29
+ ### Usage
30
+
31
+ ```bash
32
+ # Start an interactive SQL REPL
33
+ hdb repl
34
+
35
+ # Execute a single SQL query
36
+ hdb query --query "SELECT * FROM my_table LIMIT 10"
37
+
38
+ # Register a table in the session
39
+ hdb register --name my_table --uri s3://my-bucket/my-table
40
+ ```
41
+
42
+ ### Table Management
43
+
44
+ You can perform routine maintenance using the `hdb table` subcommand:
45
+
46
+ ```bash
47
+ # Inspect table metadata and statistics
48
+ hdb table inspect --uri s3://my-bucket/my-table
49
+
50
+ # Compact small data files to optimize read performance
51
+ hdb table compact --uri s3://my-bucket/my-table
52
+
53
+ # Vacuum (delete) data files that are no longer referenced and older than N days
54
+ hdb table vacuum --uri s3://my-bucket/my-table --older-than-days 7
55
+ ```
56
+
57
+ *Note: The CLI is stateless; it interacts directly with the storage URI.*
@@ -41,11 +41,7 @@ dev = [
41
41
  "maturin>=1.7",
42
42
  ]
43
43
  # Hardware acceleration extras
44
- mps = [] # Apple Silicon (Metal)
45
- cuda = [] # NVIDIA (CUDA)
46
- rocm = [] # AMD (via OpenCL/ROCm)
47
- intel = [] # Intel (OpenCL)
48
- all_gpu = ["mps", "cuda", "rocm", "intel"]
44
+ all_gpu = []
49
45
  src = ["maturin>=1.7"]
50
46
 
51
47
  [project.urls]
@@ -54,9 +50,7 @@ Repository = "https://github.com/rla3rd/hyperstreamdb"
54
50
 
55
51
  [tool.maturin]
56
52
  features = ["python"]
57
- # Map pip extras to Cargo features for source builds
58
- # e.g. pip install hyperstreamdb[cuda] --no-binary :all:
59
- extra-features = { cuda = ["python", "cuda"], mps = ["python", "mps"], rocm = ["python", "rocm"], intel = ["python", "intel"] }
53
+ # Build both the Rust library and Python bindings (multi-version compatible)
60
54
  module-name = "hyperstreamdb.hyperstreamdb"
61
55
  python-source = "python"
62
56
  # Build both the Rust library and Python bindings (multi-version compatible)
@@ -1,3 +1,5 @@
1
+ from typing import List, Optional, Union, Dict, Any
2
+ import os
1
3
  from .hyperstreamdb import Device as _Device
2
4
  from .hyperstreamdb import Table as _RustTable
3
5
  from .hyperstreamdb import Session as _RustSession
@@ -15,7 +17,7 @@ class Device:
15
17
  HyperStreamDB Compute Device (CPU, CUDA, MPS, ROCm, Intel).
16
18
  - **Torch Alignment** - Automatically aliases `cuda` to `rocm` on AMD hardware if `torch.version.hip` is detected.
17
19
  """
18
- def __new__(cls, device: str = "cpu", index: int = 0):
20
+ def __new__(cls, device: str = "cpu", index: Optional[int] = None):
19
21
  device = device.lower()
20
22
  # 1. Handle Torch-style alignment
21
23
  if device.startswith("cuda"):
@@ -93,8 +95,6 @@ try:
93
95
  import polars as pl
94
96
  except ImportError:
95
97
  pl = None
96
- from typing import List, Optional, Union, Dict, Any
97
- import os
98
98
 
99
99
  class IndexType:
100
100
  """
@@ -110,6 +110,10 @@ def _resolve_uri(uri: str) -> str:
110
110
  if not uri.startswith(("s3://", "file://", "az://", "gs://", "http://", "https://")):
111
111
  return f"file://{os.abspath(uri)}" if hasattr(os, "abspath") else uri
112
112
  return uri
113
+
114
+ def open_table(uri: str, **kwargs) -> Table:
115
+ """Open an existing HyperStreamDB table."""
116
+ return Table(uri, **kwargs)
113
117
  class Query:
114
118
  """
115
119
  Fluent Query interface for HyperStreamDB.
@@ -619,10 +623,19 @@ class Table:
619
623
  """
620
624
  return self._inner.set_index_columns(config)
621
625
 
622
- def add_index(self, column: str, algorithm: Union[str, Dict[str, Any]] = "hnsw"):
626
+ def add_index(self, column: str, algorithm: Union[str, Dict[str, Any]] = "hnsw", **kwargs):
623
627
  """
624
628
  Add an indexing strategy to a column.
625
629
  """
630
+ if isinstance(algorithm, str):
631
+ algorithm = {"type": algorithm}
632
+
633
+ if kwargs:
634
+ # Map 'device' to 'build_device' for consistency with set_index_config
635
+ if 'device' in kwargs:
636
+ kwargs['build_device'] = kwargs.pop('device')
637
+ algorithm.update(kwargs)
638
+
626
639
  return self._inner.add_index(column, algorithm)
627
640
 
628
641
  def drop_index(self, column: str):
File without changes
@@ -0,0 +1,46 @@
1
+ import re
2
+ import os
3
+
4
+ files_to_update = [
5
+ "src/core/index/hnsw_ivf.rs",
6
+ "src/core/manifest.rs",
7
+ "src/core/reader.rs"
8
+ ]
9
+
10
+ cache_names = {
11
+ "HNSW_IVF_CACHE": "hnsw_ivf",
12
+ "LATEST_VERSION_CACHE": "latest_version",
13
+ "MANIFEST_CACHE": "manifest",
14
+ "MANIFEST_LIST_CACHE": "manifest_list",
15
+ "BLOOM_FILTER_CACHE": "bloom_filter",
16
+ "INVERTED_INDEX_CACHE": "inverted_index",
17
+ "BYTE_CACHE": "byte",
18
+ "INDEX_CACHE": "index",
19
+ "PARQUET_META_CACHE": "parquet_meta",
20
+ "BLOCK_CACHE": "block",
21
+ "HNSW_CACHE": "hnsw"
22
+ }
23
+
24
+ for file_path in files_to_update:
25
+ with open(file_path, "r") as f:
26
+ content = f.read()
27
+
28
+ # We need to add `use crate::core::cache::CacheExt;` at the top of the files if not already there
29
+ if "use crate::core::cache::CacheExt;" not in content:
30
+ # Find the first use statement and add it
31
+ content = re.sub(r'^(use [^;]+;)', r'use crate::core::cache::CacheExt;\n\1', content, count=1, flags=re.MULTILINE)
32
+
33
+ for cache_var, cache_name in cache_names.items():
34
+ # Match something like `CACHE_VAR.get(&key).await`
35
+ # or `crate::core::cache::CACHE_VAR.get(&key).await`
36
+ pattern = r'(' + cache_var + r')\.get\(([^)]+)\)'
37
+
38
+ def replacer(match):
39
+ return f'{match.group(1)}.get_with_metrics({match.group(2)}, "{cache_name}")'
40
+
41
+ content = re.sub(pattern, replacer, content)
42
+
43
+ with open(file_path, "w") as f:
44
+ f.write(content)
45
+
46
+ print("Updated files.")