-
Notifications
You must be signed in to change notification settings - Fork 23
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
Move setting of 'optimizer' GUC to the extension #1128
base: feature/ADBDEV-6552
Are you sure you want to change the base?
Conversation
It looks good. The only question left is: will there be a possibility to have more than two optimizers? As we know, PG12 also has geqo at least. I understand that this may be premature, and not relevant for this particular task but anyway. |
We can support many planners, but not simultaneously in runtime. The decision which one to use now can be done by switching between shared libraries. I think that now we do not aim to support Standard + 2 external planners at the same time. |
Fixed conflicts. |
Move setting of 'optimizer' GUC to the extension
Problem:
File 'guc_gp.c' contained a compile-time dependency on Orca, related to
'optimizer' GUC. It prevented moving of all Orca's code into a shared lib and
making its work transparent to the GPDB core.
This patch:
of planner_hook presence to distinguish if an external planner is available or
not.
Note: the semantic of 'optimizer' GUC has changed. Previously it was used
solely to enable & disable Orca. Now it is used to enable & disable any general
external planner. The name of GUC hasn't been changed, because too many places
in code and infrastructure rely on it, and we aim not to blow up the size of
the patch.