sqlitegraph 0.4.0__tar.gz → 0.4.1__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 (449) hide show
  1. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/Cargo.lock +3 -3
  2. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/PKG-INFO +1 -1
  3. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/pyproject.toml +1 -1
  4. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/Cargo.toml +1 -1
  5. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/entity_ops.rs +44 -19
  6. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/schema.rs +13 -0
  7. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cypher_tests.rs +93 -0
  8. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/instrumentation_tests.rs +6 -1
  9. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/CHANGELOG.md +14 -0
  10. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/Cargo.toml +1 -1
  11. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/Cargo.toml +0 -0
  12. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/README.md +0 -0
  13. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/python/sqlitegraph/__init__.py +0 -0
  14. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/python/sqlitegraph/_native.pyi +0 -0
  15. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/python/sqlitegraph/py.typed +0 -0
  16. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/.gitignore +0 -0
  17. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/BLOCK_AWARE_CACHE_BEHAVIOR_REPORT.md +0 -0
  18. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/BLOCK_LOCALITY_PROTOTYPE_REPORT.md +0 -0
  19. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/BUG_10K_INVESTIGATION_SUMMARY.md +0 -0
  20. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/BUG_SNAPSHOTID_SQLITE_BACKEND.md +0 -0
  21. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/CACHE_CAPACITY_SWEEP_REPORT.md +0 -0
  22. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/CACHE_CLONE_FIX_REPORT.md +0 -0
  23. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/CHANGELOG.md +0 -0
  24. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/COLD_PATH_FORENSICS_REPORT.md +0 -0
  25. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/COLD_WARM_BENCHMARK_SPLIT_REPORT.md +0 -0
  26. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/EDGE_CORRUPTION_ROOT_CAUSE.md +0 -0
  27. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/LICENSE +0 -0
  28. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/MAIN_BENCHMARK_RERUN_REPORT.md +0 -0
  29. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/NODE_PAGE_OVERFLOW_FIX_REPORT.md +0 -0
  30. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/PAGE_ID_COLLISION_ROOT_CAUSE.md +0 -0
  31. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/PHASE3_NODE_PAGE_CACHE_FIX_REPORT.md +0 -0
  32. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/PHYSICAL_BLOCK_PLACEMENT_PROTOTYPE_REPORT.md +0 -0
  33. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/README.md +0 -0
  34. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/REBUILD_INDEXES_FIX_REPORT.md +0 -0
  35. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/REOPEN_CORRUPTION_FORENSICS.md +0 -0
  36. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/V3_10K_NODE_BUG_FIX.md +0 -0
  37. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/V3_FILE_IO_COORDINATION.md +0 -0
  38. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/V3_FORENSIC_REPORT.md +0 -0
  39. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/V3_REGRESSION_SWEEP_REPORT.md +0 -0
  40. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/adaptive_page_simple.rs +0 -0
  41. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/adjlist_benchmark.rs +0 -0
  42. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/algo_benchmarks.rs +0 -0
  43. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/backend_comparison.rs +0 -0
  44. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/bench_utils.rs +0 -0
  45. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/bfs.rs +0 -0
  46. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/cold_cache.rs +0 -0
  47. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/comparative_benchmark.rs +0 -0
  48. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/comprehensive_performance.rs +0 -0
  49. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/compression_benchmark.rs +0 -0
  50. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/concurrent_access.rs +0 -0
  51. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/connection_pool.rs +0 -0
  52. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/graph_generators.rs +0 -0
  53. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/graph_theory_benchmarks.rs +0 -0
  54. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/hnsw.rs +0 -0
  55. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/hnsw_multilayer.rs +0 -0
  56. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/insert.rs +0 -0
  57. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/k_hop.rs +0 -0
  58. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/memory_profiling.rs +0 -0
  59. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/mvcc_benchmarks.rs +0 -0
  60. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/native_disk_io.rs +0 -0
  61. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/parallel_bfs.rs +0 -0
  62. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/read_path_benchmarks.rs +0 -0
  63. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/real_datasets.rs +0 -0
  64. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_memory.rs +0 -0
  65. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_non_chain_patterns.rs +0 -0
  66. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_pubsub_memory.rs +0 -0
  67. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_pubsub_non_chain.rs +0 -0
  68. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_pubsub_write_cost.rs +0 -0
  69. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_write_cost.rs +0 -0
  70. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/sqlite_v3_comparison.rs +0 -0
  71. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/v3_algorithm_benchmarks.rs +0 -0
  72. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/v3_backend_benchmarks.rs +0 -0
  73. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/wal_recovery_benchmarks.rs +0 -0
  74. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/clippy.toml +0 -0
  75. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/core.d +0 -0
  76. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/debug_test.rs +0 -0
  77. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/HNSW_DEVELOPMENT_RULES.md +0 -0
  78. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/HNSW_VECTOR_INTEGRATION_FUTURE_ROADMAP.md +0 -0
  79. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/SEQUENTIAL_IO_PERFORMANCE.md +0 -0
  80. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/WAL_MODE_IMPLEMENTATION_GUIDE.md +0 -0
  81. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase-40-benchmark-report.md +0 -0
  82. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase10_performance_tuning.md +0 -0
  83. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase11_native_perf_plan.md +0 -0
  84. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase12_optimization_plan.md +0 -0
  85. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase14_step9_khop_corruption_codebase_mapping.md +0 -0
  86. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase29_step7_mmap_preaudit_notes.md +0 -0
  87. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase5_real_adjacency.md +0 -0
  88. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase6_implementation_status.md +0 -0
  89. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase6_native_graphbackend_plan.md +0 -0
  90. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase7_native_backend_refactor.md +0 -0
  91. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/superpowers/plans/2026-04-23-task-1-analysis.md +0 -0
  92. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/algo_benchmark.rs +0 -0
  93. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/basic_functionality_test.rs +0 -0
  94. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/batch_bench.rs +0 -0
  95. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/batch_stress_test.rs +0 -0
  96. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/bench_parallel_bfs.rs +0 -0
  97. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/block_locality_benchmark.rs +0 -0
  98. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cache_capacity_benchmark.rs +0 -0
  99. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cache_clone_forensics.rs +0 -0
  100. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cache_perf_test.rs +0 -0
  101. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cold_path_decomposition.rs +0 -0
  102. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/compression_analysis.rs +0 -0
  103. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/compression_detailed.rs +0 -0
  104. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/compression_diagnostics.rs +0 -0
  105. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/crash_test_child.rs +0 -0
  106. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/debug_buffer_error.rs +0 -0
  107. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/get_node_cache_sweep.rs +0 -0
  108. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/hybrid_sqlite_v3_hnsw_pubsub.rs +0 -0
  109. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/phase53_1_execution.rs +0 -0
  110. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/phase55_simple_benchmark.rs +0 -0
  111. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/reopen_corruption_repro.rs +0 -0
  112. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_100k.rs +0 -0
  113. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_adaptive_pages.rs +0 -0
  114. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_allocator_startup.rs +0 -0
  115. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_batch_simple.rs +0 -0
  116. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_binary_search.rs +0 -0
  117. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_btree_100k.rs +0 -0
  118. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_cache_warm.rs +0 -0
  119. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_chunked_bfs.rs +0 -0
  120. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_delta_encoding.rs +0 -0
  121. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_direct_backend_benchmark.rs +0 -0
  122. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_direct_edgestore.rs +0 -0
  123. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_edge_store_direct.rs +0 -0
  124. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_edgestore_perf.rs +0 -0
  125. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_index_restore.rs +0 -0
  126. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_index_staleness.rs +0 -0
  127. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_lazy_decode.rs +0 -0
  128. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_lock_overhead.rs +0 -0
  129. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_native_edge.rs +0 -0
  130. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_neighbors_cache.rs +0 -0
  131. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_neighbors_detailed.rs +0 -0
  132. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_neighbors_profile.rs +0 -0
  133. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_open_detailed_timing.rs +0 -0
  134. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_open_roundtrip.rs +0 -0
  135. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_open_stage_timing.rs +0 -0
  136. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_performance_comparison.rs +0 -0
  137. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_rwlock_overhead.rs +0 -0
  138. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_sqlite_neighbors_perf.rs +0 -0
  139. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_v3_neighbors_perf.rs +0 -0
  140. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_vec_clone.rs +0 -0
  141. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_forensic_page_analysis.rs +0 -0
  142. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_forensics_example.rs +0 -0
  143. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_get_node_profile.rs +0 -0
  144. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_offset_forensic.rs +0 -0
  145. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_perf_test.rs +0 -0
  146. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_readonly_profile.rs +0 -0
  147. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_reopen_verify.rs +0 -0
  148. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/libtest_syntax.rlib +0 -0
  149. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/manual.md +0 -0
  150. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/snapshot_export/snapshot_1766284406.v2 +0 -0
  151. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/snapshot_export/snapshot_1766284420.v2 +0 -0
  152. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/sqlitegraph_bench.json +0 -0
  153. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/backend/centrality.rs +0 -0
  154. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/backend/graph_ops.rs +0 -0
  155. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/backend/mod.rs +0 -0
  156. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/backend/traversal.rs +0 -0
  157. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/call_graph_analysis.rs +0 -0
  158. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/centrality.rs +0 -0
  159. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/community.rs +0 -0
  160. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/control_dependence.rs +0 -0
  161. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/critical_path.rs +0 -0
  162. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/cut_partition.rs +0 -0
  163. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/cycle_basis.rs +0 -0
  164. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/dominance_frontiers.rs +0 -0
  165. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/dominators.rs +0 -0
  166. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/graph_diff.rs +0 -0
  167. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/graph_rewriting.rs +0 -0
  168. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/graph_similarity.rs +0 -0
  169. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/mod.rs +0 -0
  170. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/natural_loops.rs +0 -0
  171. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/observability.rs +0 -0
  172. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/path_enumeration.rs +0 -0
  173. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/post_dominators.rs +0 -0
  174. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/program_slicing.rs +0 -0
  175. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/reachability.rs +0 -0
  176. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/scc.rs +0 -0
  177. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/structure.rs +0 -0
  178. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/subgraph_isomorphism.rs +0 -0
  179. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/taint_analysis.rs +0 -0
  180. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/tests.rs +0 -0
  181. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/topological_sort.rs +0 -0
  182. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/transitive_closure.rs +0 -0
  183. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/transitive_reduction.rs +0 -0
  184. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/wcc.rs +0 -0
  185. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/api_ergonomics.rs +0 -0
  186. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/constants.rs +0 -0
  187. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/cpu_tuning.rs +0 -0
  188. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/mod.rs +0 -0
  189. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/aliases.rs +0 -0
  190. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/cpu_profile.rs +0 -0
  191. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/errors.rs +0 -0
  192. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/flags.rs +0 -0
  193. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/kv_types.rs +0 -0
  194. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/mod.rs +0 -0
  195. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/utils.rs +0 -0
  196. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/algorithm/mod.rs +0 -0
  197. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/algorithm/parallel_bfs.rs +0 -0
  198. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/allocator.rs +0 -0
  199. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/backend.rs +0 -0
  200. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/btree.rs +0 -0
  201. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compact_edge_record.rs +0 -0
  202. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compression/delta.rs +0 -0
  203. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compression/edge_delta.rs +0 -0
  204. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compression/mod.rs +0 -0
  205. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compression/varint.rs +0 -0
  206. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/constants.rs +0 -0
  207. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/edge_compat.rs +0 -0
  208. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/file_coordinator.rs +0 -0
  209. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/forensics.rs +0 -0
  210. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/header.rs +0 -0
  211. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/index/mod.rs +0 -0
  212. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/index/page.rs +0 -0
  213. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/index_persistence.rs +0 -0
  214. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/kind_index.rs +0 -0
  215. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/kv_store/mod.rs +0 -0
  216. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/kv_store/store.rs +0 -0
  217. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/kv_store/types.rs +0 -0
  218. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/lazy_init_tests.rs +0 -0
  219. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/mod.rs +0 -0
  220. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/name_index.rs +0 -0
  221. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/block_cache.rs +0 -0
  222. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/cache.rs +0 -0
  223. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/mod.rs +0 -0
  224. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/page.rs +0 -0
  225. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/record.rs +0 -0
  226. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/store.rs +0 -0
  227. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/tests.rs +0 -0
  228. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/pubsub/mod.rs +0 -0
  229. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/pubsub/publisher.rs +0 -0
  230. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/pubsub/types.rs +0 -0
  231. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/storage/adaptive_page.rs +0 -0
  232. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/storage/media_detector.rs +0 -0
  233. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/storage/mod.rs +0 -0
  234. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/string_table/mod.rs +0 -0
  235. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/string_table/table.rs +0 -0
  236. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/string_table/tests.rs +0 -0
  237. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/tests/mod.rs +0 -0
  238. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/wal.rs +0 -0
  239. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/write_batch.rs +0 -0
  240. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/helpers.rs +0 -0
  241. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/impl_.rs +0 -0
  242. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/kv_tests.rs +0 -0
  243. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/mod.rs +0 -0
  244. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/pubsub_tests.rs +0 -0
  245. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/types.rs +0 -0
  246. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend.rs +0 -0
  247. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend_selector.rs +0 -0
  248. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bench_gates.rs +0 -0
  249. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bench_meta.rs +0 -0
  250. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bench_regression.rs +0 -0
  251. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bench_utils.rs +0 -0
  252. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bfs.rs +0 -0
  253. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/cache.rs +0 -0
  254. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/client.rs +0 -0
  255. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/factory.rs +0 -0
  256. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/graph_config.rs +0 -0
  257. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/kinds.rs +0 -0
  258. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/mod.rs +0 -0
  259. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/native.rs +0 -0
  260. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/sqlite.rs +0 -0
  261. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/cypher.rs +0 -0
  262. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/dependency_monitor.rs +0 -0
  263. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/dsl.rs +0 -0
  264. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/errors.rs +0 -0
  265. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/fault_injection.rs +0 -0
  266. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/adjacency.rs +0 -0
  267. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/core.rs +0 -0
  268. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/edge_ops.rs +0 -0
  269. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/instrumented.rs +0 -0
  270. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/metrics_core.rs +0 -0
  271. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/metrics_snapshot.rs +0 -0
  272. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/mod.rs +0 -0
  273. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/statement_tracker.rs +0 -0
  274. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/utils.rs +0 -0
  275. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics_schema.rs +0 -0
  276. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/mod.rs +0 -0
  277. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/pattern_matching.rs +0 -0
  278. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/pool.rs +0 -0
  279. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/snapshot.rs +0 -0
  280. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/types.rs +0 -0
  281. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph_opt.rs +0 -0
  282. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/batch_filter.rs +0 -0
  283. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/builder.rs +0 -0
  284. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/config.rs +0 -0
  285. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/distance_functions.rs +0 -0
  286. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/distance_metric.rs +0 -0
  287. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/errors.rs +0 -0
  288. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/index.rs +0 -0
  289. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/index_api.rs +0 -0
  290. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/index_internal.rs +0 -0
  291. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/index_persist.rs +0 -0
  292. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/layer.rs +0 -0
  293. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/mod.rs +0 -0
  294. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/multilayer.rs +0 -0
  295. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/neighborhood.rs +0 -0
  296. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/serialization.rs +0 -0
  297. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/simd.rs +0 -0
  298. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/storage.rs +0 -0
  299. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/v3_storage.rs +0 -0
  300. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/v3_storage_tests.rs +0 -0
  301. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/index.rs +0 -0
  302. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/inference/engine.rs +0 -0
  303. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/inference/mod.rs +0 -0
  304. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/inference/sampling.rs +0 -0
  305. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/inference/simd.rs +0 -0
  306. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/introspection.rs +0 -0
  307. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/lib.rs +0 -0
  308. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/multi_hop.rs +0 -0
  309. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/mvcc.rs +0 -0
  310. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern.rs +0 -0
  311. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/matcher.rs +0 -0
  312. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/mod.rs +0 -0
  313. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/pattern.rs +0 -0
  314. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/property.rs +0 -0
  315. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/query.rs +0 -0
  316. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/tests.rs +0 -0
  317. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/edge_validation.rs +0 -0
  318. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/fast_path_detection.rs +0 -0
  319. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/fast_path_execution.rs +0 -0
  320. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/mod.rs +0 -0
  321. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/tests.rs +0 -0
  322. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/progress.rs +0 -0
  323. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/query.rs +0 -0
  324. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/query_cache.rs +0 -0
  325. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/reasoning.rs +0 -0
  326. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/recovery.rs +0 -0
  327. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/snapshot.rs +0 -0
  328. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/acid_regression_test.rs +0 -0
  329. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/acid_snapshot_test.rs +0 -0
  330. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/algo_tests.rs +0 -0
  331. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/backend_selector_tests.rs +0 -0
  332. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_data_tests.rs +0 -0
  333. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_gate_tests.rs +0 -0
  334. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_gates_tests.rs +0 -0
  335. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_meta_tests.rs +0 -0
  336. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_report_tests.rs +0 -0
  337. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/benchmark_isolation_test.rs +0 -0
  338. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bfs_tests.rs +0 -0
  339. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bincode_compatibility_test.rs +0 -0
  340. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bulk_insert_tests.rs +0 -0
  341. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cache_effectiveness_tests.rs +0 -0
  342. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cache_tests.rs +0 -0
  343. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/check_write_path.rs +0 -0
  344. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cluster_offset_corruption_regression.rs +0 -0
  345. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cold_path_forensics.rs +0 -0
  346. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/debug_file_size.rs +0 -0
  347. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/debug_index_rebuilding.rs +0 -0
  348. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/debug_overflow.rs +0 -0
  349. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/debug_scenario_c.rs +0 -0
  350. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/deterministic_index_tests.rs +0 -0
  351. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/direct_file_read_corruption_test.rs +0 -0
  352. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/doc_tests.rs +0 -0
  353. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/edge_corruption_minimal.rs +0 -0
  354. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/edge_corruption_repro.rs +0 -0
  355. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/edge_insertion_corruption_test.rs +0 -0
  356. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/edge_tests.rs +0 -0
  357. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/entity_tests.rs +0 -0
  358. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/file_extension_debug.rs +0 -0
  359. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/fuzz_common.rs +0 -0
  360. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/get_node_forensics.rs +0 -0
  361. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/graph_node_existence_enforcement.rs +0 -0
  362. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/graph_opt_tests.rs +0 -0
  363. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/helpers/mod.rs +0 -0
  364. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/hnsw_persistence_tests.rs +0 -0
  365. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/index_persistence_integration.rs +0 -0
  366. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/index_persistence_validation.rs +0 -0
  367. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/index_tests.rs +0 -0
  368. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/integration_tests.rs +0 -0
  369. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/isolate_open_bug.rs +0 -0
  370. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/kv_durability_tests.rs +0 -0
  371. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/lib_api_smoke_tests.rs +0 -0
  372. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/multi_hop_tests.rs +0 -0
  373. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/multi_node_corruption_regression.rs +0 -0
  374. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_baseline_tests.rs +0 -0
  375. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_concurrent_tests.rs +0 -0
  376. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_edge_case_tests.rs +0 -0
  377. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_snapshot_tests.rs +0 -0
  378. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_wal_tests.rs +0 -0
  379. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/native_edge_insertion_regression.rs +0 -0
  380. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/node_overflow_forensics.rs +0 -0
  381. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/node_read_forensics_test.rs +0 -0
  382. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/node_slot_transaction_persistence.rs +0 -0
  383. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/oom_reproduction_test.rs +0 -0
  384. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/page_42_debug.rs +0 -0
  385. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/page_write_debug.rs +0 -0
  386. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/pattern_cache_fastpath_tests.rs +0 -0
  387. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/pattern_engine_tests.rs +0 -0
  388. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/pattern_tests.rs +0 -0
  389. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/perf_gate_tests.rs +0 -0
  390. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/perf_gate_v32_tests.rs +0 -0
  391. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase32_cluster_pipeline_reconstruction_tests_clean.rs +0 -0
  392. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase44_2_cluster_size_contract_tests.rs +0 -0
  393. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase64_node_count_durability_regression.rs +0 -0
  394. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase65_cluster_size_corruption_regression.rs +0 -0
  395. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase73_node_count_corruption_capture.rs +0 -0
  396. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/query_cache_performance_tests.rs +0 -0
  397. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/query_cache_tests.rs +0 -0
  398. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/query_tests.rs +0 -0
  399. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/recovery_tests.rs +0 -0
  400. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/regression_concurrent_traversal.rs +0 -0
  401. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/reopen_corruption_investigation.rs +0 -0
  402. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/reopen_integration_test.rs +0 -0
  403. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/rowid_tests.rs +0 -0
  404. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/schema_tests.rs +0 -0
  405. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/snapshot_isolation_tests.rs +0 -0
  406. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/sqlite_reopen_tests.rs +0 -0
  407. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/sqlite_snapshot_tests.rs +0 -0
  408. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/test_10k_bug_reproduction.rs +0 -0
  409. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/unsafe_invariants_tests.rs +0 -0
  410. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_algorithm_tests.rs +0 -0
  411. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_block_locality_tests.rs +0 -0
  412. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_btree_forensics.rs +0 -0
  413. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_check_nodepages.rs +0 -0
  414. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_dump_page_headers.rs +0 -0
  415. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_edge_durability_tdd.rs +0 -0
  416. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_file_write_test.rs +0 -0
  417. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_focused_perf.rs +0 -0
  418. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_forensics_test.rs +0 -0
  419. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_header_forensics.rs +0 -0
  420. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_insert_read_forensics.rs +0 -0
  421. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_integrity_check.rs +0 -0
  422. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_kind_index_tests.rs +0 -0
  423. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_name_index_tests.rs +0 -0
  424. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_page_ownership_forensics.rs +0 -0
  425. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_persistence_100.rs +0 -0
  426. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_query_truth_tests.rs +0 -0
  427. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_regression_sweep.rs +0 -0
  428. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_reopen_durability.rs +0 -0
  429. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_sync_fix_validation.rs +0 -0
  430. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_verify_file_persistence.rs +0 -0
  431. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/wal_mode_default_tests.rs +0 -0
  432. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/wal_tuning_tests.rs +0 -0
  433. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/write_buffer_coherence_regression.rs +0 -0
  434. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/.gitignore +0 -0
  435. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/README.md +0 -0
  436. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/01_basic_crud.py +0 -0
  437. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/02_graph_algorithms.py +0 -0
  438. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/03_vector_search.py +0 -0
  439. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/04_social_network.py +0 -0
  440. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/05_file_backed.py +0 -0
  441. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/06_hybrid_sqlite_hnsw_query.py +0 -0
  442. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/src/lib.rs +0 -0
  443. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_algo.py +0 -0
  444. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_basic.py +0 -0
  445. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_bulk_insert.py +0 -0
  446. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_crud.py +0 -0
  447. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_errors.py +0 -0
  448. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_filtered_traversal.py +0 -0
  449. {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_hnsw.py +0 -0
@@ -1387,7 +1387,7 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
1387
1387
 
1388
1388
  [[package]]
1389
1389
  name = "sqlitegraph"
1390
- version = "3.0.0"
1390
+ version = "3.0.1"
1391
1391
  dependencies = [
1392
1392
  "ahash",
1393
1393
  "arc-swap",
@@ -1419,7 +1419,7 @@ dependencies = [
1419
1419
 
1420
1420
  [[package]]
1421
1421
  name = "sqlitegraph-cli"
1422
- version = "3.0.0"
1422
+ version = "3.0.1"
1423
1423
  dependencies = [
1424
1424
  "anyhow",
1425
1425
  "clap",
@@ -1429,7 +1429,7 @@ dependencies = [
1429
1429
 
1430
1430
  [[package]]
1431
1431
  name = "sqlitegraph-py"
1432
- version = "0.4.0"
1432
+ version = "0.4.1"
1433
1433
  dependencies = [
1434
1434
  "ndarray 0.16.1",
1435
1435
  "numpy",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sqlitegraph
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Classifier: Development Status :: 3 - Alpha
5
5
  Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
6
6
  Classifier: Programming Language :: Python :: 3
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "sqlitegraph"
7
- version = "0.4.0"
7
+ version = "0.4.1"
8
8
  description = "Embedded graph database with HNSW vector search — Python bindings to the sqlitegraph Rust crate."
9
9
  license = { text = "GPL-3.0-only" }
10
10
  authors = [{ name = "Luiz Spies" }]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sqlitegraph"
3
- version = "3.0.0"
3
+ version = "3.0.1"
4
4
  edition = "2024"
5
5
  rust-version = "1.89"
6
6
  description = "Embedded graph database with full ACID transactions, HNSW vector search, dual backend support, and comprehensive graph algorithms library"
@@ -14,18 +14,31 @@ impl SqliteGraph {
14
14
  validate_entity(entity)?;
15
15
  let data = serde_json::to_string(&entity.data)
16
16
  .map_err(|e| SqliteGraphError::invalid_input(e.to_string()))?;
17
- self.connection()
18
- .execute(
19
- "INSERT INTO graph_entities(kind, name, file_path, data) VALUES(?1, ?2, ?3, ?4)",
20
- params![
21
- entity.kind.as_str(),
22
- entity.name.as_str(),
23
- entity.file_path.as_deref(),
24
- data,
25
- ],
17
+ let conn = self.connection();
18
+ conn.execute(
19
+ "INSERT INTO graph_entities(kind, name, file_path, data) VALUES(?1, ?2, ?3, ?4)",
20
+ params![
21
+ entity.kind.as_str(),
22
+ entity.name.as_str(),
23
+ entity.file_path.as_deref(),
24
+ data,
25
+ ],
26
+ )
27
+ .map_err(|e| SqliteGraphError::query(e.to_string()))?;
28
+ let id = conn.last_insert_rowid();
29
+ // Auto-register `kind` as a label so `match_triples` can answer
30
+ // label-filtered edge queries (e.g. `(a:User)-[:KNOWS]->(b:User)`)
31
+ // without callers having to call `index::add_label` separately.
32
+ // `INSERT OR IGNORE` is safe against duplicates if the row already
33
+ // exists (e.g. re-running migrations or future kind/label sync).
34
+ if !entity.kind.is_empty() {
35
+ conn.execute(
36
+ "INSERT OR IGNORE INTO graph_labels(entity_id, label) VALUES(?1, ?2)",
37
+ params![id, entity.kind.as_str()],
26
38
  )
27
39
  .map_err(|e| SqliteGraphError::query(e.to_string()))?;
28
- Ok(self.connection().last_insert_rowid())
40
+ }
41
+ Ok(id)
29
42
  }
30
43
 
31
44
  /// Insert many entities atomically inside a single transaction.
@@ -51,22 +64,34 @@ impl SqliteGraph {
51
64
 
52
65
  let mut ids = Vec::with_capacity(entities.len());
53
66
  let insert_result: Result<(), SqliteGraphError> = (|| {
54
- let mut stmt = conn
67
+ let mut entity_stmt = conn
55
68
  .prepare_cached(
56
69
  "INSERT INTO graph_entities(kind, name, file_path, data) VALUES(?1, ?2, ?3, ?4)",
57
70
  )
58
71
  .map_err(|e| SqliteGraphError::query(e.to_string()))?;
72
+ let mut label_stmt = conn
73
+ .prepare_cached(
74
+ "INSERT OR IGNORE INTO graph_labels(entity_id, label) VALUES(?1, ?2)",
75
+ )
76
+ .map_err(|e| SqliteGraphError::query(e.to_string()))?;
59
77
  for entity in entities {
60
78
  let data = serde_json::to_string(&entity.data)
61
79
  .map_err(|e| SqliteGraphError::invalid_input(e.to_string()))?;
62
- stmt.execute(params![
63
- entity.kind.as_str(),
64
- entity.name.as_str(),
65
- entity.file_path.as_deref(),
66
- data,
67
- ])
68
- .map_err(|e| SqliteGraphError::query(e.to_string()))?;
69
- ids.push(conn.last_insert_rowid());
80
+ entity_stmt
81
+ .execute(params![
82
+ entity.kind.as_str(),
83
+ entity.name.as_str(),
84
+ entity.file_path.as_deref(),
85
+ data,
86
+ ])
87
+ .map_err(|e| SqliteGraphError::query(e.to_string()))?;
88
+ let id = conn.last_insert_rowid();
89
+ if !entity.kind.is_empty() {
90
+ label_stmt
91
+ .execute(params![id, entity.kind.as_str()])
92
+ .map_err(|e| SqliteGraphError::query(e.to_string()))?;
93
+ }
94
+ ids.push(id);
70
95
  }
71
96
  Ok(())
72
97
  })();
@@ -74,6 +74,19 @@ const MIGRATION_STEPS: &[MigrationStep] = &[
74
74
  "INSERT INTO graph_meta_history(version) VALUES(4)",
75
75
  ],
76
76
  },
77
+ MigrationStep {
78
+ target_version: 5,
79
+ // Enforce label uniqueness so `INSERT OR IGNORE INTO graph_labels`
80
+ // actually dedupes (the original base schema had no UNIQUE
81
+ // constraint, so duplicates silently accumulated). The DELETE step
82
+ // collapses any existing duplicates by keeping the lowest rowid
83
+ // per (entity_id, label).
84
+ statements: &[
85
+ "DELETE FROM graph_labels WHERE rowid NOT IN (SELECT MIN(rowid) FROM graph_labels GROUP BY entity_id, label)",
86
+ "CREATE UNIQUE INDEX IF NOT EXISTS uq_graph_labels_entity_label ON graph_labels(entity_id, label)",
87
+ "INSERT INTO graph_meta_history(version) VALUES(5)",
88
+ ],
89
+ },
77
90
  ];
78
91
 
79
92
  pub const SCHEMA_VERSION: i64 = BASE_SCHEMA_VERSION + MIGRATION_STEPS.len() as i64;
@@ -1198,3 +1198,96 @@ fn test_execute_call_unknown_index_errors() {
1198
1198
  let r = cypher::execute(&backend, &q);
1199
1199
  assert!(r.is_err(), "expected error for missing index, got {r:?}");
1200
1200
  }
1201
+
1202
+ // ── Regression: label-filtered edge patterns must work after plain
1203
+ // `insert_node` without an explicit `add_label` call. Reported against
1204
+ // 3.0.0 / py 0.4.0 where the user found that
1205
+ // `MATCH (a:User)-[:KNOWS]->(b:User) RETURN a, b`
1206
+ // returned zero rows even though the data was present, because
1207
+ // `insert_node` populated `graph_entities.kind` but never registered
1208
+ // the kind in `graph_labels` (which `match_triples` joins on).
1209
+
1210
+ #[test]
1211
+ fn test_label_filtered_edge_match_after_plain_insert_node() {
1212
+ let graph = SqliteGraph::open_in_memory().expect("open");
1213
+ let backend = SqliteGraphBackend::from_graph(graph);
1214
+ let a = backend
1215
+ .insert_node(NodeSpec {
1216
+ kind: "User".into(),
1217
+ name: "Alice".into(),
1218
+ file_path: None,
1219
+ data: serde_json::json!({}),
1220
+ })
1221
+ .unwrap();
1222
+ let b = backend
1223
+ .insert_node(NodeSpec {
1224
+ kind: "User".into(),
1225
+ name: "Bob".into(),
1226
+ file_path: None,
1227
+ data: serde_json::json!({}),
1228
+ })
1229
+ .unwrap();
1230
+ backend
1231
+ .insert_edge(EdgeSpec {
1232
+ from: a,
1233
+ to: b,
1234
+ edge_type: "KNOWS".into(),
1235
+ data: serde_json::json!({}),
1236
+ })
1237
+ .unwrap();
1238
+
1239
+ // No explicit `add_label` calls — `kind` alone must be enough.
1240
+ let q =
1241
+ cypher::parse("MATCH (a:User)-[:KNOWS]->(b:User) RETURN a.name, b.name").expect("parse");
1242
+ let result = cypher::execute(&backend, &q).expect("execute");
1243
+ let rows = result.get("results").unwrap().as_array().unwrap();
1244
+ assert_eq!(
1245
+ rows.len(),
1246
+ 1,
1247
+ "label-filtered edge MATCH must find the one edge"
1248
+ );
1249
+ assert_eq!(rows[0].get("a.name").unwrap().as_str(), Some("Alice"));
1250
+ assert_eq!(rows[0].get("b.name").unwrap().as_str(), Some("Bob"));
1251
+ }
1252
+
1253
+ #[test]
1254
+ fn test_label_filtered_edge_match_after_bulk_insert() {
1255
+ use sqlitegraph::GraphBackend;
1256
+
1257
+ let graph = SqliteGraph::open_in_memory().expect("open");
1258
+ let backend = SqliteGraphBackend::from_graph(graph);
1259
+ let ids = backend
1260
+ .insert_nodes_bulk(&[
1261
+ NodeSpec {
1262
+ kind: "User".into(),
1263
+ name: "Alice".into(),
1264
+ file_path: None,
1265
+ data: serde_json::json!({}),
1266
+ },
1267
+ NodeSpec {
1268
+ kind: "User".into(),
1269
+ name: "Bob".into(),
1270
+ file_path: None,
1271
+ data: serde_json::json!({}),
1272
+ },
1273
+ ])
1274
+ .unwrap();
1275
+ backend
1276
+ .insert_edge(EdgeSpec {
1277
+ from: ids[0],
1278
+ to: ids[1],
1279
+ edge_type: "KNOWS".into(),
1280
+ data: serde_json::json!({}),
1281
+ })
1282
+ .unwrap();
1283
+
1284
+ let q =
1285
+ cypher::parse("MATCH (a:User)-[:KNOWS]->(b:User) RETURN a.name, b.name").expect("parse");
1286
+ let result = cypher::execute(&backend, &q).expect("execute");
1287
+ let rows = result.get("results").unwrap().as_array().unwrap();
1288
+ assert_eq!(
1289
+ rows.len(),
1290
+ 1,
1291
+ "bulk-inserted nodes must register kind as label too"
1292
+ );
1293
+ }
@@ -48,7 +48,12 @@ fn test_execute_counter_increments() -> Result<(), SqliteGraphError> {
48
48
  graph.insert_entity(&entity)?;
49
49
 
50
50
  let after = graph.metrics_snapshot();
51
- assert_eq!(before.execute_count + 1, after.execute_count);
51
+ // insert_entity issues two `execute()` calls: one to insert the row
52
+ // into `graph_entities`, one to auto-register the kind as a label in
53
+ // `graph_labels` so subsequent `match_triples` label-filtered edge
54
+ // patterns find the node. The label INSERT is `OR IGNORE` and is
55
+ // skipped only when `kind` is empty (which is not the case here).
56
+ assert_eq!(before.execute_count + 2, after.execute_count);
52
57
  assert_eq!(before.prepare_count, after.prepare_count);
53
58
  Ok(())
54
59
  }
@@ -5,6 +5,20 @@ crate of the same name has its own changelog at the repository root.
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [0.4.1] - 2026-05-18
9
+
10
+ ### Fixed
11
+
12
+ - **`Graph.query("MATCH (a:User)-[:KNOWS]->(b:User) ...")` returned
13
+ zero rows** after plain `Graph.add_node(kind="User", ...)` calls.
14
+ Root cause was in the core `sqlitegraph` crate (fixed in 3.0.1):
15
+ `insert_entity` only populated `graph_entities.kind` and left
16
+ `graph_labels` empty, so `match_triples` label joins missed
17
+ everything. The Python wheel picks up the fix automatically by
18
+ bumping the bundled core to 3.0.1 — no Python-side code changes
19
+ beyond the version bump. Workarounds that called the underlying
20
+ Rust `add_label` helper are no longer necessary.
21
+
8
22
  ## [0.4.0] - 2026-05-18
9
23
 
10
24
  ### Highlights
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "sqlitegraph-py"
3
- version = "0.4.0"
3
+ version = "0.4.1"
4
4
  edition = "2021"
5
5
  description = "Python bindings for sqlitegraph via PyO3"
6
6
  license = "GPL-3.0-only"
File without changes
File without changes