private void fillMappingDetails(ColumnSchema column, Map<String, Set<ColumnSchema>> map) { List<ParentColumnTableRelation> parentColumnTableRelations = column.getParentColumnTableRelations(); if (null != parentColumnTableRelations && parentColumnTableRelations.size() == 1) { String columnName = column.getParentColumnTableRelations().get(0).getColumnName(); Set<ColumnSchema> columnSchemas = map.get(columnName); if (null == columnSchemas) { columnSchemas = new HashSet<>(); map.put(columnName, columnSchemas); } columnSchemas.add(column); } }
private void updateParentRelationIdentifier() { Set<RelationIdentifier> parentRelationIdentifiers = new HashSet<>(); this.parentRelationIdentifiers = new ArrayList<>(); List<ColumnSchema> listOfColumns = this.factTable.getListOfColumns(); for (ColumnSchema columnSchema : listOfColumns) { List<ParentColumnTableRelation> parentColumnTableRelations = columnSchema.getParentColumnTableRelations(); if (null != parentColumnTableRelations) { for (int i = 0; i < parentColumnTableRelations.size(); i++) { parentRelationIdentifiers.add(parentColumnTableRelations.get(i).getRelationIdentifier()); } } } this.parentRelationIdentifiers.addAll(parentRelationIdentifiers); }
/** * Method to prepare mapping of parent to list of aggregation function applied on that column * @param listOfColumns * child column schema list */ private void fillParentNameToAggregationMapping(List<ColumnSchema> listOfColumns) { parentColumnToAggregationsMapping = new HashMap<>(); for (ColumnSchema column : listOfColumns) { if (null != column.getAggFunction() && !column.getAggFunction().isEmpty()) { List<ParentColumnTableRelation> parentColumnTableRelations = column.getParentColumnTableRelations(); if (null != parentColumnTableRelations && parentColumnTableRelations.size() == 1) { String columnName = column.getParentColumnTableRelations().get(0).getColumnName(); Set<String> aggFunctions = parentColumnToAggregationsMapping.get(columnName); if (null == aggFunctions) { aggFunctions = new HashSet<>(); parentColumnToAggregationsMapping.put(columnName, aggFunctions); } aggFunctions.add(column.getAggFunction()); } } } }
/** * Below method will be used to get the column schema based on parent column name * @param columName * parent column name * @return child column schema */ public ColumnSchema getChildColByParentColName(String columName) { List<ColumnSchema> listOfColumns = childSchema.getListOfColumns(); for (ColumnSchema columnSchema : listOfColumns) { List<ParentColumnTableRelation> parentColumnTableRelations = columnSchema.getParentColumnTableRelations(); if (null != parentColumnTableRelations && parentColumnTableRelations.size() == 1 && parentColumnTableRelations.get(0).getColumnName().equalsIgnoreCase(columName) && columnSchema.getColumnName().endsWith(columName)) { return columnSchema; } } return null; }
/** * Below method will be used to get the column schema based on parent column name * @param columName * parent column name * @param timeseriesFunction * timeseries function applied on column * @return child column schema */ public ColumnSchema getTimeseriesChildColByParent(String columName, String timeseriesFunction) { List<ColumnSchema> listOfColumns = childSchema.getListOfColumns(); for (ColumnSchema columnSchema : listOfColumns) { List<ParentColumnTableRelation> parentColumnTableRelations = columnSchema.getParentColumnTableRelations(); if (null != parentColumnTableRelations && parentColumnTableRelations.size() == 1 && parentColumnTableRelations.get(0).getColumnName().equalsIgnoreCase(columName) && timeseriesFunction.equalsIgnoreCase(columnSchema.getTimeSeriesFunction())) { return columnSchema; } } return null; }
public static AbsoluteTableIdentifier getTableIdentifierForColumn( CarbonDimension carbonDimension) { RelationIdentifier relation = carbonDimension.getColumnSchema() .getParentColumnTableRelations() .get(0) .getRelationIdentifier(); String parentTableName = relation.getTableName(); String parentDatabaseName = relation.getDatabaseName(); String parentTableId = relation.getTableId(); return AbsoluteTableIdentifier.from(relation.getTablePath(), parentDatabaseName, parentTableName, parentTableId); }
AbsoluteTableIdentifier dictionarySourceAbsoluteTableIdentifier; ColumnIdentifier columnIdentifier; if (null != dimension.getColumnSchema().getParentColumnTableRelations() && !dimension .getColumnSchema().getParentColumnTableRelations().isEmpty()) { dictionarySourceAbsoluteTableIdentifier = getTableIdentifierForColumn(dimension); columnIdentifier = new ColumnIdentifier( dimension.getColumnSchema().getParentColumnTableRelations().get(0).getColumnId(), dimension.getColumnProperties(), dimension.getDataType()); } else {
dictionaryPath = dicPath; if (null != carbonDimension.getColumnSchema().getParentColumnTableRelations() && carbonDimension.getColumnSchema().getParentColumnTableRelations().size() == 1) { dictionarySourceAbsoluteTableIdentifier = QueryUtil.getTableIdentifierForColumn(carbonDimension); columnIdentifier = new ColumnIdentifier( carbonDimension.getColumnSchema().getParentColumnTableRelations().get(0).getColumnId(), carbonDimension.getColumnProperties(), carbonDimension.getDataType());
for (ColumnSchema column : listOfColumns) { List<ParentColumnTableRelation> parentColumnTableRelations = column.getParentColumnTableRelations();
wrapperColumnSchema.getParentColumnTableRelations(); if (null != parentColumnTableRelations) { thriftColumnSchema.setParentColumnTableRelations(
if (null == dataField.getColumn().getColumnSchema().getParentColumnTableRelations() || dataField.getColumn().getColumnSchema().getParentColumnTableRelations().isEmpty()) { identifier = new DictionaryColumnUniqueIdentifier(absoluteTableIdentifier, dataField.getColumn().getColumnIdentifier(), dataField.getColumn().getDataType()); } else { ParentColumnTableRelation parentColumnTableRelation = dataField.getColumn().getColumnSchema().getParentColumnTableRelations().get(0); RelationIdentifier relationIdentifier = parentColumnTableRelation