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 <kangkai...@meituan.com> Authored: Thu Aug 24 17:49:50 2017 +0800 Committer: kangkaisen <kangkai...@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;