Maksim Zhuk created PHOENIX-3470:
------------------------------------

             Summary: Boolean values discrepancy with HBase byte format
                 Key: PHOENIX-3470
                 URL: https://issues.apache.org/jira/browse/PHOENIX-3470
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 4.8.0
            Reporter: Maksim Zhuk
             Fix For: verify


There's an inconsstency between Phoenix and Hbase in handling boolean "true" in 
byte format.
[Phoenix|https://phoenix.apache.org/language/datatypes.html#boolean_type] - 
"The binary representation is a single byte with 0 for false and 1 for true"
[HBase|https://hbase.apache.org/apidocs/src-html/org/apache/hadoop/hbase/util/Bytes.html#line.739]
 - "True becomes -1 and false becomes 0"


{code:title=org.apache.hadoop.hbase.util.Bytes|borderStyle=solid}
  /**
   * Convert a boolean to a byte array. True becomes -1
   * and false becomes 0.
   *
   * @param b value
   * @return <code>b</code> encoded in a byte array.
   */
  public static byte [] toBytes(final boolean b) {
    return new byte[] { b ? (byte) -1 : (byte) 0 };
  }
{code}


When Phoenix metadata is applied over the existing HBase table this causes 
issues for queries like "... WHERE FIELD=TRUE ..." not finding any results.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to