public DatasetField newMessage() { return new DatasetField(); }
@Override public boolean apply(@Nullable DatasetField input) { return fieldname.equals(input.getFieldName()); } }, null);
/** * Update field schema * @param datasetConfig old dataset config * @param fieldName field's name * @param fieldSchema new field schema * @return updated dataset config */ private DatasetConfig updateDatasetField(DatasetConfig datasetConfig, final String fieldName, CompleteType fieldSchema) { // clone the dataset config Serializer<DatasetConfig> serializer = ProtostuffSerializer.of(DatasetConfig.getSchema()); DatasetConfig newDatasetConfig = serializer.deserialize(serializer.serialize(datasetConfig)); List<DatasetField> datasetFields = newDatasetConfig.getDatasetFieldsList(); if (datasetFields == null) { datasetFields = Lists.newArrayList(); } DatasetField datasetField = Iterables.find(datasetFields, new Predicate<DatasetField>() { @Override public boolean apply(@Nullable DatasetField input) { return fieldName.equals(input.getFieldName()); } }, null); if (datasetField == null) { datasetField = new DatasetField().setFieldName(fieldName); datasetFields.add(datasetField); } datasetField.setFieldSchema(ByteString.copyFrom(fieldSchema.serialize())); newDatasetConfig.setDatasetFieldsList(datasetFields); return newDatasetConfig; }
if(message.datasetFields == null) message.datasetFields = new ArrayList<DatasetField>(); message.datasetFields.add(input.mergeObject(null, DatasetField.getSchema())); break;
private static CompleteType getRawSchema(QueryContext context, List<String> path, final String fieldname) { final NamespaceKey key = new NamespaceKey(path); List<DatasetField> datasetFields = null; try { DatasetConfig datasetConfig = context.getNamespaceService().getDataset(key); datasetFields = datasetConfig.getDatasetFieldsList(); } catch (NamespaceNotFoundException e) { // we will return a dummy type, below } catch (NamespaceException e) { throw new RuntimeException(e); } if (datasetFields != null) { // do we have a known schema for the converted field ? DatasetField datasetField = Iterables.find(datasetFields, new Predicate<DatasetField>() { @Override public boolean apply(@Nullable DatasetField input) { return fieldname.equals(input.getFieldName()); } }, null); if (datasetField != null) { // yes we do return CompleteType.deserialize(datasetField.getFieldSchema().toByteArray()); } } // return a dummy type for now return new CompleteType(ArrowType.Struct.INSTANCE, Collections.<Field>emptyList()); }
output.writeObject(11, datasetFields, DatasetField.getSchema(), true);
@Override public boolean apply(@Nullable DatasetField input) { return fieldName.equals(input.getFieldName()); } }, null);