forked from greenplum-db/gpdb-archive
-
Notifications
You must be signed in to change notification settings - Fork 22
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
Remove changing volatile to singleqe for queries with outer quals #1163
Open
red1452
wants to merge
6
commits into
adb-7.2.0
Choose a base branch
from
ADBDEV-5518
base: adb-7.2.0
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 5 commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
ee3cab1
Remove changing volatile to singleqe
red1452 a37c039
partial revert
red1452 b058b4a
remove useless changes
red1452 d511512
Merge branch 'adb-7.2.0' into ADBDEV-5518
red1452 a3265db
Merge branch 'adb-7.2.0' into ADBDEV-5518
red1452 af128be
update comment
red1452 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
Oops, something went wrong.
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 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 does empty upperrestrictinfo sign that there is no outer queries?
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.
I updated the comment above.
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.
I see. You filtered out cases for bring_to_outer_query from this condition. Why problem manifests itself only in case of not null
upperrestrictinfo
? What are other cases to execute Segment General only on Single QE?It's quite strange to leave complex transformation logic only for exact checks. Do we still needed these transformations?
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.
Functions
handle_gen_seggen_volatile_path
,bring_to_outer_query
andbring_to_singleQE
make the same things, but in the different cases. Functionhandle_gen_seggen_volatile_path
works when locus is general or segment general or replicated and there is volatile function. Functionbring_to_outer_query
works when locus is not general and not outer query and there is outer quals. Functionbring_to_singleQE
works when locus is not general and not entry and not single QE and not outer query.I think removing or union of these functions must be done in the other ticket, which will be complex refactoring of it. My patch just fix double work of these functions, when
handle_gen_seggen_volatile_path
andbring_to_outer_query
work together. It does not needed to execute functionhandle_gen_seggen_volatile_path
if functionbring_to_outer_query
will be executed (in case of non nullupperrestrictinfo
).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.
One of some queries, which will be changed if
handle_gen_seggen_volatile_path
is removed:Plan before:
Plan after: