You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by vr...@apache.org on 2016/01/15 22:41:17 UTC
incubator-hawq git commit: Fallback to planner for command: ALTER
TABLE SET DISTRIBUTED BY
Repository: incubator-hawq
Updated Branches:
refs/heads/master ae38cfbd6 -> 90ab2d406
Fallback to planner for command: ALTER TABLE SET DISTRIBUTED BY
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/90ab2d40
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/90ab2d40
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/90ab2d40
Branch: refs/heads/master
Commit: 90ab2d40663c06cf87b40ab38c5ffb36c044fdc3
Parents: ae38cfb
Author: Venkatesh Raghavan <vr...@pivotal.io>
Authored: Fri Jan 15 12:01:46 2016 -0800
Committer: Venkatesh Raghavan <vr...@pivotal.io>
Committed: Fri Jan 15 12:01:46 2016 -0800
----------------------------------------------------------------------
src/backend/commands/tablecmds.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/90ab2d40/src/backend/commands/tablecmds.c
----------------------------------------------------------------------
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index 35230bb..6126b7e 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -13265,6 +13265,16 @@ ATExecSetDistributedBy(Relation rel, Node *node, AlterTableCmd *cmd)
if (!ldistro)
ldistro = make_dist_clause(rel);
+ /* force the use of legacy query optimizer, since PQO will not redistribute the tuples if the current and required
+ distributions are both RANDOM even when reorganize is set to "true"*/
+ bool saveOptimizerGucValue = optimizer;
+ optimizer = false;
+
+ if (saveOptimizerGucValue)
+ {
+ elog(LOG, "ALTER SET DISTRIBUTED BY: falling back to legacy query optimizer to ensure re-distribution of tuples.");
+ }
+
PG_TRY();
{
/*
@@ -13289,10 +13299,14 @@ ATExecSetDistributedBy(Relation rel, Node *node, AlterTableCmd *cmd)
/* Restore the old snapshot */
ActiveSnapshot = saveSnapshot;
+ optimizer = saveOptimizerGucValue;
+
}
PG_CATCH();
{
ActiveSnapshot = saveSnapshot;
+ optimizer = saveOptimizerGucValue;
+
PG_RE_THROW();
}
PG_END_TRY();