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/[email protected]"
-f test.hql
WARNING: Use "yarn jar" to launch YARN applications.
Connecting to
jdbc:hive2://hqetghdped90.pclc0.merkle.local:10000/default;principal=hive/[email protected]
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/[email protected]
{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)