Browse Source

use unixEpochGroup macro for unix timestamp

Sven Klemm 7 years ago
parent
commit
18ce6fc280

+ 6 - 3
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 (['int4', 'int8', 'float4', 'float8', 'numeric'].indexOf(this.target.timeColumnType) > -1) {
+        macro = '$__unixEpochGroup';
+      }
       if (alias) {
-        query = '$__timeGroupAlias(' + this.target.timeColumn + ',' + args + ')';
-      } else {
-        query = '$__timeGroup(' + this.target.timeColumn + ',' + args + ')';
+        macro += 'Alias';
       }
+      query = macro + '(' + this.target.timeColumn + ',' + args + ')';
     } else {
       query = this.target.timeColumn;
       if (alias) {

+ 7 - 0
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() {