Change TestingIdType to use LongArrayBlock
Extracted-From:
@@ -15,26 +15,24 @@ package com.facebook.presto.spi.type;
import com.facebook.presto.spi.ConnectorSession;
import com.facebook.presto.spi.block.Block;
-import com.facebook.presto.spi.block.BlockBuilder;
import static com.facebook.presto.spi.type.TypeSignature.parseTypeSignature;
-import static io.airlift.slice.SizeOf.SIZE_OF_LONG;
public class TestingIdType
- extends AbstractFixedWidthType
+ extends AbstractLongType
{
public static final TestingIdType ID = new TestingIdType();
public static final String NAME = "id";
private TestingIdType()
{
- super(parseTypeSignature(NAME), long.class, SIZE_OF_LONG);
+ super(parseTypeSignature(NAME));
}
@Override
- public boolean isComparable()
+ public boolean isOrderable()
{
- return true;
+ return false;
}
@Override
@@ -48,39 +46,15 @@ public class TestingIdType
}
@Override
- public boolean equalTo(Block leftBlock, int leftPosition, Block rightBlock, int rightPosition)
+ @SuppressWarnings("EqualsWhichDoesntCheckParameterClass")
+ public boolean equals(Object other)
{
- long leftValue = leftBlock.getLong(leftPosition, 0);
- long rightValue = rightBlock.getLong(rightPosition, 0);
- return leftValue == rightValue;
+ return other == ID;
}
@Override
- public long hash(Block block, int position)
+ public int hashCode()
{
- return 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();
- }
- }
-
- @Override
- public long getLong(Block block, int position)
- {
- return block.getLong(position, 0);
- }
-
- @Override
- public void writeLong(BlockBuilder blockBuilder, long value)
- {
- blockBuilder.writeLong(value).closeEntry();
+ return getClass().hashCode();
}
}
