]
Steven Hawkins resolved TEIID-5281.
-----------------------------------
Fix Version/s: 10.0.4
10.2
10.1.2
Resolution: Done
Updated the sql generation for concat and substring.
Issue with concatenating null strings with OData translator
-----------------------------------------------------------
Key: TEIID-5281
URL:
https://issues.jboss.org/browse/TEIID-5281
Project: Teiid
Issue Type: Bug
Components: OData
Affects Versions: 8.12.11.6_4
Reporter: Jan Martiska
Assignee: Steven Hawkins
Priority: Minor
Fix For: 10.0.4, 10.2, 10.1.2
There is a difference in behavior of {{CONCAT(x,y)}} function in Teiid SQL and the
{{concat(x,y)}} filtering function in OData - the SQL function will return null if one of
the arguments is null, but the OData function will return the non-null argument in this
case.
This leads to some peculiar behavior that for rows where A='10' and B=null, the
query
{noformat}
SELECT concat(A, B) = '10'
FROM BQT1.SmallA
WHERE concat(A, B) = '10';
{noformat}
will return a row containing {{false}}, because the expression in the SELECT clause will
be evaluated by Teiid, whereas the one in the WHERE clause will be evaluated by the OData
{{concat}} function.
This is against the documented behavior of Teiid's {{CONCAT}} function, because such
row should not be returned at all.