Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-3623

HBase translator - boolean and biginteger values are not translated correctly

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 8.7.1.6_2, 8.12
    • 8.7.1.6_2
    • None
    • None

      1. Boolean values: The Teiid translates the value true/false as 1/0, but HBase does not support integer representation of boolean values [1].

      2. BigInteger values ( <= -2): Teiid's bigInteger data type is wider than HBase's bigint (as wide as long) type, so it make sense to define column in HBase as e.g. decimal(30,0) and map it to Teiid's biginteger type.
      From Teiid's point of view: There is no problem if inserted value is greater than or equal to -1. But if the value is less than -1, then a ClassCastException is thrown [2]. Phoenix driver require something like "UPSERT INTO smalla (intkey, bigintegervalue) VALUES (1, -10 .0)"

      [1]
      Query: insert into hbase.smalla (intkey, booleanvalue) values (55, true)
      Column definition:

      • source: booleanvalue boolean
      • VDB: BooleanValue boolean OPTIONS (nameinsource 'booleanvalue', NATIVE_TYPE 'boolean')

      Stack trace:
      insert_boolean.log

      [2]
      Query: insert into hbase.smalla (intkey, bigintegervalue) values (55, -10)
      Column definition:

      • source: bigintegervalue decimal(20,0)
      • VDB: BigIntegerValue biginteger OPTIONS (nameinsource 'bigintegervalue', NATIVE_TYPE 'decimal')

      Stack trace:
      insert_biginteger.log

        1. inser_boolean.log
          6 kB
          Juraj Duráni
        2. insert_biginteger.log
          9 kB
          Juraj Duráni

              rhn-engineering-shawkins Steven Hawkins
              jdurani Juraj Duráni (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: