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
Subqueries keep their orderBy clauses and the query optimizer is .. #305
Conversation
…e of cheap filters - Previously all OrderBy clauses that occured in subqueries were deleted. This gained speed when their were superfluous orderBys that were overwritten by ancestor's orderBy clauses but plain wrong if there is an orderBy clause in a subquery but not in the main query - Also makes the query planner aware that filters are even cheapier if their input is sorted.
I have build a Docker container called
|
My account seems to have been deactivated, I'll clear that with Hannah and Frank |
Do you have a test query on scientists, this would be a good candidate for the end to end tests. |
I started it and first got an Exception:
Great! |
@hannahbast This is indeed the master branch, we currently fixed this Escaping in literals because it is actually required. |
@hannahbast Thanks for the feedback, Indeed you found a bug in the current master branch for which I partially take responsibility. I just added a commit that should fix this issue to this PR. It is a symptom of a much bigger problem: Currently everything is a |
Ok, so now we are back to:
|
isSimple = false; | ||
} else if (escaped && !isControlChar) { | ||
const std::string error = | ||
"Escaping the character "s + c + |
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.
Why do you have the std::literals::string_literals::operator""s
only on the first literal?
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.
LGTM with just a small clariffication question, feel free to merge
- The previous escaping fix had the internal SparqlParser::parseLiteral function called after parsing the literal inside the Lexer. This is unwanted and led to strange behavior. This is just a small fix for a much bigger issue: All kinds of different types of Triple and Query elements are encoded als std::string, this makes it very easy to mix things up and create bugs. - The prefix filter now for ages has retrieved one element too much.
95821c4
to
b82e5dd
Compare
aware of cheap filters
Previously all OrderBy clauses that occured in subqueries were deleted. This gained speed when their were superfluous orderBys that were overwritten by ancestor's orderBy clauses
but plain wrong if there is an orderBy clause in a subquery but not in the main query
Also makes the query planner aware that filters are even cheapier if their input is sorted.
Fixes #304