@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = DateType.DATE.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { DateType.DATE.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Override public Block[] getSequenceBlocks(int start, int length) { BlockBuilder blockBuilder = DateType.DATE.createBlockBuilder(null, length); for (int i = start; i < start + length; i++) { DateType.DATE.writeLong(blockBuilder, i); } return new Block[] {blockBuilder.build()}; }
@Test void testDateBlock() { BlockBuilder blockBuilder = DATE.createBlockBuilder(null, 2); DATE.writeLong(blockBuilder, 13); DATE.writeLong(blockBuilder, 42); Block block = blockBuilder.build(); // time zone is not used for dates TemporalFunction temporalFunction = new TemporalFunction(PST); assertEquals(temporalFunction.getDay(DATE, block, 0), 13); assertEquals(temporalFunction.getDay(DATE, block, 1), 42); }
@ScalarFunction("sequence") @SqlType("array(date)") public static Block sequenceDateYearToMonth( ConnectorSession session, @SqlType(StandardTypes.DATE) long start, @SqlType(StandardTypes.DATE) long stop, @SqlType(StandardTypes.INTERVAL_YEAR_TO_MONTH) long step) { checkValidStep(start, stop, step); int length = toIntExact(diffDate(session, MONTH, start, stop) / step + 1); checkMaxEntry(length); BlockBuilder blockBuilder = DATE.createBlockBuilder(null, length); int value = 0; for (int i = 0; i < length; ++i) { DATE.writeLong(blockBuilder, DateTimeOperators.datePlusIntervalYearToMonth(start, value)); value += step; } return blockBuilder.build(); }
@ScalarFunction("sequence") @SqlType("array(date)") public static Block sequenceDateYearToMonth( ConnectorSession session, @SqlType(StandardTypes.DATE) long start, @SqlType(StandardTypes.DATE) long stop, @SqlType(StandardTypes.INTERVAL_YEAR_TO_MONTH) long step) { checkValidStep(start, stop, step); int length = toIntExact(diffDate(session, MONTH, start, stop) / step + 1); checkMaxEntry(length); BlockBuilder blockBuilder = DATE.createBlockBuilder(null, length); int value = 0; for (int i = 0; i < length; ++i) { DATE.writeLong(blockBuilder, DateTimeOperators.datePlusIntervalYearToMonth(start, value)); value += step; } return blockBuilder.build(); }
public static Block createTestBlock() { BlockBuilder blockBuilder = DATE.createBlockBuilder(null, 15); DATE.writeLong(blockBuilder, 1111); DATE.writeLong(blockBuilder, 1111); DATE.writeLong(blockBuilder, 1111); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 3333); DATE.writeLong(blockBuilder, 3333); DATE.writeLong(blockBuilder, 4444); return blockBuilder.build(); }
public static Block createTestBlock() { BlockBuilder blockBuilder = DATE.createBlockBuilder(null, 15); DATE.writeLong(blockBuilder, 1111); DATE.writeLong(blockBuilder, 1111); DATE.writeLong(blockBuilder, 1111); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 2222); DATE.writeLong(blockBuilder, 3333); DATE.writeLong(blockBuilder, 3333); DATE.writeLong(blockBuilder, 4444); return blockBuilder.build(); }