Repository: incubator-hawq
Updated Branches:
  refs/heads/master 83ce21489 -> 1bcd79f70


HAWQ-654. Reform function getQueueTrackByQueueName() and 
getQueueTrackByQueueOID() to facilitate test


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

Branch: refs/heads/master
Commit: 1bcd79f70b01207173b6b826baffecc69d28b1a9
Parents: 83ce214
Author: YI JIN <y...@pivotal.io>
Authored: Sun Apr 10 16:22:07 2016 +1000
Committer: YI JIN <y...@pivotal.io>
Committed: Sun Apr 10 16:22:07 2016 +1000

----------------------------------------------------------------------
 .../resourcemanager/include/resqueuemanager.h   |  5 +-
 src/backend/resourcemanager/requesthandler.c    |  5 +-
 .../resourcemanager/requesthandler_ddl.c        | 11 ++--
 src/backend/resourcemanager/resqueuemanager.c   | 56 ++++++++------------
 4 files changed, 31 insertions(+), 46 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/1bcd79f7/src/backend/resourcemanager/include/resqueuemanager.h
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/include/resqueuemanager.h 
b/src/backend/resourcemanager/include/resqueuemanager.h
index 68cd7ff..5ebf539 100644
--- a/src/backend/resourcemanager/include/resqueuemanager.h
+++ b/src/backend/resourcemanager/include/resqueuemanager.h
@@ -406,11 +406,10 @@ void 
setQueueTrackIndexedByQueueName(DynResourceQueueTrack queuetrack);
 
 void removeQueueTrackIndexedByQueueName(DynResourceQueueTrack queuetrack);
 
-DynResourceQueueTrack getQueueTrackByQueueOID (int64_t queoid, bool *exist);
+DynResourceQueueTrack getQueueTrackByQueueOID (int64_t queoid);
 
 DynResourceQueueTrack getQueueTrackByQueueName(char    *quename,
-                                                                               
           int           quenamelen,
-                                                                               
           bool         *exist);
