public UnionTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { IList<ObjectInspector> choices = null; if (inspector != null) { UnionObjectInspector insp = (UnionObjectInspector)inspector; choices = insp.getObjectInspectors(); } IList<TypeDescription> children = schema.getChildren(); childrenWriters = new TreeWriter[children.Count]; for (int i = 0; i < childrenWriters.Length; ++i) { childrenWriters[i] = createTreeWriter( choices != null ? choices[i] : null, children[i], writer, true); } tags = new RunLengthByteWriter(writer.createStream(columnId, OrcProto.Stream.Types.Kind.DATA)); recordPosition(rowIndexPosition); }
public BinaryTreeWriter( int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { this.stream = writer.createStream(id, OrcProto.Stream.Types.Kind.DATA); this.isDirectV2 = isNewWriteFormat(writer); this.length = createIntegerWriter(writer.createStream(id, OrcProto.Stream.Types.Kind.LENGTH), false, isDirectV2, writer); recordPosition(rowIndexPosition); }
public TimestampTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { this.isDirectV2 = isNewWriteFormat(writer); this.seconds = createIntegerWriter(writer.createStream(id, OrcProto.Stream.Types.Kind.DATA), true, isDirectV2, writer); this.nanos = createIntegerWriter(writer.createStream(id, OrcProto.Stream.Types.Kind.SECONDARY), false, isDirectV2, writer); recordPosition(rowIndexPosition); TimeZoneInfo timeZone; this.base_timestamp = TimeZones.GetBaseTimestamp(writer.Timezone, out timeZone); }
/** * Create a tree writer. * @param columnId the column id of the column to write * @param inspector the object inspector to use * @param schema the row schema * @param streamFactory limited access to the Writer's data. * @param nullable can the value be null? * @ */ protected TreeWriter( int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory streamFactory, bool nullable) { this.streamFactory = streamFactory; this.isCompressed = streamFactory.isCompressed(); this.id = columnId; this.inspector = inspector; if (nullable) { isPresentOutStream = streamFactory.createStream(id, OrcProto.Stream.Types.Kind.PRESENT); isPresent = new BitFieldWriter(isPresentOutStream, 1); } else { isPresent = null; } this.foundNulls = false; createBloomFilter = streamFactory.getBloomFilterColumns()[columnId]; indexStatistics = ColumnStatisticsImpl.create(schema); stripeColStatistics = ColumnStatisticsImpl.create(schema); fileStatistics = ColumnStatisticsImpl.create(schema); childrenWriters = new TreeWriter[0]; rowIndex = OrcProto.RowIndex.CreateBuilder(); rowIndexEntry = OrcProto.RowIndexEntry.CreateBuilder(); rowIndexPosition = new RowIndexPositionRecorder(rowIndexEntry); stripeStatsBuilders = new List<OrcProto.StripeStatistics.Builder>(); if (streamFactory.buildIndex()) { rowIndexStream = streamFactory.createStream(id, OrcProto.Stream.Types.Kind.ROW_INDEX); } else { rowIndexStream = null; } if (createBloomFilter) { bloomFilterEntry = OrcProto.BloomFilter.CreateBuilder(); bloomFilterIndex = OrcProto.BloomFilterIndex.CreateBuilder(); bloomFilterStream = streamFactory.createStream(id, OrcProto.Stream.Types.Kind.BLOOM_FILTER); bloomFilter = new BloomFilter(streamFactory.getRowIndexStride(), streamFactory.getBloomFilterFPP()); } else { bloomFilterEntry = null; bloomFilterIndex = null; bloomFilterStream = null; bloomFilter = null; } }
public MapTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { this.isDirectV2 = isNewWriteFormat(writer); ObjectInspector keyInspector = null; ObjectInspector valueInspector = null; if (inspector != null) { MapObjectInspector insp = (MapObjectInspector)inspector; keyInspector = insp.getMapKeyObjectInspector(); valueInspector = insp.getMapValueObjectInspector(); } childrenWriters = new TreeWriter[2]; IList<TypeDescription> children = schema.getChildren(); childrenWriters[0] = createTreeWriter(keyInspector, children[0], writer, true); childrenWriters[1] = createTreeWriter(valueInspector, children[1], writer, true); lengths = createIntegerWriter(writer.createStream(columnId, OrcProto.Stream.Types.Kind.LENGTH), false, isDirectV2, writer); recordPosition(rowIndexPosition); }
public StringBaseTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { this.isDirectV2 = isNewWriteFormat(writer); stringOutput = writer.createStream(id, OrcProto.Stream.Types.Kind.DICTIONARY_DATA); lengthOutput = createIntegerWriter(writer.createStream(id, OrcProto.Stream.Types.Kind.LENGTH), false, isDirectV2, writer); rowOutput = createIntegerWriter(writer.createStream(id, OrcProto.Stream.Types.Kind.DATA), false, isDirectV2, writer); recordPosition(rowIndexPosition); rowIndexValueCount.Add(0L); buildIndex = writer.buildIndex(); directStreamOutput = writer.createStream(id, OrcProto.Stream.Types.Kind.DATA); directLengthOutput = createIntegerWriter(writer.createStream(id, OrcProto.Stream.Types.Kind.LENGTH), false, isDirectV2, writer); OrcFile.WriterOptions options = writer.getOptions(); dictionaryKeySizeThreshold = options.getDictionaryKeySizeThreshold(); strideDictionaryCheck = options.getStrideDictionaryCheck(); doneDictionaryCheck = false; }
public IntegerTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { OutStream @out = writer.createStream(id, OrcProto.Stream.Types.Kind.DATA); this.isDirectV2 = isNewWriteFormat(writer); this.writer = createIntegerWriter(@out, true, isDirectV2, writer); if (inspector is IntObjectInspector) { intInspector = (IntObjectInspector)inspector; shortInspector = null; longInspector = null; } else { intInspector = null; if (inspector is LongObjectInspector) { longInspector = (LongObjectInspector)inspector; shortInspector = null; } else { shortInspector = (ShortObjectInspector)inspector; longInspector = null; } } recordPosition(rowIndexPosition); }
public ListTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { this.isDirectV2 = isNewWriteFormat(writer); ObjectInspector childOI = inspector == null ? null : ((ListObjectInspector)inspector).getListElementObjectInspector(); childrenWriters = new TreeWriter[1]; childrenWriters[0] = createTreeWriter(childOI, schema.getChildren()[0], writer, true); lengths = createIntegerWriter(writer.createStream(columnId, OrcProto.Stream.Types.Kind.LENGTH), false, isDirectV2, writer); recordPosition(rowIndexPosition); }
public FloatTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { this.stream = writer.createStream(id, OrcProto.Stream.Types.Kind.DATA); this.utils = new SerializationUtils(); recordPosition(rowIndexPosition); }
public DecimalTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { this.isDirectV2 = isNewWriteFormat(writer); valueStream = writer.createStream(id, OrcProto.Stream.Types.Kind.DATA); this.scaleStream = createIntegerWriter(writer.createStream(id, OrcProto.Stream.Types.Kind.SECONDARY), true, isDirectV2, writer); recordPosition(rowIndexPosition); }
public DateTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { OutStream @out = writer.createStream(id, OrcProto.Stream.Types.Kind.DATA); this.isDirectV2 = isNewWriteFormat(writer); this.writer = createIntegerWriter(@out, true, isDirectV2, writer); recordPosition(rowIndexPosition); }
public ByteTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { this.writer = new RunLengthByteWriter(writer.createStream(id, OrcProto.Stream.Types.Kind.DATA)); recordPosition(rowIndexPosition); }
public BooleanTreeWriter(int columnId, ObjectInspector inspector, TypeDescription schema, StreamFactory writer, bool nullable) : base(columnId, inspector, schema, writer, nullable) { PositionedOutputStream @out = writer.createStream(id, OrcProto.Stream.Types.Kind.DATA); this.writer = new BitFieldWriter(@out, 1); recordPosition(rowIndexPosition); }