Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge main into develop #11

Open
wants to merge 2,697 commits into
base: develop
Choose a base branch
from
Open

Merge main into develop #11

wants to merge 2,697 commits into from

Conversation

github-actions[bot]
Copy link

Automatically generated PR to keep develop in sync with main.

USE MERGE COMMIT TO MERGE THIS PR.

See merge_main_to_develop.yml.

kenwenzel and others added 30 commits June 5, 2024 10:20
Signed-off-by: Håvard Ottestad <[email protected]>
…lauses

FedX supports interpret the Dataset being defined on the query: if it is
of type FedXDataset, the federation is reduced to the members defined by
FedXDataset#getEndpoints().

This is a nice means to evaluate a query on a subset of the federation
and is generally working fine.

When the query contains a FROM clause, however, the externally passed
Dataset is wrapped into a FallbackDataset (which internally keeps the
FedXDataset as primary one.

This change now inspects the FallbackDataset and unwraps it to reduce
the members. Note that for execution still the "FallbackDataset" is
used.
hmottestad and others added 30 commits November 21, 2024 21:53
Signed-off-by: Håvard Ottestad <[email protected]>
…ate were not notified and were also not added. This only happens when the exact statement was removed by the DELETE clause.
…nput

This change fixes a situation that can incorrectly cause empty results.
It happens when the input of the left argument is a single binding set
and for special source selection situations (e.g. the right argument is
marked as ExclusiveStatement while the endpoint does not provide data)

To avoid the issue we also use the regular left join logic also for a
single binding set input, which can handle the situation properly.

Issue is covered with a unit test.
…in FedX

The previous implementation of the FedXConnection was delegating
"hasStatements()" to the implementation of "getStatements()", where the
latter was actually fetching data from the federation members.

For checks hasStatements() checks like {null, rdf:type, null} or even
{null, null, null} the implementation is problematic as it would fetch
all data matching the pattern from the federation members, only to
answer if it actually exists.

We now make use of "existence" check on the federation members, and can
actually rely on the source selection cache for this.

Unit test coverage has been added.
…tion cache

Add an additional constructor accepting a supplier for an initialized
cache.
The federation optimizer was missing to execute the binding assigner
(which injects external bindings into the statement pattern). The
consequence was potentially incorrect results (due to source source
selection with partial knowledge) as well as sub-optimal source
selection

Issue is covered with a unit test, which is failing in two places prior
to this change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.