diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index f8d95d24f07..6a740c7a10c 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -8,8 +8,11 @@ # name: Lint Code Base on: - - workflow_dispatch - - pull_request + workflow_dispatch: + pull_request: + push: + branches: + - main jobs: lint: name: Lint Code Base diff --git a/sql/2021/css/box_sizing_border_box_selectors.sql b/sql/2021/css/box_sizing_border_box_selectors.sql index 661877b18cd..706bc479d17 100644 --- a/sql/2021/css/box_sizing_border_box_selectors.sql +++ b/sql/2021/css/box_sizing_border_box_selectors.sql @@ -1,16 +1,16 @@ #standardSQL # Top selectors used with box-sizing: border-box CREATE TEMP FUNCTION - getBorderBoxSelectors(css STRING) - RETURNS ARRAY - LANGUAGE js AS ''' +getBorderBoxSelectors(css STRING) +RETURNS ARRAY +LANGUAGE js AS ''' try { var $ = JSON.parse(css); return $.stylesheet.rules.flatMap(rule => { if (!rule.selectors) { return []; } - + const boxSizingPattern = /^(-(o|moz|webkit|ms)-)?box-sizing$/; const borderBoxPattern = /border-box/; if (!rule.declarations.find(d => { @@ -18,7 +18,7 @@ try { })) { return []; } - + return rule.selectors; }); } catch (e) { @@ -62,5 +62,4 @@ FROM ( selector) ORDER BY pct DESC -LIMIT - 1000 +LIMIT 1000 diff --git a/sql/2021/css/content_values.sql b/sql/2021/css/content_values.sql index bc80574caa7..fecae509779 100644 --- a/sql/2021/css/content_values.sql +++ b/sql/2021/css/content_values.sql @@ -26,8 +26,8 @@ FROM ( client, IF( REGEXP_CONTAINS(content, r'[\'"]\\[ef][0-9a-f]{3}[\'"]'), '"\\f000"-like', - IF( - REGEXP_CONTAINS(content, r'[\'"]\\[a-f0-9]{4}[\'"]'), '"\\hex{4}"-like', content)) AS content, + IF( + REGEXP_CONTAINS(content, r'[\'"]\\[a-f0-9]{4}[\'"]'), '"\\hex{4}"-like', content)) AS content, COUNT(DISTINCT page) AS pages, total_pages, COUNT(DISTINCT page) / total_pages AS pct_pages, @@ -59,5 +59,4 @@ WHERE pages >= 1000 ORDER BY pct_pages DESC -LIMIT - 200 +LIMIT 200 diff --git a/sql/2021/css/flexbox_grid.sql b/sql/2021/css/flexbox_grid.sql index ff46f2cdb91..a5034527d48 100644 --- a/sql/2021/css/flexbox_grid.sql +++ b/sql/2021/css/flexbox_grid.sql @@ -9,7 +9,7 @@ WITH totals AS ( `httparchive.summary_pages.2021_07_01_*` GROUP BY client -UNION ALL + UNION ALL SELECT CAST('2020-08-01' AS DATE) AS yyyymmdd, _TABLE_SUFFIX AS client, @@ -18,7 +18,7 @@ UNION ALL `httparchive.summary_pages.2020_08_01_*` GROUP BY client -UNION ALL + UNION ALL SELECT CAST('2019-07-01' AS DATE) AS yyyymmdd, _TABLE_SUFFIX AS client, diff --git a/sql/2021/structured-data/classic_microformats_types.sql b/sql/2021/structured-data/classic_microformats_types.sql index 657a1dd90e3..5506aafaa22 100644 --- a/sql/2021/structured-data/classic_microformats_types.sql +++ b/sql/2021/structured-data/classic_microformats_types.sql @@ -1,9 +1,8 @@ # standardSQL - # Count Classic Microformats types -CREATE TEMP FUNCTION - getClassicMicroformatsTypes(rendered STRING) - RETURNS ARRAY> - LANGUAGE js AS r""" +# Count Classic Microformats types +CREATE TEMP FUNCTION getClassicMicroformatsTypes(rendered STRING) +RETURNS ARRAY> +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); return rendered.microformats_classic_types.map(microformats_classic_type => ({name: microformats_classic_type.name, count: microformats_classic_type.count})); @@ -11,8 +10,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getClassicMicroformatsTypes(rendered) AS classic_microformats_types, client diff --git a/sql/2021/structured-data/dublin_core_types.sql b/sql/2021/structured-data/dublin_core_types.sql index bf548d0ec83..e2b6433c6e2 100644 --- a/sql/2021/structured-data/dublin_core_types.sql +++ b/sql/2021/structured-data/dublin_core_types.sql @@ -1,9 +1,8 @@ # standardSQL - # Count Dublin Core types -CREATE TEMP FUNCTION - getDublinCoreTypes(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count Dublin Core types +CREATE TEMP FUNCTION getDublinCoreTypes(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); return rendered.dublin_core.map(dublin_core => dublin_core.name.toLowerCase()); @@ -11,8 +10,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getDublinCoreTypes(rendered) AS dublin_core_types, client diff --git a/sql/2021/structured-data/facebook_types.sql b/sql/2021/structured-data/facebook_types.sql index 4130587d94e..e425890a69c 100644 --- a/sql/2021/structured-data/facebook_types.sql +++ b/sql/2021/structured-data/facebook_types.sql @@ -1,9 +1,8 @@ # standardSQL - # Count Facebook types -CREATE TEMP FUNCTION - getFacebookTypes(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count Facebook types +CREATE TEMP FUNCTION getFacebookTypes(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); return rendered.facebook.map(facebook => facebook.property.toLowerCase()); @@ -11,8 +10,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getFacebookTypes(rendered) AS facebook_types, client diff --git a/sql/2021/structured-data/jsonld_contexts.sql b/sql/2021/structured-data/jsonld_contexts.sql index 692c7e35630..947be5b5fa0 100644 --- a/sql/2021/structured-data/jsonld_contexts.sql +++ b/sql/2021/structured-data/jsonld_contexts.sql @@ -1,9 +1,8 @@ # standardSQL - # Count JSON-LD contexts -CREATE TEMP FUNCTION - getJSONLDContexts(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count JSON-LD contexts +CREATE TEMP FUNCTION getJSONLDContexts(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { const arrayify = (value) => Array.isArray(value) ? value : [value]; @@ -30,8 +29,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getJSONLDContexts(rendered) AS jsonld_contexts, client diff --git a/sql/2021/structured-data/jsonld_entities_relationships.sql b/sql/2021/structured-data/jsonld_entities_relationships.sql index efa6acd658b..d9109f367da 100644 --- a/sql/2021/structured-data/jsonld_entities_relationships.sql +++ b/sql/2021/structured-data/jsonld_entities_relationships.sql @@ -1,9 +1,8 @@ # standardSQL - # Count JSON-LD entities and relationships -CREATE TEMP FUNCTION - getJSONLDEntitiesRelationships(rendered STRING) - RETURNS ARRAY> - LANGUAGE js AS r""" +# Count JSON-LD entities and relationships +CREATE TEMP FUNCTION getJSONLDEntitiesRelationships(rendered STRING) +RETURNS ARRAY> +LANGUAGE js AS """ try { const types = new Map(); @@ -41,8 +40,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getJSONLDEntitiesRelationships(rendered) AS jsonld_entities_relationships, client @@ -74,5 +74,4 @@ GROUP BY client ORDER BY count DESC -LIMIT - 10000 +LIMIT 10000 diff --git a/sql/2021/structured-data/jsonld_max_depth.sql b/sql/2021/structured-data/jsonld_max_depth.sql index 7f50751fae7..2456b044d41 100644 --- a/sql/2021/structured-data/jsonld_max_depth.sql +++ b/sql/2021/structured-data/jsonld_max_depth.sql @@ -1,9 +1,8 @@ # standardSQL - # Find the most nested entity in a JSON-LD document -CREATE TEMP FUNCTION - getJSONLDEntitiesRelationships(rendered STRING) - RETURNS ARRAY> - LANGUAGE js AS r""" +# Find the most nested entity in a JSON-LD document +CREATE TEMP FUNCTION getJSONLDEntitiesRelationships(rendered STRING) +RETURNS ARRAY> +LANGUAGE js AS """ try { const types = new Map(); @@ -41,8 +40,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getJSONLDEntitiesRelationships(rendered) AS jsonld_entities_relationships, client diff --git a/sql/2021/structured-data/jsonld_relationship_values.sql b/sql/2021/structured-data/jsonld_relationship_values.sql index e3a988393d7..9cd0850ac7c 100644 --- a/sql/2021/structured-data/jsonld_relationship_values.sql +++ b/sql/2021/structured-data/jsonld_relationship_values.sql @@ -1,9 +1,8 @@ # standardSQL - # Count JSON-LD relationships with their value entity types -CREATE TEMP FUNCTION - getJSONLDEntitiesRelationships(rendered STRING) - RETURNS ARRAY> - LANGUAGE js AS r""" +# Count JSON-LD relationships with their value entity types +CREATE TEMP FUNCTION getJSONLDEntitiesRelationships(rendered STRING) +RETURNS ARRAY> +LANGUAGE js AS """ try { const types = new Map(); @@ -41,8 +40,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getJSONLDEntitiesRelationships(rendered) AS jsonld_entities_relationships, client @@ -70,5 +70,4 @@ GROUP BY client ORDER BY count DESC -LIMIT - 10000 +LIMIT 10000 diff --git a/sql/2021/structured-data/jsonld_relationships.sql b/sql/2021/structured-data/jsonld_relationships.sql index cae4f15fa0d..ce6e088feb4 100644 --- a/sql/2021/structured-data/jsonld_relationships.sql +++ b/sql/2021/structured-data/jsonld_relationships.sql @@ -1,9 +1,8 @@ # standardSQL - # Count JSON-LD relationships -CREATE TEMP FUNCTION - getJSONLDRelationships(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count JSON-LD relationships +CREATE TEMP FUNCTION getJSONLDRelationships(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { const arrayify = (value) => Array.isArray(value) ? value : [value]; @@ -30,8 +29,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getJSONLDRelationships(rendered) AS jsonld_relationships, client @@ -59,5 +59,4 @@ GROUP BY client ORDER BY count DESC -LIMIT - 10000 +LIMIT 10000 diff --git a/sql/2021/structured-data/jsonld_same_ases.sql b/sql/2021/structured-data/jsonld_same_ases.sql index 38e3777be05..155f7415745 100644 --- a/sql/2021/structured-data/jsonld_same_ases.sql +++ b/sql/2021/structured-data/jsonld_same_ases.sql @@ -1,9 +1,8 @@ # standardSQL - # Count JSON-LD sameAs values -CREATE TEMP FUNCTION - getJSONLDSameAses(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count JSON-LD sameAs values +CREATE TEMP FUNCTION getJSONLDSameAses(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { const arrayify = (value) => Array.isArray(value) ? value : [value]; @@ -30,8 +29,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getJSONLDSameAses(rendered) AS jsonld_sameases, client @@ -59,5 +59,4 @@ GROUP BY client ORDER BY count DESC -LIMIT - 10000 +LIMIT 10000 diff --git a/sql/2021/structured-data/jsonld_types.sql b/sql/2021/structured-data/jsonld_types.sql index 21fcaf2b9d3..27cf50dc9f9 100644 --- a/sql/2021/structured-data/jsonld_types.sql +++ b/sql/2021/structured-data/jsonld_types.sql @@ -1,9 +1,8 @@ # standardSQL - # Count JSON-LD types -CREATE TEMP FUNCTION - getJSONLDTypes(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count JSON-LD types +CREATE TEMP FUNCTION getJSONLDTypes(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { const arrayify = (value) => Array.isArray(value) ? value : [value]; @@ -30,8 +29,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getJSONLDTypes(rendered) AS jsonld_types, client diff --git a/sql/2021/structured-data/microdata_item_types.sql b/sql/2021/structured-data/microdata_item_types.sql index 7d73ff23f2e..61d8cb77345 100644 --- a/sql/2021/structured-data/microdata_item_types.sql +++ b/sql/2021/structured-data/microdata_item_types.sql @@ -1,9 +1,8 @@ # standardSQL - # Count Microdata item types -CREATE TEMP FUNCTION - getMicrodataItemTypes(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count Microdata item types +CREATE TEMP FUNCTION getMicrodataItemTypes(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); return rendered.microdata_itemtypes.map(itemType => itemType.toLowerCase()); @@ -11,8 +10,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getMicrodataItemTypes(rendered) AS microdata_item_types, client diff --git a/sql/2021/structured-data/microformats2_types.sql b/sql/2021/structured-data/microformats2_types.sql index c4c36bc7b4f..93a21756f70 100644 --- a/sql/2021/structured-data/microformats2_types.sql +++ b/sql/2021/structured-data/microformats2_types.sql @@ -1,9 +1,8 @@ # standardSQL - # Count microformats2 types -CREATE TEMP FUNCTION - getMicroformats2Types(rendered STRING) - RETURNS ARRAY> - LANGUAGE js AS r""" +# Count microformats2 types +CREATE TEMP FUNCTION getMicroformats2Types(rendered STRING) +RETURNS ARRAY> +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); return rendered.microformats2_types.map(microformat2_type => ({name: microformat2_type.name, count: microformat2_type.count})); @@ -11,8 +10,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getMicroformats2Types(rendered) AS microformats2_types, client diff --git a/sql/2021/structured-data/open_graph_types.sql b/sql/2021/structured-data/open_graph_types.sql index 8726a3ffe5b..5c901b559a5 100644 --- a/sql/2021/structured-data/open_graph_types.sql +++ b/sql/2021/structured-data/open_graph_types.sql @@ -1,9 +1,8 @@ # standardSQL - # Count Open Graph types -CREATE TEMP FUNCTION - getOpenGraphTypes(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count Open Graph types +CREATE TEMP FUNCTION getOpenGraphTypes(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); return rendered.opengraph.map(opengraph => opengraph.property.toLowerCase()); @@ -11,8 +10,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getOpenGraphTypes(rendered) AS open_graph_types, client diff --git a/sql/2021/structured-data/present_types.sql b/sql/2021/structured-data/present_types.sql index a076f0cb4f8..4d81abcd82f 100644 --- a/sql/2021/structured-data/present_types.sql +++ b/sql/2021/structured-data/present_types.sql @@ -3,64 +3,64 @@ SELECT SUM(CASE WHEN CAST(JSON_EXTRACT(structured_data, '$.structured_data.rendered.present.rdfa') AS BOOL) = TRUE THEN 1 - ELSE - 0 - END - ) AS rdfa, + ELSE + 0 + END + ) AS rdfa, SUM(CASE WHEN CAST(JSON_EXTRACT(structured_data, '$.structured_data.rendered.present.json_ld') AS BOOL) = TRUE THEN 1 - ELSE - 0 - END - ) AS json_ld, + ELSE + 0 + END + ) AS json_ld, SUM(CASE WHEN CAST(JSON_EXTRACT(structured_data, '$.structured_data.rendered.present.microdata') AS BOOL) = TRUE THEN 1 - ELSE - 0 - END - ) AS microdata, + ELSE + 0 + END + ) AS microdata, SUM(CASE WHEN CAST(JSON_EXTRACT(structured_data, '$.structured_data.rendered.present.microformats2') AS BOOL) = TRUE THEN 1 - ELSE - 0 - END - ) AS microformats2, + ELSE + 0 + END + ) AS microformats2, SUM(CASE WHEN CAST(JSON_EXTRACT(structured_data, '$.structured_data.rendered.present.microformats_classic') AS BOOL) = TRUE THEN 1 - ELSE - 0 - END - ) AS microformats_classic, + ELSE + 0 + END + ) AS microformats_classic, SUM(CASE WHEN CAST(JSON_EXTRACT(structured_data, '$.structured_data.rendered.present.dublin_core') AS BOOL) = TRUE THEN 1 - ELSE - 0 - END - ) AS dublin_core, + ELSE + 0 + END + ) AS dublin_core, SUM(CASE WHEN CAST(JSON_EXTRACT(structured_data, '$.structured_data.rendered.present.twitter') AS BOOL) = TRUE THEN 1 - ELSE - 0 - END - ) AS twitter, + ELSE + 0 + END + ) AS twitter, SUM(CASE WHEN CAST(JSON_EXTRACT(structured_data, '$.structured_data.rendered.present.facebook') AS BOOL) = TRUE THEN 1 - ELSE - 0 - END - ) AS facebook, + ELSE + 0 + END + ) AS facebook, SUM(CASE WHEN CAST(JSON_EXTRACT(structured_data, '$.structured_data.rendered.present.opengraph') AS BOOL) = TRUE THEN 1 - ELSE - 0 - END - ) AS opengraph, + ELSE + 0 + END + ) AS opengraph, SUM(CASE WHEN JSON_EXTRACT(structured_data, '$.structured_data') IS NOT NULL AND JSON_EXTRACT(structured_data, '$.log') IS NULL THEN 1 - ELSE - 0 - END - ) AS total, + ELSE + 0 + END + ) AS total, client FROM ( SELECT diff --git a/sql/2021/structured-data/rdfa_prefixes.sql b/sql/2021/structured-data/rdfa_prefixes.sql index bd0bb4ba7f5..cda1bd82c27 100644 --- a/sql/2021/structured-data/rdfa_prefixes.sql +++ b/sql/2021/structured-data/rdfa_prefixes.sql @@ -1,9 +1,8 @@ # standardSQL - # Count RDFa Prefixes -CREATE TEMP FUNCTION - getRDFaPrefixes(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count RDFa Prefixes +CREATE TEMP FUNCTION getRDFaPrefixes(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); const prefixRegExp = new RegExp(/(?[^:]*):\s+(?[^\s]*)\s*/gm) @@ -15,8 +14,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getRDFaPrefixes(rendered) AS rdfa_prefixes, client diff --git a/sql/2021/structured-data/rdfa_type_ofs.sql b/sql/2021/structured-data/rdfa_type_ofs.sql index e18469202d2..619d4fc7f69 100644 --- a/sql/2021/structured-data/rdfa_type_ofs.sql +++ b/sql/2021/structured-data/rdfa_type_ofs.sql @@ -1,9 +1,8 @@ # standardSQL - # Count RDFa Type Ofs -CREATE TEMP FUNCTION - getRDFaTypeOfs(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count RDFa Type Ofs +CREATE TEMP FUNCTION getRDFaTypeOfs(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); return rendered.rdfa_typeofs.map(typeOf => typeOf.toLowerCase().trim().split(/\s+/)).flat(); @@ -11,8 +10,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getRDFaTypeOfs(rendered) AS rdfa_type_ofs, client diff --git a/sql/2021/structured-data/rdfa_vocabs.sql b/sql/2021/structured-data/rdfa_vocabs.sql index a5cf0b12a35..772090e5bde 100644 --- a/sql/2021/structured-data/rdfa_vocabs.sql +++ b/sql/2021/structured-data/rdfa_vocabs.sql @@ -1,9 +1,8 @@ # standardSQL - # Count RDFa Vocabs -CREATE TEMP FUNCTION - getRDFaVocabs(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count RDFa Vocabs +CREATE TEMP FUNCTION getRDFaVocabs(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); return rendered.rdfa_vocabs.map(vocab => vocab.toLowerCase()); @@ -11,8 +10,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getRDFaVocabs(rendered) AS rdfa_vocabs, client diff --git a/sql/2021/structured-data/summary_count.sql b/sql/2021/structured-data/summary_count.sql index 1e578fe7d0f..166864c2508 100644 --- a/sql/2021/structured-data/summary_count.sql +++ b/sql/2021/structured-data/summary_count.sql @@ -1,42 +1,42 @@ #standardSQL - # A summary count of the pages run against +# A summary count of the pages run against SELECT SUM(CASE WHEN success IS NOT NULL THEN 1 - ELSE - 0 - END - ) AS success, + ELSE + 0 + END + ) AS success, SUM(CASE WHEN errors IS NOT NULL THEN 1 - ELSE - 0 - END - ) AS errors, + ELSE + 0 + END + ) AS errors, SUM(CASE WHEN success IS NOT NULL AND errors IS NULL THEN 1 - ELSE - 0 - END - ) AS success_no_errors, + ELSE + 0 + END + ) AS success_no_errors, SUM(CASE WHEN errors IS NOT NULL AND success IS NULL THEN 1 - ELSE - 0 - END - ) AS errors_no_success, + ELSE + 0 + END + ) AS errors_no_success, SUM(CASE WHEN success IS NOT NULL AND errors IS NOT NULL THEN 1 - ELSE - 0 - END - ) AS success_errors, + ELSE + 0 + END + ) AS success_errors, SUM(CASE WHEN success IS NULL AND errors IS NULL THEN 1 - ELSE - 0 - END - ) AS no_success_no_errors + ELSE + 0 + END + ) AS no_success_no_errors FROM ( SELECT JSON_EXTRACT(structured_data, diff --git a/sql/2021/structured-data/twitter_types.sql b/sql/2021/structured-data/twitter_types.sql index 7e0cb38b513..cee530c258f 100644 --- a/sql/2021/structured-data/twitter_types.sql +++ b/sql/2021/structured-data/twitter_types.sql @@ -1,9 +1,8 @@ # standardSQL - # Count Twitter types -CREATE TEMP FUNCTION - getTwitterTypes(rendered STRING) - RETURNS ARRAY - LANGUAGE js AS r""" +# Count Twitter types +CREATE TEMP FUNCTION getTwitterTypes(rendered STRING) +RETURNS ARRAY +LANGUAGE js AS """ try { rendered = JSON.parse(rendered); return rendered.twitter.map(twitter => twitter.name.toLowerCase()); @@ -11,8 +10,9 @@ CREATE TEMP FUNCTION return []; } """; + WITH - rendered_data AS ( +rendered_data AS ( SELECT getTwitterTypes(rendered) AS twitter_types, client