You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by rl...@apache.org on 2016/10/28 03:53:13 UTC

[10/17] incubator-hawq git commit: HAWQ-1122. Adds a GUC to enable array constraint derivation.

HAWQ-1122. Adds a GUC to enable array constraint derivation.

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@c85f858ec725ec14a6e7870749f3a03fb2597310


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/71caebcf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/71caebcf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/71caebcf

Branch: refs/heads/master
Commit: 71caebcfbdbb19146e149f8e808790693ebcf41e
Parents: e7bba17
Author: Marc Spehlmann <ma...@gmail.com>
Authored: Mon Aug 1 08:53:58 2016 -0700
Committer: rlei <rl...@pivotal.io>
Committed: Fri Oct 28 11:52:20 2016 +0800

----------------------------------------------------------------------
 .../gpopt/config/CConfigParamMapping.cpp        |  7 +++++++
 src/backend/utils/misc/guc.c                    | 21 +++++++++++++++-----
 src/include/utils/guc.h                         |  1 +
 3 files changed, 24 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/71caebcf/src/backend/gpopt/config/CConfigParamMapping.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/config/CConfigParamMapping.cpp b/src/backend/gpopt/config/CConfigParamMapping.cpp
index 4a2073c..cde6fd7 100644
--- a/src/backend/gpopt/config/CConfigParamMapping.cpp
+++ b/src/backend/gpopt/config/CConfigParamMapping.cpp
@@ -391,6 +391,13 @@ CConfigParamMapping::SConfigMappingElem CConfigParamMapping::m_elem[] =
 		&optimizer_parallel_union,
 		false, // m_fNegate
 		GPOS_WSZ_LIT("Enable parallel execution for UNION/UNION ALL queries.")
+		},
+
+		{
+		EopttraceEnableArrayDerive,
+		&optimizer_enable_array_derivation,
+		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/71caebcf/src/backend/utils/misc/guc.c
----------------------------------------------------------------------
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index a936765..7f56f80 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -758,13 +758,14 @@ bool		optimizer_static_partition_selection;
 bool		optimizer_enable_partial_index;
 bool		optimizer_dml_triggers;
 bool		optimizer_dml_constraints;
-bool 		optimizer_enable_master_only_queries;
-bool sort_segments_enable;
-bool 		optimizer_multilevel_partitioning;
-bool        optimizer_enable_derive_stats_all_groups;
+bool		optimizer_enable_master_only_queries;
+bool		sort_segments_enable;
+bool		optimizer_multilevel_partitioning;
+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_parallel_union;
+bool		optimizer_enable_array_derivation;
 
 /* Security */
 bool		gp_reject_internal_tcp_conn = true;
@@ -4398,6 +4399,16 @@ static struct config_bool ConfigureNamesBool[] =
 		false, NULL, NULL
 	},
 
+	{
+		{"optimizer_enable_array_derivation", PGC_USERSET, DEVELOPER_OPTIONS,
+			gettext_noop("Allows the constraint framework to derive array constraints in the optimizer."),
+			NULL,
+			GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE
+		},
+		&optimizer_enable_array_derivation,
+		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/71caebcf/src/include/utils/guc.h
----------------------------------------------------------------------
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index 58b2b61..6cdf22d 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -441,6 +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;
 
 /**
  * Enable logging of DPE match in optimizer.