You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/04/22 06:11:37 UTC
[08/50] [abbrv] kylin git commit: KYLIN-1553 use foreign key as
rowkey when primary key on lookup table selected as dimension
KYLIN-1553 use foreign key as rowkey when primary key on lookup table selected as dimension
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/05033cbe
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/05033cbe
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/05033cbe
Branch: refs/heads/1.5.x-HBase1.1.3
Commit: 05033cbe4b30510070820ee4130516cdd94b185f
Parents: 828a71f
Author: Jason <ji...@163.com>
Authored: Thu Mar 31 16:55:41 2016 +0800
Committer: Jason <ji...@163.com>
Committed: Thu Mar 31 17:01:28 2016 +0800
----------------------------------------------------------------------
webapp/app/js/controllers/cubeEdit.js | 29 ++++++++++++++++++++++++++---
1 file changed, 26 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kylin/blob/05033cbe/webapp/app/js/controllers/cubeEdit.js
----------------------------------------------------------------------
diff --git a/webapp/app/js/controllers/cubeEdit.js b/webapp/app/js/controllers/cubeEdit.js
index e188245..b34393a 100755
--- a/webapp/app/js/controllers/cubeEdit.js
+++ b/webapp/app/js/controllers/cubeEdit.js
@@ -412,6 +412,19 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
var tmpRowKeyColumns = [];
var tmpAggregationItems = [];//put all aggregation item
//var hierarchyItemArray = [];//put all hierarchy items
+
+ var pfkMap = {};
+
+ for( var i=0;i<$scope.metaModel.model.lookups.length;i++){
+ var lookup = $scope.metaModel.model.lookups[i];
+ var table = lookup.table;
+ pfkMap[table] = {};
+ for(var j=0;j<lookup.join.primary_key.length;j++){
+ var pk = lookup.join.primary_key[j];
+ pfkMap[table][pk] = lookup.join.foreign_key[j];
+ }
+
+ }
angular.forEach($scope.cubeMetaFrame.dimensions, function (dimension, index) {
//derived column
@@ -438,16 +451,26 @@ KylinApp.controller('CubeEditCtrl', function ($scope, $q, $routeParams, $locatio
}
//normal column
else if (dimension.column && !dimension.derived) {
+
+ var tableName = dimension.table;
+ var columnName = dimension.column;
+ var rowkeyColumn = dimension.column;
+ if(pfkMap[tableName]&&pfkMap[tableName][columnName]){
+ //lookup table primary key column as dimension
+ rowkeyColumn = pfkMap[tableName][columnName];
+
+ }
+
for (var i = 0; i < tmpRowKeyColumns.length; i++) {
- if (tmpRowKeyColumns[i].column == dimension.column)
+ if (tmpRowKeyColumns[i].column == rowkeyColumn)
break;
}
if (i == tmpRowKeyColumns.length) {
tmpRowKeyColumns.push({
- "column": dimension.column,
+ "column": rowkeyColumn,
"encoding": "dict"
});
- tmpAggregationItems.push(dimension.column);
+ tmpAggregationItems.push(rowkeyColumn);
}
}