+                                                                               
           int           quenamelen);
 
 bool hasUserAssignedToQueue(DynResourceQueue queue);
 

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/1bcd79f7/src/backend/resourcemanager/requesthandler.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/requesthandler.c 
b/src/backend/resourcemanager/requesthandler.c
index eb9fc1d..d1dcace 100644
--- a/src/backend/resourcemanager/requesthandler.c
+++ b/src/backend/resourcemanager/requesthandler.c
@@ -917,9 +917,8 @@ bool handleRMRequestAcquireResourceQuota(void **arg)
        {
                RPCResponseHeadAcquireResourceQuotaFromRMByOIDData response;
 
-               DynResourceQueueTrack queuetrack =
-                       getQueueTrackByQueueOID(reguser->QueueOID, &exist);
-               if ( exist )
+               DynResourceQueueTrack queuetrack = 
getQueueTrackByQueueOID(reguser->QueueOID);
+               if ( queuetrack != NULL )
                {
                        memcpy(response.QueueName,
                                   queuetrack->QueueInfo->Name,

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/1bcd79f7/src/backend/resourcemanager/requesthandler_ddl.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/requesthandler_ddl.c 
b/src/backend/resourcemanager/requesthandler_ddl.c
index f50d924..eb1af7d 100644
--- a/src/backend/resourcemanager/requesthandler_ddl.c
+++ b/src/backend/resourcemanager/requesthandler_ddl.c
@@ -93,7 +93,6 @@ bool handleRMDDLRequestManipulateResourceQueue(void **arg)
        DynResourceQueueTrack   newtrack                = NULL;
        DynResourceQueueTrack   todroptrack             = NULL;
        SelfMaintainBufferData  responsebuff;
-       bool                                    exist                   = false;
        List                               *fineattr            = NULL;
        List                               *rsqattr                     = NULL;
        DynResourceQueue                newqueue                = NULL;
@@ -342,9 +341,8 @@ bool handleRMDDLRequestManipulateResourceQueue(void **arg)
                        newqueue = NULL;
 
                        toaltertrack = getQueueTrackByQueueName((char 
*)(nameattr->Val.Str),
-                                                                               
                        nameattr->Val.Len,
-                                                                               
                        &exist);
-                       if (!exist || toaltertrack == NULL)
+                                                                               
                        nameattr->Val.Len);
+                       if (toaltertrack == NULL)
                        {
                                ddlres = RESQUEMGR_NO_QUENAME;
                                snprintf(errorbuf, sizeof(errorbuf), "the queue 
doesn't exist");
@@ -482,9 +480,8 @@ bool handleRMDDLRequestManipulateResourceQueue(void **arg)
                }
                case MANIPULATE_RESQUEUE_DROP:
                        todroptrack = getQueueTrackByQueueName((char 
*)(nameattr->Val.Str),
-                                                                               
                   nameattr->Val.Len,
-                                                                               
                   &exist);
-                       if (!exist || todroptrack == NULL )
+                                                                               
                   nameattr->Val.Len);
+                       if ( todroptrack == NULL )
                        {
                                ddlres = RESQUEMGR_NO_QUENAME;
                                snprintf(errorbuf, sizeof(errorbuf),

http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/1bcd79f7/src/backend/resourcemanager/resqueuemanager.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/resqueuemanager.c 
b/src/backend/resourcemanager/resqueuemanager.c
index e20ef1b..74fc5d2 100644
--- a/src/backend/resourcemanager/resqueuemanager.c
+++ b/src/backend/resourcemanager/resqueuemanager.c
@@ -305,12 +305,9 @@ int shallowparseResourceQueueWithAttributes(List   
*rawattr,
                case RSQ_DDL_ATTR_PARENT:
                {
                        /* Find oid of the parent resource queue. */
-                       bool exist = false;
                        DynResourceQueueTrack parentque =
-                               getQueueTrackByQueueName(property->Val.Str,
-                                                                               
 property->Val.Len,
-                                                                               
 &exist);
-                       if ( !exist )
+                               getQueueTrackByQueueName(property->Val.Str, 
property->Val.Len);
+                       if ( parentque == NULL )
                        {
                                snprintf(errorbuf, errorbufsize,
                                                 "cannot recognize parent 
resource queue name %s.",
@@ -1005,9 +1002,8 @@ int 
checkAndCompleteNewResourceQueueAttributes(DynResourceQueue  queue,
 
        if ( !RESQUEUE_IS_ROOT(queue) && queue->ParentOID != InvalidOid )
        {
-               bool exist = false;
-               parenttrack = getQueueTrackByQueueOID(queue->ParentOID, &exist);
-               Assert(exist && parenttrack != NULL);
+               parenttrack = getQueueTrackByQueueOID(queue->ParentOID);
+               Assert(parenttrack != NULL);
 
                /* pg_default cannot be a parent queue. */
                if ( RESQUEUE_IS_DEFAULT(parenttrack->QueueInfo) )
@@ -1087,9 +1083,8 @@ int 
checkAndCompleteNewResourceQueueAttributes(DynResourceQueue  queue,
                if (queue->ParentOID != InvalidOid)
                {
                        double current = 0.0;
-                       bool   exist   = false;
-                       parenttrack = getQueueTrackByQueueOID(queue->ParentOID, 
&exist);
-                       if (exist && parenttrack != NULL)
+                       parenttrack = getQueueTrackByQueueOID(queue->ParentOID);
+                       if (parenttrack != NULL)
                        {
                                ListCell *cell = NULL;
                                foreach(cell, parenttrack->ChildrenTracks)
@@ -1223,7 +1218,6 @@ int createQueueAndTrack( DynResourceQueue         queue,
        int                                     res                      = 
FUNC_RETURN_OK;
        DynResourceQueueTrack   parenttrack              = NULL;
     DynResourceQueueTrack      newqueuetrack    = NULL;
-    bool                                       exist                    = 
false;
     bool                                       isDefaultQueue   = false;
     bool                                       isRootQueue              = 
false;
 
@@ -1244,15 +1238,16 @@ int createQueueAndTrack( DynResourceQueue               
queue,
      */
     if ( queue->OID > InvalidOid )
     {
-               getQueueTrackByQueueOID(queue->OID, &exist);
-               Assert(!exist);
+       DynResourceQueueTrack tmpquetrack = getQueueTrackByQueueOID(queue->OID);
+               Assert(tmpquetrack == NULL);
     }
 
     /* New queue name must be set and unique. */
     Assert(queue->NameLen > 0);
 
-       getQueueTrackByQueueName((char *)(queue->Name), queue->NameLen, &exist);
-       if (exist) {
+    DynResourceQueueTrack tmpquetrack = getQueueTrackByQueueName((char 
*)(queue->Name),
+                                                                               
                                         queue->NameLen);
+       if (tmpquetrack != NULL) {
                res = RESQUEMGR_DUPLICATE_QUENAME;
                snprintf(errorbuf, errorbufsize,
                                 "duplicate queue name %s for creating resource 
queue.",
@@ -1276,8 +1271,8 @@ int createQueueAndTrack( DynResourceQueue         queue,
        if ( !isRootQueue )
        {
                /* Check if the parent queue id exists. */
-               parenttrack = getQueueTrackByQueueOID(queue->ParentOID, &exist);
-               Assert(exist);
+               parenttrack = getQueueTrackByQueueOID(queue->ParentOID);
+               Assert(parenttrack != NULL);
 
                /* The parent queue can not have connections. */
                if ( parenttrack->CurConnCounter > 0 )
@@ -1413,7 +1408,7 @@ int dropQueueAndTrack( DynResourceQueueTrack track,
 }
 
 
-DynResourceQueueTrack getQueueTrackByQueueOID (int64_t queoid, bool *exist)
+DynResourceQueueTrack getQueueTrackByQueueOID (int64_t queoid)
 {
        PAIR pair = NULL;
        SimpArray key;
@@ -1421,26 +1416,23 @@ DynResourceQueueTrack getQueueTrackByQueueOID (int64_t 
queoid, bool *exist)
        pair = getHASHTABLENode(&(PQUEMGR->QueuesIDIndex), (void *)&key);
        if ( pair == NULL )
        {
-               *exist = false;
                return NULL;
        }
-       *exist = true;
+       Assert(pair->Value != NULL);
        return (DynResourceQueueTrack)(pair->Value);
 }
 
 DynResourceQueueTrack getQueueTrackByQueueName(char    *quename,
-                                                                               
           int           quenamelen,
-                                                                               
           bool         *exist)
+                                                                               
           int           quenamelen)
 {
        SimpString quenamestr;
        setSimpleStringRef(&quenamestr, quename, quenamelen);
        PAIR pair = getHASHTABLENode(&(PQUEMGR->QueuesNameIndex),
                                                                 (void 
*)(&quenamestr));
        if ( pair == NULL ) {
-               *exist = false;
                return NULL;
        }
-       *exist = true;
+       Assert(pair->Value != NULL);
        return (DynResourceQueueTrack)(pair->Value);
 }
 
@@ -1681,10 +1673,9 @@ void removeResourceQueueRatio(DynResourceQueueTrack 
track)
 void generateQueueReport( int queid, char *buff, int buffsize )
 {
        DynResourceQueue          que           = NULL;
-       bool                              exist         = false;
-       DynResourceQueueTrack quetrack  = getQueueTrackByQueueOID(queid, 
&exist);
+       DynResourceQueueTrack quetrack  = getQueueTrackByQueueOID(queid);
 
-       Assert( exist && quetrack != NULL );
+       Assert( quetrack != NULL );
        que = quetrack->QueueInfo;
 
        if ( RESQUEUE_IS_PERCENT(que) )
@@ -1790,7 +1781,7 @@ int registerConnectionByUserID(ConnectionTrack  conntrack,
                /* Mark the user is in use in some connections.*/
                userinfo->isInUse++;
                /* Get the queue, and check if the parallel limit is achieved. 
*/
-               queuetrack = getQueueTrackByQueueOID(userinfo->QueueOID, 
&exist);
+               queuetrack = getQueueTrackByQueueOID(userinfo->QueueOID);
        }
        else
        {
@@ -1966,7 +1957,7 @@ int acquireResourceQuotaFromResQueMgr(ConnectionTrack     
conntrack,
        Assert(exist && userinfo != NULL);
 
        /* Get the queue, and check if the parallel limit is achieved. */
-       queuetrack = getQueueTrackByQueueOID(userinfo->QueueOID, &exist);
+       queuetrack = getQueueTrackByQueueOID(userinfo->QueueOID);
        Assert( queuetrack != NULL );
 
        conntrack->QueueTrack = queuetrack;
@@ -2669,8 +2660,8 @@ int parseUserAttributes( List             *attributes,
                        }
                        /* The target queue must exist. */
                        queueoid64 = queueoid;
-                       track = getQueueTrackByQueueOID(queueoid64, &exist);
-                       if ( !exist )
+                       track = getQueueTrackByQueueOID(queueoid64);
+                       if ( track == NULL )
                        {
                                res = RESQUEMGR_WRONG_TARGET_QUEUE;
                                snprintf(errorbuf, errorbufsize,
@@ -2679,7 +2670,6 @@ int parseUserAttributes( List             *attributes,
                                
ELOG_WARNING_ERRORMESSAGE_PARSEUSERATTR(errorbuf)
                                return res;
                        }
-                       Assert(exist && track != NULL);
 
                        /* Set value. */
                        user->QueueOID = track->QueueInfo->OID;

Reply via email to