You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2012/04/26 19:47:46 UTC
svn commit: r1330991 [1/2] - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/parse/ test/queries/clientpositive/
test/results/clientnegative/ test/results/clientpositive/
Author: namit
Date: Thu Apr 26 17:47:45 2012
New Revision: 1330991
URL: http://svn.apache.org/viewvc?rev=1330991&view=rev
Log:
HIVE-2721 ability to select a view qualified by the database / schema name
(Martin Traverso via namit)
Added:
hive/trunk/ql/src/test/queries/clientpositive/view.q
hive/trunk/ql/src/test/results/clientpositive/view.q.out
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/UnparseTranslator.java
hive/trunk/ql/src/test/results/clientnegative/invalidate_view1.q.out
hive/trunk/ql/src/test/results/clientpositive/create_or_replace_view.q.out
hive/trunk/ql/src/test/results/clientpositive/create_view.q.out
hive/trunk/ql/src/test/results/clientpositive/create_view_partitioned.q.out
hive/trunk/ql/src/test/results/clientpositive/insert2_overwrite_partitions.q.out
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java?rev=1330991&r1=1330990&r2=1330991&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/BaseSemanticAnalyzer.java Thu Apr 26 17:47:45 2012
@@ -330,6 +330,28 @@ public abstract class BaseSemanticAnalyz
}
/**
+ * Get the unqualified name from a table node.
+ *
+ * This method works for table names qualified with their schema (e.g., "db.table")
+ * and table names without schema qualification. In both cases, it returns
+ * the table name without the schema.
+ *
+ * @param node the table node
+ * @return the table name without schema qualification
+ * (i.e., if name is "db.table" or "table", returns "table")
+ */
+ public static String getUnescapedUnqualifiedTableName(ASTNode node) {
+ assert node.getChildCount() <= 2;
+
+ if (node.getChildCount() == 2) {
+ node = (ASTNode) node.getChild(1);
+ }
+
+ return getUnescapedName(node);
+ }
+
+
+ /**
* Remove the encapsulating "`" pair from the identifier. We allow users to
* use "`" to escape identifier for table names, column names and aliases, in
* case that coincide with Hive language keywords.
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java?rev=1330991&r1=1330990&r2=1330991&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java Thu Apr 26 17:47:45 2012
@@ -496,8 +496,13 @@ public class SemanticAnalyzer extends Ba
String tabIdName = getUnescapedName(tableTree);
- String alias = (aliasIndex != 0) ?
- unescapeIdentifier(tabref.getChild(aliasIndex).getText()) : tabIdName;
+ String alias;
+ if (aliasIndex != 0) {
+ alias = unescapeIdentifier(tabref.getChild(aliasIndex).getText());
+ }
+ else {
+ alias = getUnescapedUnqualifiedTableName(tableTree);
+ }
// If the alias is already there then we have a conflict
if (qb.exists(alias)) {
@@ -556,7 +561,7 @@ public class SemanticAnalyzer extends Ba
qb.getParseInfo().setSrcForAlias(alias, tableTree);
- unparseTranslator.addTableNameTranslation(tableTree);
+ unparseTranslator.addTableNameTranslation(tableTree, db.getCurrentDatabase());
if (aliasIndex != 0) {
unparseTranslator.addIdentifierTranslation((ASTNode) tabref
.getChild(aliasIndex));
@@ -977,11 +982,6 @@ public class SemanticAnalyzer extends Ba
}
if (tab.isView()) {
- // TODO: add support to referencing views in foreign databases.
- if (!tab.getDbName().equals(db.getCurrentDatabase())) {
- throw new SemanticException(ErrorMsg.INVALID_TABLE_ALIAS.
- getMsg("Referencing view from foreign databases is not supported."));
- }
if (qb.getParseInfo().isAnalyzeCommand()) {
throw new SemanticException(ErrorMsg.ANALYZE_VIEW.getMsg());
}
@@ -5307,7 +5307,8 @@ public class SemanticAnalyzer extends Ba
// leftAliases should contain the first table, rightAliases should
// contain all other tables and baseSrc should contain all tables
- String tableName = getUnescapedName((ASTNode)child.getChild(0));
+ String tableName = getUnescapedUnqualifiedTableName((ASTNode) child.getChild(0));
+
String alias = child.getChildCount() == 1 ? tableName
: unescapeIdentifier(child.getChild(child.getChildCount() - 1)
.getText().toLowerCase());
@@ -5410,8 +5411,9 @@ public class SemanticAnalyzer extends Ba
if ((left.getToken().getType() == HiveParser.TOK_TABREF)
|| (left.getToken().getType() == HiveParser.TOK_SUBQUERY)) {
- String table_name = getUnescapedName((ASTNode)left.getChild(0));
- String alias = left.getChildCount() == 1 ? table_name
+ String tableName = getUnescapedUnqualifiedTableName((ASTNode) left.getChild(0))
+ .toLowerCase();
+ String alias = left.getChildCount() == 1 ? tableName
: unescapeIdentifier(left.getChild(left.getChildCount() - 1)
.getText().toLowerCase());
joinTree.setLeftAlias(alias);
@@ -5437,7 +5439,8 @@ public class SemanticAnalyzer extends Ba
if ((right.getToken().getType() == HiveParser.TOK_TABREF)
|| (right.getToken().getType() == HiveParser.TOK_SUBQUERY)) {
- String tableName = getUnescapedName((ASTNode)right.getChild(0));
+ String tableName = getUnescapedUnqualifiedTableName((ASTNode) right.getChild(0))
+ .toLowerCase();
String alias = right.getChildCount() == 1 ? tableName
: unescapeIdentifier(right.getChild(right.getChildCount() - 1)
.getText().toLowerCase());
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/UnparseTranslator.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/UnparseTranslator.java?rev=1330991&r1=1330990&r2=1330991&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/UnparseTranslator.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/UnparseTranslator.java Thu Apr 26 17:47:45 2012
@@ -138,7 +138,7 @@ class UnparseTranslator {
* @param node
* source node (which must be an tabName) to be replaced
*/
- void addTableNameTranslation(ASTNode tableName) {
+ void addTableNameTranslation(ASTNode tableName, String currentDatabaseName) {
if (!enabled) {
return;
}
@@ -148,10 +148,23 @@ class UnparseTranslator {
}
assert (tableName.getToken().getType() == HiveParser.TOK_TABNAME);
assert (tableName.getChildCount() <= 2);
- addIdentifierTranslation((ASTNode)tableName.getChild(0));
+
if (tableName.getChildCount() == 2) {
+ addIdentifierTranslation((ASTNode)tableName.getChild(0));
addIdentifierTranslation((ASTNode)tableName.getChild(1));
}
+ else {
+ // transform the table reference to an absolute reference (i.e., "db.table")
+ StringBuilder replacementText = new StringBuilder();
+ replacementText.append(HiveUtils.unparseIdentifier(currentDatabaseName));
+ replacementText.append('.');
+
+ ASTNode identifier = (ASTNode)tableName.getChild(0);
+ String identifierText = BaseSemanticAnalyzer.unescapeIdentifier(identifier.getText());
+ replacementText.append(HiveUtils.unparseIdentifier(identifierText));
+
+ addTranslation(identifier, replacementText.toString());
+ }
}
/**
Added: hive/trunk/ql/src/test/queries/clientpositive/view.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/view.q?rev=1330991&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/view.q (added)
+++ hive/trunk/ql/src/test/queries/clientpositive/view.q Thu Apr 26 17:47:45 2012
@@ -0,0 +1,51 @@
+CREATE DATABASE db1;
+USE db1;
+
+CREATE TABLE table1 (key STRING, value STRING)
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH '../data/files/kv1.txt'
+OVERWRITE INTO TABLE table1;
+
+CREATE TABLE table2 (key STRING, value STRING)
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH '../data/files/kv1.txt'
+OVERWRITE INTO TABLE table2;
+
+-- relative reference, no alias
+CREATE VIEW v1 AS SELECT * FROM table1;
+
+-- relative reference, aliased
+CREATE VIEW v2 AS SELECT t1.* FROM table1 t1;
+
+-- relative reference, multiple tables
+CREATE VIEW v3 AS SELECT t1.*, t2.key k FROM table1 t1 JOIN table2 t2 ON t1.key = t2.key;
+
+-- absolute reference, no alias
+CREATE VIEW v4 AS SELECT * FROM db1.table1;
+
+-- absolute reference, aliased
+CREATE VIEW v5 AS SELECT t1.* FROM db1.table1 t1;
+
+-- absolute reference, multiple tables
+CREATE VIEW v6 AS SELECT t1.*, t2.key k FROM db1.table1 t1 JOIN db1.table2 t2 ON t1.key = t2.key;
+
+-- relative reference, explicit column
+CREATE VIEW v7 AS SELECT key from table1;
+
+-- absolute reference, explicit column
+CREATE VIEW v8 AS SELECT key from db1.table1;
+
+CREATE DATABASE db2;
+USE db2;
+
+SELECT * FROM db1.v1;
+SELECT * FROM db1.v2;
+SELECT * FROM db1.v3;
+SELECT * FROM db1.v4;
+SELECT * FROM db1.v5;
+SELECT * FROM db1.v6;
+SELECT * FROM db1.v7;
+SELECT * FROM db1.v8;
+
Modified: hive/trunk/ql/src/test/results/clientnegative/invalidate_view1.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/invalidate_view1.q.out?rev=1330991&r1=1330990&r2=1330991&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/invalidate_view1.q.out (original)
+++ hive/trunk/ql/src/test/results/clientnegative/invalidate_view1.q.out Thu Apr 26 17:47:45 2012
@@ -42,7 +42,7 @@ POSTHOOK: type: ALTERTABLE_REPLACECOLS
POSTHOOK: Input: default@xxx10
POSTHOOK: Output: default@xxx10
FAILED: Error in semantic analysis: Line 1:30 Invalid column reference '`value`' in definition of VIEW xxx9 [
-SELECT `xxx10`.`key`, `xxx10`.`value` FROM `xxx10`
+SELECT `xxx10`.`key`, `xxx10`.`value` FROM `default`.`xxx10`
] used as xxx at Line 1:39 in definition of VIEW xxx8 [
-SELECT `xxx`.`key`, `xxx`.`value` FROM `xxx9` `xxx`
+SELECT `xxx`.`key`, `xxx`.`value` FROM `default`.`xxx9` `xxx`
] used as yyy at Line 2:14
Modified: hive/trunk/ql/src/test/results/clientpositive/create_or_replace_view.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/create_or_replace_view.q.out?rev=1330991&r1=1330990&r2=1330991&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/create_or_replace_view.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/create_or_replace_view.q.out Thu Apr 26 17:47:45 2012
@@ -40,7 +40,7 @@ Sort Columns: []
# View Information
View Original Text: select * from srcpart
-View Expanded Text: select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `srcpart`
+View Expanded Text: select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`
PREHOOK: query: -- modifying definition of unpartitioned view
create or replace view v partitioned on (ds, hr) as select * from srcpart
PREHOOK: type: CREATEVIEW
@@ -116,7 +116,7 @@ Sort Columns: []
# View Information
View Original Text: select * from srcpart
-View Expanded Text: select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `srcpart`
+View Expanded Text: select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`
PREHOOK: query: show partitions v
PREHOOK: type: SHOWPARTITIONS
POSTHOOK: query: show partitions v
@@ -179,7 +179,7 @@ Sort Columns: []
# View Information
View Original Text: select value, ds, hr from srcpart
-View Expanded Text: select `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `srcpart`
+View Expanded Text: select `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`
PREHOOK: query: show partitions v
PREHOOK: type: SHOWPARTITIONS
POSTHOOK: query: show partitions v
@@ -243,7 +243,7 @@ Sort Columns: []
# View Information
View Original Text: select key, value, ds, hr from srcpart
-View Expanded Text: select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `srcpart`
+View Expanded Text: select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`
PREHOOK: query: show partitions v
PREHOOK: type: SHOWPARTITIONS
POSTHOOK: query: show partitions v
@@ -324,7 +324,7 @@ Sort Columns: []
# View Information
View Original Text: select * from srcpart
-View Expanded Text: select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `srcpart`
+View Expanded Text: select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`
PREHOOK: query: drop view v
PREHOOK: type: DROPVIEW
PREHOOK: Input: default@v
Modified: hive/trunk/ql/src/test/results/clientpositive/create_view.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/create_view.q.out?rev=1330991&r1=1330990&r2=1330991&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/create_view.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/create_view.q.out Thu Apr 26 17:47:45 2012
@@ -163,7 +163,7 @@ STAGE PLANS:
if not exists: false
or replace: false
columns: valoo string
- expanded text: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `src` WHERE `src`.`key`=86) `view0`
+ expanded text: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `view0`
name: view0
original text: SELECT upper(value) FROM src WHERE key=86
@@ -267,7 +267,7 @@ Sort Columns: []
# View Information
View Original Text: SELECT value FROM src WHERE key=86
-View Expanded Text: SELECT `src`.`value` FROM `src` WHERE `src`.`key`=86
+View Expanded Text: SELECT `src`.`value` FROM `default`.`src` WHERE `src`.`key`=86
PREHOOK: query: DESCRIBE view2
PREHOOK: type: DESCTABLE
POSTHOOK: query: DESCRIBE view2
@@ -311,7 +311,7 @@ Sort Columns: []
# View Information
View Original Text: SELECT * FROM src
-View Expanded Text: SELECT `src`.`key`, `src`.`value` FROM `src`
+View Expanded Text: SELECT `src`.`key`, `src`.`value` FROM `default`.`src`
PREHOOK: query: DESCRIBE view3
PREHOOK: type: DESCTABLE
POSTHOOK: query: DESCRIBE view3
@@ -353,7 +353,7 @@ Sort Columns: []
# View Information
View Original Text: SELECT upper(value) FROM src WHERE key=86
-View Expanded Text: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `src` WHERE `src`.`key`=86) `view3`
+View Expanded Text: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `view3`
PREHOOK: query: ALTER VIEW view3 SET TBLPROPERTIES ("biggest" = "loser")
PREHOOK: type: ALTERVIEW_PROPERTIES
PREHOOK: Input: default@view3
@@ -399,7 +399,7 @@ Sort Columns: []
# View Information
View Original Text: SELECT upper(value) FROM src WHERE key=86
-View Expanded Text: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `src` WHERE `src`.`key`=86) `view3`
+View Expanded Text: SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `view3`
PREHOOK: query: CREATE TABLE table1 (key int)
PREHOOK: type: CREATETABLE
POSTHOOK: query: CREATE TABLE table1 (key int)
@@ -714,7 +714,7 @@ c string
#### A masked pattern was here ####
FROM table1, viewExpandedText:SELECT `_c0` AS `c` FROM (SELECT `test_translate`('abc', 'a', 'b')
-FROM `table1`) `view8`, tableType:VIRTUAL_VIEW)
+FROM `default`.`table1`) `view8`, tableType:VIRTUAL_VIEW)
PREHOOK: query: DESCRIBE FORMATTED view8
PREHOOK: type: DESCTABLE
POSTHOOK: query: DESCRIBE FORMATTED view8
@@ -746,7 +746,7 @@ Sort Columns: []
View Original Text: SELECT test_translate('abc', 'a', 'b')
FROM table1
View Expanded Text: SELECT `_c0` AS `c` FROM (SELECT `test_translate`('abc', 'a', 'b')
-FROM `table1`) `view8`
+FROM `default`.`table1`) `view8`
PREHOOK: query: SELECT * FROM view8
PREHOOK: type: QUERY
PREHOOK: Input: default@table1
@@ -789,7 +789,7 @@ m int
#### A masked pattern was here ####
FROM src, viewExpandedText:SELECT `_c0` AS `m` FROM (SELECT `test_max`(length(`src`.`value`))
-FROM `src`) `view9`, tableType:VIRTUAL_VIEW)
+FROM `default`.`src`) `view9`, tableType:VIRTUAL_VIEW)
PREHOOK: query: DESCRIBE FORMATTED view9
PREHOOK: type: DESCTABLE
POSTHOOK: query: DESCRIBE FORMATTED view9
@@ -821,7 +821,7 @@ Sort Columns: []
View Original Text: SELECT test_max(length(value))
FROM src
View Expanded Text: SELECT `_c0` AS `m` FROM (SELECT `test_max`(length(`src`.`value`))
-FROM `src`) `view9`
+FROM `default`.`src`) `view9`
PREHOOK: query: SELECT * FROM view9
PREHOOK: type: QUERY
PREHOOK: Input: default@src
@@ -885,7 +885,7 @@ Sort Columns: []
# View Information
View Original Text: SELECT slurp.* FROM (SELECT * FROM src WHERE key=86) slurp
-View Expanded Text: SELECT `slurp`.`key`, `slurp`.`value` FROM (SELECT `src`.`key`, `src`.`value` FROM `src` WHERE `src`.`key`=86) `slurp`
+View Expanded Text: SELECT `slurp`.`key`, `slurp`.`value` FROM (SELECT `src`.`key`, `src`.`value` FROM `default`.`src` WHERE `src`.`key`=86) `slurp`
PREHOOK: query: SELECT * FROM view10
PREHOOK: type: QUERY
PREHOOK: Input: default@src
@@ -928,7 +928,7 @@ boom int
#### A masked pattern was here ####
FROM table1, viewExpandedText:SELECT `test_explode`(array(1,2,3)) AS (`boom`)
-FROM `table1`, tableType:VIRTUAL_VIEW)
+FROM `default`.`table1`, tableType:VIRTUAL_VIEW)
PREHOOK: query: DESCRIBE FORMATTED view11
PREHOOK: type: DESCTABLE
POSTHOOK: query: DESCRIBE FORMATTED view11
@@ -960,7 +960,7 @@ Sort Columns: []
View Original Text: SELECT test_explode(array(1,2,3)) AS (boom)
FROM table1
View Expanded Text: SELECT `test_explode`(array(1,2,3)) AS (`boom`)
-FROM `table1`
+FROM `default`.`table1`
PREHOOK: query: SELECT * FROM view11
PREHOOK: type: QUERY
PREHOOK: Input: default@table1
@@ -1028,7 +1028,7 @@ Sort Columns: []
# View Information
View Original Text: SELECT * FROM src LATERAL VIEW explode(array(1,2,3)) myTable AS myCol
-View Expanded Text: SELECT `src`.`key`, `src`.`value`, `mytable`.`mycol` FROM `src` LATERAL VIEW explode(array(1,2,3)) `myTable` AS `myCol`
+View Expanded Text: SELECT `src`.`key`, `src`.`value`, `mytable`.`mycol` FROM `default`.`src` LATERAL VIEW explode(array(1,2,3)) `myTable` AS `myCol`
PREHOOK: query: SELECT * FROM view12
ORDER BY key ASC, myCol ASC LIMIT 1
PREHOOK: type: QUERY
@@ -1082,7 +1082,7 @@ key int
#### A masked pattern was here ####
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 5 ON key) s, viewExpandedText:SELECT `s`.`key`
-FROM `srcbucket` TABLESAMPLE (BUCKET 1 OUT OF 5 ON `key`) `s`, tableType:VIRTUAL_VIEW)
+FROM `default`.`srcbucket` TABLESAMPLE (BUCKET 1 OUT OF 5 ON `key`) `s`, tableType:VIRTUAL_VIEW)
PREHOOK: query: DESCRIBE FORMATTED view13
PREHOOK: type: DESCTABLE
POSTHOOK: query: DESCRIBE FORMATTED view13
@@ -1114,7 +1114,7 @@ Sort Columns: []
View Original Text: SELECT s.key
FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 5 ON key) s
View Expanded Text: SELECT `s`.`key`
-FROM `srcbucket` TABLESAMPLE (BUCKET 1 OUT OF 5 ON `key`) `s`
+FROM `default`.`srcbucket` TABLESAMPLE (BUCKET 1 OUT OF 5 ON `key`) `s`
PREHOOK: query: SELECT * FROM view13
ORDER BY key LIMIT 12
PREHOOK: type: QUERY
@@ -1191,13 +1191,13 @@ JOIN
select s4.key as key, s4.value as value from src s4 where s4.key < 10) unionsrc2
ON (unionsrc1.key = unionsrc2.key), viewExpandedText:SELECT `unionsrc1`.`key` as `k1`, `unionsrc1`.`value` as `v1`,
`unionsrc2`.`key` as `k2`, `unionsrc2`.`value` as `v2`
-FROM (select 'tst1' as `key`, cast(count(1) as string) as `value` from `src` `s1`
+FROM (select 'tst1' as `key`, cast(count(1) as string) as `value` from `default`.`src` `s1`
UNION ALL
- select `s2`.`key` as `key`, `s2`.`value` as `value` from `src` `s2` where `s2`.`key` < 10) `unionsrc1`
+ select `s2`.`key` as `key`, `s2`.`value` as `value` from `default`.`src` `s2` where `s2`.`key` < 10) `unionsrc1`
JOIN
- (select 'tst1' as `key`, cast(count(1) as string) as `value` from `src` `s3`
+ (select 'tst1' as `key`, cast(count(1) as string) as `value` from `default`.`src` `s3`
UNION ALL
- select `s4`.`key` as `key`, `s4`.`value` as `value` from `src` `s4` where `s4`.`key` < 10) `unionsrc2`
+ select `s4`.`key` as `key`, `s4`.`value` as `value` from `default`.`src` `s4` where `s4`.`key` < 10) `unionsrc2`
ON (`unionsrc1`.`key` = `unionsrc2`.`key`), tableType:VIRTUAL_VIEW)
PREHOOK: query: DESCRIBE FORMATTED view14
PREHOOK: type: DESCTABLE
@@ -1242,13 +1242,13 @@ JOIN
ON (unionsrc1.key = unionsrc2.key)
View Expanded Text: SELECT `unionsrc1`.`key` as `k1`, `unionsrc1`.`value` as `v1`,
`unionsrc2`.`key` as `k2`, `unionsrc2`.`value` as `v2`
-FROM (select 'tst1' as `key`, cast(count(1) as string) as `value` from `src` `s1`
+FROM (select 'tst1' as `key`, cast(count(1) as string) as `value` from `default`.`src` `s1`
UNION ALL
- select `s2`.`key` as `key`, `s2`.`value` as `value` from `src` `s2` where `s2`.`key` < 10) `unionsrc1`
+ select `s2`.`key` as `key`, `s2`.`value` as `value` from `default`.`src` `s2` where `s2`.`key` < 10) `unionsrc1`
JOIN
- (select 'tst1' as `key`, cast(count(1) as string) as `value` from `src` `s3`
+ (select 'tst1' as `key`, cast(count(1) as string) as `value` from `default`.`src` `s3`
UNION ALL
- select `s4`.`key` as `key`, `s4`.`value` as `value` from `src` `s4` where `s4`.`key` < 10) `unionsrc2`
+ select `s4`.`key` as `key`, `s4`.`value` as `value` from `default`.`src` `s4` where `s4`.`key` < 10) `unionsrc2`
ON (`unionsrc1`.`key` = `unionsrc2`.`key`)
PREHOOK: query: SELECT * FROM view14
ORDER BY k1
@@ -1313,7 +1313,7 @@ value_count bigint
#### A masked pattern was here ####
FROM src
GROUP BY key, viewExpandedText:SELECT `src`.`key`,COUNT(`src`.`value`) AS `value_count`
-FROM `src`
+FROM `default`.`src`
GROUP BY `src`.`key`, tableType:VIRTUAL_VIEW)
PREHOOK: query: DESCRIBE FORMATTED view15
PREHOOK: type: DESCTABLE
@@ -1348,7 +1348,7 @@ View Original Text: SELECT key,COUNT(va
FROM src
GROUP BY key
View Expanded Text: SELECT `src`.`key`,COUNT(`src`.`value`) AS `value_count`
-FROM `src`
+FROM `default`.`src`
GROUP BY `src`.`key`
PREHOOK: query: SELECT * FROM view15
ORDER BY value_count DESC, key
@@ -1398,7 +1398,7 @@ value string
#### A masked pattern was here ####
FROM src, viewExpandedText:SELECT DISTINCT `src`.`value`
-FROM `src`, tableType:VIRTUAL_VIEW)
+FROM `default`.`src`, tableType:VIRTUAL_VIEW)
PREHOOK: query: DESCRIBE FORMATTED view16
PREHOOK: type: DESCTABLE
POSTHOOK: query: DESCRIBE FORMATTED view16
@@ -1430,7 +1430,7 @@ Sort Columns: []
View Original Text: SELECT DISTINCT value
FROM src
View Expanded Text: SELECT DISTINCT `src`.`value`
-FROM `src`
+FROM `default`.`src`
PREHOOK: query: SELECT * FROM view16
ORDER BY value
LIMIT 10
Modified: hive/trunk/ql/src/test/results/clientpositive/create_view_partitioned.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/create_view_partitioned.q.out?rev=1330991&r1=1330990&r2=1330991&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/create_view_partitioned.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/create_view_partitioned.q.out Thu Apr 26 17:47:45 2012
@@ -41,7 +41,7 @@ value string
#### A masked pattern was here ####
FROM src
WHERE key=86, viewExpandedText:SELECT `src`.`key`, `src`.`value`
-FROM `src`
+FROM `default`.`src`
WHERE `src`.`key`=86, tableType:VIRTUAL_VIEW)
PREHOOK: query: DESCRIBE FORMATTED vp1
PREHOOK: type: DESCTABLE
@@ -79,7 +79,7 @@ View Original Text: SELECT key, value
FROM src
WHERE key=86
View Expanded Text: SELECT `src`.`key`, `src`.`value`
-FROM `src`
+FROM `default`.`src`
WHERE `src`.`key`=86
PREHOOK: query: SELECT * FROM vp1
PREHOOK: type: QUERY
@@ -271,7 +271,7 @@ Sort Columns: []
# View Information
View Original Text: SELECT * FROM srcpart WHERE key < 10
-View Expanded Text: SELECT `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` FROM `srcpart` WHERE `srcpart`.`key` < 10
+View Expanded Text: SELECT `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` FROM `default`.`srcpart` WHERE `srcpart`.`key` < 10
PREHOOK: query: ALTER VIEW vp2 ADD PARTITION (hr='11') PARTITION (hr='12')
PREHOOK: type: ALTERTABLE_ADDPARTS
PREHOOK: Input: default@srcpart@ds=2008-04-08/hr=11
@@ -377,7 +377,7 @@ View Original Text: SELECT key, value
FROM src
WHERE key=86
View Expanded Text: SELECT `key` AS `k`, `value` AS `v` FROM (SELECT `src`.`key`, `src`.`value`
-FROM `src`
+FROM `default`.`src`
WHERE `src`.`key`=86) `vp3`
PREHOOK: query: ALTER VIEW vp3
ADD PARTITION (v='val_86')
Modified: hive/trunk/ql/src/test/results/clientpositive/insert2_overwrite_partitions.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/insert2_overwrite_partitions.q.out?rev=1330991&r1=1330990&r2=1330991&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/insert2_overwrite_partitions.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/insert2_overwrite_partitions.q.out Thu Apr 26 17:47:45 2012
@@ -48,9 +48,9 @@ STAGE PLANS:
Stage: Stage-1
Map Reduce
Alias -> Map Operator Tree:
- db1.sourcetable
+ sourcetable
TableScan
- alias: db1.sourcetable
+ alias: sourcetable
Select Operator
expressions:
expr: one
@@ -136,8 +136,8 @@ SELECT one,two FROM db1.sourceTable WHER
POSTHOOK: type: QUERY
POSTHOOK: Input: db1@sourcetable@ds=2011-11-11
POSTHOOK: Output: db2@destintable@ds=2011-11-11
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
PREHOOK: query: select one,two from db2.destinTable order by one desc, two desc
PREHOOK: type: QUERY
PREHOOK: Input: db2@destintable@ds=2011-11-11
@@ -146,8 +146,8 @@ POSTHOOK: query: select one,two from db2
POSTHOOK: type: QUERY
POSTHOOK: Input: db2@destintable@ds=2011-11-11
#### A masked pattern was here ####
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
98 val_98
98 val_98
98 val_98
@@ -159,8 +159,8 @@ PREHOOK: type: QUERY
POSTHOOK: query: EXPLAIN INSERT OVERWRITE TABLE db2.destinTable PARTITION (ds='2011-11-11')
SELECT one,two FROM db1.sourceTable WHERE ds='2011-11-11' order by one desc, two desc limit 5
POSTHOOK: type: QUERY
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
ABSTRACT SYNTAX TREE:
(TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME db1 sourceTable))) (TOK_INSERT (TOK_DESTINATION (TOK_TAB (TOK_TABNAME db2 destinTable) (TOK_PARTSPEC (TOK_PARTVAL ds '2011-11-11')))) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL one)) (TOK_SELEXPR (TOK_TABLE_OR_COL two))) (TOK_WHERE (= (TOK_TABLE_OR_COL ds) '2011-11-11')) (TOK_ORDERBY (TOK_TABSORTCOLNAMEDESC (TOK_TABLE_OR_COL one)) (TOK_TABSORTCOLNAMEDESC (TOK_TABLE_OR_COL two))) (TOK_LIMIT 5)))
@@ -174,9 +174,9 @@ STAGE PLANS:
Stage: Stage-1
Map Reduce
Alias -> Map Operator Tree:
- db1.sourcetable
+ sourcetable
TableScan
- alias: db1.sourcetable
+ alias: sourcetable
Select Operator
expressions:
expr: one
@@ -262,10 +262,10 @@ SELECT one,two FROM db1.sourceTable WHER
POSTHOOK: type: QUERY
POSTHOOK: Input: db1@sourcetable@ds=2011-11-11
POSTHOOK: Output: db2@destintable@ds=2011-11-11
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
PREHOOK: query: select one,two from db2.destinTable order by one desc, two desc
PREHOOK: type: QUERY
PREHOOK: Input: db2@destintable@ds=2011-11-11
@@ -274,10 +274,10 @@ POSTHOOK: query: select one,two from db2
POSTHOOK: type: QUERY
POSTHOOK: Input: db2@destintable@ds=2011-11-11
#### A masked pattern was here ####
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
98 val_98
98 val_98
98 val_98
@@ -288,32 +288,32 @@ PREHOOK: type: DROPTABLE
POSTHOOK: query: drop table db2.destinTable
POSTHOOK: type: DROPTABLE
POSTHOOK: Output: db2@destintable
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
PREHOOK: query: drop table db1.sourceTable
PREHOOK: type: DROPTABLE
POSTHOOK: query: drop table db1.sourceTable
POSTHOOK: type: DROPTABLE
POSTHOOK: Output: db1@sourcetable
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
PREHOOK: query: DROP DATABASE db1
PREHOOK: type: DROPDATABASE
POSTHOOK: query: DROP DATABASE db1
POSTHOOK: type: DROPDATABASE
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
PREHOOK: query: DROP DATABASE db2
PREHOOK: type: DROPDATABASE
POSTHOOK: query: DROP DATABASE db2
POSTHOOK: type: DROPDATABASE
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:one, type:string, comment:null), ]
-POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)db1.sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).one SIMPLE [(sourcetable)sourcetable.FieldSchema(name:one, type:string, comment:null), ]
+POSTHOOK: Lineage: destintable PARTITION(ds=2011-11-11).two SIMPLE [(sourcetable)sourcetable.FieldSchema(name:two, type:string, comment:null), ]