@Override public boolean isBytesComparableWith(PDataType otherType) { return equalsAny(this, otherType, PVarbinary.INSTANCE, PBinary.INSTANCE, PUnsignedTime.INSTANCE, PUnsignedDate.INSTANCE, PUnsignedLong.INSTANCE); }
private PUnsignedTimestampArray() { super("UNSIGNED_TIMESTAMP ARRAY", PDataType.ARRAY_TYPE_BASE + PUnsignedTimestamp.INSTANCE.getSqlType(), PhoenixArray.class, null, 37); }
@Override public Object toObject(Object object, PDataType actualType) { java.sql.Timestamp ts = (java.sql.Timestamp) super.toObject(object, actualType); throwIfNonNegativeDate(ts); return ts; }
@Test public void testTimestampToDateComparison() { long now = System.currentTimeMillis(); Timestamp ts1 = DateUtil.getTimestamp(now, 1111); final byte[] bytes1 = PTimestamp.INSTANCE.toBytes(ts1); Date ts2 = new Date(now); final byte[] bytes2 = PDate.INSTANCE.toBytes(ts2); assertTrue(PTimestamp.INSTANCE.compareTo(bytes1, 0, bytes1.length, SortOrder.getDefault(), bytes2, 0, bytes2.length, SortOrder.getDefault(), PDate.INSTANCE) > 0); Timestamp ts3 = DateUtil.getTimestamp(now, 0); final byte[] bytes3 = PTimestamp.INSTANCE.toBytes(ts3); assertTrue(PTimestamp.INSTANCE.compareTo(bytes3, 0, bytes3.length, SortOrder.getDefault(), bytes2, 0, bytes2.length, SortOrder.getDefault(), PDate.INSTANCE) == 0); Timestamp ts4 = DateUtil.getTimestamp(now, 0); final byte[] bytes4 = PUnsignedTimestamp.INSTANCE.toBytes(ts4); assertTrue(PUnsignedTimestamp.INSTANCE.compareTo(bytes4, 0, bytes4.length, SortOrder.getDefault(), bytes2, 0, bytes2.length, SortOrder.getDefault(), PDate.INSTANCE) == 0); }
@Test public void testGetResultSetSqlType() { assertEquals(Types.INTEGER, PInteger.INSTANCE.getResultSetSqlType()); assertEquals(Types.INTEGER, PUnsignedInt.INSTANCE.getResultSetSqlType()); assertEquals(Types.BIGINT, PLong.INSTANCE.getResultSetSqlType()); assertEquals(Types.BIGINT, PUnsignedLong.INSTANCE.getResultSetSqlType()); assertEquals(Types.SMALLINT, PSmallint.INSTANCE.getResultSetSqlType()); assertEquals(Types.SMALLINT, PUnsignedSmallint.INSTANCE.getResultSetSqlType()); assertEquals(Types.TINYINT, PTinyint.INSTANCE.getResultSetSqlType()); assertEquals(Types.TINYINT, PUnsignedTinyint.INSTANCE.getResultSetSqlType()); assertEquals(Types.FLOAT, PFloat.INSTANCE.getResultSetSqlType()); assertEquals(Types.FLOAT, PUnsignedFloat.INSTANCE.getResultSetSqlType()); assertEquals(Types.DOUBLE, PDouble.INSTANCE.getResultSetSqlType()); assertEquals(Types.DOUBLE, PUnsignedDouble.INSTANCE.getResultSetSqlType()); assertEquals(Types.DATE, PDate.INSTANCE.getResultSetSqlType()); assertEquals(Types.DATE, PUnsignedDate.INSTANCE.getResultSetSqlType()); assertEquals(Types.TIME, PTime.INSTANCE.getResultSetSqlType()); assertEquals(Types.TIME, PUnsignedTime.INSTANCE.getResultSetSqlType()); assertEquals(Types.TIMESTAMP, PTimestamp.INSTANCE.getResultSetSqlType()); assertEquals(Types.TIMESTAMP, PUnsignedTimestamp.INSTANCE.getResultSetSqlType()); // Check that all array types are defined as java.sql.Types.ARRAY for (PDataType dataType : PDataType.values()) { if (dataType.isArrayType()) { assertEquals("Wrong datatype for " + dataType, Types.ARRAY, dataType.getResultSetSqlType()); } } }
private PUnsignedTimestampArray() { super("UNSIGNED_TIMESTAMP ARRAY", PDataType.ARRAY_TYPE_BASE + PUnsignedTimestamp.INSTANCE.getSqlType(), PhoenixArray.class, null, 37); }
@Override public Object toObject(Object object, PDataType actualType) { java.sql.Timestamp ts = (java.sql.Timestamp) super.toObject(object, actualType); throwIfNonNegativeDate(ts); return ts; }
@Override public boolean isBytesComparableWith(PDataType otherType) { return equalsAny(this, otherType, PVarbinary.INSTANCE, PBinary.INSTANCE, PUnsignedTime.INSTANCE, PUnsignedDate.INSTANCE, PUnsignedLong.INSTANCE); }
private PUnsignedTimestampArray() { super("UNSIGNED_TIMESTAMP ARRAY", PDataType.ARRAY_TYPE_BASE + PUnsignedTimestamp.INSTANCE.getSqlType(), PhoenixArray.class, null, 37); }
@Override public Object toObject(Object object, PDataType actualType) { java.sql.Timestamp ts = (java.sql.Timestamp) super.toObject(object, actualType); throwIfNonNegativeDate(ts); return ts; }
@Override public boolean isBytesComparableWith(PDataType otherType) { return equalsAny(this, otherType, PVarbinary.INSTANCE, PBinary.INSTANCE, PUnsignedTime.INSTANCE, PUnsignedDate.INSTANCE, PUnsignedLong.INSTANCE); }