private void checkData() { if (getRootSegment().getChild() != null) { throw new UnsupportedOperationException("Field references must be singular names."); } }
byte[] family = root.getPath().getBytes(); transformed.add(SchemaPath.getSimplePath(root.getPath())); PathSegment child = root.getChild(); if (child != null && child.isNamed()) { byte[] qualifier = child.getNameSegment().getPath().getBytes();
if (!(isRowKey || (!field.getRootSegment().isLastPath() && field.getRootSegment().getChild().isLastPath() && field.getRootSegment().getChild().isNamed()) byte[] qualifier = HBaseUtils.getBytes(field.getRootSegment().getChild().getNameSegment().getPath()); filter = new SingleColumnValueFilter(family, qualifier, compareOp, comparator); ((SingleColumnValueFilter)filter).setLatestVersionOnly(true);
int index; String pathStr = path.getRootSegment().getPath(); if (pathStr.equals(COL_NAME) && path.getRootSegment().getChild() != null) { .message("With extractHeader enabled, only header names are supported") .addContext("column name", pathStr) .addContext("column index", path.getRootSegment().getChild()) .build(logger); } else {
builder.addId(id).remainder(expectedPath.getRootSegment().getChild()); List<MinorType> minorTypes = ((UnionVector) vector).getSubTypes(); MajorType.Builder majorTypeBuilder = MajorType.newBuilder().setMinorType(MinorType.UNION); builder.intermediateType(vector.getField().getType()); builder.addId(id); return getFieldIdIfMatches(list, builder, true, expectedPath.getRootSegment().getChild()); } else if (vector instanceof AbstractContainerVector) { builder.intermediateType(vector.getField().getType()); builder.addId(id); return getFieldIdIfMatches(c, builder, true, expectedPath.getRootSegment().getChild());
byte[] family = root.getPath().getBytes(); transformed.add(SchemaPath.getSimplePath(root.getPath())); PathSegment child = root.getChild(); if (child != null && child.isNamed()) { byte[] qualifier = child.getNameSegment().getPath().getBytes();
assert path.getRootSegment().isNamed() : "root segment should be named"; pathStr = path.getRootSegment().getPath(); Preconditions.checkArgument(COL_NAME.equalsIgnoreCase(pathStr) || (SchemaPath.DYNAMIC_STAR.equals(pathStr) && path.getRootSegment().getChild() == null), String.format("Selected column '%s' must have name 'columns' or must be plain '*'", pathStr)); if (path.getRootSegment().getChild() != null) { Preconditions.checkArgument(path.getRootSegment().getChild().isArray(), String.format("Selected column '%s' must be an array index", pathStr)); int index = path.getRootSegment().getChild().getArraySegment().getIndex(); columnIds.add(index);
assert path.getRootSegment().isNamed(); pathStr = path.getRootSegment().getPath(); Preconditions.checkArgument(COL_NAME.equals(pathStr) || (SchemaPath.DYNAMIC_STAR.equals(pathStr) && path.getRootSegment().getChild() == null), "Selected column(s) must have name 'columns' or must be plain '*'"); if (path.getRootSegment().getChild() != null) { Preconditions.checkArgument(path.getRootSegment().getChild().isArray(), "Selected column must be an array index"); int index = path.getRootSegment().getChild().getArraySegment().getIndex(); columnIds.add(index);
private void parseArray(NameSegment arraySeg) { String name = arraySeg.getPath(); int index = ((ArraySegment) arraySeg.getChild()).getIndex(); RequestedColumnImpl member = getImpl(name); if (member == null) { member = new RequestedColumnImpl(this, name); projection.add(name, member); } else if (member.isSimple()) { // Saw both a and a[x]. Occurs in project list. // Project all elements. member.projectAllElements(); return; } else if (member.hasIndex(index)) { throw UserException .validationError() .message("Duplicate array index in project list: %s[%d]", member.fullName(), index) .build(logger); } member.addIndex(index); }
private void parseInternal(NameSegment nameSeg) { String name = nameSeg.getPath(); RequestedColumnImpl member = getImpl(name); RequestedTuple map; if (member == null) { // New member. Since this is internal, this new member // must be a map. member = new RequestedColumnImpl(this, name); projection.add(name, member); map = member.asTuple(); } else if (member.isTuple()) { // Known map. Add to it. map = member.asTuple(); } else { // Member was previously projected by itself. We now // know it is a map. So, project entire map. (Earlier // we saw `a`. Now we see `a`.`b`.) map = member.projectAllMembers(true); } map.parseSegment(nameSeg.getChild()); }
@Override public RexNode visitSchemaPath(SchemaPath path, Void value) throws RuntimeException { PathSegment.NameSegment rootSegment = path.getRootSegment(); if (rootSegment.isLastPath()) { final RelDataTypeField field = findField(rootSegment.getPath(), newRowType); return field == null ? null : builder.makeInputRef(field.getType(), field.getIndex()); } List<String> paths = Lists.newArrayList(); while (rootSegment != null) { paths.add(rootSegment.getPath()); rootSegment = (PathSegment.NameSegment) rootSegment.getChild(); } return makeItemOperator(paths.toArray(new String[0]), paths.size() - 1, newRowType); }
private void checkData() { if (getRootSegment().getChild() != null) { throw new UnsupportedOperationException("Field references must be singular names."); } }
public static String getFullPath(PathSegment pathSeg) { PathSegment.NameSegment nameSeg = (PathSegment.NameSegment)pathSeg; if (nameSeg.isLastPath()) { return nameSeg.getPath(); } return String.format("%s.%s", nameSeg.getPath(), getFullPath(nameSeg.getChild())); }
@Override public String toString() { return "NameSegment [path=" + path + ", getChild()=" + getChild() + "]"; }
if (!(isRowKey || (!field.getRootSegment().isLastPath() && field.getRootSegment().getChild().isLastPath() && field.getRootSegment().getChild().isNamed()) byte[] qualifier = HBaseUtils.getBytes(field.getRootSegment().getChild().getNameSegment().getPath()); filter = new SingleColumnValueFilter(family, qualifier, compareOp, comparator); ((SingleColumnValueFilter)filter).setLatestVersionOnly(true);
@Override public String toString() { return "NameSegment [path=" + path + ", getChild()=" + getChild() + "]"; }