hive git commit: HIVE-12196 NPE when converting bad timestamp value (Aihua Xu, reviewed by Chaoyu Tang)

2015-11-16 Thread aihuaxu
Repository: hive
Updated Branches:
  refs/heads/branch-1 9fc7442ec -> 5ac33bbdc


HIVE-12196 NPE when converting bad timestamp value (Aihua Xu, reviewed by 
Chaoyu Tang)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/5ac33bbd
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/5ac33bbd
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/5ac33bbd

Branch: refs/heads/branch-1
Commit: 5ac33bbdc8b892c3ac6c7e5665d69c8ff8e46d3f
Parents: 9fc7442
Author: aihuaxu 
Authored: Tue Nov 3 13:49:20 2015 -0500
Committer: aihuaxu 
Committed: Mon Nov 16 10:48:37 2015 -0500

--
 .../ql/udf/generic/GenericUDFFromUtcTimestamp.java | 11 +++
 .../queries/clientpositive/udf_from_utc_timestamp.q|  5 +
 .../clientpositive/udf_from_utc_timestamp.q.out| 13 +
 3 files changed, 25 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hive/blob/5ac33bbd/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
--
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
index 1343d3b..3f10a24 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
@@ -77,12 +77,15 @@ public class GenericUDFFromUtcTimestamp extends GenericUDF {
   return null;
 }
 
-String tzStr = textConverter.convert(o1).toString();
-TimeZone timezone = TimeZone.getTimeZone(tzStr);
+Object converted_o0 = timestampConverter.convert(o0);
+if (converted_o0 == null) {
+  return null;
+}
 
-Timestamp timestamp = ((TimestampWritable) timestampConverter.convert(o0))
-.getTimestamp();
+Timestamp timestamp = ((TimestampWritable) converted_o0).getTimestamp();
 
