HAWQ-1122. Adds a GUC to enable array constraint derivation. This fixes the naming in c85f858ec725ec14a6e7870749f3a03fb2597310
A new feature of ORCA is to more efficiently handle array constraints. It includes a new preprocessing stage, and a new way of internally representing array constraints. This feature can be enabled by use of this GUC. This is cherry-picked from greenplum-db/gpdb@8ba520bd9f4f82ced764075ac1eb35c121dadfed Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/14524b4d Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/14524b4d Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/14524b4d Branch: refs/heads/master Commit: 14524b4d178f1da2b5a517c75b16aeefd18c57af Parents: 15fa66e Author: Marc Spehlmann <[email protected]> Authored: Mon Aug 1 08:53:58 2016 -0700 Committer: rlei <[email protected]> Committed: Fri Oct 28 11:52:20 2016 +0800 ---------------------------------------------------------------------- src/backend/gpopt/config/CConfigParamMapping.cpp | 4 ++-- src/backend/utils/misc/guc.c | 9 +++++---- src/include/utils/guc.h | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/14524b4d/src/backend/gpopt/config/CConfigParamMapping.cpp ---------------------------------------------------------------------- diff --git a/src/backend/gpopt/config/CConfigParamMapping.cpp b/src/backend/gpopt/config/CConfigParamMapping.cpp index cde6fd7..33ae54b 100644 --- a/src/backend/gpopt/config/CConfigParamMapping.cpp +++ b/src/backend/gpopt/config/CConfigParamMapping.cpp @@ -394,8 +394,8 @@ CConfigParamMapping::SConfigMappingElem CConfigParamMapping::m_elem[] = }, { - EopttraceEnableArrayDerive, - &optimizer_enable_array_derivation, + EopttraceArrayConstraints, + &optimizer_array_constraints, false, // m_fNegate GPOS_WSZ_LIT("Allows the constraint framework to derive array constraints in the optimizer.") } http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/14524b4d/src/backend/utils/misc/guc.c ---------------------------------------------------------------------- diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 7f56f80..ee33862 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -765,7 +765,7 @@ bool optimizer_enable_derive_stats_all_groups; bool optimizer_explain_show_status; bool optimizer_prefer_scalar_dqa_multistage_agg; bool optimizer_parallel_union; -bool optimizer_enable_array_derivation; +bool optimizer_array_constraints; /* Security */ bool gp_reject_internal_tcp_conn = true; @@ -4400,15 +4400,16 @@ static struct config_bool ConfigureNamesBool[] = }, { - {"optimizer_enable_array_derivation", PGC_USERSET, DEVELOPER_OPTIONS, - gettext_noop("Allows the constraint framework to derive array constraints in the optimizer."), + {"optimizer_array_constraints", PGC_USERSET, DEVELOPER_OPTIONS, + gettext_noop("Allows the optimizer's constraint framework to derive array constraints."), NULL, GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE }, - &optimizer_enable_array_derivation, + &optimizer_array_constraints, false, NULL, NULL }, + /* End-of-list marker */ { {NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/14524b4d/src/include/utils/guc.h ---------------------------------------------------------------------- diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h index 6cdf22d..e0cfc33 100644 --- a/src/include/utils/guc.h +++ b/src/include/utils/guc.h @@ -441,7 +441,7 @@ extern bool optimizer_enable_derive_stats_all_groups; extern bool optimizer_explain_show_status; extern bool optimizer_prefer_scalar_dqa_multistage_agg; extern bool optimizer_parallel_union; -extern bool optimizer_enable_array_derivation; +extern bool optimizer_array_constraints; /** * Enable logging of DPE match in optimizer.
