You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafodion.apache.org by "David Wayne Birdsall (JIRA)" <ji...@apache.org> on 2018/04/30 21:12:00 UTC

[jira] [Created] (TRAFODION-3051) Results of string functions may change slightly if argument is in a join predicate

David Wayne Birdsall created TRAFODION-3051:
-----------------------------------------------

             Summary: Results of string functions may change slightly if argument is in a join predicate
                 Key: TRAFODION-3051
                 URL: https://issues.apache.org/jira/browse/TRAFODION-3051
             Project: Apache Trafodion
          Issue Type: Bug
          Components: sql-cmp
    Affects Versions: 2.3
            Reporter: David Wayne Birdsall
            Assignee: David Wayne Birdsall


The following script demonstrates the problem.

?section setup

drop table if exists t1;

drop table if exists t2;

create table t1 (a int not null, b varchar(10), primary key (a));

create table t2 (x int not null, y varchar(8), primary key (x));

insert into t1 values (1,'ab');

insert into t2 values (2,'ab ');

?section testit

select a,b,x,y,char_length(b),char_length(y) from t1 join t2 on b = y;

cqd comp_bool_158 'off';

select a,b,x,y,char_length(b),char_length(y) from t1 join t2 on b = y;

With the fix for Jira TRAFODION-3050, the first query returns 2 for each of char_length(b) and char_length(y). This is because the compiler thinks it can freely substitute b for y because of the equi-join predicate. When we turn comp_bool_158 'off', however, the compiler no longer does this and we get 2 and 3 for char_length(b) and char_length(y) respectively. So, the workaround for such examples is to set cqd comp_bool_158 'off'.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)