You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jc...@apache.org on 2018/08/07 18:36:11 UTC

[1/2] hive git commit: HIVE-19408: Improve show materialized views statement to show more information about invalidation (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Repository: hive
Updated Branches:
  refs/heads/master 539165119 -> 3ce97c907


http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window_2.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window_2.q.out
new file mode 100644
index 0000000..24bd61d
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window_2.q.out
@@ -0,0 +1,291 @@
+PREHOOK: query: create table cmv_basetable_n100 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_basetable_n100
+POSTHOOK: query: create table cmv_basetable_n100 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_basetable_n100
+PREHOOK: query: insert into cmv_basetable_n100 values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_n100
+POSTHOOK: query: insert into cmv_basetable_n100 values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_n100
+POSTHOOK: Lineage: cmv_basetable_n100.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_n100.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_n100.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_n100.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable_n100 compute statistics for columns
+PREHOOK: type: ANALYZE_TABLE
+PREHOOK: Input: default@cmv_basetable_n100
+PREHOOK: Output: default@cmv_basetable_n100
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable_n100 compute statistics for columns
+POSTHOOK: type: ANALYZE_TABLE
+POSTHOOK: Input: default@cmv_basetable_n100
+POSTHOOK: Output: default@cmv_basetable_n100
+#### A masked pattern was here ####
+PREHOOK: query: create table cmv_basetable_2_n100 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_basetable_2_n100
+POSTHOOK: query: create table cmv_basetable_2_n100 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_basetable_2_n100
+PREHOOK: query: insert into cmv_basetable_2_n100 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2_n100
+POSTHOOK: query: insert into cmv_basetable_2_n100 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2_n100
+POSTHOOK: Lineage: cmv_basetable_2_n100.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2_n100.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2_n100.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2_n100.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable_2_n100 compute statistics for columns
+PREHOOK: type: ANALYZE_TABLE
+PREHOOK: Input: default@cmv_basetable_2_n100
+PREHOOK: Output: default@cmv_basetable_2_n100
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable_2_n100 compute statistics for columns
+POSTHOOK: type: ANALYZE_TABLE
+POSTHOOK: Input: default@cmv_basetable_2_n100
+POSTHOOK: Output: default@cmv_basetable_2_n100
+#### A masked pattern was here ####
+PREHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view_n300 AS
+  SELECT cmv_basetable_n100.a, cmv_basetable_2_n100.c
+  FROM cmv_basetable_n100 JOIN cmv_basetable_2_n100 ON (cmv_basetable_n100.a = cmv_basetable_2_n100.a)
+  WHERE cmv_basetable_2_n100.c > 10.0
+  GROUP BY cmv_basetable_n100.a, cmv_basetable_2_n100.c
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
+PREHOOK: Input: default@cmv_basetable_2_n100
+PREHOOK: Input: default@cmv_basetable_n100
+PREHOOK: Output: database:default
+PREHOOK: Output: default@cmv_mat_view_n300
+POSTHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view_n300 AS
+  SELECT cmv_basetable_n100.a, cmv_basetable_2_n100.c
+  FROM cmv_basetable_n100 JOIN cmv_basetable_2_n100 ON (cmv_basetable_n100.a = cmv_basetable_2_n100.a)
+  WHERE cmv_basetable_2_n100.c > 10.0
+  GROUP BY cmv_basetable_n100.a, cmv_basetable_2_n100.c
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
+POSTHOOK: Input: default@cmv_basetable_2_n100
+POSTHOOK: Input: default@cmv_basetable_n100
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@cmv_mat_view_n300
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view_n300
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view_n300
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view_n300
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view_n300
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+c                   	decimal(10,2)       	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MATERIALIZED_VIEW   	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	bucketing_version   	2                   
+	numFiles            	2                   
+	numRows             	2                   
+	rawDataSize         	232                 
+	totalSize           	608                 
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.orc.OrcSerde	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.orc.OrcInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+	 	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n100.a, cmv_basetable_2_n100.c	 
+	                    	  FROM cmv_basetable_n100 JOIN cmv_basetable_2_n100 ON (cmv_basetable_n100.a = cmv_basetable_2_n100.a)
+	                    	  WHERE cmv_basetable_2_n100.c > 10.0
+	                    	  GROUP BY cmv_basetable_n100.a, cmv_basetable_2_n100.c
+Expanded Query:     	SELECT `cmv_basetable_n100`.`a`, `cmv_basetable_2_n100`.`c`	 
+	                    	  FROM `default`.`cmv_basetable_n100` JOIN `default`.`cmv_basetable_2_n100` ON (`cmv_basetable_n100`.`a` = `cmv_basetable_2_n100`.`a`)
+	                    	  WHERE `cmv_basetable_2_n100`.`c` > 10.0
+	                    	  GROUP BY `cmv_basetable_n100`.`a`, `cmv_basetable_2_n100`.`c`
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
+PREHOOK: query: insert into cmv_basetable_2_n100 values
+ (3, 'charlie', 15.8, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@cmv_basetable_2_n100
+POSTHOOK: query: insert into cmv_basetable_2_n100 values
+ (3, 'charlie', 15.8, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@cmv_basetable_2_n100
+POSTHOOK: Lineage: cmv_basetable_2_n100.a SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2_n100.b SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2_n100.c SCRIPT []
+POSTHOOK: Lineage: cmv_basetable_2_n100.d SCRIPT []
+PREHOOK: query: analyze table cmv_basetable_2_n100 compute statistics for columns
+PREHOOK: type: ANALYZE_TABLE
+PREHOOK: Input: default@cmv_basetable_2_n100
+PREHOOK: Output: default@cmv_basetable_2_n100
+#### A masked pattern was here ####
+POSTHOOK: query: analyze table cmv_basetable_2_n100 compute statistics for columns
+POSTHOOK: type: ANALYZE_TABLE
+POSTHOOK: Input: default@cmv_basetable_2_n100
+POSTHOOK: Output: default@cmv_basetable_2_n100
+#### A masked pattern was here ####
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view_n300
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view_n300
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view_n300
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view_n300
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+c                   	decimal(10,2)       	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MATERIALIZED_VIEW   	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	bucketing_version   	2                   
+	numFiles            	2                   
+	numRows             	2                   
+	rawDataSize         	232                 
+	totalSize           	608                 
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.orc.OrcSerde	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.orc.OrcInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+	 	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n100.a, cmv_basetable_2_n100.c	 
+	                    	  FROM cmv_basetable_n100 JOIN cmv_basetable_2_n100 ON (cmv_basetable_n100.a = cmv_basetable_2_n100.a)
+	                    	  WHERE cmv_basetable_2_n100.c > 10.0
+	                    	  GROUP BY cmv_basetable_n100.a, cmv_basetable_2_n100.c
+Expanded Query:     	SELECT `cmv_basetable_n100`.`a`, `cmv_basetable_2_n100`.`c`	 
+	                    	  FROM `default`.`cmv_basetable_n100` JOIN `default`.`cmv_basetable_2_n100` ON (`cmv_basetable_n100`.`a` = `cmv_basetable_2_n100`.`a`)
+	                    	  WHERE `cmv_basetable_2_n100`.`c` > 10.0
+	                    	  GROUP BY `cmv_basetable_n100`.`a`, `cmv_basetable_2_n100`.`c`
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	Yes                 	 
+PREHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view_n300 REBUILD
+PREHOOK: type: QUERY
+PREHOOK: Input: default@cmv_basetable_2_n100
+PREHOOK: Input: default@cmv_basetable_n100
+PREHOOK: Input: default@cmv_mat_view_n300
+PREHOOK: Output: default@cmv_mat_view_n300
+POSTHOOK: query: ALTER MATERIALIZED VIEW cmv_mat_view_n300 REBUILD
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@cmv_basetable_2_n100
+POSTHOOK: Input: default@cmv_basetable_n100
+POSTHOOK: Input: default@cmv_mat_view_n300
+POSTHOOK: Output: default@cmv_mat_view_n300
+POSTHOOK: Lineage: cmv_mat_view_n300.a EXPRESSION [(cmv_basetable_n100)cmv_basetable_n100.FieldSchema(name:a, type:int, comment:null), (cmv_mat_view_n300)default.cmv_mat_view_n300.FieldSchema(name:a, type:int, comment:null), ]
+POSTHOOK: Lineage: cmv_mat_view_n300.c EXPRESSION [(cmv_basetable_2_n100)cmv_basetable_2_n100.FieldSchema(name:c, type:decimal(10,2), comment:null), (cmv_mat_view_n300)default.cmv_mat_view_n300.FieldSchema(name:c, type:decimal(10,2), comment:null), ]
+PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view_n300
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view_n300
+POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view_n300
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view_n300
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+c                   	decimal(10,2)       	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MATERIALIZED_VIEW   	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"a\":\"true\",\"c\":\"true\"}}
+	bucketing_version   	2                   
+	numFiles            	2                   
+	numRows             	3                   
+	rawDataSize         	348                 
+	totalSize           	628                 
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.orc.OrcSerde	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.orc.OrcInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+	 	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n100.a, cmv_basetable_2_n100.c	 
+	                    	  FROM cmv_basetable_n100 JOIN cmv_basetable_2_n100 ON (cmv_basetable_n100.a = cmv_basetable_2_n100.a)
+	                    	  WHERE cmv_basetable_2_n100.c > 10.0
+	                    	  GROUP BY cmv_basetable_n100.a, cmv_basetable_2_n100.c
+Expanded Query:     	SELECT `cmv_basetable_n100`.`a`, `cmv_basetable_2_n100`.`c`	 
+	                    	  FROM `default`.`cmv_basetable_n100` JOIN `default`.`cmv_basetable_2_n100` ON (`cmv_basetable_n100`.`a` = `cmv_basetable_2_n100`.`a`)
+	                    	  WHERE `cmv_basetable_2_n100`.`c` > 10.0
+	                    	  GROUP BY `cmv_basetable_n100`.`a`, `cmv_basetable_2_n100`.`c`
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
+PREHOOK: query: drop materialized view cmv_mat_view_n300
+PREHOOK: type: DROP_MATERIALIZED_VIEW
+PREHOOK: Input: default@cmv_mat_view_n300
+PREHOOK: Output: default@cmv_mat_view_n300
+POSTHOOK: query: drop materialized view cmv_mat_view_n300
+POSTHOOK: type: DROP_MATERIALIZED_VIEW
+POSTHOOK: Input: default@cmv_mat_view_n300
+POSTHOOK: Output: default@cmv_mat_view_n300
+PREHOOK: query: drop table cmv_basetable_n100
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@cmv_basetable_n100
+PREHOOK: Output: default@cmv_basetable_n100
+POSTHOOK: query: drop table cmv_basetable_n100
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@cmv_basetable_n100
+POSTHOOK: Output: default@cmv_basetable_n100
+PREHOOK: query: drop table cmv_basetable_2_n100
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@cmv_basetable_2_n100
+PREHOOK: Output: default@cmv_basetable_2_n100
+POSTHOOK: query: drop table cmv_basetable_2_n100
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@cmv_basetable_2_n100
+POSTHOOK: Output: default@cmv_basetable_2_n100

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/llap/materialized_view_describe.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_describe.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_describe.q.out
index c68c127..2928fcf 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_describe.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_describe.q.out
@@ -85,10 +85,11 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	select a, c from cmv_basetable_n8	 
-View Expanded Text: 	select `cmv_basetable_n8`.`a`, `cmv_basetable_n8`.`c` from `default`.`cmv_basetable_n8`	 
-View Rewrite Enabled:	No                  	 
+# Materialized View Information	 	 
+Original Query:     	select a, c from cmv_basetable_n8	 
+Expanded Query:     	select `cmv_basetable_n8`.`a`, `cmv_basetable_n8`.`c` from `default`.`cmv_basetable_n8`	 
+Rewrite Enabled:    	No                  	 
+Outdated for Rewriting:	Unknown             	 
 PREHOOK: query: show tblproperties cmv_mat_view_n8
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view_n8
@@ -176,10 +177,11 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	select a from cmv_basetable_n8	 
-View Expanded Text: 	select `cmv_basetable_n8`.`a` from `default`.`cmv_basetable_n8`	 
-View Rewrite Enabled:	No                  	 
+# Materialized View Information	 	 
+Original Query:     	select a from cmv_basetable_n8	 
+Expanded Query:     	select `cmv_basetable_n8`.`a` from `default`.`cmv_basetable_n8`	 
+Rewrite Enabled:    	No                  	 
+Outdated for Rewriting:	Unknown             	 
 PREHOOK: query: select a from cmv_mat_view2_n3
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_mat_view2_n3
@@ -255,10 +257,11 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	select * from cmv_basetable_n8	 
-View Expanded Text: 	select `cmv_basetable_n8`.`a`, `cmv_basetable_n8`.`b`, `cmv_basetable_n8`.`c` from `default`.`cmv_basetable_n8`	 
-View Rewrite Enabled:	No                  	 
+# Materialized View Information	 	 
+Original Query:     	select * from cmv_basetable_n8	 
+Expanded Query:     	select `cmv_basetable_n8`.`a`, `cmv_basetable_n8`.`b`, `cmv_basetable_n8`.`c` from `default`.`cmv_basetable_n8`	 
+Rewrite Enabled:    	No                  	 
+Outdated for Rewriting:	Unknown             	 
 PREHOOK: query: select a, b, c from cmv_mat_view3_n0
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_mat_view3_n0
@@ -345,10 +348,11 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	select a from cmv_basetable_n8	 
-View Expanded Text: 	select `cmv_basetable_n8`.`a` from `default`.`cmv_basetable_n8`	 
-View Rewrite Enabled:	No                  	 
+# Materialized View Information	 	 
+Original Query:     	select a from cmv_basetable_n8	 
+Expanded Query:     	select `cmv_basetable_n8`.`a` from `default`.`cmv_basetable_n8`	 
+Rewrite Enabled:    	No                  	 
+Outdated for Rewriting:	Unknown             	 
 PREHOOK: query: select a from cmv_mat_view4_n0
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_mat_view4_n0

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/llap/materialized_view_partitioned.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_partitioned.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_partitioned.q.out
index 3852945..b12df11 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_partitioned.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_partitioned.q.out
@@ -204,10 +204,11 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	SELECT value, key FROM src_txn where key > 200 and key < 250	 
-View Expanded Text: 	SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250	 
-View Rewrite Enabled:	Yes                 	 
+# Materialized View Information	 	 
+Original Query:     	SELECT value, key FROM src_txn where key > 200 and key < 250	 
+Expanded Query:     	SELECT `src_txn`.`value`, `src_txn`.`key` FROM `default`.`src_txn` where `src_txn`.`key` > 200 and `src_txn`.`key` < 250	 
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
 PREHOOK: query: EXPLAIN
 SELECT * FROM partition_mv_1 where key = 238
 PREHOOK: type: QUERY

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/llap/selectDistinctStar.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/selectDistinctStar.q.out b/ql/src/test/results/clientpositive/llap/selectDistinctStar.q.out
index 51458e5..0a91e99 100644
--- a/ql/src/test/results/clientpositive/llap/selectDistinctStar.q.out
+++ b/ql/src/test/results/clientpositive/llap/selectDistinctStar.q.out
@@ -1406,9 +1406,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select distinct * from src order by key limit 2	 
-View Expanded Text: 	select distinct `src`.`key`, `src`.`value` from `default`.`src` order by `src`.`key` limit 2	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select distinct * from src order by key limit 2	 
+Expanded Query:     	select distinct `src`.`key`, `src`.`value` from `default`.`src` order by `src`.`key` limit 2	 
 PREHOOK: query: select * from sdi
 PREHOOK: type: QUERY
 PREHOOK: Input: default@sdi
@@ -3869,9 +3868,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select distinct * from src order by key limit 2	 
-View Expanded Text: 	select distinct `src`.`key`, `src`.`value` from `default`.`src` order by `src`.`key` limit 2	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select distinct * from src order by key limit 2	 
+Expanded Query:     	select distinct `src`.`key`, `src`.`value` from `default`.`src` order by `src`.`key` limit 2	 
 PREHOOK: query: select * from sdi
 PREHOOK: type: QUERY
 PREHOOK: Input: default@sdi

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/llap/temp_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/temp_table.q.out b/ql/src/test/results/clientpositive/llap/temp_table.q.out
index 2965d54..80972b4 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table.q.out
@@ -154,14 +154,40 @@ POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@foo
 key                 	string              	                    
 value               	string              	                    
-PREHOOK: query: DESCRIBE bar
+PREHOOK: query: DESCRIBE FORMATTED bar
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@bar
-POSTHOOK: query: DESCRIBE bar
+POSTHOOK: query: DESCRIBE FORMATTED bar
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@bar
+# col_name            	data_type           	comment             
 key                 	string              	                    
 value               	string              	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MANAGED_TABLE       	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	bucketing_version   	2                   
+	numFiles            	1                   
+	numRows             	253                 
+	rawDataSize         	2703                
+	totalSize           	2956                
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe	 
+InputFormat:        	org.apache.hadoop.mapred.TextInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+Storage Desc Params:	 	 
+	serialization.format	1                   
 PREHOOK: query: explain select * from foo order by key limit 10
 PREHOOK: type: QUERY
 POSTHOOK: query: explain select * from foo order by key limit 10

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/named_column_join.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/named_column_join.q.out b/ql/src/test/results/clientpositive/named_column_join.q.out
index 362a6cb..8b59410 100644
--- a/ql/src/test/results/clientpositive/named_column_join.q.out
+++ b/ql/src/test/results/clientpositive/named_column_join.q.out
@@ -302,9 +302,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from t_n8 t1 join t_n8 t2 using (a,b)	 
-View Expanded Text: 	select `t1`.`a`, `t1`.`b` from `default`.`t_n8` `t1` join `default`.`t_n8` `t2` using (`a`,`b`)	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from t_n8 t1 join t_n8 t2 using (a,b)	 
+Expanded Query:     	select `t1`.`a`, `t1`.`b` from `default`.`t_n8` `t1` join `default`.`t_n8` `t2` using (`a`,`b`)	 
 PREHOOK: query: select * from v_n4
 PREHOOK: type: QUERY
 PREHOOK: Input: default@t_n8
@@ -369,9 +368,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from t_n8 t1 right outer join t_n8 t2 using (b,a)	 
-View Expanded Text: 	select `t2`.`b`, `t2`.`a` from `default`.`t_n8` `t1` right outer join `default`.`t_n8` `t2` using (`b`,`a`)	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from t_n8 t1 right outer join t_n8 t2 using (b,a)	 
+Expanded Query:     	select `t2`.`b`, `t2`.`a` from `default`.`t_n8` `t1` right outer join `default`.`t_n8` `t2` using (`b`,`a`)	 
 PREHOOK: query: select * from v_n4
 PREHOOK: type: QUERY
 PREHOOK: Input: default@t_n8

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/show_materialized_views.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/show_materialized_views.q.out b/ql/src/test/results/clientpositive/show_materialized_views.q.out
index 715afea..2a00902e 100644
--- a/ql/src/test/results/clientpositive/show_materialized_views.q.out
+++ b/ql/src/test/results/clientpositive/show_materialized_views.q.out
@@ -38,25 +38,29 @@ POSTHOOK: type: CREATE_MATERIALIZED_VIEW
 POSTHOOK: Input: test1@shtb_test1
 POSTHOOK: Output: database:test1
 POSTHOOK: Output: test1@shtb_test1_view1
-PREHOOK: query: CREATE MATERIALIZED VIEW shtb_test1_view2 AS
+PREHOOK: query: CREATE MATERIALIZED VIEW shtb_test1_view2 
+TBLPROPERTIES ('rewriting.time.window' = '-1min') AS
 SELECT * FROM shtb_test1 where KEY > 100 and KEY < 200
 PREHOOK: type: CREATE_MATERIALIZED_VIEW
 PREHOOK: Input: test1@shtb_test1
 PREHOOK: Output: database:test1
 PREHOOK: Output: test1@shtb_test1_view2
-POSTHOOK: query: CREATE MATERIALIZED VIEW shtb_test1_view2 AS
+POSTHOOK: query: CREATE MATERIALIZED VIEW shtb_test1_view2 
+TBLPROPERTIES ('rewriting.time.window' = '-1min') AS
 SELECT * FROM shtb_test1 where KEY > 100 and KEY < 200
 POSTHOOK: type: CREATE_MATERIALIZED_VIEW
 POSTHOOK: Input: test1@shtb_test1
 POSTHOOK: Output: database:test1
 POSTHOOK: Output: test1@shtb_test1_view2
-PREHOOK: query: CREATE MATERIALIZED VIEW shtb_full_view2 AS
+PREHOOK: query: CREATE MATERIALIZED VIEW shtb_full_view2
+TBLPROPERTIES ('rewriting.time.window' = '5min') AS
 SELECT * FROM shtb_test1
 PREHOOK: type: CREATE_MATERIALIZED_VIEW
 PREHOOK: Input: test1@shtb_test1
 PREHOOK: Output: database:test1
 PREHOOK: Output: test1@shtb_full_view2
-POSTHOOK: query: CREATE MATERIALIZED VIEW shtb_full_view2 AS
+POSTHOOK: query: CREATE MATERIALIZED VIEW shtb_full_view2
+TBLPROPERTIES ('rewriting.time.window' = '5min') AS
 SELECT * FROM shtb_test1
 POSTHOOK: type: CREATE_MATERIALIZED_VIEW
 POSTHOOK: Input: test1@shtb_test1
@@ -122,23 +126,38 @@ PREHOOK: query: SHOW MATERIALIZED VIEWS
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
-shtb_full_view2
-shtb_test1_view1
-shtb_test1_view2
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_full_view2     	Yes                 	Manual refresh (Valid for 5min)
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test1_view2    	Yes                 	Manual refresh (Valid always)
+	 	 
 PREHOOK: query: SHOW MATERIALIZED VIEWS 'test_*'
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS 'test_*'
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_full_view2     	Yes                 	Manual refresh (Valid for 5min)
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test1_view2    	Yes                 	Manual refresh (Valid always)
+	 	 
 PREHOOK: query: SHOW MATERIALIZED VIEWS '*view2'
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS '*view2'
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
-shtb_full_view2
-shtb_test1_view2
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_full_view2     	Yes                 	Manual refresh (Valid for 5min)
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test1_view2    	Yes                 	Manual refresh (Valid always)
+	 	 
 PREHOOK: query: SHOW MATERIALIZED VIEWS LIKE 'test_view1|test_view2'
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS LIKE 'test_view1|test_view2'
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_full_view2     	Yes                 	Manual refresh (Valid for 5min)
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test1_view2    	Yes                 	Manual refresh (Valid always)
+	 	 
 PREHOOK: query: USE test2
 PREHOOK: type: SWITCHDATABASE
 PREHOOK: Input: database:test2
@@ -149,8 +168,10 @@ PREHOOK: query: SHOW MATERIALIZED VIEWS 'shtb_*'
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS 'shtb_*'
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
-shtb_test1_view1
-shtb_test2_view2
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test2_view2    	No                  	Manual refresh      
+	 	 
 PREHOOK: query: USE default
 PREHOOK: type: SWITCHDATABASE
 PREHOOK: Input: database:default
@@ -161,22 +182,28 @@ PREHOOK: query: SHOW MATERIALIZED VIEWS FROM test1
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS FROM test1
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
-shtb_full_view2
-shtb_test1_view1
-shtb_test1_view2
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_full_view2     	Yes                 	Manual refresh (Valid for 5min)
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test1_view2    	Yes                 	Manual refresh (Valid always)
+	 	 
 PREHOOK: query: SHOW MATERIALIZED VIEWS FROM test2
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS FROM test2
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
-shtb_test1_view1
-shtb_test2_view2
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test2_view2    	No                  	Manual refresh      
+	 	 
 PREHOOK: query: SHOW MATERIALIZED VIEWS IN test1
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS IN test1
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
-shtb_full_view2
-shtb_test1_view1
-shtb_test1_view2
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_full_view2     	Yes                 	Manual refresh (Valid for 5min)
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test1_view2    	Yes                 	Manual refresh (Valid always)
+	 	 
 PREHOOK: query: SHOW MATERIALIZED VIEWS IN default
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS IN default
@@ -185,10 +212,141 @@ PREHOOK: query: SHOW MATERIALIZED VIEWS IN test1 "shtb_test_*"
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS IN test1 "shtb_test_*"
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_full_view2     	Yes                 	Manual refresh (Valid for 5min)
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test1_view2    	Yes                 	Manual refresh (Valid always)
+	 	 
+PREHOOK: query: DESCRIBE FORMATTED test1.shtb_full_view2
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: test1@shtb_full_view2
+POSTHOOK: query: DESCRIBE FORMATTED test1.shtb_full_view2
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: test1@shtb_full_view2
+# col_name            	data_type           	comment             
+key                 	int                 	                    
+value               	string              	                    
+ds                  	string              	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	test1               	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MATERIALIZED_VIEW   	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	bucketing_version   	2                   
+	numFiles            	0                   
+	numRows             	0                   
+	rawDataSize         	0                   
+	rewriting.time.window	5min                
+	totalSize           	0                   
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.orc.OrcSerde	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.orc.OrcInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+	 	 
+# Materialized View Information	 	 
+Original Query:     	SELECT * FROM shtb_test1	 
+Expanded Query:     	SELECT `shtb_test1`.`key`, `shtb_test1`.`value`, `shtb_test1`.`ds` FROM `test1`.`shtb_test1`	 
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
+PREHOOK: query: DESCRIBE FORMATTED test1.shtb_test1_view1
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: test1@shtb_test1_view1
+POSTHOOK: query: DESCRIBE FORMATTED test1.shtb_test1_view1
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: test1@shtb_test1_view1
+# col_name            	data_type           	comment             
+key                 	int                 	                    
+value               	string              	                    
+ds                  	string              	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	test1               	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MATERIALIZED_VIEW   	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	bucketing_version   	2                   
+	numFiles            	0                   
+	numRows             	0                   
+	rawDataSize         	0                   
+	totalSize           	0                   
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.orc.OrcSerde	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.orc.OrcInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+	 	 
+# Materialized View Information	 	 
+Original Query:     	SELECT * FROM shtb_test1 where KEY > 1000 and KEY < 2000	 
+Expanded Query:     	SELECT `shtb_test1`.`key`, `shtb_test1`.`value`, `shtb_test1`.`ds` FROM `test1`.`shtb_test1` where `shtb_test1`.`key` > 1000 and `shtb_test1`.`key` < 2000	 
+Rewrite Enabled:    	No                  	 
+Outdated for Rewriting:	No                  	 
+PREHOOK: query: DESCRIBE FORMATTED test1.shtb_test1_view2
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: test1@shtb_test1_view2
+POSTHOOK: query: DESCRIBE FORMATTED test1.shtb_test1_view2
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: test1@shtb_test1_view2
+# col_name            	data_type           	comment             
+key                 	int                 	                    
+value               	string              	                    
+ds                  	string              	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	test1               	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MATERIALIZED_VIEW   	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	bucketing_version   	2                   
+	numFiles            	0                   
+	numRows             	0                   
+	rawDataSize         	0                   
+	rewriting.time.window	-1min               
+	totalSize           	0                   
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.orc.OrcSerde	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.orc.OrcInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+	 	 
+# Materialized View Information	 	 
+Original Query:     	SELECT * FROM shtb_test1 where KEY > 100 and KEY < 200	 
+Expanded Query:     	SELECT `shtb_test1`.`key`, `shtb_test1`.`value`, `shtb_test1`.`ds` FROM `test1`.`shtb_test1` where `shtb_test1`.`key` > 100 and `shtb_test1`.`key` < 200	 
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
 PREHOOK: query: SHOW MATERIALIZED VIEWS IN test2 LIKE "nomatch"
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS IN test2 LIKE "nomatch"
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
+# MV Name           	Rewriting Enabled   	Mode                
+shtb_test1_view1    	No                  	Manual refresh      
+shtb_test2_view2    	No                  	Manual refresh      
+	 	 
 PREHOOK: query: CREATE DATABASE `database`
 PREHOOK: type: CREATEDATABASE
 PREHOOK: Output: database:database
@@ -202,26 +360,29 @@ POSTHOOK: query: USE `database`
 POSTHOOK: type: SWITCHDATABASE
 POSTHOOK: Input: database:database
 PREHOOK: query: CREATE TABLE foo_n0(a INT)
+STORED AS ORC TBLPROPERTIES ('transactional'='true')
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:database
 PREHOOK: Output: database@foo_n0
 POSTHOOK: query: CREATE TABLE foo_n0(a INT)
+STORED AS ORC TBLPROPERTIES ('transactional'='true')
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:database
 POSTHOOK: Output: database@foo_n0
-PREHOOK: query: CREATE VIEW fooview AS
+PREHOOK: query: CREATE MATERIALIZED VIEW fooview
+TBLPROPERTIES ('rewriting.time.window' = '0min') AS
 SELECT * FROM foo_n0
-PREHOOK: type: CREATEVIEW
+PREHOOK: type: CREATE_MATERIALIZED_VIEW
 PREHOOK: Input: database@foo_n0
 PREHOOK: Output: database:database
 PREHOOK: Output: database@fooview
-POSTHOOK: query: CREATE VIEW fooview AS
+POSTHOOK: query: CREATE MATERIALIZED VIEW fooview
+TBLPROPERTIES ('rewriting.time.window' = '0min') AS
 SELECT * FROM foo_n0
-POSTHOOK: type: CREATEVIEW
+POSTHOOK: type: CREATE_MATERIALIZED_VIEW
 POSTHOOK: Input: database@foo_n0
 POSTHOOK: Output: database:database
 POSTHOOK: Output: database@fooview
-POSTHOOK: Lineage: fooview.a SIMPLE [(foo_n0)foo_n0.FieldSchema(name:a, type:int, comment:null), ]
 PREHOOK: query: USE default
 PREHOOK: type: SWITCHDATABASE
 PREHOOK: Input: database:default
@@ -232,6 +393,48 @@ PREHOOK: query: SHOW MATERIALIZED VIEWS FROM `database` LIKE "fooview"
 PREHOOK: type: SHOWMATERIALIZEDVIEWS
 POSTHOOK: query: SHOW MATERIALIZED VIEWS FROM `database` LIKE "fooview"
 POSTHOOK: type: SHOWMATERIALIZEDVIEWS
+# MV Name           	Rewriting Enabled   	Mode                
+fooview             	Yes                 	Manual refresh (Valid until source tables modified)
+	 	 
+PREHOOK: query: DESCRIBE FORMATTED `database`.`fooview`
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: database@fooview
+POSTHOOK: query: DESCRIBE FORMATTED `database`.`fooview`
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: database@fooview
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	database            	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MATERIALIZED_VIEW   	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	bucketing_version   	2                   
+	numFiles            	0                   
+	numRows             	0                   
+	rawDataSize         	0                   
+	rewriting.time.window	0min                
+	totalSize           	0                   
+#### A masked pattern was here ####
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.ql.io.orc.OrcSerde	 
+InputFormat:        	org.apache.hadoop.hive.ql.io.orc.OrcInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+	 	 
+# Materialized View Information	 	 
+Original Query:     	SELECT * FROM foo_n0	 
+Expanded Query:     	SELECT `foo_n0`.`a` FROM `database`.`foo_n0`	 
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
 PREHOOK: query: DROP MATERIALIZED VIEW fooview
 PREHOOK: type: DROP_MATERIALIZED_VIEW
 POSTHOOK: query: DROP MATERIALIZED VIEW fooview

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/spark/temp_table.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/spark/temp_table.q.out b/ql/src/test/results/clientpositive/spark/temp_table.q.out
index dabcbce..b1f2ee1 100644
--- a/ql/src/test/results/clientpositive/spark/temp_table.q.out
+++ b/ql/src/test/results/clientpositive/spark/temp_table.q.out
@@ -144,14 +144,40 @@ POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@foo
 key                 	string              	                    
 value               	string              	                    
-PREHOOK: query: DESCRIBE bar
+PREHOOK: query: DESCRIBE FORMATTED bar
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@bar
-POSTHOOK: query: DESCRIBE bar
+POSTHOOK: query: DESCRIBE FORMATTED bar
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@bar
+# col_name            	data_type           	comment             
 key                 	string              	                    
 value               	string              	                    
+	 	 
+# Detailed Table Information	 	 
+Database:           	default             	 
+#### A masked pattern was here ####
+Retention:          	0                   	 
+#### A masked pattern was here ####
+Table Type:         	MANAGED_TABLE       	 
+Table Parameters:	 	 
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
+	bucketing_version   	2                   
+	numFiles            	1                   
+	numRows             	253                 
+	rawDataSize         	2703                
+	totalSize           	2956                
+	 	 
+# Storage Information	 	 
+SerDe Library:      	org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe	 
+InputFormat:        	org.apache.hadoop.mapred.TextInputFormat	 
+OutputFormat:       	org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat	 
+Compressed:         	No                  	 
+Num Buckets:        	-1                  	 
+Bucket Columns:     	[]                  	 
+Sort Columns:       	[]                  	 
+Storage Desc Params:	 	 
+	serialization.format	1                   
 PREHOOK: query: explain select * from foo order by key limit 10
 PREHOOK: type: QUERY
 POSTHOOK: query: explain select * from foo order by key limit 10

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/unicode_comments.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/unicode_comments.q.out b/ql/src/test/results/clientpositive/unicode_comments.q.out
index 7e7768b..ee95406 100644
--- a/ql/src/test/results/clientpositive/unicode_comments.q.out
+++ b/ql/src/test/results/clientpositive/unicode_comments.q.out
@@ -140,9 +140,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select col1 from unicode_comments_tbl1	 
-View Expanded Text: 	SELECT `col1` AS `col1` FROM (select `unicode_comments_tbl1`.`col1` from `unicode_comments_db`.`unicode_comments_tbl1`) `unicode_comments_db.unicode_comments_view1`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select col1 from unicode_comments_tbl1	 
+Expanded Query:     	SELECT `col1` AS `col1` FROM (select `unicode_comments_tbl1`.`col1` from `unicode_comments_db`.`unicode_comments_tbl1`) `unicode_comments_db.unicode_comments_view1`	 
 PREHOOK: query: drop database unicode_comments_db cascade
 PREHOOK: type: DROPDATABASE
 PREHOOK: Input: database:unicode_comments_db

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/union_pos_alias.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/union_pos_alias.q.out b/ql/src/test/results/clientpositive/union_pos_alias.q.out
index 6150c47..31a1cea 100644
--- a/ql/src/test/results/clientpositive/union_pos_alias.q.out
+++ b/ql/src/test/results/clientpositive/union_pos_alias.q.out
@@ -352,9 +352,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select key as k from src intersect all select key as k1 from src	 
-View Expanded Text: 	select `src`.`key` as `k` from `default`.`src` intersect all select `src`.`key` as `k1` from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select key as k from src intersect all select key as k1 from src	 
+Expanded Query:     	select `src`.`key` as `k` from `default`.`src` intersect all select `src`.`key` as `k1` from `default`.`src`	 
 PREHOOK: query: create table masking_test_n9 as select cast(key as int) as key, value from src
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@src

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/view_alias.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/view_alias.q.out b/ql/src/test/results/clientpositive/view_alias.q.out
index 584d2aa..44de7b3 100644
--- a/ql/src/test/results/clientpositive/view_alias.q.out
+++ b/ql/src/test/results/clientpositive/view_alias.q.out
@@ -43,9 +43,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select key, '12' from src	 
-View Expanded Text: 	select `src`.`key`, '12' from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select key, '12' from src	 
+Expanded Query:     	select `src`.`key`, '12' from `default`.`src`	 
 PREHOOK: query: select * from v_n6 order by `_c1` limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: default@src
@@ -110,9 +109,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select key as _c1, '12' from src	 
-View Expanded Text: 	select `src`.`key` as `_c1`, '12' from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select key as _c1, '12' from src	 
+Expanded Query:     	select `src`.`key` as `_c1`, '12' from `default`.`src`	 
 PREHOOK: query: select * from v_n6 order by `_c1` limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: default@src
@@ -179,9 +177,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select *, '12' from src	 
-View Expanded Text: 	select `src`.`key`, `src`.`value`, '12' from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select *, '12' from src	 
+Expanded Query:     	select `src`.`key`, `src`.`value`, '12' from `default`.`src`	 
 PREHOOK: query: select * from v_n6 order by `_c2` limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: default@src
@@ -248,9 +245,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select *, '12' as _c121 from src	 
-View Expanded Text: 	select `src`.`key`, `src`.`value`, '12' as `_c121` from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select *, '12' as _c121 from src	 
+Expanded Query:     	select `src`.`key`, `src`.`value`, '12' as `_c121` from `default`.`src`	 
 PREHOOK: query: select * from v_n6 order by `_c121` limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: default@src
@@ -315,9 +311,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select key, count(*) from src group by key	 
-View Expanded Text: 	select `src`.`key`, count(*) from `default`.`src` group by `src`.`key`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select key, count(*) from src group by key	 
+Expanded Query:     	select `src`.`key`, count(*) from `default`.`src` group by `src`.`key`	 
 PREHOOK: query: select * from v_n6 order by `_c1` limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: default@src
@@ -430,9 +425,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select '010', a_n9.*, 121, b_n7.*, 234 from a_n9 join b_n7 on a_n9.ca_n9 = b_n7.cb_n7	 
-View Expanded Text: 	select '010', `a_n9`.`ca_n9`, `a_n9`.`caa_n9`, 121, `b_n7`.`cb_n7`, `b_n7`.`cbb_n7`, 234 from `default`.`a_n9` join `default`.`b_n7` on `a_n9`.`ca_n9` = `b_n7`.`cb_n7`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select '010', a_n9.*, 121, b_n7.*, 234 from a_n9 join b_n7 on a_n9.ca_n9 = b_n7.cb_n7	 
+Expanded Query:     	select '010', `a_n9`.`ca_n9`, `a_n9`.`caa_n9`, 121, `b_n7`.`cb_n7`, `b_n7`.`cbb_n7`, 234 from `default`.`a_n9` join `default`.`b_n7` on `a_n9`.`ca_n9` = `b_n7`.`cb_n7`	 
 PREHOOK: query: select * from v_n6 order by `_c3` limit 5
 PREHOOK: type: QUERY
 PREHOOK: Input: default@a_n9

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/view_cbo.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/view_cbo.q.out b/ql/src/test/results/clientpositive/view_cbo.q.out
index bbcd533..fb5ca67 100644
--- a/ql/src/test/results/clientpositive/view_cbo.q.out
+++ b/ql/src/test/results/clientpositive/view_cbo.q.out
@@ -136,11 +136,10 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	with q1 as ( select key from src where key = '5')	 
+Original Query:     	with q1 as ( select key from src where key = '5')	 
 	                    	select * from q1    
-View Expanded Text: 	with q1 as ( select `src`.`key` from `default`.`src` where `src`.`key` = '5')	 
+Expanded Query:     	with q1 as ( select `src`.`key` from `default`.`src` where `src`.`key` = '5')	 
 	                    	select `q1`.`key` from q1
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: drop view v_n13
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: default@v_n13
@@ -206,7 +205,7 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select b.key, count(*) as c	 
+Original Query:     	select b.key, count(*) as c	 
 	                    	from src b          
 	                    	group by b.key      
 	                    	having exists       
@@ -214,7 +213,7 @@ View Original Text: 	select b.key, count(*) as c
 	                    	  from src a        
 	                    	  where a.key = b.key and a.value > 'val_9'
 	                    	  )                 
-View Expanded Text: 	select `b`.`key`, count(*) as `c`	 
+Expanded Query:     	select `b`.`key`, count(*) as `c`	 
 	                    	from `default`.`src` `b`
 	                    	group by `b`.`key`  
 	                    	having exists       
@@ -222,7 +221,6 @@ View Expanded Text: 	select `b`.`key`, count(*) as `c`
 	                    	  from `default`.`src` `a`
 	                    	  where `a`.`key` = b.key and `a`.`value` > 'val_9'
 	                    	  )                 
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: drop view v_n13
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: default@v_n13
@@ -286,21 +284,20 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select *            	 
+Original Query:     	select *            	 
 	                    	from src b          
 	                    	where not exists    
 	                    	  (select distinct a.key
 	                    	  from src a        
 	                    	  where b.value = a.value and a.value > 'val_2'
 	                    	  )                 
-View Expanded Text: 	select `b`.`key`, `b`.`value`	 
+Expanded Query:     	select `b`.`key`, `b`.`value`	 
 	                    	from `default`.`src` `b`
 	                    	where not exists    
 	                    	  (select distinct `a`.`key`
 	                    	  from `default`.`src` `a`
 	                    	  where `b`.`value` = `a`.`value` and `a`.`value` > 'val_2'
 	                    	  )                 
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: drop view v_n13
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: default@v_n13
@@ -348,9 +345,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select a.key from src a join src b on a.key=b.key	 
-View Expanded Text: 	select `a`.`key` from `default`.`src` `a` join `default`.`src` `b` on `a`.`key`=`b`.`key`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select a.key from src a join src b on a.key=b.key	 
+Expanded Query:     	select `a`.`key` from `default`.`src` `a` join `default`.`src` `b` on `a`.`key`=`b`.`key`	 
 PREHOOK: query: CREATE VIEW view15_n0 AS
 SELECT key,COUNT(value) AS value_count
 FROM src
@@ -398,13 +394,12 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT key,COUNT(value) AS value_count	 
+Original Query:     	SELECT key,COUNT(value) AS value_count	 
 	                    	FROM src            
 	                    	GROUP BY key        
-View Expanded Text: 	SELECT `src`.`key`,COUNT(`src`.`value`) AS `value_count`	 
+Expanded Query:     	SELECT `src`.`key`,COUNT(`src`.`value`) AS `value_count`	 
 	                    	FROM `default`.`src`
 	                    	GROUP BY `src`.`key`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: CREATE VIEW view16_n0 AS
 SELECT DISTINCT value
 FROM src
@@ -448,11 +443,10 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT DISTINCT value	 
+Original Query:     	SELECT DISTINCT value	 
 	                    	FROM src            
-View Expanded Text: 	SELECT DISTINCT `src`.`value`	 
+Expanded Query:     	SELECT DISTINCT `src`.`value`	 
 	                    	FROM `default`.`src`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: drop view v_n13
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: default@v_n13
@@ -500,9 +494,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select key from src 	 
-View Expanded Text: 	select `src`.`key` from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select key from src 	 
+Expanded Query:     	select `src`.`key` from `default`.`src`	 
 PREHOOK: query: drop view v_n13
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: default@v_n13
@@ -552,9 +545,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from src   	 
-View Expanded Text: 	select `src`.`key`, `src`.`value` from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from src   	 
+Expanded Query:     	select `src`.`key`, `src`.`value` from `default`.`src`	 
 PREHOOK: query: drop view v_n13
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: default@v_n13
@@ -604,9 +596,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from src intersect select * from src	 
-View Expanded Text: 	select `src`.`key`, `src`.`value` from `default`.`src` intersect select `src`.`key`, `src`.`value` from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from src intersect select * from src	 
+Expanded Query:     	select `src`.`key`, `src`.`value` from `default`.`src` intersect select `src`.`key`, `src`.`value` from `default`.`src`	 
 PREHOOK: query: drop view v_n13
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: default@v_n13
@@ -656,9 +647,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from src except select * from src	 
-View Expanded Text: 	select `src`.`key`, `src`.`value` from `default`.`src` except select `src`.`key`, `src`.`value` from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from src except select * from src	 
+Expanded Query:     	select `src`.`key`, `src`.`value` from `default`.`src` except select `src`.`key`, `src`.`value` from `default`.`src`	 
 PREHOOK: query: explain select * from v_n13
 PREHOOK: type: QUERY
 POSTHOOK: query: explain select * from v_n13


[2/2] hive git commit: HIVE-19408: Improve show materialized views statement to show more information about invalidation (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)

Posted by jc...@apache.org.
HIVE-19408: Improve show materialized views statement to show more information about invalidation (Jesus Camacho Rodriguez, reviewed by Ashutosh Chauhan)


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

Branch: refs/heads/master
Commit: 3ce97c907156b26dc5acbf7e88915f42b319859d
Parents: 5391651
Author: Jesus Camacho Rodriguez <jc...@apache.org>
Authored: Tue Aug 7 00:32:22 2018 -0700
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Tue Aug 7 11:35:42 2018 -0700

----------------------------------------------------------------------
 .../plugin/TestHiveAuthorizerShowFilters.java   |   8 +-
 .../test/resources/testconfiguration.properties |   1 +
 .../org/apache/hadoop/hive/ql/exec/DDLTask.java |  53 +++-
 .../apache/hadoop/hive/ql/metadata/Hive.java    | 149 +++++-----
 .../ql/metadata/SessionHiveMetaStoreClient.java |  42 +++
 .../apache/hadoop/hive/ql/metadata/Table.java   |  14 +
 .../formatting/JsonMetaDataFormatter.java       |  48 +++
 .../formatting/MetaDataFormatUtils.java         |  12 +-
 .../metadata/formatting/MetaDataFormatter.java  |   8 +
 .../formatting/TextMetaDataFormatter.java       |  58 +++-
 .../hadoop/hive/ql/plan/ShowTablesDesc.java     |  25 +-
 .../test/queries/clientpositive/create_view.q   |   1 +
 ...rialized_view_create_rewrite_time_window_2.q |  45 +++
 .../clientpositive/show_materialized_views.q    |  16 +-
 ql/src/test/queries/clientpositive/temp_table.q |   2 +-
 .../alter_view_as_select_with_partition.q.out   |   5 +-
 .../clientpositive/alter_view_as_select.q.out   |  15 +-
 .../clientpositive/alter_view_col_type.q.out    |  10 +-
 .../beeline/escape_comments.q.out               |   5 +-
 .../clientpositive/create_or_replace_view.q.out |  25 +-
 .../results/clientpositive/create_view.q.out    |  74 ++---
 .../create_view_defaultformats.q.out            |  10 +-
 .../create_view_partitioned.q.out               |  15 +-
 .../clientpositive/create_view_translate.q.out  |  10 +-
 .../clientpositive/dbtxnmgr_query5.q.out        |   1 -
 .../clientpositive/escape_comments.q.out        |   5 +-
 .../llap/materialized_view_create.q.out         |  18 +-
 .../materialized_view_create_rewrite_4.q.out    |  27 +-
 .../materialized_view_create_rewrite_5.q.out    |   9 +-
 ...alized_view_create_rewrite_time_window.q.out |  27 +-
 ...ized_view_create_rewrite_time_window_2.q.out | 291 +++++++++++++++++++
 .../llap/materialized_view_describe.q.out       |  36 ++-
 .../llap/materialized_view_partitioned.q.out    |   9 +-
 .../llap/selectDistinctStar.q.out               |  10 +-
 .../clientpositive/llap/temp_table.q.out        |  30 +-
 .../clientpositive/named_column_join.q.out      |  10 +-
 .../show_materialized_views.q.out               | 251 ++++++++++++++--
 .../clientpositive/spark/temp_table.q.out       |  30 +-
 .../clientpositive/unicode_comments.q.out       |   5 +-
 .../clientpositive/union_pos_alias.q.out        |   5 +-
 .../results/clientpositive/view_alias.q.out     |  30 +-
 .../test/results/clientpositive/view_cbo.q.out  |  50 ++--
 42 files changed, 1144 insertions(+), 351 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/authorization/plugin/TestHiveAuthorizerShowFilters.java
----------------------------------------------------------------------
diff --git a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/authorization/plugin/TestHiveAuthorizerShowFilters.java b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/authorization/plugin/TestHiveAuthorizerShowFilters.java
index d69696c..76d1fb5 100644
--- a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/authorization/plugin/TestHiveAuthorizerShowFilters.java
+++ b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/ql/security/authorization/plugin/TestHiveAuthorizerShowFilters.java
@@ -62,8 +62,8 @@ public class TestHiveAuthorizerShowFilters {
   static final List<String> AllTables = getSortedList(tableName1, tableName2);
   static final List<String> AllDbs = getSortedList("default", dbName1, dbName2);
 
-  private static List<HivePrivilegeObject> filterArguments = null;
-  private static List<HivePrivilegeObject> filteredResults = new ArrayList<HivePrivilegeObject>();
+  private static List<HivePrivilegeObject> filterArguments = new ArrayList<>();
+  private static List<HivePrivilegeObject> filteredResults = new ArrayList<>();
 
   /**
    * This factory creates a mocked HiveAuthorizer class. The mocked class is
@@ -78,7 +78,7 @@ public class TestHiveAuthorizerShowFilters {
       public List<HivePrivilegeObject> filterListCmdObjects(List<HivePrivilegeObject> listObjs,
           HiveAuthzContext context) throws HiveAuthzPluginException, HiveAccessControlException {
         // capture arguments in static
-        filterArguments = listObjs;
+        filterArguments.addAll(listObjs);
         // return static variable with results, if it is set to some set of
         // values
         // otherwise return the arguments
@@ -137,7 +137,7 @@ public class TestHiveAuthorizerShowFilters {
 
   @Before
   public void setup() {
-    filterArguments = null;
+    filterArguments.clear();
     filteredResults.clear();
   }
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/itests/src/test/resources/testconfiguration.properties
----------------------------------------------------------------------
diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties
index f51ff06..7259bd5 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -557,6 +557,7 @@ minillaplocal.query.files=\
   materialized_view_create_rewrite_multi_db.q,\
   materialized_view_create_rewrite_rebuild_dummy.q,\
   materialized_view_create_rewrite_time_window.q,\
+  materialized_view_create_rewrite_time_window_2.q,\
   materialized_view_create_rewrite.q,\
   materialized_view_create_rewrite_2.q,\
   materialized_view_create_rewrite_3.q,\

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
index 939ef36..accd7f1 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
@@ -49,6 +49,7 @@ import java.util.SortedSet;
 import java.util.TreeMap;
 import java.util.TreeSet;
 import java.util.concurrent.ExecutionException;
+import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -64,6 +65,7 @@ import org.apache.hadoop.fs.FsShell;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.common.FileUtils;
 import org.apache.hadoop.hive.common.StatsSetupConst;
+import org.apache.hadoop.hive.common.ValidTxnList;
 import org.apache.hadoop.hive.common.ValidTxnWriteIdList;
 import org.apache.hadoop.hive.common.type.HiveDecimal;
 import org.apache.hadoop.hive.conf.Constants;
@@ -2776,6 +2778,7 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
   private int showTablesOrViews(Hive db, ShowTablesDesc showDesc) throws HiveException {
     // get the tables/views for the desired pattern - populate the output stream
     List<String> tablesOrViews = null;
+    List<Table> materializedViews = null;
 
     String dbName      = showDesc.getDbName();
     String pattern     = showDesc.getPattern(); // if null, all tables/views are returned
@@ -2787,8 +2790,21 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
     }
 
     LOG.debug("pattern: {}", pattern);
-    tablesOrViews = db.getTablesByType(dbName, pattern, type);
-    LOG.debug("Found {} tables/view(s) matching the SHOW TABLES/VIEWS statement.", tablesOrViews.size());
+    if (type == null) {
+      tablesOrViews = new ArrayList<>();
+      tablesOrViews.addAll(db.getTablesByType(dbName, pattern, TableType.MANAGED_TABLE));
+      tablesOrViews.addAll(db.getTablesByType(dbName, pattern, TableType.EXTERNAL_TABLE));
+      LOG.debug("Found {} table(s) matching the SHOW TABLES statement.", tablesOrViews.size());
+    } else if (type == TableType.MATERIALIZED_VIEW) {
+      materializedViews = new ArrayList<>();
+      materializedViews.addAll(db.getAllMaterializedViewObjects(dbName));
+      LOG.debug("Found {} materialized view(s) matching the SHOW MATERIALIZED VIEWS statement.", materializedViews.size());
+    } else if (type == TableType.VIRTUAL_VIEW) {
+      tablesOrViews = db.getTablesByType(dbName, pattern, type);
+      LOG.debug("Found {} view(s) matching the SHOW VIEWS statement.", tablesOrViews.size());
+    } else {
+      throw new HiveException("Option not recognized in SHOW TABLES/VIEWS/MATERIALIZED VIEWS");
+    }
 
     // write the results in the file
     DataOutputStream outStream = null;
@@ -2796,11 +2812,15 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
       Path resFile = new Path(resultsFile);
       FileSystem fs = resFile.getFileSystem(conf);
       outStream = fs.create(resFile);
-
-      SortedSet<String> sortedSet = new TreeSet<String>(tablesOrViews);
-      formatter.showTables(outStream, sortedSet);
+      // Sort by name and print
+      if (tablesOrViews != null) {
+        SortedSet<String> sortedSet = new TreeSet<String>(tablesOrViews);
+        formatter.showTables(outStream, sortedSet);
+      } else {
+        Collections.sort(materializedViews, Comparator.comparing(Table::getTableName));
+        formatter.showMaterializedViews(outStream, materializedViews);
+      }
       outStream.close();
-      outStream = null;
     } catch (Exception e) {
       throw new HiveException(e, ErrorMsg.GENERIC_ERROR, "in database" + dbName);
     } finally {
@@ -3735,13 +3755,28 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
         storageHandlerInfo = db.getStorageHandlerInfo(tbl);
       }
       fixDecimalColumnTypeName(cols);
+      // Information for materialized views
+      if (tbl.isMaterializedView()) {
+        final String validTxnsList = db.getConf().get(ValidTxnList.VALID_TXNS_KEY);
+        if (validTxnsList != null) {
+          final List<String> tablesUsed =
+              new ArrayList<>(tbl.getCreationMetadata().getTablesUsed());
+          final ValidTxnWriteIdList currentTxnWriteIds =
+              SessionState.get().getTxnMgr().getValidWriteIds(tablesUsed, validTxnsList);
+          final long defaultTimeWindow =
+              HiveConf.getTimeVar(db.getConf(), HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW,
+                  TimeUnit.MILLISECONDS);
+          tbl.setOutdatedForRewriting(Hive.isOutdatedMaterializedView(tbl,
+              currentTxnWriteIds, defaultTimeWindow, tablesUsed, false));
+        }
+      }
       // In case the query is served by HiveServer2, don't pad it with spaces,
       // as HiveServer2 output is consumed by JDBC/ODBC clients.
       boolean isOutputPadded = !SessionState.get().isHiveServerQuery();
       formatter.describeTable(outStream, colPath, tableName, tbl, part,
-          cols, descTbl.isFormatted(), descTbl.isExt(),
-          isOutputPadded, colStats,
-          pkInfo, fkInfo, ukInfo, nnInfo, dInfo, cInfo, storageHandlerInfo);
+          cols, descTbl.isFormatted(), descTbl.isExt(), isOutputPadded,
+          colStats, pkInfo, fkInfo, ukInfo, nnInfo, dInfo, cInfo,
+          storageHandlerInfo);
 
       LOG.debug("DDLTask: written data for {}", tableName);
 

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
index 239a606..2a36043 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
@@ -1425,82 +1425,21 @@ public class Hive {
         HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_INCREMENTAL);
     final boolean tryIncrementalRebuild =
         HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REBUILD_INCREMENTAL);
-    final long defaultDiff =
+    final long defaultTimeWindow =
         HiveConf.getTimeVar(conf, HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW,
             TimeUnit.MILLISECONDS);
-    final long currentTime = System.currentTimeMillis();
     try {
       // Final result
       List<RelOptMaterialization> result = new ArrayList<>();
       List<Table> materializedViewTables = getTableObjects(dbName, materializedViewNames);
       for (Table materializedViewTable : materializedViewTables) {
-        // Check if materialization defined its own invalidation time window
-        String timeWindowString = materializedViewTable.getProperty(MATERIALIZED_VIEW_REWRITING_TIME_WINDOW);
-        long diff = org.apache.commons.lang.StringUtils.isEmpty(timeWindowString) ? defaultDiff :
-            HiveConf.toTime(timeWindowString,
-                HiveConf.getDefaultTimeUnit(HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW),
-                TimeUnit.MILLISECONDS);
-        CreationMetadata creationMetadata = materializedViewTable.getCreationMetadata();
-        boolean outdated = false;
-        if (diff < 0L) {
-          // We only consider the materialized view to be outdated if forceOutdated = true, i.e.,
-          // if it is a rebuild. Otherwise, it passed the test and we use it as it is.
-          outdated = forceMVContentsUpToDate;
-        } else {
-          // Check whether the materialized view is invalidated
-          if (forceMVContentsUpToDate || diff == 0L || creationMetadata.getMaterializationTime() < currentTime - diff) {
-            if (currentTxnWriteIds == null) {
-              LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
-                  " ignored for rewriting as we could not obtain current txn ids");
-              continue;
-            }
-            if (creationMetadata.getValidTxnList() == null ||
-                creationMetadata.getValidTxnList().isEmpty()) {
-              LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
-                  " ignored for rewriting as we could not obtain materialization txn ids");
-              continue;
-            }
-            boolean ignore = false;
-            ValidTxnWriteIdList mvTxnWriteIds = new ValidTxnWriteIdList(
-                creationMetadata.getValidTxnList());
-            for (String qName : tablesUsed) {
-              // Note. If the materialized view does not contain a table that is contained in the query,
-              // we do not need to check whether that specific table is outdated or not. If a rewriting
-              // is produced in those cases, it is because that additional table is joined with the
-              // existing tables with an append-columns only join, i.e., PK-FK + not null.
-              if (!creationMetadata.getTablesUsed().contains(qName)) {
-                continue;
-              }
-              ValidWriteIdList tableCurrentWriteIds = currentTxnWriteIds.getTableValidWriteIdList(qName);
-              if (tableCurrentWriteIds == null) {
-                // Uses non-transactional table, cannot be considered
-                LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
-                    " ignored for rewriting as it is outdated and cannot be considered for " +
-                    " rewriting because it uses non-transactional table " + qName);
-                ignore = true;
-                break;
-              }
-              ValidWriteIdList tableWriteIds = mvTxnWriteIds.getTableValidWriteIdList(qName);
-              if (tableWriteIds == null) {
-                // This should not happen, but we ignore for safety
-                LOG.warn("Materialized view " + materializedViewTable.getFullyQualifiedName() +
-                    " ignored for rewriting as details about txn ids for table " + qName +
-                    " could not be found in " + mvTxnWriteIds);
-                ignore = true;
-                break;
-              }
-              if (!outdated && !TxnIdUtils.checkEquivalentWriteIds(tableCurrentWriteIds, tableWriteIds)) {
-                LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
-                    " contents are outdated");
-                outdated = true;
-              }
-            }
-            if (ignore) {
-              continue;
-            }
-          }
+        final Boolean outdated = isOutdatedMaterializedView(materializedViewTable, currentTxnWriteIds,
+            defaultTimeWindow, tablesUsed, forceMVContentsUpToDate);
+        if (outdated == null) {
+          continue;
         }
 
+        final CreationMetadata creationMetadata = materializedViewTable.getCreationMetadata();
         if (outdated) {
           // The MV is outdated, see whether we should consider it for rewriting or not
           boolean ignore = false;
@@ -1587,6 +1526,82 @@ public class Hive {
   }
 
   /**
+   * Utility method that returns whether a materialized view is outdated (true), not outdated
+   * (false), or it cannot be determined (null). The latest case may happen e.g. when the
+   * materialized view definition uses external tables.
+   */
+  public static Boolean isOutdatedMaterializedView(Table materializedViewTable, final ValidTxnWriteIdList currentTxnWriteIds,
+      long defaultTimeWindow, List<String> tablesUsed, boolean forceMVContentsUpToDate) {
+    // Check if materialization defined its own invalidation time window
+    String timeWindowString = materializedViewTable.getProperty(MATERIALIZED_VIEW_REWRITING_TIME_WINDOW);
+    long timeWindow = org.apache.commons.lang.StringUtils.isEmpty(timeWindowString) ? defaultTimeWindow :
+        HiveConf.toTime(timeWindowString,
+            HiveConf.getDefaultTimeUnit(HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW),
+            TimeUnit.MILLISECONDS);
+    CreationMetadata creationMetadata = materializedViewTable.getCreationMetadata();
+    boolean outdated = false;
+    if (timeWindow < 0L) {
+      // We only consider the materialized view to be outdated if forceOutdated = true, i.e.,
+      // if it is a rebuild. Otherwise, it passed the test and we use it as it is.
+      outdated = forceMVContentsUpToDate;
+    } else {
+      // Check whether the materialized view is invalidated
+      if (forceMVContentsUpToDate || timeWindow == 0L || creationMetadata.getMaterializationTime() < System.currentTimeMillis() - timeWindow) {
+        if (currentTxnWriteIds == null) {
+          LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
+              " ignored for rewriting as we could not obtain current txn ids");
+          return null;
+        }
+        if (creationMetadata.getValidTxnList() == null ||
+            creationMetadata.getValidTxnList().isEmpty()) {
+          LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
+              " ignored for rewriting as we could not obtain materialization txn ids");
+          return null;
+        }
+        boolean ignore = false;
+        ValidTxnWriteIdList mvTxnWriteIds = new ValidTxnWriteIdList(
+            creationMetadata.getValidTxnList());
+        for (String qName : tablesUsed) {
+          // Note. If the materialized view does not contain a table that is contained in the query,
+          // we do not need to check whether that specific table is outdated or not. If a rewriting
+          // is produced in those cases, it is because that additional table is joined with the
+          // existing tables with an append-columns only join, i.e., PK-FK + not null.
+          if (!creationMetadata.getTablesUsed().contains(qName)) {
+            continue;
+          }
+          ValidWriteIdList tableCurrentWriteIds = currentTxnWriteIds.getTableValidWriteIdList(qName);
+          if (tableCurrentWriteIds == null) {
+            // Uses non-transactional table, cannot be considered
+            LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
+                " ignored for rewriting as it is outdated and cannot be considered for " +
+                " rewriting because it uses non-transactional table " + qName);
+            ignore = true;
+            break;
+          }
+          ValidWriteIdList tableWriteIds = mvTxnWriteIds.getTableValidWriteIdList(qName);
+          if (tableWriteIds == null) {
+            // This should not happen, but we ignore for safety
+            LOG.warn("Materialized view " + materializedViewTable.getFullyQualifiedName() +
+                " ignored for rewriting as details about txn ids for table " + qName +
+                " could not be found in " + mvTxnWriteIds);
+            ignore = true;
+            break;
+          }
+          if (!outdated && !TxnIdUtils.checkEquivalentWriteIds(tableCurrentWriteIds, tableWriteIds)) {
+            LOG.debug("Materialized view " + materializedViewTable.getFullyQualifiedName() +
+                " contents are outdated");
+            outdated = true;
+          }
+        }
+        if (ignore) {
+          return null;
+        }
+      }
+    }
+    return outdated;
+  }
+
+  /**
    * Method to enrich the materialization query contained in the input with
    * its invalidation.
    */

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/java/org/apache/hadoop/hive/ql/metadata/SessionHiveMetaStoreClient.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/SessionHiveMetaStoreClient.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/SessionHiveMetaStoreClient.java
index 3240f2d..a2b57fb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/SessionHiveMetaStoreClient.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/SessionHiveMetaStoreClient.java
@@ -26,6 +26,7 @@ import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -40,6 +41,7 @@ import org.apache.hadoop.hive.io.HdfsUtils;
 import org.apache.hadoop.hive.metastore.HiveMetaHookLoader;
 import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;
 import org.apache.hadoop.hive.metastore.IMetaStoreClient;
