[ https://issues.apache.org/jira/browse/CARBONDATA-3652?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17008255#comment-17008255 ]
Jacky Li edited comment on CARBONDATA-3652 at 1/5/20 6:34 AM: -------------------------------------------------------------- You mean in this case, user should use {code:sql} use insert into table1 select required_columns from table2 {code} after adding new column in table2? was (Author: jackylk): You mean in this case, user should use insert into table1 select required_columns from table2 after adding new column in table2? > No exception is thrown when the number of insert and select table columns is > inconsistent > ----------------------------------------------------------------------------------------- > > Key: CARBONDATA-3652 > URL: https://issues.apache.org/jira/browse/CARBONDATA-3652 > Project: CarbonData > Issue Type: Bug > Components: spark-integration > Reporter: Hong Shen > Priority: Major > Time Spent: 40m > Remaining Estimate: 0h > > In production, we run a sql 'insert into table1 select * from table2' every > day,(table1 is a carbon table), but when some one alter table2 add a column, > the above sql won't throw exception, and make the data in table1 error. But > if table1 is a parquet table, it will throw exception: > {code} > `default`.`table1` requires that the data to be inserted have the same number > of columns as the target table: target table has 3 column(s) but the inserted > data has 4 column(s), including 0 partition column(s) having constant > value(s).; > {code} > It should also throw exception when the number of insert and select table > columns is inconsistent. > Here is the test code, it make the data in table1 error. I will add a pr to > fix it. > {code} > sql("create table table1 (col1 string, col2 string) partitioned by(pt > string) stored by 'carbondata'") > sql("create table table2 (t2_c1 string, t2_c2 string, t2_c3 string) > partitioned by(pt string)") > sql("insert overwrite table table2 partition(pt=20200101) values('v11', > 'v12', 'v13')") > sql("insert into table1 select * from table2") > checkAnswer(sql("select * from table1"), Row("v11", "v12", "v13")) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)