[ https://issues.apache.org/jira/browse/HIVE-10378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on HIVE-10378 started by Oleksiy Sayankin. ----------------------------------------------- > Hive Update statement set keyword work with lower case only and doesn't give > any error if wrong column name specified in the set clause. > ---------------------------------------------------------------------------------------------------------------------------------------- > > Key: HIVE-10378 > URL: https://issues.apache.org/jira/browse/HIVE-10378 > Project: Hive > Issue Type: Bug > Components: Transactions > Affects Versions: 1.0.0, 1.1.0 > Environment: Hadoop: 2.6.0 > Hive : 1.0.0/1.1.0 > OS:Linux > Reporter: Vineet Kandpal > Assignee: Oleksiy Sayankin > > Brief: Hive Update statement set keyword work with lower case only and > doesn't give any error if wrong column name specified in the set clause. > Steps to reproduce: > following are the steps performed for the same: > 1. Create Table with transactional properties. > create table customer(id int ,name string, email string) clustered by (id) > into 2 buckets stored as orc TBLPROPERTIES('transactional'='true') > 2. Insert data into transactional table: > insert into table customer values > (1,'user1','us...@user1.com'),(2,'user2','us...@user1.com'),(3,'user3','us...@gmail.com') > 3. Search result: > 0: jdbc:hive2://localhost:10000> select * from customer; > +--------------+----------------+------------------+--+ > | customer.id | customer.name | customer.email | > +--------------+----------------+------------------+--+ > | 2 | user2 | us...@user1.com | > | 3 | user3 | us...@gmail.com | > | 1 | user1 | us...@user1.com | > +--------------+----------------+------------------+--+ > 3 rows selected (0.299 seconds) > 4. Update table column name with some clause In below column name is used in > the UPPER case (NAME) and it is not updating the column value : > 0: jdbc:hive2://localhost:10000> update customer set NAME = > 'notworking' where id = 1; > INFO : Table default.customer stats: [numFiles=10, numRows=3, > totalSize=6937, rawDataSize=0] > No rows affected (20.343 seconds) > 0: jdbc:hive2://localhost:10000> select * from customer; > +--------------+----------------+------------------+--+ > | customer.id | customer.name | customer.email | > +--------------+----------------+------------------+--+ > | 2 | user2 | us...@user1.com | > | 3 | user3 | us...@gmail.com | > | 1 | user1 | us...@user1.com | > +--------------+----------------+------------------+--+ > 3 rows selected (0.321 seconds) > 5. Update table column name with some clause In below column name is used in > the LOWER case (name) and it is updating the column value > 0: jdbc:hive2://localhost:10000> update customer set name = 'working' > where id = 1; > INFO : Table default.customer stats: [numFiles=11, numRows=3, > totalSize=7699, rawDataSize=0] > No rows affected (19.74 seconds) > 0: jdbc:hive2://localhost:10000> select * from customer; > +--------------+----------------+------------------+--+ > | customer.id | customer.name | customer.email | > +--------------+----------------+------------------+--+ > | 2 | user2 | us...@user1.com | > | 3 | user3 | us...@gmail.com | > | 1 | working | us...@user1.com | > +--------------+----------------+------------------+--+ > 3 rows selected (0.333 seconds) > 0: jdbc:hive2://localhost:10000> > 6. We have also seen that if we put the column name incorrect in set keyword > of the update statement it accept the query and execute job. There should > validation on the column name used in the set clause. > 0: jdbc:hive2://localhost:10000> update customer set name_44 = > 'working' where id = 1; > > -- This message was sent by Atlassian JIRA (v6.4.14#64029)