[
https://issues.apache.org/jira/browse/HIVE-10378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16211938#comment-16211938
]
Jesus Camacho Rodriguez commented on HIVE-10378:
------------------------------------------------
Changing targeted fix version to 2.3.2 as this is not a blocker and we are
releasing 2.3.1.
> 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
> Fix For: 2.3.2
>
> Attachments: HIVE-10378.1.patch
>
>
> 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','[email protected]'),(2,'user2','[email protected]'),(3,'user3','[email protected]')
> 3. Search result:
> 0: jdbc:hive2://localhost:10000> select * from customer;
> +--------------+----------------+------------------+--+
> | customer.id | customer.name | customer.email |
> +--------------+----------------+------------------+--+
> | 2 | user2 | [email protected] |
> | 3 | user3 | [email protected] |
> | 1 | user1 | [email protected] |
> +--------------+----------------+------------------+--+
> 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 | [email protected] |
> | 3 | user3 | [email protected] |
> | 1 | user1 | [email protected] |
> +--------------+----------------+------------------+--+
> 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 | [email protected] |
> | 3 | user3 | [email protected] |
> | 1 | working | [email protected] |
> +--------------+----------------+------------------+--+
> 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)