-
Notifications
You must be signed in to change notification settings - Fork 87
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
Document Data Model & Mongo Query Language #358
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…erhaps removed later), als store logic
…eny-DB into mongodb-adapter
vogti
reviewed
Oct 23, 2021
mongodb-adapter/src/main/java/org/polypheny/db/adapter/mongodb/MongoFilter.java
Outdated
Show resolved
Hide resolved
vogti
reviewed
Oct 23, 2021
mongodb-adapter/src/main/java/org/polypheny/db/adapter/mongodb/util/MongoDynamic.java
Outdated
Show resolved
Hide resolved
vogti
reviewed
Oct 23, 2021
dbms/src/main/java/org/polypheny/db/processing/SqlProcessorImpl.java
Outdated
Show resolved
Hide resolved
vogti
reviewed
Oct 24, 2021
dbms/src/main/java/org/polypheny/db/processing/AbstractQueryProcessor.java
Outdated
Show resolved
Hide resolved
vogti
approved these changes
Oct 24, 2021
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.
Thx, @datomo, for this PR!
…eny-DB into document-schema
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces the document data model into Polypheny. It combines two main parts in the document data model itself and the MongoDB Query Language.
Document Model
Adds multiple new functions, which enable the document model for document-supported adapters in MongoDB but also non-document-supported adapters.
DDL: changes throughout Polypheny to enforce the more dynamic data document model, by adding 2 fixed columns for each dcoumet collection in
_id
(primary key) and_data
(dynamic fields as BSON)DML:
LogicalDocuments
, which enables different handling of values for document and non-document-supported adapters, as well as remove, replace and rename logic for documentsDQL:
DOC_QUERY_VALUE
andDOC_QUERY_EXCLUDE
functions, which enable extracting of the _data field while quering if necessaryJSON type: wrapper type for large VARCHAR, which enforces JSON structure on data modification
MongoDB Query Language
Parsing of MongoQL strings to equivalent relational algebra, as well as additional MongoQL specific query functionality like
elemMatch
orunwind
. The used language implemenation follows the MongoDB Query Language reference, a detailed reference can be found on the websiteMqlParser
: JavaCC implemenation of MongoQL input parserMqlToRelConverter
: Converting of parsed MongoQL objects toRelNode
objectsMqlInterface
: MongoQL Rest interface, which is used for integration testing and can query Polypheny with MongoQLMinor Changes
This PR is the logical counterpart to: Document Data Model & MongoDB Query Language UI