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 2017/12/01 23:38:51 UTC

hive git commit: HIVE-18163: Stats: create materialized view should also collect stats (Zoltan Haindrich, reviewed by Jesus Camacho Rodriguez)

Repository: hive
Updated Branches:
  refs/heads/master 5e939d404 -> 3df202f29


HIVE-18163: Stats: create materialized view should also collect stats (Zoltan Haindrich, reviewed by Jesus Camacho Rodriguez)


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

Branch: refs/heads/master
Commit: 3df202f293b86227d6f8a26bfd24e90b92edb44b
Parents: 5e939d4
Author: Zoltan Haindrich <ki...@rxd.hu>
Authored: Fri Dec 1 15:37:43 2017 -0800
Committer: Jesus Camacho Rodriguez <jc...@apache.org>
Committed: Fri Dec 1 15:38:41 2017 -0800

----------------------------------------------------------------------
 .../hadoop/hive/ql/QueryLifeTimeHookRunner.java |   3 +
 .../org/apache/hadoop/hive/ql/exec/DDLTask.java |  32 ++--
 .../MaterializedViewRegistryUpdateHook.java     | 101 ++++++++++
 .../metadata/HiveMaterializedViewsRegistry.java |  36 ++--
 .../hadoop/hive/ql/plan/BasicStatsWork.java     |   4 +-
 .../clientpositive/materialized_view_create.q   |   4 +
 .../materialized_view_create_rewrite.q.out      |  24 ++-
 .../llap/materialized_view_create.q.out         |  79 +++++++-
 .../llap/materialized_view_create_rewrite.q.out |   8 +-
 .../materialized_view_create_rewrite_2.q.out    | 189 +++++--------------
 ...erialized_view_create_rewrite_multi_db.q.out |   8 +-
 .../llap/materialized_view_describe.q.out       |  20 +-
 .../materialized_view_create.q.out              |  79 +++++++-
 .../materialized_view_create_rewrite.q.out      |  24 ++-
 .../materialized_view_create_rewrite_2.q.out    |  50 ++---
 .../materialized_view_create_rewrite_3.q.out    |  16 +-
 ...erialized_view_create_rewrite_multi_db.q.out |  12 +-
 .../materialized_view_describe.q.out            |  20 +-
 18 files changed, 454 insertions(+), 255 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/java/org/apache/hadoop/hive/ql/QueryLifeTimeHookRunner.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/QueryLifeTimeHookRunner.java b/ql/src/java/org/apache/hadoop/hive/ql/QueryLifeTimeHookRunner.java
index 85e038c..6bdf7eb 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/QueryLifeTimeHookRunner.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/QueryLifeTimeHookRunner.java
@@ -26,6 +26,7 @@ import com.google.common.collect.Iterables;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.ql.hooks.HookContext;
 import org.apache.hadoop.hive.ql.hooks.HooksLoader;
+import org.apache.hadoop.hive.ql.hooks.MaterializedViewRegistryUpdateHook;
 import org.apache.hadoop.hive.ql.hooks.MetricsQueryLifeTimeHook;
 import org.apache.hadoop.hive.ql.hooks.QueryLifeTimeHook;
 import org.apache.hadoop.hive.ql.hooks.QueryLifeTimeHookContext;
