private static Map<String, DataSource> getDataSourceMap() { final Map<String, DataSource> dataSourceMap = new HashMap<String, DataSource>(); dataSourceMap.put("column11", _indexSegment.getDataSource("column11")); dataSourceMap.put("column12", _indexSegment.getDataSource("column12")); dataSourceMap.put("met_impressionCount", _indexSegment.getDataSource("met_impressionCount")); return dataSourceMap; }
public static DataSchema extractDataSchema( List<SelectionSort> sortSequence, List<String> selectionColumns, IndexSegment indexSegment) { final List<String> columns = new ArrayList<String>(); if (sortSequence != null && !sortSequence.isEmpty()) { for (final SelectionSort selectionSort : sortSequence) { columns.add(selectionSort.getColumn()); } } String[] selectionColumnArray = selectionColumns.toArray(new String[selectionColumns.size()]); Arrays.sort(selectionColumnArray); for (int i = 0; i < selectionColumnArray.length; ++i) { String selectionColumn = selectionColumnArray[i]; if (!columns.contains(selectionColumn)) { columns.add(selectionColumn); } } final DataType[] dataTypes = new DataType[columns.size()]; for (int i = 0; i < dataTypes.length; ++i) { DataSource ds = indexSegment.getDataSource(columns.get(i)); DataSourceMetadata m = ds.getDataSourceMetadata(); dataTypes[i] = m.getDataType(); if (!m.isSingleValue()) { dataTypes[i] = DataType.valueOf(dataTypes[i] + "_ARRAY"); } } return new DataSchema(columns.toArray(new String[0]), dataTypes); }