-
Notifications
You must be signed in to change notification settings - Fork 16
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
Change path-name convention shredder uses to be same as needed by filtering (no need to de-shred) #91
Comments
@tatu-at-datastax Are we going to store duplicate for arrays, in both array_equals and query_*_values? |
@maheshrajamani this would not change any of that but yes, contents of arrays are duplicated by Shredder (in |
Question to explore is can SAI index search of wild card for map key, if so we may not need the array_contains. |
@maheshrajamani That would be interesting, although could be problematic with deeper nesting as this would match anything with same prefix. |
@maheshrajamani I think #92 is now ready: I added test that shows that basic dotted notation now works as expected for filtering:
and ditto for sub-docs, and nesting to arbitrary levels. Handling of dotted notation is trickier for update operations and projections but filtering is easy at least. |
@maheshrajamani It would not be possible, maybe something to add later if / when we create a full JSON type in C* |
Originally super-shredder path names were thought to be needed to allow "de-shredding" -- re-building of the source document from shredded paths. This is why path to value '5' in:
would become
array.[0]
, escaped so that path is never ambiguous, even if property name contained.
(allowed in later Mongo versions) or opening bracket (likewise legal).But Mongo filtering clauses use simpler, potentially ambiguous notation:
array.0
.Although we could of course convert from
array.0
intoarray.[0]
it makes more sense to simplify shredded paths because:The text was updated successfully, but these errors were encountered: