@Override public int getInt(int position, int offset) { return block.getInt(position, offset); }
@Override public final long getLong(Block block, int position) { return block.getInt(position, 0); }
@Override public int compareTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition) { // WARNING: the correctness of InCodeGenerator is dependent on the implementation of this // function being the equivalence of internal long representation. int leftValue = leftBlock.getInt(leftPosition, 0); int rightValue = rightBlock.getInt(rightPosition, 0); return Integer.compare(leftValue, rightValue); }
@Override public boolean equalTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition) { float leftValue = intBitsToFloat(leftBlock.getInt(leftPosition, 0)); float rightValue = intBitsToFloat(rightBlock.getInt(rightPosition, 0)); // direct equality is correct here // noinspection FloatingPointEquality return leftValue == rightValue; }
@Override public int compareTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition) { // WARNING: the correctness of InCodeGenerator is dependent on the implementation of this // function being the equivalence of internal long representation. float leftValue = intBitsToFloat(leftBlock.getInt(leftPosition, 0)); float rightValue = intBitsToFloat(rightBlock.getInt(rightPosition, 0)); return Float.compare(leftValue, rightValue); }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } return block.getInt(position, 0); }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } return intBitsToFloat(block.getInt(position, 0)); }
@Override public long hash(Block block, int position) { // convert to canonical NaN if necessary return hash(floatToIntBits(intBitsToFloat(block.getInt(position, 0)))); }
@Override public int getInt(int position, int offset) { assureLoaded(); return block.getInt(position, offset); }
@Override public int getInt(int position, int offset) { return dictionary.getInt(getId(position), offset); }
@Override public int getInt(int position, int offset) { checkReadablePosition(position); return value.getInt(0, offset); }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } return new SqlIntervalYearMonth(block.getInt(position, 0)); }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } int days = block.getInt(position, 0); return new SqlDate(days); }
@Override public int getInt(int position, int offset) { checkFieldIndex(position); return getRawFieldBlock(position).getInt(rowIndex, offset); }
@Override public int getInt(int position, int offset) { checkReadablePosition(position); return getBlock().getInt(position + start, offset); }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } return new SqlIntervalYearMonth(block.getInt(position, 0)); }
@Override public final void appendTo(Block block, int position, BlockBuilder blockBuilder) { if (block.isNull(position)) { blockBuilder.appendNull(); } else { blockBuilder.writeInt(block.getInt(position, 0)).closeEntry(); } }
@Override public void writeBlock(BlockEncodingSerde blockEncodingSerde, SliceOutput sliceOutput, Block block) { int positionCount = block.getPositionCount(); sliceOutput.appendInt(positionCount); encodeNullsAsBits(sliceOutput, block); for (int position = 0; position < positionCount; position++) { if (!block.isNull(position)) { sliceOutput.writeInt(block.getInt(position, 0)); } } }