Skip to content

Commit

Permalink
Message cleanup.
Browse files Browse the repository at this point in the history
  • Loading branch information
jgates108 committed Feb 11, 2025
1 parent 9d98cfb commit 68418b5
Show file tree
Hide file tree
Showing 12 changed files with 96 additions and 83 deletions.
23 changes: 9 additions & 14 deletions src/protojson/UberJobMsg.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ namespace lsst::qserv::protojson {
UberJobMsg::UberJobMsg(unsigned int metaVersion, std::string const& replicationInstanceId,
std::string const& replicationAuthKey, CzarContactInfo::Ptr const& czInfo,
string const& workerId, QueryId qId, UberJobId ujId, int rowLimit, int maxTableSizeMB,
ScanInfo::Ptr const& scanInfo_,
ScanInfo::Ptr const& scanInfo_, bool scanInteractive_,
std::vector<std::shared_ptr<qdisp::JobQuery>> const& jobs)
: _metaVersion(metaVersion),
_replicationInstanceId(replicationInstanceId),
Expand All @@ -61,6 +61,7 @@ UberJobMsg::UberJobMsg(unsigned int metaVersion, std::string const& replicationI
_rowLimit(rowLimit),
_maxTableSizeMB(maxTableSizeMB),
_scanInfo(scanInfo_),
_scanInteractive(scanInteractive_),
_idStr("QID=" + to_string(_qId) + "_ujId=" + to_string(_ujId)) {
for (auto& jobPtr : jobs) {
// This creates the JobMsg objects for all relates jobs and their fragments.
Expand All @@ -82,6 +83,7 @@ json UberJobMsg::serializeJson() const {
{"dbtables_map", _jobDbTablesMap->serializeJson()},
{"maxtablesizemb", _maxTableSizeMB},
{"scaninfo", _scanInfo->serializeJson()},
{"scaninteractive", _scanInteractive},
{"jobs", json::array()}};

auto& jsJobs = ujmJson["jobs"];
Expand Down Expand Up @@ -123,12 +125,14 @@ UberJobMsg::Ptr UberJobMsg::createFromJson(nlohmann::json const& ujmJson) {
auto rowLimit = http::RequestBodyJSON::required<int>(ujmJson, "rowlimit");
auto maxTableSizeMB = http::RequestBodyJSON::required<int>(ujmJson, "maxtablesizemb");
auto czInfo = CzarContactInfo::createFromJson(ujmJson["czarinfo"]);
auto scanInteractive_ = http::RequestBodyJSON::required<bool>(ujmJson, "scaninteractive");
auto jsUjJobs = http::RequestBodyJSON::required<json>(ujmJson, "jobs");

std::vector<std::shared_ptr<qdisp::JobQuery>> emptyJobs;

Ptr ujmPtr = Ptr(new UberJobMsg(metaVersion, replicationInstanceId, replicationAuthKey, czInfo,
workerId, qId, ujId, rowLimit, maxTableSizeMB, scanInfo_, emptyJobs));
workerId, qId, ujId, rowLimit, maxTableSizeMB, scanInfo_,
scanInteractive_, emptyJobs));

auto const& jsSubQueriesMap = http::RequestBodyJSON::required<json>(ujmJson, "subqueries_map");
ujmPtr->_jobSubQueryTempMap = JobSubQueryTempMap::createFromJson(jsSubQueriesMap);
Expand Down Expand Up @@ -166,8 +170,6 @@ JobMsg::JobMsg(std::shared_ptr<qdisp::JobQuery> const& jobPtr,
_jobId = descr->id();
_attemptCount = descr->getAttemptCount();
_chunkQuerySpecDb = chunkQuerySpec->db;
_scanRating = chunkQuerySpec->scanInfo->scanRating;
_scanInteractive = chunkQuerySpec->scanInteractive;
_chunkId = chunkQuerySpec->chunkId;

// Add scan tables (TODO:UJ Verify this is the same for all jobs.)
Expand All @@ -185,8 +187,6 @@ nlohmann::json JobMsg::serializeJson() const {
auto jsJobMsg = nlohmann::json({{"jobId", _jobId},
{"attemptCount", _attemptCount},
{"querySpecDb", _chunkQuerySpecDb},
{"scanPriority", _scanRating},
{"scanInteractive", _scanInteractive},
{"chunkId", _chunkId},
{"chunkscantables_indexes", nlohmann::json::array()},
{"queryFragments", json::array()}});
Expand All @@ -207,13 +207,10 @@ nlohmann::json JobMsg::serializeJson() const {
}

JobMsg::JobMsg(JobSubQueryTempMap::Ptr const& jobSubQueryTempMap, JobDbTablesMap::Ptr const& jobDbTablesMap,
JobId jobId, int attemptCount, std::string const& chunkQuerySpecDb, int scanRating,
bool scanInteractive, int chunkId)
JobId jobId, int attemptCount, std::string const& chunkQuerySpecDb, int chunkId)
: _jobId(jobId),
_attemptCount(attemptCount),
_chunkQuerySpecDb(chunkQuerySpecDb),
_scanRating(scanRating),
_scanInteractive(scanInteractive),
_chunkId(chunkId),
_jobSubQueryTempMap(jobSubQueryTempMap),
_jobDbTablesMap(jobDbTablesMap) {}
Expand All @@ -224,14 +221,12 @@ JobMsg::Ptr JobMsg::createFromJson(nlohmann::json const& ujJson,
JobId jobId = http::RequestBodyJSON::required<JobId>(ujJson, "jobId");
int attemptCount = http::RequestBodyJSON::required<int>(ujJson, "attemptCount");
string chunkQuerySpecDb = http::RequestBodyJSON::required<string>(ujJson, "querySpecDb");
int scanRating = http::RequestBodyJSON::required<int>(ujJson, "scanPriority");
bool scanInteractive = http::RequestBodyJSON::required<bool>(ujJson, "scanInteractive");
int chunkId = http::RequestBodyJSON::required<int>(ujJson, "chunkId");

json jsQFrags = http::RequestBodyJSON::required<json>(ujJson, "queryFragments");

Ptr jMsgPtr = Ptr(new JobMsg(jobSubQueryTempMap, jobDbTablesMap, jobId, attemptCount, chunkQuerySpecDb,
scanRating, scanInteractive, chunkId));
Ptr jMsgPtr = Ptr(
new JobMsg(jobSubQueryTempMap, jobDbTablesMap, jobId, attemptCount, chunkQuerySpecDb, chunkId));
json jsChunkTblIndexes = http::RequestBodyJSON::required<json>(ujJson, "chunkscantables_indexes");
jMsgPtr->_chunkScanTableIndexes = jsChunkTblIndexes.get<std::vector<int>>();
jMsgPtr->_jobFragments =
Expand Down
19 changes: 10 additions & 9 deletions src/protojson/UberJobMsg.h
Original file line number Diff line number Diff line change
Expand Up @@ -204,8 +204,6 @@ class JobMsg {
JobId getJobId() const { return _jobId; }
int getAttemptCount() const { return _attemptCount; }
std::string getChunkQuerySpecDb() const { return _chunkQuerySpecDb; }
int getScanRating() const { return _scanRating; }
bool getScanInteractive() const { return _scanInteractive; }
int getChunkId() const { return _chunkId; }

std::vector<int> const& getChunkScanTableIndexes() const { return _chunkScanTableIndexes; }
Expand All @@ -217,14 +215,11 @@ class JobMsg {
JobDbTablesMap::Ptr const& jobDbTablesMap);

JobMsg(JobSubQueryTempMap::Ptr const& jobSubQueryTempMap, JobDbTablesMap::Ptr const& jobDbTablesMap,
JobId jobId, int attemptCount, std::string const& chunkQuerySpecDb, int scanRating,
bool scanInteractive, int chunkId);
JobId jobId, int attemptCount, std::string const& chunkQuerySpecDb, int chunkId);

JobId _jobId;
int _attemptCount;
std::string _chunkQuerySpecDb; // &&& remove, use value for UJ
int _scanRating; // &&& remove, use value for UJ
bool _scanInteractive; // &&& remove, use value for UJ
int _chunkId;
JobFragment::VectPtr _jobFragments{new JobFragment::Vect()};

Expand Down Expand Up @@ -253,10 +248,10 @@ class UberJobMsg : public std::enable_shared_from_this<UberJobMsg> {
static Ptr create(unsigned int metaVersion, std::string const& replicationInstanceId,
std::string const& replicationAuthKey, CzarContactInfo::Ptr const& czInfo,
WorkerContactInfo::Ptr const& wInfo, QueryId qId, UberJobId ujId, int rowLimit,
int maxTableSizeMB, ScanInfo::Ptr const& scanInfo_,
int maxTableSizeMB, ScanInfo::Ptr const& scanInfo_, bool scanInteractive_,
std::vector<std::shared_ptr<qdisp::JobQuery>> const& jobs) {
return Ptr(new UberJobMsg(metaVersion, replicationInstanceId, replicationAuthKey, czInfo, wInfo->wId,
qId, ujId, rowLimit, maxTableSizeMB, scanInfo_, jobs));
qId, ujId, rowLimit, maxTableSizeMB, scanInfo_, scanInteractive_, jobs));
}

static Ptr createFromJson(nlohmann::json const& ujJson);
Expand All @@ -278,13 +273,16 @@ class UberJobMsg : public std::enable_shared_from_this<UberJobMsg> {

ScanInfo::Ptr getScanInfo() const { return _scanInfo; }

bool getScanInteractive() const { return _scanInteractive; }

std::string const& getIdStr() const { return _idStr; }

private:
UberJobMsg(unsigned int metaVersion, std::string const& replicationInstanceId,
std::string const& replicationAuthKey, CzarContactInfo::Ptr const& czInfo,
std::string const& workerId, QueryId qId, UberJobId ujId, int rowLimit, int maxTableSizeMB,
ScanInfo::Ptr const& scanInfo_, std::vector<std::shared_ptr<qdisp::JobQuery>> const& jobs);
ScanInfo::Ptr const& scanInfo_, bool scanInteractive,
std::vector<std::shared_ptr<qdisp::JobQuery>> const& jobs);

unsigned int _metaVersion; // "version", http::MetaModule::version
// czar
Expand All @@ -308,6 +306,9 @@ class UberJobMsg : public std::enable_shared_from_this<UberJobMsg> {

ScanInfo::Ptr _scanInfo{ScanInfo::create()}; ///< Information for shared scan rating.

/// True if the user query has been designated interactive (quick + high priority)
bool _scanInteractive;

std::string const _idStr;
};

Expand Down
4 changes: 2 additions & 2 deletions src/protojson/testUberJobMsg.cc
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,13 @@ BOOST_AUTO_TEST_SUITE(Suite)

string testA() {
string ta =
R"({"maxtablesizemb":5432,"auth_key":"replauthkey","czarinfo":{"czar-startup-time":1732658208085,"id":1,"management-host-name":"3a8b68cf9b67","management-port":40865,"name":"proxy"},"dbtables_map":{"dbtable_map":[],"scanrating_map":[]},"scaninfo":{"infoscanrating":0,"infotables":[]},"instance_id":"qserv_proj","jobs":[{"attemptCount":0,"chunkId":1234567890,"chunkresultname":"r_1_a0d45001254932466b784acf90323565_1234567890_0","chunkscantables_indexes":[],"jobId":0,"queryFragments":[{"dbtables_indexes":[],"resulttblname":"r_1_a0d45001254932466b784acf90323565_1234567890_0","subchunkids":[],"subquerytemplate_indexes":[0]}],"querySpecDb":"qcase01","scanInteractive":true,"scanPriority":0}],"queryid":1,"rowlimit":0,"subqueries_map":{"subquerytemplate_map":[{"index":0,"template":"SELECT `qcase01.Filter`.`filterId` AS `filterId`,`qcase01.Filter`.`filterName` AS `filterName`,`qcase01.Filter`.`photClam` AS `photClam`,`qcase01.Filter`.`photBW` AS `photBW` FROM `qcase01`.`Filter`AS`qcase01.Filter` WHERE (`qcase01.Filter`.`filterId`<<1)=2"}]},"uberjobid":2,"version":39,"worker":"6c56ba9b-ac40-11ef-acb7-0242c0a8030a"})";
R"({"maxtablesizemb":5432,"scaninteractive":true,"auth_key":"replauthkey","czarinfo":{"czar-startup-time":1732658208085,"id":1,"management-host-name":"3a8b68cf9b67","management-port":40865,"name":"proxy"},"dbtables_map":{"dbtable_map":[],"scanrating_map":[]},"scaninfo":{"infoscanrating":0,"infotables":[]},"instance_id":"qserv_proj","jobs":[{"attemptCount":0,"chunkId":1234567890,"chunkresultname":"r_1_a0d45001254932466b784acf90323565_1234567890_0","chunkscantables_indexes":[],"jobId":0,"queryFragments":[{"dbtables_indexes":[],"resulttblname":"r_1_a0d45001254932466b784acf90323565_1234567890_0","subchunkids":[],"subquerytemplate_indexes":[0]}],"querySpecDb":"qcase01","scanInteractive":true,"scanPriority":0}],"queryid":1,"rowlimit":0,"subqueries_map":{"subquerytemplate_map":[{"index":0,"template":"SELECT `qcase01.Filter`.`filterId` AS `filterId`,`qcase01.Filter`.`filterName` AS `filterName`,`qcase01.Filter`.`photClam` AS `photClam`,`qcase01.Filter`.`photBW` AS `photBW` FROM `qcase01`.`Filter`AS`qcase01.Filter` WHERE (`qcase01.Filter`.`filterId`<<1)=2"}]},"uberjobid":2,"version":39,"worker":"6c56ba9b-ac40-11ef-acb7-0242c0a8030a"})";
return ta;
}

string testB() {
string tb =
R"({"auth_key":"slac6dev:kukara4a","czarinfo":{"czar-startup-time":1733499789161,"id":7,"management-host-name":"sdfqserv001.sdf.slac.stanford.edu","management-port":41923,"name":"proxy"},"dbtables_map":{"dbtable_map":[{"db":"dp02_dc2_catalogs","index":0,"table":"Object"}],"scanrating_map":[{"index":0,"lockinmem":true,"scanrating":1}]},"instance_id":"slac6dev","jobs":[{"attemptCount":0,"chunkId":79680,"chunkresultname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_79680_0","chunkscantables_indexes":[0],"jobId":1398,"queryFragments":[{"dbtables_indexes":[],"resulttblname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_79680_0","subchunkids":[],"subquerytemplate_indexes":[0]}],"querySpecDb":"dp02_dc2_catalogs","scanInteractive":false,"scanPriority":1},{"attemptCount":0,"chunkId":80358,"chunkresultname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_80358_0","chunkscantables_indexes":[0],"jobId":1435,"queryFragments":[{"dbtables_indexes":[],"resulttblname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_80358_0","subchunkids":[],"subquerytemplate_indexes":[1]}],"querySpecDb":"dp02_dc2_catalogs","scanInteractive":false,"scanPriority":1},{"attemptCount":0,"chunkId":81017,"chunkresultname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_81017_0","chunkscantables_indexes":[0],"jobId":1452,"queryFragments":[{"dbtables_indexes":[],"resulttblname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_81017_0","subchunkids":[],"subquerytemplate_indexes":[2]}],"querySpecDb":"dp02_dc2_catalogs","scanInteractive":false,"scanPriority":1}],"maxtablesizemb":5100,"queryid":280607,"rowlimit":0,"scaninfo":{"infoscanrating":1,"infotables":[{"sidb":"dp02_dc2_catalogs","silockinmem":true,"sirating":1,"sitable":"Object"}]},"subqueries_map":{"subquerytemplate_map":[{"index":0,"template":"SELECT COUNT(`obj`.`g_ap12Flux`) AS `QS1_COUNT`,SUM(`obj`.`g_ap12Flux`) AS `QS2_SUM`,MIN(`obj`.`g_ap12Flux`) AS `QS3_MIN`,MAX(`obj`.`g_ap12Flux`) AS `QS4_MAX`,COUNT(`obj`.`g_ap12FluxErr`) AS `QS5_COUNT`,SUM(`obj`.`g_ap12FluxErr`) AS `QS6_SUM`,MIN(`obj`.`g_ap12FluxErr`) AS `QS7_MIN`,MAX(`obj`.`g_ap12FluxErr`) AS `QS8_MAX`,COUNT(`obj`.`g_ap25Flux`) AS `QS9_COUNT`,SUM(`obj`.`g_ap25Flux`) AS `QS10_SUM`,MIN(`obj`.`g_ap25Flux`) AS `QS11_MIN`,MAX(`obj`.`g_ap25Flux`) AS `QS12_MAX`,COUNT(`obj`.`g_ap25FluxErr`) AS `QS13_COUNT`,SUM(`obj`.`g_ap25FluxErr`) AS `QS14_SUM`,MIN(`obj`.`g_ap25FluxErr`) AS `QS15_MIN`,MAX(`obj`.`g_ap25FluxErr`) AS `QS16_MAX` FROM `dp02_dc2_catalogs`.`Object_79680` AS `obj`"},{"index":1,"template":"SELECT COUNT(`obj`.`g_ap12Flux`) AS `QS1_COUNT`,SUM(`obj`.`g_ap12Flux`) AS `QS2_SUM`,MIN(`obj`.`g_ap12Flux`) AS `QS3_MIN`,MAX(`obj`.`g_ap12Flux`) AS `QS4_MAX`,COUNT(`obj`.`g_ap12FluxErr`) AS `QS5_COUNT`,SUM(`obj`.`g_ap12FluxErr`) AS `QS6_SUM`,MIN(`obj`.`g_ap12FluxErr`) AS `QS7_MIN`,MAX(`obj`.`g_ap12FluxErr`) AS `QS8_MAX`,COUNT(`obj`.`g_ap25Flux`) AS `QS9_COUNT`,SUM(`obj`.`g_ap25Flux`) AS `QS10_SUM`,MIN(`obj`.`g_ap25Flux`) AS `QS11_MIN`,MAX(`obj`.`g_ap25Flux`) AS `QS12_MAX`,COUNT(`obj`.`g_ap25FluxErr`) AS `QS13_COUNT`,SUM(`obj`.`g_ap25FluxErr`) AS `QS14_SUM`,MIN(`obj`.`g_ap25FluxErr`) AS `QS15_MIN`,MAX(`obj`.`g_ap25FluxErr`) AS `QS16_MAX` FROM `dp02_dc2_catalogs`.`Object_80358` AS `obj`"},{"index":2,"template":"SELECT COUNT(`obj`.`g_ap12Flux`) AS `QS1_COUNT`,SUM(`obj`.`g_ap12Flux`) AS `QS2_SUM`,MIN(`obj`.`g_ap12Flux`) AS `QS3_MIN`,MAX(`obj`.`g_ap12Flux`) AS `QS4_MAX`,COUNT(`obj`.`g_ap12FluxErr`) AS `QS5_COUNT`,SUM(`obj`.`g_ap12FluxErr`) AS `QS6_SUM`,MIN(`obj`.`g_ap12FluxErr`) AS `QS7_MIN`,MAX(`obj`.`g_ap12FluxErr`) AS `QS8_MAX`,COUNT(`obj`.`g_ap25Flux`) AS `QS9_COUNT`,SUM(`obj`.`g_ap25Flux`) AS `QS10_SUM`,MIN(`obj`.`g_ap25Flux`) AS `QS11_MIN`,MAX(`obj`.`g_ap25Flux`) AS `QS12_MAX`,COUNT(`obj`.`g_ap25FluxErr`) AS `QS13_COUNT`,SUM(`obj`.`g_ap25FluxErr`) AS `QS14_SUM`,MIN(`obj`.`g_ap25FluxErr`) AS `QS15_MIN`,MAX(`obj`.`g_ap25FluxErr`) AS `QS16_MAX` FROM `dp02_dc2_catalogs`.`Object_81017` AS `obj`"}]},"uberjobid":147,"version":39,"worker":"db04"})";
R"({"auth_key":"slac6dev:kukara4a","czarinfo":{"czar-startup-time":1733499789161,"id":7,"management-host-name":"sdfqserv001.sdf.slac.stanford.edu","management-port":41923,"name":"proxy"},"dbtables_map":{"dbtable_map":[{"db":"dp02_dc2_catalogs","index":0,"table":"Object"}],"scanrating_map":[{"index":0,"lockinmem":true,"scanrating":1}]},"instance_id":"slac6dev","jobs":[{"attemptCount":0,"chunkId":79680,"chunkresultname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_79680_0","chunkscantables_indexes":[0],"jobId":1398,"queryFragments":[{"dbtables_indexes":[],"resulttblname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_79680_0","subchunkids":[],"subquerytemplate_indexes":[0]}],"querySpecDb":"dp02_dc2_catalogs","scanInteractive":false,"scanPriority":1},{"attemptCount":0,"chunkId":80358,"chunkresultname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_80358_0","chunkscantables_indexes":[0],"jobId":1435,"queryFragments":[{"dbtables_indexes":[],"resulttblname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_80358_0","subchunkids":[],"subquerytemplate_indexes":[1]}],"querySpecDb":"dp02_dc2_catalogs","scanInteractive":false,"scanPriority":1},{"attemptCount":0,"chunkId":81017,"chunkresultname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_81017_0","chunkscantables_indexes":[0],"jobId":1452,"queryFragments":[{"dbtables_indexes":[],"resulttblname":"r_280607_e6eac6bb53b0f8505ed36bf82a4d93f1_81017_0","subchunkids":[],"subquerytemplate_indexes":[2]}],"querySpecDb":"dp02_dc2_catalogs","scanInteractive":false,"scanPriority":1}],"maxtablesizemb":5100,"scaninteractive":false,"queryid":280607,"rowlimit":0,"scaninfo":{"infoscanrating":1,"infotables":[{"sidb":"dp02_dc2_catalogs","silockinmem":true,"sirating":1,"sitable":"Object"}]},"subqueries_map":{"subquerytemplate_map":[{"index":0,"template":"SELECT COUNT(`obj`.`g_ap12Flux`) AS `QS1_COUNT`,SUM(`obj`.`g_ap12Flux`) AS `QS2_SUM`,MIN(`obj`.`g_ap12Flux`) AS `QS3_MIN`,MAX(`obj`.`g_ap12Flux`) AS `QS4_MAX`,COUNT(`obj`.`g_ap12FluxErr`) AS `QS5_COUNT`,SUM(`obj`.`g_ap12FluxErr`) AS `QS6_SUM`,MIN(`obj`.`g_ap12FluxErr`) AS `QS7_MIN`,MAX(`obj`.`g_ap12FluxErr`) AS `QS8_MAX`,COUNT(`obj`.`g_ap25Flux`) AS `QS9_COUNT`,SUM(`obj`.`g_ap25Flux`) AS `QS10_SUM`,MIN(`obj`.`g_ap25Flux`) AS `QS11_MIN`,MAX(`obj`.`g_ap25Flux`) AS `QS12_MAX`,COUNT(`obj`.`g_ap25FluxErr`) AS `QS13_COUNT`,SUM(`obj`.`g_ap25FluxErr`) AS `QS14_SUM`,MIN(`obj`.`g_ap25FluxErr`) AS `QS15_MIN`,MAX(`obj`.`g_ap25FluxErr`) AS `QS16_MAX` FROM `dp02_dc2_catalogs`.`Object_79680` AS `obj`"},{"index":1,"template":"SELECT COUNT(`obj`.`g_ap12Flux`) AS `QS1_COUNT`,SUM(`obj`.`g_ap12Flux`) AS `QS2_SUM`,MIN(`obj`.`g_ap12Flux`) AS `QS3_MIN`,MAX(`obj`.`g_ap12Flux`) AS `QS4_MAX`,COUNT(`obj`.`g_ap12FluxErr`) AS `QS5_COUNT`,SUM(`obj`.`g_ap12FluxErr`) AS `QS6_SUM`,MIN(`obj`.`g_ap12FluxErr`) AS `QS7_MIN`,MAX(`obj`.`g_ap12FluxErr`) AS `QS8_MAX`,COUNT(`obj`.`g_ap25Flux`) AS `QS9_COUNT`,SUM(`obj`.`g_ap25Flux`) AS `QS10_SUM`,MIN(`obj`.`g_ap25Flux`) AS `QS11_MIN`,MAX(`obj`.`g_ap25Flux`) AS `QS12_MAX`,COUNT(`obj`.`g_ap25FluxErr`) AS `QS13_COUNT`,SUM(`obj`.`g_ap25FluxErr`) AS `QS14_SUM`,MIN(`obj`.`g_ap25FluxErr`) AS `QS15_MIN`,MAX(`obj`.`g_ap25FluxErr`) AS `QS16_MAX` FROM `dp02_dc2_catalogs`.`Object_80358` AS `obj`"},{"index":2,"template":"SELECT COUNT(`obj`.`g_ap12Flux`) AS `QS1_COUNT`,SUM(`obj`.`g_ap12Flux`) AS `QS2_SUM`,MIN(`obj`.`g_ap12Flux`) AS `QS3_MIN`,MAX(`obj`.`g_ap12Flux`) AS `QS4_MAX`,COUNT(`obj`.`g_ap12FluxErr`) AS `QS5_COUNT`,SUM(`obj`.`g_ap12FluxErr`) AS `QS6_SUM`,MIN(`obj`.`g_ap12FluxErr`) AS `QS7_MIN`,MAX(`obj`.`g_ap12FluxErr`) AS `QS8_MAX`,COUNT(`obj`.`g_ap25Flux`) AS `QS9_COUNT`,SUM(`obj`.`g_ap25Flux`) AS `QS10_SUM`,MIN(`obj`.`g_ap25Flux`) AS `QS11_MIN`,MAX(`obj`.`g_ap25Flux`) AS `QS12_MAX`,COUNT(`obj`.`g_ap25FluxErr`) AS `QS13_COUNT`,SUM(`obj`.`g_ap25FluxErr`) AS `QS14_SUM`,MIN(`obj`.`g_ap25FluxErr`) AS `QS15_MIN`,MAX(`obj`.`g_ap25FluxErr`) AS `QS16_MAX` FROM `dp02_dc2_catalogs`.`Object_81017` AS `obj`"}]},"uberjobid":147,"version":39,"worker":"db04"})";
return tb;
}

Expand Down
Loading

0 comments on commit 68418b5

Please sign in to comment.