lora-python 0.8.1__tar.gz → 0.8.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lora_python-0.8.1 → lora_python-0.8.2}/Cargo.lock +16 -16
- {lora_python-0.8.1 → lora_python-0.8.2}/Cargo.toml +11 -11
- {lora_python-0.8.1 → lora_python-0.8.2}/PKG-INFO +1 -1
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/mod.rs +16 -14
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/write_guard.rs +80 -6
- {lora_python-0.8.1 → lora_python-0.8.2}/pyproject.toml +1 -1
- {lora_python-0.8.1 → lora_python-0.8.2}/LICENSE +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/README.md +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/.gitignore +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/LICENSE +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/README.md +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/build.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/examples/async_demo.py +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/examples/basic.py +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/src/errors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/src/from_python.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/src/to_python.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/tests/test_async.py +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/tests/test_explain_profile.py +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/tests/test_sync.py +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/analyzer/clauses.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/analyzer/expressions.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/analyzer/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/analyzer/patterns.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/analyzer/state.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/analyzer/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/errors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/resolved.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/scope.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/src/symbols.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-analyzer/tests/error_messages.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-ast/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-ast/src/ast.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-ast/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-compiler/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-compiler/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-compiler/src/logical.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-compiler/src/optimizer.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-compiler/src/pattern.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-compiler/src/physical.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-compiler/src/plan_tree.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-compiler/src/planner.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/advanced_benchmarks.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/concurrent_benchmarks.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/engine_benchmarks.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/fixtures.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/perf_smoke_baseline.json +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/perf_smoke_benchmarks.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/scale_benchmarks.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/temporal_spatial_benchmarks.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/wal_benchmarks.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/builder.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/compile.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/execute.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/explain.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/graph_api.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/occ.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/profile.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/pull_mode.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/replay.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/database/stream.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/error.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/explain.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/live_store.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/named.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/plan_cache.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/snapshot/json.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/snapshot/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/snapshot/store.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/stream.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/transaction.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/wal/admin.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/wal/archive/format.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/wal/archive/lock.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/wal/archive/platform.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/wal/archive/worker.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/wal/archive/workspace.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/wal/archive.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/wal/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/src/wal/write_scope.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/advanced_queries.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/aggregation.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/backend_stub.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/binary.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/create.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/error_messages.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/errors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/explain_profile.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/expressions.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/functions_extended.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/invariants.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/managed_snapshots.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/match.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/merge.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/ordering.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/parameters.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/parser.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/paths.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/projection.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/scale.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/seeds.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/snapshot.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/spatial.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/temporal.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/test_helpers.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/transactions.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/types_advanced.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/union.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/update.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/vectors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/wal.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/where_clause.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/tests/with.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/errors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/eval/binops.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/eval/errors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/eval/expr.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/eval/functions.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/eval/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/eval/point.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/eval/vector.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/executor/helpers.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/executor/immutable.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/executor/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/executor/mutable.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/profile.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/aggregate.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/columns.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/context.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/expand.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/filter.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/hydration.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/mutable.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/optional.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/path.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/projection.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/scan.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/shape.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/sort.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/source.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/traits.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/pull/union.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/src/value.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-executor/tests/error_messages.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/cypher.pest +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/errors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/parser/clauses.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/parser/expressions.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/parser/literals.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/parser/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/parser/patterns.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/parser/query.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/parser/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/src/parser/util.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-parser/tests/error_messages.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/body.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/codec.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/columnar.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/envelope.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/errors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/format.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/options.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/transform.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/src/view.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-snapshot/tests/error_messages.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/lock_table.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/memory/graph.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/memory/impls.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/memory/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/memory/property_index.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/memory/snapshot.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/memory/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/mutation.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/snapshot.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/traits.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/binary/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/binary/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/binary/traits.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/binary/types.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/graph.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/property_value.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/spatial/distance.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/spatial/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/spatial/point.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/spatial/srid.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/spatial/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/temporal/calendar.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/temporal/date.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/temporal/datetime.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/temporal/duration.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/temporal/format.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/temporal/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/temporal/parsing.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/temporal/time.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/vector/build.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/vector/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/vector/similarity.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/vector/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/src/types/vector/types.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-store/tests/error_messages.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/Cargo.toml +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/codec/decode.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/codec/encode.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/codec/format.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/codec/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/codec/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/config.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/dir.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/errors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/lib.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/lock.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/lsn.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/record.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/recorder/errors.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/recorder/mirror.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/recorder/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/recorder/recorder.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/recorder/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/replay.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/segment.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/testing.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/wal/group_flusher.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/wal/mod.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/wal/tests.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/src/wal/wal.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-wal/tests/error_messages.rs +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/python/lora_python/__init__.py +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/python/lora_python/_async.py +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/python/lora_python/_native.pyi +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/python/lora_python/py.typed +0 -0
- {lora_python-0.8.1 → lora_python-0.8.2}/python/lora_python/types.py +0 -0
|
@@ -797,7 +797,7 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
|
|
|
797
797
|
|
|
798
798
|
[[package]]
|
|
799
799
|
name = "lora-analyzer"
|
|
800
|
-
version = "0.8.
|
|
800
|
+
version = "0.8.2"
|
|
801
801
|
dependencies = [
|
|
802
802
|
"lora-ast",
|
|
803
803
|
"lora-parser",
|
|
@@ -807,14 +807,14 @@ dependencies = [
|
|
|
807
807
|
|
|
808
808
|
[[package]]
|
|
809
809
|
name = "lora-ast"
|
|
810
|
-
version = "0.8.
|
|
810
|
+
version = "0.8.2"
|
|
811
811
|
dependencies = [
|
|
812
812
|
"smallvec 2.0.0-alpha.12",
|
|
813
813
|
]
|
|
814
814
|
|
|
815
815
|
[[package]]
|
|
816
816
|
name = "lora-binding-buffer"
|
|
817
|
-
version = "0.8.
|
|
817
|
+
version = "0.8.2"
|
|
818
818
|
dependencies = [
|
|
819
819
|
"lora-database",
|
|
820
820
|
"lora-store",
|
|
@@ -822,7 +822,7 @@ dependencies = [
|
|
|
822
822
|
|
|
823
823
|
[[package]]
|
|
824
824
|
name = "lora-compiler"
|
|
825
|
-
version = "0.8.
|
|
825
|
+
version = "0.8.2"
|
|
826
826
|
dependencies = [
|
|
827
827
|
"lora-analyzer",
|
|
828
828
|
"lora-ast",
|
|
@@ -830,7 +830,7 @@ dependencies = [
|
|
|
830
830
|
|
|
831
831
|
[[package]]
|
|
832
832
|
name = "lora-database"
|
|
833
|
-
version = "0.8.
|
|
833
|
+
version = "0.8.2"
|
|
834
834
|
dependencies = [
|
|
835
835
|
"anyhow",
|
|
836
836
|
"arc-swap",
|
|
@@ -852,7 +852,7 @@ dependencies = [
|
|
|
852
852
|
|
|
853
853
|
[[package]]
|
|
854
854
|
name = "lora-executor"
|
|
855
|
-
version = "0.8.
|
|
855
|
+
version = "0.8.2"
|
|
856
856
|
dependencies = [
|
|
857
857
|
"lora-analyzer",
|
|
858
858
|
"lora-ast",
|
|
@@ -867,7 +867,7 @@ dependencies = [
|
|
|
867
867
|
|
|
868
868
|
[[package]]
|
|
869
869
|
name = "lora-ffi"
|
|
870
|
-
version = "0.8.
|
|
870
|
+
version = "0.8.2"
|
|
871
871
|
dependencies = [
|
|
872
872
|
"anyhow",
|
|
873
873
|
"lora-binding-buffer",
|
|
@@ -879,7 +879,7 @@ dependencies = [
|
|
|
879
879
|
|
|
880
880
|
[[package]]
|
|
881
881
|
name = "lora-node"
|
|
882
|
-
version = "0.8.
|
|
882
|
+
version = "0.8.2"
|
|
883
883
|
dependencies = [
|
|
884
884
|
"anyhow",
|
|
885
885
|
"lora-binding-buffer",
|
|
@@ -894,7 +894,7 @@ dependencies = [
|
|
|
894
894
|
|
|
895
895
|
[[package]]
|
|
896
896
|
name = "lora-parser"
|
|
897
|
-
version = "0.8.
|
|
897
|
+
version = "0.8.2"
|
|
898
898
|
dependencies = [
|
|
899
899
|
"lora-ast",
|
|
900
900
|
"pest",
|
|
@@ -905,7 +905,7 @@ dependencies = [
|
|
|
905
905
|
|
|
906
906
|
[[package]]
|
|
907
907
|
name = "lora-python"
|
|
908
|
-
version = "0.8.
|
|
908
|
+
version = "0.8.2"
|
|
909
909
|
dependencies = [
|
|
910
910
|
"anyhow",
|
|
911
911
|
"lora-database",
|
|
@@ -917,7 +917,7 @@ dependencies = [
|
|
|
917
917
|
|
|
918
918
|
[[package]]
|
|
919
919
|
name = "lora-server"
|
|
920
|
-
version = "0.8.
|
|
920
|
+
version = "0.8.2"
|
|
921
921
|
dependencies = [
|
|
922
922
|
"anyhow",
|
|
923
923
|
"axum",
|
|
@@ -931,7 +931,7 @@ dependencies = [
|
|
|
931
931
|
|
|
932
932
|
[[package]]
|
|
933
933
|
name = "lora-snapshot"
|
|
934
|
-
version = "0.8.
|
|
934
|
+
version = "0.8.2"
|
|
935
935
|
dependencies = [
|
|
936
936
|
"argon2",
|
|
937
937
|
"bincode",
|
|
@@ -946,7 +946,7 @@ dependencies = [
|
|
|
946
946
|
|
|
947
947
|
[[package]]
|
|
948
948
|
name = "lora-store"
|
|
949
|
-
version = "0.8.
|
|
949
|
+
version = "0.8.2"
|
|
950
950
|
dependencies = [
|
|
951
951
|
"bincode",
|
|
952
952
|
"crc32fast",
|
|
@@ -958,7 +958,7 @@ dependencies = [
|
|
|
958
958
|
|
|
959
959
|
[[package]]
|
|
960
960
|
name = "lora-wal"
|
|
961
|
-
version = "0.8.
|
|
961
|
+
version = "0.8.2"
|
|
962
962
|
dependencies = [
|
|
963
963
|
"crc32fast",
|
|
964
964
|
"lora-store",
|
|
@@ -968,7 +968,7 @@ dependencies = [
|
|
|
968
968
|
|
|
969
969
|
[[package]]
|
|
970
970
|
name = "lora-wasm"
|
|
971
|
-
version = "0.8.
|
|
971
|
+
version = "0.8.2"
|
|
972
972
|
dependencies = [
|
|
973
973
|
"anyhow",
|
|
974
974
|
"console_error_panic_hook",
|
|
@@ -984,7 +984,7 @@ dependencies = [
|
|
|
984
984
|
|
|
985
985
|
[[package]]
|
|
986
986
|
name = "lora_ruby"
|
|
987
|
-
version = "0.8.
|
|
987
|
+
version = "0.8.2"
|
|
988
988
|
dependencies = [
|
|
989
989
|
"anyhow",
|
|
990
990
|
"lora-database",
|
|
@@ -4,7 +4,7 @@ resolver = "2"
|
|
|
4
4
|
|
|
5
5
|
[workspace.package]
|
|
6
6
|
edition = "2021"
|
|
7
|
-
version = "0.8.
|
|
7
|
+
version = "0.8.2"
|
|
8
8
|
license = "BUSL-1.1"
|
|
9
9
|
authors = ["LoraDB, Inc."]
|
|
10
10
|
repository = "https://github.com/lora-db/lora"
|
|
@@ -15,16 +15,16 @@ rust-version = "1.87"
|
|
|
15
15
|
# Internal crates — versions are kept in lockstep with [workspace.package].version
|
|
16
16
|
# by `scripts/sync-versions.mjs`. Both `path` and `version` are set so that
|
|
17
17
|
# `cargo publish` works (crates.io cannot resolve path-only deps).
|
|
18
|
-
lora-ast = { path = "crates/lora-ast", version = "=0.8.
|
|
19
|
-
lora-parser = { path = "crates/lora-parser", version = "=0.8.
|
|
20
|
-
lora-analyzer = { path = "crates/lora-analyzer", version = "=0.8.
|
|
21
|
-
lora-compiler = { path = "crates/lora-compiler", version = "=0.8.
|
|
22
|
-
lora-store = { path = "crates/lora-store", version = "=0.8.
|
|
23
|
-
lora-snapshot = { path = "crates/lora-snapshot", version = "=0.8.
|
|
24
|
-
lora-wal = { path = "crates/lora-wal", version = "=0.8.
|
|
25
|
-
lora-executor = { path = "crates/lora-executor", version = "=0.8.
|
|
26
|
-
lora-database = { path = "crates/lora-database", version = "=0.8.
|
|
27
|
-
lora-binding-buffer = { path = "crates/bindings/lora-binding-buffer", version = "=0.8.
|
|
18
|
+
lora-ast = { path = "crates/lora-ast", version = "=0.8.2" }
|
|
19
|
+
lora-parser = { path = "crates/lora-parser", version = "=0.8.2" }
|
|
20
|
+
lora-analyzer = { path = "crates/lora-analyzer", version = "=0.8.2" }
|
|
21
|
+
lora-compiler = { path = "crates/lora-compiler", version = "=0.8.2" }
|
|
22
|
+
lora-store = { path = "crates/lora-store", version = "=0.8.2" }
|
|
23
|
+
lora-snapshot = { path = "crates/lora-snapshot", version = "=0.8.2", default-features = false }
|
|
24
|
+
lora-wal = { path = "crates/lora-wal", version = "=0.8.2" }
|
|
25
|
+
lora-executor = { path = "crates/lora-executor", version = "=0.8.2" }
|
|
26
|
+
lora-database = { path = "crates/lora-database", version = "=0.8.2" }
|
|
27
|
+
lora-binding-buffer = { path = "crates/bindings/lora-binding-buffer", version = "=0.8.2" }
|
|
28
28
|
|
|
29
29
|
# External crates.
|
|
30
30
|
anyhow = "1"
|
|
@@ -26,7 +26,6 @@ use crate::explain::{QueryPlan, QueryProfile};
|
|
|
26
26
|
use crate::live_store::LiveStore;
|
|
27
27
|
use crate::plan_cache::PlanCache;
|
|
28
28
|
use crate::snapshot::ManagedSnapshotStore;
|
|
29
|
-
use crate::wal::write_scope::WalAbortPolicy;
|
|
30
29
|
|
|
31
30
|
/// Minimal abstraction any transport can depend on to run Lora queries.
|
|
32
31
|
///
|
|
@@ -192,14 +191,12 @@ where
|
|
|
192
191
|
/// Drop every node and relationship, returning WAL/archive errors to the
|
|
193
192
|
/// caller.
|
|
194
193
|
///
|
|
195
|
-
/// When a WAL is attached, the
|
|
196
|
-
///
|
|
197
|
-
///
|
|
198
|
-
///
|
|
199
|
-
/// writes fail until the database is reopened from durable state.
|
|
194
|
+
/// When a WAL is attached, the buffered `MutationEvent::Clear` is appended
|
|
195
|
+
/// to the log on success. The clear runs in place against the live
|
|
196
|
+
/// graph via the same fast path as `with_logged_store_mut`, so a
|
|
197
|
+
/// large graph clear no longer pays an O(N+E) snapshot clone.
|
|
200
198
|
pub fn try_clear(&self) -> Result<(), LoraError> {
|
|
201
|
-
|
|
202
|
-
self.with_logged_write_guard(guard, WalAbortPolicy::AbortOnly, |store| {
|
|
199
|
+
self.with_logged_store_mut(|store| {
|
|
203
200
|
store.clear();
|
|
204
201
|
Ok(())
|
|
205
202
|
})
|
|
@@ -236,13 +233,18 @@ where
|
|
|
236
233
|
|
|
237
234
|
/// Run a closure with an exclusive borrow of the underlying store. Reserved
|
|
238
235
|
/// for admin paths (restore, bulk load); regular mutation goes through
|
|
239
|
-
/// `execute_with_params`. The closure mutates
|
|
240
|
-
///
|
|
236
|
+
/// `execute_with_params`. The closure mutates the live graph in place
|
|
237
|
+
/// via `Arc::make_mut`, so callers don't pay an O(N+E) snapshot clone
|
|
238
|
+
/// just to overwrite the graph. Concurrent readers, when present,
|
|
239
|
+
/// force a single CoW clone and keep observing their pre-mutation
|
|
240
|
+
/// snapshot via the `Arc<S>` they already hold.
|
|
241
241
|
pub fn with_store_mut<R>(&self, f: impl FnOnce(&mut S) -> R) -> R {
|
|
242
|
-
let
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
242
|
+
let _lock = self
|
|
243
|
+
.writer
|
|
244
|
+
.lock()
|
|
245
|
+
.unwrap_or_else(|poisoned| poisoned.into_inner());
|
|
246
|
+
let mut handle = self.store.write();
|
|
247
|
+
f(handle.as_mut())
|
|
246
248
|
}
|
|
247
249
|
}
|
|
248
250
|
|
|
@@ -4,27 +4,35 @@
|
|
|
4
4
|
//!
|
|
5
5
|
//! * [`WriteGuard`] — a working copy + writer-mutex lease produced by
|
|
6
6
|
//! [`Database::write_store`]. Callers mutate the inner `S` and then
|
|
7
|
-
//! `publish()` to atomically swap the new state into the
|
|
8
|
-
//! or drop the guard to discard the changes.
|
|
7
|
+
//! `publish()` to atomically swap the new state into the live store,
|
|
8
|
+
//! or drop the guard to discard the changes. Reserved for the
|
|
9
|
+
//! pessimistic non-`InMemoryGraph` fallback in `execute.rs`; the
|
|
10
|
+
//! InMemoryGraph admin paths bypass it via the live-mutate
|
|
11
|
+
//! fast path below.
|
|
9
12
|
//! * [`Database::write_store_deadline`] / [`Database::read_store_deadline`]
|
|
10
13
|
//! — deadline-aware variants that participate in the cooperative
|
|
11
14
|
//! query-timeout flow.
|
|
12
15
|
//! * [`Database::with_logged_write_guard`] — a closure runner that
|
|
13
16
|
//! brackets the staged mutation with WAL `arm` / `commit` / `abort`
|
|
14
17
|
//! and atomically publishes on success.
|
|
18
|
+
//! * [`Database::with_logged_store_mut`] — the InMemoryGraph fast
|
|
19
|
+
//! path: mutates the live `Arc<S>` in place via `Arc::make_mut`
|
|
20
|
+
//! and only commits buffered events to the WAL on success. Skips
|
|
21
|
+
//! the O(N+E) snapshot clone that `write_store()` pays.
|
|
15
22
|
|
|
16
|
-
use std::any::Any;
|
|
23
|
+
use std::any::{Any, TypeId};
|
|
17
24
|
use std::ops::{Deref, DerefMut};
|
|
18
|
-
use std::sync::{Arc, MutexGuard, TryLockError};
|
|
25
|
+
use std::sync::{Arc, Mutex, MutexGuard, TryLockError};
|
|
19
26
|
use std::time::{Duration, Instant};
|
|
20
27
|
|
|
21
28
|
use anyhow::{anyhow, Result};
|
|
22
29
|
use lora_executor::ExecutorError;
|
|
23
|
-
use lora_store::{GraphStorage, GraphStorageMut, InMemoryGraph, MutationRecorder};
|
|
30
|
+
use lora_store::{GraphStorage, GraphStorageMut, InMemoryGraph, MutationEvent, MutationRecorder};
|
|
24
31
|
use lora_wal::WalRecorder;
|
|
25
32
|
|
|
26
33
|
use crate::database::Database;
|
|
27
|
-
use crate::
|
|
34
|
+
use crate::transaction::BufferingRecorder;
|
|
35
|
+
use crate::wal::write_scope::{ensure_wal_query_can_start, WalAbortPolicy, WalWriteScope};
|
|
28
36
|
|
|
29
37
|
use super::replay::install_recorder_if_inmemory;
|
|
30
38
|
|
|
@@ -158,14 +166,80 @@ where
|
|
|
158
166
|
Ok(())
|
|
159
167
|
}
|
|
160
168
|
|
|
169
|
+
/// Run `f` against the live graph, mutating in place, and commit
|
|
170
|
+
/// the buffered mutation events to the WAL on success.
|
|
171
|
+
///
|
|
172
|
+
/// For `InMemoryGraph` (the default backend) this is the fast
|
|
173
|
+
/// path: it skips the O(N+E) snapshot clone that `write_store()`
|
|
174
|
+
/// pays, going through the same `LiveStore::write()` +
|
|
175
|
+
/// `Arc::make_mut` flow that the optimistic auto-commit query
|
|
176
|
+
/// path uses. Mutation events buffer into a tx-local `Vec` while
|
|
177
|
+
/// the closure runs; on success they're appended to the WAL as a
|
|
178
|
+
/// single transaction, on failure they're discarded so the WAL
|
|
179
|
+
/// stays consistent. The trade-off matches the OCC fast path: a
|
|
180
|
+
/// failure mid-closure can leave the in-memory graph partially
|
|
181
|
+
/// mutated, but durable state stays consistent and recovery from
|
|
182
|
+
/// snapshot+WAL replays only committed transactions.
|
|
183
|
+
///
|
|
184
|
+
/// For non-`InMemoryGraph` backends the pessimistic clone-then-
|
|
185
|
+
/// publish path is preserved: those backends don't expose the
|
|
186
|
+
/// `set_mutation_recorder` hook, so a buffered-event redirect
|
|
187
|
+
/// isn't possible.
|
|
161
188
|
pub(crate) fn with_logged_store_mut<R>(
|
|
162
189
|
&self,
|
|
163
190
|
f: impl FnOnce(&mut S) -> Result<R>,
|
|
164
191
|
) -> Result<R> {
|
|
192
|
+
if TypeId::of::<S>() == TypeId::of::<InMemoryGraph>() {
|
|
193
|
+
return self.with_live_store_mut(f);
|
|
194
|
+
}
|
|
165
195
|
let guard = self.write_store();
|
|
166
196
|
self.with_logged_write_guard(guard, WalAbortPolicy::AbortOnly, f)
|
|
167
197
|
}
|
|
168
198
|
|
|
199
|
+
fn with_live_store_mut<R>(&self, f: impl FnOnce(&mut S) -> Result<R>) -> Result<R> {
|
|
200
|
+
let _commit_lock = self
|
|
201
|
+
.writer
|
|
202
|
+
.lock()
|
|
203
|
+
.unwrap_or_else(|poisoned| poisoned.into_inner());
|
|
204
|
+
|
|
205
|
+
let buffer = Arc::new(Mutex::new(Vec::<MutationEvent>::new()));
|
|
206
|
+
let buffering_rec: Arc<dyn MutationRecorder> =
|
|
207
|
+
Arc::new(BufferingRecorder::new(buffer.clone()));
|
|
208
|
+
|
|
209
|
+
let mut handle = self.store.write();
|
|
210
|
+
|
|
211
|
+
let exec_result = {
|
|
212
|
+
let staged = handle.as_mut();
|
|
213
|
+
install_recorder_if_inmemory(staged, Some(buffering_rec));
|
|
214
|
+
let r = f(staged);
|
|
215
|
+
install_recorder_if_inmemory(staged, None);
|
|
216
|
+
r
|
|
217
|
+
};
|
|
218
|
+
|
|
219
|
+
let events: Vec<MutationEvent> = std::mem::take(&mut buffer.lock().unwrap());
|
|
220
|
+
|
|
221
|
+
let mut wrote_commit = false;
|
|
222
|
+
if let Some(rec) = self.wal.as_ref() {
|
|
223
|
+
if exec_result.is_ok() && !events.is_empty() {
|
|
224
|
+
ensure_wal_query_can_start(rec)?;
|
|
225
|
+
wrote_commit = rec.commit_events(events)?.wrote();
|
|
226
|
+
}
|
|
227
|
+
// Reinstall the durable recorder so the live graph keeps
|
|
228
|
+
// observing future mutations after this scope exits.
|
|
229
|
+
let staged = handle.as_mut();
|
|
230
|
+
install_recorder_if_inmemory(staged, Some(rec.clone() as Arc<dyn MutationRecorder>));
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
if wrote_commit {
|
|
234
|
+
if let Some(rec) = self.wal.as_ref() {
|
|
235
|
+
let live = handle.snapshot();
|
|
236
|
+
self.observe_snapshot_commit_if_needed(&*live, rec)?;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
exec_result
|
|
241
|
+
}
|
|
242
|
+
|
|
169
243
|
/// Run `f` against the staged graph inside a WAL transaction. On
|
|
170
244
|
/// success, atomically publishes the staged graph to the live
|
|
171
245
|
/// `ArcSwap`; on error, the staged copy is dropped (no observable
|
|
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
|
{lora_python-0.8.1 → lora_python-0.8.2}/crates/bindings/lora-python/tests/test_explain_profile.py
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
|
|
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
|
{lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/concurrent_benchmarks.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/perf_smoke_baseline.json
RENAMED
|
File without changes
|
{lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/perf_smoke_benchmarks.rs
RENAMED
|
File without changes
|
|
File without changes
|
{lora_python-0.8.1 → lora_python-0.8.2}/crates/lora-database/benches/temporal_spatial_benchmarks.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
|
|
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
|
|
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
|
|
File without changes
|