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

PrestoDB translator - NULL values not supported in SemiJoin

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 9.2
    • 8.12.8.6_3
    • Query Engine
    • None

      PrestoDB does not allows NULL values in SemiJoin operator. It means, that query like [1] causes an exception [2]. However, this is disallowed in version 0.162 but worked in 0.161. According to GitHub issues [3], this will be fixed in one of the future versions of PrestoDB. Do we want to handle it somehow?
      Development and release frequency of PrestoDB seems to be pretty fast (new release every 2 or 3 week).

      [1] Query
      SELECT IntKey, ShortValue FROM BQT1.SmallA WHERE BQT1.SmallA.ShortValue IN (SELECT ShortValue FROM BQT1.SmallB)
      
      [2] Exception
      Unable to find source-code formatter for language: plain. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      org.teiid.jdbc.TeiidSQLException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 Source: Unexpected exception while translating results: Query failed (#20170110_072908_00117_gftb8): NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
      	at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135)
      ...
      Caused by: java.lang.RuntimeException: Remote com.facebook.presto.jdbc.internal.client.FailureInfo$FailureException: NULL values are not allowed on the probe side of SemiJoin operator. See the query plan for details.
      	at com.facebook.presto.operator.HashSemiJoinOperator.addInput(HashSemiJoinOperator.java:179)
      	at com.facebook.presto.operator.Driver.processInternal(Driver.java:384)
      	at com.facebook.presto.operator.Driver.processFor(Driver.java:301)
      	at com.facebook.presto.execution.SqlTaskExecution$DriverSplitRunner.processFor(SqlTaskExecution.java:622)
      	at com.facebook.presto.execution.TaskExecutor$PrioritizedSplitRunner.process(TaskExecutor.java:534)
      	at com.facebook.presto.execution.TaskExecutor$Runner.run(TaskExecutor.java:670)
      	... 3 more
      

      [3] https://github.com/prestodb/presto/issues/6991

              kylinsoong.1214@gmail.com Kylin Soong (Inactive)
              jdurani Juraj DurĂ¡ni (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: