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

Couchbase SUBSTRING function returns null when reaches end of string

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • 8.12.11.6_4
    • Misc. Connectors
    • None

      Couchbase return null when y points after the string end in SUBSTRING(VALUE, x, y). That's not what is expected from Teiid.
      Teiid:

      query1
      SELECT SUBSTRING('49',1, 10)
      
      expr1
      49

      Couchbase pushdown:

      query2
      SELECT SUBSTRING(BQT1.SmallA.intkey, 1, 10) FROM BQT1.SmallA WHERE IntKey=49
      
      expr1
      <null>
      teiid-command.log
      16:18:57,156 INFO  [org.teiid.COMMAND_LOG] (New I/O worker #2) QE2ZpDa/Btt5     START USER COMMAND: startTime=2017-08-24 16:18:57.156       requestID=QE2ZpDa/Btt5.124    txID=null sessionID=QE2ZpDa/Btt5        applicationName=JDBC          principal=user@teiid-security vdbName=couchbase   vdbVersion=1        sql=SELECT SUBSTRING(BQT1.SmallA.intkey, 1, 10) FROM BQT1.SmallA WHERE IntKey=49
      16:18:57,160 DEBUG [org.teiid.COMMAND_LOG] (Worker39_QueryProcessorQueue353) QE2ZpDa/Btt5           START DATA SRC COMMAND:       startTime=2017-08-24 16:18:57.16        requestID=QE2ZpDa/Btt5.124    sourceCommandID=0   executionID=85      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=QE2ZpDa/Btt5        principal=user@teiid-security sql=SELECT SUBSTRING(convert(Couchbase_small.SmallA.IntKey, string), 1, 10) FROM Couchbase_small.SmallA WHERE Couchbase_small.SmallA.IntKey = 49
      16:18:57,160 DEBUG [org.teiid.COMMAND_LOG] (Worker39_QueryProcessorQueue353) QE2ZpDa/Btt5           SOURCE SRC COMMAND: endTime=2017-08-24 16:18:57.16          requestID=QE2ZpDa/Btt5.124    sourceCommandID=0   executionID=85      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=QE2ZpDa/Btt5        principal=user@teiid-security sourceCommand=[SELECT SUBSTR(TOSTRING(`$cb_c1_IntKey`), 1, 10) FROM `dvqe_small` `$cb_t1` LET `$cb_c1_IntKey` = `$cb_t1`.`IntKey` WHERE `$cb_c1_IntKey` = 49 AND `$cb_t1`.`type` = 'SmallA']
      16:18:57,449 DEBUG [org.teiid.COMMAND_LOG] (Worker38_QueryProcessorQueue354) QE2ZpDa/Btt5           END SRC COMMAND:    endTime=2017-08-24 16:18:57.449         requestID=QE2ZpDa/Btt5.124    sourceCommandID=0   executionID=85      txID=null modelName=Couchbase_small     translatorName=couchbase      sessionID=QE2ZpDa/Btt5        principal=user@teiid-security finalRowCount=1     cpuTime(ns)=1213042
      16:18:57,456 INFO  [org.teiid.COMMAND_LOG] (Worker38_QueryProcessorQueue355) QE2ZpDa/Btt5           END USER COMMAND:   endTime=2017-08-24 16:18:57.456         requestID=QE2ZpDa/Btt5.124    txID=null sessionID=QE2ZpDa/Btt5        principal=user@teiid-security vdbName=couchbase   vdbVersion=1        finalRowCount=1
      

            rhn-engineering-shawkins Steven Hawkins
            jstastny@redhat.com Jan Stastny
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: