-
Notifications
You must be signed in to change notification settings - Fork 9
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 join #428
Merge join #428
Changes from all commits
2e149f1
3ce9d53
7ae8a01
fdc40d9
d6e9f19
74f46d4
8ed6954
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -55,3 +55,6 @@ release/RELEASE_OUTPUT.md | |
.idea | ||
data | ||
.nvmrc | ||
wikidata | ||
qendpoint-store/wdbench-indexes | ||
wdbench-results |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,6 +14,8 @@ | |
|
||
import java.io.Closeable; | ||
import java.io.IOException; | ||
import java.io.Serial; | ||
import java.io.Serializable; | ||
import java.nio.file.Path; | ||
import java.util.Objects; | ||
import java.util.concurrent.atomic.AtomicInteger; | ||
|
@@ -26,7 +28,10 @@ | |
* @author Antoine Willerval | ||
* @see QEPCore | ||
*/ | ||
public class QEPDataset implements Closeable { | ||
public class QEPDataset implements Closeable, Serializable { | ||
|
||
@Serial | ||
private static final long serialVersionUID = 7525689572432598258L; | ||
Comment on lines
+31
to
+34
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are some requirements for serializable classes in RDF4J that were not explicitly tested for. From what I remember when migrating the code to RDF4J 5.0.0 this class is used transitively from within a query plan because it is used in QEPComponent which is used in QEPCoreBNode which is used in StatementPattern through Var. |
||
|
||
public record ComponentFind(QEPDataset dataset, TripleComponentRole role, long id, long pid) { | ||
public boolean isFind() { | ||
|
@@ -261,7 +266,7 @@ public void setComponentInDelta(TripleComponentRole role, long component) { | |
public QueryCloseableIterator search(CharSequence subject, CharSequence predicate, CharSequence object) | ||
throws QEPCoreException { | ||
QEPDatasetContext ctx = createContext(); | ||
return search(ctx, subject, predicate, object).attach(ctx); | ||
return (QueryCloseableIterator) search(ctx, subject, predicate, object).attach(ctx); | ||
} | ||
|
||
Comment on lines
266
to
271
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This may not be the correct fix, but it was the best I could manage when migrating to RDF4J 5.0.0. |
||
/** | ||
|
@@ -278,7 +283,7 @@ public QueryCloseableIterator search(CharSequence subject, CharSequence predicat | |
public QueryCloseableIterator search(QEPComponent subject, QEPComponent predicate, QEPComponent object) | ||
throws QEPCoreException { | ||
QEPDatasetContext ctx = createContext(); | ||
return search(ctx, subject, predicate, object).attach(ctx); | ||
return (QueryCloseableIterator) search(ctx, subject, predicate, object).attach(ctx); | ||
} | ||
|
||
/** | ||
|
@@ -292,7 +297,7 @@ public QueryCloseableIterator search(QEPComponent subject, QEPComponent predicat | |
*/ | ||
public QueryCloseableIterator search(QEPComponentTriple pattern) throws QEPCoreException { | ||
QEPDatasetContext ctx = createContext(); | ||
return search(ctx, pattern).attach(ctx); | ||
return (QueryCloseableIterator) search(ctx, pattern).attach(ctx); | ||
} | ||
|
||
/** | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,7 +12,7 @@ public class CloseableAttachQueryIterator implements QueryCloseableIterator { | |
|
||
@SafeVarargs | ||
public static QueryCloseableIterator of(QueryCloseableIterator it, | ||
AutoCloseableGeneric<QEPCoreException>... closeables) { | ||
AutoCloseableGeneric<? extends RuntimeException>... closeables) { | ||
Objects.requireNonNull(it, "it can't be null!"); | ||
if (closeables.length == 0) { | ||
return it; | ||
Comment on lines
13
to
18
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Again I'm not sure if this is the correct approach to fixing the issues when migrating to RDF4J 5.0.0. |
||
|
@@ -21,11 +21,11 @@ public static QueryCloseableIterator of(QueryCloseableIterator it, | |
} | ||
|
||
private final QueryCloseableIterator handle; | ||
private final List<AutoCloseableGeneric<QEPCoreException>> closeables; | ||
private final List<AutoCloseableGeneric<? extends RuntimeException>> closeables; | ||
|
||
@SafeVarargs | ||
private CloseableAttachQueryIterator(QueryCloseableIterator handle, | ||
AutoCloseableGeneric<QEPCoreException>... closeableGenerics) { | ||
AutoCloseableGeneric<? extends RuntimeException>... closeableGenerics) { | ||
this.handle = handle; | ||
closeables = new ArrayList<>(List.of(closeableGenerics)); | ||
} | ||
|
@@ -68,7 +68,7 @@ public long estimateCardinality() { | |
} | ||
|
||
@Override | ||
public QueryCloseableIterator attach(AutoCloseableGeneric<QEPCoreException> closeable) { | ||
public QueryCloseableIterator attach(AutoCloseableGeneric<? extends RuntimeException> closeable) { | ||
closeables.add(closeable); | ||
return this; | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have note published a new milestone build of RDF4J 5.0.0 yet, so we need to use the snapshots repo in the meantime.