v3: support overlapping multi-column vindexes#4996
Merged
sougou merged 1 commit intovitessio:masterfrom Aug 24, 2019
Merged
Conversation
Signed-off-by: Sugu Sougoumarane <ssougou@gmail.com>
Contributor
Author
Contributor
|
Does this need a specific test for when vindex A is write_only vs vindex B? i.e. one thing somebody might actually do with this? |
Contributor
Author
I believe not. This fix is orthogonal of whether the vindex is RW or write-only. |
Contributor
Author
|
@eeSeeGee ping |
deepthi
approved these changes
Aug 23, 2019
| "Sharded": true | ||
| }, | ||
| "Query": "insert into overlap_vindex(kid, column_a, column_b) values (:_kid0, :_column_a0, 3)", | ||
| "Values": [ |
Collaborator
There was a problem hiding this comment.
this would be easier to understand if we called this VindexValues while converting to JSON just like in the original Insert struct.
Contributor
Author
There was a problem hiding this comment.
Yeah. Makes sense. We should make a separate PR.
This file contains hidden or 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
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.
There exist use cases where one needs vindexes with overlapping columns. In such scenarios, the extraction of values cannot be done simultaneously with the substitution of bindvars. If so, the first vindex will substitute its bindvar name to replace an existing value, and then a subsequent vindex may pick up the previously substituted value instead of the original value.
With this logic change, we pull all necessary values out of the insert values in the first pass, and substitutes those values with bind var names in a separate pass.
Signed-off-by: Sugu Sougoumarane ssougou@gmail.com