@@ -59,6 +60,8 @@ class QueryLifeTimeHookRunner {
     if (conf.getBoolVar(HiveConf.ConfVars.HIVE_SERVER2_METRICS_ENABLED)) {
       queryHooks.add(new MetricsQueryLifeTimeHook());
     }
+    queryHooks.add(new MaterializedViewRegistryUpdateHook());
+
     List<QueryLifeTimeHook> propertyDefinedHoooks;
     try {
       propertyDefinedHoooks = hooksLoader.getHooks(

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/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 9184844..a3c21fb 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
@@ -964,16 +964,16 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
     aliasToWork.put(mergeFilesDesc.getInputDir().toString(), mergeOp);
     mergeWork.setAliasToWork(aliasToWork);
     DriverContext driverCxt = new DriverContext();
-    Task task;
+    Task<?> task;
     if (conf.getVar(ConfVars.HIVE_EXECUTION_ENGINE).equals("tez")) {
       TezWork tezWork = new TezWork(queryState.getQueryId(), conf);
       mergeWork.setName("File Merge");
       tezWork.add(mergeWork);
       task = new TezTask();
-      task.setWork(tezWork);
+      ((TezTask) task).setWork(tezWork);
     } else {
       task = new MergeFileTask();
-      task.setWork(mergeWork);
+      ((MergeFileTask) task).setWork(mergeWork);
     }
 
     // initialize the task and execute
@@ -1369,12 +1369,6 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
 
     try {
       db.alterTable(mv, environmentContext);
-      // Remove or add to materialized view rewriting cache
-      if (alterMVDesc.isRewriteEnable()) {
-        HiveMaterializedViewsRegistry.get().addMaterializedView(mv);
-      } else {
-        HiveMaterializedViewsRegistry.get().dropMaterializedView(oldMV);
-      }
     } catch (InvalidOperationException e) {
       throw new HiveException(e, ErrorMsg.GENERIC_ERROR, "Unable to alter " + mv.getFullyQualifiedName());
     }
@@ -4004,7 +3998,9 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
   }
 
   private void addChildTasks(List<Task<?>> extraTasks) {
-    if (extraTasks == null) return;
+    if (extraTasks == null) {
+      return;
+    }
     for (Task<?> newTask : extraTasks) {
       addDependentTask(newTask);
     }
@@ -4372,7 +4368,9 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
   }
 
   private void checkMmLb(Table tbl) throws HiveException {
-    if (!tbl.isStoredAsSubDirectories()) return;
+    if (!tbl.isStoredAsSubDirectories()) {
+      return;
+    }
     // TODO [MM gap?]: by design; no-one seems to use LB tables. They will work, but not convert.
     //                 It's possible to work around this by re-creating and re-inserting the table.
     throw new HiveException("Converting list bucketed tables stored as subdirectories "
@@ -4380,7 +4378,9 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
   }
 
   private void checkMmLb(Partition part) throws HiveException {
-    if (!part.isStoredAsSubDirectories()) return;
+    if (!part.isStoredAsSubDirectories()) {
+      return;
+    }
     throw new HiveException("Converting list bucketed tables stored as subdirectories "
         + " to MM is not supported. Please re-create a table in the desired format.");
   }
@@ -4416,7 +4416,9 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
       Utilities.FILE_OP_LOGGER.trace("Deleting " + what + " " + path);
     }
     try {
-      if (!fs.delete(path, true)) throw new IOException("delete returned false");
+      if (!fs.delete(path, true)) {
+        throw new IOException("delete returned false");
+      }
     } catch (Exception ex) {
       String error = "Couldn't delete " + path + "; cannot remove MM setting from the table";
       LOG.error(error, ex);
@@ -5124,10 +5126,6 @@ public class DDLTask extends Task<DDLWork> implements Serializable {
       // We create new view
       Table tbl = crtView.toTable(conf);
       db.createTable(tbl, crtView.getIfNotExists());
-      // Add to cache if it is a materialized view
-      if (tbl.isMaterializedView()) {
-        HiveMaterializedViewsRegistry.get().addMaterializedView(tbl);
-      }
       addIfAbsentByName(new WriteEntity(tbl, WriteEntity.WriteType.DDL_NO_LOCK));
 
       //set lineage info

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/java/org/apache/hadoop/hive/ql/hooks/MaterializedViewRegistryUpdateHook.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/MaterializedViewRegistryUpdateHook.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/MaterializedViewRegistryUpdateHook.java
new file mode 100644
index 0000000..a57e4c8
--- /dev/null
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/MaterializedViewRegistryUpdateHook.java
@@ -0,0 +1,101 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.hadoop.hive.ql.hooks;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.apache.hadoop.hive.conf.HiveConf;
+import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
+import org.apache.hadoop.hive.ql.exec.DDLTask;
+import org.apache.hadoop.hive.ql.exec.Task;
+import org.apache.hadoop.hive.ql.exec.TaskRunner;
+import org.apache.hadoop.hive.ql.hooks.QueryLifeTimeHook;
+import org.apache.hadoop.hive.ql.hooks.QueryLifeTimeHookContext;
+import org.apache.hadoop.hive.ql.metadata.Hive;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
+import org.apache.hadoop.hive.ql.metadata.HiveMaterializedViewsRegistry;
+import org.apache.hadoop.hive.ql.metadata.Table;
+import org.apache.hadoop.hive.ql.plan.DDLWork;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Updates the materialized view registry after changes.
+ */
+public class MaterializedViewRegistryUpdateHook implements QueryLifeTimeHook {
+
+  private static final Logger LOG = LoggerFactory.getLogger(MaterializedViewRegistryUpdateHook.class);
+
+  @Override
+  public void beforeCompile(QueryLifeTimeHookContext ctx) {
+  }
+
+  @Override
+  public void afterCompile(QueryLifeTimeHookContext ctx, boolean hasError) {
+  }
+
+  @Override
+  public void beforeExecution(QueryLifeTimeHookContext ctx) {
+  }
+
+  @Override
+  public void afterExecution(QueryLifeTimeHookContext ctx, boolean hasError) {
+    if (hasError) {
+      return;
+    }
+    HiveConf hiveConf = ctx.getHiveConf();
+    try {
+      List<TaskRunner> completedTasks = ctx.getHookContext().getCompleteTaskList();
+      for (TaskRunner taskRunner : completedTasks) {
+        Task<? extends Serializable> task = taskRunner.getTask();
+        if (task instanceof DDLTask) {
+          DDLTask ddlTask = (DDLTask) task;
+          DDLWork work = ddlTask.getWork();
+          String tableName = null;
+          if (work.getCreateViewDesc() != null && work.getCreateViewDesc().isMaterialized()) {
+            tableName = work.getCreateViewDesc().toTable(hiveConf).getFullyQualifiedName();
+          }
+          if (work.getAlterMaterializedViewDesc() != null) {
+            tableName = work.getAlterMaterializedViewDesc().getMaterializedViewName();
+          }
+          if (tableName == null) {
+            continue;
+          }
+          Table mvTable = Hive.get().getTable(tableName);
+
+          if (mvTable.isRewriteEnabled()) {
+            HiveMaterializedViewsRegistry.get().addMaterializedView(mvTable);
+          } else {
+            HiveMaterializedViewsRegistry.get().dropMaterializedView(mvTable);
+          }
+        }
+      }
+    } catch (HiveException e) {
+      if (HiveConf.getBoolVar(hiveConf, ConfVars.HIVE_MATERIALIZED_VIEW_ENABLE_AUTO_REWRITING)) {
+        String message = "Error updating materialized view cache; consider disabling: " + ConfVars.HIVE_MATERIALIZED_VIEW_ENABLE_AUTO_REWRITING.varname;
+        LOG.error(message, e);
+        throw new RuntimeException(message, e);
+      }else {
+        LOG.debug("Exception during materialized view cache update", e);
+      }
+    }
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java b/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java
index 51b6ef5..77a7b0f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java
@@ -97,7 +97,6 @@ public final class HiveMaterializedViewsRegistry {
    * Creation time is useful to ensure correctness in case multiple HS2 instances are used. */
   private final ConcurrentMap<String, ConcurrentMap<ViewKey, RelOptMaterialization>> materializedViews =
       new ConcurrentHashMap<String, ConcurrentMap<ViewKey, RelOptMaterialization>>();
-  private final ExecutorService pool = Executors.newCachedThreadPool();
 
   private HiveMaterializedViewsRegistry() {
   }
@@ -118,10 +117,12 @@ public final class HiveMaterializedViewsRegistry {
    *
    * The loading process runs on the background; the method returns in the moment that the
    * runnable task is created, thus the views will still not be loaded in the cache when
-   * it does.
+   * it returns.
    */
   public void init(final Hive db) {
+    ExecutorService pool = Executors.newCachedThreadPool();
     pool.submit(new Loader(db));
+    pool.shutdown();
   }
 
   private class Loader implements Runnable {
@@ -152,11 +153,13 @@ public final class HiveMaterializedViewsRegistry {
    *
    * @param materializedViewTable the materialized view
    */
-  public RelOptMaterialization addMaterializedView(Table materializedViewTable) {
+  public void addMaterializedView(Table materializedViewTable) {
     // Bail out if it is not enabled for rewriting
     if (!materializedViewTable.isRewriteEnabled()) {
-      return null;
+      return;
     }
+    materializedViewTable.getFullyQualifiedName();
+
     ConcurrentMap<ViewKey, RelOptMaterialization> cq =
         new ConcurrentHashMap<ViewKey, RelOptMaterialization>();
     final ConcurrentMap<ViewKey, RelOptMaterialization> prevCq = materializedViews.putIfAbsent(
@@ -165,10 +168,9 @@ public final class HiveMaterializedViewsRegistry {
       cq = prevCq;
     }
     // Bail out if it already exists
-    final ViewKey vk = new ViewKey(
-        materializedViewTable.getTableName(), materializedViewTable.getCreateTime());
+    final ViewKey vk = ViewKey.forTable(materializedViewTable);
     if (cq.containsKey(vk)) {
-      return null;
+      return;
     }
     // Add to cache
     final String viewQuery = materializedViewTable.getViewExpandedText();
@@ -176,13 +178,13 @@ public final class HiveMaterializedViewsRegistry {
     if (tableRel == null) {
       LOG.warn("Materialized view " + materializedViewTable.getCompleteName() +
               " ignored; error creating view replacement");
-      return null;
+      return;
     }
     final RelNode queryRel = parseQuery(viewQuery);
     if (queryRel == null) {
       LOG.warn("Materialized view " + materializedViewTable.getCompleteName() +
               " ignored; error parsing original query");
-      return null;
+      return;
     }
     RelOptMaterialization materialization = new RelOptMaterialization(tableRel, queryRel,
         null, tableRel.getTable().getQualifiedName());
@@ -190,7 +192,7 @@ public final class HiveMaterializedViewsRegistry {
     if (LOG.isDebugEnabled()) {
       LOG.debug("Cached materialized view for rewriting: " + tableRel.getTable().getQualifiedName());
     }
-    return materialization;
+    return;
   }
 
   /**
@@ -199,13 +201,11 @@ public final class HiveMaterializedViewsRegistry {
    * @param materializedViewTable the materialized view to remove
    */
   public void dropMaterializedView(Table materializedViewTable) {
-    // Bail out if it is not enabled for rewriting
-    if (!materializedViewTable.isRewriteEnabled()) {
-      return;
+    final ViewKey vk = ViewKey.forTable(materializedViewTable);
+    ConcurrentMap<ViewKey, RelOptMaterialization> dbMap = materializedViews.get(materializedViewTable.getDbName());
+    if (dbMap != null) {
+      dbMap.remove(vk);
     }
-    final ViewKey vk = new ViewKey(
-        materializedViewTable.getTableName(), materializedViewTable.getCreateTime());
-    materializedViews.get(materializedViewTable.getDbName()).remove(vk);
   }
 
   /**
@@ -355,6 +355,10 @@ public final class HiveMaterializedViewsRegistry {
       this.creationDate = creationTime;
     }
 
+    public static ViewKey forTable(Table table) {
+      return new ViewKey(table.getTableName(), table.getCreateTime());
+    }
+
     @Override
     public boolean equals(Object obj) {
       if(this == obj) {

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/java/org/apache/hadoop/hive/ql/plan/BasicStatsWork.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/plan/BasicStatsWork.java b/ql/src/java/org/apache/hadoop/hive/ql/plan/BasicStatsWork.java
index 26bb3e1..831ca9f 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/plan/BasicStatsWork.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/plan/BasicStatsWork.java
@@ -179,9 +179,9 @@ public class BasicStatsWork implements Serializable {
     if (getLoadFileDesc() != null && getLoadFileDesc().getCtasCreateTableDesc() != null) {
       return true;
     }
+    // CREATE MV ... AS
     // ALTER MV ... REBUILD
-    if (getLoadFileDesc() != null && getLoadFileDesc().getCreateViewDesc() != null &&
-        getLoadFileDesc().getCreateViewDesc().isReplace()) {
+    if (getLoadFileDesc() != null && getLoadFileDesc().getCreateViewDesc() != null) {
       return true;
     }
     return false;

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/queries/clientpositive/materialized_view_create.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientpositive/materialized_view_create.q b/ql/src/test/queries/clientpositive/materialized_view_create.q
index bb50dbb..030627a 100644
--- a/ql/src/test/queries/clientpositive/materialized_view_create.q
+++ b/ql/src/test/queries/clientpositive/materialized_view_create.q
@@ -4,10 +4,14 @@ insert into cmv_basetable values (1, 'alfred', 10.30),(2, 'bob', 3.14),(2, 'bonn
 
 create materialized view cmv_mat_view as select a, b, c from cmv_basetable;
 
+desc formatted cmv_mat_view;
+
 select * from cmv_mat_view;
 
 create materialized view if not exists cmv_mat_view2 as select a, c from cmv_basetable;
 
+desc formatted cmv_mat_view2;
+
 select * from cmv_mat_view2;
 
 create materialized view if not exists cmv_mat_view3 as select * from cmv_basetable where a > 1;

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out b/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
index aa3240c..6db9921 100644
--- a/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
+++ b/ql/src/test/results/clientpositive/beeline/materialized_view_create_rewrite.q.out
@@ -52,8 +52,10 @@ PREHOOK: query: show tblproperties cmv_mat_view
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	408
 totalSize	453
 #### A masked pattern was here ####
 PREHOOK: query: create materialized view if not exists cmv_mat_view2 enable rewrite
@@ -82,8 +84,10 @@ PREHOOK: query: show tblproperties cmv_mat_view2
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view2
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	232
 totalSize	322
 #### A masked pattern was here ####
 PREHOOK: query: explain
@@ -102,11 +106,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: default.cmv_mat_view2
-          Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: a (type: int), c (type: decimal(10,2))
             outputColumnNames: _col0, _col1
-            Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
             ListSink
 
 PREHOOK: query: select a, c from cmv_basetable where a = 3
@@ -275,14 +279,14 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: default.cmv_mat_view2
-            Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: c (type: decimal(10,2))
               outputColumnNames: _col0
-              Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
               Reduce Output Operator
                 sort order: 
-                Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
                 value expressions: _col0 (type: decimal(10,2))
           TableScan
             alias: cmv_basetable
@@ -306,14 +310,14 @@ STAGE PLANS:
             0 
             1 
           outputColumnNames: _col0, _col1
-          Statistics: Num rows: 2 Data size: 356 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 2 Data size: 266 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: 3 (type: int), _col0 (type: decimal(10,2)), 3 (type: int), _col1 (type: decimal(10,2))
             outputColumnNames: _col0, _col1, _col2, _col3
-            Statistics: Num rows: 2 Data size: 356 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 266 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 2 Data size: 356 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 2 Data size: 266 Basic stats: COMPLETE Column stats: NONE
               table:
                   input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                   output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/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 9286183..5fd1535 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
@@ -25,6 +25,44 @@ POSTHOOK: type: CREATE_MATERIALIZED_VIEW
 POSTHOOK: Input: default@cmv_basetable
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@cmv_mat_view
+PREHOOK: query: desc formatted cmv_mat_view
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view
+POSTHOOK: query: desc formatted cmv_mat_view
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+b                   	varchar(256)        	                    
+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\"}
+	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	1025                
+	totalSize           	497                 
+#### 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:       	[]                  	 
+	 	 
+# View Information	 	 
+View Original Text: 	select a, b, c from cmv_basetable	 
+View Expanded Text: 	select `cmv_basetable`.`a`, `cmv_basetable`.`b`, `cmv_basetable`.`c` from `default`.`cmv_basetable`	 
+View Rewrite Enabled:	No                  	 
 PREHOOK: query: select * from cmv_mat_view
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_mat_view
@@ -48,6 +86,43 @@ POSTHOOK: type: CREATE_MATERIALIZED_VIEW
 POSTHOOK: Input: default@cmv_basetable
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@cmv_mat_view2
+PREHOOK: query: desc formatted cmv_mat_view2
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view2
+POSTHOOK: query: desc formatted cmv_mat_view2
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view2
+# 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\"}
+	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	580                 
+	totalSize           	346                 
+#### 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:       	[]                  	 
+	 	 
+# View Information	 	 
+View Original Text: 	select a, c from cmv_basetable	 
+View Expanded Text: 	select `cmv_basetable`.`a`, `cmv_basetable`.`c` from `default`.`cmv_basetable`	 
+View Rewrite Enabled:	No                  	 
 PREHOOK: query: select * from cmv_mat_view2
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_mat_view2
@@ -160,9 +235,11 @@ PREHOOK: query: show tblproperties cmv_mat_view5
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view5
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 key	value
 numFiles	1
+numRows	5
+rawDataSize	1605
 totalSize	710
 #### A masked pattern was here ####
 PREHOOK: query: drop materialized view cmv_mat_view

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite.q.out
index 8bebab4..14e42c4 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite.q.out
@@ -52,8 +52,10 @@ PREHOOK: query: show tblproperties cmv_mat_view
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	408
 totalSize	453
 #### A masked pattern was here ####
 PREHOOK: query: create materialized view if not exists cmv_mat_view2 enable rewrite
@@ -82,8 +84,10 @@ PREHOOK: query: show tblproperties cmv_mat_view2
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view2
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	232
 totalSize	322
 #### A masked pattern was here ####
 PREHOOK: query: explain

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_2.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_2.q.out
index 83ab742..fb3416d 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_2.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_2.q.out
@@ -240,7 +240,7 @@ STAGE PLANS:
             Map Operator Tree:
                 TableScan
                   alias: default.cmv_mat_view_3
-                  Statistics: Num rows: 1 Data size: 456 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 3 Data size: 1368 Basic stats: COMPLETE Column stats: NONE
                   Filter Operator
                     predicate: (c > 20) (type: boolean)
                     Statistics: Num rows: 1 Data size: 456 Basic stats: COMPLETE Column stats: NONE
@@ -332,21 +332,21 @@ STAGE PLANS:
             Map Operator Tree:
                 TableScan
                   alias: default.cmv_mat_view_4
-                  Statistics: Num rows: 2 Data size: 680 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 5 Data size: 1700 Basic stats: COMPLETE Column stats: NONE
                   Select Operator
                     expressions: b (type: varchar(256))
                     outputColumnNames: b
-                    Statistics: Num rows: 2 Data size: 680 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 5 Data size: 1700 Basic stats: COMPLETE Column stats: NONE
                     Group By Operator
                       keys: b (type: varchar(256))
                       mode: hash
                       outputColumnNames: _col0
-                      Statistics: Num rows: 2 Data size: 680 Basic stats: COMPLETE Column stats: NONE
+                      Statistics: Num rows: 5 Data size: 1700 Basic stats: COMPLETE Column stats: NONE
                       Reduce Output Operator
                         key expressions: _col0 (type: varchar(256))
                         sort order: +
                         Map-reduce partition columns: _col0 (type: varchar(256))
-                        Statistics: Num rows: 2 Data size: 680 Basic stats: COMPLETE Column stats: NONE
+                        Statistics: Num rows: 5 Data size: 1700 Basic stats: COMPLETE Column stats: NONE
             Execution mode: llap
             LLAP IO: all inputs
         Reducer 2 
@@ -356,10 +356,10 @@ STAGE PLANS:
                 keys: KEY._col0 (type: varchar(256))
                 mode: mergepartial
                 outputColumnNames: _col0
-                Statistics: Num rows: 1 Data size: 340 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 2 Data size: 680 Basic stats: COMPLETE Column stats: NONE
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 1 Data size: 340 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 2 Data size: 680 Basic stats: COMPLETE Column stats: NONE
                   table:
                       input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                       output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -441,96 +441,21 @@ where cmv_basetable_2.c > 10.10
 group by cmv_basetable.a, cmv_basetable_2.c
 POSTHOOK: type: QUERY
 STAGE DEPENDENCIES:
-  Stage-1 is a root stage
-  Stage-0 depends on stages: Stage-1
+  Stage-0 is a root stage
 
 STAGE PLANS:
-  Stage: Stage-1
-    Tez
-#### A masked pattern was here ####
-      Edges:
-        Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
-        Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
-#### A masked pattern was here ####
-      Vertices:
-        Map 1 
-            Map Operator Tree:
-                TableScan
-                  alias: default.cmv_mat_view_4
-                  Statistics: Num rows: 159 Data size: 612 Basic stats: COMPLETE Column stats: NONE
-                  Reduce Output Operator
-                    key expressions: a (type: int)
-                    sort order: +
-                    Map-reduce partition columns: a (type: int)
-                    Statistics: Num rows: 159 Data size: 612 Basic stats: COMPLETE Column stats: NONE
-            Execution mode: llap
-            LLAP IO: all inputs
-        Map 4 
-            Map Operator Tree:
-                TableScan
-                  alias: cmv_basetable_2
-                  Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
-                  Reduce Output Operator
-                    key expressions: a (type: int)
-                    sort order: +
-                    Map-reduce partition columns: a (type: int)
-                    Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
-                    value expressions: c (type: decimal(10,2))
-            Execution mode: llap
-            LLAP IO: no inputs
-        Reducer 2 
-            Execution mode: llap
-            Reduce Operator Tree:
-              Merge Join Operator
-                condition map:
-                     Inner Join 0 to 1
-                keys:
-                  0 a (type: int)
-                  1 a (type: int)
-                outputColumnNames: _col0, _col5, _col7
-                Statistics: Num rows: 174 Data size: 673 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: ((_col0 = _col5) and (_col7 > 10.1)) (type: boolean)
-                  Statistics: Num rows: 29 Data size: 112 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: _col0 (type: int), _col7 (type: decimal(10,2))
-                    outputColumnNames: _col0, _col7
-                    Statistics: Num rows: 29 Data size: 112 Basic stats: COMPLETE Column stats: NONE
-                    Group By Operator
-                      keys: _col0 (type: int), _col7 (type: decimal(10,2))
-                      mode: hash
-                      outputColumnNames: _col0, _col1
-                      Statistics: Num rows: 29 Data size: 112 Basic stats: COMPLETE Column stats: NONE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: int), _col1 (type: decimal(10,2))
-                        sort order: ++
-                        Map-reduce partition columns: _col0 (type: int), _col1 (type: decimal(10,2))
-                        Statistics: Num rows: 29 Data size: 112 Basic stats: COMPLETE Column stats: NONE
-        Reducer 3 
-            Execution mode: llap
-            Reduce Operator Tree:
-              Group By Operator
-                keys: KEY._col0 (type: int), KEY._col1 (type: decimal(10,2))
-                mode: mergepartial
-                outputColumnNames: _col0, _col1
-                Statistics: Num rows: 14 Data size: 54 Basic stats: COMPLETE Column stats: NONE
-                Select Operator
-                  expressions: _col0 (type: int)
-                  outputColumnNames: _col0
-                  Statistics: Num rows: 14 Data size: 54 Basic stats: COMPLETE Column stats: NONE
-                  File Output Operator
-                    compressed: false
-                    Statistics: Num rows: 14 Data size: 54 Basic stats: COMPLETE Column stats: NONE
-                    table:
-                        input format: org.apache.hadoop.mapred.SequenceFileInputFormat
-                        output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
-                        serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
-
   Stage: Stage-0
     Fetch Operator
       limit: -1
       Processor Tree:
-        ListSink
+        TableScan
+          alias: default.cmv_mat_view_5
+          Filter Operator
+            predicate: (c > 10.1) (type: boolean)
+            Select Operator
+              expressions: a (type: int)
+              outputColumnNames: _col0
+              ListSink
 
 PREHOOK: query: select cmv_basetable.a
 from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
@@ -539,7 +464,7 @@ group by cmv_basetable.a, cmv_basetable_2.c
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_basetable
 PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view_4
+PREHOOK: Input: default@cmv_mat_view_5
 #### A masked pattern was here ####
 POSTHOOK: query: select cmv_basetable.a
 from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
@@ -548,7 +473,7 @@ group by cmv_basetable.a, cmv_basetable_2.c
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@cmv_basetable
 POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view_4
+POSTHOOK: Input: default@cmv_mat_view_5
 #### A masked pattern was here ####
 3
 1
@@ -573,74 +498,44 @@ STAGE PLANS:
     Tez
 #### A masked pattern was here ####
       Edges:
-        Reducer 2 <- Map 1 (SIMPLE_EDGE), Map 4 (SIMPLE_EDGE)
-        Reducer 3 <- Reducer 2 (SIMPLE_EDGE)
+        Reducer 2 <- Map 1 (SIMPLE_EDGE)
 #### A masked pattern was here ####
       Vertices:
         Map 1 
             Map Operator Tree:
                 TableScan
-                  alias: default.cmv_mat_view_4
-                  Statistics: Num rows: 159 Data size: 612 Basic stats: COMPLETE Column stats: NONE
-                  Reduce Output Operator
-                    key expressions: a (type: int)
-                    sort order: +
-                    Map-reduce partition columns: a (type: int)
-                    Statistics: Num rows: 159 Data size: 612 Basic stats: COMPLETE Column stats: NONE
+                  alias: default.cmv_mat_view_5
+                  Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
+                  Filter Operator
+                    predicate: (c > 10.1) (type: boolean)
+                    Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
+                    Select Operator
+                      expressions: a (type: int)
+                      outputColumnNames: a
+                      Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
+                      Group By Operator
+                        keys: a (type: int)
+                        mode: hash
+                        outputColumnNames: _col0
+                        Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
+                        Reduce Output Operator
+                          key expressions: _col0 (type: int)
+                          sort order: +
+                          Map-reduce partition columns: _col0 (type: int)
+                          Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
             Execution mode: llap
             LLAP IO: all inputs
-        Map 4 
-            Map Operator Tree:
-                TableScan
-                  alias: cmv_basetable_2
-                  Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
-                  Reduce Output Operator
-                    key expressions: a (type: int)
-                    sort order: +
-                    Map-reduce partition columns: a (type: int)
-                    Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: COMPLETE
-                    value expressions: c (type: decimal(10,2))
-            Execution mode: llap
-            LLAP IO: no inputs
         Reducer 2 
             Execution mode: llap
             Reduce Operator Tree:
-              Merge Join Operator
-                condition map:
-                     Inner Join 0 to 1
-                keys:
-                  0 a (type: int)
-                  1 a (type: int)
-                outputColumnNames: _col0, _col5, _col7
-                Statistics: Num rows: 174 Data size: 673 Basic stats: COMPLETE Column stats: NONE
-                Filter Operator
-                  predicate: ((_col0 = _col5) and (_col7 > 10.1)) (type: boolean)
-                  Statistics: Num rows: 29 Data size: 112 Basic stats: COMPLETE Column stats: NONE
-                  Select Operator
-                    expressions: _col0 (type: int)
-                    outputColumnNames: _col0
-                    Statistics: Num rows: 29 Data size: 112 Basic stats: COMPLETE Column stats: NONE
-                    Group By Operator
-                      keys: _col0 (type: int)
-                      mode: hash
-                      outputColumnNames: _col0
-                      Statistics: Num rows: 29 Data size: 112 Basic stats: COMPLETE Column stats: NONE
-                      Reduce Output Operator
-                        key expressions: _col0 (type: int)
-                        sort order: +
-                        Map-reduce partition columns: _col0 (type: int)
-                        Statistics: Num rows: 29 Data size: 112 Basic stats: COMPLETE Column stats: NONE
-        Reducer 3 
-            Execution mode: llap
-            Reduce Operator Tree:
               Group By Operator
                 keys: KEY._col0 (type: int)
                 mode: mergepartial
                 outputColumnNames: _col0
-                Statistics: Num rows: 14 Data size: 54 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 14 Data size: 54 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                   table:
                       input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                       output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -659,7 +554,7 @@ group by cmv_basetable.a
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_basetable
 PREHOOK: Input: default@cmv_basetable_2
-PREHOOK: Input: default@cmv_mat_view_4
+PREHOOK: Input: default@cmv_mat_view_5
 #### A masked pattern was here ####
 POSTHOOK: query: select cmv_basetable.a
 from cmv_basetable join cmv_basetable_2 on (cmv_basetable.a = cmv_basetable_2.a)
@@ -668,7 +563,7 @@ group by cmv_basetable.a
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@cmv_basetable
 POSTHOOK: Input: default@cmv_basetable_2
-POSTHOOK: Input: default@cmv_mat_view_4
+POSTHOOK: Input: default@cmv_mat_view_5
 #### A masked pattern was here ####
 1
 3

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_multi_db.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_multi_db.q.out b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_multi_db.q.out
index e135785..3c02c2b 100644
--- a/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_multi_db.q.out
+++ b/ql/src/test/results/clientpositive/llap/materialized_view_create_rewrite_multi_db.q.out
@@ -76,8 +76,10 @@ PREHOOK: query: show tblproperties cmv_mat_view
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	408
 totalSize	453
 #### A masked pattern was here ####
 PREHOOK: query: create materialized view if not exists cmv_mat_view2 enable rewrite
@@ -106,8 +108,10 @@ PREHOOK: query: show tblproperties cmv_mat_view2
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view2
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	232
 totalSize	322
 #### A masked pattern was here ####
 PREHOOK: query: create database db3

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/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 2be1536..31eb917 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
@@ -64,10 +64,12 @@ Retention:          	0
 #### A masked pattern was here ####
 Table Type:         	MATERIALIZED_VIEW   	 
 Table Parameters:	 	 
-	COLUMN_STATS_ACCURATE	{}                  
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
 	comment             	this is the first view
 	key                 	foo                 
 	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	580                 
 	totalSize           	346                 
 #### A masked pattern was here ####
 	 	 
@@ -88,10 +90,12 @@ PREHOOK: query: show tblproperties cmv_mat_view
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 comment	this is the first view
 key	foo
 numFiles	1
+numRows	5
+rawDataSize	580
 totalSize	346
 #### A masked pattern was here ####
 PREHOOK: query: select a, c from cmv_mat_view
@@ -147,11 +151,13 @@ Retention:          	0
 #### A masked pattern was here ####
 Table Type:         	MATERIALIZED_VIEW   	 
 Table Parameters:	 	 
-	COLUMN_STATS_ACCURATE	{}                  
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
 	comment             	this is the second view
 	key                 	alice               
 	key2                	bob                 
 	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	5                   
 	totalSize           	10                  
 #### A masked pattern was here ####
 	 	 
@@ -225,9 +231,11 @@ Retention:          	0
 #### A masked pattern was here ####
 Table Type:         	MATERIALIZED_VIEW   	 
 Table Parameters:	 	 
-	COLUMN_STATS_ACCURATE	{}                  
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
 	comment             	this is the third view
 	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	1025                
 	totalSize           	497                 
 #### A masked pattern was here ####
 	 	 
@@ -312,9 +320,11 @@ Retention:          	0
 #### A masked pattern was here ####
 Table Type:         	MATERIALIZED_VIEW   	 
 Table Parameters:	 	 
-	COLUMN_STATS_ACCURATE	{}                  
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
 	comment             	this is the last view
 	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	5                   
 	totalSize           	10                  
 #### A masked pattern was here ####
 	 	 

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/materialized_view_create.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create.q.out b/ql/src/test/results/clientpositive/materialized_view_create.q.out
index 9286183..5fd1535 100644
--- a/ql/src/test/results/clientpositive/materialized_view_create.q.out
+++ b/ql/src/test/results/clientpositive/materialized_view_create.q.out
@@ -25,6 +25,44 @@ POSTHOOK: type: CREATE_MATERIALIZED_VIEW
 POSTHOOK: Input: default@cmv_basetable
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@cmv_mat_view
+PREHOOK: query: desc formatted cmv_mat_view
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view
+POSTHOOK: query: desc formatted cmv_mat_view
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view
+# col_name            	data_type           	comment             
+a                   	int                 	                    
+b                   	varchar(256)        	                    
+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\"}
+	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	1025                
+	totalSize           	497                 
+#### 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:       	[]                  	 
+	 	 
+# View Information	 	 
+View Original Text: 	select a, b, c from cmv_basetable	 
+View Expanded Text: 	select `cmv_basetable`.`a`, `cmv_basetable`.`b`, `cmv_basetable`.`c` from `default`.`cmv_basetable`	 
+View Rewrite Enabled:	No                  	 
 PREHOOK: query: select * from cmv_mat_view
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_mat_view
@@ -48,6 +86,43 @@ POSTHOOK: type: CREATE_MATERIALIZED_VIEW
 POSTHOOK: Input: default@cmv_basetable
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@cmv_mat_view2
+PREHOOK: query: desc formatted cmv_mat_view2
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@cmv_mat_view2
+POSTHOOK: query: desc formatted cmv_mat_view2
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@cmv_mat_view2
+# 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\"}
+	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	580                 
+	totalSize           	346                 
+#### 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:       	[]                  	 
+	 	 
+# View Information	 	 
+View Original Text: 	select a, c from cmv_basetable	 
+View Expanded Text: 	select `cmv_basetable`.`a`, `cmv_basetable`.`c` from `default`.`cmv_basetable`	 
+View Rewrite Enabled:	No                  	 
 PREHOOK: query: select * from cmv_mat_view2
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cmv_mat_view2
@@ -160,9 +235,11 @@ PREHOOK: query: show tblproperties cmv_mat_view5
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view5
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 key	value
 numFiles	1
+numRows	5
+rawDataSize	1605
 totalSize	710
 #### A masked pattern was here ####
 PREHOOK: query: drop materialized view cmv_mat_view

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/materialized_view_create_rewrite.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite.q.out
index aa3240c..6db9921 100644
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite.q.out
+++ b/ql/src/test/results/clientpositive/materialized_view_create_rewrite.q.out
@@ -52,8 +52,10 @@ PREHOOK: query: show tblproperties cmv_mat_view
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	408
 totalSize	453
 #### A masked pattern was here ####
 PREHOOK: query: create materialized view if not exists cmv_mat_view2 enable rewrite
@@ -82,8 +84,10 @@ PREHOOK: query: show tblproperties cmv_mat_view2
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view2
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	232
 totalSize	322
 #### A masked pattern was here ####
 PREHOOK: query: explain
@@ -102,11 +106,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: default.cmv_mat_view2
-          Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: a (type: int), c (type: decimal(10,2))
             outputColumnNames: _col0, _col1
-            Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
             ListSink
 
 PREHOOK: query: select a, c from cmv_basetable where a = 3
@@ -275,14 +279,14 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: default.cmv_mat_view2
-            Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: c (type: decimal(10,2))
               outputColumnNames: _col0
-              Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
               Reduce Output Operator
                 sort order: 
-                Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
                 value expressions: _col0 (type: decimal(10,2))
           TableScan
             alias: cmv_basetable
@@ -306,14 +310,14 @@ STAGE PLANS:
             0 
             1 
           outputColumnNames: _col0, _col1
-          Statistics: Num rows: 2 Data size: 356 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 2 Data size: 266 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: 3 (type: int), _col0 (type: decimal(10,2)), 3 (type: int), _col1 (type: decimal(10,2))
             outputColumnNames: _col0, _col1, _col2, _col3
-            Statistics: Num rows: 2 Data size: 356 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 266 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 2 Data size: 356 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 2 Data size: 266 Basic stats: COMPLETE Column stats: NONE
               table:
                   input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                   output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/materialized_view_create_rewrite_2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_2.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_2.q.out
index c4bee9c..3d3e05d 100644
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_2.q.out
+++ b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_2.q.out
@@ -214,37 +214,37 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: default.cmv_mat_view_3
-            Statistics: Num rows: 1 Data size: 483 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 3 Data size: 618 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (c > 20) (type: boolean)
-              Statistics: Num rows: 1 Data size: 483 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: a (type: int), b (type: varchar(256))
                 outputColumnNames: a, b
-                Statistics: Num rows: 1 Data size: 483 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
                 Group By Operator
                   keys: a (type: int), b (type: varchar(256))
                   mode: hash
                   outputColumnNames: _col0, _col1
-                  Statistics: Num rows: 1 Data size: 483 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col0 (type: int), _col1 (type: varchar(256))
                     sort order: ++
                     Map-reduce partition columns: _col0 (type: int), _col1 (type: varchar(256))
-                    Statistics: Num rows: 1 Data size: 483 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
       Reduce Operator Tree:
         Group By Operator
           keys: KEY._col0 (type: int), KEY._col1 (type: varchar(256))
           mode: mergepartial
           outputColumnNames: _col0, _col1
-          Statistics: Num rows: 1 Data size: 483 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: _col1 (type: varchar(256))
             outputColumnNames: _col0
-            Statistics: Num rows: 1 Data size: 483 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
             File Output Operator
               compressed: false
-              Statistics: Num rows: 1 Data size: 483 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 1 Data size: 206 Basic stats: COMPLETE Column stats: NONE
               table:
                   input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                   output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -296,30 +296,30 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: default.cmv_mat_view_4
-            Statistics: Num rows: 1 Data size: 342 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 5 Data size: 465 Basic stats: COMPLETE Column stats: NONE
             Select Operator
               expressions: b (type: varchar(256))
               outputColumnNames: b
-              Statistics: Num rows: 1 Data size: 342 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 5 Data size: 465 Basic stats: COMPLETE Column stats: NONE
               Group By Operator
                 keys: b (type: varchar(256))
                 mode: hash
                 outputColumnNames: _col0
-                Statistics: Num rows: 1 Data size: 342 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 5 Data size: 465 Basic stats: COMPLETE Column stats: NONE
                 Reduce Output Operator
                   key expressions: _col0 (type: varchar(256))
                   sort order: +
                   Map-reduce partition columns: _col0 (type: varchar(256))
-                  Statistics: Num rows: 1 Data size: 342 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 5 Data size: 465 Basic stats: COMPLETE Column stats: NONE
       Reduce Operator Tree:
         Group By Operator
           keys: KEY._col0 (type: varchar(256))
           mode: mergepartial
           outputColumnNames: _col0
-          Statistics: Num rows: 1 Data size: 342 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 2 Data size: 186 Basic stats: COMPLETE Column stats: NONE
           File Output Operator
             compressed: false
-            Statistics: Num rows: 1 Data size: 342 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 186 Basic stats: COMPLETE Column stats: NONE
             table:
                 input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                 output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -410,17 +410,17 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: default.cmv_mat_view_5
-            Statistics: Num rows: 2 Data size: 325 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (c > 10.1) (type: boolean)
-              Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: a (type: int)
                 outputColumnNames: _col0
-                Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                   table:
                       input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                       output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -474,33 +474,33 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: default.cmv_mat_view_5
-            Statistics: Num rows: 2 Data size: 325 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (c > 10.1) (type: boolean)
-              Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: a (type: int)
                 outputColumnNames: a
-                Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                 Group By Operator
                   keys: a (type: int)
                   mode: hash
                   outputColumnNames: _col0
-                  Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                   Reduce Output Operator
                     key expressions: _col0 (type: int)
                     sort order: +
                     Map-reduce partition columns: _col0 (type: int)
-                    Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+                    Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
       Reduce Operator Tree:
         Group By Operator
           keys: KEY._col0 (type: int)
           mode: mergepartial
           outputColumnNames: _col0
-          Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
           File Output Operator
             compressed: false
-            Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
             table:
                 input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                 output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/materialized_view_create_rewrite_3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_3.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_3.q.out
index 9fd70b6..f1cf95b 100644
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_3.q.out
+++ b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_3.q.out
@@ -216,17 +216,17 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: default.cmv_mat_view
-            Statistics: Num rows: 2 Data size: 325 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (c > 10.1) (type: boolean)
-              Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: a (type: int)
                 outputColumnNames: _col0
-                Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                   table:
                       input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                       output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
@@ -292,17 +292,17 @@ STAGE PLANS:
       Map Operator Tree:
           TableScan
             alias: default.cmv_mat_view
-            Statistics: Num rows: 2 Data size: 325 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
             Filter Operator
               predicate: (c > 10.1) (type: boolean)
-              Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+              Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
               Select Operator
                 expressions: a (type: int)
                 outputColumnNames: _col0
-                Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+                Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                 File Output Operator
                   compressed: false
-                  Statistics: Num rows: 1 Data size: 162 Basic stats: COMPLETE Column stats: NONE
+                  Statistics: Num rows: 1 Data size: 116 Basic stats: COMPLETE Column stats: NONE
                   table:
                       input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                       output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/materialized_view_create_rewrite_multi_db.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_multi_db.q.out b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_multi_db.q.out
index a6d00db..cc901b8 100644
--- a/ql/src/test/results/clientpositive/materialized_view_create_rewrite_multi_db.q.out
+++ b/ql/src/test/results/clientpositive/materialized_view_create_rewrite_multi_db.q.out
@@ -76,8 +76,10 @@ PREHOOK: query: show tblproperties cmv_mat_view
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	408
 totalSize	453
 #### A masked pattern was here ####
 PREHOOK: query: create materialized view if not exists cmv_mat_view2 enable rewrite
@@ -106,8 +108,10 @@ PREHOOK: query: show tblproperties cmv_mat_view2
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view2
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 numFiles	1
+numRows	2
+rawDataSize	232
 totalSize	322
 #### A masked pattern was here ####
 PREHOOK: query: create database db3
@@ -138,11 +142,11 @@ STAGE PLANS:
       Processor Tree:
         TableScan
           alias: db2.cmv_mat_view2
-          Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+          Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
           Select Operator
             expressions: a (type: int), c (type: decimal(10,2))
             outputColumnNames: _col0, _col1
-            Statistics: Num rows: 2 Data size: 322 Basic stats: COMPLETE Column stats: NONE
+            Statistics: Num rows: 2 Data size: 232 Basic stats: COMPLETE Column stats: NONE
             ListSink
 
 PREHOOK: query: select a, c from db1.cmv_basetable where a = 3

http://git-wip-us.apache.org/repos/asf/hive/blob/3df202f2/ql/src/test/results/clientpositive/materialized_view_describe.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/materialized_view_describe.q.out b/ql/src/test/results/clientpositive/materialized_view_describe.q.out
index 2be1536..31eb917 100644
--- a/ql/src/test/results/clientpositive/materialized_view_describe.q.out
+++ b/ql/src/test/results/clientpositive/materialized_view_describe.q.out
@@ -64,10 +64,12 @@ Retention:          	0
 #### A masked pattern was here ####
 Table Type:         	MATERIALIZED_VIEW   	 
 Table Parameters:	 	 
-	COLUMN_STATS_ACCURATE	{}                  
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
 	comment             	this is the first view
 	key                 	foo                 
 	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	580                 
 	totalSize           	346                 
 #### A masked pattern was here ####
 	 	 
@@ -88,10 +90,12 @@ PREHOOK: query: show tblproperties cmv_mat_view
 PREHOOK: type: SHOW_TBLPROPERTIES
 POSTHOOK: query: show tblproperties cmv_mat_view
 POSTHOOK: type: SHOW_TBLPROPERTIES
-COLUMN_STATS_ACCURATE	{}
+COLUMN_STATS_ACCURATE	{"BASIC_STATS":"true"}
 comment	this is the first view
 key	foo
 numFiles	1
+numRows	5
+rawDataSize	580
 totalSize	346
 #### A masked pattern was here ####
 PREHOOK: query: select a, c from cmv_mat_view
@@ -147,11 +151,13 @@ Retention:          	0
 #### A masked pattern was here ####
 Table Type:         	MATERIALIZED_VIEW   	 
 Table Parameters:	 	 
-	COLUMN_STATS_ACCURATE	{}                  
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
 	comment             	this is the second view
 	key                 	alice               
 	key2                	bob                 
 	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	5                   
 	totalSize           	10                  
 #### A masked pattern was here ####
 	 	 
@@ -225,9 +231,11 @@ Retention:          	0
 #### A masked pattern was here ####
 Table Type:         	MATERIALIZED_VIEW   	 
 Table Parameters:	 	 
-	COLUMN_STATS_ACCURATE	{}                  
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
 	comment             	this is the third view
 	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	1025                
 	totalSize           	497                 
 #### A masked pattern was here ####
 	 	 
@@ -312,9 +320,11 @@ Retention:          	0
 #### A masked pattern was here ####
 Table Type:         	MATERIALIZED_VIEW   	 
 Table Parameters:	 	 
-	COLUMN_STATS_ACCURATE	{}                  
+	COLUMN_STATS_ACCURATE	{\"BASIC_STATS\":\"true\"}
 	comment             	this is the last view
 	numFiles            	1                   
+	numRows             	5                   
+	rawDataSize         	5                   
 	totalSize           	10                  
 #### A masked pattern was here ####