Repository: incubator-hawq
Updated Branches:
  refs/heads/master cec472dca -> 3d3611ef8


HAWQ-738. Do not allocate query resource twice in function call through jdbc


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

Branch: refs/heads/master
Commit: 3d3611ef80d246b446a9e403f91438395b4d856d
Parents: cec472d
Author: Ruilong Huo <[email protected]>
Authored: Tue May 17 14:52:39 2016 +0800
Committer: Ruilong Huo <[email protected]>
Committed: Tue May 17 15:12:12 2016 +0800

----------------------------------------------------------------------
 src/backend/optimizer/plan/planner.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/3d3611ef/src/backend/optimizer/plan/planner.c
----------------------------------------------------------------------
diff --git a/src/backend/optimizer/plan/planner.c 
b/src/backend/optimizer/plan/planner.c
index ebad24f..ecc4ce6 100644
--- a/src/backend/optimizer/plan/planner.c
+++ b/src/backend/optimizer/plan/planner.c
@@ -543,14 +543,16 @@ resource_negotiator(Query *parse, int cursorOptions, 
ParamListInfo boundParams,
     }else{
                find_udf(my_parse, &udf_context);
                if(udf_context.udf_exist){
-                       if ((resourceLife == QRL_ONCE) || (resourceLife == 
QRL_NONE)) {
+                       if ((resourceLife == QRL_ONCE)) {
                                int64 mincost = min_cost_for_each_query;
                                mincost <<= 20;
                                int avgSliceNum = 3;
                                (*result)->saResult.resource = 
AllocateResource(QRL_ONCE, avgSliceNum, mincost,
                                                
GetUserDefinedFunctionVsegNum(),GetUserDefinedFunctionVsegNum(),NULL, 0);
-                       }else{
+                       } else if (resourceLife == QRL_INHERIT) {
                                (*result)->saResult.resource = 
AllocateResource(resourceLife, 0, 0, 0, 0, NULL, 0);
+                       } else {
+                               /* Do not allocate resource for query with 
resourceLife = QRL_NONE */
                        }
                }
     }

Reply via email to