You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by hu...@apache.org on 2016/01/14 10:06:39 UTC

incubator-hawq git commit: HAWQ-341. PL functions core dump due to query resource is not properly allocated for function/table function/sub-query

Repository: incubator-hawq
Updated Branches:
  refs/heads/master 6345f8de1 -> 5ce139a25


HAWQ-341. PL functions core dump due to query resource is not properly allocated for function/table function/sub-query


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

Branch: refs/heads/master
Commit: 5ce139a259a37bfce15e87d094019bf1ed6d5dd4
Parents: 6345f8d
Author: Ruilong Huo <rh...@pivotal.io>
Authored: Thu Jan 14 17:05:52 2016 +0800
Committer: Ruilong Huo <rh...@pivotal.io>
Committed: Thu Jan 14 17:05:52 2016 +0800

----------------------------------------------------------------------
 src/backend/optimizer/plan/planner.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/5ce139a2/src/backend/optimizer/plan/planner.c
----------------------------------------------------------------------
diff --git a/src/backend/optimizer/plan/planner.c b/src/backend/optimizer/plan/planner.c
index 0ec7e5b..c6b2263 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -289,7 +289,7 @@ planner(Query *parse, int cursorOptions,
   ppResult->saResult = initResult;
   ppResult->stmt =NULL;
 	static int plannerLevel = 0;
-	static bool resourceNegotiateDone = false;
+	bool resourceNegotiateDone = false;
 	QueryResource *savedQueryResource = GetActiveQueryResource();;
 	SetActiveRelType(NIL);
 
@@ -329,7 +329,7 @@ planner(Query *parse, int cursorOptions,
 	  PG_END_TRY();
 	}
 	SetActiveRelType(NIL);
-	if (plannerLevel == 1)
+	if (plannerLevel >= 1)
 	{
 	  resourceNegotiateDone = true;
 	  gp_segments_for_planner = ppResult->saResult.planner_segments;
@@ -422,7 +422,6 @@ planner(Query *parse, int cursorOptions,
 	  /*
 	   * some cleanup work here.
 	   */
-	  resourceNegotiateDone = false;
 	  plannerLevel = 0;
   	  optimizer_segments = optimizer_segments_saved_value;
 	  if (savedQueryResource)
@@ -443,9 +442,8 @@ planner(Query *parse, int cursorOptions,
 	}
 	PG_END_TRY();
 
-	if (plannerLevel == 1)
+	if (plannerLevel >= 1)
 	{
-		resourceNegotiateDone = false;
 		if (savedQueryResource)
 		{
 			gp_segments_for_planner = list_length(savedQueryResource->segments);