From 18ce6fc280233533aaa0e79f1a74adfce7d3a20d Mon Sep 17 00:00:00 2001 From: Sven Klemm Date: Sat, 18 Aug 2018 12:03:47 +0200 Subject: [PATCH] use unixEpochGroup macro for unix timestamp --- .../app/plugins/datasource/postgres/postgres_query.ts | 11 +++++++---- .../datasource/postgres/specs/postgres_query.test.ts | 7 +++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/public/app/plugins/datasource/postgres/postgres_query.ts b/public/app/plugins/datasource/postgres/postgres_query.ts index b239ddbfb05..c9af5d9d76b 100644 --- a/public/app/plugins/datasource/postgres/postgres_query.ts +++ b/public/app/plugins/datasource/postgres/postgres_query.ts @@ -99,6 +99,7 @@ export default class PostgresQuery { buildTimeColumn(alias = true) { let timeGroup = this.hasTimeGroup(); let query; + let macro = '$__timeGroup'; if (timeGroup) { let args; @@ -107,11 +108,13 @@ export default class PostgresQuery { } else { args = timeGroup.params[0]; } - if (alias) { - query = '$__timeGroupAlias(' + this.target.timeColumn + ',' + args + ')'; - } else { - query = '$__timeGroup(' + this.target.timeColumn + ',' + args + ')'; + if (['int4', 'int8', 'float4', 'float8', 'numeric'].indexOf(this.target.timeColumnType) > -1) { + macro = '$__unixEpochGroup'; } + if (alias) { + macro += 'Alias'; + } + query = macro + '(' + this.target.timeColumn + ',' + args + ')'; } else { query = this.target.timeColumn; if (alias) { diff --git a/public/app/plugins/datasource/postgres/specs/postgres_query.test.ts b/public/app/plugins/datasource/postgres/specs/postgres_query.test.ts index 1e2b75417da..83ba6eb5c74 100644 --- a/public/app/plugins/datasource/postgres/specs/postgres_query.test.ts +++ b/public/app/plugins/datasource/postgres/specs/postgres_query.test.ts @@ -35,6 +35,13 @@ describe('PostgresQuery', function() { query = new PostgresQuery({ timeColumn: 'time', group: [{ type: 'time', params: ['5m', 'NULL'] }] }, templateSrv); expect(query.buildTimeColumn()).toBe('$__timeGroupAlias(time,5m,NULL)'); + + query = new PostgresQuery( + { timeColumn: 'time', timeColumnType: 'int4', group: [{ type: 'time', params: ['5m', 'none'] }] }, + templateSrv + ); + expect(query.buildTimeColumn()).toBe('$__unixEpochGroupAlias(time,5m)'); + expect(query.buildTimeColumn(false)).toBe('$__unixEpochGroup(time,5m)'); }); describe('When generating metric column SQL', function() {