private static long formatNanos(int nanos) { if (nanos == 0) { return 0; } else if (nanos % 100 != 0) { return ((long)nanos) << 3; } else { nanos /= 100; uint trailingZeros = 1; while (nanos % 10 == 0 && trailingZeros < 7) { nanos /= 10; trailingZeros += 1; } return (long)(((ulong)nanos) << 3 | trailingZeros); } }
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 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 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); }
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 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 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 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); }