int CondorQ::fetchQueueFromDB (ClassAdList &list, char *&lastUpdate, const char *dbconn, CondorError* /*errstack*/) { #ifndef HAVE_EXT_POSTGRESQL (void) list; (void) lastUpdate; (void) dbconn; #else int result; JobQueueSnapshot *jqSnapshot; const char *constraint; ClassAd *ad; QuillErrCode rv; ExprTree *tree; jqSnapshot = new JobQueueSnapshot(dbconn); rv = jqSnapshot->startIterateAllClassAds(clusterarray, numclusters, procarray, numprocs, schedd, FALSE, scheddBirthdate, lastUpdate); if (rv == QUILL_FAILURE) { delete jqSnapshot; return Q_COMMUNICATION_ERROR; } else if (rv == JOB_QUEUE_EMPTY) { delete jqSnapshot; return Q_OK; } // make the query ad if ((result = query.makeQuery (tree)) != Q_OK) { delete jqSnapshot; return result; } constraint = ExprTreeToString(tree); delete tree; ad = getDBNextJobByConstraint(constraint, jqSnapshot); while (ad != (ClassAd *) 0) { ad->ChainCollapse(); list.Insert(ad); ad = getDBNextJobByConstraint(constraint, jqSnapshot); } delete jqSnapshot; #endif /* HAVE_EXT_POSTGRESQL */ return Q_OK; }