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();