[teiid-issues] [JBoss JIRA] (TEIID-4732) Teiid Server does not honor columns name in external materialization

Steven Hawkins (JIRA) issues at jboss.org
Tue Jan 31 09:15:01 EST 2017


    [ https://issues.jboss.org/browse/TEIID-4732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13355609#comment-13355609 ] 

Steven Hawkins commented on TEIID-4732:
---------------------------------------

This was addressed by TEIID-4641 when the usage of SELECT * was removed from the SYSADMIN procedure logic for the insert.  Either this change needs to be brought back, or the validation in prior branches needs to change to assume positional matching. 

> Teiid Server does not honor columns name in external materialization
> --------------------------------------------------------------------
>
>                 Key: TEIID-4732
>                 URL: https://issues.jboss.org/browse/TEIID-4732
>             Project: Teiid
>          Issue Type: Bug
>          Components: Common
>    Affects Versions: 9.1.2
>         Environment: * WildFly 10
> * Teiid Server 9.1.2
> * CentOs 7
> * MySQL 5.6.35
>            Reporter: Pedro Inácio
>            Assignee: Steven Hawkins
>         Attachments: NumberingPlan.csv, externalMaterializationOrderProblem-vdb.xml, mySqlCreateTable.sql, numberingPlan-vdb.xml
>
>
> When defining a View with external materialization, if the view does not specify the columns in the same order as they are defined in the Materialized Table, Teiid Server inserts data in the wrong columns (in the order that is defined in the view). It appears that Teiid Server does not use the columns names but instead uses the column indexes.
> Example:
> If the view is defined like this:
> {code:sql}
> CREATE VIEW my_view (
>    cns varchar(400),
>    country_code varchar(400)
> )
> {code}
> And the tables in the database are defined like this:
> {code:sql}
> CREATE TABLE my_view_cache_staging (
>     country_code VARCHAR(400),
>     cns VARCHAR(400)
>     
> );
> CREATE TABLE my_view_cache (
>    country_code VARCHAR(400),
>     cns VARCHAR(400)
> );
> {code}
> Then when loadMatView runs, it will insert in country_code column in database the values from cns (view) and in cns column in database the values from country_code (view).
> But if the view is defined like this:
> {code:sql}
> CREATE VIEW my_view (
>    country_code varchar(400),
>    cns varchar(400)	
> )
> {code}
> Then Teiid will insert the data "correctly".
> It appears that loadMatView is using indexes instead of column names to insert the data.



--
This message was sent by Atlassian JIRA
(v7.2.3#72005)



More information about the teiid-issues mailing list