diff --git a/data/common.go b/data/common.go index 7351b74..e64300c 100644 --- a/data/common.go +++ b/data/common.go @@ -226,7 +226,8 @@ func getAllFreqsGeos(r *FooRepository, seriesId int64, categoryId int64) ( []models.DataPortalFrequency, error, ) { - rows, err := r.DB.Query( + //language=MySQL + rows, err := r.RunQuery( `SELECT DISTINCT 'geo' AS gftype, geo.handle AS handle, geo.fips AS fips, @@ -236,23 +237,21 @@ func getAllFreqsGeos(r *FooRepository, seriesId int64, categoryId int64) ( MIN(pdp.date), MAX(pdp.date) FROM measurement_series LEFT JOIN measurement_series AS ms ON ms.measurement_id = measurement_series.measurement_id - LEFT JOIN series_v AS series ON series.id = ms.series_id + LEFT JOIN <%SERIES%> AS series ON series.id = ms.series_id LEFT JOIN geographies geo ON geo.id = series.geography_id - LEFT JOIN public_data_points pdp on pdp.series_id = series.id + LEFT JOIN <%DATAPOINTS%> pdp on pdp.series_id = series.id WHERE pdp.value IS NOT NULL AND measurement_series.series_id = ? - AND NOT (series.restricted OR series.quarantined) GROUP BY geo.id, geo.handle, geo.fips, geo.display_name, geo.display_name_short, geo.list_order UNION SELECT DISTINCT 'freq' AS gftype, RIGHT(series.name, 1) AS handle, null, null, null, null AS lorder, MIN(pdp.date), MAX(pdp.date) FROM measurement_series LEFT JOIN measurement_series AS ms ON ms.measurement_id = measurement_series.measurement_id - LEFT JOIN series_v AS series ON series.id = ms.series_id - LEFT JOIN public_data_points pdp on pdp.series_id = series.id + LEFT JOIN <%SERIES%> AS series ON series.id = ms.series_id + LEFT JOIN <%DATAPOINTS%> pdp on pdp.series_id = series.id WHERE pdp.value IS NOT NULL AND measurement_series.series_id = ? - AND NOT (series.restricted OR series.quarantined) GROUP BY RIGHT(series.name, 1) ORDER BY gftype, COALESCE(lorder, 999), handle`, seriesId, seriesId) if err != nil { diff --git a/views.mysql b/views.mysql index 60eb2bf..9c5fbb7 100644 --- a/views.mysql +++ b/views.mysql @@ -43,12 +43,12 @@ CREATE OR REPLACE VIEW portal_all_v AS SELECT series.restricted, CONCAT(series.name,'|',COALESCE(series.description,''),'|',COALESCE(series.dataPortalName,'')) AS series_search_text, CONCAT(series.name,'|',COALESCE(series.description,''),'|',COALESCE(series.dataPortalName,''),'|',COALESCE(categories.name,'')) AS ext_search_text, - COALESCE(units.short_label, measurement_units.short_label) AS units_short, - COALESCE(units.long_label, measurement_units.long_label) AS units_long, - COALESCE(series.dataPortalName, measurements.data_portal_name) AS data_portal_name, - COALESCE(sources.description, measurement_sources.description) AS source_description, + COALESCE(units.short_label, pseries_units.short_label) AS units_short, + COALESCE(units.long_label, pseries_units.long_label) AS units_long, + COALESCE(series.dataPortalName, series.pseries_data_portal_name) AS data_portal_name, + COALESCE(sources.description, pseries_sources.description) AS source_description, COALESCE(source_details.description, measurement_source_details.description) AS source_detail_description, - COALESCE(series.source_link, measurements.source_link, sources.link, measurement_sources.link) AS source_link + COALESCE(series.source_link, series.pseries_source_link) AS source_link FROM series_all_v AS series JOIN geographies ON geographies.id = series.geography_id JOIN measurement_series ON measurement_series.series_id = series.id @@ -57,9 +57,9 @@ CREATE OR REPLACE VIEW portal_all_v AS SELECT JOIN data_lists ON data_lists.id = data_list_measurements.data_list_id JOIN categories ON categories.data_list_id = data_lists.id LEFT JOIN units ON units.id = series.unit_id - LEFT JOIN units AS measurement_units ON measurement_units.id = measurements.unit_id + LEFT JOIN units AS pseries_units ON pseries_units.id = series.pseries_unit_id LEFT JOIN sources ON sources.id = series.source_id - LEFT JOIN sources AS measurement_sources ON measurement_sources.id = measurements.source_id + LEFT JOIN sources AS pseries_sources ON pseries_sources.id = series.pseries_source_id LEFT JOIN source_details ON source_details.id = series.source_detail_id LEFT JOIN source_details AS measurement_source_details ON measurement_source_details.id = measurements.source_detail_id ; @@ -74,7 +74,6 @@ CREATE OR REPLACE VIEW `series_all_v` AS SELECT x.frequency, x.seasonally_adjusted, x.seasonal_adjustment, - x.units, x.percent, x.`real`, x.last_demetra_datestring, @@ -89,8 +88,17 @@ CREATE OR REPLACE VIEW `series_all_v` AS SELECT x.restricted, x.quarantined, x.created_at AS xs_created_at, - x.updated_at AS xs_updated_at - FROM series JOIN xseries x ON x.id = series.xseries_id ; + x.updated_at AS xs_updated_at, + pseries.name AS pseries_name, + pseries.dataPortalName AS pseries_data_portal_name, + pseries.description AS pseries_description, + pseries.decimals AS pseries_decimals, + pseries.unit_id AS pseries_unit_id, + pseries.source_id AS pseries_source_id, + pseries.source_link AS pseries_source_link + FROM series + JOIN xseries AS x ON x.id = series.xseries_id + LEFT JOIN series AS pseries ON pseries.id = x.primary_series_id ; CREATE OR REPLACE view `series_v` AS SELECT * FROM series_all_v