public void testUnionAndTimestamp() throws Exception { List<OrcProto.Type> types = new ArrayList<OrcProto.Type>(); types.add(OrcProto.Type.newBuilder().setKind(OrcProto.Type.Kind.STRUCT). addFieldNames("time").addFieldNames("union").addFieldNames("decimal"). addSubtypes(1).addSubtypes(2).addSubtypes(5).build()); types.add(OrcProto.Type.newBuilder().setKind(OrcProto.Type.Kind.TIMESTAMP). build()); types.add(OrcProto.Type.newBuilder().setKind(OrcProto.Type.Kind.UNION). addSubtypes(3).addSubtypes(4).build()); types.add(OrcProto.Type.newBuilder().setKind(OrcProto.Type.Kind.INT). build()); types.add(OrcProto.Type.newBuilder().setKind(OrcProto.Type.Kind.STRING). build()); types.add(OrcProto.Type.newBuilder().setKind(OrcProto.Type.Kind.DECIMAL). build());
switch (typeDescr.getCategory()) { case BOOLEAN: type.setKind(OrcProto.Type.Kind.BOOLEAN); break; case BYTE: type.setKind(OrcProto.Type.Kind.BYTE); break; case SHORT: type.setKind(OrcProto.Type.Kind.SHORT); break; case INT: type.setKind(OrcProto.Type.Kind.INT); break; case LONG: type.setKind(OrcProto.Type.Kind.LONG); break; case FLOAT: type.setKind(OrcProto.Type.Kind.FLOAT); break; case DOUBLE: type.setKind(OrcProto.Type.Kind.DOUBLE); break; case STRING: type.setKind(OrcProto.Type.Kind.STRING); break; case CHAR: type.setKind(OrcProto.Type.Kind.CHAR); type.setMaximumLength(typeDescr.getMaxLength()); break;
switch (oldType.getKind()) { case BOOLEAN: builder.setKind(OrcProto.Type.Kind.BOOLEAN); break; case BYTE: builder.setKind(OrcProto.Type.Kind.BYTE); break; case SHORT: builder.setKind(OrcProto.Type.Kind.SHORT); break; case INT: builder.setKind(OrcProto.Type.Kind.INT); break; case LONG: builder.setKind(OrcProto.Type.Kind.LONG); break; case FLOAT: builder.setKind(OrcProto.Type.Kind.FLOAT); break; case DOUBLE: builder.setKind(OrcProto.Type.Kind.DOUBLE); break; case STRING: builder.setKind(OrcProto.Type.Kind.STRING); break; case CHAR: builder.setKind(OrcProto.Type.Kind.CHAR); builder.setMaximumLength(oldType.getMaximumLength()); break;
switch (schema.getCategory()) { case BOOLEAN: type.setKind(OrcProto.Type.Kind.BOOLEAN); break; case BYTE: type.setKind(OrcProto.Type.Kind.BYTE); break; case SHORT: type.setKind(OrcProto.Type.Kind.SHORT); break; case INT: type.setKind(OrcProto.Type.Kind.INT); break; case LONG: type.setKind(OrcProto.Type.Kind.LONG); break; case FLOAT: type.setKind(OrcProto.Type.Kind.FLOAT); break; case DOUBLE: type.setKind(OrcProto.Type.Kind.DOUBLE); break; case STRING: type.setKind(OrcProto.Type.Kind.STRING); break; case CHAR: type.setKind(OrcProto.Type.Kind.CHAR); type.setMaximumLength(schema.getMaxLength()); break;
switch (typeDescr.getCategory()) { case BOOLEAN: type.setKind(OrcProto.Type.Kind.BOOLEAN); break; case BYTE: type.setKind(OrcProto.Type.Kind.BYTE); break; case SHORT: type.setKind(OrcProto.Type.Kind.SHORT); break; case INT: type.setKind(OrcProto.Type.Kind.INT); break; case LONG: type.setKind(OrcProto.Type.Kind.LONG); break; case FLOAT: type.setKind(OrcProto.Type.Kind.FLOAT); break; case DOUBLE: type.setKind(OrcProto.Type.Kind.DOUBLE); break; case STRING: type.setKind(OrcProto.Type.Kind.STRING); break; case CHAR: type.setKind(OrcProto.Type.Kind.CHAR); type.setMaximumLength(typeDescr.getMaxLength()); break;
switch (schema.getCategory()) { case BOOLEAN: type.setKind(OrcProto.Type.Kind.BOOLEAN); break; case BYTE: type.setKind(OrcProto.Type.Kind.BYTE); break; case SHORT: type.setKind(OrcProto.Type.Kind.SHORT); break; case INT: type.setKind(OrcProto.Type.Kind.INT); break; case LONG: type.setKind(OrcProto.Type.Kind.LONG); break; case FLOAT: type.setKind(OrcProto.Type.Kind.FLOAT); break; case DOUBLE: type.setKind(OrcProto.Type.Kind.DOUBLE); break; case STRING: type.setKind(OrcProto.Type.Kind.STRING); break; case CHAR: type.setKind(OrcProto.Type.Kind.CHAR); type.setMaximumLength(schema.getMaxLength()); break;
switch (schema.getCategory()) { case BOOLEAN: type.setKind(OrcProto.Type.Kind.BOOLEAN); break; case BYTE: type.setKind(OrcProto.Type.Kind.BYTE); break; case SHORT: type.setKind(OrcProto.Type.Kind.SHORT); break; case INT: type.setKind(OrcProto.Type.Kind.INT); break; case LONG: type.setKind(OrcProto.Type.Kind.LONG); break; case FLOAT: type.setKind(OrcProto.Type.Kind.FLOAT); break; case DOUBLE: type.setKind(OrcProto.Type.Kind.DOUBLE); break; case STRING: type.setKind(OrcProto.Type.Kind.STRING); break; case CHAR: type.setKind(OrcProto.Type.Kind.CHAR); type.setMaximumLength(schema.getMaxLength()); break;
/** * Build a virtual OrcTail for empty files. * @return a new OrcTail */ OrcTail buildEmptyTail() { OrcProto.PostScript.Builder postscript = OrcProto.PostScript.newBuilder(); OrcFile.Version version = OrcFile.Version.CURRENT; postscript.setMagic(OrcFile.MAGIC) .setCompression(OrcProto.CompressionKind.NONE) .setFooterLength(0) .addVersion(version.getMajor()) .addVersion(version.getMinor()) .setMetadataLength(0) .setWriterVersion(OrcFile.CURRENT_WRITER.getId()); // Use a struct with no fields OrcProto.Type.Builder struct = OrcProto.Type.newBuilder(); struct.setKind(OrcProto.Type.Kind.STRUCT); OrcProto.Footer.Builder footer = OrcProto.Footer.newBuilder(); footer.setHeaderLength(0) .setContentLength(0) .addTypes(struct) .setNumberOfRows(0) .setRowIndexStride(0); OrcProto.FileTail.Builder result = OrcProto.FileTail.newBuilder(); result.setFooter(footer); result.setPostscript(postscript); result.setFileLength(0); result.setPostscriptLength(0); return new OrcTail(result.build(), null); }
public Builder mergeFrom(org.apache.orc.OrcProto.Type other) { if (other == org.apache.orc.OrcProto.Type.getDefaultInstance()) return this; if (other.hasKind()) { setKind(other.getKind()); bitField0_ = (bitField0_ & ~0x00000002); } else { ensureSubtypesIsMutable(); subtypes_.addAll(other.subtypes_); onChanged(); bitField0_ = (bitField0_ & ~0x00000004); } else { ensureFieldNamesIsMutable(); fieldNames_.addAll(other.fieldNames_); onChanged(); setMaximumLength(other.getMaximumLength()); setPrecision(other.getPrecision()); setScale(other.getScale()); this.mergeUnknownFields(other.getUnknownFields()); return this;
/** * <code>repeated .orc.proto.Type types = 4;</code> */ public Builder addTypes( int index, org.apache.orc.OrcProto.Type.Builder builderForValue) { if (typesBuilder_ == null) { ensureTypesIsMutable(); types_.add(index, builderForValue.build()); onChanged(); } else { typesBuilder_.addMessage(index, builderForValue.build()); } return this; } /**
/** * <code>repeated .orc.proto.Type types = 4;</code> */ public Builder addTypes( org.apache.orc.OrcProto.Type.Builder builderForValue) { if (typesBuilder_ == null) { ensureTypesIsMutable(); types_.add(builderForValue.build()); onChanged(); } else { typesBuilder_.addMessage(builderForValue.build()); } return this; } /**
/** * <code>repeated .orc.proto.Type types = 4;</code> */ public Builder setTypes( int index, org.apache.orc.OrcProto.Type.Builder builderForValue) { if (typesBuilder_ == null) { ensureTypesIsMutable(); types_.set(index, builderForValue.build()); onChanged(); } else { typesBuilder_.setMessage(index, builderForValue.build()); } return this; } /**
private void addTypesFromSchema(TypeDescription schema) { // The same thing that WriterImpl does when writing the footer, but w/o the footer. OrcProto.Type.Builder type = OrcProto.Type.newBuilder(); List<TypeDescription> children = setTypeBuilderFromSchema(type, schema); orcTypes.add(type.build()); if (children == null) return; for(TypeDescription child : children) { addTypesFromSchema(child); } }
typeBuilder.setKind(OrcProto.Type.Kind.STRUCT).addSubtypes(1) .addSubtypes(2).addSubtypes(3).addSubtypes(4).addSubtypes(5) .addSubtypes(6); typeBuilder.addAllFieldNames(Lists.newArrayList("operation", "originalTransaction", "bucket", "rowId", "currentTransaction", "row")); types.add(typeBuilder.build()); types.add(null); types.add(null); types.add(null); types.add(null); typeBuilder.clearSubtypes(); typeBuilder.addSubtypes(7); typeBuilder.addAllFieldNames(Lists.newArrayList("col1")); types.add(typeBuilder.build()); typeBuilder.clear(); typeBuilder.setKind(OrcProto.Type.Kind.STRING); types.add(typeBuilder.build());
switch (schema.getCategory()) { case BOOLEAN: type.setKind(OrcProto.Type.Kind.BOOLEAN); break; case BYTE: type.setKind(OrcProto.Type.Kind.BYTE); break; case SHORT: type.setKind(OrcProto.Type.Kind.SHORT); break; case INT: type.setKind(OrcProto.Type.Kind.INT); break; case LONG: type.setKind(OrcProto.Type.Kind.LONG); break; case FLOAT: type.setKind(OrcProto.Type.Kind.FLOAT); break; case DOUBLE: type.setKind(OrcProto.Type.Kind.DOUBLE); break; case STRING: type.setKind(OrcProto.Type.Kind.STRING); break; case CHAR: type.setKind(OrcProto.Type.Kind.CHAR); type.setMaximumLength(schema.getMaxLength()); break;
.setKind(OrcProto.Type.Kind.STRUCT) .addFieldNames("col1") .addSubtypes(1)); footer.addTypes(OrcProto.Type.newBuilder() .setKind(OrcProto.Type.Kind.STRING)); footer.setNumberOfRows(1000 * stripeLengths.length) .setHeaderLength(headerLen)
) throws IOException { List<OrcProto.Type> types = new ArrayList<OrcProto.Type>(); types.add(OrcProto.Type.newBuilder().setKind(OrcProto.Type.Kind.STRUCT). addFieldNames("time").addFieldNames("date"). addSubtypes(1).addSubtypes(2).build()); types.add(OrcProto.Type.newBuilder().setKind(OrcProto.Type.Kind.TIMESTAMP). build()); types.add(OrcProto.Type.newBuilder().setKind(OrcProto.Type.Kind.DATE). build());
List<OrcProto.Type> types = new ArrayList<OrcProto.Type>(); OrcProto.Type.Builder builder = OrcProto.Type.newBuilder(); builder.setKind(OrcProto.Type.Kind.STRUCT) .addAllFieldNames(Arrays.asList("op", "owid", "bucket", "rowid", "cwid", "row")) .addAllSubtypes(Arrays.asList(1,2,3,4,5,6)); types.add(builder.build()); builder.clear().setKind(OrcProto.Type.Kind.INT); types.add(builder.build()); types.add(builder.build()); types.add(builder.build()); types.add(builder.build()); types.add(builder.build()); builder.clear().setKind(OrcProto.Type.Kind.STRUCT) .addAllFieldNames(Arrays.asList("url", "purchase", "cost", "store")) .addAllSubtypes(Arrays.asList(7, 8, 9, 10)); types.add(builder.build()); builder.clear().setKind(OrcProto.Type.Kind.STRING); types.add(builder.build()); builder.clear().setKind(OrcProto.Type.Kind.INT); types.add(builder.build()); types.add(builder.build()); types.add(builder.build()); SearchArgument isNull = SearchArgumentFactory.newBuilder() .startAnd().isNull("cost", PredicateLeaf.Type.LONG).end().build();
private void addTypesFromSchema(TypeDescription schema) { // The same thing that WriterImpl does when writing the footer, but w/o the footer. OrcProto.Type.Builder type = OrcProto.Type.newBuilder(); List<TypeDescription> children = setTypeBuilderFromSchema(type, schema); orcTypes.add(type.build()); if (children == null) return; for(TypeDescription child : children) { addTypesFromSchema(child); } }