]
RH Bugzilla Integration commented on TEIID-2990:
------------------------------------------------
Filip Elias <felias(a)redhat.com> changed the Status of [bug
MongoDB: Usage of lookup() function throws an exception
-------------------------------------------------------
Key: TEIID-2990
URL:
https://issues.jboss.org/browse/TEIID-2990
Project: Teiid
Issue Type: Bug
Components: Misc. Connectors
Affects Versions: 8.4.1
Reporter: Filip Elias
Assignee: Ramesh Reddy
Labels: Beta1
Fix For: 8.8, 8.7.1
Attachments: server.log
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).
{code}
[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)
{code}
Server log is in the attachment.
Sample query:
{code}
SELECT BQT1.SmallA.IntKey FROM BQT1.SmallA, BQT1.SmallB WHERE BQT1.SmallA.IntKey=
lookup('BQT1.SmallB', 'IntKey', 'StringKey',
BQT1.SmallA.StringKey) ORDER BY IntKey
{code}
Generated mongo commands:
{code}
{ aggregate: "smalla", pipeline: [ { $project: { _m0: "$INTKEY", _m1:
"$STRINGKEY" } } ] }
{code}
and
{code}
{ aggregate: "smallb", pipeline: [ { $project: {} } ] }
{code}