public static Block createTestBlock() { BlockBuilder blockBuilder = INTERVAL_YEAR_MONTH.createBlockBuilder(null, 15); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 1111); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 1111); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 1111); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 2222); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 2222); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 2222); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 2222); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 2222); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 3333); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 3333); INTERVAL_YEAR_MONTH.writeLong(blockBuilder, 4444); return blockBuilder.build(); }
@OutputFunction(StandardTypes.INTERVAL_YEAR_TO_MONTH) public static void output(LongAndDoubleState state, BlockBuilder out) { long count = state.getLong(); if (count == 0) { out.appendNull(); } else { double value = state.getDouble(); INTERVAL_YEAR_MONTH.writeLong(out, round(value / count)); } } }
return new SqlIntervalDayTime(IntervalDayTime.parseMillis(String.valueOf(value))); else if (INTERVAL_YEAR_MONTH.equals(type)) { return new SqlIntervalYearMonth(IntervalYearMonth.parseMonths(String.valueOf(value)));
@SqlType(StandardTypes.BOOLEAN) public static boolean isDistinctFrom( @BlockPosition @SqlType(value = StandardTypes.INTERVAL_YEAR_TO_MONTH, nativeContainerType = long.class) Block left, @BlockIndex int leftPosition, @BlockPosition @SqlType(value = StandardTypes.INTERVAL_YEAR_TO_MONTH, nativeContainerType = long.class) Block right, @BlockIndex int rightPosition) { if (left.isNull(leftPosition) != right.isNull(rightPosition)) { return true; } if (left.isNull(leftPosition)) { return false; } return notEqual(INTERVAL_YEAR_MONTH.getLong(left, leftPosition), INTERVAL_YEAR_MONTH.getLong(right, rightPosition)); } }
return new SqlIntervalDayTime(IntervalDayTime.parseMillis(String.valueOf(value))); else if (INTERVAL_YEAR_MONTH.equals(type)) { return new SqlIntervalYearMonth(IntervalYearMonth.parseMonths(String.valueOf(value)));
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = INTERVAL_YEAR_MONTH.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { INTERVAL_YEAR_MONTH.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = INTERVAL_YEAR_MONTH.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { INTERVAL_YEAR_MONTH.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }