public static boolean isMultiTenant(Mutation m, KeyValueBuilder builder, ImmutableBytesWritable ptr) { if (getMutationValue(m, PhoenixDatabaseMetaData.MULTI_TENANT_BYTES, builder, ptr)) { return Boolean.TRUE.equals(PBoolean.INSTANCE.toObject(ptr)); } return false; }
public static void addRowKeyOrderOptimizableCell(List<Mutation> tableMetadata, byte[] tableHeaderRowKey, long clientTimeStamp) { Put put = new Put(tableHeaderRowKey, clientTimeStamp); put.addColumn(PhoenixDatabaseMetaData.TABLE_FAMILY_BYTES, MetaDataEndpointImpl.ROW_KEY_ORDER_OPTIMIZABLE_BYTES, PBoolean.INSTANCE.toBytes(true)); tableMetadata.add(put); }
private PBooleanArray() { super("BOOLEAN ARRAY", PDataType.ARRAY_TYPE_BASE + PBoolean.INSTANCE.getSqlType(), PhoenixArray.class, null, 25); }
@Override public Object toObject(Object object, PDataType actualType) { if (actualType == this || object == null) { return object; } if (actualType == PVarbinary.INSTANCE || actualType == PBinary.INSTANCE) { byte[] bytes = (byte[]) object; return toObject(bytes, 0, bytes.length); } if (actualType == PDecimal.INSTANCE) { return ((BigDecimal) object).equals(BigDecimal.ZERO) ? Boolean.FALSE : Boolean.TRUE; } return throwConstraintViolationException(actualType, this); }
@Override public Boolean toObject(byte[] bytes, int offset, int length, PDataType actualType, SortOrder sortOrder, Integer maxLength, Integer scale) { Preconditions.checkNotNull(sortOrder); if (length == 0) { return null; } if (actualType == this) { if (length > 1) { throw newIllegalDataException("BOOLEAN may only be a single byte"); } return ((bytes[offset] == FALSE_BYTE ^ sortOrder == SortOrder.DESC) ? Boolean.FALSE : Boolean.TRUE); } else if (actualType == PDecimal.INSTANCE) { // false translated to the ZERO_BYTE return sortOrder == SortOrder.DESC ? SortOrder.invert(bytes[offset]) != ZERO_BYTE : bytes[offset] != ZERO_BYTE; } throwConstraintViolationException(actualType, this); return null; }
@Test public void booleanLogic() { assertTrue(PBoolean.INSTANCE.toObject(PDataType.TRUE_BYTES, SortOrder.ASC) == PBoolean.INSTANCE.toObject( PDataType.FALSE_BYTES, SortOrder.DESC)); assertTrue( PBoolean.INSTANCE.toObject(PBoolean.INSTANCE.toBytes(true), SortOrder.ASC) == PBoolean.INSTANCE.toObject( PBoolean.INSTANCE.toBytes(false), SortOrder.DESC)); assertTrue( PBoolean.INSTANCE.toObject(PBoolean.INSTANCE.toBytes(true,SortOrder.ASC)) == PBoolean.INSTANCE.toObject( PBoolean.INSTANCE.toBytes(false,SortOrder.DESC))); assertFalse(PBoolean.INSTANCE.toObject(PDataType.FALSE_BYTES, SortOrder.ASC) == PBoolean.INSTANCE.toObject(PDataType.FALSE_BYTES, SortOrder.DESC)); assertFalse( PBoolean.INSTANCE.toObject(PBoolean.INSTANCE.toBytes(false), SortOrder.ASC) == PBoolean.INSTANCE.toObject( PBoolean.INSTANCE.toBytes(false), SortOrder.DESC)); assertFalse( PBoolean.INSTANCE.toObject(PBoolean.INSTANCE.toBytes(false,SortOrder.ASC)) == PBoolean.INSTANCE.toObject( PBoolean.INSTANCE.toBytes(false,SortOrder.DESC))); }
@Override public int toBytes(Object object, byte[] bytes, int offset) { if (object == null) { // TODO: review - return null? throw newIllegalDataException(this + " may not be null"); } bytes[offset] = ((Boolean) object).booleanValue() ? TRUE_BYTE : FALSE_BYTE; return BOOLEAN_LENGTH; }
public static boolean isBooleanNull(Expression child) { if (child!=null) { return child == TYPED_NULL_EXPRESSIONS[PBoolean.INSTANCE.ordinal()+PDataType.values().length*child.getDeterminism().ordinal()]; } return false; }
+ " " + PBoolean.INSTANCE.getSqlTypeName()); try (Admin admin = getAdmin()) { List<TableDescriptor> localIndexTables = + PBoolean.INSTANCE.getSqlTypeName(); metaConnection = addColumnsIfNotExists(metaConnection, PhoenixDatabaseMetaData.SYSTEM_CATALOG, MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_7_0 - 3, PhoenixDatabaseMetaData.TRANSACTIONAL + " " + PBoolean.INSTANCE.getSqlTypeName()); metaConnection = addColumnsIfNotExists( metaConnection, MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_8_0 - 2, PhoenixDatabaseMetaData.IS_NAMESPACE_MAPPED + " " + PBoolean.INSTANCE.getSqlTypeName()); metaConnection = addColumnsIfNotExists( metaConnection, MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_8_0, PhoenixDatabaseMetaData.APPEND_ONLY_SCHEMA + " " + PBoolean.INSTANCE.getSqlTypeName()); metaConnection = UpgradeUtil.disableViewIndexes(metaConnection); if (getProps().getBoolean(QueryServices.LOCAL_INDEX_CLIENT_UPGRADE_ATTRIB, MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP_4_11_0, PhoenixDatabaseMetaData.USE_STATS_FOR_PARALLELIZATION + " " + PBoolean.INSTANCE.getSqlTypeName());
@Override public Expression visitLeave(NotParseNode node, List<Expression> children) throws SQLException { ParseNode childNode = node.getChildren().get(0); Expression child = children.get(0); if (!PBoolean.INSTANCE.isCoercibleTo(child.getDataType())) { throw TypeMismatchException.newException(PBoolean.INSTANCE, child.getDataType(), node.toString()); } if (childNode instanceof BindParseNode) { // TODO: valid/possibe? context.getBindManager().addParamMetaData((BindParseNode)childNode, child); } return wrapGroupByExpression(NotExpression.create(child, context.getTempPtr())); }
@Test public void testBoolean() { byte[] bytes = PBoolean.INSTANCE.toBytes(Boolean.TRUE); assertEquals(1, bytes[0]); bytes = PBoolean.INSTANCE.toBytes(Boolean.FALSE); assertEquals(0, bytes[0]); bytes = PBoolean.INSTANCE.toBytes(Boolean.TRUE, SortOrder.DESC); assertEquals(0, bytes[0]); bytes = PBoolean.INSTANCE.toBytes(Boolean.FALSE, SortOrder.DESC); assertEquals(1, bytes[0]); Object b = PBoolean.INSTANCE.toObject(bytes, 0, bytes.length, PDecimal.INSTANCE, SortOrder.ASC); assertEquals(true, b); b = PBoolean.INSTANCE.toObject(bytes, 0, bytes.length, PDecimal.INSTANCE, SortOrder.ASC); assertEquals(false, b); b = PBoolean.INSTANCE.toObject(bytes, 0, bytes.length, PDecimal.INSTANCE, SortOrder.DESC); assertEquals(true, b); b = PBoolean.INSTANCE.toObject(bytes, 0, bytes.length, PDecimal.INSTANCE, SortOrder.DESC); assertEquals(false, b);
@Override public Object toObject(Object object, PDataType actualType) { if (actualType == this || object == null) { return object; } if (actualType == PVarbinary.INSTANCE || actualType == PBinary.INSTANCE) { byte[] bytes = (byte[]) object; return toObject(bytes, 0, bytes.length); } if (actualType == PDecimal.INSTANCE) { return ((BigDecimal) object).equals(BigDecimal.ZERO) ? Boolean.FALSE : Boolean.TRUE; } return throwConstraintViolationException(actualType, this); }
@Override public Boolean toObject(byte[] bytes, int offset, int length, PDataType actualType, SortOrder sortOrder, Integer maxLength, Integer scale) { Preconditions.checkNotNull(sortOrder); if (length == 0) { return null; } if (actualType == this) { if (length > 1) { throw newIllegalDataException("BOOLEAN may only be a single byte"); } return ((bytes[offset] == FALSE_BYTE ^ sortOrder == SortOrder.DESC) ? Boolean.FALSE : Boolean.TRUE); } else if (actualType == PDecimal.INSTANCE) { // false translated to the ZERO_BYTE return sortOrder == SortOrder.DESC ? SortOrder.invert(bytes[offset]) != ZERO_BYTE : bytes[offset] != ZERO_BYTE; } throwConstraintViolationException(actualType, this); return null; }
@Override public byte[] toBytes(Object object) { if (object == null) { // TODO: review - return null? throw newIllegalDataException(this + " may not be null"); } return ((Boolean) object).booleanValue() ? TRUE_BYTES : FALSE_BYTES; }
public static boolean isBooleanFalseOrNull(Expression child) { if (child!=null) { return child == BOOLEAN_EXPRESSIONS[child.getDeterminism().ordinal()] || child == TYPED_NULL_EXPRESSIONS[PBoolean.INSTANCE.ordinal()+PDataType.values().length*child.getDeterminism().ordinal()]; } return false; }
+ PLong.INSTANCE.getSqlTypeName() + ", " + PhoenixDatabaseMetaData.CYCLE_FLAG + " " + PBoolean.INSTANCE.getSqlTypeName() + ", " + PhoenixDatabaseMetaData.LIMIT_REACHED_FLAG + " " + PBoolean.INSTANCE.getSqlTypeName(); addColumnsIfNotExists(metaConnection, PhoenixDatabaseMetaData.SYSTEM_CATALOG, MetaDataProtocol.MIN_SYSTEM_TABLE_TIMESTAMP, columnsToAdd);
@Override public Expression visitLeave(NotParseNode node, List<Expression> children) throws SQLException { ParseNode childNode = node.getChildren().get(0); Expression child = children.get(0); if (!PBoolean.INSTANCE.isCoercibleTo(child.getDataType())) { throw TypeMismatchException.newException(PBoolean.INSTANCE, child.getDataType(), node.toString()); } if (childNode instanceof BindParseNode) { // TODO: valid/possibe? context.getBindManager().addParamMetaData((BindParseNode)childNode, child); } return wrapGroupByExpression(NotExpression.create(child, context.getTempPtr())); }
public static boolean isTransactional(Mutation m, KeyValueBuilder builder, ImmutableBytesWritable ptr) { if (getMutationValue(m, PhoenixDatabaseMetaData.TRANSACTIONAL_BYTES, builder, ptr)) { return Boolean.TRUE.equals(PBoolean.INSTANCE.toObject(ptr)); } return false; }
Put put = new Put(tableKey, ts); put.addColumn(QueryConstants.DEFAULT_COLUMN_FAMILY_BYTES, PhoenixDatabaseMetaData.IS_NAMESPACE_MAPPED_BYTES, PBoolean.INSTANCE.toBytes(Boolean.TRUE)); metatable.put(put);