Jelajahi Sumber

add column alias when add aggregate function

Sven Klemm 7 tahun lalu
induk
melakukan
dc93055a10
1 mengubah file dengan 12 tambahan dan 1 penghapusan
  1. 12 1
      public/app/plugins/datasource/postgres/sql_part.ts

+ 12 - 1
public/app/plugins/datasource/postgres/sql_part.ts

@@ -29,6 +29,8 @@ function columnRenderer(part, innerExpr) {
 }
 
 function replaceAggregationAddStrategy(selectParts, partModel) {
+  var hasAlias = false;
+
   // look for existing aggregation
   for (var i = 0; i < selectParts.length; i++) {
     var part = selectParts[i];
@@ -36,6 +38,15 @@ function replaceAggregationAddStrategy(selectParts, partModel) {
       selectParts[i] = partModel;
       return;
     }
+    if (part.def.type === 'alias') {
+      hasAlias = true;
+    }
+  }
+
+  // add alias if none exists yet
+  if (!hasAlias) {
+    var aliasModel = createPart({ type: 'alias', params: [selectParts[0].params[0]] });
+    selectParts.push(aliasModel);
   }
 
   selectParts.splice(1, 0, partModel);
@@ -117,7 +128,7 @@ register({
 
 register({
   type: 'macro',
-  style: 'function',
+  style: 'label',
   label: 'Macro:',
   addStrategy: addExpressionStrategy,
   params: [],