private void addParents(DocumentWriter writer, List<ParentDataset> parentDatasetList) { if (notEmpty(parentDatasetList)) { final String[] parents = new String[parentDatasetList.size()]; int i = 0; for (ParentDataset parent : parentDatasetList) { parents[i++] = PathUtils.constructFullPath(parent.getDatasetPathList()); } writer.write(DATASET_PARENTS, parents); } }
private void addSourcesAndOrigins(DocumentWriter writer, List<FieldOrigin> fieldOrigins) { if (notEmpty(fieldOrigins)) { Set<String> sources = Sets.newHashSet(); final List<String> empty = ImmutableList.of(); for (FieldOrigin fieldOrigin : fieldOrigins) { for (Origin origin : listNotNull(fieldOrigin.getOriginsList())) { // DX-3999: fix this in calcite final List<String> path = Optional.fromNullable(origin.getTableList()).or(empty); if (path.isEmpty()) { continue; } NamespaceKey dataset = new NamespaceKey(origin.getTableList()); sources.add(dataset.getRoot()); } } writer.write(DATASET_SOURCES, sources.toArray(new String[0])); } }
public static String[] getColumnsLowerCase(DatasetConfig datasetConfig) { final ByteString schemaBytes = DatasetHelper.getSchemaBytes(datasetConfig); if (schemaBytes != null) { Schema schema = Schema.getRootAsSchema(schemaBytes.asReadOnlyByteBuffer()); org.apache.arrow.vector.types.pojo.Schema s = org.apache.arrow.vector.types.pojo.Schema.convertSchema(schema); return s.getFields().stream().map(input -> input.getName().toLowerCase()).toArray(String[]::new); } else { // If virtual dataset was created with view fields if (datasetConfig.getType() == DatasetType.VIRTUAL_DATASET) { final List<ViewFieldType> viewFieldTypes = datasetConfig.getVirtualDataset().getSqlFieldsList(); if (notEmpty(viewFieldTypes)) { return viewFieldTypes.stream().map(input -> input.getName().toLowerCase()).toArray(String[]::new); } } } return new String[0]; }
private void addAllParents(DocumentWriter writer, List<ParentDataset> parents, List<ParentDataset> grandParents) { if (notEmpty(parents)) { grandParents = listNotNull(grandParents); int i = 0; final String[] allParents = new String[parents.size() + grandParents.size()]; for (ParentDataset parent : parents) { allParents[i++] = PathUtils.constructFullPath(parent.getDatasetPathList()); } for (ParentDataset grandParent : grandParents) { allParents[i++] = PathUtils.constructFullPath(grandParent.getDatasetPathList()); } writer.write(DATASET_ALLPARENTS, allParents); } } }