protected Record(Schema schema) { recordIdx_ = -1; colOffsets_ = new long[schema.cols.size()]; colData_ = new ByteBuffer[schema.cols.size()]; byteArrayVals_ = new ByteArray[schema.cols.size()]; timestampNanos_ = new TimestampNanos[schema.cols.size()]; decimalVals_ = new Decimal[schema.cols.size()]; nulls_ = new ByteBuffer[schema.cols.size()]; byteArrayLen_ = new int[schema.cols.size()]; schema_ = schema; for (int i = 0; i < colOffsets_.length; ++i) { Schema.TypeDesc type = schema_.cols.get(i).type; if (type.typeId == Schema.Type.STRING || type.typeId == Schema.Type.VARCHAR) { byteArrayVals_[i] = new ByteArray(); } if (type.typeId == Schema.Type.TIMESTAMP_NANOS) { timestampNanos_[i] = new TimestampNanos(); } if (type.typeId == Schema.Type.CHAR) { byteArrayVals_[i] = new ByteArray(); byteArrayLen_[i] = type.len; } else { byteArrayLen_[i] = -1; } if (type.typeId == Schema.Type.DECIMAL) { decimalVals_[i] = new Decimal(type.precision, type.scale); byteArrayLen_[i] = Decimal.computeByteSize(type.precision, type.scale); } } }