Author: jcamacho
Date: Tue Mar 31 13:22:52 2015
New Revision: 1670332

URL: http://svn.apache.org/r1670332
Log:
HIVE-10138 : CBO (Calcite Return Path): HiveTableScan copy does not take into 
account new row schema [CBO Branch] (Jesus Camacho Rodriguez, reviewed by Laljo 
John Pullokkaran)

Modified:
    
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveTableScan.java
    
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java

Modified: 
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveTableScan.java
URL: 
http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveTableScan.java?rev=1670332&r1=1670331&r2=1670332&view=diff
==============================================================================
--- 
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveTableScan.java
 (original)
+++ 
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/optimizer/calcite/reloperators/HiveTableScan.java
 Tue Mar 31 13:22:52 2015
@@ -51,9 +51,10 @@ import com.google.common.collect.Immutab
  * </p>
  */
 public class HiveTableScan extends TableScan implements HiveRelNode {
-  private final RelDataType rowtype;
+
+  private final RelDataType hiveTableScanRowType;
   private final ImmutableList<Integer> neededColIndxsFrmReloptHT;
-  
+
   /**
    * Creates a HiveTableScan.
    *
@@ -74,7 +75,7 @@ public class HiveTableScan extends Table
       RelDataType newRowtype) {
     super(cluster, TraitsUtil.getDefaultTraitSet(cluster), table);
     assert getConvention() == HiveRelNode.CONVENTION;
-    this.rowtype = newRowtype;
+    this.hiveTableScanRowType = newRowtype;
     this.neededColIndxsFrmReloptHT = 
buildNeededColIndxsFrmReloptHT(table.getRowType(), newRowtype);
   }
 
@@ -88,16 +89,17 @@ public class HiveTableScan extends Table
    * Copy TableScan operator with a new Row Schema. The new Row Schema can only
    * be a subset of this TS schema.
    * 
-   * @param rowtype
+   * @param newRowtype
    * @return
    */
   public HiveTableScan copy(RelDataType newRowtype) {
-    return new HiveTableScan(getCluster(), getTraitSet(), ((RelOptHiveTable) 
table));
+    return new HiveTableScan(getCluster(), getTraitSet(), ((RelOptHiveTable) 
table),
+            newRowtype);
   }
 
   @Override
   public RelDataType deriveRowType() {
-    return rowtype;
+    return hiveTableScanRowType;
   }
 
   @Override
@@ -173,4 +175,4 @@ public class HiveTableScan extends Table
 
     return neededColIndxsFrmReloptHTBldr.build();
   }
-}
\ No newline at end of file
+}

Modified: 
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
URL: 
http://svn.apache.org/viewvc/hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java?rev=1670332&r1=1670331&r2=1670332&view=diff
==============================================================================
--- 
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
 (original)
+++ 
hive/branches/cbo/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java
 Tue Mar 31 13:22:52 2015
@@ -49,7 +49,6 @@ import org.apache.calcite.plan.hep.HepPr
 import org.apache.calcite.plan.hep.HepProgramBuilder;
 import org.apache.calcite.rel.InvalidRelException;
 import org.apache.calcite.rel.RelCollation;
-import org.apache.calcite.rel.RelCollations;
 import org.apache.calcite.rel.RelCollationImpl;
 import org.apache.calcite.rel.RelCollations;
 import org.apache.calcite.rel.RelFieldCollation;
@@ -1332,9 +1331,6 @@ public class CalcitePlanner extends Sema
         else {
           fullyQualifiedTabName = tabMetaData.getTableName();
         }
-        if (conf.getBoolVar(HiveConf.ConfVars.HIVE_CBO_RETPATH_HIVEOP)) {
-          fullyQualifiedTabName += "." + tableAlias;
-        }
         RelOptHiveTable optTable = new RelOptHiveTable(relOptSchema, 
fullyQualifiedTabName,
             tableAlias, rowType, tabMetaData, nonPartitionColumns, 
partitionColumns, virtualCols, conf,
             partitionCache, noColsMissingStats, getAliasId(tableAlias, qb));


Reply via email to