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
Support for Contextual Query Language #354
Conversation
…versal should continue proceeding downwards
…t all traversal types
# Conflicts: # rest-interface/build.gradle
Hi @VishalDalwadi Thank you for this contribution. While testing, I found the following bug: It is not possible to sort by a column that is not projected (results in a null pointer). Here is a query to reproduce this: Here is an overview on the most important changes I did:
The README file we would like to put on the documentation section of the website, if this is ok for you? |
Hi @vogti. Yes, all of those changes are fine by me. I will sort out the issue. I believe we are creating the sort node after creating the projection node, so a reference to the sorting node cannot be created. But I am not completely sure. I will look into it. No worries. |
Hi @vogti. I've restored the README file and documented the behavior for sorting on a column that is not present in projection. |
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.
Thanks, @VishalDalwadi, for this PR!
Thanks, @vogti, @hennlo, @cedricmendelin for your help along the way. I look forward to working with you again. |
This implementation of CQL was part of the Google Summer of Code 2021 project "Support for Contextual Query Language".
The initial design for CQL implementation was to allow users to create JARs that contain the context set information. These JARs could then be found by a plugin manager and the CQL execution engine could use the context sets to convert the query into relation algebra.
However, after careful consideration, we came upon the current design which is much simpler (both for understanding and implementation). In the current design, the schema takes on the role of Context Set. The schema has tables which in-turn have columns. These two take on the role of index (as specified in the CQL standard spec). Filters are operations taking place on columns and Relations are the output of combine operation ( Joins or Set Operations ) on tables.