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
SELECT concat(A, B) = '10' FROM BQT1.SmallA WHERE concat(A, B) = '10';
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.