+import org.apache.hadoop.hive.metastore.TableType;
 import org.apache.hadoop.hive.metastore.Warehouse;
 import org.apache.hadoop.hive.metastore.api.AlreadyExistsException;
 import org.apache.hadoop.hive.metastore.api.ColumnStatistics;
@@ -245,6 +247,46 @@ public class SessionHiveMetaStoreClient extends HiveMetaStoreClient implements I
   }
 
   @Override
+  public List<String> getTables(String dbname, String tablePattern, TableType tableType) throws MetaException {
+    List<String> tableNames = super.getTables(dbname, tablePattern, tableType);
+
+    if (tableType == TableType.MANAGED_TABLE || tableType == TableType.EXTERNAL_TABLE) {
+      // May need to merge with list of temp tables
+      dbname = dbname.toLowerCase();
+      tablePattern = tablePattern.toLowerCase();
+      Map<String, Table> tables = getTempTablesForDatabase(dbname, tablePattern);
+      if (tables == null || tables.size() == 0) {
+        return tableNames;
+      }
+      tablePattern = tablePattern.replaceAll("\\*", ".*");
+      Pattern pattern = Pattern.compile(tablePattern);
+      Matcher matcher = pattern.matcher("");
+      Set<String> combinedTableNames = new HashSet<String>();
+      combinedTableNames.addAll(tableNames);
+      for (Entry<String, Table> tableData : tables.entrySet()) {
+        matcher.reset(tableData.getKey());
+        if (matcher.matches()) {
+          if (tableData.getValue().getTableType() == tableType) {
+            // If tableType is the same that we are requesting,
+            // add table the the list
+            combinedTableNames.add(tableData.getKey());
+          } else {
+            // If tableType is not the same that we are requesting,
+            // remove it in case it was added before, as temp table
+            // overrides original table
+            combinedTableNames.remove(tableData.getKey());
+          }
+        }
+      }
+      // Combine/sort temp and normal table results
+      tableNames = new ArrayList<>(combinedTableNames);
+      Collections.sort(tableNames);
+    }
+
+    return tableNames;
+  }
+
+  @Override
   public List<TableMeta> getTableMeta(String dbPatterns, String tablePatterns, List<String> tableTypes)
       throws MetaException {
     List<TableMeta> tableMetas = super.getTableMeta(dbPatterns, tablePatterns, tableTypes);

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
index 03b0269..9e0cea7 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java
@@ -105,6 +105,10 @@ public class Table implements Serializable {
 
   private transient boolean materializedTable;
 
+  /** Note: This is set only for describe table purposes, it cannot be used to verify whether
+   * a materialization is up-to-date or not. */
+  private transient Boolean outdatedForRewritingMaterializedView;
+
   /**
    * Used only for serialization.
    */
@@ -1091,4 +1095,14 @@ public class Table implements Serializable {
   public String getCatalogName() {
     return this.tTable.getCatName();
   }
+
+  public void setOutdatedForRewriting(Boolean validForRewritingMaterializedView) {
+    this.outdatedForRewritingMaterializedView = validForRewritingMaterializedView;
+  }
+
+  /** Note: This is set only for describe table purposes, it cannot be used to verify whether
+   * a materialization is up-to-date or not. */
+  public Boolean isOutdatedForRewriting() {
+    return outdatedForRewritingMaterializedView;
+  }
 };

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java
index df0a237..4c4f9c1 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/JsonMetaDataFormatter.java
@@ -28,9 +28,11 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.hadoop.hive.ql.session.SessionState;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.hadoop.fs.FileStatus;
@@ -57,6 +59,8 @@ import org.apache.hadoop.hive.ql.metadata.UniqueConstraint;
 import org.codehaus.jackson.JsonGenerator;
 import org.codehaus.jackson.map.ObjectMapper;
 
+import static org.apache.hadoop.hive.conf.Constants.MATERIALIZED_VIEW_REWRITING_TIME_WINDOW;
+
 /**
  * Format table and index information for machine readability using
  * json.
@@ -109,6 +113,50 @@ public class JsonMetaDataFormatter implements MetaDataFormatter {
   }
 
   /**
+   * Show a list of materialized views.
+   */
+  @Override
+  public void showMaterializedViews(DataOutputStream out, List<Table> materializedViews)
+      throws HiveException {
+    if (materializedViews.isEmpty()) {
+      // Nothing to do
+      return;
+    }
+
+    MapBuilder builder = MapBuilder.create();
+    ArrayList<Map<String, Object>> res = new ArrayList<Map<String, Object>>();
+    for (Table mv : materializedViews) {
+      final String mvName = mv.getTableName();
+      final String rewriteEnabled = mv.isRewriteEnabled() ? "Yes" : "No";
+      // Currently, we only support manual refresh
+      // TODO: Update whenever we have other modes
+      final String refreshMode = "Manual refresh";
+      final String timeWindowString = mv.getProperty(MATERIALIZED_VIEW_REWRITING_TIME_WINDOW);
+      final String mode;
+      if (!org.apache.commons.lang.StringUtils.isEmpty(timeWindowString)) {
+        long time = HiveConf.toTime(timeWindowString,
+            HiveConf.getDefaultTimeUnit(HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW),
+            TimeUnit.MINUTES);
+        if (time > 0L) {
+          mode = refreshMode + " (Valid for " + time + "min)";
+        } else if (time == 0L) {
+          mode = refreshMode + " (Valid until source tables modified)";
+        } else {
+          mode = refreshMode + " (Valid always)";
+        }
+      } else {
+        mode = refreshMode;
+      }
+      res.add(builder
+          .put("MV Name", mvName)
+          .put("Rewriting Enabled", rewriteEnabled)
+          .put("Mode", mode)
+          .build());
+    }
+    asJson(out, builder.put("materialized views", res).build());
+  }
+
+  /**
    * Describe table.
    */
   @Override

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
index 36cd46a..4180dc4 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatUtils.java
@@ -360,7 +360,7 @@ public final class MetaDataFormatUtils {
     getStorageDescriptorInfo(tableInfo, table.getTTable().getSd());
 
     if (table.isView() || table.isMaterializedView()) {
-      tableInfo.append(LINE_DELIM).append("# View Information").append(LINE_DELIM);
+      tableInfo.append(LINE_DELIM).append(table.isView() ? "# View Information" : "# Materialized View Information").append(LINE_DELIM);
       getViewInfo(tableInfo, table);
     }
 
@@ -368,9 +368,13 @@ public final class MetaDataFormatUtils {
   }
 
   private static void getViewInfo(StringBuilder tableInfo, Table tbl) {
-    formatOutput("View Original Text:", tbl.getViewOriginalText(), tableInfo);
-    formatOutput("View Expanded Text:", tbl.getViewExpandedText(), tableInfo);
-    formatOutput("View Rewrite Enabled:", tbl.isRewriteEnabled() ? "Yes" : "No", tableInfo);
+    formatOutput("Original Query:", tbl.getViewOriginalText(), tableInfo);
+    formatOutput("Expanded Query:", tbl.getViewExpandedText(), tableInfo);
+    if (tbl.isMaterializedView()) {
+      formatOutput("Rewrite Enabled:", tbl.isRewriteEnabled() ? "Yes" : "No", tableInfo);
+      formatOutput("Outdated for Rewriting:", tbl.isOutdatedForRewriting() == null ? "Unknown"
+          : tbl.isOutdatedForRewriting() ? "Yes" : "No", tableInfo);
+    }
   }
 
   private static void getStorageDescriptorInfo(StringBuilder tableInfo,

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatter.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatter.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatter.java
index d15016c..936a808 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/MetaDataFormatter.java
@@ -20,10 +20,12 @@ package org.apache.hadoop.hive.ql.metadata.formatting;
 
 import java.io.DataOutputStream;
 import java.io.OutputStream;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import javax.annotation.Nullable;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.metastore.api.ColumnStatisticsObj;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
@@ -69,6 +71,12 @@ public interface MetaDataFormatter {
       throws HiveException;
 
   /**
+   * Show a list of materialized views.
+   */
+  public void showMaterializedViews(DataOutputStream out, List<Table> materializedViews)
+      throws HiveException;
+
+  /**
    * Describe table.
    * @param out
    * @param colPath

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java
index 705365b..2ff1d94 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/formatting/TextMetaDataFormatter.java
@@ -27,9 +27,12 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 
+import org.apache.hadoop.hive.conf.Constants;
 import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils;
 import org.apache.hadoop.hive.ql.metadata.StorageHandlerInfo;
+import org.apache.hadoop.hive.ql.plan.DescTableDesc;
 import org.apache.hive.common.util.HiveStringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -58,6 +61,8 @@ import org.apache.hadoop.hive.ql.metadata.Table;
 import org.apache.hadoop.hive.ql.metadata.UniqueConstraint;
 import org.apache.hadoop.hive.ql.session.SessionState;
 
+import static org.apache.hadoop.hive.conf.Constants.MATERIALIZED_VIEW_REWRITING_TIME_WINDOW;
+
 /**
  * Format table and index information for human readability using
  * simple lines of text.
@@ -106,14 +111,14 @@ class TextMetaDataFormatter implements MetaDataFormatter {
     } catch (Exception e) {
       throw new HiveException(e);
     }
-      }
+  }
+
   /**
    * Show a list of tables.
    */
   @Override
   public void showTables(DataOutputStream out, Set<String> tables)
-      throws HiveException
-      {
+      throws HiveException {
     Iterator<String> iterTbls = tables.iterator();
 
     try {
@@ -125,7 +130,54 @@ class TextMetaDataFormatter implements MetaDataFormatter {
     } catch (IOException e) {
       throw new HiveException(e);
     }
+  }
+
+  /**
+   * Show a list of materialized views.
+   */
+  @Override
+  public void showMaterializedViews(DataOutputStream out, List<Table> materializedViews)
+      throws HiveException {
+    if (materializedViews.isEmpty()) {
+      // Nothing to do
+      return;
+    }
+
+    try {
+      TextMetaDataTable mdt = new TextMetaDataTable();
+      mdt.addRow("# MV Name", "Rewriting Enabled", "Mode");
+      for (Table mv : materializedViews) {
+        final String mvName = mv.getTableName();
+        final String rewriteEnabled = mv.isRewriteEnabled() ? "Yes" : "No";
+        // Currently, we only support manual refresh
+        // TODO: Update whenever we have other modes
+        final String refreshMode = "Manual refresh";
+        final String timeWindowString = mv.getProperty(MATERIALIZED_VIEW_REWRITING_TIME_WINDOW);
+        final String mode;
+        if (!org.apache.commons.lang.StringUtils.isEmpty(timeWindowString)) {
+          long time = HiveConf.toTime(timeWindowString,
+              HiveConf.getDefaultTimeUnit(HiveConf.ConfVars.HIVE_MATERIALIZED_VIEW_REWRITING_TIME_WINDOW),
+              TimeUnit.MINUTES);
+          if (time > 0L) {
+            mode = refreshMode + " (Valid for " + time + "min)";
+          } else if (time == 0L) {
+            mode = refreshMode + " (Valid until source tables modified)";
+          } else {
+            mode = refreshMode + " (Valid always)";
+          }
+        } else {
+          mode = refreshMode;
+        }
+        mdt.addRow(mvName, rewriteEnabled, mode);
       }
+      // In case the query is served by HiveServer2, don't pad it with spaces,
+      // as HiveServer2 output is consumed by JDBC/ODBC clients.
+      out.write(mdt.renderTable(!SessionState.get().isHiveServerQuery()).getBytes("UTF-8"));
+      out.write(terminator);
+    } catch (IOException e) {
+      throw new HiveException(e);
+    }
+  }
 
   @Override
   public void describeTable(DataOutputStream outStream,  String colPath,

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowTablesDesc.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowTablesDesc.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowTablesDesc.java
index bf80345..1c16252 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowTablesDesc.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowTablesDesc.java
@@ -32,25 +32,38 @@ import org.apache.hadoop.hive.ql.plan.Explain.Level;
 @Explain(displayName = "Show Tables", explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED })
 public class ShowTablesDesc extends DDLDesc implements Serializable {
   private static final long serialVersionUID = 1L;
-  String pattern;
-  String dbName;
-  String resFile;
-  TableType type;
+
   /**
    * table name for the result of show tables.
    */
   private static final String table = "show";
+
+  /**
+   * thrift ddl for the result of show tables.
+   */
+  private static final String TABLES_VIEWS_SCHEMA = "tab_name#string";
+
   /**
    * thrift ddl for the result of show tables.
    */
-  private static final String schema = "tab_name#string";
+  private static final String MATERIALIZED_VIEWS_SCHEMA =
+      "mv_name,rewrite_enabled,mode#string:string:string";
+
+
+  String pattern;
+  String dbName;
+  String resFile;
+  TableType type;
 
   public String getTable() {
     return table;
   }
 
   public String getSchema() {
-    return schema;
+    if (type != null && type == TableType.MATERIALIZED_VIEW) {
+      return MATERIALIZED_VIEWS_SCHEMA;
+    }
+    return TABLES_VIEWS_SCHEMA;
   }
 
   public ShowTablesDesc() {

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/queries/clientpositive/create_view.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/create_view.q b/ql/src/test/queries/clientpositive/create_view.q
index 3d66cbc..dce2866 100644
--- a/ql/src/test/queries/clientpositive/create_view.q
+++ b/ql/src/test/queries/clientpositive/create_view.q
@@ -42,6 +42,7 @@ EXPLAIN
 SELECT * from view2 where key=18;
 
 SHOW TABLES 'view.*';
+SHOW VIEWS 'view.*';
 DESCRIBE view1;
 DESCRIBE EXTENDED view1;
 DESCRIBE FORMATTED view1;

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_time_window_2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_time_window_2.q b/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_time_window_2.q
new file mode 100644
index 0000000..6873673
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/materialized_view_create_rewrite_time_window_2.q
@@ -0,0 +1,45 @@
+set hive.support.concurrency=true;
+set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
+set hive.strict.checks.cartesian.product=false;
+
+create table cmv_basetable_n100 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true');
+insert into cmv_basetable_n100 values
+ (1, 'alfred', 10.30, 2),
+ (2, 'bob', 3.14, 3),
+ (2, 'bonnie', 172342.2, 3),
+ (3, 'calvin', 978.76, 3),
+ (3, 'charlie', 9.8, 1);
+analyze table cmv_basetable_n100 compute statistics for columns;
+
+create table cmv_basetable_2_n100 (a int, b varchar(256), c decimal(10,2), d int) stored as orc TBLPROPERTIES ('transactional'='true');
+insert into cmv_basetable_2_n100 values
+ (1, 'alfred', 10.30, 2),
+ (3, 'calvin', 978.76, 3);
+analyze table cmv_basetable_2_n100 compute statistics for columns;
+
+-- CREATE MATERIALIZED VIEW
+CREATE MATERIALIZED VIEW cmv_mat_view_n300 AS
+  SELECT cmv_basetable_n100.a, cmv_basetable_2_n100.c
+  FROM cmv_basetable_n100 JOIN cmv_basetable_2_n100 ON (cmv_basetable_n100.a = cmv_basetable_2_n100.a)
+  WHERE cmv_basetable_2_n100.c > 10.0
+  GROUP BY cmv_basetable_n100.a, cmv_basetable_2_n100.c;
+
+-- OUTDATED: NO
+DESCRIBE FORMATTED cmv_mat_view_n300;
+
+insert into cmv_basetable_2_n100 values
+ (3, 'charlie', 15.8, 1);
+analyze table cmv_basetable_2_n100 compute statistics for columns;
+
+-- OUTDATED: YES
+DESCRIBE FORMATTED cmv_mat_view_n300;
+
+-- REBUILD
+ALTER MATERIALIZED VIEW cmv_mat_view_n300 REBUILD;
+
+-- OUTDATED: NO
+DESCRIBE FORMATTED cmv_mat_view_n300;
+
+drop materialized view cmv_mat_view_n300;
+drop table cmv_basetable_n100;
+drop table cmv_basetable_2_n100;

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/queries/clientpositive/show_materialized_views.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/show_materialized_views.q b/ql/src/test/queries/clientpositive/show_materialized_views.q
index f8d49d6..7c91b2e 100644
--- a/ql/src/test/queries/clientpositive/show_materialized_views.q
+++ b/ql/src/test/queries/clientpositive/show_materialized_views.q
@@ -11,9 +11,11 @@ CREATE TABLE shtb_test1(KEY INT, VALUE STRING) PARTITIONED BY(ds STRING)
 STORED AS ORC TBLPROPERTIES ('transactional'='true');
 CREATE MATERIALIZED VIEW shtb_test1_view1 DISABLE REWRITE AS
 SELECT * FROM shtb_test1 where KEY > 1000 and KEY < 2000;
-CREATE MATERIALIZED VIEW shtb_test1_view2 AS
+CREATE MATERIALIZED VIEW shtb_test1_view2 
+TBLPROPERTIES ('rewriting.time.window' = '-1min') AS
 SELECT * FROM shtb_test1 where KEY > 100 and KEY < 200;
-CREATE MATERIALIZED VIEW shtb_full_view2 AS
+CREATE MATERIALIZED VIEW shtb_full_view2
+TBLPROPERTIES ('rewriting.time.window' = '5min') AS
 SELECT * FROM shtb_test1;
 
 USE test2;
@@ -42,16 +44,22 @@ SHOW MATERIALIZED VIEWS FROM test2;
 SHOW MATERIALIZED VIEWS IN test1;
 SHOW MATERIALIZED VIEWS IN default;
 SHOW MATERIALIZED VIEWS IN test1 "shtb_test_*";
+DESCRIBE FORMATTED test1.shtb_full_view2;
+DESCRIBE FORMATTED test1.shtb_test1_view1;
+DESCRIBE FORMATTED test1.shtb_test1_view2;
 SHOW MATERIALIZED VIEWS IN test2 LIKE "nomatch";
 
 -- SHOW MATERIALIZED VIEWS from a database with a name that requires escaping
 CREATE DATABASE `database`;
 USE `database`;
-CREATE TABLE foo_n0(a INT);
-CREATE VIEW fooview AS
+CREATE TABLE foo_n0(a INT)
+STORED AS ORC TBLPROPERTIES ('transactional'='true');
+CREATE MATERIALIZED VIEW fooview
+TBLPROPERTIES ('rewriting.time.window' = '0min') AS
 SELECT * FROM foo_n0;
 USE default;
 SHOW MATERIALIZED VIEWS FROM `database` LIKE "fooview";
+DESCRIBE FORMATTED `database`.`fooview`;
 
 DROP MATERIALIZED VIEW fooview;
 DROP TABLE foo_n0;

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/queries/clientpositive/temp_table.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/temp_table.q b/ql/src/test/queries/clientpositive/temp_table.q
index 4990223..f462f70 100644
--- a/ql/src/test/queries/clientpositive/temp_table.q
+++ b/ql/src/test/queries/clientpositive/temp_table.q
@@ -8,7 +8,7 @@ EXPLAIN CREATE TEMPORARY TABLE bar AS SELECT * FROM src WHERE key % 2 = 1;
 CREATE TEMPORARY TABLE bar AS SELECT * FROM src WHERE key % 2 = 1;
 
 DESCRIBE foo;
-DESCRIBE bar;
+DESCRIBE FORMATTED bar;
 
 explain select * from foo order by key limit 10;
 select * from foo order by key limit 10;

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientnegative/alter_view_as_select_with_partition.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/alter_view_as_select_with_partition.q.out b/ql/src/test/results/clientnegative/alter_view_as_select_with_partition.q.out
index 90c3d02..5261a3b 100644
--- a/ql/src/test/results/clientnegative/alter_view_as_select_with_partition.q.out
+++ b/ql/src/test/results/clientnegative/alter_view_as_select_with_partition.q.out
@@ -69,12 +69,11 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT key, value   	 
+Original Query:     	SELECT key, value   	 
 	                    	FROM src            
 	                    	WHERE key=86        
-View Expanded Text: 	SELECT `src`.`key`, `src`.`value`	 
+Expanded Query:     	SELECT `src`.`key`, `src`.`value`	 
 	                    	FROM `default`.`src`
 	                    	WHERE `src`.`key`=86
-View Rewrite Enabled:	No                  	 
 FAILED: SemanticException [Error 10217]: Cannot replace a view with CREATE VIEW or REPLACE VIEW or ALTER VIEW AS SELECT if the view has partitions
  The following view has partition, it could not be replaced: default.testViewPart

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/alter_view_as_select.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/alter_view_as_select.q.out b/ql/src/test/results/clientpositive/alter_view_as_select.q.out
index 425b527..b024443 100644
--- a/ql/src/test/results/clientpositive/alter_view_as_select.q.out
+++ b/ql/src/test/results/clientpositive/alter_view_as_select.q.out
@@ -49,9 +49,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT * FROM srcpart	 
-View Expanded Text: 	SELECT `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` FROM `default`.`srcpart`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	SELECT * FROM srcpart	 
+Expanded Query:     	SELECT `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` FROM `default`.`srcpart`	 
 PREHOOK: query: ALTER VIEW tv.testView AS SELECT value FROM src WHERE key=86
 PREHOOK: type: CREATEVIEW
 PREHOOK: Input: default@src
@@ -90,9 +89,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT value FROM src WHERE key=86	 
-View Expanded Text: 	SELECT `src`.`value` FROM `default`.`src` WHERE `src`.`key`=86	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	SELECT value FROM src WHERE key=86	 
+Expanded Query:     	SELECT `src`.`value` FROM `default`.`src` WHERE `src`.`key`=86	 
 PREHOOK: query: ALTER VIEW tv.testView AS
 SELECT * FROM src
 WHERE key > 80 AND key < 100
@@ -140,15 +138,14 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT * FROM src   	 
+Original Query:     	SELECT * FROM src   	 
 	                    	WHERE key > 80 AND key < 100
 	                    	ORDER BY key, value 
 	                    	LIMIT 10            
-View Expanded Text: 	SELECT `src`.`key`, `src`.`value` FROM `default`.`src`	 
+Expanded Query:     	SELECT `src`.`key`, `src`.`value` FROM `default`.`src`	 
 	                    	WHERE `src`.`key` > 80 AND `src`.`key` < 100
 	                    	ORDER BY `src`.`key`, `src`.`value`
 	                    	LIMIT 10            
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: DROP VIEW tv.testView
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: tv@testview

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/alter_view_col_type.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/alter_view_col_type.q.out b/ql/src/test/results/clientpositive/alter_view_col_type.q.out
index c829400..2d1d2ab 100644
--- a/ql/src/test/results/clientpositive/alter_view_col_type.q.out
+++ b/ql/src/test/results/clientpositive/alter_view_col_type.q.out
@@ -102,9 +102,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select c1, c2 from at1	 
-View Expanded Text: 	select `at1`.`c1`, `at1`.`c2` from `default`.`at1`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select c1, c2 from at1	 
+Expanded Query:     	select `at1`.`c1`, `at1`.`c2` from `default`.`at1`	 
 PREHOOK: query: select * from av1
 PREHOOK: type: QUERY
 PREHOOK: Input: default@at1
@@ -159,9 +158,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select c2, c3 from at1	 
-View Expanded Text: 	select `at1`.`c2`, `at1`.`c3` from `default`.`at1`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select c2, c3 from at1	 
+Expanded Query:     	select `at1`.`c2`, `at1`.`c3` from `default`.`at1`	 
 PREHOOK: query: select * from av1
 PREHOOK: type: QUERY
 PREHOOK: Input: default@at1

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/beeline/escape_comments.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/beeline/escape_comments.q.out b/ql/src/test/results/clientpositive/beeline/escape_comments.q.out
index 7890561..ac919e1 100644
--- a/ql/src/test/results/clientpositive/beeline/escape_comments.q.out
+++ b/ql/src/test/results/clientpositive/beeline/escape_comments.q.out
@@ -162,9 +162,8 @@ Bucket Columns:     	[]                  	NULL
 Sort Columns:       	[]                  	NULL
 	NULL	NULL
 # View Information	NULL	NULL
-View Original Text: 	select col1 from escape_comments_tbl1	NULL
-View Expanded Text: 	SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_db.escape_comments_view1`	NULL
-View Rewrite Enabled:	No                  	NULL
+Original Query:     	select col1 from escape_comments_tbl1	NULL
+Expanded Query:     	SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_db.escape_comments_view1`	NULL
 PREHOOK: query: drop database escape_comments_db cascade
 PREHOOK: type: DROPDATABASE
 PREHOOK: Input: database:escape_comments_db

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/create_or_replace_view.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/create_or_replace_view.q.out b/ql/src/test/results/clientpositive/create_or_replace_view.q.out
index 5871434..8f8d912 100644
--- a/ql/src/test/results/clientpositive/create_or_replace_view.q.out
+++ b/ql/src/test/results/clientpositive/create_or_replace_view.q.out
@@ -49,9 +49,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from srcpart	 
-View Expanded Text: 	select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from srcpart	 
+Expanded Query:     	select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`	 
 PREHOOK: query: create or replace view vt.v partitioned on (ds, hr) as select * from srcpart
 PREHOOK: type: CREATEVIEW
 PREHOOK: Input: default@srcpart
@@ -143,9 +142,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from srcpart	 
-View Expanded Text: 	select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from srcpart	 
+Expanded Query:     	select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`	 
 PREHOOK: query: show partitions vt.v
 PREHOOK: type: SHOWPARTITIONS
 PREHOOK: Input: vt@v
@@ -240,9 +238,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select value, ds, hr from srcpart	 
-View Expanded Text: 	select `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select value, ds, hr from srcpart	 
+Expanded Query:     	select `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`	 
 PREHOOK: query: show partitions vt.v
 PREHOOK: type: SHOWPARTITIONS
 PREHOOK: Input: vt@v
@@ -314,9 +311,8 @@ Bucket Columns:     	[]
 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 `default`.`srcpart`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select key, value, ds, hr from srcpart	 
+Expanded Query:     	select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`	 
 PREHOOK: query: show partitions vt.v
 PREHOOK: type: SHOWPARTITIONS
 PREHOOK: Input: vt@v
@@ -411,9 +407,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from srcpart	 
-View Expanded Text: 	select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from srcpart	 
+Expanded Query:     	select `srcpart`.`key`, `srcpart`.`value`, `srcpart`.`ds`, `srcpart`.`hr` from `default`.`srcpart`	 
 PREHOOK: query: drop view vt.v
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: vt@v

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/create_view.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/create_view.q.out b/ql/src/test/results/clientpositive/create_view.q.out
index b5b7bfb..d2c516f 100644
--- a/ql/src/test/results/clientpositive/create_view.q.out
+++ b/ql/src/test/results/clientpositive/create_view.q.out
@@ -221,6 +221,10 @@ PREHOOK: Input: database:default
 POSTHOOK: query: SHOW TABLES 'view.*'
 POSTHOOK: type: SHOWTABLES
 POSTHOOK: Input: database:default
+PREHOOK: query: SHOW VIEWS 'view.*'
+PREHOOK: type: SHOWVIEWS
+POSTHOOK: query: SHOW VIEWS 'view.*'
+POSTHOOK: type: SHOWVIEWS
 view1
 view2
 view3
@@ -268,9 +272,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT value FROM src WHERE key=86	 
-View Expanded Text: 	SELECT `src`.`value` FROM `default`.`src` WHERE `src`.`key`=86	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	SELECT value FROM src WHERE key=86	 
+Expanded Query:     	SELECT `src`.`value` FROM `default`.`src` WHERE `src`.`key`=86	 
 PREHOOK: query: DESCRIBE view2
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@view2
@@ -318,9 +321,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT * FROM src   	 
-View Expanded Text: 	SELECT `src`.`key`, `src`.`value` FROM `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	SELECT * FROM src   	 
+Expanded Query:     	SELECT `src`.`key`, `src`.`value` FROM `default`.`src`	 
 PREHOOK: query: DESCRIBE view3
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@view3
@@ -366,9 +368,8 @@ Bucket Columns:     	[]
 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 `default`.`src` WHERE `src`.`key`=86) `default.view3`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	SELECT upper(value) FROM src WHERE key=86	 
+Expanded Query:     	SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `default.view3`	 
 PREHOOK: query: ALTER VIEW view3 SET TBLPROPERTIES ("biggest" = "loser")
 PREHOOK: type: ALTERVIEW_PROPERTIES
 PREHOOK: Input: default@view3
@@ -416,9 +417,8 @@ Bucket Columns:     	[]
 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 `default`.`src` WHERE `src`.`key`=86) `default.view3`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	SELECT upper(value) FROM src WHERE key=86	 
+Expanded Query:     	SELECT `_c0` AS `valoo` FROM (SELECT upper(`src`.`value`) FROM `default`.`src` WHERE `src`.`key`=86) `default.view3`	 
 PREHOOK: query: CREATE TABLE table1_n4 (key int)
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
@@ -758,11 +758,10 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT test_translate('abc', 'a', 'b')	 
+Original Query:     	SELECT test_translate('abc', 'a', 'b')	 
 	                    	FROM table1_n4      
-View Expanded Text: 	SELECT `_c0` AS `c` FROM (SELECT `test_translate`('abc', 'a', 'b')	 
+Expanded Query:     	SELECT `_c0` AS `c` FROM (SELECT `test_translate`('abc', 'a', 'b')	 
 	                    	FROM `default`.`table1_n4`) `default.view8`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: SELECT * FROM view8
 PREHOOK: type: QUERY
 PREHOOK: Input: default@table1_n4
@@ -834,11 +833,10 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT test_max(length(value))	 
+Original Query:     	SELECT test_max(length(value))	 
 	                    	FROM src            
-View Expanded Text: 	SELECT `_c0` AS `m` FROM (SELECT `test_max`(length(`src`.`value`))	 
+Expanded Query:     	SELECT `_c0` AS `m` FROM (SELECT `test_max`(length(`src`.`value`))	 
 	                    	FROM `default`.`src`) `default.view9`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: SELECT * FROM view9
 PREHOOK: type: QUERY
 PREHOOK: Input: default@src
@@ -910,11 +908,10 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT test_max(length(value))	 
+Original Query:     	SELECT test_max(length(value))	 
 	                    	FROM src            
-View Expanded Text: 	SELECT `_c0` AS `m` FROM (SELECT `test_max`(length(`src`.`value`))	 
+Expanded Query:     	SELECT `_c0` AS `m` FROM (SELECT `test_max`(length(`src`.`value`))	 
 	                    	FROM `default`.`src`) `default.view9`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: SELECT * FROM view9
 PREHOOK: type: QUERY
 PREHOOK: Input: default@src
@@ -979,9 +976,8 @@ Bucket Columns:     	[]
 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 `default`.`src` WHERE `src`.`key`=86) `slurp`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	SELECT slurp.* FROM (SELECT * FROM src WHERE key=86) slurp	 
+Expanded Query:     	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
@@ -1053,11 +1049,10 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT test_explode(array(1,2,3)) AS (boom)	 
+Original Query:     	SELECT test_explode(array(1,2,3)) AS (boom)	 
 	                    	FROM table1_n4      
-View Expanded Text: 	SELECT `test_explode`(array(1,2,3)) AS (`boom`)	 
+Expanded Query:     	SELECT `test_explode`(array(1,2,3)) AS (`boom`)	 
 	                    	FROM `default`.`table1_n4`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: SELECT * FROM view11
 PREHOOK: type: QUERY
 PREHOOK: Input: default@table1_n4
@@ -1127,9 +1122,8 @@ Bucket Columns:     	[]
 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 `default`.`src` LATERAL VIEW explode(array(1,2,3)) `myTable` AS `myCol`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	SELECT * FROM src LATERAL VIEW explode(array(1,2,3)) myTable AS myCol	 
+Expanded Query:     	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
@@ -1208,11 +1202,10 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT s.key        	 
+Original Query:     	SELECT s.key        	 
 	                    	FROM srcbucket TABLESAMPLE (BUCKET 1 OUT OF 5 ON key) s
-View Expanded Text: 	SELECT `s`.`key`    	 
+Expanded Query:     	SELECT `s`.`key`    	 
 	                    	FROM `default`.`srcbucket` TABLESAMPLE (BUCKET 1 OUT OF 5 ON `key`) `s`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: SELECT * FROM view13
 ORDER BY key LIMIT 12
 PREHOOK: type: QUERY
@@ -1314,7 +1307,7 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT unionsrc1.key as k1, unionsrc1.value as v1,	 
+Original Query:     	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
 	                    	                         UNION  ALL
@@ -1324,7 +1317,7 @@ View Original Text: 	SELECT unionsrc1.key as k1, unionsrc1.value as v1,
 	                    	                         UNION  ALL
 	                    	      select s4.key as key, s4.value as value from src s4 where s4.key < 10) unionsrc2
 	                    	ON (unionsrc1.key = unionsrc2.key)
-View Expanded Text: 	SELECT `unionsrc1`.`key` as `k1`, `unionsrc1`.`value` as `v1`,	 
+Expanded Query:     	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 `default`.`src` `s1`
 	                    	                         UNION  ALL
@@ -1334,7 +1327,6 @@ View Expanded Text: 	SELECT `unionsrc1`.`key` as `k1`, `unionsrc1`.`value` as `v
 	                    	                         UNION  ALL
 	                    	      select `s4`.`key` as `key`, `s4`.`value` as `value` from `default`.`src` `s4` where `s4`.`key` < 10) `unionsrc2`
 	                    	ON (`unionsrc1`.`key` = `unionsrc2`.`key`)
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: SELECT * FROM view14
 ORDER BY k1
 PREHOOK: type: QUERY
@@ -1427,13 +1419,12 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT key,COUNT(value) AS value_count	 
+Original Query:     	SELECT key,COUNT(value) AS value_count	 
 	                    	FROM src            
 	                    	GROUP BY key        
-View Expanded Text: 	SELECT `src`.`key`,COUNT(`src`.`value`) AS `value_count`	 
+Expanded Query:     	SELECT `src`.`key`,COUNT(`src`.`value`) AS `value_count`	 
 	                    	FROM `default`.`src`
 	                    	GROUP BY `src`.`key`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: SELECT * FROM view15
 ORDER BY value_count DESC, key
 LIMIT 10
@@ -1510,11 +1501,10 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT DISTINCT value	 
+Original Query:     	SELECT DISTINCT value	 
 	                    	FROM src            
-View Expanded Text: 	SELECT DISTINCT `src`.`value`	 
+Expanded Query:     	SELECT DISTINCT `src`.`value`	 
 	                    	FROM `default`.`src`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: SELECT * FROM view16
 ORDER BY value
 LIMIT 10

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/create_view_defaultformats.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/create_view_defaultformats.q.out b/ql/src/test/results/clientpositive/create_view_defaultformats.q.out
index b408c6e..28ca402 100644
--- a/ql/src/test/results/clientpositive/create_view_defaultformats.q.out
+++ b/ql/src/test/results/clientpositive/create_view_defaultformats.q.out
@@ -59,9 +59,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from src   	 
-View Expanded Text: 	select `src`.`key`, `src`.`value` from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from src   	 
+Expanded Query:     	select `src`.`key`, `src`.`value` from `default`.`src`	 
 PREHOOK: query: describe formatted rcsrc
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@rcsrc
@@ -91,9 +90,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select * from src   	 
-View Expanded Text: 	select `src`.`key`, `src`.`value` from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select * from src   	 
+Expanded Query:     	select `src`.`key`, `src`.`value` from `default`.`src`	 
 PREHOOK: query: select * from sfsrc where key = 100 limit 1
 PREHOOK: type: QUERY
 PREHOOK: Input: default@sfsrc

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/create_view_partitioned.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/create_view_partitioned.q.out b/ql/src/test/results/clientpositive/create_view_partitioned.q.out
index be1e19b..bd9cb3a 100644
--- a/ql/src/test/results/clientpositive/create_view_partitioned.q.out
+++ b/ql/src/test/results/clientpositive/create_view_partitioned.q.out
@@ -83,13 +83,12 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT key, value   	 
+Original Query:     	SELECT key, value   	 
 	                    	FROM src            
 	                    	WHERE key=86        
-View Expanded Text: 	SELECT `src`.`key`, `src`.`value`	 
+Expanded Query:     	SELECT `src`.`key`, `src`.`value`	 
 	                    	FROM `default`.`src`
 	                    	WHERE `src`.`key`=86
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: SELECT * FROM vp1
 PREHOOK: type: QUERY
 PREHOOK: Input: default@src
@@ -283,9 +282,8 @@ Bucket Columns:     	[]
 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 `default`.`srcpart` WHERE `srcpart`.`key` < 10	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	SELECT * FROM srcpart WHERE key < 10	 
+Expanded Query:     	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
@@ -399,13 +397,12 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	SELECT key, value   	 
+Original Query:     	SELECT key, value   	 
 	                    	FROM src            
 	                    	WHERE key=86        
-View Expanded Text: 	SELECT `key` AS `k`, `value` AS `v` FROM (SELECT `src`.`key`, `src`.`value`	 
+Expanded Query:     	SELECT `key` AS `k`, `value` AS `v` FROM (SELECT `src`.`key`, `src`.`value`	 
 	                    	FROM `default`.`src`
 	                    	WHERE `src`.`key`=86) `default.vp3`
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: ALTER VIEW vp3
 ADD PARTITION (v='val_86')
 PREHOOK: type: ALTERTABLE_ADDPARTS

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/create_view_translate.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/create_view_translate.q.out b/ql/src/test/results/clientpositive/create_view_translate.q.out
index cb9e536..7a9863f 100644
--- a/ql/src/test/results/clientpositive/create_view_translate.q.out
+++ b/ql/src/test/results/clientpositive/create_view_translate.q.out
@@ -45,9 +45,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select cast(key as string) from src	 
-View Expanded Text: 	select `src`.`key` from `default`.`src`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select cast(key as string) from src	 
+Expanded Query:     	select `src`.`key` from `default`.`src`	 
 PREHOOK: query: create view w as select key, value from (
   select key, value from src
 ) a
@@ -93,13 +92,12 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select key, value from (	 
+Original Query:     	select key, value from (	 
 	                    	  select key, value from src
 	                    	) a                 
-View Expanded Text: 	select `a`.`key`, `a`.`value` from (	 
+Expanded Query:     	select `a`.`key`, `a`.`value` from (	 
 	                    	  select `src`.`key`, `src`.`value` from `default`.`src`
 	                    	) `a`               
-View Rewrite Enabled:	No                  	 
 PREHOOK: query: drop view v_n7
 PREHOOK: type: DROPVIEW
 PREHOOK: Input: default@v_n7

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/dbtxnmgr_query5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/dbtxnmgr_query5.q.out b/ql/src/test/results/clientpositive/dbtxnmgr_query5.q.out
index ea76a37..37ff3ec 100644
--- a/ql/src/test/results/clientpositive/dbtxnmgr_query5.q.out
+++ b/ql/src/test/results/clientpositive/dbtxnmgr_query5.q.out
@@ -43,7 +43,6 @@ POSTHOOK: query: show tables
 POSTHOOK: type: SHOWTABLES
 POSTHOOK: Input: database:foo
 t1_n40
-v1_n3
 PREHOOK: query: describe T1_n40
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: foo@t1_n40

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/escape_comments.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/escape_comments.q.out b/ql/src/test/results/clientpositive/escape_comments.q.out
index 2eacf22..e29cfee 100644
--- a/ql/src/test/results/clientpositive/escape_comments.q.out
+++ b/ql/src/test/results/clientpositive/escape_comments.q.out
@@ -168,9 +168,8 @@ Bucket Columns:     	[]
 Sort Columns:       	[]                  	 
 	 	 
 # View Information	 	 
-View Original Text: 	select col1 from escape_comments_tbl1	 
-View Expanded Text: 	SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_db.escape_comments_view1`	 
-View Rewrite Enabled:	No                  	 
+Original Query:     	select col1 from escape_comments_tbl1	 
+Expanded Query:     	SELECT `col1` AS `col1` FROM (select `escape_comments_tbl1`.`col1` from `escape_comments_db`.`escape_comments_tbl1`) `escape_comments_db.escape_comments_view1`	 
 PREHOOK: query: drop database escape_comments_db cascade
 PREHOOK: type: DROPDATABASE
 PREHOOK: Input: database:escape_comments_db

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/llap/materialized_view_create.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create.q.out
index 95f8966..36a3d8c 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_create.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create.q.out
@@ -62,10 +62,11 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	select a, b, c from cmv_basetable_n4	 
-View Expanded Text: 	select `cmv_basetable_n4`.`a`, `cmv_basetable_n4`.`b`, `cmv_basetable_n4`.`c` from `default`.`cmv_basetable_n4`	 
-View Rewrite Enabled:	No                  	 
+# Materialized View Information	 	 
+Original Query:     	select a, b, c from cmv_basetable_n4	 
+Expanded Query:     	select `cmv_basetable_n4`.`a`, `cmv_basetable_n4`.`b`, `cmv_basetable_n4`.`c` from `default`.`cmv_basetable_n4`	 
+Rewrite Enabled:    	No                  	 
+Outdated for Rewriting:	Unknown             	 
 PREHOOK: query: select * from cmv_mat_view_n4
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_mat_view_n4
@@ -123,10 +124,11 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	select a, c from cmv_basetable_n4	 
-View Expanded Text: 	select `cmv_basetable_n4`.`a`, `cmv_basetable_n4`.`c` from `default`.`cmv_basetable_n4`	 
-View Rewrite Enabled:	No                  	 
+# Materialized View Information	 	 
+Original Query:     	select a, c from cmv_basetable_n4	 
+Expanded Query:     	select `cmv_basetable_n4`.`a`, `cmv_basetable_n4`.`c` from `default`.`cmv_basetable_n4`	 
+Rewrite Enabled:    	No                  	 
+Outdated for Rewriting:	Unknown             	 
 PREHOOK: query: select * from cmv_mat_view2_n1
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_mat_view2_n1

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
index 42bfa4b..fcd8466 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_4.q.out
@@ -284,16 +284,17 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	SELECT cmv_basetable_n5.a, cmv_basetable_2_n2.c, sum(cmv_basetable_2_n2.d)	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n5.a, cmv_basetable_2_n2.c, sum(cmv_basetable_2_n2.d)	 
 	                    	  FROM cmv_basetable_n5 JOIN cmv_basetable_2_n2 ON (cmv_basetable_n5.a = cmv_basetable_2_n2.a)
 	                    	  WHERE cmv_basetable_2_n2.c > 10.0
 	                    	  GROUP BY cmv_basetable_n5.a, cmv_basetable_2_n2.c
-View Expanded Text: 	SELECT `cmv_basetable_n5`.`a`, `cmv_basetable_2_n2`.`c`, sum(`cmv_basetable_2_n2`.`d`)	 
+Expanded Query:     	SELECT `cmv_basetable_n5`.`a`, `cmv_basetable_2_n2`.`c`, sum(`cmv_basetable_2_n2`.`d`)	 
 	                    	  FROM `default`.`cmv_basetable_n5` JOIN `default`.`cmv_basetable_2_n2` ON (`cmv_basetable_n5`.`a` = `cmv_basetable_2_n2`.`a`)
 	                    	  WHERE `cmv_basetable_2_n2`.`c` > 10.0
 	                    	  GROUP BY `cmv_basetable_n5`.`a`, `cmv_basetable_2_n2`.`c`
-View Rewrite Enabled:	No                  	 
+Rewrite Enabled:    	No                  	 
+Outdated for Rewriting:	No                  	 
 PREHOOK: query: EXPLAIN
 SELECT cmv_basetable_n5.a, sum(cmv_basetable_2_n2.d)
 FROM cmv_basetable_n5 join cmv_basetable_2_n2 ON (cmv_basetable_n5.a = cmv_basetable_2_n2.a)
@@ -513,16 +514,17 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	SELECT cmv_basetable_n5.a, cmv_basetable_2_n2.c, sum(cmv_basetable_2_n2.d)	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n5.a, cmv_basetable_2_n2.c, sum(cmv_basetable_2_n2.d)	 
 	                    	  FROM cmv_basetable_n5 JOIN cmv_basetable_2_n2 ON (cmv_basetable_n5.a = cmv_basetable_2_n2.a)
 	                    	  WHERE cmv_basetable_2_n2.c > 10.0
 	                    	  GROUP BY cmv_basetable_n5.a, cmv_basetable_2_n2.c
-View Expanded Text: 	SELECT `cmv_basetable_n5`.`a`, `cmv_basetable_2_n2`.`c`, sum(`cmv_basetable_2_n2`.`d`)	 
+Expanded Query:     	SELECT `cmv_basetable_n5`.`a`, `cmv_basetable_2_n2`.`c`, sum(`cmv_basetable_2_n2`.`d`)	 
 	                    	  FROM `default`.`cmv_basetable_n5` JOIN `default`.`cmv_basetable_2_n2` ON (`cmv_basetable_n5`.`a` = `cmv_basetable_2_n2`.`a`)
 	                    	  WHERE `cmv_basetable_2_n2`.`c` > 10.0
 	                    	  GROUP BY `cmv_basetable_n5`.`a`, `cmv_basetable_2_n2`.`c`
-View Rewrite Enabled:	Yes                 	 
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	Yes                 	 
 PREHOOK: query: EXPLAIN
 SELECT cmv_basetable_n5.a, sum(cmv_basetable_2_n2.d)
 FROM cmv_basetable_n5 join cmv_basetable_2_n2 ON (cmv_basetable_n5.a = cmv_basetable_2_n2.a)
@@ -964,16 +966,17 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	SELECT cmv_basetable_n5.a, cmv_basetable_2_n2.c, sum(cmv_basetable_2_n2.d)	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n5.a, cmv_basetable_2_n2.c, sum(cmv_basetable_2_n2.d)	 
 	                    	  FROM cmv_basetable_n5 JOIN cmv_basetable_2_n2 ON (cmv_basetable_n5.a = cmv_basetable_2_n2.a)
 	                    	  WHERE cmv_basetable_2_n2.c > 10.0
 	                    	  GROUP BY cmv_basetable_n5.a, cmv_basetable_2_n2.c
-View Expanded Text: 	SELECT `cmv_basetable_n5`.`a`, `cmv_basetable_2_n2`.`c`, sum(`cmv_basetable_2_n2`.`d`)	 
+Expanded Query:     	SELECT `cmv_basetable_n5`.`a`, `cmv_basetable_2_n2`.`c`, sum(`cmv_basetable_2_n2`.`d`)	 
 	                    	  FROM `default`.`cmv_basetable_n5` JOIN `default`.`cmv_basetable_2_n2` ON (`cmv_basetable_n5`.`a` = `cmv_basetable_2_n2`.`a`)
 	                    	  WHERE `cmv_basetable_2_n2`.`c` > 10.0
 	                    	  GROUP BY `cmv_basetable_n5`.`a`, `cmv_basetable_2_n2`.`c`
-View Rewrite Enabled:	Yes                 	 
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
 PREHOOK: query: EXPLAIN
 SELECT cmv_basetable_n5.a, sum(cmv_basetable_2_n2.d)
 FROM cmv_basetable_n5 join cmv_basetable_2_n2 ON (cmv_basetable_n5.a = cmv_basetable_2_n2.a)

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
index 949f71b..5cb59ac 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_5.q.out
@@ -421,14 +421,15 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	SELECT cmv_basetable_n6.a, cmv_basetable_2_n3.c	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n6.a, cmv_basetable_2_n3.c	 
 	                    	  FROM cmv_basetable_n6 JOIN cmv_basetable_2_n3 ON (cmv_basetable_n6.a = cmv_basetable_2_n3.a)
 	                    	  WHERE cmv_basetable_2_n3.c > 10.0
-View Expanded Text: 	SELECT `cmv_basetable_n6`.`a`, `cmv_basetable_2_n3`.`c`	 
+Expanded Query:     	SELECT `cmv_basetable_n6`.`a`, `cmv_basetable_2_n3`.`c`	 
 	                    	  FROM `default`.`cmv_basetable_n6` JOIN `default`.`cmv_basetable_2_n3` ON (`cmv_basetable_n6`.`a` = `cmv_basetable_2_n3`.`a`)
 	                    	  WHERE `cmv_basetable_2_n3`.`c` > 10.0
-View Rewrite Enabled:	Yes                 	 
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
 PREHOOK: query: EXPLAIN
 SELECT cmv_basetable_n6.a
 FROM cmv_basetable_n6 join cmv_basetable_2_n3 ON (cmv_basetable_n6.a = cmv_basetable_2_n3.a)

http://git-wip-us.apache.org/repos/asf/hive/blob/3ce97c90/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window.q.out
index 5b957bd..0601ea7 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_time_window.q.out
@@ -269,16 +269,17 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	SELECT cmv_basetable_n3.a, cmv_basetable_2_n1.c	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n3.a, cmv_basetable_2_n1.c	 
 	                    	  FROM cmv_basetable_n3 JOIN cmv_basetable_2_n1 ON (cmv_basetable_n3.a = cmv_basetable_2_n1.a)
 	                    	  WHERE cmv_basetable_2_n1.c > 10.0
 	                    	  GROUP BY cmv_basetable_n3.a, cmv_basetable_2_n1.c
-View Expanded Text: 	SELECT `cmv_basetable_n3`.`a`, `cmv_basetable_2_n1`.`c`	 
+Expanded Query:     	SELECT `cmv_basetable_n3`.`a`, `cmv_basetable_2_n1`.`c`	 
 	                    	  FROM `default`.`cmv_basetable_n3` JOIN `default`.`cmv_basetable_2_n1` ON (`cmv_basetable_n3`.`a` = `cmv_basetable_2_n1`.`a`)
 	                    	  WHERE `cmv_basetable_2_n1`.`c` > 10.0
 	                    	  GROUP BY `cmv_basetable_n3`.`a`, `cmv_basetable_2_n1`.`c`
-View Rewrite Enabled:	No                  	 
+Rewrite Enabled:    	No                  	 
+Outdated for Rewriting:	No                  	 
 PREHOOK: query: EXPLAIN
 SELECT cmv_basetable_n3.a
 FROM cmv_basetable_n3 join cmv_basetable_2_n1 ON (cmv_basetable_n3.a = cmv_basetable_2_n1.a)
@@ -493,16 +494,17 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	SELECT cmv_basetable_n3.a, cmv_basetable_2_n1.c	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n3.a, cmv_basetable_2_n1.c	 
 	                    	  FROM cmv_basetable_n3 JOIN cmv_basetable_2_n1 ON (cmv_basetable_n3.a = cmv_basetable_2_n1.a)
 	                    	  WHERE cmv_basetable_2_n1.c > 10.0
 	                    	  GROUP BY cmv_basetable_n3.a, cmv_basetable_2_n1.c
-View Expanded Text: 	SELECT `cmv_basetable_n3`.`a`, `cmv_basetable_2_n1`.`c`	 
+Expanded Query:     	SELECT `cmv_basetable_n3`.`a`, `cmv_basetable_2_n1`.`c`	 
 	                    	  FROM `default`.`cmv_basetable_n3` JOIN `default`.`cmv_basetable_2_n1` ON (`cmv_basetable_n3`.`a` = `cmv_basetable_2_n1`.`a`)
 	                    	  WHERE `cmv_basetable_2_n1`.`c` > 10.0
 	                    	  GROUP BY `cmv_basetable_n3`.`a`, `cmv_basetable_2_n1`.`c`
-View Rewrite Enabled:	Yes                 	 
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
 PREHOOK: query: EXPLAIN
 SELECT cmv_basetable_n3.a
 FROM cmv_basetable_n3 join cmv_basetable_2_n1 ON (cmv_basetable_n3.a = cmv_basetable_2_n1.a)
@@ -799,16 +801,17 @@ Num Buckets:        	-1
 Bucket Columns:     	[]                  	 
 Sort Columns:       	[]                  	 
 	 	 
-# View Information	 	 
-View Original Text: 	SELECT cmv_basetable_n3.a, cmv_basetable_2_n1.c	 
+# Materialized View Information	 	 
+Original Query:     	SELECT cmv_basetable_n3.a, cmv_basetable_2_n1.c	 
 	                    	  FROM cmv_basetable_n3 JOIN cmv_basetable_2_n1 ON (cmv_basetable_n3.a = cmv_basetable_2_n1.a)
 	                    	  WHERE cmv_basetable_2_n1.c > 10.0
 	                    	  GROUP BY cmv_basetable_n3.a, cmv_basetable_2_n1.c
-View Expanded Text: 	SELECT `cmv_basetable_n3`.`a`, `cmv_basetable_2_n1`.`c`	 
+Expanded Query:     	SELECT `cmv_basetable_n3`.`a`, `cmv_basetable_2_n1`.`c`	 
 	                    	  FROM `default`.`cmv_basetable_n3` JOIN `default`.`cmv_basetable_2_n1` ON (`cmv_basetable_n3`.`a` = `cmv_basetable_2_n1`.`a`)
 	                    	  WHERE `cmv_basetable_2_n1`.`c` > 10.0
 	                    	  GROUP BY `cmv_basetable_n3`.`a`, `cmv_basetable_2_n1`.`c`
-View Rewrite Enabled:	Yes                 	 
+Rewrite Enabled:    	Yes                 	 
+Outdated for Rewriting:	No                  	 
 PREHOOK: query: EXPLAIN
 SELECT cmv_basetable_n3.a
 FROM cmv_basetable_n3 join cmv_basetable_2_n1 ON (cmv_basetable_n3.a = cmv_basetable_2_n1.a)