You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by br...@apache.org on 2014/07/27 01:46:00 UTC
svn commit: r1613740 [6/29] - in /hive/branches/spark: ./
beeline/src/java/org/apache/hive/beeline/ beeline/src/main/resources/
beeline/src/test/org/apache/hive/beeline/ bin/ bin/ext/ common/
common/src/java/org/apache/hadoop/hive/ant/ common/src/java/...
Modified: hive/branches/spark/contrib/src/test/results/clientnegative/case_with_row_sequence.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientnegative/case_with_row_sequence.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientnegative/case_with_row_sequence.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientnegative/case_with_row_sequence.q.out Sat Jul 26 23:45:46 2014
@@ -5,11 +5,11 @@ POSTHOOK: type: DROPFUNCTION
PREHOOK: query: create temporary function row_sequence as
'org.apache.hadoop.hive.contrib.udf.UDFRowSequence'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: row_sequence
POSTHOOK: query: create temporary function row_sequence as
'org.apache.hadoop.hive.contrib.udf.UDFRowSequence'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: row_sequence
PREHOOK: query: -- make sure a stateful function inside of CASE throws an exception
-- since the short-circuiting requirements are contradictory
SELECT CASE WHEN 3 > 2 THEN 10 WHEN row_sequence() > 5 THEN 20 ELSE 30 END
Modified: hive/branches/spark/contrib/src/test/results/clientnegative/invalid_row_sequence.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientnegative/invalid_row_sequence.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientnegative/invalid_row_sequence.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientnegative/invalid_row_sequence.q.out Sat Jul 26 23:45:46 2014
@@ -2,18 +2,18 @@ PREHOOK: query: -- Verify that a statefu
drop temporary function row_sequence
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: row_sequence
POSTHOOK: query: -- Verify that a stateful UDF cannot be used outside of the SELECT list
drop temporary function row_sequence
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: row_sequence
PREHOOK: query: create temporary function row_sequence as
'org.apache.hadoop.hive.contrib.udf.UDFRowSequence'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: row_sequence
POSTHOOK: query: create temporary function row_sequence as
'org.apache.hadoop.hive.contrib.udf.UDFRowSequence'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: row_sequence
FAILED: SemanticException [Error 10084]: Stateful UDF's can only be invoked in the SELECT list
Modified: hive/branches/spark/contrib/src/test/results/clientnegative/udtf_explode2.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientnegative/udtf_explode2.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientnegative/udtf_explode2.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientnegative/udtf_explode2.q.out Sat Jul 26 23:45:46 2014
@@ -1,7 +1,7 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION explode2 AS 'org.apache.hadoop.hive.contrib.udtf.example.GenericUDTFExplode2'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: explode2
POSTHOOK: query: CREATE TEMPORARY FUNCTION explode2 AS 'org.apache.hadoop.hive.contrib.udtf.example.GenericUDTFExplode2'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: explode2
FAILED: SemanticException [Error 10083]: The number of aliases supplied in the AS clause does not match the number of columns output by the UDTF expected 2 aliases but got 1
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/dboutput.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/dboutput.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/dboutput.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/dboutput.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION dboutput AS 'org.apache.hadoop.hive.contrib.genericudf.example.GenericUDFDBOutput'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: dboutput
POSTHOOK: query: CREATE TEMPORARY FUNCTION dboutput AS 'org.apache.hadoop.hive.contrib.genericudf.example.GenericUDFDBOutput'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: dboutput
PREHOOK: query: DESCRIBE FUNCTION dboutput
PREHOOK: type: DESCFUNCTION
POSTHOOK: query: DESCRIBE FUNCTION dboutput
@@ -186,7 +186,7 @@ POSTHOOK: Input: default@src
#### A masked pattern was here ####
PREHOOK: query: DROP TEMPORARY FUNCTION dboutput
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: dboutput
POSTHOOK: query: DROP TEMPORARY FUNCTION dboutput
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: dboutput
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/lateral_view_explode2.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/lateral_view_explode2.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/lateral_view_explode2.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/lateral_view_explode2.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION explode2 AS 'org.apache.hadoop.hive.contrib.udtf.example.GenericUDTFExplode2'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: explode2
POSTHOOK: query: CREATE TEMPORARY FUNCTION explode2 AS 'org.apache.hadoop.hive.contrib.udtf.example.GenericUDTFExplode2'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: explode2
PREHOOK: query: SELECT col1, col2 FROM src LATERAL VIEW explode2(array(1,2,3)) myTable AS col1, col2 LIMIT 3
PREHOOK: type: QUERY
PREHOOK: Input: default@src
@@ -17,7 +17,7 @@ POSTHOOK: Input: default@src
3 3
PREHOOK: query: DROP TEMPORARY FUNCTION explode2
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: explode2
POSTHOOK: query: DROP TEMPORARY FUNCTION explode2
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: explode2
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_avg.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_avg.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_avg.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_avg.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION example_avg AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleAvg'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_avg
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_avg AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleAvg'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_avg
PREHOOK: query: EXPLAIN
SELECT example_avg(substr(value,5)),
example_avg(IF(substr(value,5) > 250, NULL, substr(value,5)))
@@ -77,7 +77,7 @@ POSTHOOK: Input: default@src
260.182 134.82926829268294
PREHOOK: query: DROP TEMPORARY FUNCTION example_avg
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_avg
POSTHOOK: query: DROP TEMPORARY FUNCTION example_avg
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_avg
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_group_concat.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_group_concat.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_group_concat.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_group_concat.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION example_group_concat AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleGroupConcat'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_group_concat
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_group_concat AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleGroupConcat'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_group_concat
PREHOOK: query: EXPLAIN
SELECT substr(value,5,1), example_group_concat("(", key, ":", value, ")")
FROM src
@@ -90,7 +90,7 @@ POSTHOOK: Input: default@src
9 (90:val_90)(90:val_90)(90:val_90)(92:val_92)(95:val_95)(95:val_95)(96:val_96)(97:val_97)(97:val_97)(98:val_98)(98:val_98)(9:val_9)
PREHOOK: query: DROP TEMPORARY FUNCTION example_group_concat
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_group_concat
POSTHOOK: query: DROP TEMPORARY FUNCTION example_group_concat
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_group_concat
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_max.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_max.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_max.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_max.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION example_max AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleMax'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_max
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_max AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleMax'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_max
PREHOOK: query: DESCRIBE FUNCTION EXTENDED example_max
PREHOOK: type: DESCFUNCTION
POSTHOOK: query: DESCRIBE FUNCTION EXTENDED example_max
@@ -82,7 +82,7 @@ POSTHOOK: Input: default@src
98 98
PREHOOK: query: DROP TEMPORARY FUNCTION example_max
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_max
POSTHOOK: query: DROP TEMPORARY FUNCTION example_max
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_max
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_max_n.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_max_n.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_max_n.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_max_n.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION example_max_n AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleMaxN'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_max_n
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_max_n AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleMaxN'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_max_n
PREHOOK: query: EXPLAIN
SELECT example_max_n(substr(value,5),10),
example_max_n(IF(substr(value,5) > 250, NULL, substr(value,5)),10)
@@ -77,7 +77,7 @@ POSTHOOK: Input: default@src
[498.0,498.0,498.0,497.0,496.0,495.0,494.0,493.0,492.0,492.0] [249.0,248.0,247.0,244.0,242.0,242.0,241.0,239.0,239.0,238.0]
PREHOOK: query: DROP TEMPORARY FUNCTION example_max_n
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_max_n
POSTHOOK: query: DROP TEMPORARY FUNCTION example_max_n
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_max_n
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_min.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_min.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_min.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_min.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION example_min AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleMin'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_min
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_min AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleMin'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_min
PREHOOK: query: DESCRIBE FUNCTION EXTENDED example_min
PREHOOK: type: DESCFUNCTION
POSTHOOK: query: DESCRIBE FUNCTION EXTENDED example_min
@@ -82,7 +82,7 @@ POSTHOOK: Input: default@src
0 0
PREHOOK: query: DROP TEMPORARY FUNCTION example_min
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_min
POSTHOOK: query: DROP TEMPORARY FUNCTION example_min
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_min
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_min_n.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_min_n.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_min_n.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udaf_example_min_n.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION example_min_n AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleMinN'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_min_n
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_min_n AS 'org.apache.hadoop.hive.contrib.udaf.example.UDAFExampleMinN'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_min_n
PREHOOK: query: EXPLAIN
SELECT example_min_n(substr(value,5),10),
example_min_n(IF(substr(value,5) < 250, NULL, substr(value,5)),10)
@@ -77,7 +77,7 @@ POSTHOOK: Input: default@src
[0.0,0.0,0.0,2.0,4.0,5.0,5.0,5.0,8.0,9.0] [252.0,255.0,255.0,256.0,256.0,257.0,258.0,260.0,262.0,263.0]
PREHOOK: query: DROP TEMPORARY FUNCTION example_min_n
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_min_n
POSTHOOK: query: DROP TEMPORARY FUNCTION example_min_n
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_min_n
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_add.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_add.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_add.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_add.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION example_add AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleAdd'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_add
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_add AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleAdd'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_add
PREHOOK: query: EXPLAIN
SELECT example_add(1, 2),
example_add(1, 2, 3),
@@ -36,7 +36,7 @@ STAGE PLANS:
alias: src
Statistics: Num rows: 0 Data size: 5812 Basic stats: PARTIAL Column stats: COMPLETE
Select Operator
- expressions: example_add(1, 2) (type: int), example_add(1, 2, 3) (type: int), example_add(1, 2, 3, 4) (type: int), example_add(1.1, 2.2) (type: double), example_add(1.1, 2.2, 3.3) (type: double), example_add(1.1, 2.2, 3.3, 4.4) (type: double), example_add(1, 2, 3, 4.4) (type: double)
+ expressions: 3 (type: int), 6 (type: int), 10 (type: int), 3.3000000000000003 (type: double), 6.6 (type: double), 11.0 (type: double), 10.4 (type: double)
outputColumnNames: _col0, _col1, _col2, _col3, _col4, _col5, _col6
Statistics: Num rows: 0 Data size: 5812 Basic stats: PARTIAL Column stats: COMPLETE
Limit
@@ -81,7 +81,7 @@ POSTHOOK: Input: default@src
3 6 10 3.3000000000000003 6.6 11.0 10.4
PREHOOK: query: DROP TEMPORARY FUNCTION example_add
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_add
POSTHOOK: query: DROP TEMPORARY FUNCTION example_add
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_add
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_arraymapstruct.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_arraymapstruct.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_arraymapstruct.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_arraymapstruct.q.out Sat Jul 26 23:45:46 2014
@@ -1,21 +1,21 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION example_arraysum AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleArraySum'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_arraysum
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_arraysum AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleArraySum'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_arraysum
PREHOOK: query: CREATE TEMPORARY FUNCTION example_mapconcat AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleMapConcat'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_mapconcat
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_mapconcat AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleMapConcat'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_mapconcat
PREHOOK: query: CREATE TEMPORARY FUNCTION example_structprint AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleStructPrint'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_structprint
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_structprint AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleStructPrint'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_structprint
PREHOOK: query: EXPLAIN
SELECT example_arraysum(lint), example_mapconcat(mstringstring), example_structprint(lintstring[0])
FROM src_thrift
@@ -76,19 +76,19 @@ POSTHOOK: Input: default@src_thrift
NULL NULL NULL
PREHOOK: query: DROP TEMPORARY FUNCTION example_arraysum
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_arraysum
POSTHOOK: query: DROP TEMPORARY FUNCTION example_arraysum
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_arraysum
PREHOOK: query: DROP TEMPORARY FUNCTION example_mapconcat
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_mapconcat
POSTHOOK: query: DROP TEMPORARY FUNCTION example_mapconcat
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_mapconcat
PREHOOK: query: DROP TEMPORARY FUNCTION example_structprint
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_structprint
POSTHOOK: query: DROP TEMPORARY FUNCTION example_structprint
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_structprint
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_format.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_format.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_format.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udf_example_format.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION example_format AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleFormat'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_format
POSTHOOK: query: CREATE TEMPORARY FUNCTION example_format AS 'org.apache.hadoop.hive.contrib.udf.example.UDFExampleFormat'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_format
PREHOOK: query: EXPLAIN
SELECT example_format("abc"),
example_format("%1$s", 1.1),
@@ -30,7 +30,7 @@ STAGE PLANS:
alias: src
Statistics: Num rows: 0 Data size: 5812 Basic stats: PARTIAL Column stats: COMPLETE
Select Operator
- expressions: example_format('abc') (type: string), example_format('%1$s', 1.1) (type: string), example_format('%1$s %2$e', 1.1, 1.2) (type: string), example_format('%1$x %2$o %3$d', 10, 10, 10) (type: string)
+ expressions: 'abc' (type: string), '1.1' (type: string), '1.1 1.200000e+00' (type: string), 'a 12 10' (type: string)
outputColumnNames: _col0, _col1, _col2, _col3
Statistics: Num rows: 0 Data size: 5812 Basic stats: PARTIAL Column stats: COMPLETE
Limit
@@ -69,7 +69,7 @@ POSTHOOK: Input: default@src
abc 1.1 1.1 1.200000e+00 a 12 10
PREHOOK: query: DROP TEMPORARY FUNCTION example_format
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: example_format
POSTHOOK: query: DROP TEMPORARY FUNCTION example_format
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: example_format
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udf_row_sequence.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udf_row_sequence.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udf_row_sequence.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udf_row_sequence.q.out Sat Jul 26 23:45:46 2014
@@ -13,11 +13,11 @@ POSTHOOK: type: DROPFUNCTION
PREHOOK: query: create temporary function row_sequence as
'org.apache.hadoop.hive.contrib.udf.UDFRowSequence'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: row_sequence
POSTHOOK: query: create temporary function row_sequence as
'org.apache.hadoop.hive.contrib.udf.UDFRowSequence'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: row_sequence
PREHOOK: query: DESCRIBE FUNCTION EXTENDED row_sequence
PREHOOK: type: DESCFUNCTION
POSTHOOK: query: DESCRIBE FUNCTION EXTENDED row_sequence
@@ -643,7 +643,7 @@ POSTHOOK: Input: default@src
119 false
PREHOOK: query: drop temporary function row_sequence
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: row_sequence
POSTHOOK: query: drop temporary function row_sequence
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: row_sequence
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udtf_explode2.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udtf_explode2.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udtf_explode2.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udtf_explode2.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION explode2 AS 'org.apache.hadoop.hive.contrib.udtf.example.GenericUDTFExplode2'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: explode2
POSTHOOK: query: CREATE TEMPORARY FUNCTION explode2 AS 'org.apache.hadoop.hive.contrib.udtf.example.GenericUDTFExplode2'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: explode2
PREHOOK: query: SELECT explode2(array(1,2,3)) AS (col1, col2) FROM src LIMIT 3
PREHOOK: type: QUERY
PREHOOK: Input: default@src
@@ -17,7 +17,7 @@ POSTHOOK: Input: default@src
3 3
PREHOOK: query: DROP TEMPORARY FUNCTION explode2
PREHOOK: type: DROPFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: explode2
POSTHOOK: query: DROP TEMPORARY FUNCTION explode2
POSTHOOK: type: DROPFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: explode2
Modified: hive/branches/spark/contrib/src/test/results/clientpositive/udtf_output_on_close.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/contrib/src/test/results/clientpositive/udtf_output_on_close.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/contrib/src/test/results/clientpositive/udtf_output_on_close.q.out (original)
+++ hive/branches/spark/contrib/src/test/results/clientpositive/udtf_output_on_close.q.out Sat Jul 26 23:45:46 2014
@@ -1,9 +1,9 @@
PREHOOK: query: CREATE TEMPORARY FUNCTION udtfCount2 AS 'org.apache.hadoop.hive.contrib.udtf.example.GenericUDTFCount2'
PREHOOK: type: CREATEFUNCTION
-PREHOOK: Output: database:default
+PREHOOK: Output: udtfcount2
POSTHOOK: query: CREATE TEMPORARY FUNCTION udtfCount2 AS 'org.apache.hadoop.hive.contrib.udtf.example.GenericUDTFCount2'
POSTHOOK: type: CREATEFUNCTION
-POSTHOOK: Output: database:default
+POSTHOOK: Output: udtfcount2
PREHOOK: query: SELECT udtfCount2(key) AS count FROM src
PREHOOK: type: QUERY
PREHOOK: Input: default@src
Modified: hive/branches/spark/data/conf/hive-site.xml
URL: http://svn.apache.org/viewvc/hive/branches/spark/data/conf/hive-site.xml?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/data/conf/hive-site.xml (original)
+++ hive/branches/spark/data/conf/hive-site.xml Sat Jul 26 23:45:46 2014
@@ -221,4 +221,23 @@
<value>false</value>
</property>
+
+<property>
+ <name>hive.dummyparam.test.server.specific.config.override</name>
+ <value>from.hive-site.xml</value>
+ <description>Using dummy param to test server specific configuration</description>
+</property>
+
+<property>
+ <name>hive.dummyparam.test.server.specific.config.hivesite</name>
+ <value>from.hive-site.xml</value>
+ <description>Using dummy param to test server specific configuration</description>
+</property>
+
+
+<property>
+ <name>hive.fetch.task.conversion</name>
+ <value>minimal</value>
+</property>
+
</configuration>
Modified: hive/branches/spark/hbase-handler/src/java/org/apache/hadoop/hive/hbase/ColumnMappings.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/hbase-handler/src/java/org/apache/hadoop/hive/hbase/ColumnMappings.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/hbase-handler/src/java/org/apache/hadoop/hive/hbase/ColumnMappings.java (original)
+++ hive/branches/spark/hbase-handler/src/java/org/apache/hadoop/hive/hbase/ColumnMappings.java Sat Jul 26 23:45:46 2014
@@ -285,8 +285,11 @@ public class ColumnMappings implements I
return columnsMapping;
}
+ /**
+ * Represents a mapping from a single Hive column to an HBase column qualifier, column family or row key.
+ */
// todo use final fields
- static class ColumnMapping {
+ public static class ColumnMapping {
ColumnMapping() {
binaryStorage = new ArrayList<Boolean>(2);
@@ -305,6 +308,50 @@ public class ColumnMappings implements I
String qualifierPrefix;
byte[] qualifierPrefixBytes;
+ public String getColumnName() {
+ return columnName;
+ }
+
+ public TypeInfo getColumnType() {
+ return columnType;
+ }
+
+ public String getFamilyName() {
+ return familyName;
+ }
+
+ public String getQualifierName() {
+ return qualifierName;
+ }
+
+ public byte[] getFamilyNameBytes() {
+ return familyNameBytes;
+ }
+
+ public byte[] getQualifierNameBytes() {
+ return qualifierNameBytes;
+ }
+
+ public List<Boolean> getBinaryStorage() {
+ return binaryStorage;
+ }
+
+ public boolean isHbaseRowKey() {
+ return hbaseRowKey;
+ }
+
+ public String getMappingSpec() {
+ return mappingSpec;
+ }
+
+ public String getQualifierPrefix() {
+ return qualifierPrefix;
+ }
+
+ public byte[] getQualifierPrefixBytes() {
+ return qualifierPrefixBytes;
+ }
+
public boolean isCategory(ObjectInspector.Category category) {
return columnType.getCategory() == category;
}
Modified: hive/branches/spark/hbase-handler/src/test/results/positive/hbase_ppd_key_range.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/hbase-handler/src/test/results/positive/hbase_ppd_key_range.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/hbase-handler/src/test/results/positive/hbase_ppd_key_range.q.out (original)
+++ hive/branches/spark/hbase-handler/src/test/results/positive/hbase_ppd_key_range.q.out Sat Jul 26 23:45:46 2014
@@ -193,10 +193,10 @@ STAGE PLANS:
Map Operator Tree:
TableScan
alias: hbase_pushdown
- filterExpr: (key >= UDFToString((40 + 50))) (type: boolean)
+ filterExpr: (key >= '90') (type: boolean)
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
Filter Operator
- predicate: (key >= UDFToString((40 + 50))) (type: boolean)
+ predicate: (key >= '90') (type: boolean)
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
Select Operator
expressions: key (type: string), value (type: string)
Modified: hive/branches/spark/hbase-handler/src/test/results/positive/hbase_pushdown.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/hbase-handler/src/test/results/positive/hbase_pushdown.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/hbase-handler/src/test/results/positive/hbase_pushdown.q.out (original)
+++ hive/branches/spark/hbase-handler/src/test/results/positive/hbase_pushdown.q.out Sat Jul 26 23:45:46 2014
@@ -43,7 +43,7 @@ STAGE PLANS:
predicate: (key = 90) (type: boolean)
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
Select Operator
- expressions: key (type: int), value (type: string)
+ expressions: 90 (type: int), value (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
File Output Operator
@@ -235,7 +235,7 @@ STAGE PLANS:
predicate: (((key = 80) and (key = 90)) and (value like '%90%')) (type: boolean)
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
Select Operator
- expressions: key (type: int), value (type: string)
+ expressions: 90 (type: int), value (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
File Output Operator
@@ -398,7 +398,7 @@ STAGE PLANS:
predicate: (key = 90) (type: boolean)
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
Select Operator
- expressions: key (type: int), value (type: string)
+ expressions: 90 (type: int), value (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
File Output Operator
Modified: hive/branches/spark/hbase-handler/src/test/results/positive/ppd_key_ranges.q.out
URL: http://svn.apache.org/viewvc/hive/branches/spark/hbase-handler/src/test/results/positive/ppd_key_ranges.q.out?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/hbase-handler/src/test/results/positive/ppd_key_ranges.q.out (original)
+++ hive/branches/spark/hbase-handler/src/test/results/positive/ppd_key_ranges.q.out Sat Jul 26 23:45:46 2014
@@ -191,7 +191,7 @@ STAGE PLANS:
predicate: (((key >= 9) and (key < 17)) and (key = 11)) (type: boolean)
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
Select Operator
- expressions: key (type: int), value (type: string)
+ expressions: 11 (type: int), value (type: string)
outputColumnNames: _col0, _col1
Statistics: Num rows: 0 Data size: 0 Basic stats: NONE Column stats: NONE
File Output Operator
Modified: hive/branches/spark/hcatalog/core/src/main/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/CreateTableHook.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/hcatalog/core/src/main/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/CreateTableHook.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/hcatalog/core/src/main/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/CreateTableHook.java (original)
+++ hive/branches/spark/hcatalog/core/src/main/java/org/apache/hive/hcatalog/cli/SemanticAnalysis/CreateTableHook.java Sat Jul 26 23:45:46 2014
@@ -30,8 +30,6 @@ import org.apache.hadoop.hive.conf.HiveC
import org.apache.hadoop.hive.metastore.api.FieldSchema;
import org.apache.hadoop.hive.ql.exec.DDLTask;
import org.apache.hadoop.hive.ql.exec.Task;
-import org.apache.hadoop.hive.ql.io.RCFileInputFormat;
-import org.apache.hadoop.hive.ql.io.RCFileOutputFormat;
import org.apache.hadoop.hive.ql.metadata.Hive;
import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.metadata.HiveStorageHandler;
@@ -41,6 +39,7 @@ import org.apache.hadoop.hive.ql.parse.B
import org.apache.hadoop.hive.ql.parse.HiveParser;
import org.apache.hadoop.hive.ql.parse.HiveSemanticAnalyzerHookContext;
import org.apache.hadoop.hive.ql.parse.SemanticException;
+import org.apache.hadoop.hive.ql.parse.StorageFormat;
import org.apache.hadoop.hive.ql.plan.CreateTableDesc;
import org.apache.hadoop.hive.ql.security.authorization.Privilege;
import org.apache.hive.hcatalog.common.HCatConstants;
@@ -66,14 +65,20 @@ final class CreateTableHook extends HCat
// Analyze and create tbl properties object
int numCh = ast.getChildCount();
- String inputFormat = null, outputFormat = null;
tableName = BaseSemanticAnalyzer.getUnescapedName((ASTNode) ast
.getChild(0));
boolean likeTable = false;
+ StorageFormat format = new StorageFormat(context.getConf());
for (int num = 1; num < numCh; num++) {
ASTNode child = (ASTNode) ast.getChild(num);
-
+ if (format.fillStorageFormat(child)) {
+ if (org.apache.commons.lang.StringUtils
+ .isNotEmpty(format.getStorageHandler())) {
+ return ast;
+ }
+ continue;
+ }
switch (child.getToken().getType()) {
case HiveParser.TOK_QUERY: // CTAS
@@ -84,17 +89,6 @@ final class CreateTableHook extends HCat
case HiveParser.TOK_TABLEBUCKETS:
break;
- case HiveParser.TOK_TBLSEQUENCEFILE:
- inputFormat = HCatConstants.SEQUENCEFILE_INPUT;
- outputFormat = HCatConstants.SEQUENCEFILE_OUTPUT;
- break;
-
- case HiveParser.TOK_TBLTEXTFILE:
- inputFormat = org.apache.hadoop.mapred.TextInputFormat.class.getName();
- outputFormat = org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat.class.getName();
-
- break;
-
case HiveParser.TOK_LIKETABLE:
likeTable = true;
break;
@@ -125,43 +119,14 @@ final class CreateTableHook extends HCat
}
}
break;
-
- case HiveParser.TOK_STORAGEHANDLER:
- String storageHandler = BaseSemanticAnalyzer
- .unescapeSQLString(child.getChild(0).getText());
- if (org.apache.commons.lang.StringUtils
- .isNotEmpty(storageHandler)) {
- return ast;
- }
-
- break;
-
- case HiveParser.TOK_TABLEFILEFORMAT:
- if (child.getChildCount() < 2) {
- throw new SemanticException(
- "Incomplete specification of File Format. " +
- "You must provide InputFormat, OutputFormat.");
- }
- inputFormat = BaseSemanticAnalyzer.unescapeSQLString(child
- .getChild(0).getText());
- outputFormat = BaseSemanticAnalyzer.unescapeSQLString(child
- .getChild(1).getText());
- break;
-
- case HiveParser.TOK_TBLRCFILE:
- inputFormat = RCFileInputFormat.class.getName();
- outputFormat = RCFileOutputFormat.class.getName();
- break;
-
}
}
- if (!likeTable && (inputFormat == null || outputFormat == null)) {
+ if (!likeTable && (format.getInputFormat() == null || format.getOutputFormat() == null)) {
throw new SemanticException(
"STORED AS specification is either incomplete or incorrect.");
}
-
return ast;
}
Modified: hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java (original)
+++ hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/jdbc/TestJdbcDriver.java Sat Jul 26 23:45:46 2014
@@ -18,8 +18,8 @@
package org.apache.hadoop.hive.jdbc;
+import static org.apache.hadoop.hive.conf.SystemVariables.SET_COLUMN_NAME;
import static org.apache.hadoop.hive.ql.exec.ExplainTask.EXPL_COLUMN_NAME;
-import static org.apache.hadoop.hive.ql.processors.SetProcessor.SET_COLUMN_NAME;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
@@ -1158,7 +1158,7 @@ public class TestJdbcDriver extends Test
assertEquals("", res.getString(4)); // column
assertEquals("hive_test_user", res.getString(5));
assertEquals("USER", res.getString(6));
- assertEquals("Select", res.getString(7));
+ assertEquals("SELECT", res.getString(7));
assertEquals(false, res.getBoolean(8)); // grant option
assertEquals(-1, res.getLong(9));
assertNotNull(res.getString(10)); // grantor
Modified: hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestAuthorizationApiAuthorizer.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestAuthorizationApiAuthorizer.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestAuthorizationApiAuthorizer.java (original)
+++ hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/TestAuthorizationApiAuthorizer.java Sat Jul 26 23:45:46 2014
@@ -123,7 +123,7 @@ public abstract class TestAuthorizationA
FunctionInvoker invoker = new FunctionInvoker() {
@Override
public void invoke() throws Exception {
- msc.revoke_privileges(new PrivilegeBag(new ArrayList<HiveObjectPrivilege>()));
+ msc.revoke_privileges(new PrivilegeBag(new ArrayList<HiveObjectPrivilege>()), false);
}
};
testFunction(invoker);
@@ -145,7 +145,7 @@ public abstract class TestAuthorizationA
FunctionInvoker invoker = new FunctionInvoker() {
@Override
public void invoke() throws Exception {
- msc.revoke_role(null, null, null);
+ msc.revoke_role(null, null, null, false);
}
};
testFunction(invoker);
Modified: hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/FolderPermissionBase.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/FolderPermissionBase.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/FolderPermissionBase.java (original)
+++ hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/FolderPermissionBase.java Sat Jul 26 23:45:46 2014
@@ -37,7 +37,6 @@ import org.apache.hadoop.hive.ql.process
import org.apache.hadoop.hive.ql.session.SessionState;
import org.apache.hadoop.hive.shims.HadoopShims.MiniDFSShim;
import org.apache.hadoop.hive.shims.ShimLoader;
-import org.junit.BeforeClass;
import org.junit.Test;
/**
@@ -97,7 +96,6 @@ public abstract class FolderPermissionBa
SessionState.start(new CliSessionState(conf));
driver = new Driver(conf);
-
setupDataTable();
}
@@ -117,9 +115,53 @@ public abstract class FolderPermissionBa
}
@Test
- public void testCreateTable() throws Exception {
+ public void testCreateDb() throws Exception {
+ //see if db inherits permission from warehouse directory.
String testDb = "mydb";
String tableName = "createtable";
+
+ setPermission(warehouseDir.toString());
+ verifyPermission(warehouseDir.toString());
+
+ CommandProcessorResponse ret = driver.run("CREATE DATABASE " + testDb);
+ Assert.assertEquals(0,ret.getResponseCode());
+
+ assertExistence(warehouseDir + "/" + testDb + ".db");
+ verifyPermission(warehouseDir + "/" + testDb + ".db");
+
+ ret = driver.run("USE " + testDb);
+ Assert.assertEquals(0,ret.getResponseCode());
+
+ ret = driver.run("CREATE TABLE " + tableName + " (key string, value string)");
+ Assert.assertEquals(0,ret.getResponseCode());
+
+ verifyPermission(warehouseDir + "/" + testDb + ".db/" + tableName);
+
+ ret = driver.run("insert into table " + tableName + " select key,value from default.mysrc");
+ Assert.assertEquals(0,ret.getResponseCode());
+
+ assertExistence(warehouseDir + "/" + testDb + ".db/" + tableName);
+ verifyPermission(warehouseDir + "/" + testDb + ".db/" + tableName);
+
+ Assert.assertTrue(listStatus(warehouseDir + "/" + testDb + ".db/" + tableName).size() > 0);
+ for (String child : listStatus(warehouseDir + "/" + testDb + ".db/" + tableName)) {
+ verifyPermission(child);
+ }
+
+ ret = driver.run("USE default");
+ Assert.assertEquals(0,ret.getResponseCode());
+
+ //cleanup after the test.
+ fs.delete(warehouseDir, true);
+ fs.mkdirs(warehouseDir);
+ Assert.assertEquals(listStatus(warehouseDir.toString()).size(), 0);
+ setupDataTable();
+ }
+
+ @Test
+ public void testCreateTable() throws Exception {
+ String testDb = "mydb2";
+ String tableName = "createtable";
CommandProcessorResponse ret = driver.run("CREATE DATABASE " + testDb);
Assert.assertEquals(0,ret.getResponseCode());
Modified: hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java (original)
+++ hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcDriver2.java Sat Jul 26 23:45:46 2014
@@ -18,8 +18,8 @@
package org.apache.hive.jdbc;
+import static org.apache.hadoop.hive.conf.SystemVariables.SET_COLUMN_NAME;
import static org.apache.hadoop.hive.ql.exec.ExplainTask.EXPL_COLUMN_NAME;
-import static org.apache.hadoop.hive.ql.processors.SetProcessor.SET_COLUMN_NAME;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
@@ -53,7 +53,6 @@ import org.apache.hadoop.hive.conf.HiveC
import org.apache.hadoop.hive.metastore.TableType;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.hive.ql.processors.DfsProcessor;
-import org.apache.hadoop.hive.ql.processors.SetProcessor;
import org.apache.hive.common.util.HiveVersionInfo;
import org.apache.hive.jdbc.Utils.JdbcConnectionParams;
import org.apache.hive.service.cli.operation.ClassicTableTypeMapping;
@@ -276,22 +275,22 @@ public class TestJdbcDriver2 {
Statement s = this.con.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM " + dataTypeTableName);
- rs.close();
- s.close();
-
assertTrue(s.getConnection() == this.con);
assertTrue(rs.getStatement() == s);
+ rs.close();
+ s.close();
+
/* Test parent references from PreparedStatement */
PreparedStatement ps = this.con.prepareStatement("SELECT * FROM " + dataTypeTableName);
rs = ps.executeQuery();
- rs.close();
- ps.close();
-
assertTrue(ps.getConnection() == this.con);
assertTrue(rs.getStatement() == ps);
+ rs.close();
+ ps.close();
+
/* Test DatabaseMetaData queries which do not have a parent Statement */
DatabaseMetaData md = this.con.getMetaData();
@@ -1888,7 +1887,7 @@ public class TestJdbcDriver2 {
*/
@Test
public void testFetchFirstSetCmds() throws Exception {
- execFetchFirst("set -v", SetProcessor.SET_COLUMN_NAME, false);
+ execFetchFirst("set -v", SET_COLUMN_NAME, false);
}
/**
@@ -1997,7 +1996,7 @@ public class TestJdbcDriver2 {
assertEquals("", res.getString(4)); // column
assertEquals("hive_test_user", res.getString(5));
assertEquals("USER", res.getString(6));
- assertEquals("Select", res.getString(7));
+ assertEquals("SELECT", res.getString(7));
assertEquals(false, res.getBoolean(8)); // grant option
assertEquals(-1, res.getLong(9));
assertNotNull(res.getString(10)); // grantor
Modified: hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcWithMiniMr.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcWithMiniMr.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcWithMiniMr.java (original)
+++ hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/TestJdbcWithMiniMr.java Sat Jul 26 23:45:46 2014
@@ -213,6 +213,37 @@ public class TestJdbcWithMiniMr {
stmt.execute("DROP TABLE " + tableName);
}
+ @Test
+ public void testTempTable() throws Exception {
+ // Create temp table with current connection
+ String tempTableName = "tmp1";
+ stmt.execute("CREATE TEMPORARY TABLE " + tempTableName + " (key string, value string)");
+ stmt.execute("load data local inpath '"
+ + dataFilePath.toString() + "' into table " + tempTableName);
+
+ String resultVal = "val_238";
+ String queryStr = "SELECT * FROM " + tempTableName +
+ " where value = '" + resultVal + "'";
+ verifyResult(queryStr, resultVal, 2);
+
+ // A second connection should not be able to see the table
+ Connection conn2 = DriverManager.getConnection(miniHS2.getJdbcURL(dbName),
+ System.getProperty("user.name"), "bar");
+ Statement stmt2 = conn2.createStatement();
+ stmt2.execute("USE " + dbName);
+ boolean gotException = false;
+ try {
+ ResultSet res;
+ res = stmt2.executeQuery(queryStr);
+ } catch (SQLException err) {
+ // This is expected to fail.
+ assertTrue("Expecting table not found error, instead got: " + err,
+ err.getMessage().contains("Table not found"));
+ gotException = true;
+ }
+ assertTrue("Exception while querying non-existing temp table", gotException);
+ }
+
private void checkForNotExist(ResultSet res) throws Exception {
int numRows = 0;
while (res.next()) {
Modified: hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/authorization/TestJdbcWithSQLAuthorization.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/authorization/TestJdbcWithSQLAuthorization.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/authorization/TestJdbcWithSQLAuthorization.java (original)
+++ hive/branches/spark/itests/hive-unit/src/test/java/org/apache/hive/jdbc/authorization/TestJdbcWithSQLAuthorization.java Sat Jul 26 23:45:46 2014
@@ -125,12 +125,14 @@ public class TestJdbcWithSQLAuthorizatio
// create tables
try {
stmt.execute("dfs -ls /tmp/");
- } catch (SQLException e){
+ } catch (SQLException e) {
caughtException = true;
- assertTrue("Checking error message content",
- e.getMessage().contains("Insufficient privileges to execute"));
- }
- finally {
+ String msg = "Permission denied: Principal [name=user1, type=USER] does not have "
+ + "following privileges for operation DFS [[ADMIN PRIVILEGE] on "
+ + "Object [type=COMMAND_PARAMS, name=[-ls, /tmp/]]]";
+ assertTrue("Checking content of error message:" + e.getMessage(),
+ e.getMessage().contains(msg));
+ } finally {
stmt.close();
hs2Conn.close();
}
Modified: hive/branches/spark/itests/qtest/testconfiguration.properties
URL: http://svn.apache.org/viewvc/hive/branches/spark/itests/qtest/testconfiguration.properties?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/itests/qtest/testconfiguration.properties (original)
+++ hive/branches/spark/itests/qtest/testconfiguration.properties Sat Jul 26 23:45:46 2014
@@ -1,5 +1,5 @@
-minimr.query.files=stats_counter_partitioned.q,list_bucket_dml_10.q,input16_cc.q,scriptfile1.q,scriptfile1_win.q,bucket4.q,bucketmapjoin6.q,disable_merge_for_bucketing.q,reduce_deduplicate.q,smb_mapjoin_8.q,join1.q,groupby2.q,bucketizedhiveinputformat.q,bucketmapjoin7.q,optrstat_groupby.q,bucket_num_reducers.q,bucket5.q,load_fs2.q,bucket_num_reducers2.q,infer_bucket_sort_merge.q,infer_bucket_sort_reducers_power_two.q,infer_bucket_sort_dyn_part.q,infer_bucket_sort_bucketed_table.q,infer_bucket_sort_map_operators.q,infer_bucket_sort_num_buckets.q,leftsemijoin_mr.q,schemeAuthority.q,schemeAuthority2.q,truncate_column_buckets.q,remote_script.q,,load_hdfs_file_with_space_in_the_name.q,parallel_orderby.q,import_exported_table.q,stats_counter.q,auto_sortmerge_join_16.q,quotedid_smb.q,file_with_header_footer.q,external_table_with_space_in_location_path.q,root_dir_external_table.q,index_bitmap3.q,ql_rewrite_gbtoidx.q,index_bitmap_auto.q,udf_using.q
+minimr.query.files=stats_counter_partitioned.q,list_bucket_dml_10.q,input16_cc.q,scriptfile1.q,scriptfile1_win.q,bucket4.q,bucketmapjoin6.q,disable_merge_for_bucketing.q,reduce_deduplicate.q,smb_mapjoin_8.q,join1.q,groupby2.q,bucketizedhiveinputformat.q,bucketmapjoin7.q,optrstat_groupby.q,bucket_num_reducers.q,bucket5.q,load_fs2.q,bucket_num_reducers2.q,infer_bucket_sort_merge.q,infer_bucket_sort_reducers_power_two.q,infer_bucket_sort_dyn_part.q,infer_bucket_sort_bucketed_table.q,infer_bucket_sort_map_operators.q,infer_bucket_sort_num_buckets.q,leftsemijoin_mr.q,schemeAuthority.q,schemeAuthority2.q,truncate_column_buckets.q,remote_script.q,,load_hdfs_file_with_space_in_the_name.q,parallel_orderby.q,import_exported_table.q,stats_counter.q,auto_sortmerge_join_16.q,quotedid_smb.q,file_with_header_footer.q,external_table_with_space_in_location_path.q,root_dir_external_table.q,index_bitmap3.q,ql_rewrite_gbtoidx.q,index_bitmap_auto.q,udf_using.q,empty_dir_in_table.q,temp_table_external.q
minimr.query.negative.files=cluster_tasklog_retrieval.q,minimr_broken_pipe.q,mapreduce_stack_trace.q,mapreduce_stack_trace_turnoff.q,mapreduce_stack_trace_hadoop20.q,mapreduce_stack_trace_turnoff_hadoop20.q,file_with_header_footer_negative.q,udf_local_resource.q
minitez.query.files=tez_fsstat.q,mapjoin_decimal.q,tez_join_tests.q,tez_joins_explain.q,mrr.q,tez_dml.q,tez_insert_overwrite_local_directory_1.q,tez_union.q,bucket_map_join_tez1.q,bucket_map_join_tez2.q,tez_schema_evolution.q,tez_join_hash.q
-minitez.query.files.shared=cross_product_check_1.q,cross_product_check_2.q,dynpart_sort_opt_vectorization.q,dynpart_sort_optimization.q,orc_analyze.q,join0.q,join1.q,auto_join0.q,auto_join1.q,bucket2.q,bucket3.q,bucket4.q,count.q,create_merge_compressed.q,cross_join.q,ctas.q,custom_input_output_format.q,disable_merge_for_bucketing.q,enforce_order.q,filter_join_breaktask.q,filter_join_breaktask2.q,groupby1.q,groupby2.q,groupby3.q,having.q,insert1.q,insert_into1.q,insert_into2.q,leftsemijoin.q,limit_pushdown.q,load_dyn_part1.q,load_dyn_part2.q,load_dyn_part3.q,mapjoin_mapjoin.q,mapreduce1.q,mapreduce2.q,merge1.q,merge2.q,metadata_only_queries.q,sample1.q,subquery_in.q,subquery_exists.q,vectorization_15.q,ptf.q,stats_counter.q,stats_noscan_1.q,stats_counter_partitioned.q,union2.q,union3.q,union4.q,union5.q,union6.q,union7.q,union8.q,union9.q,transform1.q,transform2.q,transform_ppr1.q,transform_ppr2.q,script_env_var1.q,script_env_var2.q,script_pipe.q,scriptfile1.q
+minitez.query.files.shared=cross_product_check_1.q,cross_product_check_2.q,dynpart_sort_opt_vectorization.q,dynpart_sort_optimization.q,orc_analyze.q,join0.q,join1.q,auto_join0.q,auto_join1.q,bucket2.q,bucket3.q,bucket4.q,count.q,create_merge_compressed.q,cross_join.q,ctas.q,custom_input_output_format.q,disable_merge_for_bucketing.q,enforce_order.q,filter_join_breaktask.q,filter_join_breaktask2.q,groupby1.q,groupby2.q,groupby3.q,having.q,insert1.q,insert_into1.q,insert_into2.q,leftsemijoin.q,limit_pushdown.q,load_dyn_part1.q,load_dyn_part2.q,load_dyn_part3.q,mapjoin_mapjoin.q,mapreduce1.q,mapreduce2.q,merge1.q,merge2.q,metadata_only_queries.q,sample1.q,subquery_in.q,subquery_exists.q,vectorization_15.q,ptf.q,stats_counter.q,stats_noscan_1.q,stats_counter_partitioned.q,union2.q,union3.q,union4.q,union5.q,union6.q,union7.q,union8.q,union9.q,transform1.q,transform2.q,transform_ppr1.q,transform_ppr2.q,script_env_var1.q,script_env_var2.q,script_pipe.q,scriptfile1.q,metadataonly1.q,temp_t
able.q,vectorized_ptf.q,optimize_nullscan.q,vector_cast_constant.q
beeline.positive.exclude=add_part_exist.q,alter1.q,alter2.q,alter4.q,alter5.q,alter_rename_partition.q,alter_rename_partition_authorization.q,archive.q,archive_corrupt.q,archive_multi.q,archive_mr_1806.q,archive_multi_mr_1806.q,authorization_1.q,authorization_2.q,authorization_4.q,authorization_5.q,authorization_6.q,authorization_7.q,ba_table1.q,ba_table2.q,ba_table3.q,ba_table_udfs.q,binary_table_bincolserde.q,binary_table_colserde.q,cluster.q,columnarserde_create_shortcut.q,combine2.q,constant_prop.q,create_nested_type.q,create_or_replace_view.q,create_struct_table.q,create_union_table.q,database.q,database_location.q,database_properties.q,ddltime.q,describe_database_json.q,drop_database_removes_partition_dirs.q,escape1.q,escape2.q,exim_00_nonpart_empty.q,exim_01_nonpart.q,exim_02_00_part_empty.q,exim_02_part.q,exim_03_nonpart_over_compat.q,exim_04_all_part.q,exim_04_evolved_parts.q,exim_05_some_part.q,exim_06_one_part.q,exim_07_all_part_over_nonoverlap.q,exim_08_nonpart_rename.q,
exim_09_part_spec_nonoverlap.q,exim_10_external_managed.q,exim_11_managed_external.q,exim_12_external_location.q,exim_13_managed_location.q,exim_14_managed_location_over_existing.q,exim_15_external_part.q,exim_16_part_external.q,exim_17_part_managed.q,exim_18_part_external.q,exim_19_00_part_external_location.q,exim_19_part_external_location.q,exim_20_part_managed_location.q,exim_21_export_authsuccess.q,exim_22_import_exist_authsuccess.q,exim_23_import_part_authsuccess.q,exim_24_import_nonexist_authsuccess.q,global_limit.q,groupby_complex_types.q,groupby_complex_types_multi_single_reducer.q,index_auth.q,index_auto.q,index_auto_empty.q,index_bitmap.q,index_bitmap1.q,index_bitmap2.q,index_bitmap3.q,index_bitmap_auto.q,index_bitmap_rc.q,index_compact.q,index_compact_1.q,index_compact_2.q,index_compact_3.q,index_stale_partitioned.q,init_file.q,input16.q,input16_cc.q,input46.q,input_columnarserde.q,input_dynamicserde.q,input_lazyserde.q,input_testxpath3.q,input_testxpath4.q,insert2_overwr
ite_partitions.q,insertexternal1.q,join_thrift.q,lateral_view.q,load_binary_data.q,load_exist_part_authsuccess.q,load_nonpart_authsuccess.q,load_part_authsuccess.q,loadpart_err.q,lock1.q,lock2.q,lock3.q,lock4.q,merge_dynamic_partition.q,multi_insert.q,multi_insert_move_tasks_share_dependencies.q,null_column.q,ppd_clusterby.q,query_with_semi.q,rename_column.q,sample6.q,sample_islocalmode_hook.q,set_processor_namespaces.q,show_tables.q,source.q,split_sample.q,str_to_map.q,transform1.q,udaf_collect_set.q,udaf_context_ngrams.q,udaf_histogram_numeric.q,udaf_ngrams.q,udaf_percentile_approx.q,udf_array.q,udf_bitmap_and.q,udf_bitmap_or.q,udf_explode.q,udf_format_number.q,udf_map.q,udf_map_keys.q,udf_map_values.q,udf_max.q,udf_min.q,udf_named_struct.q,udf_percentile.q,udf_printf.q,udf_sentences.q,udf_sort_array.q,udf_split.q,udf_struct.q,udf_substr.q,udf_translate.q,udf_union.q,udf_xpath.q,udtf_stack.q,view.q,virtual_column.q
Modified: hive/branches/spark/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAccessControllerForTest.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAccessControllerForTest.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAccessControllerForTest.java (original)
+++ hive/branches/spark/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAccessControllerForTest.java Sat Jul 26 23:45:46 2014
@@ -19,11 +19,9 @@ package org.apache.hadoop.hive.ql.securi
import org.apache.hadoop.classification.InterfaceAudience.Private;
import org.apache.hadoop.hive.conf.HiveConf;
-import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
import org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAuthzPluginException;
import org.apache.hadoop.hive.ql.security.authorization.plugin.HiveMetastoreClientFactory;
-import org.apache.hadoop.hive.ql.security.authorization.plugin.sqlstd.SQLStdHiveAccessController;
/**
* Extends SQLStdHiveAccessController to relax the restriction of not being able to run dfs
@@ -43,9 +41,6 @@ public class SQLStdHiveAccessControllerF
public void applyAuthorizationConfigPolicy(HiveConf hiveConf) {
super.applyAuthorizationConfigPolicy(hiveConf);
- // allow set and dfs commands
- hiveConf.setVar(ConfVars.HIVE_SECURITY_COMMAND_WHITELIST, "set,dfs");
-
// remove restrictions on the variables that can be set using set command
hiveConf.setIsModWhiteListEnabled(false);
Modified: hive/branches/spark/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizerFactoryForTest.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizerFactoryForTest.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizerFactoryForTest.java (original)
+++ hive/branches/spark/itests/util/src/main/java/org/apache/hadoop/hive/ql/security/authorization/plugin/sqlstd/SQLStdHiveAuthorizerFactoryForTest.java Sat Jul 26 23:45:46 2014
@@ -35,7 +35,7 @@ public class SQLStdHiveAuthorizerFactory
new SQLStdHiveAccessControllerForTest(metastoreClientFactory, conf, authenticator);
return new HiveAuthorizerImpl(
privilegeManager,
- new SQLStdHiveAuthorizationValidator(metastoreClientFactory, conf, authenticator,
+ new SQLStdHiveAuthorizationValidatorForTest(metastoreClientFactory, conf, authenticator,
privilegeManager)
);
}
Modified: hive/branches/spark/jdbc/pom.xml
URL: http://svn.apache.org/viewvc/hive/branches/spark/jdbc/pom.xml?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/jdbc/pom.xml (original)
+++ hive/branches/spark/jdbc/pom.xml Sat Jul 26 23:45:46 2014
@@ -121,6 +121,7 @@
<goal>shade</goal>
</goals>
<configuration>
+ <minimizeJar>true</minimizeJar>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>${hive.jdbc.driver.classifier}</shadedClassifierName>
<artifactSet>
Modified: hive/branches/spark/jdbc/src/java/org/apache/hive/jdbc/HiveStatement.java
URL: http://svn.apache.org/viewvc/hive/branches/spark/jdbc/src/java/org/apache/hive/jdbc/HiveStatement.java?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/jdbc/src/java/org/apache/hive/jdbc/HiveStatement.java (original)
+++ hive/branches/spark/jdbc/src/java/org/apache/hive/jdbc/HiveStatement.java Sat Jul 26 23:45:46 2014
@@ -111,26 +111,20 @@ public class HiveStatement implements ja
@Override
public void cancel() throws SQLException {
- if (isClosed) {
- throw new SQLException("Can't cancel after statement has been closed");
- }
-
- if (stmtHandle == null) {
- return;
- }
+ checkConnection("cancel");
- TCancelOperationReq cancelReq = new TCancelOperationReq();
- cancelReq.setOperationHandle(stmtHandle);
+ transportLock.lock();
try {
- transportLock.lock();
- TCancelOperationResp cancelResp = client.CancelOperation(cancelReq);
- Utils.verifySuccessWithInfo(cancelResp.getStatus());
+ if (stmtHandle != null) {
+ TCancelOperationReq cancelReq = new TCancelOperationReq(stmtHandle);
+ TCancelOperationResp cancelResp = client.CancelOperation(cancelReq);
+ Utils.verifySuccessWithInfo(cancelResp.getStatus());
+ }
} catch (SQLException e) {
throw e;
} catch (Exception e) {
throw new SQLException(e.toString(), "08S01", e);
- }
- finally {
+ } finally {
transportLock.unlock();
}
}
@@ -158,11 +152,10 @@ public class HiveStatement implements ja
}
void closeClientOperation() throws SQLException {
+ transportLock.lock();
try {
if (stmtHandle != null) {
- TCloseOperationReq closeReq = new TCloseOperationReq();
- closeReq.setOperationHandle(stmtHandle);
- transportLock.lock();
+ TCloseOperationReq closeReq = new TCloseOperationReq(stmtHandle);
TCloseOperationResp closeResp = client.CloseOperation(closeReq);
Utils.verifySuccessWithInfo(closeResp.getStatus());
}
@@ -170,8 +163,7 @@ public class HiveStatement implements ja
throw e;
} catch (Exception e) {
throw new SQLException(e.toString(), "08S01", e);
- }
- finally {
+ } finally {
transportLock.unlock();
}
stmtHandle = null;
@@ -187,16 +179,14 @@ public class HiveStatement implements ja
if (isClosed) {
return;
}
- if (stmtHandle != null) {
- closeClientOperation();
- }
+ closeClientOperation();
client = null;
resultSet = null;
isClosed = true;
}
+ // JDK 1.7
public void closeOnCompletion() throws SQLException {
- // JDK 1.7
throw new SQLException("Method not supported");
}
@@ -208,25 +198,22 @@ public class HiveStatement implements ja
@Override
public boolean execute(String sql) throws SQLException {
- if (isClosed) {
- throw new SQLException("Can't execute after statement has been closed");
- }
+ checkConnection("execute");
- try {
- if (stmtHandle != null) {
- closeClientOperation();
- }
+ closeClientOperation();
- TExecuteStatementReq execReq = new TExecuteStatementReq(sessHandle, sql);
- /**
- * Run asynchronously whenever possible
- * Currently only a SQLOperation can be run asynchronously,
- * in a background operation thread
- * Compilation is synchronous and execution is asynchronous
- */
- execReq.setRunAsync(true);
- execReq.setConfOverlay(sessConf);
- transportLock.lock();
+ TExecuteStatementReq execReq = new TExecuteStatementReq(sessHandle, sql);
+ /**
+ * Run asynchronously whenever possible
+ * Currently only a SQLOperation can be run asynchronously,
+ * in a background operation thread
+ * Compilation is synchronous and execution is asynchronous
+ */
+ execReq.setRunAsync(true);
+ execReq.setConfOverlay(sessConf);
+
+ transportLock.lock();
+ try {
TExecuteStatementResp execResp = client.ExecuteStatement(execReq);
Utils.verifySuccessWithInfo(execResp.getStatus());
stmtHandle = execResp.getOperationHandle();
@@ -234,8 +221,7 @@ public class HiveStatement implements ja
throw eS;
} catch (Exception ex) {
throw new SQLException(ex.toString(), "08S01", ex);
- }
- finally {
+ } finally {
transportLock.unlock();
}
@@ -253,11 +239,7 @@ public class HiveStatement implements ja
transportLock.lock();
try {
statusResp = client.GetOperationStatus(statusReq);
- }
- catch (Exception e) {
- throw e;
- }
- finally {
+ } finally {
transportLock.unlock();
}
Utils.verifySuccessWithInfo(statusResp.getStatus());
@@ -300,6 +282,12 @@ public class HiveStatement implements ja
return true;
}
+ private void checkConnection(String action) throws SQLException {
+ if (isClosed) {
+ throw new SQLException("Can't " + action + " after statement has been closed");
+ }
+ }
+
/*
* (non-Javadoc)
*
@@ -411,6 +399,7 @@ public class HiveStatement implements ja
@Override
public Connection getConnection() throws SQLException {
+ checkConnection("getConnection");
return this.connection;
}
@@ -422,7 +411,8 @@ public class HiveStatement implements ja
@Override
public int getFetchDirection() throws SQLException {
- throw new SQLException("Method not supported");
+ checkConnection("getFetchDirection");
+ return ResultSet.FETCH_FORWARD;
}
/*
@@ -433,6 +423,7 @@ public class HiveStatement implements ja
@Override
public int getFetchSize() throws SQLException {
+ checkConnection("getFetchSize");
return fetchSize;
}
@@ -466,6 +457,7 @@ public class HiveStatement implements ja
@Override
public int getMaxRows() throws SQLException {
+ checkConnection("getMaxRows");
return maxRows;
}
@@ -499,7 +491,8 @@ public class HiveStatement implements ja
@Override
public int getQueryTimeout() throws SQLException {
- throw new SQLException("Method not supported");
+ checkConnection("getQueryTimeout");
+ return 0;
}
/*
@@ -510,6 +503,7 @@ public class HiveStatement implements ja
@Override
public ResultSet getResultSet() throws SQLException {
+ checkConnection("getResultSet");
return resultSet;
}
@@ -543,7 +537,8 @@ public class HiveStatement implements ja
@Override
public int getResultSetType() throws SQLException {
- throw new SQLException("Method not supported");
+ checkConnection("getResultSetType");
+ return ResultSet.TYPE_FORWARD_ONLY;
}
/*
@@ -554,6 +549,7 @@ public class HiveStatement implements ja
@Override
public int getUpdateCount() throws SQLException {
+ checkConnection("getUpdateCount");
return 0;
}
@@ -565,6 +561,7 @@ public class HiveStatement implements ja
@Override
public SQLWarning getWarnings() throws SQLException {
+ checkConnection("getWarnings");
return warningChain;
}
@@ -579,9 +576,9 @@ public class HiveStatement implements ja
return isClosed;
}
+ // JDK 1.7
public boolean isCloseOnCompletion() throws SQLException {
- // JDK 1.7
- throw new SQLException("Method not supported");
+ return false;
}
/*
@@ -592,7 +589,7 @@ public class HiveStatement implements ja
@Override
public boolean isPoolable() throws SQLException {
- throw new SQLException("Method not supported");
+ return false;
}
/*
@@ -625,7 +622,10 @@ public class HiveStatement implements ja
@Override
public void setFetchDirection(int direction) throws SQLException {
- throw new SQLException("Method not supported");
+ checkConnection("setFetchDirection");
+ if (direction != ResultSet.FETCH_FORWARD) {
+ throw new SQLException("Not supported direction " + direction);
+ }
}
/*
@@ -636,6 +636,7 @@ public class HiveStatement implements ja
@Override
public void setFetchSize(int rows) throws SQLException {
+ checkConnection("setFetchSize");
fetchSize = rows;
}
@@ -658,6 +659,7 @@ public class HiveStatement implements ja
@Override
public void setMaxRows(int max) throws SQLException {
+ checkConnection("setMaxRows");
if (max < 0) {
throw new SQLException("max must be >= 0");
}
@@ -694,7 +696,7 @@ public class HiveStatement implements ja
@Override
public boolean isWrapperFor(Class<?> iface) throws SQLException {
- throw new SQLException("Method not supported");
+ return false;
}
/*
@@ -705,7 +707,7 @@ public class HiveStatement implements ja
@Override
public <T> T unwrap(Class<T> iface) throws SQLException {
- throw new SQLException("Method not supported");
+ throw new SQLException("Cannot unwrap to " + iface);
}
}
Modified: hive/branches/spark/metastore/if/hive_metastore.thrift
URL: http://svn.apache.org/viewvc/hive/branches/spark/metastore/if/hive_metastore.thrift?rev=1613740&r1=1613739&r2=1613740&view=diff
==============================================================================
--- hive/branches/spark/metastore/if/hive_metastore.thrift (original)
+++ hive/branches/spark/metastore/if/hive_metastore.thrift Sat Jul 26 23:45:46 2014
@@ -101,6 +101,11 @@ enum CompactionType {
MAJOR = 2,
}
+enum GrantRevokeType {
+ GRANT = 1,
+ REVOKE = 2,
+}
+
struct HiveObjectRef{
1: HiveObjectType objectType,
2: string dbName,
@@ -134,6 +139,16 @@ struct PrincipalPrivilegeSet {
3: map<string, list<PrivilegeGrantInfo>> rolePrivileges, //role name -> privilege grant info
}
+struct GrantRevokePrivilegeRequest {
+ 1: GrantRevokeType requestType;
+ 2: PrivilegeBag privileges;
+ 3: optional bool revokeGrantOption; // Only for revoke request
+}
+
+struct GrantRevokePrivilegeResponse {
+ 1: optional bool success;
+}
+
struct Role {
1: string roleName,
2: i32 createTime,
@@ -168,6 +183,20 @@ struct GetPrincipalsInRoleResponse {
1: required list<RolePrincipalGrant> principalGrants;
}
+struct GrantRevokeRoleRequest {
+ 1: GrantRevokeType requestType;
+ 2: string roleName;
+ 3: string principalName;
+ 4: PrincipalType principalType;
+ 5: optional string grantor; // Needed for grant
+ 6: optional PrincipalType grantorType; // Needed for grant
+ 7: optional bool grantOption;
+}
+
+struct GrantRevokeRoleResponse {
+ 1: optional bool success;
+}
+
// namespace for tables
struct Database {
1: string name,
@@ -230,6 +259,7 @@ struct Table {
11: string viewExpandedText, // expanded view text, null for non-view
12: string tableType, // table type enum, e.g. EXTERNAL_TABLE
13: optional PrincipalPrivilegeSet privileges,
+ 14: optional bool temporary=false
}
struct Partition {
@@ -957,11 +987,14 @@ service ThriftHiveMetastore extends fb30
bool create_role(1:Role role) throws(1:MetaException o1)
bool drop_role(1:string role_name) throws(1:MetaException o1)
list<string> get_role_names() throws(1:MetaException o1)
+ // Deprecated, use grant_revoke_role()
bool grant_role(1:string role_name, 2:string principal_name, 3:PrincipalType principal_type,
4:string grantor, 5:PrincipalType grantorType, 6:bool grant_option) throws(1:MetaException o1)
+ // Deprecated, use grant_revoke_role()
bool revoke_role(1:string role_name, 2:string principal_name, 3:PrincipalType principal_type)
throws(1:MetaException o1)
list<Role> list_roles(1:string principal_name, 2:PrincipalType principal_type) throws(1:MetaException o1)
+ GrantRevokeRoleResponse grant_revoke_role(1:GrantRevokeRoleRequest request) throws(1:MetaException o1)
// get all role-grants for users/roles that have been granted the given role
// Note that in the returned list of RolePrincipalGrants, the roleName is
@@ -978,8 +1011,11 @@ service ThriftHiveMetastore extends fb30
list<HiveObjectPrivilege> list_privileges(1:string principal_name, 2:PrincipalType principal_type,
3: HiveObjectRef hiveObject) throws(1:MetaException o1)
+ // Deprecated, use grant_revoke_privileges()
bool grant_privileges(1:PrivilegeBag privileges) throws(1:MetaException o1)
+ // Deprecated, use grant_revoke_privileges()
bool revoke_privileges(1:PrivilegeBag privileges) throws(1:MetaException o1)
+ GrantRevokePrivilegeResponse grant_revoke_privileges(1:GrantRevokePrivilegeRequest request) throws(1:MetaException o1);
// this is used by metastore client to send UGI information to metastore server immediately
// after setting up a connection.