hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lu Ji (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-13875) Beeline ignore where clause when it is the last line of file and missing a EOL hence give wrong query result
Date Fri, 27 May 2016 08:15:13 GMT

     [ https://issues.apache.org/jira/browse/HIVE-13875?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Lu Ji updated HIVE-13875:
-------------------------
    Description: 
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}
cat -A test.hql
use lji;$
select * from lu_test$
where country='us';[lji@~]$
{code}
Then if we execute file using both hive CLI and beeline + HS2, we have different result.
{code}
[lji@~]$ 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@~]$ beeline -u "jdbc:hive2://XXX:10000/default;principal=hive/_HOST@XXX" -f test.hql
WARNING: Use "yarn jar" to launch YARN applications.
Connecting to jdbc:hive2://XXXl:10000/default;principal=hive/_HOST@XXX
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://XXX> use lji;
No rows affected (0.06 seconds)
0: jdbc:hive2://XXX> select * from lu_test
0: jdbc:hive2://XXX> where country='us';+---------------+------------------+--+
| lu_test.name  | lu_test.country  |
+---------------+------------------+--+
| john          | us               |
| hong          | cn               |
+---------------+------------------+--+
2 rows selected (0.073 seconds)
0: jdbc:hive2://XXX>
Closing: 0: jdbc:hive2://XXX:10000/default;principal=hive/_HOST@XXX
{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. 

  was:
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. 


> 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}
> cat -A test.hql
> use lji;$
> select * from lu_test$
> where country='us';[lji@~]$
> {code}
> Then if we execute file using both hive CLI and beeline + HS2, we have different result.
> {code}
> [lji@~]$ 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@~]$ beeline -u "jdbc:hive2://XXX:10000/default;principal=hive/_HOST@XXX" -f test.hql
> WARNING: Use "yarn jar" to launch YARN applications.
> Connecting to jdbc:hive2://XXXl:10000/default;principal=hive/_HOST@XXX
> 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://XXX> use lji;
> No rows affected (0.06 seconds)
> 0: jdbc:hive2://XXX> select * from lu_test
> 0: jdbc:hive2://XXX> where country='us';+---------------+------------------+--+
> | lu_test.name  | lu_test.country  |
> +---------------+------------------+--+
> | john          | us               |
> | hong          | cn               |
> +---------------+------------------+--+
> 2 rows selected (0.073 seconds)
> 0: jdbc:hive2://XXX>
> Closing: 0: jdbc:hive2://XXX:10000/default;principal=hive/_HOST@XXX
> {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)

Mime
View raw message