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.
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/Cargo.lock +3 -3
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/PKG-INFO +1 -1
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/pyproject.toml +1 -1
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/Cargo.toml +1 -1
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/entity_ops.rs +44 -19
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/schema.rs +13 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cypher_tests.rs +93 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/instrumentation_tests.rs +6 -1
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/CHANGELOG.md +14 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/Cargo.toml +1 -1
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/Cargo.toml +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/README.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/python/sqlitegraph/__init__.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/python/sqlitegraph/_native.pyi +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/python/sqlitegraph/py.typed +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/.gitignore +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/BLOCK_AWARE_CACHE_BEHAVIOR_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/BLOCK_LOCALITY_PROTOTYPE_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/BUG_10K_INVESTIGATION_SUMMARY.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/BUG_SNAPSHOTID_SQLITE_BACKEND.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/CACHE_CAPACITY_SWEEP_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/CACHE_CLONE_FIX_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/CHANGELOG.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/COLD_PATH_FORENSICS_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/COLD_WARM_BENCHMARK_SPLIT_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/EDGE_CORRUPTION_ROOT_CAUSE.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/LICENSE +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/MAIN_BENCHMARK_RERUN_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/NODE_PAGE_OVERFLOW_FIX_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/PAGE_ID_COLLISION_ROOT_CAUSE.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/PHASE3_NODE_PAGE_CACHE_FIX_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/PHYSICAL_BLOCK_PLACEMENT_PROTOTYPE_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/README.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/REBUILD_INDEXES_FIX_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/REOPEN_CORRUPTION_FORENSICS.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/V3_10K_NODE_BUG_FIX.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/V3_FILE_IO_COORDINATION.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/V3_FORENSIC_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/V3_REGRESSION_SWEEP_REPORT.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/adaptive_page_simple.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/adjlist_benchmark.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/algo_benchmarks.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/backend_comparison.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/bench_utils.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/bfs.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/cold_cache.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/comparative_benchmark.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/comprehensive_performance.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/compression_benchmark.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/concurrent_access.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/connection_pool.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/graph_generators.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/graph_theory_benchmarks.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/hnsw.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/hnsw_multilayer.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/insert.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/k_hop.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/memory_profiling.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/mvcc_benchmarks.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/native_disk_io.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/parallel_bfs.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/read_path_benchmarks.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/real_datasets.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_memory.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_non_chain_patterns.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_pubsub_memory.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_pubsub_non_chain.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_pubsub_write_cost.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_write_cost.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/sqlite_v3_comparison.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/v3_algorithm_benchmarks.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/v3_backend_benchmarks.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/wal_recovery_benchmarks.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/clippy.toml +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/core.d +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/debug_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/HNSW_DEVELOPMENT_RULES.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/HNSW_VECTOR_INTEGRATION_FUTURE_ROADMAP.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/SEQUENTIAL_IO_PERFORMANCE.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/WAL_MODE_IMPLEMENTATION_GUIDE.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase-40-benchmark-report.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase10_performance_tuning.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase11_native_perf_plan.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase12_optimization_plan.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase14_step9_khop_corruption_codebase_mapping.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase29_step7_mmap_preaudit_notes.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase5_real_adjacency.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase6_implementation_status.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase6_native_graphbackend_plan.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase7_native_backend_refactor.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/superpowers/plans/2026-04-23-task-1-analysis.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/algo_benchmark.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/basic_functionality_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/batch_bench.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/batch_stress_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/bench_parallel_bfs.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/block_locality_benchmark.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cache_capacity_benchmark.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cache_clone_forensics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cache_perf_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cold_path_decomposition.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/compression_analysis.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/compression_detailed.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/compression_diagnostics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/crash_test_child.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/debug_buffer_error.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/get_node_cache_sweep.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/hybrid_sqlite_v3_hnsw_pubsub.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/phase53_1_execution.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/phase55_simple_benchmark.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/reopen_corruption_repro.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_100k.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_adaptive_pages.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_allocator_startup.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_batch_simple.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_binary_search.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_btree_100k.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_cache_warm.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_chunked_bfs.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_delta_encoding.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_direct_backend_benchmark.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_direct_edgestore.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_edge_store_direct.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_edgestore_perf.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_index_restore.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_index_staleness.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_lazy_decode.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_lock_overhead.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_native_edge.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_neighbors_cache.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_neighbors_detailed.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_neighbors_profile.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_open_detailed_timing.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_open_roundtrip.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_open_stage_timing.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_performance_comparison.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_rwlock_overhead.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_sqlite_neighbors_perf.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_v3_neighbors_perf.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_vec_clone.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_forensic_page_analysis.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_forensics_example.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_get_node_profile.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_offset_forensic.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_perf_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_readonly_profile.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/v3_reopen_verify.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/libtest_syntax.rlib +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/manual.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/snapshot_export/snapshot_1766284406.v2 +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/snapshot_export/snapshot_1766284420.v2 +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/sqlitegraph_bench.json +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/backend/centrality.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/backend/graph_ops.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/backend/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/backend/traversal.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/call_graph_analysis.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/centrality.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/community.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/control_dependence.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/critical_path.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/cut_partition.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/cycle_basis.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/dominance_frontiers.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/dominators.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/graph_diff.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/graph_rewriting.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/graph_similarity.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/natural_loops.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/observability.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/path_enumeration.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/post_dominators.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/program_slicing.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/reachability.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/scc.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/structure.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/subgraph_isomorphism.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/taint_analysis.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/topological_sort.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/transitive_closure.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/transitive_reduction.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/algo/wcc.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/api_ergonomics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/constants.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/cpu_tuning.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/aliases.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/cpu_profile.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/errors.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/flags.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/kv_types.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/types/utils.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/algorithm/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/algorithm/parallel_bfs.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/allocator.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/backend.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/btree.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compact_edge_record.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compression/delta.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compression/edge_delta.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compression/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/compression/varint.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/constants.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/edge_compat.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/file_coordinator.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/forensics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/header.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/index/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/index/page.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/index_persistence.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/kind_index.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/kv_store/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/kv_store/store.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/kv_store/types.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/lazy_init_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/name_index.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/block_cache.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/cache.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/page.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/record.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/store.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/node/tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/pubsub/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/pubsub/publisher.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/pubsub/types.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/storage/adaptive_page.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/storage/media_detector.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/storage/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/string_table/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/string_table/table.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/string_table/tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/tests/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/wal.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/native/v3/write_batch.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/helpers.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/impl_.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/kv_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/pubsub_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend/sqlite/types.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/backend_selector.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bench_gates.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bench_meta.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bench_regression.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bench_utils.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/bfs.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/cache.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/client.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/factory.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/graph_config.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/kinds.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/native.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/config/sqlite.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/cypher.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/dependency_monitor.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/dsl.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/errors.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/fault_injection.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/adjacency.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/core.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/edge_ops.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/instrumented.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/metrics_core.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/metrics_snapshot.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/statement_tracker.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics/utils.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/metrics_schema.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/pattern_matching.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/pool.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/snapshot.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph/types.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/graph_opt.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/batch_filter.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/builder.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/config.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/distance_functions.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/distance_metric.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/errors.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/index.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/index_api.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/index_internal.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/index_persist.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/layer.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/multilayer.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/neighborhood.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/serialization.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/simd.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/storage.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/v3_storage.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/hnsw/v3_storage_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/index.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/inference/engine.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/inference/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/inference/sampling.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/inference/simd.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/introspection.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/lib.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/multi_hop.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/mvcc.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/matcher.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/pattern.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/property.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/query.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine/tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/edge_validation.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/fast_path_detection.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/fast_path_execution.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/pattern_engine_cache/tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/progress.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/query.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/query_cache.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/reasoning.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/recovery.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/src/snapshot.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/acid_regression_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/acid_snapshot_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/algo_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/backend_selector_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_data_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_gate_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_gates_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_meta_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bench_report_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/benchmark_isolation_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bfs_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bincode_compatibility_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/bulk_insert_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cache_effectiveness_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cache_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/check_write_path.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cluster_offset_corruption_regression.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/cold_path_forensics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/debug_file_size.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/debug_index_rebuilding.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/debug_overflow.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/debug_scenario_c.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/deterministic_index_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/direct_file_read_corruption_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/doc_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/edge_corruption_minimal.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/edge_corruption_repro.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/edge_insertion_corruption_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/edge_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/entity_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/file_extension_debug.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/fuzz_common.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/get_node_forensics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/graph_node_existence_enforcement.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/graph_opt_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/helpers/mod.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/hnsw_persistence_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/index_persistence_integration.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/index_persistence_validation.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/index_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/integration_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/isolate_open_bug.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/kv_durability_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/lib_api_smoke_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/multi_hop_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/multi_node_corruption_regression.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_baseline_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_concurrent_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_edge_case_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_snapshot_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/mvcc_wal_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/native_edge_insertion_regression.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/node_overflow_forensics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/node_read_forensics_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/node_slot_transaction_persistence.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/oom_reproduction_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/page_42_debug.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/page_write_debug.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/pattern_cache_fastpath_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/pattern_engine_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/pattern_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/perf_gate_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/perf_gate_v32_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase32_cluster_pipeline_reconstruction_tests_clean.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase44_2_cluster_size_contract_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase64_node_count_durability_regression.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase65_cluster_size_corruption_regression.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/phase73_node_count_corruption_capture.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/query_cache_performance_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/query_cache_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/query_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/recovery_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/regression_concurrent_traversal.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/reopen_corruption_investigation.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/reopen_integration_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/rowid_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/schema_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/snapshot_isolation_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/sqlite_reopen_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/sqlite_snapshot_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/test_10k_bug_reproduction.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/unsafe_invariants_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_algorithm_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_block_locality_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_btree_forensics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_check_nodepages.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_dump_page_headers.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_edge_durability_tdd.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_file_write_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_focused_perf.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_forensics_test.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_header_forensics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_insert_read_forensics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_integrity_check.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_kind_index_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_name_index_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_page_ownership_forensics.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_persistence_100.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_query_truth_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_regression_sweep.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_reopen_durability.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_sync_fix_validation.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/v3_verify_file_persistence.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/wal_mode_default_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/wal_tuning_tests.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/tests/write_buffer_coherence_regression.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/.gitignore +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/README.md +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/01_basic_crud.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/02_graph_algorithms.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/03_vector_search.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/04_social_network.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/05_file_backed.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/examples/06_hybrid_sqlite_hnsw_query.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/src/lib.rs +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_algo.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_basic.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_bulk_insert.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_crud.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_errors.py +0 -0
- {sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-py/tests/test_filtered_traversal.py +0 -0
- {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.
|
|
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.
|
|
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.
|
|
1432
|
+
version = "0.4.1"
|
|
1433
1433
|
dependencies = [
|
|
1434
1434
|
"ndarray 0.16.1",
|
|
1435
1435
|
"numpy",
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sqlitegraph"
|
|
7
|
-
version = "0.4.
|
|
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.
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/BLOCK_AWARE_CACHE_BEHAVIOR_REPORT.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/COLD_WARM_BENCHMARK_SPLIT_REPORT.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/PHASE3_NODE_PAGE_CACHE_FIX_REPORT.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/comprehensive_performance.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_non_chain_patterns.rs
RENAMED
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_pubsub_memory.rs
RENAMED
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_pubsub_non_chain.rs
RENAMED
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/benches/regression_pubsub_write_cost.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/WAL_MODE_IMPLEMENTATION_GUIDE.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase29_step7_mmap_preaudit_notes.md
RENAMED
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase6_implementation_status.md
RENAMED
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase6_native_graphbackend_plan.md
RENAMED
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/docs/phase7_native_backend_refactor.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/basic_functionality_test.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/block_locality_benchmark.rs
RENAMED
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cache_capacity_benchmark.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/cold_path_decomposition.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/compression_diagnostics.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/hybrid_sqlite_v3_hnsw_pubsub.rs
RENAMED
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/phase55_simple_benchmark.rs
RENAMED
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/reopen_corruption_repro.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sqlitegraph-0.4.0 → sqlitegraph-0.4.1}/sqlitegraph-core/examples/test_direct_backend_benchmark.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|