Support date histograms using timestamp with and without timezones

This commit is contained in:
Daniel García Aubert
2017-06-22 18:04:23 +02:00
parent 6f7cb75256
commit a6daca9628
2 changed files with 210 additions and 174 deletions
+8 -4
View File
@@ -137,9 +137,13 @@ var dateBinsQueryTpl = dot.template([
' SELECT',
' ARRAY(',
' {{?it._aggregation==="quarter"}}',
' SELECT GENERATE_SERIES(start_date, end_date, \'3 month\'::interval)',
' SELECT GENERATE_SERIES(start_date::timestamptz, end_date::timestamptz, \'3 month\'::interval)',
' {{??}}',
' SELECT GENERATE_SERIES(start_date, end_date, \'1 {{=it._aggregation}}\'::interval)',
' SELECT GENERATE_SERIES(',
' start_date::timestamptz,',
' end_date::timestamptz,',
' \'1 {{=it._aggregation}}\'::interval',
' )',
' {{?}}',
' ) AS bins_array',
' FROM basics',
@@ -156,7 +160,7 @@ var dateHistogramQueryTpl = dot.template([
' THEN 0',
' ELSE GREATEST(1, LEAST(',
' WIDTH_BUCKET(',
' {{=it._column}}::timestamp WITHOUT TIME ZONE AT TIME ZONE \'{{=it._timezone}}\',',
' {{=it._column}}::timestamp AT TIME ZONE \'{{=it._timezone}}\',',
' bins_array',
' ),',
' bins_number',
@@ -164,7 +168,7 @@ var dateHistogramQueryTpl = dot.template([
' END AS bin,',
' min(date_part(',
' \'epoch\', ',
' date_trunc(\'{{=it._aggregation}}\', {{=it._column}} AT TIME ZONE \'{{=it._timezone}}\'',
' date_trunc(\'{{=it._aggregation}}\', {{=it._column}}::timestamptz',
' ) AT TIME ZONE \'{{=it._timezone}}\'))::numeric AS timestamp,',
' min(date_part(\'epoch\', {{=it._column}}))::numeric AS min,',
' max(date_part(\'epoch\', {{=it._column}}))::numeric AS max,',