]
Steven Hawkins resolved TEIID-5806.
-----------------------------------
Resolution: Done
Updated the expression mapping visitor to only use an expression symbol when the incoming
symbol is not a properly named symbol. Also updated the alias generator to not use
expression symbols directly - as their notion of equality is based upon the symbol and not
the name.
Invalid select symbol name in source query
------------------------------------------
Key: TEIID-5806
URL:
https://issues.jboss.org/browse/TEIID-5806
Project: Teiid
Issue Type: Bug
Components: Query Engine
Reporter: Steven Hawkins
Assignee: Steven Hawkins
Priority: Major
Fix For: 12.3, 12.2.2
A set operation involving a nested view can result in expression symbols in the select
clause of the first union branch which cause the alias generator logic to not work
properly (as the expressions can collide) and place an unwanted projected symbol in the
select clause of the source query. This could look something like:
select v_0.c_0 ... v_0.actualName ...
This can be reproduced with:
{code}
create foreign table smalla (intkey integer, stringkey string);
create foreign table smallb (intkey integer, stringkey string);
create view inner_view as (select null as x, null as y from smalla);
{code}
and issuing the query:
{code}
select x, y FROM (select x, y, null as z from inner_view union select intkey, stringkey,
null from smallb) v LIMIT 99999
{code}
Note that the inner_view has two projected expressions with the same constant/null value.