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

MongoDB: Usage of lookup() function throws an exception

    XMLWordPrintable

Details

    Description

      Exception[1] is thrown when function lookup() is used in SQL query.

      Mongo translator doesn't support selection of constants only, which causes the exception(select 1, select 'hi' from smalla).

      [1]  3:59:20,997 ERROR [org.teiid.CONNECTOR] (Worker5_QueryProcessorQueue6) Connector worker process failed for atomic-request=Ef2Z7E0246by.1.5.3: com.mongodb.CommandFailureException: { "serverUsed" : "localhost/127.0.0.1:27017" , "errmsg" : "exception: $projection requires at least one output field" , "code" : 16403 , "ok" : 0.0}
      	at com.mongodb.CommandResult.getException(CommandResult.java:71)
      

      Server log is in the attachment.

      Sample query:

      SELECT BQT1.SmallA.IntKey FROM BQT1.SmallA, BQT1.SmallB WHERE BQT1.SmallA.IntKey= lookup('BQT1.SmallB', 'IntKey', 'StringKey', BQT1.SmallA.StringKey) ORDER BY IntKey
      

      Generated mongo commands:

      { aggregate: "smalla", pipeline: [ { $project: { _m0: "$INTKEY", _m1: "$STRINGKEY" } } ] }
      

      and

      { aggregate: "smallb", pipeline: [ { $project: {} } ] }
      

      Attachments

        Activity

          People

            rhn-engineering-rareddy Ramesh Reddy
            felias_jira Filip Elias (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: