You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ka...@apache.org on 2017/12/05 02:36:20 UTC

kylin git commit: KYLIN-2604 Non-Int type precise count distinct measure must set advanced dict

Repository: kylin
Updated Branches:
  refs/heads/master 5a6e6d7e3 -> ed319575e


KYLIN-2604 Non-Int type precise count distinct measure must set advanced dict


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/ed319575
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/ed319575
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/ed319575

Branch: refs/heads/master
Commit: ed319575e6da35998e427e9803f69df2b450b872
Parents: 5a6e6d7
Author: kangkaisen <ka...@meituan.com>
Authored: Thu Aug 24 17:49:50 2017 +0800
Committer: kangkaisen <ka...@meituan.com>
Committed: Tue Dec 5 10:35:24 2017 +0800

----------------------------------------------------------------------
 webapp/app/js/controllers/cubeEdit.js   | 12 +++++++++++-
 webapp/app/js/controllers/cubeSchema.js | 20 ++++++++++++++++++++
 2 files changed, 31 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/ed319575/webapp/app/js/controllers/cubeEdit.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js
index 99b298c..3cf248f 100755
--- a/webapp/app/js/controllers/cubeEdit.js
+++ b/webapp/app/js/controllers/cubeEdit.js
@@ -200,6 +200,16 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
     return type;
   };
 
+  $scope.isIntMeasure = function (measure) {
+    var column = measure.function.parameter.value;
+    if(column && (typeof column=="string")){
+      var colType = $scope.getColumnType(VdmUtil.removeNameSpace(column), VdmUtil.getNameSpaceAliasName(column));
+      if(colType==="tinyint"||colType==="smallint"||colType==="int"||colType==="integer"){
+        return true;
+      }
+    }
+    return false;
+  };
 
   // ~ Define data
   $scope.state = {
@@ -730,7 +740,7 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
     var distinctMeasures = [];
 
     angular.forEach($scope.cubeMetaFrame.measures, function (measure, index) {
-      if (measure.function.expression === 'COUNT_DISTINCT' && measure.function.returntype === 'bitmap') {
+      if (measure.function.expression === 'COUNT_DISTINCT' && measure.function.returntype === 'bitmap' && !$scope.isIntMeasure(measure)) {
         var measureColumn = measure.function.parameter.value;
         distinctMeasures.push(measureColumn);
         //keep backward compatibility

http://git-wip-us.apache.org/repos/asf/kylin/blob/ed319575/webapp/app/js/controllers/cubeSchema.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeSchema.js b/webapp/app/js/controllers/cubeSchema.js
index a912c72..590168b 100755
--- a/webapp/app/js/controllers/cubeSchema.js
+++ b/webapp/app/js/controllers/cubeSchema.js
@@ -401,6 +401,26 @@ KylinApp.controller('CubeSchemaCtrl', function ($scope, QueryService, UserServic
         }
 
 
+        angular.forEach($scope.cubeMetaFrame.measures, function (measure, index) {
+            if (measure.function.expression === 'COUNT_DISTINCT' && measure.function.returntype === 'bitmap' && !$scope.isIntMeasure(measure)) {
+                var measureColumn = measure.function.parameter.value;
+
+                var isColumnExit = false;
+                angular.forEach($scope.cubeMetaFrame.dictionaries, function (dictionaries) {
+                    if (!isColumnExit) {
+                        //keep backward compatibility
+                        if (dictionaries.column == measureColumn || dictionaries.column == VdmUtil.removeNameSpace(measureColumn))
+                            isColumnExit = true;
+                    }
+                });
+
+                if (!isColumnExit) {
+                    errors.push("The non-Int type precise count distinct measure must set advanced cict: " + measureColumn);
+                }
+            }
+        });
+
+
         var errorInfo = "";
         angular.forEach(errors,function(item){
             errorInfo+="\n"+item;