@Override public final long getLong(Block block, int position) { return block.getLong(position, 0); }
@Override public long getLong(int position, int offset) { checkReadablePosition(position); return value.getLong(0, offset); }
@Override public long hash(Block block, int position) { return hash(block.getLong(position, 0)); }
@Override public long getLong(int position, int offset) { assureLoaded(); return block.getLong(position, offset); }
@Override public long hash(Block block, int position) { return block.getLong(position, 0); }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } return new SqlTimestampWithTimeZone(block.getLong(position, 0)); }
@Override public long getLong(int position, int offset) { checkFieldIndex(position); return getRawFieldBlock(position).getLong(rowIndex, offset); }
private static OptionalLong getTimestampValue(DateTimeZone timeZone, Block block) { // TODO #7122 return block.isNull(0) ? OptionalLong.empty() : OptionalLong.of(MILLISECONDS.toSeconds(timeZone.convertUTCToLocal(block.getLong(0, 0)))); }
@Override public long getLong(int position, int offset) { checkReadablePosition(position); return getBlock().getLong(position + start, offset); }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } return block.getLong(position, 0); }
@Override public Object getObjectValue(ConnectorSession session, Block block, int position) { if (block.isNull(position)) { return null; } long unscaledValue = block.getLong(position, 0); return new SqlDecimal(BigInteger.valueOf(unscaledValue), getPrecision(), getScale()); }
private void assertBlockEquals(Block block, List<Long> expected) { assertEquals(block.getPositionCount(), expected.size()); for (int i = 0; i < expected.size(); i++) { if (expected.get(i) == null) { assertTrue(block.isNull(i)); } else { assertEquals(block.getLong(i, 0), expected.get(i).longValue()); } } }
@Override public final void appendTo(Block block, int position, BlockBuilder blockBuilder) { if (block.isNull(position)) { blockBuilder.appendNull(); } else { blockBuilder.writeLong(block.getLong(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.writeLong(block.getLong(position, 0)); } } }
@Override public void appendTo(Block block, int position, BlockBuilder blockBuilder) { if (block.isNull(position)) { blockBuilder.appendNull(); } else { blockBuilder.writeLong(block.getLong(position, 0)).closeEntry(); } }
private static Block getRowNumberColumn(List<Page> pages) { BlockBuilder builder = BIGINT.createBlockBuilder(null, pages.size() * 100); for (Page page : pages) { int rowNumberChannel = page.getChannelCount() - 1; for (int i = 0; i < page.getPositionCount(); i++) { BIGINT.writeLong(builder, page.getBlock(rowNumberChannel).getLong(i, 0)); } } return builder.build(); }
private static void testFilter(DictionaryAwarePageFilter filter, Block block, boolean filterRange) { IntSet actualSelectedPositions = toSet(filter.filter(null, new Page(block))); block = block.getLoadedBlock(); IntSet expectedSelectedPositions = new IntArraySet(block.getPositionCount()); for (int position = 0; position < block.getPositionCount(); position++) { if (isSelected(filterRange, block.getLong(position, 0))) { expectedSelectedPositions.add(position); } } assertEquals(actualSelectedPositions, expectedSelectedPositions); }