@Override public Object toObject(Object object, PDataType actualType) { Integer v = (Integer) PInteger.INSTANCE.toObject(object, actualType); throwIfNonNegativeNumber(v); return v; }
@Override public byte[] toBytes(Object object) { byte[] b = new byte[Bytes.SIZEOF_INT]; toBytes(object, b, 0); return b; }
@Override public int getResultSetSqlType() { return PInteger.INSTANCE.getResultSetSqlType(); }
@Override public int toBytes(Object object, byte[] b, int o) { if (object == null) { throw newIllegalDataException(this + " may not be null"); } return this.getCodec().encodeInt(((Number) object).intValue(), b, o); }
public void octetLength(byte[] bytes, int offset, int length, SortOrder sortOrder, ImmutableBytesWritable outPtr) { bytes = new byte[PInteger.INSTANCE.getByteSize()]; PInteger.INSTANCE.getCodec().encodeInt(length, bytes, 0); outPtr.set(bytes); }
@Override public Integer toObject(byte[] b, int o, int l, PDataType actualType, SortOrder sortOrder, Integer maxLength, Integer scale) { if (l == 0) { return null; } if (equalsAny(actualType, PLong.INSTANCE, PUnsignedLong.INSTANCE, PInteger.INSTANCE, PUnsignedInt.INSTANCE, PSmallint.INSTANCE, PUnsignedSmallint.INSTANCE, PTinyint.INSTANCE, PUnsignedTinyint.INSTANCE, PFloat.INSTANCE, PUnsignedFloat.INSTANCE, PDouble.INSTANCE, PUnsignedDouble.INSTANCE)) { return actualType.getCodec().decodeInt(b, o, sortOrder); } else if (actualType == PDecimal.INSTANCE) { BigDecimal bd = (BigDecimal) actualType.toObject(b, o, l, actualType, sortOrder); return bd.intValueExact(); } throwConstraintViolationException(actualType, this); return null; }
private void assertResult(List<KeyRange> result,int start,int end) { int expectStart=start; for(KeyRange rowKeyRange : result) { byte[] lowerRange=rowKeyRange.getLowerRange(); assertTrue(Bytes.equals(lowerRange, PInteger.INSTANCE.toBytes(expectStart))); byte[] upperRange=rowKeyRange.getUpperRange(); expectStart=((Integer)PInteger.INSTANCE.toObject(upperRange)).intValue()+1; } assertTrue(expectStart-1==end); }
@Override public boolean isCoercibleTo(PDataType targetType, Object value) { return super.isCoercibleTo(targetType, value) || PInteger.INSTANCE .isCoercibleTo(targetType, value); }
byte[] indexColumnDataTypeBytes = new byte[PInteger.INSTANCE.getByteSize()]; int indexColumnDataType = IndexUtil.getIndexColumnDataType(true, PDataType.fromTypeId(viewPkColumnDataType)).getSqlType(); PInteger.INSTANCE.getCodec().encodeInt(indexColumnDataType, indexColumnDataTypeBytes, 0); indexColumnDefinitionPut.addColumn(PhoenixDatabaseMetaData.TABLE_FAMILY_BYTES, PhoenixDatabaseMetaData.DATA_TYPE_BYTES, indexColumnDataTypeBytes); byte[] ordinalPositionBytes = new byte[PInteger.INSTANCE.getByteSize()]; int ordinalPositionOfNewCol = oldNumberOfColsInIndex + deltaNumPkColsSoFar; PInteger.INSTANCE.getCodec().encodeInt(ordinalPositionOfNewCol, ordinalPositionBytes, 0); indexColumnDefinitionPut.addColumn(PhoenixDatabaseMetaData.TABLE_FAMILY_BYTES, PhoenixDatabaseMetaData.ORDINAL_POSITION_BYTES, ordinalPositionBytes); byte[] isNullableBytes = PInteger.INSTANCE.toBytes(ResultSetMetaData.columnNullable); indexColumnDefinitionPut.addColumn(PhoenixDatabaseMetaData.TABLE_FAMILY_BYTES, PhoenixDatabaseMetaData.NULLABLE_BYTES, isNullableBytes);
private PIntegerArray() { super("INTEGER ARRAY", PDataType.ARRAY_TYPE_BASE + PInteger.INSTANCE.getSqlType(), PhoenixArray.class, null, 24); }
public static int getSaltBuckets(List<Mutation> tableMetaData, KeyValueBuilder builder, ImmutableBytesWritable value) { if (getMutationValue(getPutOnlyTableHeaderRow(tableMetaData), PhoenixDatabaseMetaData.SALT_BUCKETS_BYTES, builder, value)) { return PInteger.INSTANCE.getCodec().decodeInt(value, SortOrder.getDefault()); } return 0; }
@Override public Object getSampleValue(Integer maxLength, Integer arrayLength) { return ((Integer) PInteger.INSTANCE.getSampleValue(maxLength, arrayLength)) .byteValue(); }
private void doTestListIntersectWithOneResultRange(int start1,int end1,int step1,int start2,int end2,int step2,boolean addEmptyRange) throws Exception { List<KeyRange> rowKeyRanges1=new ArrayList<KeyRange>(); List<KeyRange> rowKeyRanges2=new ArrayList<KeyRange>(); for(int i=start1;i<=end1;i++) { rowKeyRanges1.add( PInteger.INSTANCE.getKeyRange(PInteger.INSTANCE.toBytes(i), true, PInteger.INSTANCE.toBytes(i+step1), true)); } if(addEmptyRange) { rowKeyRanges1.add(KeyRange.EMPTY_RANGE); } for(int i=start2;i<=end2;i++) { rowKeyRanges2.add( PInteger.INSTANCE.getKeyRange(PInteger.INSTANCE.toBytes(i), true, PInteger.INSTANCE.toBytes(i+step2), true)); } if(addEmptyRange) { rowKeyRanges2.add(KeyRange.EMPTY_RANGE); } int maxStart=Math.max(start1, start2); int minEnd=Math.min(end1+step1, end2+step2); List<KeyRange> expected=Arrays.asList(KeyRange.getKeyRange( PInteger.INSTANCE.toBytes(maxStart), true, PInteger.INSTANCE.toBytes(minEnd), true)); listIntersectAndAssert(rowKeyRanges1,rowKeyRanges2,expected); }
@Override public boolean isCoercibleTo(PDataType targetType) { return equalsAny(targetType, this, PFloat.INSTANCE) || PLong.INSTANCE.isCoercibleTo(targetType); }
+ PInteger.INSTANCE.getSqlTypeName(); try { metaConnection = addColumn(metaConnection, MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_10_0, PhoenixDatabaseMetaData.COLUMN_QUALIFIER_COUNTER + " " + PInteger.INSTANCE.getSqlTypeName()); ConnectionQueryServicesImpl.this.removeTable(null, PhoenixDatabaseMetaData.SYSTEM_CATALOG_NAME, null, MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_5_1_0, PhoenixDatabaseMetaData.VIEW_INDEX_ID_DATA_TYPE + " " + PInteger.INSTANCE.getSqlTypeName());
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { byte[] lengthBuf = new byte[PInteger.INSTANCE.getByteSize()]; PInteger.INSTANCE.getCodec().encodeInt(index + 1, lengthBuf, 0); ptr.set(lengthBuf); return true; }
@Test public void testInt() { Integer na = 4; byte[] b = PInteger.INSTANCE.toBytes(na); Integer nb = (Integer) PInteger.INSTANCE.toObject(b); assertEquals(na,nb); byte[] ba = PInteger.INSTANCE.toBytes(na); byte[] bb = PInteger.INSTANCE.toBytes(nb); assertTrue(Bytes.compareTo(ba, bb) > 0); ba = PInteger.INSTANCE.toBytes(na); bb = PInteger.INSTANCE.toBytes(nb); assertTrue(Bytes.compareTo(ba, bb) > 0); ba = PInteger.INSTANCE.toBytes(na); bb = PInteger.INSTANCE.toBytes(nb); assertTrue(Bytes.compareTo(ba, bb) > 0); Object obj = PInteger.INSTANCE.toObject(value, PLong.INSTANCE); assertTrue(obj instanceof Integer); assertEquals(100, ((Integer)obj).intValue()); Object unsignedFloatObj = PInteger.INSTANCE.toObject(unsignedFloatValue, PUnsignedFloat.INSTANCE); assertTrue(unsignedFloatObj instanceof Integer); assertEquals(100, ((Integer)unsignedFloatObj).intValue()); Object unsignedDoubleObj = PInteger.INSTANCE.toObject(unsignedDoubleValue, PUnsignedDouble.INSTANCE); assertTrue(unsignedDoubleObj instanceof Integer); assertEquals(100, ((Integer)unsignedDoubleObj).intValue());
@Override public boolean isCoercibleTo(PDataType targetType) { return this.equals(targetType) || PInteger.INSTANCE.isCoercibleTo(targetType); }
@Test public void testEvaluate() throws SQLException { Expression inputArg = LiteralExpression.newConstant( PInteger.INSTANCE.getSqlType(), PInteger.INSTANCE); Object returnValue = executeFunction(inputArg); assertEquals(Types.INTEGER, returnValue); }
@Override public Integer toObject(byte[] b, int o, int l, PDataType actualType, SortOrder sortOrder, Integer maxLength, Integer scale) { if (l == 0) { return null; } if (equalsAny(actualType, PLong.INSTANCE, PUnsignedLong.INSTANCE, PInteger.INSTANCE, PUnsignedInt.INSTANCE, PSmallint.INSTANCE, PUnsignedSmallint.INSTANCE, PTinyint.INSTANCE, PUnsignedTinyint.INSTANCE, PFloat.INSTANCE, PUnsignedFloat.INSTANCE, PDouble.INSTANCE, PUnsignedDouble.INSTANCE)) { return actualType.getCodec().decodeInt(b, o, sortOrder); } else if (actualType == PDecimal.INSTANCE) { BigDecimal bd = (BigDecimal) actualType.toObject(b, o, l, actualType, sortOrder); return bd.intValueExact(); } throwConstraintViolationException(actualType, this); return null; }