Lu Ji created HIVE-13875: ---------------------------- Summary: Beeline ignore where clause when it is the last line of file and missing a EOL hence give wrong query result Key: HIVE-13875 URL: https://issues.apache.org/jira/browse/HIVE-13875 Project: Hive Issue Type: Bug Components: Beeline Affects Versions: 1.2.1 Reporter: Lu Ji Priority: Minor
Steps to reproduce: Say we have a simple table: {code} select * from lji.lu_test; +---------------+------------------+--+ | lu_test.name | lu_test.country | +---------------+------------------+--+ | john | us | | hong | cn | +---------------+------------------+--+ 2 rows selected (0.04 seconds) {code} We have a simple query in a file. But note this file missing the last EOL. {code} [lji@hqetghdped90 ~]$ cat -A test.hql use lji;$ select * from lu_test$ where country='us';[lji@hqetghdped90 ~]$ {code} Then if we execute file using both hive CLI and beeline + HS2, we have different result. {code} [lji@hqetghdped90 ~]$ hive -f test.hql WARNING: Use "yarn jar" to launch YARN applications. Logging initialized using configuration in file:/etc/hive/2.3.4.7-4/0/hive-log4j.properties OK Time taken: 1.624 seconds OK john us Time taken: 1.482 seconds, Fetched: 1 row(s) [lji@hqetghdped90 ~]$ beeline -u "jdbc:hive2://hqetghdped90.pclc0.merkle.local:10000/default;principal=hive/_HOST@PCLC0.MERKLE.LOCAL" -f test.hql WARNING: Use "yarn jar" to launch YARN applications. Connecting to jdbc:hive2://hqetghdped90.pclc0.merkle.local:10000/default;principal=hive/_HOST@PCLC0.MERKLE.LOCAL Connected to: Apache Hive (version 1.2.1.2.3.4.7-4) Driver: Hive JDBC (version 1.2.1.2.3.4.7-4) Transaction isolation: TRANSACTION_REPEATABLE_READ 0: jdbc:hive2://hqetghdped90.pclc0.merkle.loc> use lji; No rows affected (0.06 seconds) 0: jdbc:hive2://hqetghdped90.pclc0.merkle.loc> select * from lu_test 0: jdbc:hive2://hqetghdped90.pclc0.merkle.loc> where country='us';+---------------+------------------+--+ | lu_test.name | lu_test.country | +---------------+------------------+--+ | john | us | | hong | cn | +---------------+------------------+--+ 2 rows selected (0.073 seconds) 0: jdbc:hive2://hqetghdped90.pclc0.merkle.loc> Closing: 0: jdbc:hive2://hqetghdped90.pclc0.merkle.local:10000/default;principal=hive/_HOST@PCLC0.MERKLE.LOCAL {code} Obviously, beeline gave the wrong result. It ignore the where clause in the last line. I know it is quit weird for a file missing the last EOL, but for whatever reason, we kind of having quit some files in this state. -- This message was sent by Atlassian JIRA (v6.3.4#6332)