@Override public Void visitSchemaPath(SchemaPath path, StringBuilder sb) throws RuntimeException { PathSegment seg = path.getRootSegment(); if (seg.isArray()) { throw new IllegalStateException("Drill doesn't currently support top level arrays"); } sb.append('`'); sb.append(escapeBackTick(seg.getNameSegment().getPath())); sb.append('`'); while ( (seg = seg.getChild()) != null) { if (seg.isNamed()) { sb.append('.'); sb.append('`'); sb.append(escapeBackTick(seg.getNameSegment().getPath())); sb.append('`'); } else { sb.append('['); sb.append(seg.getArraySegment().getIndex()); sb.append(']'); } } return null; }
/** * Traverses path segment to extract named segments, omits all other segments (i.e. array). * Order of named segments appearance will be preserved. * * @param currentSegment current segment * @param resultingSegment resulting segment * @return named segment */ private NameSegment getUnIndexedNameSegment(PathSegment currentSegment, NameSegment resultingSegment) { if (!currentSegment.isLastPath()) { resultingSegment = getUnIndexedNameSegment(currentSegment.getChild(), resultingSegment); } if (currentSegment.isNamed()) { String path = currentSegment.getNameSegment().getPath(); return new NameSegment(path, resultingSegment); } return resultingSegment; }
PathSegment child = root.getChild(); if (child != null && child.isNamed()) { byte[] qualifier = child.getNameSegment().getPath().getBytes(); hbaseScanColumnsOnly.addColumn(family, qualifier); if (!completeFamilies.contains(root.getPath())) {
private static NamePart getNamePart(PathSegment s) { if (s == null) { return null; } NamePart.Builder b = NamePart.newBuilder(); if (s.getChild() != null) { NamePart namePart = getNamePart(s.getChild()); if (namePart != null) { b.setChild(namePart); } } if (s.isArray()) { if (s.getArraySegment().hasIndex()) { throw new IllegalStateException("You cannot convert a indexed schema path to a NamePart. NameParts can only reference Vectors, not individual records or values."); } b.setType(Type.ARRAY); } else { b.setType(Type.NAME); b.setName(s.getNameSegment().getPath()); } return b.build(); }
byte[] qualifier = HBaseUtils.getBytes(field.getRootSegment().getChild().getNameSegment().getPath()); filter = new SingleColumnValueFilter(family, qualifier, compareOp, comparator); ((SingleColumnValueFilter)filter).setLatestVersionOnly(true);
byte[] qualifier = HBaseUtils.getBytes(field.getRootSegment().getChild().getNameSegment().getPath()); filter = new SingleColumnValueFilter(family, qualifier, compareOp, comparator); ((SingleColumnValueFilter)filter).setLatestVersionOnly(true);
Pattern p = Pattern.compile("(\\w+)_([isdb])(\\d*)"); for (SchemaPath path : columns) { String col = path.getLastSegment().getNameSegment().getPath(); if (SchemaPath.DYNAMIC_STAR.equals(col)) { return this;
@Override public Void visitSchemaPath(SchemaPath path, StringBuilder sb) throws RuntimeException { PathSegment seg = path.getRootSegment(); if (seg.isArray()) { throw new IllegalStateException("Drill doesn't currently support top level arrays"); } sb.append('`'); sb.append(escapeBackTick(seg.getNameSegment().getPath())); sb.append('`'); while ( (seg = seg.getChild()) != null) { if (seg.isNamed()) { sb.append('.'); sb.append('`'); sb.append(escapeBackTick(seg.getNameSegment().getPath())); sb.append('`'); } else { sb.append('['); sb.append(seg.getArraySegment().getIndex()); sb.append(']'); } } return null; }
public void ensureAtLeastOneField(ComplexWriter writer) { if (!atLeastOneWrite) { // if we had no columns, create one empty one so we can return some data // for count purposes. SchemaPath sp = columns.get(0); PathSegment root = sp.getRootSegment(); BaseWriter.MapWriter fieldWriter = writer.rootAsMap(); while (root.getChild() != null && !root.getChild().isArray()) { fieldWriter = fieldWriter.map(root.getNameSegment().getPath()); root = root.getChild(); } fieldWriter.integer(root.getNameSegment().getPath()); } }
BaseWriter.MapWriter fieldWriter = writer.rootAsMap(); while (fieldPath.getChild() != null && !fieldPath.getChild().isArray()) { fieldWriter = fieldWriter.map(fieldPath.getNameSegment().getPath()); fieldPath = fieldPath.getChild(); if (emptyStatus.get(j)) { if (allTextMode) { fieldWriter.varChar(fieldPath.getNameSegment().getPath()); } else { fieldWriter.integer(fieldPath.getNameSegment().getPath());
colNextChild = colPath.getChild(); if (colPath != null && colPath.isNamed() && (!SchemaPath.DYNAMIC_STAR.equals(colPath.getNameSegment().getPath()))) { name = colPath.getNameSegment().getPath(); SchemaPath s = new SchemaPath(colNextChild.getNameSegment()); c.add(s);
builder.addSubType(t); MaterializedField field = MaterializedField.create(path.getLastSegment().getNameSegment().getPath(), builder.build()); fields.add(field); } else { MaterializedField field = MaterializedField.create(path.getLastSegment().getNameSegment().getPath(), Types.optional(types.iterator().next())); fields.add(field);
public void resolveDrillType(Map<String, SchemaElement> schemaElements, OptionManager options) { se = schemaElements.get(ParquetReaderUtility.getFullColumnPath(column)); type = ParquetToDrillTypeConverter.toMajorType(column.getType(), column.getTypeLength(), getDataMode(column), se, options); field = MaterializedField.create(toFieldName(column.getPath()).getLastSegment().getNameSegment().getPath(), type); length = getDataTypeLength(); }
/** * Traverses path segment to extract named segments, omits all other segments (i.e. array). * Order of named segments appearance will be preserved. * * @param currentSegment current segment * @param resultingSegment resulting segment * @return named segment */ private NameSegment getUnIndexedNameSegment(PathSegment currentSegment, NameSegment resultingSegment) { if (!currentSegment.isLastPath()) { resultingSegment = getUnIndexedNameSegment(currentSegment.getChild(), resultingSegment); } if (currentSegment.isNamed()) { String path = currentSegment.getNameSegment().getPath(); return new NameSegment(path, resultingSegment); } return resultingSegment; }
do { if (seg.isNamed()) { segments.add(seg.getNameSegment().getPath()); PathSegment seg = schemaPath.getRootSegment(); do { segments.add(seg.getNameSegment().getPath()); } while ((seg = seg.getChild()) != null); String[] pathSegments = new String[segments.size()];
private void add(PathSegment segment){ if(segment.isNamed()){ boolean lastPath = segment.isLastPath(); FieldSelection child = addChild(segment.getNameSegment().getPath()); if (lastPath) { child.setAlwaysValid(); } if (!lastPath && !child.isAlwaysValid()) { child.add(segment.getChild()); } } }
PathSegment child = root.getChild(); if (child != null && child.isNamed()) { byte[] qualifier = child.getNameSegment().getPath().getBytes(); hbaseScanColumnsOnly.addColumn(family, qualifier); if (!completeFamilies.contains(root.getPath())) {
private static NamePart getNamePart(PathSegment s) { if (s == null) { return null; } NamePart.Builder b = NamePart.newBuilder(); if (s.getChild() != null) { NamePart namePart = getNamePart(s.getChild()); if (namePart != null) { b.setChild(namePart); } } if (s.isArray()) { if (s.getArraySegment().hasIndex()) { throw new IllegalStateException("You cannot convert a indexed schema path to a NamePart. NameParts can only reference Vectors, not individual records or values."); } b.setType(Type.ARRAY); } else { b.setType(Type.NAME); b.setName(s.getNameSegment().getPath()); } return b.build(); }
final MaterializedField outputField = MaterializedField.create(ne.getRef().getLastSegment().getNameSegment().getPath(), expr.getMajorType()); @SuppressWarnings("resource") valueExprs[i] = expr; } else { final MaterializedField outputField = MaterializedField.create(ne.getRef().getLastSegment().getNameSegment().getPath(), expr.getMajorType()); @SuppressWarnings("resource")
final MaterializedField outputField = MaterializedField.create(ne.getRef().getLastSegment().getNameSegment().getPath(), expr.getMajorType()); @SuppressWarnings("resource")