[teiid-issues] [JBoss JIRA] (TEIID-3474) Inconsistent results of RIGHT function for different datasources
Steven Hawkins (JIRA)
issues at jboss.org
Wed May 13 08:29:19 EDT 2015
[ https://issues.jboss.org/browse/TEIID-3474?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13067650#comment-13067650 ]
Steven Hawkins commented on TEIID-3474:
---------------------------------------
Postgres - this is a bug in our compensation. We assume that the same logic that basically works for oracle, will work for postgresql. This is not true as pg doesn't like negative indexes in the substr function. We'll also update the logic so that when the source is version 9.1 and above, we'll use the right function directly.
Oracle - the negative indexing is apparently allowed to go beyond the first character, so we get null/empty results for strings that as smaller than the count. This will be addressed as well.
DB2 - this is a bug in DB2. Left with a char cast works just fine, as does right without a cast, but using right(char(val), count) just produces the wrong result. So we'll have to workaround that on our side.
> Inconsistent results of RIGHT function for different datasources
> ----------------------------------------------------------------
>
> Key: TEIID-3474
> URL: https://issues.jboss.org/browse/TEIID-3474
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 8.7.1.6_2
> Environment: OS: Fedora 20
> arch: x86_64
> java: oracle 1.8
> Reporter: Juraj Duráni
> Assignee: Steven Hawkins
>
> The RIGHT function returns different results for different datasources. Some of those results are inconsistent with definition of the RIGHT(x,y) function.
> =======
> +*Query: SELECT intkey, RIGHT(intkey, 1) FROM table ORDER BY intkey*+
> *Teradata, SQLServer, Sybase, Ingres, MySQL, Oracle (this result is OK):*
> 0 0
> 1 1
> 2 2
> ...
> 10 0
> 11 1
> ...
> 100 0
> 101 1
> *Postgres:*
> 0 0
> 1 1
> 2 2
> ...
> 10 10
> 11 11
> ...
> 100 100
> 101 101
> *DB2:*
> 0 " "
> 1 " "
> 2 " "
> ...
> 10 " "
> 11 " "
> ...
> 100 " "
> 101 " "
> =====
> +*Query:SELECT intkey, RIGHT(intkey, 2) FROM table ORDER BY intkey*+
> *SQLServer, Sybase, Ingress, MySQL, Teradata (this result is OK):*
> 0 0
> 1 1
> ...
> 10 10
> 11 11
> ...
> 100 00
> 101 01
> *Oracle:*
> 0 <null>
> 1 <null>
> 2 <null>
> ...
> 10 10
> 11 11
> ...
> 100 00
> 101 01
> *Postgres:*
> 0 0
> 1 1
> 2 2
> ...
> 10 10
> 11 11
> ...
> 100 100
> 101 101
> *DB2:*
> 0 " "
> 1 " "
> 2 " "
> ...
> 10 " "
> 11 " "
> ...
> 100 " "
> 101 " "
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
More information about the teiid-issues
mailing list