+String tzStr = textConverter.convert(o1).toString();
+TimeZone timezone = TimeZone.getTimeZone(tzStr);
 int offset = timezone.getOffset(timestamp.getTime());
 if (invert()) {
   offset = -offset;

http://git-wip-us.apache.org/repos/asf/hive/blob/5ac33bbd/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q
--
diff --git a/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q 
b/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q
index b113eec..ca0a6a8 100644
--- a/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q
+++ b/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q
@@ -22,3 +22,8 @@ from_utc_timestamp(cast('2012-02-11 04:30:00' as timestamp), 
''),
 from_utc_timestamp(cast('2012-02-11 04:30:00' as timestamp), '---'),
 from_utc_timestamp(cast(null as timestamp), 'PST'),
 from_utc_timestamp(cast('2012-02-11 04:30:00' as timestamp), cast(null as 
string));
+
+select
+from_utc_timestamp('2012-02-11-04:30:00', 'UTC'),
+from_utc_timestamp('2012-02-11-04:30:00', 'PST');
+

http://git-wip-us.apache.org/repos/asf/hive/blob/5ac33bbd/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out
--
diff --git a/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out 
b/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out
index 5b4bc35..be2cb1a 100644
--- a/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out
+++ b/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out
@@ -80,3 +80,16 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: _dummy_database@_dummy_table
  A masked pattern was here 
 2012-02-10 20:30:002012-02-11 08:30:00 2012-02-11 12:30:00 
2012-02-11 04:30:00 2012-02-11 04:30:00 2012-02-11 04:30:00 NULL
NULL
+PREHOOK: query: select
+from_utc_timestamp('2012-02-11-04:30:00', 'UTC'),
+from_utc_timestamp('2012-02-11-04:30:00', 'PST')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+ A masked pattern was here 
+POSTHOOK: query: select
+from_utc_timestamp('2012-02-11-04:30:00', 'UTC'),
+from_utc_timestamp('2012-02-11-04:30:00', 'PST')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+ A masked pattern was here 
+NULL   NULL



hive git commit: HIVE-12378: Exception on HBaseSerDe.serialize binary field (Yongzhi Chen, reviewed by Jimmy Xiang)

2015-11-16 Thread ychena
Repository: hive
Updated Branches:
  refs/heads/master 78b74277a -> 3d1eab512


HIVE-12378: Exception on HBaseSerDe.serialize binary field (Yongzhi Chen, 
reviewed by Jimmy Xiang)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/3d1eab51
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/3d1eab51
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/3d1eab51

Branch: refs/heads/master
Commit: 3d1eab512e31c20d760c8a51c948cab87fe92ced
Parents: 78b7427
Author: Yongzhi Chen 
Authored: Thu Nov 12 10:57:07 2015 -0500
Committer: Yongzhi Chen 
Committed: Mon Nov 16 11:42:15 2015 -0500

--
 .../test/queries/positive/hbase_binary_binary.q | 12 +
 .../results/positive/hbase_binary_binary.q.out  | 54 
 .../hadoop/hive/serde2/lazy/LazyBinary.java |  2 +-
 .../hadoop/hive/serde2/lazy/LazyFactory.java|  3 ++
 .../hadoop/hive/serde2/lazy/LazyUtils.java  |  6 +++
 .../hive/serde2/lazydio/LazyDioBinary.java  | 51 ++
 6 files changed, 127 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hive/blob/3d1eab51/hbase-handler/src/test/queries/positive/hbase_binary_binary.q
--
diff --git a/hbase-handler/src/test/queries/positive/hbase_binary_binary.q 
b/hbase-handler/src/test/queries/positive/hbase_binary_binary.q
new file mode 100644
index 000..388e5aa
--- /dev/null
+++ b/hbase-handler/src/test/queries/positive/hbase_binary_binary.q
@@ -0,0 +1,12 @@
+drop table if exists testhbaseb;
+CREATE TABLE testhbaseb (key int, val binary)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES (
+"hbase.columns.mapping" = ":key,cf:val#b"
+);
+insert into table testhbaseb values(1, 'hello');
+insert into table testhbaseb values(2, 'hi');
+select * from testhbaseb;
+drop table testhbaseb;
+
+

http://git-wip-us.apache.org/repos/asf/hive/blob/3d1eab51/hbase-handler/src/test/results/positive/hbase_binary_binary.q.out
--
diff --git a/hbase-handler/src/test/results/positive/hbase_binary_binary.q.out 
b/hbase-handler/src/test/results/positive/hbase_binary_binary.q.out
new file mode 100644
index 000..c828fd1
--- /dev/null
+++ b/hbase-handler/src/test/results/positive/hbase_binary_binary.q.out
@@ -0,0 +1,54 @@
+PREHOOK: query: drop table if exists testhbaseb
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table if exists testhbaseb
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE testhbaseb (key int, val binary)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES (
+"hbase.columns.mapping" = ":key,cf:val#b"
+)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@testhbaseb
+POSTHOOK: query: CREATE TABLE testhbaseb (key int, val binary)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES (
+"hbase.columns.mapping" = ":key,cf:val#b"
+)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@testhbaseb
+PREHOOK: query: insert into table testhbaseb values(1, 'hello')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@testhbaseb
+POSTHOOK: query: insert into table testhbaseb values(1, 'hello')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@testhbaseb
+PREHOOK: query: insert into table testhbaseb values(2, 'hi')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@testhbaseb
+POSTHOOK: query: insert into table testhbaseb values(2, 'hi')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@testhbaseb
+PREHOOK: query: select * from testhbaseb
+PREHOOK: type: QUERY
+PREHOOK: Input: default@testhbaseb
+ A masked pattern was here 
+POSTHOOK: query: select * from testhbaseb
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@testhbaseb
+ A masked pattern was here 
+1  hello
+2  hi
+PREHOOK: query: drop table testhbaseb
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@testhbaseb
+PREHOOK: Output: default@testhbaseb
+POSTHOOK: query: drop table testhbaseb
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@testhbaseb
+POSTHOOK: Output: default@testhbaseb

http://git-wip-us.apache.org/repos/asf/hive/blob/3d1eab51/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyBinary.java
--
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyBinary.java 
b/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyBinary.java
index 010f1f9..aa19d09 100644
--- 

hive git commit: HIVE-12196 NPE when converting bad timestamp value (Aihua Xu, reviewed by Chaoyu Tang)

2015-11-16 Thread aihuaxu
Repository: hive
Updated Branches:
  refs/heads/master 3d8df7444 -> 78b74277a


HIVE-12196 NPE when converting bad timestamp value (Aihua Xu, reviewed by 
Chaoyu Tang)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/78b74277
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/78b74277
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/78b74277

Branch: refs/heads/master
Commit: 78b74277a8634aa1c107cd501560c0d9b7a46093
Parents: 3d8df74
Author: aihuaxu 
Authored: Tue Nov 3 13:49:20 2015 -0500
Committer: aihuaxu 
Committed: Mon Nov 16 10:34:41 2015 -0500

--
 .../ql/udf/generic/GenericUDFFromUtcTimestamp.java | 11 +++
 .../queries/clientpositive/udf_from_utc_timestamp.q|  5 +
 .../clientpositive/udf_from_utc_timestamp.q.out| 13 +
 3 files changed, 25 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hive/blob/78b74277/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
--
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
index 30ef5ab..331ee6b 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDFFromUtcTimestamp.java
@@ -77,12 +77,15 @@ public class GenericUDFFromUtcTimestamp extends GenericUDF {
   return null;
 }
 
-String tzStr = textConverter.convert(o1).toString();
-TimeZone timezone = TimeZone.getTimeZone(tzStr);
+Object converted_o0 = timestampConverter.convert(o0);
+if (converted_o0 == null) {
+  return null;
+}
 
-Timestamp timestamp = ((TimestampWritable) timestampConverter.convert(o0))
-.getTimestamp();
+Timestamp timestamp = ((TimestampWritable) converted_o0).getTimestamp();
 
+String tzStr = textConverter.convert(o1).toString();
+TimeZone timezone = TimeZone.getTimeZone(tzStr);
 int offset = timezone.getOffset(timestamp.getTime());
 if (invert()) {
   offset = -offset;

http://git-wip-us.apache.org/repos/asf/hive/blob/78b74277/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q
--
diff --git a/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q 
b/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q
index b113eec..ca0a6a8 100644
--- a/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q
+++ b/ql/src/test/queries/clientpositive/udf_from_utc_timestamp.q
@@ -22,3 +22,8 @@ from_utc_timestamp(cast('2012-02-11 04:30:00' as timestamp), 
''),
 from_utc_timestamp(cast('2012-02-11 04:30:00' as timestamp), '---'),
 from_utc_timestamp(cast(null as timestamp), 'PST'),
 from_utc_timestamp(cast('2012-02-11 04:30:00' as timestamp), cast(null as 
string));
+
+select
+from_utc_timestamp('2012-02-11-04:30:00', 'UTC'),
+from_utc_timestamp('2012-02-11-04:30:00', 'PST');
+

http://git-wip-us.apache.org/repos/asf/hive/blob/78b74277/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out
--
diff --git a/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out 
b/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out
index 5b4bc35..be2cb1a 100644
--- a/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out
+++ b/ql/src/test/results/clientpositive/udf_from_utc_timestamp.q.out
@@ -80,3 +80,16 @@ POSTHOOK: type: QUERY
 POSTHOOK: Input: _dummy_database@_dummy_table
  A masked pattern was here 
 2012-02-10 20:30:002012-02-11 08:30:00 2012-02-11 12:30:00 
2012-02-11 04:30:00 2012-02-11 04:30:00 2012-02-11 04:30:00 NULL
NULL
+PREHOOK: query: select
+from_utc_timestamp('2012-02-11-04:30:00', 'UTC'),
+from_utc_timestamp('2012-02-11-04:30:00', 'PST')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+ A masked pattern was here 
+POSTHOOK: query: select
+from_utc_timestamp('2012-02-11-04:30:00', 'UTC'),
+from_utc_timestamp('2012-02-11-04:30:00', 'PST')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+ A masked pattern was here 
+NULL   NULL



hive git commit: HIVE-12378: Exception on HBaseSerDe.serialize binary field (Yongzhi Chen, reviewed by Jimmy Xiang)

2015-11-16 Thread ychena
Repository: hive
Updated Branches:
  refs/heads/branch-1 5ac33bbdc -> 4a786ca41


HIVE-12378: Exception on HBaseSerDe.serialize binary field (Yongzhi Chen, 
reviewed by Jimmy Xiang)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4a786ca4
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4a786ca4
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4a786ca4

Branch: refs/heads/branch-1
Commit: 4a786ca41f275bb93e439ffbc3329be2fc81a5fc
Parents: 5ac33bb
Author: Yongzhi Chen 
Authored: Thu Nov 12 10:57:07 2015 -0500
Committer: Yongzhi Chen 
Committed: Mon Nov 16 11:50:50 2015 -0500

--
 .../test/queries/positive/hbase_binary_binary.q | 12 +
 .../results/positive/hbase_binary_binary.q.out  | 54 
 .../hadoop/hive/serde2/lazy/LazyBinary.java |  2 +-
 .../hadoop/hive/serde2/lazy/LazyFactory.java|  3 ++
 .../hadoop/hive/serde2/lazy/LazyUtils.java  |  6 +++
 .../hive/serde2/lazydio/LazyDioBinary.java  | 51 ++
 6 files changed, 127 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/hive/blob/4a786ca4/hbase-handler/src/test/queries/positive/hbase_binary_binary.q
--
diff --git a/hbase-handler/src/test/queries/positive/hbase_binary_binary.q 
b/hbase-handler/src/test/queries/positive/hbase_binary_binary.q
new file mode 100644
index 000..388e5aa
--- /dev/null
+++ b/hbase-handler/src/test/queries/positive/hbase_binary_binary.q
@@ -0,0 +1,12 @@
+drop table if exists testhbaseb;
+CREATE TABLE testhbaseb (key int, val binary)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES (
+"hbase.columns.mapping" = ":key,cf:val#b"
+);
+insert into table testhbaseb values(1, 'hello');
+insert into table testhbaseb values(2, 'hi');
+select * from testhbaseb;
+drop table testhbaseb;
+
+

http://git-wip-us.apache.org/repos/asf/hive/blob/4a786ca4/hbase-handler/src/test/results/positive/hbase_binary_binary.q.out
--
diff --git a/hbase-handler/src/test/results/positive/hbase_binary_binary.q.out 
b/hbase-handler/src/test/results/positive/hbase_binary_binary.q.out
new file mode 100644
index 000..c828fd1
--- /dev/null
+++ b/hbase-handler/src/test/results/positive/hbase_binary_binary.q.out
@@ -0,0 +1,54 @@
+PREHOOK: query: drop table if exists testhbaseb
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: drop table if exists testhbaseb
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE testhbaseb (key int, val binary)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES (
+"hbase.columns.mapping" = ":key,cf:val#b"
+)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@testhbaseb
+POSTHOOK: query: CREATE TABLE testhbaseb (key int, val binary)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES (
+"hbase.columns.mapping" = ":key,cf:val#b"
+)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@testhbaseb
+PREHOOK: query: insert into table testhbaseb values(1, 'hello')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@testhbaseb
+POSTHOOK: query: insert into table testhbaseb values(1, 'hello')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@testhbaseb
+PREHOOK: query: insert into table testhbaseb values(2, 'hi')
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@testhbaseb
+POSTHOOK: query: insert into table testhbaseb values(2, 'hi')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@testhbaseb
+PREHOOK: query: select * from testhbaseb
+PREHOOK: type: QUERY
+PREHOOK: Input: default@testhbaseb
+ A masked pattern was here 
+POSTHOOK: query: select * from testhbaseb
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@testhbaseb
+ A masked pattern was here 
+1  hello
+2  hi
+PREHOOK: query: drop table testhbaseb
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@testhbaseb
+PREHOOK: Output: default@testhbaseb
+POSTHOOK: query: drop table testhbaseb
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@testhbaseb
+POSTHOOK: Output: default@testhbaseb

http://git-wip-us.apache.org/repos/asf/hive/blob/4a786ca4/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyBinary.java
--
diff --git a/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyBinary.java 
b/serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyBinary.java
index 884c3ae..ebd5d80 100644

hive git commit: HIVE-11488: Add sessionId and queryId info to HS2 log (Aihua Xu, reviewed by Szehon Ho)

2015-11-16 Thread aihuaxu
Repository: hive
Updated Branches:
  refs/heads/master 3d1eab512 -> 2ff433f43


HIVE-11488: Add sessionId and queryId info to HS2 log (Aihua Xu, reviewed by 
Szehon Ho)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/2ff433f4
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/2ff433f4
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/2ff433f4

Branch: refs/heads/master
Commit: 2ff433f43bc53ed5e2f8e8c0068405575694f72d
Parents: 3d1eab5
Author: aihuaxu 
Authored: Tue Nov 10 15:13:22 2015 -0500
Committer: aihuaxu 
Committed: Mon Nov 16 12:51:35 2015 -0500

--
 .../org/apache/hadoop/hive/conf/HiveConf.java   |  1 +
 .../cli/session/TestHiveSessionImpl.java|  1 +
 .../java/org/apache/hadoop/hive/ql/Driver.java  | 10 ++---
 .../hive/service/cli/operation/Operation.java   | 23 
 .../service/cli/operation/SQLOperation.java |  2 ++
 .../service/cli/session/HiveSessionBase.java|  3 ---
 .../service/cli/session/HiveSessionImpl.java| 14 
 7 files changed, 48 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hive/blob/2ff433f4/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
--
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java 
b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 425c7d9..838f25c 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -3106,6 +3106,7 @@ public class HiveConf extends Configuration {
 ConfVars.OUTPUT_FILE_EXTENSION.varname,
 ConfVars.SHOW_JOB_FAIL_DEBUG_INFO.varname,
 ConfVars.TASKLOG_DEBUG_TIMEOUT.varname,
+ConfVars.HIVEQUERYID.varname,
   };
 
   /**

http://git-wip-us.apache.org/repos/asf/hive/blob/2ff433f4/itests/hive-unit/src/test/java/org/apache/hive/service/cli/session/TestHiveSessionImpl.java
--
diff --git 
a/itests/hive-unit/src/test/java/org/apache/hive/service/cli/session/TestHiveSessionImpl.java
 
b/itests/hive-unit/src/test/java/org/apache/hive/service/cli/session/TestHiveSessionImpl.java
index 2d9ad03..8a32a07 100644
--- 
a/itests/hive-unit/src/test/java/org/apache/hive/service/cli/session/TestHiveSessionImpl.java
+++ 
b/itests/hive-unit/src/test/java/org/apache/hive/service/cli/session/TestHiveSessionImpl.java
@@ -74,6 +74,7 @@ public class TestHiveSessionImpl {
 try {
 
   //Running a normal async query with no exceptions,then no need to close 
opHandle
+  session.open(new HashMap());
   session.executeStatementAsync(hql, confOverlay);
   Mockito.verify(operationManager, 
Mockito.times(0)).closeOperation(opHandle);
 

http://git-wip-us.apache.org/repos/asf/hive/blob/2ff433f4/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
--
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java 
b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
index 93c7a54..9a5495b 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
@@ -384,9 +384,13 @@ public class Driver implements CommandProcessor {
 }
 saveSession(queryState);
 
-// generate new query id
-String queryId = QueryPlan.makeQueryId();
-conf.setVar(HiveConf.ConfVars.HIVEQUERYID, queryId);
+// Generate new query id if it's not set for CLI case. If it's session 
based,
+// query id is passed in from the client or initialized when the session 
starts.
+String queryId = conf.getVar(HiveConf.ConfVars.HIVEQUERYID);
+if (queryId == null || queryId.isEmpty()) {
+  queryId = QueryPlan.makeQueryId();
+  conf.setVar(HiveConf.ConfVars.HIVEQUERYID, queryId);
+}
 
 SessionState.get().setupQueryCurrentTimestamp();
 

http://git-wip-us.apache.org/repos/asf/hive/blob/2ff433f4/service/src/java/org/apache/hive/service/cli/operation/Operation.java
--
diff --git 
a/service/src/java/org/apache/hive/service/cli/operation/Operation.java 
b/service/src/java/org/apache/hive/service/cli/operation/Operation.java
index 4ca0561..a851936 100644
--- a/service/src/java/org/apache/hive/service/cli/operation/Operation.java
+++ b/service/src/java/org/apache/hive/service/cli/operation/Operation.java
@@ -31,6 +31,7 @@ import org.slf4j.LoggerFactory;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse;
 import org.apache.hadoop.hive.ql.session.OperationLog;
+import org.apache.hadoop.hive.ql.session.SessionState;