Gopal V created HIVE-21818:
------------------------------

             Summary: CBO: Copying TableRelOptHiveTable has metastore traffic
                 Key: HIVE-21818
                 URL: https://issues.apache.org/jira/browse/HIVE-21818
             Project: Hive
          Issue Type: Bug
            Reporter: Gopal V


While the optimizer is running, whenever it makes a copy of the TableScan to 
perform potential rewrites, there is Hive metastore traffic from inside CBO 
optimizer.

{code}
  public RelOptHiveTable(RelOptSchema calciteSchema, RelDataTypeFactory 
typeFactory, List<String> qualifiedTblName,
      RelDataType rowType, Table hiveTblMetadata, List<ColumnInfo> 
hiveNonPartitionCols,
      List<ColumnInfo> hivePartitionCols, List<VirtualColumn> hiveVirtualCols, 
HiveConf hconf,
      Map<String, PrunedPartitionList> partitionCache, Map<String, 
ColumnStatsList> colStatsCache,
      AtomicInteger noColsMissingStats) { ....


    Pair<List<ImmutableBitSet>, List<ImmutableBitSet>> constraintKeys = 
generateKeys();
    this.keys = constraintKeys.left;
    this.nonNullablekeys = constraintKeys.right;
    this.referentialConstraints = generateReferentialConstraints();
}
{code}

This is triggered from the rules as the partition pruner

{code}
  protected void perform(RelOptRuleCall call, Filter filter,
      HiveTableScan tScan) {
    // Original table
    RelOptHiveTable hiveTable = (RelOptHiveTable) tScan.getTable();

    // Copy original table scan and table
    HiveTableScan tScanCopy = tScan.copyIncludingTable(tScan.getRowType());
    RelOptHiveTable hiveTableCopy = (RelOptHiveTable) tScanCopy.getTable();
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to