Skip to content
Snippets Groups Projects
Commit c7489eeb authored by Daniel Nemergut's avatar Daniel Nemergut
Browse files

Removed cal join in the first statement and moved all the logic to the second...

Removed cal join in the first statement and moved all the logic to the second query for the cal telescope
parent 52632bca
No related branches found
No related tags found
2 merge requests!1706merge 2.8.4 to main,!1666WS-2355 Calibration wrester telescope
Pipeline #15787 passed
......@@ -361,12 +361,10 @@ class WrestWorkflowMetadata:
SELECT sp.science_product_type,
COALESCE(eb.telescope,im.telescope) as telescope,
spp.project_code,
c.execution_block_id
FROM science_products sp
JOIN science_products_projects spp ON sp.science_product_locator = spp.science_product_locator
LEFT JOIN execution_blocks eb ON sp.science_product_locator = eb.science_product_locator
LEFT JOIN images im ON sp.science_product_locator = im.science_product_locator
LEFT JOIN calibrations c ON sp.science_product_locator = c.science_product_locator
WHERE sp.science_product_locator = %(spl)s;
"""
make_json = {}
......@@ -392,27 +390,28 @@ class WrestWorkflowMetadata:
if data:
product_type = str(data[0][0]).lower().replace(" ", "_")
# Get the telescope from a calibration's exec block (if applicable)
if product_type != 'calibration':
telescope = data[0][1]
else:
if not data[0][3]:
# ALMA doesn't have a calibrations.execution_block_id, could query with the alm_ous_id, but meh
telescope = 'ALMA'
# Need to query on the eb / alma_ous_id to get a telescope for calibrations
scope_query = """
SELECT telescope
FROM execution_blocks
JOIN calibrations c_eb ON execution_blocks.execution_block_id = c_eb.execution_block_id
WHERE c_eb.science_product_locator = %(spl)s
UNION
SELECT telescope
FROM execution_blocks
JOIN calibrations c_ous ON execution_blocks.alma_ous_id = c_ous.alma_ous_id
WHERE c_ous.science_product_locator = %(spl)s
"""
cursor.execute(scope_query, {"spl": spl})
scope_data = cursor.fetchall()
if scope_data:
telescope = data[0][0]
else:
# Can get it from the EB
scope_query = """
SELECT telescope
FROM execution_blocks
WHERE execution_block_id = %(eb_id)s;
"""
cursor.execute(scope_query, {"pg_id": data[0][3]})
scope_data = cursor.fetchall()
if scope_data:
telescope = data[0][0]
else:
self.logger.error(f"ERROR: Failed to determine telescope from calibration's EB, got {data}")
return make_json
self.logger.error(f"ERROR: Failed to determine telescope from calibration's EB, got {data}")
return make_json
make_json = {
"product_type": product_type,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment