@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { StructObjectInspector insp = (StructObjectInspector) inspector; for (int i = 0; i < fields.size(); ++i) { StructField field = fields.get(i); TreeWriter writer = childrenWriters[i]; writer.write(insp.getStructFieldData(obj, field)); } } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { MapObjectInspector insp = (MapObjectInspector) inspector; // this sucks, but it will have to do until we can get a better // accessor in the MapObjectInspector. Map<?, ?> valueMap = insp.getMap(obj); lengths.write(valueMap.size()); if (createBloomFilter) { bloomFilter.addLong(valueMap.size()); } for (Map.Entry<?, ?> entry : valueMap.entrySet()) { childrenWriters[0].write(entry.getKey()); childrenWriters[1].write(entry.getValue()); } } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { Text val = getTextValue(obj); if (useDictionaryEncoding || !strideDictionaryCheck) { rows.add(dictionary.add(val)); } else { // write data and length directStreamOutput.write(val.getBytes(), 0, val.getLength()); directLengthOutput.write(val.getLength()); } indexStatistics.updateString(val); if (createBloomFilter) { bloomFilter.addBytes(val.getBytes(), val.getLength()); } } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { BytesWritable val = ((BinaryObjectInspector) inspector).getPrimitiveWritableObject(obj); stream.write(val.getBytes(), 0, val.getLength()); length.write(val.getLength()); indexStatistics.updateBinary(val); if (createBloomFilter) { bloomFilter.addBytes(val.getBytes(), val.getLength()); } } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { boolean val = ((BooleanObjectInspector) inspector).get(obj); indexStatistics.updateBoolean(val); writer.write(val ? 1 : 0); } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { StructObjectInspector insp = (StructObjectInspector) inspector; for (int i = 0; i < fields.size(); ++i) { StructField field = fields.get(i); TreeWriter writer = childrenWriters[i]; writer.write(insp.getStructFieldData(obj, field)); } } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { double val = ((DoubleObjectInspector) inspector).get(obj); indexStatistics.updateDouble(val); if (createBloomFilter) { bloomFilter.addDouble(val); } utils.writeDouble(stream, val); } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { byte val = ((ByteObjectInspector) inspector).get(obj); indexStatistics.updateInteger(val); if (createBloomFilter) { bloomFilter.addLong(val); } writer.write(val); } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { HiveDecimal decimal = ((HiveDecimalObjectInspector) inspector).getPrimitiveJavaObject(obj); if (decimal == null) { return; } SerializationUtils.writeBigInteger(valueStream, decimal.unscaledValue()); scaleStream.write(decimal.scale()); indexStatistics.updateDecimal(decimal); if (createBloomFilter) { bloomFilter.addString(decimal.toString()); } } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { long val; if (intInspector != null) { val = intInspector.get(obj); } else if (longInspector != null) { val = longInspector.get(obj); } else { val = shortInspector.get(obj); } indexStatistics.updateInteger(val); if (createBloomFilter) { // integers are converted to longs in column statistics and during SARG evaluation bloomFilter.addLong(val); } writer.write(val); } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { ListObjectInspector insp = (ListObjectInspector) inspector; int len = insp.getListLength(obj); lengths.write(len); if (createBloomFilter) { bloomFilter.addLong(len); } for (int i = 0; i < len; ++i) { childrenWriters[0].write(insp.getListElement(obj, i)); } } }
@Override public void addRow(Object row) throws IOException { synchronized (this) { treeWriter.write(row); rowsInStripe += 1; if (buildIndex) { rowsInIndex += 1; if (rowsInIndex >= rowIndexStride) { createRowIndexEntry(); } } } memoryManager.addedRow(); }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { BytesWritable val = ((BinaryObjectInspector) inspector).getPrimitiveWritableObject(obj); stream.write(val.getBytes(), 0, val.getLength()); length.write(val.getLength()); indexStatistics.updateBinary(val); if (createBloomFilter) { bloomFilter.addBytes(val.getBytes(), val.getLength()); } } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { UnionObjectInspector insp = (UnionObjectInspector) inspector; byte tag = insp.getTag(obj); tags.write(tag); if (createBloomFilter) { bloomFilter.addLong(tag); } childrenWriters[tag].write(insp.getField(obj)); } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { float val = ((FloatObjectInspector) inspector).get(obj); indexStatistics.updateDouble(val); if (createBloomFilter) { // floats are converted to doubles in column statistics and during SARG evaluation bloomFilter.addDouble(val); } utils.writeFloat(stream, val); } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { byte val = ((ByteObjectInspector) inspector).get(obj); indexStatistics.updateInteger(val); if (createBloomFilter) { bloomFilter.addLong(val); } writer.write(val); } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { double val = ((DoubleObjectInspector) inspector).get(obj); indexStatistics.updateDouble(val); if (createBloomFilter) { bloomFilter.addDouble(val); } utils.writeDouble(stream, val); } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { Timestamp val = ((TimestampObjectInspector) inspector).getPrimitiveJavaObject(obj); indexStatistics.updateTimestamp(val); seconds.write((val.getTime() / MILLIS_PER_SECOND) - base_timestamp); nanos.write(formatNanos(val.getNanos())); if (createBloomFilter) { bloomFilter.addLong(val.getTime()); } } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { // Using the Writable here as it's used directly for writing as well as for stats. DateWritable val = ((DateObjectInspector) inspector).getPrimitiveWritableObject(obj); indexStatistics.updateDate(val); writer.write(val.getDays()); if (createBloomFilter) { bloomFilter.addLong(val.getDays()); } } }
@Override void write(Object obj) throws IOException { super.write(obj); if (obj != null) { boolean val = ((BooleanObjectInspector) inspector).get(obj); indexStatistics.updateBoolean(val); writer.write(val ? 1 : 0); } }