[teiid-issues] [JBoss JIRA] (TEIID-5196) Osisoft Translator - Wrong data returned for some JOIN queries when integer and float columns are compared
Andrej Šmigala (JIRA)
issues at jboss.org
Tue Jan 9 10:20:00 EST 2018
[ https://issues.jboss.org/browse/TEIID-5196?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13511943#comment-13511943 ]
Andrej Šmigala commented on TEIID-5196:
---------------------------------------
[~rareddy] another option would be removing the cast altogether.
> Osisoft Translator - Wrong data returned for some JOIN queries when integer and float columns are compared
> ----------------------------------------------------------------------------------------------------------
>
> Key: TEIID-5196
> URL: https://issues.jboss.org/browse/TEIID-5196
> Project: Teiid
> Issue Type: Bug
> Components: JDBC Connector
> Affects Versions: 8.12.x-6.4
> Reporter: Andrej Šmigala
> Assignee: Ramesh Reddy
>
> When using equality comparison between an integer and float columns in a WHERE or ON clause, Teiid pushes it to Osisoft PI with both columns cast as double.
> There seems to be a bug in Osisoft PI which causes the non-positive float values in the result for such a query to be returned as NULL (or not at all).
> E.g.
> {code:sql|title=Teiid query}
> SELECT BQT1.MediumA.IntNum, BQT1.MediumB.FloatNum
> FROM BQT1.MediumA
> FULL JOIN BQT1.MediumB
> ON BQT1.MediumA.IntNum = BQT1.MediumB.FloatNum
> WHERE
> BQT1.MediumA.IntNum >= -10
> AND BQT1.MediumA.IntNum < 5
> AND (BQT1.MediumB.FloatNum >= -10
> AND BQT1.MediumB.FloatNum < 5)
> {code}
> is translated to
> {code:sql|title=Pushed Osisoft PI query}
> SELECT g_0.IntNum, g_1.FloatNum
> FROM dvqe..MediumA AS g_0, dvqe..MediumB AS g_1
> WHERE
> cast(g_0.IntNum AS Double) = cast(g_1.FloatNum AS Double)
> AND g_0.IntNum < 5
> AND g_1.FloatNum >= -10.0
> AND g_1.FloatNum < 5.0
> AND g_0.IntNum >= -10
> {code}
> which seems to be correct, but returns the wrong result:
> ||IntNum||FloatNum||
> |1|1|
> |2|2|
> |3|3|
> |4|4|
> Note that the only the positive values are returned, even though the criteria match also negative values (which are present in the source table).
> If the cast to double in the source query is removed (or replaced with cast to single), the query returns the expected results.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the teiid-issues
mailing list