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:05 UTC
[02/17] incubator-hawq git commit: HAWQ-1122. Hint to disable
NAryJoinDP when join has large number of children [#121181555]
HAWQ-1122. Hint to disable NAryJoinDP when join has large number of children [#121181555]
This is cherry-picked from greenplum-db/gpdb@30a9ed3f8758a8ef192fc66c285a4e2b61228bbb
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/9bdad630
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/9bdad630
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/9bdad630
Branch: refs/heads/master
Commit: 9bdad630744b15d2c06d3c306cf02de4a7d4998f
Parents: 95e3fe8
Author: Venkatesh (Venky) Raghavan <vr...@pivotal.io>
Authored: Thu Sep 29 15:41:08 2016 -0700
Committer: rlei <rl...@pivotal.io>
Committed: Fri Oct 28 11:52:20 2016 +0800
----------------------------------------------------------------------
src/backend/gpopt/utils/COptTasks.cpp | 11 ++++++++---
src/backend/utils/misc/guc.c | 12 ++++++++++++
src/include/utils/guc.h | 1 +
3 files changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9bdad630/src/backend/gpopt/utils/COptTasks.cpp
----------------------------------------------------------------------
diff --git a/src/backend/gpopt/utils/COptTasks.cpp b/src/backend/gpopt/utils/COptTasks.cpp
index ec6c444..dcccfec 100644
--- a/src/backend/gpopt/utils/COptTasks.cpp
+++ b/src/backend/gpopt/utils/COptTasks.cpp
@@ -814,6 +814,7 @@ COptTasks::PoconfCreate
ULONG ulPartsToForceSortOnInsert = (ULONG) optimizer_parts_to_force_sort_on_insert;
ULONG ulJoinArityForAssociativityCommutativity = (ULONG) optimizer_join_arity_for_associativity_commutativity;
ULONG ulArrayExpansionThreshold = (ULONG) optimizer_array_expansion_threshold;
+ ULONG ulJoinOrderThreshold = (ULONG) optimizer_join_order_threshold;
return GPOS_NEW(pmp) COptimizerConfig
(
@@ -821,9 +822,13 @@ COptTasks::PoconfCreate
GPOS_NEW(pmp) CStatisticsConfig(pmp, dDampingFactorFilter, dDampingFactorJoin, dDampingFactorGroupBy),
GPOS_NEW(pmp) CCTEConfig(ulCTEInliningCutoff),
pcm,
- GPOS_NEW(pmp) CHint(ulPartsToForceSortOnInsert /* optimizer_parts_to_force_sort_on_insert */,
- ulJoinArityForAssociativityCommutativity,
- ulArrayExpansionThreshold)
+ GPOS_NEW(pmp) CHint
+ (
+ ulPartsToForceSortOnInsert /* optimizer_parts_to_force_sort_on_insert */,
+ ulJoinArityForAssociativityCommutativity,
+ ulArrayExpansionThreshold,
+ ulJoinOrderThreshold
+ )
);
}
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9bdad630/src/backend/utils/misc/guc.c
----------------------------------------------------------------------
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index ee33862..03b6d88 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -745,6 +745,7 @@ int optimizer_segments;
int optimizer_parts_to_force_sort_on_insert;
int optimizer_join_arity_for_associativity_commutativity;
int optimizer_array_expansion_threshold;
+int optimizer_join_order_threshold;
bool optimizer_analyze_root_partition;
bool optimizer_analyze_midlevel_partition;
bool optimizer_enable_constant_expression_evaluation;
@@ -6159,6 +6160,7 @@ static struct config_int ConfigureNamesInt[] =
&server_ticket_renew_interval,
43200000, 0, INT_MAX, NULL, NULL
},
+
{
{"optimizer_array_expansion_threshold", PGC_USERSET, QUERY_TUNING_METHOD,
gettext_noop("Item limit for expansion of arrays in WHERE clause to disjunctive form."),
@@ -6168,6 +6170,16 @@ static struct config_int ConfigureNamesInt[] =
&optimizer_array_expansion_threshold,
25, 0, INT_MAX, NULL, NULL
},
+
+ {
+ {"optimizer_join_order_threshold", PGC_USERSET, QUERY_TUNING_METHOD,
+ gettext_noop("Maximum number of join children to use dynamic programming based join ordering algorithm."),
+ NULL
+ },
+ &optimizer_join_order_threshold,
+ 10, 0, INT_MAX, NULL, NULL
+ },
+
{
{"memory_profiler_dataset_size", PGC_USERSET, DEVELOPER_OPTIONS,
gettext_noop("Set the size in GB"),
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/9bdad630/src/include/utils/guc.h
----------------------------------------------------------------------
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index e0cfc33..8fdab3c 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -420,6 +420,7 @@ extern int optimizer_segments;
extern int optimizer_parts_to_force_sort_on_insert;
extern int optimizer_join_arity_for_associativity_commutativity;
extern int optimizer_array_expansion_threshold;
+extern int optimizer_join_order_threshold;
extern bool optimizer_analyze_root_partition;
extern bool optimizer_analyze_midlevel_partition;
extern bool optimizer_enable_constant_expression_evaluation;