]
Ramesh Reddy resolved TEIID-2987.
---------------------------------
Labels: Beta1 (was: )
Resolution: Done
Functions and Aggregate functions will not be supported in the $match phase in the
MongoDB. They need to be pushed as projected columns, then do a $match on the computed
value.
What was occurring before was, the $match phase was being added correctly but implicit
adding the functions to $project were not being added. Also note that since these are
being placed on project then match the performance will not as good as others
MongoDB: No rows are returned when a function is used in a where
clause
-----------------------------------------------------------------------
Key: TEIID-2987
URL:
https://issues.jboss.org/browse/TEIID-2987
Project: Teiid
Issue Type: Bug
Components: Misc. Connectors
Affects Versions: 8.4.1
Environment: Teiid 8.4.1
Reporter: Filip Elias
Assignee: Ramesh Reddy
Labels: Beta1
Fix For: 8.7.1, 8.8
Teiid will return no rows when a function which is pushed down is used in a where
clause.
These queries should return few rows, but the result is empty:
Query:
{code}
SELECT intkey, stringnum FROM BQT1.SmallA WHERE concat(stringkey, stringnum) =
'7-17' ORDER BY intkey
{code}
Generated mongo command:
{code}
{aggregate: "smalla", pipeline: [ { $match: { _m0: "7-17" } }, {
$project: { c_0: "$INTKEY", c_1: "$STRINGNUM" } }, { $sort: { c_0: 1 }
} ] }
{code}
Query:
{code}
select intKey from bqt1.smalla where intKey+intKey >20
{code}
Generated mongo command:
{code}
{aggregate: "smalla", pipeline: [ { $match: { _m0: { $gt: 20 } } }, { $project:
{ _m1: "$INTKEY" } } ] }
{code}