Repository navigation
Commit 4105e54
fix(engine): nested registry scopes, double SERVICE fetch, budget-truncated streams, LOAD blank nodes (#6655)
* fix(engine): scoped registry guards restore the outer registry (#4467)
functions::Guard, aggregates::Guard and spatial::Guard cleared the
thread-local on drop, so a nested with_functions / with_aggregates /
with_spatial_index scope unregistered the outer one for the rest of the
outer scope. Store the replaced value at install and restore it on drop,
matching local_services::Guard and the WorkerGuards.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C1gMf8RJim1LzuKapZNpZR
* fix(engine): evaluate a SERVICE on the left of a join once (#4438)
When the left of a Join was a SERVICE and the bind-join pushdown declined,
the left was evaluated eagerly and then again on the fall-through, fetching
the endpoint (or running a local handler) twice. Evaluate the right first
and the SERVICE at most once.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C1gMf8RJim1LzuKapZNpZR
* fix(engine): leave a budget-truncated streamed SELECT-JSON document unclosed (#4239)
The single-pattern scan fast path appended the closing ]}} after a
budget::exhausted break, so the emit sink saw a complete-looking but
truncated document before the caller reported the abort. Skip the
terminator when the budget tripped, on the serial and parallel paths.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C1gMf8RJim1LzuKapZNpZR
* fix(engine): stop the whole SIP theta anti-join on budget exhaustion (#4158)
The budget break sat in the inner per-member loop, so an exhausted budget
only ended the current correlation group and the next group's seeded B'
was still dispatched. Break out of the outer group loop instead, so the
SIP strategy stops the same way the hash strategy does.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C1gMf8RJim1LzuKapZNpZR
* fix(engine): LOAD standardises blank nodes apart (#4160)
LOAD extended the destination with the document's blank-node labels
verbatim, so two documents (or a document and the store) that both used
_:b0 shared one node, and re-LOADing a document was idempotent. LOAD is
an RDF merge (SPARQL 1.1 Update 3.1.5): freshen the document's blank
nodes once per LOAD, keeping one node per label within the document.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C1gMf8RJim1LzuKapZNpZR
* chore: feature-off declaration for #6655
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C1gMf8RJim1LzuKapZNpZR
* fix(update): mint fresh blank-node labels under a random per-process prefix
A bare fbN counter restarts at 0 per process, so a fresh node could reuse a
label already in the store and merge with it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C1gMf8RJim1LzuKapZNpZR
* fix(engine): random fresh blank nodes that work on wasm; recheck the budget per emitted JSON chunk
- FreshBnodes uses oxrdf's random BlankNode::default() (the browser getrandom backend is
configured) instead of SystemTime/process::id, which trap on wasm32-unknown-unknown
- the SELECT-JSON fast path rechecks the budget after each emitted chunk and right
before the terminator, so a cancellation raised mid-stream never closes the document
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C1gMf8RJim1LzuKapZNpZR
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 0268a63 commit 4105e54
5 files changed
Lines changed: 303 additions & 49 deletions
File tree
- bench/feature-off-declarations
- crates/sparq-engine
- src
- tests/federation_features
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1929 | 1929 | | |
1930 | 1930 | | |
1931 | 1931 | | |
1932 | | - | |
1933 | | - | |
1934 | | - | |
| 1932 | + | |
| 1933 | + | |
| 1934 | + | |
| 1935 | + | |
1935 | 1936 | | |
1936 | 1937 | | |
1937 | | - | |
| 1938 | + | |
| 1939 | + | |
1938 | 1940 | | |
1939 | 1941 | | |
1940 | 1942 | | |
1941 | 1943 | | |
1942 | | - | |
1943 | | - | |
| 1944 | + | |
1944 | 1945 | | |
1945 | 1946 | | |
1946 | 1947 | | |
| |||
2072 | 2073 | | |
2073 | 2074 | | |
2074 | 2075 | | |
2075 | | - | |
| 2076 | + | |
2076 | 2077 | | |
2077 | 2078 | | |
2078 | | - | |
| 2079 | + | |
| 2080 | + | |
2079 | 2081 | | |
2080 | 2082 | | |
2081 | 2083 | | |
2082 | 2084 | | |
2083 | | - | |
2084 | | - | |
| 2085 | + | |
2085 | 2086 | | |
2086 | 2087 | | |
2087 | 2088 | | |
| |||
2276 | 2277 | | |
2277 | 2278 | | |
2278 | 2279 | | |
2279 | | - | |
| 2280 | + | |
2280 | 2281 | | |
2281 | 2282 | | |
2282 | | - | |
| 2283 | + | |
| 2284 | + | |
2283 | 2285 | | |
2284 | 2286 | | |
2285 | 2287 | | |
2286 | 2288 | | |
2287 | | - | |
2288 | | - | |
| 2289 | + | |
2289 | 2290 | | |
2290 | 2291 | | |
2291 | 2292 | | |
| |||
2899 | 2900 | | |
2900 | 2901 | | |
2901 | 2902 | | |
2902 | | - | |
| 2903 | + | |
| 2904 | + | |
2903 | 2905 | | |
2904 | 2906 | | |
2905 | 2907 | | |
| |||
2915 | 2917 | | |
2916 | 2918 | | |
2917 | 2919 | | |
2918 | | - | |
2919 | | - | |
2920 | | - | |
2921 | | - | |
| 2920 | + | |
| 2921 | + | |
| 2922 | + | |
| 2923 | + | |
| 2924 | + | |
| 2925 | + | |
| 2926 | + | |
| 2927 | + | |
| 2928 | + | |
2922 | 2929 | | |
2923 | 2930 | | |
2924 | | - | |
2925 | | - | |
| 2931 | + | |
| 2932 | + | |
| 2933 | + | |
| 2934 | + | |
| 2935 | + | |
| 2936 | + | |
| 2937 | + | |
| 2938 | + | |
| 2939 | + | |
2926 | 2940 | | |
2927 | 2941 | | |
2928 | 2942 | | |
| |||
2941 | 2955 | | |
2942 | 2956 | | |
2943 | 2957 | | |
2944 | | - | |
| 2958 | + | |
| 2959 | + | |
| 2960 | + | |
2945 | 2961 | | |
2946 | 2962 | | |
2947 | 2963 | | |
2948 | | - | |
2949 | | - | |
2950 | | - | |
| 2964 | + | |
| 2965 | + | |
| 2966 | + | |
| 2967 | + | |
| 2968 | + | |
| 2969 | + | |
| 2970 | + | |
| 2971 | + | |
2951 | 2972 | | |
2952 | 2973 | | |
2953 | 2974 | | |
| |||
5919 | 5940 | | |
5920 | 5941 | | |
5921 | 5942 | | |
5922 | | - | |
5923 | | - | |
5924 | | - | |
5925 | | - | |
| 5943 | + | |
| 5944 | + | |
| 5945 | + | |
5926 | 5946 | | |
| 5947 | + | |
| 5948 | + | |
| 5949 | + | |
| 5950 | + | |
5927 | 5951 | | |
| 5952 | + | |
| 5953 | + | |
5928 | 5954 | | |
5929 | | - | |
5930 | | - | |
5931 | | - | |
5932 | | - | |
5933 | | - | |
5934 | | - | |
5935 | | - | |
5936 | | - | |
5937 | | - | |
5938 | | - | |
5939 | | - | |
5940 | | - | |
| 5955 | + | |
| 5956 | + | |
| 5957 | + | |
5941 | 5958 | | |
| 5959 | + | |
| 5960 | + | |
| 5961 | + | |
| 5962 | + | |
| 5963 | + | |
| 5964 | + | |
| 5965 | + | |
5942 | 5966 | | |
5943 | 5967 | | |
5944 | 5968 | | |
| |||
10698 | 10722 | | |
10699 | 10723 | | |
10700 | 10724 | | |
10701 | | - | |
| 10725 | + | |
10702 | 10726 | | |
10703 | 10727 | | |
10704 | 10728 | | |
| |||
10766 | 10790 | | |
10767 | 10791 | | |
10768 | 10792 | | |
| 10793 | + | |
| 10794 | + | |
| 10795 | + | |
10769 | 10796 | | |
10770 | | - | |
| 10797 | + | |
10771 | 10798 | | |
10772 | 10799 | | |
10773 | 10800 | | |
| |||
22802 | 22829 | | |
22803 | 22830 | | |
22804 | 22831 | | |
| 22832 | + | |
| 22833 | + | |
| 22834 | + | |
| 22835 | + | |
| 22836 | + | |
| 22837 | + | |
| 22838 | + | |
| 22839 | + | |
| 22840 | + | |
| 22841 | + | |
| 22842 | + | |
| 22843 | + | |
| 22844 | + | |
| 22845 | + | |
| 22846 | + | |
| 22847 | + | |
| 22848 | + | |
| 22849 | + | |
| 22850 | + | |
| 22851 | + | |
| 22852 | + | |
| 22853 | + | |
| 22854 | + | |
| 22855 | + | |
| 22856 | + | |
| 22857 | + | |
| 22858 | + | |
| 22859 | + | |
| 22860 | + | |
| 22861 | + | |
| 22862 | + | |
| 22863 | + | |
| 22864 | + | |
| 22865 | + | |
| 22866 | + | |
| 22867 | + | |
| 22868 | + | |
| 22869 | + | |
| 22870 | + | |
| 22871 | + | |
| 22872 | + | |
| 22873 | + | |
| 22874 | + | |
| 22875 | + | |
| 22876 | + | |
| 22877 | + | |
| 22878 | + | |
| 22879 | + | |
| 22880 | + | |
| 22881 | + | |
| 22882 | + | |
| 22883 | + | |
| 22884 | + | |
| 22885 | + | |
| 22886 | + | |
| 22887 | + | |
| 22888 | + | |
| 22889 | + | |
| 22890 | + | |
| 22891 | + | |
| 22892 | + | |
| 22893 | + | |
| 22894 | + | |
| 22895 | + | |
| 22896 | + | |
| 22897 | + | |
| 22898 | + | |
| 22899 | + | |
| 22900 | + | |
| 22901 | + | |
| 22902 | + | |
| 22903 | + | |
| 22904 | + | |
| 22905 | + | |
| 22906 | + | |
| 22907 | + | |
| 22908 | + | |
| 22909 | + | |
| 22910 | + | |
| 22911 | + | |
| 22912 | + | |
| 22913 | + | |
| 22914 | + | |
| 22915 | + | |
| 22916 | + | |
| 22917 | + | |
| 22918 | + | |
| 22919 | + | |
| 22920 | + | |
| 22921 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2581 | 2581 | | |
2582 | 2582 | | |
2583 | 2583 | | |
| 2584 | + | |
| 2585 | + | |
| 2586 | + | |
| 2587 | + | |
| 2588 | + | |
| 2589 | + | |
| 2590 | + | |
| 2591 | + | |
| 2592 | + | |
| 2593 | + | |
| 2594 | + | |
| 2595 | + | |
| 2596 | + | |
| 2597 | + | |
| 2598 | + | |
| 2599 | + | |
| 2600 | + | |
| 2601 | + | |
| 2602 | + | |
| 2603 | + | |
| 2604 | + | |
| 2605 | + | |
| 2606 | + | |
| 2607 | + | |
| 2608 | + | |
| 2609 | + | |
| 2610 | + | |
| 2611 | + | |
| 2612 | + | |
| 2613 | + | |
| 2614 | + | |
| 2615 | + | |
| 2616 | + | |
| 2617 | + | |
| 2618 | + | |
| 2619 | + | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
| 2623 | + | |
| 2624 | + | |
| 2625 | + | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
| 2631 | + | |
| 2632 | + | |
| 2633 | + | |
2584 | 2634 | | |
2585 | 2635 | | |
2586 | 2636 | | |
| |||
0 commit comments