diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java index 8b02b19..b200b05 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnInfo.java @@ -50,6 +50,11 @@ public class ColumnInfo implements Serializable { private String tabAlias; /** + * Store the database name which this column belongs to. + */ + private String dbName; + + /** * Indicates whether the column is a virtual column. */ private boolean isVirtualCol; @@ -61,34 +66,37 @@ public class ColumnInfo implements Serializable { public ColumnInfo() { } - public ColumnInfo(String internalName, TypeInfo type, String tabAlias, + public ColumnInfo(String dbName, String internalName, TypeInfo type, String tabAlias, boolean isVirtualCol) { - this(internalName, type, tabAlias, isVirtualCol, false); + this(dbName, internalName, type, tabAlias, isVirtualCol, false); } - public ColumnInfo(String internalName, Class type, String tabAlias, + public ColumnInfo(String dbName, String internalName, Class type, String tabAlias, boolean isVirtualCol) { - this(internalName, TypeInfoFactory + this(dbName, + internalName, TypeInfoFactory .getPrimitiveTypeInfoFromPrimitiveWritable(type), tabAlias, isVirtualCol, false); } - public ColumnInfo(String internalName, TypeInfo type, String tabAlias, + public ColumnInfo(String dbName, String internalName, TypeInfo type, String tabAlias, boolean isVirtualCol, boolean isHiddenVirtualCol) { - this(internalName, + this(dbName, + internalName, TypeInfoUtils.getStandardWritableObjectInspectorFromTypeInfo(type), tabAlias, isVirtualCol, isHiddenVirtualCol); } - public ColumnInfo(String internalName, ObjectInspector objectInspector, + public ColumnInfo(String dbName, String internalName, ObjectInspector objectInspector, String tabAlias, boolean isVirtualCol) { - this(internalName, objectInspector, tabAlias, isVirtualCol, false); + this(dbName, internalName, objectInspector, tabAlias, isVirtualCol, false); } - public ColumnInfo(String internalName, ObjectInspector objectInspector, + public ColumnInfo(String dbName, String internalName, ObjectInspector objectInspector, String tabAlias, boolean isVirtualCol, boolean isHiddenVirtualCol) { + this.dbName = dbName; this.internalName = internalName; this.objectInspector = objectInspector; this.tabAlias = tabAlias; @@ -96,6 +104,10 @@ public class ColumnInfo implements Serializable { this.isHiddenVirtualCol = isHiddenVirtualCol; } + public String getDBName() { + return dbName; + } + public TypeInfo getType() { return TypeInfoUtils.getTypeInfoFromObjectInspector(objectInspector); } @@ -117,6 +129,10 @@ public class ColumnInfo implements Serializable { this.internalName = internalName; } + public void setDBName(String dbName) { + this.dbName = dbName; + } + public String getTabAlias() { return tabAlias; } diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java index 652d81c..ec08145 100644 --- ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java +++ ql/src/java/org/apache/hadoop/hive/ql/exec/GroupByOperator.java @@ -225,7 +225,7 @@ public class GroupByOperator extends Operator implements if (sf.getFieldObjectInspector().getCategory().equals( ObjectInspector.Category.UNION)) { unionExprEval = ExprNodeEvaluatorFactory.get( - new ExprNodeColumnDesc(TypeInfoUtils.getTypeInfoFromObjectInspector( + new ExprNodeColumnDesc("", TypeInfoUtils.getTypeInfoFromObjectInspector( sf.getFieldObjectInspector()), keyField.getFieldName() + "." + sf.getFieldName(), null, false)); diff --git ql/src/java/org/apache/hadoop/hive/ql/lib/DefaultGraphWalker.java ql/src/java/org/apache/hadoop/hive/ql/lib/DefaultGraphWalker.java index b8de00b..21c2b3b 100644 --- ql/src/java/org/apache/hadoop/hive/ql/lib/DefaultGraphWalker.java +++ ql/src/java/org/apache/hadoop/hive/ql/lib/DefaultGraphWalker.java @@ -24,7 +24,6 @@ import java.util.HashMap; import java.util.List; import java.util.Set; import java.util.Stack; - import org.apache.hadoop.hive.ql.parse.SemanticException; /** diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java index 911adbb..96aa179 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/ColumnPrunerProcFactory.java @@ -380,8 +380,9 @@ public final class ColumnPrunerProcFactory { // revert output cols of SEL(*) to ExprNodeColumnDesc String[] tabcol = rr.reverseLookup(col); ColumnInfo colInfo = rr.get(tabcol[0], tabcol[1]); - ExprNodeColumnDesc colExpr = new ExprNodeColumnDesc(colInfo.getType(), - colInfo.getInternalName(), colInfo.getTabAlias(), colInfo.getIsVirtualCol()); + ExprNodeColumnDesc colExpr = new ExprNodeColumnDesc(colInfo.getDBName(), + colInfo.getType(), colInfo.getInternalName(), colInfo.getTabAlias(), + colInfo.getIsVirtualCol()); colList.add(colExpr); outputColNames.add(col); } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java index 2a50433..5809ffa 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMRFileSink1.java @@ -209,7 +209,7 @@ public class GenMRFileSink1 implements NodeProcessor { // value is all the columns in the FileSink operator input ArrayList valueCols = new ArrayList(); for (ColumnInfo ci : inputRS.getSignature()) { - valueCols.add(new ExprNodeColumnDesc(ci.getType(), ci.getInternalName(), + valueCols.add(new ExprNodeColumnDesc(ci.getDBName(), ci.getType(), ci.getInternalName(), ci.getTabAlias(), ci.getIsVirtualCol())); } @@ -233,15 +233,17 @@ public class GenMRFileSink1 implements NodeProcessor { RowResolver out_rwsch = new RowResolver(); RowResolver interim_rwsch = ctx.getParseCtx().getOpParseCtx().get(fsOp).getRowResolver(); Integer pos = Integer.valueOf(0); + String dbName = ""; for (ColumnInfo colInfo : interim_rwsch.getColumnInfos()) { String[] info = interim_rwsch.reverseLookup(colInfo.getInternalName()); - out_rwsch.put(info[0], info[1], new ColumnInfo(pos.toString(), colInfo - .getType(), info[0], colInfo.getIsVirtualCol(), colInfo.isHiddenVirtualCol())); + dbName = colInfo.getDBName(); + out_rwsch.put(info[0], info[1], new ColumnInfo(dbName, pos.toString(), + colInfo.getType(), info[0], colInfo.getIsVirtualCol(), colInfo.isHiddenVirtualCol())); pos = Integer.valueOf(pos.intValue() + 1); } Operator extract = OperatorFactory.getAndMakeChild(new ExtractDesc( - new ExprNodeColumnDesc(TypeInfoFactory.stringTypeInfo, + new ExprNodeColumnDesc(dbName, TypeInfoFactory.stringTypeInfo, Utilities.ReduceField.VALUE.toString(), "", false)), new RowSchema(out_rwsch.getColumnInfos())); @@ -353,11 +355,13 @@ public class GenMRFileSink1 implements NodeProcessor { if (dpCtx != null && dpCtx.getNumDPCols() > 0) { // adding DP ColumnInfo to the RowSchema signature ArrayList signature = inputRS.getSignature(); + String dbName = signature.get(0).getDBName(); String tblAlias = fsInputDesc.getTableInfo().getTableName(); LinkedHashMap colMap = new LinkedHashMap(); StringBuilder partCols = new StringBuilder(); for (String dpCol: dpCtx.getDPColNames()) { - ColumnInfo colInfo = new ColumnInfo(dpCol, + ColumnInfo colInfo = new ColumnInfo(dbName, + dpCol, TypeInfoFactory.stringTypeInfo, // all partition column type should be string tblAlias, true); // partition column is virtual column signature.add(colInfo); diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java index 8a5d05d..2314040 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/MapJoinProcessor.java @@ -274,6 +274,7 @@ public class MapJoinProcessor implements Transform { ArrayList outputColumnNames = new ArrayList(); Map> keyExprMap = new HashMap>(); Map> valueExprMap = new HashMap>(); + String dbName = ""; // Walk over all the sources (which are guaranteed to be reduce sink // operators). @@ -333,6 +334,7 @@ public class MapJoinProcessor implements Transform { // create the map-join operator for (pos = 0; pos < newParentOps.size(); pos++) { RowResolver inputRS = opParseCtxMap.get(newParentOps.get(pos)).getRowResolver(); + dbName = inputRS.getColumnInfos().get(0).getDBName(); List values = new ArrayList(); Iterator keysIter = inputRS.getTableNames().iterator(); @@ -350,11 +352,13 @@ public class MapJoinProcessor implements Transform { String outputCol = oldValueInfo.getInternalName(); if (outputRS.get(key, field) == null) { outputColumnNames.add(outputCol); - ExprNodeDesc colDesc = new ExprNodeColumnDesc(valueInfo.getType(), valueInfo - .getInternalName(), valueInfo.getTabAlias(), valueInfo.getIsVirtualCol()); + ExprNodeDesc colDesc = new ExprNodeColumnDesc(valueInfo.getDBName(), + valueInfo.getType(), valueInfo.getInternalName(), valueInfo.getTabAlias(), + valueInfo.getIsVirtualCol()); values.add(colDesc); - outputRS.put(key, field, new ColumnInfo(outputCol, valueInfo.getType(), valueInfo - .getTabAlias(), valueInfo.getIsVirtualCol(), valueInfo.isHiddenVirtualCol())); + outputRS.put(key, field, new ColumnInfo(valueInfo.getDBName(), outputCol, + valueInfo.getType(), valueInfo.getTabAlias(), valueInfo.getIsVirtualCol(), + valueInfo.isHiddenVirtualCol())); colExprMap.put(outputCol, colDesc); } } @@ -421,8 +425,9 @@ public class MapJoinProcessor implements Transform { valueFilteredCols.add(valueCols.get(i).clone()); } if (filterMap != null && filterMap[pos] != null && pos != mapJoinPos) { - ExprNodeColumnDesc isFilterDesc = new ExprNodeColumnDesc(TypeInfoFactory - .getPrimitiveTypeInfo(Constants.TINYINT_TYPE_NAME), "filter", "filter", false); + ExprNodeColumnDesc isFilterDesc = new ExprNodeColumnDesc(dbName, + TypeInfoFactory.getPrimitiveTypeInfo(Constants.BOOLEAN_TYPE_NAME), + "filter", "filter", false); valueFilteredCols.add(isFilterDesc); } @@ -601,12 +606,14 @@ public class MapJoinProcessor implements Transform { String internalName = outputCols.get(i); String[] nm = inputRR.reverseLookup(internalName); ColumnInfo valueInfo = inputRR.get(nm[0], nm[1]); - ExprNodeDesc colDesc = new ExprNodeColumnDesc(valueInfo.getType(), valueInfo - .getInternalName(), nm[0], valueInfo.getIsVirtualCol()); + ExprNodeDesc colDesc = new ExprNodeColumnDesc(valueInfo.getDBName(), + valueInfo.getType(), valueInfo.getInternalName(), nm[0], + valueInfo.getIsVirtualCol()); exprs.add(colDesc); outputs.add(internalName); - outputRS.put(nm[0], nm[1], new ColumnInfo(internalName, valueInfo.getType(), nm[0], valueInfo - .getIsVirtualCol(), valueInfo.isHiddenVirtualCol())); + outputRS.put(nm[0], nm[1], new ColumnInfo(valueInfo.getDBName(), internalName, + valueInfo.getType(), nm[0], valueInfo.getIsVirtualCol(), + valueInfo.isHiddenVirtualCol())); colExprMap.put(internalName, colDesc); } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/ReduceSinkDeDuplication.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/ReduceSinkDeDuplication.java index 77c50b0..e1796da 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/ReduceSinkDeDuplication.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/ReduceSinkDeDuplication.java @@ -237,8 +237,9 @@ public class ReduceSinkDeDuplication implements Transform{ ExprNodeDesc colDesc = childReduceSink.getConf().getValueCols().get(i); exprs.add(colDesc); outputs.add(internalName); - outputRS.put(nm[0], nm[1], new ColumnInfo(internalName, valueInfo - .getType(), nm[0], valueInfo.getIsVirtualCol(), valueInfo.isHiddenVirtualCol())); + outputRS.put(nm[0], nm[1], new ColumnInfo(valueInfo.getDBName(), internalName, + valueInfo.getType(), nm[0], valueInfo.getIsVirtualCol(), + valueInfo.isHiddenVirtualCol())); colExprMap.put(internalName, colDesc); } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndex.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndex.java index 1d8336f..c312641 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndex.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/index/RewriteQueryUsingAggregateIndex.java @@ -97,10 +97,12 @@ public final class RewriteQueryUsingAggregateIndex { RowSchema selRS = operator.getSchema(); List selRSSignature = selRS.getSignature(); + String dbName = selRSSignature.get(0).getDBName(); //Need to create a new type for Column[_count_of_indexed_key_column] node PrimitiveTypeInfo pti = (PrimitiveTypeInfo) TypeInfoFactory.getPrimitiveTypeInfo("bigint"); pti.setTypeName("bigint"); - ColumnInfo newCI = new ColumnInfo(rewriteQueryCtx.getAggregateFunction(), pti, "", false); + ColumnInfo newCI = new ColumnInfo(dbName, + rewriteQueryCtx.getAggregateFunction(), pti, "", false); selRSSignature.add(newCI); selRS.setSignature((ArrayList) selRSSignature); operator.setSchema(selRS); @@ -161,7 +163,7 @@ public final class RewriteQueryUsingAggregateIndex { LOG.error(org.apache.hadoop.util.StringUtils.stringifyException(e)); throw new SemanticException(e.getMessage(), e); } - + String dbName = indexTableHandle.getDbName(); String k = indexTableName + Path.SEPARATOR; indexTableScanDesc.setStatsAggPrefix(k); scanOperator.setConf(indexTableScanDesc); @@ -174,8 +176,8 @@ public final class RewriteQueryUsingAggregateIndex { List fields = rowObjectInspector .getAllStructFieldRefs(); for (int i = 0; i < fields.size(); i++) { - rr.put(indexTableName, fields.get(i).getFieldName(), new ColumnInfo(fields - .get(i).getFieldName(), TypeInfoUtils + rr.put(indexTableName, fields.get(i).getFieldName(), new ColumnInfo(dbName, + fields.get(i).getFieldName(), TypeInfoUtils .getTypeInfoFromObjectInspector(fields.get(i) .getFieldObjectInspector()), indexTableName, false)); } diff --git ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/GenMRSkewJoinProcessor.java ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/GenMRSkewJoinProcessor.java index 2bbb278..9ac7a15 100644 --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/GenMRSkewJoinProcessor.java +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/physical/GenMRSkewJoinProcessor.java @@ -170,6 +170,7 @@ public final class GenMRSkewJoinProcessor { for (int i = 0; i < numAliases; i++) { Byte alias = tags[i]; List valueCols = joinValues.get(alias); + String dbName = ""; String colNames = ""; String colTypes = ""; int columnSize = valueCols.size(); @@ -178,10 +179,13 @@ public final class GenMRSkewJoinProcessor { boolean first = true; for (int k = 0; k < columnSize; k++) { - TypeInfo type = valueCols.get(k).getTypeInfo(); + ExprNodeDesc exprNodeDesc = valueCols.get(k); + TypeInfo type = exprNodeDesc.getTypeInfo(); + dbName = (exprNodeDesc instanceof ExprNodeColumnDesc ? + ((ExprNodeColumnDesc)exprNodeDesc).getDBName() : ""); String newColName = i + "_VALUE_" + k; // any name, it does not matter. newValueExpr - .add(new ExprNodeColumnDesc(type, newColName, "" + i, false)); + .add(new ExprNodeColumnDesc(dbName, type, newColName, "" + i, false)); if (!first) { colNames = colNames + ","; colTypes = colTypes + ","; @@ -200,7 +204,7 @@ public final class GenMRSkewJoinProcessor { first = false; colNames = colNames + joinKeys.get(k); colTypes = colTypes + joinKeyTypes.get(k); - newKeyExpr.add(new ExprNodeColumnDesc(TypeInfoFactory + newKeyExpr.add(new ExprNodeColumnDesc(dbName, TypeInfoFactory .getPrimitiveTypeInfo(joinKeyTypes.get(k)), joinKeys.get(k), "" + i, false)); } diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java index 200c540..e7e15c5 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/RowResolver.java @@ -115,6 +115,10 @@ public class RowResolver implements Serializable{ return rslvMap.get(tab_alias.toLowerCase()) != null; } + public boolean hasDatabaseAlias(String db_alias) { + return getColumnInfos().get(0).getDBName().equals(db_alias); + } + /** * Gets the column Info to tab_alias.col_alias type of a column reference. I * the tab_alias is not provided as can be the case with an non aliased @@ -138,7 +142,6 @@ public class RowResolver implements Serializable{ public ColumnInfo get(String tab_alias, String col_alias) throws SemanticException { col_alias = col_alias.toLowerCase(); ColumnInfo ret = null; - if (tab_alias != null) { tab_alias = tab_alias.toLowerCase(); HashMap f_map = rslvMap.get(tab_alias); diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 2b28a60..32987ec 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -1617,11 +1617,11 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { continue; } - ExprNodeColumnDesc expr = new ExprNodeColumnDesc(colInfo.getType(), + ExprNodeColumnDesc expr = new ExprNodeColumnDesc(colInfo.getDBName(), colInfo.getType(), name, colInfo.getTabAlias(), colInfo.getIsVirtualCol(), colInfo.isSkewedCol()); col_list.add(expr); output.put(tmp[0], tmp[1], - new ColumnInfo(getColumnInternalName(pos), colInfo.getType(), + new ColumnInfo(colInfo.getDBName(), getColumnInternalName(pos), colInfo.getType(), colInfo.getTabAlias(), colInfo.getIsVirtualCol(), colInfo.isHiddenVirtualCol())); pos = Integer.valueOf(pos.intValue() + 1); @@ -1794,12 +1794,12 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { // If column type is not specified, use a string if (!outputColNames && !outputColSchemas) { String intName = getColumnInternalName(0); - ColumnInfo colInfo = new ColumnInfo(intName, + ColumnInfo colInfo = new ColumnInfo("", intName, TypeInfoFactory.stringTypeInfo, null, false); colInfo.setAlias("key"); outputCols.add(colInfo); intName = getColumnInternalName(1); - colInfo = new ColumnInfo(intName, TypeInfoFactory.stringTypeInfo, null, + colInfo = new ColumnInfo("", intName, TypeInfoFactory.stringTypeInfo, null, false); colInfo.setAlias("value"); outputCols.add(colInfo); @@ -1815,7 +1815,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { .getText()); failIfColAliasExists(colAliasNamesDuplicateCheck, colAlias); String intName = getColumnInternalName(i); - ColumnInfo colInfo = new ColumnInfo(intName, + ColumnInfo colInfo = new ColumnInfo("", intName, TypeInfoFactory.stringTypeInfo, null, false); colInfo.setAlias(colAlias); outputCols.add(colInfo); @@ -1828,7 +1828,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { .getText()); failIfColAliasExists(colAliasNamesDuplicateCheck, colAlias); String intName = getColumnInternalName(i); - ColumnInfo colInfo = new ColumnInfo(intName, TypeInfoUtils + ColumnInfo colInfo = new ColumnInfo("", intName, TypeInfoUtils .getTypeInfoFromTypeString(getTypeStringFromAST((ASTNode) child .getChild(1))), null, false); colInfo.setAlias(colAlias); @@ -2307,7 +2307,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { throw new SemanticException(ErrorMsg.AMBIGUOUS_COLUMN.getMsg(colAlias)); } - ColumnInfo colInfo = new ColumnInfo(getColumnInternalName(pos), + String dbName = inputRR.getColumnInfos().get(0).getDBName(); + ColumnInfo colInfo = new ColumnInfo(dbName, getColumnInternalName(pos), exp.getWritableObjectInspector(), tabAlias, false); colInfo.setSkewedCol((exp instanceof ExprNodeColumnDesc) ? ((ExprNodeColumnDesc) exp) .isSkewedCol() : false); @@ -2550,6 +2551,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { ArrayList outputColumnNames = new ArrayList(); Map colExprMap = new HashMap(); List grpByExprs = getGroupByForClause(parseInfo, dest); + String dbName = ""; for (int i = 0; i < grpByExprs.size(); ++i) { ASTNode grpbyExpr = grpByExprs.get(i); ColumnInfo exprInfo = groupByInputRowResolver.getExpression(grpbyExpr); @@ -2558,12 +2560,13 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { throw new SemanticException(ErrorMsg.INVALID_COLUMN.getMsg(grpbyExpr)); } - groupByKeys.add(new ExprNodeColumnDesc(exprInfo.getType(), exprInfo - .getInternalName(), "", false)); + dbName = exprInfo.getDBName(); + groupByKeys.add(new ExprNodeColumnDesc(dbName, exprInfo.getType(), + exprInfo.getInternalName(), "", false)); String field = getColumnInternalName(i); outputColumnNames.add(field); groupByOutputRowResolver.putExpression(grpbyExpr, - new ColumnInfo(field, exprInfo.getType(), null, false)); + new ColumnInfo(dbName, field, exprInfo.getType(), null, false)); colExprMap.put(field, groupByKeys.get(groupByKeys.size() - 1)); } // For each aggregation @@ -2601,7 +2604,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { if (paraExprInfo == null) { throw new SemanticException(ErrorMsg.INVALID_COLUMN.getMsg(paraExpr)); } - + dbName = paraExprInfo.getDBName(); String paraExpression = paraExprInfo.getInternalName(); assert (paraExpression != null); if (isDistinct && lastKeyColName != null) { @@ -2613,7 +2616,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { } - ExprNodeDesc expr = new ExprNodeColumnDesc(paraExprInfo.getType(), + ExprNodeDesc expr = new ExprNodeColumnDesc(dbName, paraExprInfo.getType(), paraExpression, paraExprInfo.getTabAlias(), paraExprInfo.getIsVirtualCol()); ExprNodeDesc reduceValue = isConstantParameterInAggregationParameters( @@ -2643,7 +2646,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { + aggregations.size() - 1); outputColumnNames.add(field); groupByOutputRowResolver.putExpression(value, new ColumnInfo( - field, udaf.returnType, "", false)); + dbName, field, udaf.returnType, "", false)); // Save the evaluator so that it can be used by the next-stage // GroupByOperators if (genericUDAFEvaluators != null) { @@ -2687,6 +2690,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { ArrayList aggregations = new ArrayList(); List grpByExprs = getGroupByForClause(parseInfo, dest); Map colExprMap = new HashMap(); + String dbName = ""; for (int i = 0; i < grpByExprs.size(); ++i) { ASTNode grpbyExpr = grpByExprs.get(i); ColumnInfo exprInfo = groupByInputRowResolver.getExpression(grpbyExpr); @@ -2695,13 +2699,14 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { throw new SemanticException(ErrorMsg.INVALID_COLUMN.getMsg(grpbyExpr)); } - groupByKeys.add(new ExprNodeColumnDesc(exprInfo.getType(), exprInfo + dbName = exprInfo.getDBName(); + groupByKeys.add(new ExprNodeColumnDesc(dbName, exprInfo.getType(), exprInfo .getInternalName(), exprInfo.getTabAlias(), exprInfo .getIsVirtualCol())); String field = getColumnInternalName(i); outputColumnNames.add(field); groupByOutputRowResolver.putExpression(grpbyExpr, - new ColumnInfo(field, exprInfo.getType(), "", false)); + new ColumnInfo(dbName, field, exprInfo.getType(), "", false)); colExprMap.put(field, groupByKeys.get(groupByKeys.size() - 1)); } @@ -2748,6 +2753,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { .getMsg(paraExpr)); } + dbName = paraExprInfo.getDBName(); String paraExpression = paraExprInfo.getInternalName(); assert (paraExpression != null); if (isDistinct && lastKeyColName != null) { @@ -2759,7 +2765,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { } - ExprNodeDesc expr = new ExprNodeColumnDesc(paraExprInfo.getType(), + ExprNodeDesc expr = new ExprNodeColumnDesc(dbName, paraExprInfo.getType(), paraExpression, paraExprInfo.getTabAlias(), paraExprInfo.getIsVirtualCol()); ExprNodeDesc reduceValue = isConstantParameterInAggregationParameters( @@ -2778,9 +2784,10 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { if (paraExprInfo == null) { throw new SemanticException(ErrorMsg.INVALID_COLUMN.getMsg(value)); } + dbName = paraExprInfo.getDBName(); String paraExpression = paraExprInfo.getInternalName(); assert (paraExpression != null); - aggParameters.add(new ExprNodeColumnDesc(paraExprInfo.getType(), + aggParameters.add(new ExprNodeColumnDesc(dbName, paraExprInfo.getType(), paraExpression, paraExprInfo.getTabAlias(), paraExprInfo .getIsVirtualCol())); } @@ -2810,7 +2817,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { + aggregations.size() - 1); outputColumnNames.add(field); groupByOutputRowResolver.putExpression(value, new ColumnInfo( - field, udaf.returnType, "", false)); + dbName, field, udaf.returnType, "", false)); } float groupByMemoryUsage = HiveConf.getFloatVar(conf, HiveConf.ConfVars.HIVEMAPAGGRHASHMEMORY); float memoryThreshold = HiveConf.getFloatVar(conf, HiveConf.ConfVars.HIVEMAPAGGRMEMORYTHRESHOLD); @@ -2852,6 +2859,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { ArrayList aggregations = new ArrayList(); Map colExprMap = new HashMap(); List grpByExprs = getGroupByForClause(parseInfo, dest); + String dbName = ""; for (int i = 0; i < grpByExprs.size(); ++i) { ASTNode grpbyExpr = grpByExprs.get(i); ExprNodeDesc grpByExprNode = genExprNodeDesc(grpbyExpr, @@ -2860,8 +2868,9 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { groupByKeys.add(grpByExprNode); String field = getColumnInternalName(i); outputColumnNames.add(field); + dbName = groupByInputRowResolver.getColumnInfos().get(0).getDBName(); groupByOutputRowResolver.putExpression(grpbyExpr, - new ColumnInfo(field, grpByExprNode.getTypeInfo(), "", false)); + new ColumnInfo(dbName, field, grpByExprNode.getTypeInfo(), "", false)); colExprMap.put(field, groupByKeys.get(groupByKeys.size() - 1)); } @@ -2882,7 +2891,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { 1); outputColumnNames.add(field); groupByOutputRowResolver.putExpression(parameter, new ColumnInfo( - field, distExprNode.getTypeInfo(), "", false)); + dbName, field, distExprNode.getTypeInfo(), "", false)); colExprMap.put(field, groupByKeys.get(groupByKeys.size() - 1)); } } @@ -2924,7 +2933,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { + aggregations.size() - 1); outputColumnNames.add(field); groupByOutputRowResolver.putExpression(value, new ColumnInfo( - field, udaf.returnType, "", false)); + dbName, field, udaf.returnType, "", false)); // Save the evaluator so that it can be used by the next-stage // GroupByOperators if (genericUDAFEvaluators != null) { @@ -2994,14 +3003,15 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { TypeInfo type = reduceSinkInputRowResolver.getColumnInfos().get( inputField).getType(); - reduceValues.add(new ExprNodeColumnDesc(type, + String dbName = reduceSinkInputRowResolver.getColumnInfos().get(0).getDBName(); + reduceValues.add(new ExprNodeColumnDesc(dbName, type, getColumnInternalName(inputField), "", false)); inputField++; outputValueColumnNames.add(getColumnInternalName(reduceValues.size() - 1)); String field = Utilities.ReduceField.VALUE.toString() + "." + getColumnInternalName(reduceValues.size() - 1); reduceSinkOutputRowResolver.putExpression(entry.getValue(), - new ColumnInfo(field, type, null, false)); + new ColumnInfo(dbName, field, type, null, false)); } } @@ -3029,9 +3039,11 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { reduceKeys.add(inputExpr); if (reduceSinkOutputRowResolver.getExpression(grpbyExpr) == null) { outputKeyColumnNames.add(getColumnInternalName(reduceKeys.size() - 1)); + String dbName = reduceSinkInputRowResolver.getColumnInfos() + .get(0).getDBName(); String field = Utilities.ReduceField.KEY.toString() + "." + getColumnInternalName(reduceKeys.size() - 1); - ColumnInfo colInfo = new ColumnInfo(field, reduceKeys.get( + ColumnInfo colInfo = new ColumnInfo(dbName, field, reduceKeys.get( reduceKeys.size() - 1).getTypeInfo(), null, false); reduceSinkOutputRowResolver.putExpression(grpbyExpr, colInfo); colExprMap.put(colInfo.getInternalName(), inputExpr); @@ -3078,11 +3090,13 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { } // add the index of expr in reduceKeys to distinctIndices distinctIndices.add(ri); + String dbName = reduceSinkInputRowResolver.getColumnInfos() + .get(0).getDBName(); String name = getColumnInternalName(numExprs); String field = Utilities.ReduceField.KEY.toString() + "." + colName + ":" + i + "." + name; - ColumnInfo colInfo = new ColumnInfo(field, expr.getTypeInfo(), null, false); + ColumnInfo colInfo = new ColumnInfo(dbName, field, expr.getTypeInfo(), null, false); reduceSinkOutputRowResolver.putExpression(parameter, colInfo); numExprs++; } @@ -3111,9 +3125,11 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { reduceSinkInputRowResolver)); outputValueColumnNames .add(getColumnInternalName(reduceValues.size() - 1)); + String dbName = reduceSinkInputRowResolver.getColumnInfos() + .get(0).getDBName(); String field = Utilities.ReduceField.VALUE.toString() + "." + getColumnInternalName(reduceValues.size() - 1); - reduceSinkOutputRowResolver.putExpression(parameter, new ColumnInfo(field, + reduceSinkOutputRowResolver.putExpression(parameter, new ColumnInfo(dbName, field, reduceValues.get(reduceValues.size() - 1).getTypeInfo(), null, false)); } @@ -3169,9 +3185,11 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { reduceSinkInputRowResolver)); outputValueColumnNames .add(getColumnInternalName(reduceValues.size() - 1)); + String dbName = reduceSinkInputRowResolver.getColumnInfos() + .get(0).getDBName(); String field = Utilities.ReduceField.VALUE.toString() + "." + getColumnInternalName(reduceValues.size() - 1); - reduceSinkOutputRowResolver.putExpression(parameter, new ColumnInfo(field, + reduceSinkOutputRowResolver.putExpression(parameter, new ColumnInfo(dbName, field, reduceValues.get(reduceValues.size() - 1).getTypeInfo(), null, false)); } @@ -3244,6 +3262,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { Map colExprMap = new HashMap(); ArrayList reduceKeys = new ArrayList(); ArrayList outputColumnNames = new ArrayList(); + String dbName; // Get group-by keys and store in reduceKeys List grpByExprs = getGroupByForClause(parseInfo, dest); for (int i = 0; i < grpByExprs.size(); ++i) { @@ -3252,10 +3271,11 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { outputColumnNames.add(field); TypeInfo typeInfo = reduceSinkInputRowResolver2.getExpression( grpbyExpr).getType(); - ExprNodeColumnDesc inputExpr = new ExprNodeColumnDesc(typeInfo, field, + dbName = reduceSinkInputRowResolver2.getColumnInfos().get(0).getDBName(); + ExprNodeColumnDesc inputExpr = new ExprNodeColumnDesc(dbName, typeInfo, field, "", false); reduceKeys.add(inputExpr); - ColumnInfo colInfo = new ColumnInfo(Utilities.ReduceField.KEY.toString() + ColumnInfo colInfo = new ColumnInfo(dbName, Utilities.ReduceField.KEY.toString() + "." + field, typeInfo, "", false); reduceSinkOutputRowResolver2.putExpression(grpbyExpr, colInfo); colExprMap.put(colInfo.getInternalName(), inputExpr); @@ -3270,12 +3290,13 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { ASTNode t = entry.getValue(); TypeInfo typeInfo = reduceSinkInputRowResolver2.getExpression(t) .getType(); - reduceValues.add(new ExprNodeColumnDesc(typeInfo, field, "", false)); + dbName = reduceSinkInputRowResolver2.getColumnInfos().get(0).getDBName(); + reduceValues.add(new ExprNodeColumnDesc(dbName, typeInfo, field, "", false)); inputField++; String col = getColumnInternalName(reduceValues.size() - 1); outputColumnNames.add(col); reduceSinkOutputRowResolver2.putExpression(t, new ColumnInfo( - Utilities.ReduceField.VALUE.toString() + "." + col, typeInfo, "", + dbName, Utilities.ReduceField.VALUE.toString() + "." + col, typeInfo, "", false)); } @@ -3317,6 +3338,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { Map colExprMap = new HashMap(); List grpByExprs = getGroupByForClause(parseInfo, dest); ArrayList outputColumnNames = new ArrayList(); + String dbName = ""; for (int i = 0; i < grpByExprs.size(); ++i) { ASTNode grpbyExpr = grpByExprs.get(i); ColumnInfo exprInfo = groupByInputRowResolver2.getExpression(grpbyExpr); @@ -3325,12 +3347,13 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { } String expression = exprInfo.getInternalName(); - groupByKeys.add(new ExprNodeColumnDesc(exprInfo.getType(), expression, + dbName = exprInfo.getDBName(); + groupByKeys.add(new ExprNodeColumnDesc(dbName, exprInfo.getType(), expression, exprInfo.getTabAlias(), exprInfo.getIsVirtualCol())); String field = getColumnInternalName(i); outputColumnNames.add(field); groupByOutputRowResolver2.putExpression(grpbyExpr, - new ColumnInfo(field, exprInfo.getType(), "", false)); + new ColumnInfo(dbName, field, exprInfo.getType(), "", false)); colExprMap.put(field, groupByKeys.get(groupByKeys.size() - 1)); } HashMap aggregationTrees = parseInfo @@ -3344,9 +3367,9 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { } String paraExpression = paraExprInfo.getInternalName(); assert (paraExpression != null); - aggParameters.add(new ExprNodeColumnDesc(paraExprInfo.getType(), - paraExpression, paraExprInfo.getTabAlias(), paraExprInfo - .getIsVirtualCol())); + aggParameters.add(new ExprNodeColumnDesc(paraExprInfo.getDBName(), + paraExprInfo.getType(), paraExpression, paraExprInfo.getTabAlias(), + paraExprInfo.getIsVirtualCol())); String aggName = unescapeIdentifier(value.getChild(0).getText()); @@ -3370,7 +3393,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { + aggregations.size() - 1); outputColumnNames.add(field); groupByOutputRowResolver2.putExpression(value, new ColumnInfo( - field, udaf.returnType, "", false)); + dbName, field, udaf.returnType, "", false)); } float groupByMemoryUsage = HiveConf.getFloatVar(conf, HiveConf.ConfVars.HIVEMAPAGGRHASHMEMORY); float memoryThreshold = HiveConf.getFloatVar(conf, HiveConf.ConfVars.HIVEMAPAGGRMEMORYTHRESHOLD); @@ -4353,6 +4376,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { input = genConversionSelectOperator(dest, qb, input, table_desc, dpCtx); inputRR = opParseCtx.get(input).getRowResolver(); + String dbName = inputRR.getColumnInfos().get(0).getDBName(); ArrayList vecCol = new ArrayList(); try { @@ -4361,7 +4385,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { List fields = rowObjectInspector .getAllStructFieldRefs(); for (int i = 0; i < fields.size(); i++) { - vecCol.add(new ColumnInfo(fields.get(i).getFieldName(), TypeInfoUtils + vecCol.add(new ColumnInfo(dbName, fields.get(i).getFieldName(), TypeInfoUtils .getTypeInfoFromObjectInspector(fields.get(i) .getFieldObjectInspector()), "", false)); } @@ -4437,6 +4461,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { boolean dynPart = HiveConf.getBoolVar(conf, HiveConf.ConfVars.DYNAMICPARTITIONING); ArrayList rowFields = opParseCtx.get(input).getRowResolver() .getColumnInfos(); + String dbName = rowFields.get(0).getDBName(); int inColumnCnt = rowFields.size(); int outColumnCnt = tableFields.size(); if (dynPart && dpCtx != null) { @@ -4473,7 +4498,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { TypeInfo tableFieldTypeInfo = TypeInfoUtils .getTypeInfoFromObjectInspector(tableFieldOI); TypeInfo rowFieldTypeInfo = rowFields.get(i).getType(); - ExprNodeDesc column = new ExprNodeColumnDesc(rowFieldTypeInfo, + ExprNodeDesc column = new ExprNodeColumnDesc(dbName, rowFieldTypeInfo, rowFields.get(i).getInternalName(), "", false, rowFields.get(i).isSkewedCol()); // LazySimpleSerDe can convert any types to String type using // JSON-format. @@ -4507,7 +4532,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { // DP columns starts with tableFields.size() for (int i = tableFields.size(); i < rowFields.size(); ++i ) { TypeInfo rowFieldTypeInfo = rowFields.get(i).getType(); - ExprNodeDesc column = new ExprNodeColumnDesc( + ExprNodeDesc column = new ExprNodeColumnDesc(dbName, rowFieldTypeInfo, rowFields.get(i).getInternalName(), "", false); expressions.add(column); } @@ -4520,8 +4545,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { ArrayList colName = new ArrayList(); for (int i = 0; i < expressions.size(); i++) { String name = getColumnInternalName(i); - rowResolver.put("", name, new ColumnInfo(name, expressions.get(i) - .getTypeInfo(), "", false)); + rowResolver.put("", name, new ColumnInfo(dbName, name, + expressions.get(i).getTypeInfo(), "", false)); colName.add(name); } Operator output = putOpInsertMap(OperatorFactory.getAndMakeChild( @@ -4596,6 +4621,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { // for the UDTF operator RowResolver selectRR = opParseCtx.get(input).getRowResolver(); ArrayList inputCols = selectRR.getColumnInfos(); + String dbName = inputCols.get(0).getDBName(); // Create the object inspector for the input columns and initialize the UDTF ArrayList colNames = new ArrayList(); @@ -4628,7 +4654,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { // Since the UDTF operator feeds into a LVJ operator that will rename // all the internal names, we can just use field name from the UDTF's OI // as the internal name - ColumnInfo col = new ColumnInfo(sf.getFieldName(), TypeInfoUtils + ColumnInfo col = new ColumnInfo(dbName, sf.getFieldName(), TypeInfoUtils .getTypeInfoFromObjectInspector(sf.getFieldObjectInspector()), outputTableAlias, false); udtfCols.add(col); @@ -4706,6 +4732,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { List tableFields = oi.getAllStructFieldRefs(); ArrayList rowFields = opParseCtx.get(input).getRowResolver() .getColumnInfos(); + String dbName = rowFields.get(0).getDBName(); // Check column type int columnNumber = posns.size(); @@ -4714,8 +4741,9 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { ObjectInspector tableFieldOI = tableFields.get(posn).getFieldObjectInspector(); TypeInfo tableFieldTypeInfo = TypeInfoUtils.getTypeInfoFromObjectInspector(tableFieldOI); TypeInfo rowFieldTypeInfo = rowFields.get(posn).getType(); - ExprNodeDesc column = new ExprNodeColumnDesc(rowFieldTypeInfo, rowFields.get(posn).getInternalName(), - rowFields.get(posn).getTabAlias(), rowFields.get(posn).getIsVirtualCol()); + ExprNodeDesc column = new ExprNodeColumnDesc( + dbName, rowFieldTypeInfo, rowFields.get(posn).getInternalName(), + rowFields.get(posn).getTabAlias(), rowFields.get(posn).getIsVirtualCol()); if (convert && !tableFieldTypeInfo.equals(rowFieldTypeInfo)) { // need to do some conversions here @@ -4795,9 +4823,9 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { Map colExprMap = new HashMap(); ArrayList valueCols = new ArrayList(); for (ColumnInfo colInfo : inputRR.getColumnInfos()) { - valueCols.add(new ExprNodeColumnDesc(colInfo.getType(), colInfo - .getInternalName(), colInfo.getTabAlias(), colInfo - .getIsVirtualCol())); + valueCols.add(new ExprNodeColumnDesc(colInfo.getDBName(), + colInfo.getType(), colInfo.getInternalName(), colInfo.getTabAlias(), + colInfo.getIsVirtualCol())); colExprMap.put(colInfo.getInternalName(), valueCols .get(valueCols.size() - 1)); } @@ -4822,16 +4850,18 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { RowResolver out_rwsch = new RowResolver(); RowResolver interim_rwsch = inputRR; Integer pos = Integer.valueOf(0); + String dbName = ""; for (ColumnInfo colInfo : interim_rwsch.getColumnInfos()) { String[] info = interim_rwsch.reverseLookup(colInfo.getInternalName()); - out_rwsch.put(info[0], info[1], new ColumnInfo( + dbName = colInfo.getDBName(); + out_rwsch.put(info[0], info[1], new ColumnInfo(colInfo.getDBName(), getColumnInternalName(pos), colInfo.getType(), info[0], colInfo.getIsVirtualCol(), colInfo.isHiddenVirtualCol())); pos = Integer.valueOf(pos.intValue() + 1); } Operator output = putOpInsertMap(OperatorFactory.getAndMakeChild( - new ExtractDesc(new ExprNodeColumnDesc(TypeInfoFactory.stringTypeInfo, + new ExtractDesc(new ExprNodeColumnDesc(dbName, TypeInfoFactory.stringTypeInfo, Utilities.ReduceField.VALUE.toString(), "", false)), new RowSchema( out_rwsch.getColumnInfos()), interim), out_rwsch); @@ -4914,9 +4944,9 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { Map colExprMap = new HashMap(); ArrayList valueCols = new ArrayList(); for (ColumnInfo colInfo : inputRR.getColumnInfos()) { - valueCols.add(new ExprNodeColumnDesc(colInfo.getType(), colInfo - .getInternalName(), colInfo.getTabAlias(), colInfo - .getIsVirtualCol())); + valueCols.add(new ExprNodeColumnDesc(colInfo.getDBName(), + colInfo.getType(), colInfo.getInternalName(), colInfo.getTabAlias(), + colInfo.getIsVirtualCol())); colExprMap.put(colInfo.getInternalName(), valueCols .get(valueCols.size() - 1)); } @@ -4935,16 +4965,18 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { RowResolver out_rwsch = new RowResolver(); RowResolver interim_rwsch = inputRR; Integer pos = Integer.valueOf(0); + String dbName = ""; for (ColumnInfo colInfo : interim_rwsch.getColumnInfos()) { String[] info = interim_rwsch.reverseLookup(colInfo.getInternalName()); - out_rwsch.put(info[0], info[1], new ColumnInfo( + dbName = colInfo.getDBName(); + out_rwsch.put(info[0], info[1], new ColumnInfo(colInfo.getDBName(), getColumnInternalName(pos), colInfo.getType(), info[0], colInfo.getIsVirtualCol(), colInfo.isHiddenVirtualCol())); pos = Integer.valueOf(pos.intValue() + 1); } Operator output = putOpInsertMap(OperatorFactory.getAndMakeChild( - new ExtractDesc(new ExprNodeColumnDesc(TypeInfoFactory.stringTypeInfo, + new ExtractDesc(new ExprNodeColumnDesc(dbName, TypeInfoFactory.stringTypeInfo, Utilities.ReduceField.VALUE.toString(), "", false)), new RowSchema( out_rwsch.getColumnInfos()), interim), out_rwsch); @@ -5001,17 +5033,17 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { while (fNamesIter.hasNext()) { String field = fNamesIter.next(); ColumnInfo valueInfo = inputRS.get(key, field); - keyDesc.add(new ExprNodeColumnDesc(valueInfo.getType(), valueInfo - .getInternalName(), valueInfo.getTabAlias(), valueInfo - .getIsVirtualCol())); + keyDesc.add(new ExprNodeColumnDesc(valueInfo.getDBName(), + valueInfo.getType(), valueInfo.getInternalName(), + valueInfo.getTabAlias(), valueInfo.getIsVirtualCol())); if (outputRS.get(key, field) == null) { String colName = getColumnInternalName(outputPos); outputPos++; outputColumnNames.add(colName); colExprMap.put(colName, keyDesc.get(keyDesc.size() - 1)); - outputRS.put(key, field, new ColumnInfo(colName, valueInfo - .getType(), key, valueInfo.getIsVirtualCol(), valueInfo + outputRS.put(key, field, new ColumnInfo(valueInfo.getDBName(), colName, + valueInfo.getType(), key, valueInfo.getIsVirtualCol(), valueInfo .isHiddenVirtualCol())); reversedExprs.put(colName, tag); } @@ -5077,15 +5109,15 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { for (Map.Entry entry : fMap.entrySet()) { String field = entry.getKey(); ColumnInfo valueInfo = entry.getValue(); - ExprNodeColumnDesc inputExpr = new ExprNodeColumnDesc(valueInfo - .getType(), valueInfo.getInternalName(), valueInfo.getTabAlias(), + ExprNodeColumnDesc inputExpr = new ExprNodeColumnDesc(valueInfo.getDBName(), + valueInfo.getType(), valueInfo.getInternalName(), valueInfo.getTabAlias(), valueInfo.getIsVirtualCol()); reduceValues.add(inputExpr); if (outputRS.get(src, field) == null) { String col = getColumnInternalName(reduceValues.size() - 1); outputColumns.add(col); - ColumnInfo newColInfo = new ColumnInfo(Utilities.ReduceField.VALUE - .toString() + ColumnInfo newColInfo = new ColumnInfo(valueInfo.getDBName(), + Utilities.ReduceField.VALUE.toString() + "." + col, valueInfo.getType(), src, valueInfo .getIsVirtualCol(), valueInfo.isHiddenVirtualCol()); @@ -5229,6 +5261,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { ArrayList outputColumnNames = new ArrayList(); ArrayList aggregations = new ArrayList(); Map colExprMap = new HashMap(); + String dbName = groupByInputRowResolver.getColumnInfos().get(0).getDBName(); qb.getParseInfo(); groupByOutputRowResolver.setIsExprResolver(true); // join keys should only @@ -5245,7 +5278,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { // generate output column names String field = getColumnInternalName(i); outputColumnNames.add(field); - ColumnInfo colInfo2 = new ColumnInfo(field, grpByExprNode.getTypeInfo(), + ColumnInfo colInfo2 = new ColumnInfo(dbName, field, grpByExprNode.getTypeInfo(), "", false); groupByOutputRowResolver.putExpression(colName, colInfo2); @@ -5862,12 +5895,12 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { new HashMap(); for (int i = 0; i < columns.size(); i++) { ColumnInfo col = columns.get(i); - colList.add(new ExprNodeColumnDesc(col.getType(), col.getInternalName(), - col.getTabAlias(), col.getIsVirtualCol())); + colList.add(new ExprNodeColumnDesc(col.getDBName(), col.getType(), + col.getInternalName(), col.getTabAlias(), col.getIsVirtualCol())); columnNames.add(col.getInternalName()); columnExprMap.put(col.getInternalName(), - new ExprNodeColumnDesc(col.getType(), col.getInternalName(), - col.getTabAlias(), col.getIsVirtualCol())); + new ExprNodeColumnDesc(col.getDBName(), col.getType(), + col.getInternalName(), col.getTabAlias(), col.getIsVirtualCol())); } Operator output = putOpInsertMap(OperatorFactory.getAndMakeChild( new SelectDesc(colList, columnNames, true), new RowSchema(inputRR @@ -5954,6 +5987,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { ArrayList reduceKeys = new ArrayList(); ArrayList reduceValues = new ArrayList(); Map colExprMap = new HashMap(); + String dbName = inputRR.getColumnInfos().get(0).getDBName(); // Pre-compute distinct group-by keys and store in reduceKeys @@ -5965,7 +5999,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { outputColumnNames.add(getColumnInternalName(reduceKeys.size() - 1)); String field = Utilities.ReduceField.KEY.toString() + "." + getColumnInternalName(reduceKeys.size() - 1); - ColumnInfo colInfo = new ColumnInfo(field, reduceKeys.get( + ColumnInfo colInfo = new ColumnInfo(dbName, field, reduceKeys.get( reduceKeys.size() - 1).getTypeInfo(), "", false); reduceSinkOutputRowResolver.putExpression(distn, colInfo); colExprMap.put(colInfo.getInternalName(), distExpr); @@ -5984,7 +6018,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { reduceValues.add(grpByExprNode); String field = Utilities.ReduceField.VALUE.toString() + "." + getColumnInternalName(reduceValues.size() - 1); - ColumnInfo colInfo = new ColumnInfo(field, reduceValues.get( + ColumnInfo colInfo = new ColumnInfo(dbName, field, reduceValues.get( reduceValues.size() - 1).getTypeInfo(), "", false); reduceSinkOutputRowResolver.putExpression(grpbyExpr, colInfo); outputColumnNames.add(getColumnInternalName(reduceValues.size() - 1)); @@ -6008,7 +6042,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { reduceValues.add(paraExprNode); String field = Utilities.ReduceField.VALUE.toString() + "." + getColumnInternalName(reduceValues.size() - 1); - ColumnInfo colInfo = new ColumnInfo(field, reduceValues.get( + ColumnInfo colInfo = new ColumnInfo(dbName, field, reduceValues.get( reduceValues.size() - 1).getTypeInfo(), "", false); reduceSinkOutputRowResolver.putExpression(paraExpr, colInfo); outputColumnNames @@ -6643,8 +6677,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { for (String col : bucketCols) { ColumnInfo ci = rwsch.get(alias, col); // TODO: change type to the one in the table schema - args.add(new ExprNodeColumnDesc(ci.getType(), ci.getInternalName(), ci - .getTabAlias(), ci.getIsVirtualCol())); + args.add(new ExprNodeColumnDesc(ci.getDBName(), ci.getType(), + ci.getInternalName(), ci.getTabAlias(), ci.getIsVirtualCol())); } } else { for (ASTNode expr : ts.getExprs()) { @@ -6684,6 +6718,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { String alias_id = getAliasId(alias, qb); Table tab = qb.getMetaData().getSrcForAlias(alias); + String dbName = tab.getDbName(); RowResolver rwsch; // is the table already present @@ -6704,7 +6739,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { /** * if the column is a skewed column, use ColumnInfo accordingly */ - ColumnInfo colInfo = new ColumnInfo(fields.get(i).getFieldName(), + ColumnInfo colInfo = new ColumnInfo(dbName, fields.get(i).getFieldName(), TypeInfoUtils.getTypeInfoFromObjectInspector(fields.get(i) .getFieldObjectInspector()), alias, false); colInfo.setSkewedCol((isSkewedCol(alias, qb, fields.get(i) @@ -6720,7 +6755,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { LOG.trace("Adding partition col: " + part_col); // TODO: use the right type by calling part_col.getType() instead of // String.class - rwsch.put(alias, part_col.getName(), new ColumnInfo(part_col.getName(), + rwsch.put(alias, part_col.getName(), new ColumnInfo(dbName, part_col.getName(), TypeInfoFactory.stringTypeInfo, alias, true)); } @@ -6730,7 +6765,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { List vcList = new ArrayList(); while (vcs.hasNext()) { VirtualColumn vc = vcs.next(); - rwsch.put(alias, vc.getName(), new ColumnInfo(vc.getName(), + rwsch.put(alias, vc.getName(), new ColumnInfo(dbName, vc.getName(), vc.getTypeInfo(), alias, true, vc.getIsHidden())); vcList.add(vc); } @@ -6915,7 +6950,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { List vcList = new ArrayList(); while (vcs.hasNext()) { VirtualColumn vc = vcs.next(); - rwsch.put(alias, vc.getName(), new ColumnInfo(vc.getName(), + rwsch.put(alias, vc.getName(), new ColumnInfo(tab.getDbName(), vc.getName(), vc.getTypeInfo(), alias, true, vc.getIsHidden())); vcList.add(vc); } @@ -7118,7 +7153,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { String internalName = getColumnInternalName(i); i++; colExprMap.put(internalName, - new ExprNodeColumnDesc(c.getType(), c.getInternalName(), + new ExprNodeColumnDesc(c.getDBName(), c.getType(), c.getInternalName(), c.getTabAlias(), c.getIsVirtualCol())); } @@ -7154,7 +7189,7 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { for (ColumnInfo c : source.getColumnInfos()) { String internalName = getColumnInternalName(outputInternalColNames.size()); outputInternalColNames.add(internalName); - ColumnInfo newCol = new ColumnInfo(internalName, c.getType(), c + ColumnInfo newCol = new ColumnInfo(c.getDBName(), internalName, c.getType(), c .getTabAlias(), c.getIsVirtualCol()); String[] tableCol = source.reverseLookup(c.getInternalName()); String tableAlias = tableCol[0]; @@ -7865,9 +7900,9 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer { if (source != null) { unparseTranslator.addCopyTranslation(expr, source); } - return new ExprNodeColumnDesc(colInfo.getType(), colInfo - .getInternalName(), colInfo.getTabAlias(), colInfo - .getIsVirtualCol(), colInfo.isSkewedCol()); + return new ExprNodeColumnDesc(colInfo.getDBName(), colInfo.getType(), + colInfo.getInternalName(), colInfo.getTabAlias(), + colInfo.getIsVirtualCol(), colInfo.isSkewedCol()); } // Create the walker and the rules dispatcher. diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java index d4f6a9f..5f2e519 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/TypeCheckProcFactory.java @@ -112,9 +112,8 @@ public final class TypeCheckProcFactory { // If the current subExpression is pre-calculated, as in Group-By etc. ColumnInfo colInfo = input.getExpression(expr); if (colInfo != null) { - desc = new ExprNodeColumnDesc(colInfo.getType(), colInfo - .getInternalName(), colInfo.getTabAlias(), colInfo - .getIsVirtualCol()); + desc = new ExprNodeColumnDesc(colInfo.getDBName(), colInfo.getType(), + colInfo.getInternalName(), colInfo.getTabAlias(), colInfo.getIsVirtualCol()); ASTNode source = input.getExpressionSource(expr); if (source != null) { ctx.getUnparseTranslator().addCopyTranslation(expr, source); @@ -376,7 +375,6 @@ public final class TypeCheckProcFactory { @Override public Object process(Node nd, Stack stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { - TypeCheckCtx ctx = (TypeCheckCtx) procCtx; if (ctx.getError() != null) { return null; @@ -397,22 +395,26 @@ public final class TypeCheckProcFactory { } assert (expr.getChildCount() == 1); - String tableOrCol = BaseSemanticAnalyzer.unescapeIdentifier(expr + String dbOrTableOrCol = BaseSemanticAnalyzer.unescapeIdentifier(expr .getChild(0).getText()); - boolean isTableAlias = input.hasTableAlias(tableOrCol); - ColumnInfo colInfo = input.get(null, tableOrCol); + boolean isDatabaseAlias = input.hasDatabaseAlias(dbOrTableOrCol); + boolean isTableAlias = input.hasTableAlias(dbOrTableOrCol); + ColumnInfo colInfo = input.get(null, dbOrTableOrCol); - if (isTableAlias) { + if (isDatabaseAlias) { + // It's a database alias. + // We will process that later in DOT. + return null; + } else if (isTableAlias) { if (colInfo != null) { if (parent != null && parent.getType() == HiveParser.DOT) { // It's a table alias. return null; } // It's a column. - return new ExprNodeColumnDesc(colInfo.getType(), colInfo - .getInternalName(), colInfo.getTabAlias(), colInfo - .getIsVirtualCol()); + return new ExprNodeColumnDesc(colInfo.getDBName(), colInfo.getType(), + colInfo.getInternalName(), colInfo.getTabAlias(), colInfo.getIsVirtualCol()); } else { // It's a table alias. // We will process that later in DOT. @@ -433,7 +435,8 @@ public final class TypeCheckProcFactory { ctx.setError(ErrorMsg.NON_KEY_EXPR_IN_GROUPBY.getMsg(exprNode), expr); return null; } else { - List possibleColumnNames = input.getReferenceableColumnAliases(tableOrCol, -1); + List possibleColumnNames = + input.getReferenceableColumnAliases(dbOrTableOrCol, -1); String reason = String.format("(possible column names are: %s)", StringUtils.join(possibleColumnNames, ", ")); ctx.setError(ErrorMsg.INVALID_TABLE_OR_COLUMN.getMsg(expr.getChild(0), reason), @@ -444,9 +447,8 @@ public final class TypeCheckProcFactory { } } else { // It's a column. - return new ExprNodeColumnDesc(colInfo.getType(), colInfo - .getInternalName(), colInfo.getTabAlias(), colInfo - .getIsVirtualCol()); + return new ExprNodeColumnDesc(colInfo.getDBName(), colInfo.getType(), + colInfo.getInternalName(), colInfo.getTabAlias(), colInfo.getIsVirtualCol()); } } @@ -845,27 +847,51 @@ public final class TypeCheckProcFactory { ASTNode expr = (ASTNode) nd; + // If the first child is a DOT, the first child's child is TOK_TABLE_OR_COL + // and nodeOutput[0] is NULL, + // and the operator is a DOT, then it's a db.table.column reference. + if (expr.getType() == HiveParser.DOT + && expr.getChild(0).getType() == HiveParser.DOT + && expr.getChild(0).getChild(0).getType() == HiveParser.TOK_TABLE_OR_COL + && nodeOutputs[0] == null) { + RowResolver input = ctx.getInputRR(); + String tableAlias = BaseSemanticAnalyzer.unescapeIdentifier( + expr.getChild(0).getChild(1).getText()); + String columnAlias = expr.getChild(1).getText(); + ColumnInfo colInfo = input.get(tableAlias, columnAlias); + if (colInfo == null) { + ctx.setError(ErrorMsg.INVALID_COLUMN.getMsg(expr.getChild(1)), expr); + return null; + } else { + return new ExprNodeColumnDesc(colInfo.getDBName(), colInfo.getType(), + colInfo.getInternalName(), colInfo.getTabAlias(), colInfo.getIsVirtualCol()); + } + } else if (expr.getType() == HiveParser.DOT // If the first child is a TOK_TABLE_OR_COL, and nodeOutput[0] is NULL, // and the operator is a DOT, then it's a table column reference. - if (expr.getType() == HiveParser.DOT && expr.getChild(0).getType() == HiveParser.TOK_TABLE_OR_COL && nodeOutputs[0] == null) { RowResolver input = ctx.getInputRR(); - String tableAlias = BaseSemanticAnalyzer.unescapeIdentifier(expr + String dbOrTableAlias = BaseSemanticAnalyzer.unescapeIdentifier(expr .getChild(0).getChild(0).getText()); + boolean isDBAlias = input.hasDatabaseAlias(dbOrTableAlias); // NOTE: tableAlias must be a valid non-ambiguous table alias, // because we've checked that in TOK_TABLE_OR_COL's process method. - ColumnInfo colInfo = input.get(tableAlias, + if (isDBAlias) { + // it is a database alias + // process when reference column in: db.table.column + return null; + } + ColumnInfo colInfo = input.get(dbOrTableAlias, ((ExprNodeConstantDesc) nodeOutputs[1]).getValue().toString()); if (colInfo == null) { ctx.setError(ErrorMsg.INVALID_COLUMN.getMsg(expr.getChild(1)), expr); return null; } - return new ExprNodeColumnDesc(colInfo.getType(), colInfo - .getInternalName(), colInfo.getTabAlias(), colInfo - .getIsVirtualCol()); + return new ExprNodeColumnDesc(colInfo.getDBName(), colInfo.getType(), + colInfo.getInternalName(), colInfo.getTabAlias(), colInfo.getIsVirtualCol()); } // Return nulls for conversion operators diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeColumnDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeColumnDesc.java index ef1c47f..adaa59f 100755 --- ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeColumnDesc.java +++ ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeColumnDesc.java @@ -44,6 +44,11 @@ public class ExprNodeColumnDesc extends ExprNodeDesc implements Serializable { private String tabAlias; /** + * The alias of the database. + */ + private String dbName; + + /** * Is the column a partitioned column. */ private boolean isPartitionColOrVirtualCol; @@ -56,25 +61,28 @@ public class ExprNodeColumnDesc extends ExprNodeDesc implements Serializable { public ExprNodeColumnDesc() { } - public ExprNodeColumnDesc(TypeInfo typeInfo, String column, String tabAlias, + public ExprNodeColumnDesc(String dbName, TypeInfo typeInfo, String column, String tabAlias, boolean isPartitionColOrVirtualCol) { super(typeInfo); + this.dbName = dbName; this.column = column; this.tabAlias = tabAlias; this.isPartitionColOrVirtualCol = isPartitionColOrVirtualCol; } - public ExprNodeColumnDesc(Class c, String column, String tabAlias, + public ExprNodeColumnDesc(String dbName, Class c, String column, String tabAlias, boolean isPartitionColOrVirtualCol) { super(TypeInfoFactory.getPrimitiveTypeInfoFromJavaPrimitive(c)); + this.dbName = dbName; this.column = column; this.tabAlias = tabAlias; this.isPartitionColOrVirtualCol = isPartitionColOrVirtualCol; } - public ExprNodeColumnDesc(TypeInfo typeInfo, String column, String tabAlias, + public ExprNodeColumnDesc(String dbName, TypeInfo typeInfo, String column, String tabAlias, boolean isPartitionColOrVirtualCol, boolean isSkewedCol) { super(typeInfo); + this.dbName = dbName; this.column = column; this.tabAlias = tabAlias; this.isPartitionColOrVirtualCol = isPartitionColOrVirtualCol; @@ -97,6 +105,14 @@ public class ExprNodeColumnDesc extends ExprNodeDesc implements Serializable { this.tabAlias = tabAlias; } + public String getDBName() { + return dbName; + } + + public void setDBName(String dbName) { + this.dbName = dbName; + } + public boolean getIsPartitionColOrVirtualCol() { return isPartitionColOrVirtualCol; } @@ -125,7 +141,7 @@ public class ExprNodeColumnDesc extends ExprNodeDesc implements Serializable { @Override public ExprNodeDesc clone() { - return new ExprNodeColumnDesc(typeInfo, column, tabAlias, isPartitionColOrVirtualCol, + return new ExprNodeColumnDesc(dbName, typeInfo, column, tabAlias, isPartitionColOrVirtualCol, isSkewedCol); } diff --git ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java index 142f040..9c521bd 100644 --- ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java +++ ql/src/test/org/apache/hadoop/hive/ql/exec/TestExecDriver.java @@ -157,7 +157,7 @@ public class TestExecDriver extends TestCase { private FilterDesc getTestFilterDesc(String column) { ArrayList children1 = new ArrayList(); - children1.add(new ExprNodeColumnDesc(TypeInfoFactory.stringTypeInfo, + children1.add(new ExprNodeColumnDesc("", TypeInfoFactory.stringTypeInfo, column, "", false)); ExprNodeDesc lhs = new ExprNodeGenericFuncDesc( TypeInfoFactory.doubleTypeInfo, FunctionRegistry.getFunctionInfo( @@ -306,7 +306,7 @@ public class TestExecDriver extends TestCase { Operator op5 = OperatorFactory.get(new SelectDesc(Utilities .makeList(getStringColumn(Utilities.ReduceField.ALIAS.toString()), new ExprNodeFieldDesc(TypeInfoFactory.stringTypeInfo, - new ExprNodeColumnDesc(TypeInfoFactory + new ExprNodeColumnDesc("", TypeInfoFactory .getListTypeInfo(TypeInfoFactory.stringTypeInfo), Utilities.ReduceField.VALUE.toString(), "", false), "0", false)), outputColumns), op4); @@ -353,7 +353,7 @@ public class TestExecDriver extends TestCase { } public static ExprNodeColumnDesc getStringColumn(String columnName) { - return new ExprNodeColumnDesc(TypeInfoFactory.stringTypeInfo, columnName, + return new ExprNodeColumnDesc("", TypeInfoFactory.stringTypeInfo, columnName, "", false); } diff --git ql/src/test/org/apache/hadoop/hive/ql/exec/TestExpressionEvaluator.java ql/src/test/org/apache/hadoop/hive/ql/exec/TestExpressionEvaluator.java index 61b298c..6c5f937 100644 --- ql/src/test/org/apache/hadoop/hive/ql/exec/TestExpressionEvaluator.java +++ ql/src/test/org/apache/hadoop/hive/ql/exec/TestExpressionEvaluator.java @@ -98,7 +98,7 @@ public class TestExpressionEvaluator extends TestCase { public void testExprNodeColumnEvaluator() throws Throwable { try { // get a evaluator for a simple field expression - ExprNodeDesc exprDesc = new ExprNodeColumnDesc(colaType, "cola", "", + ExprNodeDesc exprDesc = new ExprNodeColumnDesc("", colaType, "cola", "", false); ExprNodeEvaluator eval = ExprNodeEvaluatorFactory.get(exprDesc); @@ -133,9 +133,9 @@ public class TestExpressionEvaluator extends TestCase { public void testExprNodeFuncEvaluator() throws Throwable { try { // get a evaluator for a string concatenation expression - ExprNodeDesc col1desc = new ExprNodeColumnDesc(col1Type, "col1", "", + ExprNodeDesc col1desc = new ExprNodeColumnDesc("", col1Type, "col1", "", false); - ExprNodeDesc coladesc = new ExprNodeColumnDesc(colaType, "cola", "", + ExprNodeDesc coladesc = new ExprNodeColumnDesc("", colaType, "cola", "", false); ExprNodeDesc col11desc = getListIndexNode(col1desc, 1); ExprNodeDesc cola0desc = getListIndexNode(coladesc, 0); @@ -158,7 +158,7 @@ public class TestExpressionEvaluator extends TestCase { public void testExprNodeConversionEvaluator() throws Throwable { try { // get a evaluator for a string concatenation expression - ExprNodeDesc col1desc = new ExprNodeColumnDesc(col1Type, "col1", "", + ExprNodeDesc col1desc = new ExprNodeColumnDesc("", col1Type, "col1", "", false); ExprNodeDesc col11desc = getListIndexNode(col1desc, 1); ExprNodeDesc func1 = TypeCheckProcFactory.DefaultExprProcessor @@ -256,20 +256,20 @@ public class TestExpressionEvaluator extends TestCase { ExprNodeEvaluatorFactory .get(TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("concat", getListIndexNode( - new ExprNodeColumnDesc(col1Type, "col1", "", false), + new ExprNodeColumnDesc("", col1Type, "col1", "", false), constant1), getListIndexNode(new ExprNodeColumnDesc( - colaType, "cola", "", false), constant1))), r, "1b"); + "", colaType, "cola", "", false), constant1))), r, "1b"); measureSpeed("concat(concat(col1[1], cola[1]), col1[2])", basetimes * 10, ExprNodeEvaluatorFactory .get(TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("concat", TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("concat", getListIndexNode( - new ExprNodeColumnDesc(col1Type, "col1", "", + new ExprNodeColumnDesc("", col1Type, "col1", "", false), constant1), getListIndexNode( - new ExprNodeColumnDesc(colaType, "cola", "", + new ExprNodeColumnDesc("", colaType, "cola", "", false), constant1)), getListIndexNode( - new ExprNodeColumnDesc(col1Type, "col1", "", false), + new ExprNodeColumnDesc("", col1Type, "col1", "", false), constant2))), r, "1b2"); measureSpeed( "concat(concat(concat(col1[1], cola[1]), col1[2]), cola[2])", @@ -281,13 +281,13 @@ public class TestExpressionEvaluator extends TestCase { TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("concat", getListIndexNode(new ExprNodeColumnDesc( - col1Type, "col1", "", false), + "", col1Type, "col1", "", false), constant1), getListIndexNode( - new ExprNodeColumnDesc(colaType, + new ExprNodeColumnDesc("", colaType, "cola", "", false), constant1)), - getListIndexNode(new ExprNodeColumnDesc(col1Type, + getListIndexNode(new ExprNodeColumnDesc("", col1Type, "col1", "", false), constant2)), - getListIndexNode(new ExprNodeColumnDesc(colaType, "cola", + getListIndexNode(new ExprNodeColumnDesc("", colaType, "cola", "", false), constant2))), r, "1b2c"); } catch (Throwable e) { diff --git ql/src/test/org/apache/hadoop/hive/ql/exec/TestPlan.java ql/src/test/org/apache/hadoop/hive/ql/exec/TestPlan.java index 2df2c71..4b6c688 100644 --- ql/src/test/org/apache/hadoop/hive/ql/exec/TestPlan.java +++ ql/src/test/org/apache/hadoop/hive/ql/exec/TestPlan.java @@ -49,9 +49,9 @@ public class TestPlan extends TestCase { try { // initialize a complete map reduce configuration ExprNodeDesc expr1 = new ExprNodeColumnDesc( - TypeInfoFactory.stringTypeInfo, F1, "", false); + "", TypeInfoFactory.stringTypeInfo, F1, "", false); ExprNodeDesc expr2 = new ExprNodeColumnDesc( - TypeInfoFactory.stringTypeInfo, F2, "", false); + "", TypeInfoFactory.stringTypeInfo, F2, "", false); ExprNodeDesc filterExpr = TypeCheckProcFactory.DefaultExprProcessor .getFuncExprNodeDesc("==", expr1, expr2); diff --git ql/src/test/queries/clientpositive/qualified_column.q ql/src/test/queries/clientpositive/qualified_column.q new file mode 100644 index 0000000..be9d5a0 --- /dev/null +++ ql/src/test/queries/clientpositive/qualified_column.q @@ -0,0 +1,16 @@ + +CREATE DATABASE db1; +CREATE TABLE db1.t(key INT, value STRING); + +FROM src +INSERT OVERWRITE TABLE db1.t SELECT src.key, src.value; + +EXPLAIN +SELECT * FROM db1.t WHERE db1.t.key > 100 ORDER BY key ASC, value ASC; + +SELECT * FROM db1.t WHERE db1.t.key > 100 ORDER BY key ASC, value ASC; + +EXPLAIN +SELECT db1.t.key, count(*) FROM db1.t WHERE db1.t.key > 100 GROUP BY db1.t.key ORDER BY key ASC; + +SELECT db1.t.key, count(*) FROM db1.t WHERE db1.t.key > 100 GROUP BY db1.t.key ORDER BY key ASC; diff --git ql/src/test/results/clientpositive/qualified_column.q.out ql/src/test/results/clientpositive/qualified_column.q.out new file mode 100644 index 0000000..f3185b9 --- /dev/null +++ ql/src/test/results/clientpositive/qualified_column.q.out @@ -0,0 +1,872 @@ +PREHOOK: query: CREATE DATABASE db1 +PREHOOK: type: CREATEDATABASE +POSTHOOK: query: CREATE DATABASE db1 +POSTHOOK: type: CREATEDATABASE +PREHOOK: query: CREATE TABLE db1.t(key INT, value STRING) +PREHOOK: type: CREATETABLE +POSTHOOK: query: CREATE TABLE db1.t(key INT, value STRING) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: db1@t +PREHOOK: query: FROM src +INSERT OVERWRITE TABLE db1.t SELECT src.key, src.value +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: db1@t +POSTHOOK: query: FROM src +INSERT OVERWRITE TABLE db1.t SELECT src.key, src.value +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: db1@t +POSTHOOK: Lineage: t.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: t.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: EXPLAIN +SELECT * FROM db1.t WHERE db1.t.key > 100 ORDER BY key ASC, value ASC +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT * FROM db1.t WHERE db1.t.key > 100 ORDER BY key ASC, value ASC +POSTHOOK: type: QUERY +POSTHOOK: Lineage: t.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: t.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME db1 t))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR TOK_ALLCOLREF)) (TOK_WHERE (> (. (. (TOK_TABLE_OR_COL db1) t) key) 100)) (TOK_ORDERBY (TOK_TABSORTCOLNAMEASC (TOK_TABLE_OR_COL key)) (TOK_TABSORTCOLNAMEASC (TOK_TABLE_OR_COL value))))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + t + TableScan + alias: t + Filter Operator + predicate: + expr: (key > 100) + type: boolean + Select Operator + expressions: + expr: key + type: int + expr: value + type: string + outputColumnNames: _col0, _col1 + Reduce Output Operator + key expressions: + expr: _col0 + type: int + expr: _col1 + type: string + sort order: ++ + tag: -1 + value expressions: + expr: _col0 + type: int + expr: _col1 + type: string + Reduce Operator Tree: + Extract + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT * FROM db1.t WHERE db1.t.key > 100 ORDER BY key ASC, value ASC +PREHOOK: type: QUERY +PREHOOK: Input: db1@t +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM db1.t WHERE db1.t.key > 100 ORDER BY key ASC, value ASC +POSTHOOK: type: QUERY +POSTHOOK: Input: db1@t +#### A masked pattern was here #### +POSTHOOK: Lineage: t.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: t.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +103 val_103 +103 val_103 +104 val_104 +104 val_104 +105 val_105 +111 val_111 +113 val_113 +113 val_113 +114 val_114 +116 val_116 +118 val_118 +118 val_118 +119 val_119 +119 val_119 +119 val_119 +120 val_120 +120 val_120 +125 val_125 +125 val_125 +126 val_126 +128 val_128 +128 val_128 +128 val_128 +129 val_129 +129 val_129 +131 val_131 +133 val_133 +134 val_134 +134 val_134 +136 val_136 +137 val_137 +137 val_137 +138 val_138 +138 val_138 +138 val_138 +138 val_138 +143 val_143 +145 val_145 +146 val_146 +146 val_146 +149 val_149 +149 val_149 +150 val_150 +152 val_152 +152 val_152 +153 val_153 +155 val_155 +156 val_156 +157 val_157 +158 val_158 +160 val_160 +162 val_162 +163 val_163 +164 val_164 +164 val_164 +165 val_165 +165 val_165 +166 val_166 +167 val_167 +167 val_167 +167 val_167 +168 val_168 +169 val_169 +169 val_169 +169 val_169 +169 val_169 +170 val_170 +172 val_172 +172 val_172 +174 val_174 +174 val_174 +175 val_175 +175 val_175 +176 val_176 +176 val_176 +177 val_177 +178 val_178 +179 val_179 +179 val_179 +180 val_180 +181 val_181 +183 val_183 +186 val_186 +187 val_187 +187 val_187 +187 val_187 +189 val_189 +190 val_190 +191 val_191 +191 val_191 +192 val_192 +193 val_193 +193 val_193 +193 val_193 +194 val_194 +195 val_195 +195 val_195 +196 val_196 +197 val_197 +197 val_197 +199 val_199 +199 val_199 +199 val_199 +200 val_200 +200 val_200 +201 val_201 +202 val_202 +203 val_203 +203 val_203 +205 val_205 +205 val_205 +207 val_207 +207 val_207 +208 val_208 +208 val_208 +208 val_208 +209 val_209 +209 val_209 +213 val_213 +213 val_213 +214 val_214 +216 val_216 +216 val_216 +217 val_217 +217 val_217 +218 val_218 +219 val_219 +219 val_219 +221 val_221 +221 val_221 +222 val_222 +223 val_223 +223 val_223 +224 val_224 +224 val_224 +226 val_226 +228 val_228 +229 val_229 +229 val_229 +230 val_230 +230 val_230 +230 val_230 +230 val_230 +230 val_230 +233 val_233 +233 val_233 +235 val_235 +237 val_237 +237 val_237 +238 val_238 +238 val_238 +239 val_239 +239 val_239 +241 val_241 +242 val_242 +242 val_242 +244 val_244 +247 val_247 +248 val_248 +249 val_249 +252 val_252 +255 val_255 +255 val_255 +256 val_256 +256 val_256 +257 val_257 +258 val_258 +260 val_260 +262 val_262 +263 val_263 +265 val_265 +265 val_265 +266 val_266 +272 val_272 +272 val_272 +273 val_273 +273 val_273 +273 val_273 +274 val_274 +275 val_275 +277 val_277 +277 val_277 +277 val_277 +277 val_277 +278 val_278 +278 val_278 +280 val_280 +280 val_280 +281 val_281 +281 val_281 +282 val_282 +282 val_282 +283 val_283 +284 val_284 +285 val_285 +286 val_286 +287 val_287 +288 val_288 +288 val_288 +289 val_289 +291 val_291 +292 val_292 +296 val_296 +298 val_298 +298 val_298 +298 val_298 +302 val_302 +305 val_305 +306 val_306 +307 val_307 +307 val_307 +308 val_308 +309 val_309 +309 val_309 +310 val_310 +311 val_311 +311 val_311 +311 val_311 +315 val_315 +316 val_316 +316 val_316 +316 val_316 +317 val_317 +317 val_317 +318 val_318 +318 val_318 +318 val_318 +321 val_321 +321 val_321 +322 val_322 +322 val_322 +323 val_323 +325 val_325 +325 val_325 +327 val_327 +327 val_327 +327 val_327 +331 val_331 +331 val_331 +332 val_332 +333 val_333 +333 val_333 +335 val_335 +336 val_336 +338 val_338 +339 val_339 +341 val_341 +342 val_342 +342 val_342 +344 val_344 +344 val_344 +345 val_345 +348 val_348 +348 val_348 +348 val_348 +348 val_348 +348 val_348 +351 val_351 +353 val_353 +353 val_353 +356 val_356 +360 val_360 +362 val_362 +364 val_364 +365 val_365 +366 val_366 +367 val_367 +367 val_367 +368 val_368 +369 val_369 +369 val_369 +369 val_369 +373 val_373 +374 val_374 +375 val_375 +377 val_377 +378 val_378 +379 val_379 +382 val_382 +382 val_382 +384 val_384 +384 val_384 +384 val_384 +386 val_386 +389 val_389 +392 val_392 +393 val_393 +394 val_394 +395 val_395 +395 val_395 +396 val_396 +396 val_396 +396 val_396 +397 val_397 +397 val_397 +399 val_399 +399 val_399 +400 val_400 +401 val_401 +401 val_401 +401 val_401 +401 val_401 +401 val_401 +402 val_402 +403 val_403 +403 val_403 +403 val_403 +404 val_404 +404 val_404 +406 val_406 +406 val_406 +406 val_406 +406 val_406 +407 val_407 +409 val_409 +409 val_409 +409 val_409 +411 val_411 +413 val_413 +413 val_413 +414 val_414 +414 val_414 +417 val_417 +417 val_417 +417 val_417 +418 val_418 +419 val_419 +421 val_421 +424 val_424 +424 val_424 +427 val_427 +429 val_429 +429 val_429 +430 val_430 +430 val_430 +430 val_430 +431 val_431 +431 val_431 +431 val_431 +432 val_432 +435 val_435 +436 val_436 +437 val_437 +438 val_438 +438 val_438 +438 val_438 +439 val_439 +439 val_439 +443 val_443 +444 val_444 +446 val_446 +448 val_448 +449 val_449 +452 val_452 +453 val_453 +454 val_454 +454 val_454 +454 val_454 +455 val_455 +457 val_457 +458 val_458 +458 val_458 +459 val_459 +459 val_459 +460 val_460 +462 val_462 +462 val_462 +463 val_463 +463 val_463 +466 val_466 +466 val_466 +466 val_466 +467 val_467 +468 val_468 +468 val_468 +468 val_468 +468 val_468 +469 val_469 +469 val_469 +469 val_469 +469 val_469 +469 val_469 +470 val_470 +472 val_472 +475 val_475 +477 val_477 +478 val_478 +478 val_478 +479 val_479 +480 val_480 +480 val_480 +480 val_480 +481 val_481 +482 val_482 +483 val_483 +484 val_484 +485 val_485 +487 val_487 +489 val_489 +489 val_489 +489 val_489 +489 val_489 +490 val_490 +491 val_491 +492 val_492 +492 val_492 +493 val_493 +494 val_494 +495 val_495 +496 val_496 +497 val_497 +498 val_498 +498 val_498 +498 val_498 +PREHOOK: query: EXPLAIN +SELECT db1.t.key, count(*) FROM db1.t WHERE db1.t.key > 100 GROUP BY db1.t.key ORDER BY key ASC +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN +SELECT db1.t.key, count(*) FROM db1.t WHERE db1.t.key > 100 GROUP BY db1.t.key ORDER BY key ASC +POSTHOOK: type: QUERY +POSTHOOK: Lineage: t.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: t.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +ABSTRACT SYNTAX TREE: + (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME db1 t))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (. (. (TOK_TABLE_OR_COL db1) t) key)) (TOK_SELEXPR (TOK_FUNCTIONSTAR count))) (TOK_WHERE (> (. (. (TOK_TABLE_OR_COL db1) t) key) 100)) (TOK_GROUPBY (. (. (TOK_TABLE_OR_COL db1) t) key)) (TOK_ORDERBY (TOK_TABSORTCOLNAMEASC (TOK_TABLE_OR_COL key))))) + +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1 + Stage-0 is a root stage + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Alias -> Map Operator Tree: + t + TableScan + alias: t + Filter Operator + predicate: + expr: (key > 100) + type: boolean + Select Operator + expressions: + expr: key + type: int + outputColumnNames: key + Group By Operator + aggregations: + expr: count() + bucketGroup: false + keys: + expr: key + type: int + mode: hash + outputColumnNames: _col0, _col1 + Reduce Output Operator + key expressions: + expr: _col0 + type: int + sort order: + + Map-reduce partition columns: + expr: _col0 + type: int + tag: -1 + value expressions: + expr: _col1 + type: bigint + Reduce Operator Tree: + Group By Operator + aggregations: + expr: count(VALUE._col0) + bucketGroup: false + keys: + expr: KEY._col0 + type: int + mode: mergepartial + outputColumnNames: _col0, _col1 + Select Operator + expressions: + expr: _col0 + type: int + expr: _col1 + type: bigint + outputColumnNames: _col0, _col1 + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + + Stage: Stage-2 + Map Reduce + Alias -> Map Operator Tree: +#### A masked pattern was here #### + Reduce Output Operator + key expressions: + expr: _col0 + type: int + sort order: + + tag: -1 + value expressions: + expr: _col0 + type: int + expr: _col1 + type: bigint + Reduce Operator Tree: + Extract + File Output Operator + compressed: false + GlobalTableId: 0 + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + + Stage: Stage-0 + Fetch Operator + limit: -1 + + +PREHOOK: query: SELECT db1.t.key, count(*) FROM db1.t WHERE db1.t.key > 100 GROUP BY db1.t.key ORDER BY key ASC +PREHOOK: type: QUERY +PREHOOK: Input: db1@t +#### A masked pattern was here #### +POSTHOOK: query: SELECT db1.t.key, count(*) FROM db1.t WHERE db1.t.key > 100 GROUP BY db1.t.key ORDER BY key ASC +POSTHOOK: type: QUERY +POSTHOOK: Input: db1@t +#### A masked pattern was here #### +POSTHOOK: Lineage: t.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: t.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +103 2 +104 2 +105 1 +111 1 +113 2 +114 1 +116 1 +118 2 +119 3 +120 2 +125 2 +126 1 +128 3 +129 2 +131 1 +133 1 +134 2 +136 1 +137 2 +138 4 +143 1 +145 1 +146 2 +149 2 +150 1 +152 2 +153 1 +155 1 +156 1 +157 1 +158 1 +160 1 +162 1 +163 1 +164 2 +165 2 +166 1 +167 3 +168 1 +169 4 +170 1 +172 2 +174 2 +175 2 +176 2 +177 1 +178 1 +179 2 +180 1 +181 1 +183 1 +186 1 +187 3 +189 1 +190 1 +191 2 +192 1 +193 3 +194 1 +195 2 +196 1 +197 2 +199 3 +200 2 +201 1 +202 1 +203 2 +205 2 +207 2 +208 3 +209 2 +213 2 +214 1 +216 2 +217 2 +218 1 +219 2 +221 2 +222 1 +223 2 +224 2 +226 1 +228 1 +229 2 +230 5 +233 2 +235 1 +237 2 +238 2 +239 2 +241 1 +242 2 +244 1 +247 1 +248 1 +249 1 +252 1 +255 2 +256 2 +257 1 +258 1 +260 1 +262 1 +263 1 +265 2 +266 1 +272 2 +273 3 +274 1 +275 1 +277 4 +278 2 +280 2 +281 2 +282 2 +283 1 +284 1 +285 1 +286 1 +287 1 +288 2 +289 1 +291 1 +292 1 +296 1 +298 3 +302 1 +305 1 +306 1 +307 2 +308 1 +309 2 +310 1 +311 3 +315 1 +316 3 +317 2 +318 3 +321 2 +322 2 +323 1 +325 2 +327 3 +331 2 +332 1 +333 2 +335 1 +336 1 +338 1 +339 1 +341 1 +342 2 +344 2 +345 1 +348 5 +351 1 +353 2 +356 1 +360 1 +362 1 +364 1 +365 1 +366 1 +367 2 +368 1 +369 3 +373 1 +374 1 +375 1 +377 1 +378 1 +379 1 +382 2 +384 3 +386 1 +389 1 +392 1 +393 1 +394 1 +395 2 +396 3 +397 2 +399 2 +400 1 +401 5 +402 1 +403 3 +404 2 +406 4 +407 1 +409 3 +411 1 +413 2 +414 2 +417 3 +418 1 +419 1 +421 1 +424 2 +427 1 +429 2 +430 3 +431 3 +432 1 +435 1 +436 1 +437 1 +438 3 +439 2 +443 1 +444 1 +446 1 +448 1 +449 1 +452 1 +453 1 +454 3 +455 1 +457 1 +458 2 +459 2 +460 1 +462 2 +463 2 +466 3 +467 1 +468 4 +469 5 +470 1 +472 1 +475 1 +477 1 +478 2 +479 1 +480 3 +481 1 +482 1 +483 1 +484 1 +485 1 +487 1 +489 4 +490 1 +491 1 +492 2 +493 1 +494 1 +495 1 +496 1 +497 1 +498 3 diff --git ql/src/test/results/compiler/plan/case_sensitivity.q.xml ql/src/test/results/compiler/plan/case_sensitivity.q.xml index afce19c..78301aa 100644 --- ql/src/test/results/compiler/plan/case_sensitivity.q.xml +++ ql/src/test/results/compiler/plan/case_sensitivity.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -777,6 +783,9 @@ + + default + lintstring @@ -861,6 +870,9 @@ + + default + lint @@ -954,6 +966,9 @@ + + default + _col0 @@ -964,6 +979,9 @@ + + default + _col1 @@ -992,6 +1010,9 @@ + + default + lint @@ -1081,6 +1102,9 @@ + + default + aint @@ -1094,6 +1118,9 @@ + + default + astring @@ -1107,6 +1134,9 @@ + + default + lint @@ -1120,6 +1150,9 @@ + + default + lstring @@ -1137,6 +1170,9 @@ + + default + lintstring @@ -1150,6 +1186,9 @@ + + default + mstringstring @@ -1170,6 +1209,9 @@ + + default + true @@ -1190,6 +1232,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/cast1.q.xml ql/src/test/results/compiler/plan/cast1.q.xml index 550f1a3..511d35b 100644 --- ql/src/test/results/compiler/plan/cast1.q.xml +++ ql/src/test/results/compiler/plan/cast1.q.xml @@ -278,6 +278,9 @@ + + default + _col0 @@ -295,6 +298,9 @@ + + default + _col1 @@ -312,6 +318,9 @@ + + default + _col2 @@ -325,6 +334,9 @@ + + default + _col3 @@ -338,6 +350,9 @@ + + default + _col4 @@ -351,6 +366,9 @@ + + default + _col5 @@ -368,6 +386,9 @@ + + default + _col6 @@ -811,6 +832,9 @@ + + default + _c0 @@ -824,6 +848,9 @@ + + default + _c1 @@ -837,6 +864,9 @@ + + default + _c2 @@ -850,6 +880,9 @@ + + default + _c3 @@ -863,6 +896,9 @@ + + default + _c4 @@ -876,6 +912,9 @@ + + default + _c5 @@ -889,6 +928,9 @@ + + default + _c6 @@ -916,6 +958,9 @@ + + default + key @@ -985,6 +1030,9 @@ + + default + key @@ -998,6 +1046,9 @@ + + default + value @@ -1011,6 +1062,9 @@ + + default + true @@ -1031,6 +1085,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/groupby1.q.xml ql/src/test/results/compiler/plan/groupby1.q.xml index 4382252..3c623d6 100755 --- ql/src/test/results/compiler/plan/groupby1.q.xml +++ ql/src/test/results/compiler/plan/groupby1.q.xml @@ -336,6 +336,9 @@ KEY._col0 + + default + _col0 @@ -424,6 +427,9 @@ + + default + _col1 @@ -504,6 +510,9 @@ + + default + KEY._col0 @@ -514,6 +523,9 @@ + + default + VALUE._col0 @@ -535,6 +547,9 @@ _col0 + + default + key @@ -573,6 +588,9 @@ + + default + value @@ -686,6 +704,9 @@ + + default + _col0 @@ -699,6 +720,9 @@ + + default + _col1 @@ -723,6 +747,9 @@ BLOCK__OFFSET__INSIDE__FILE + + default + BLOCK__OFFSET__INSIDE__FILE @@ -744,6 +771,9 @@ INPUT__FILE__NAME + + default + INPUT__FILE__NAME @@ -761,6 +791,9 @@ value + + default + value @@ -775,6 +808,9 @@ key + + default + key @@ -794,6 +830,9 @@ + + default + key @@ -807,6 +846,9 @@ + + default + value @@ -867,6 +909,9 @@ + + default + key @@ -880,6 +925,9 @@ + + default + value @@ -950,6 +998,9 @@ + + default + true @@ -966,6 +1017,9 @@ + + default + true @@ -1258,6 +1312,9 @@ + + default + key @@ -1271,6 +1328,9 @@ + + default + value @@ -1295,6 +1355,9 @@ _col1 + + default + _col1 @@ -1309,6 +1372,9 @@ _col0 + + default + _col0 @@ -1378,6 +1444,9 @@ + + default + _col0 @@ -1388,6 +1457,9 @@ + + default + _col1 @@ -1409,6 +1481,9 @@ _col0 + + default + KEY._col0 @@ -1440,6 +1515,9 @@ + + default + VALUE._col0 @@ -1516,6 +1594,9 @@ + + default + _col0 @@ -1529,6 +1610,9 @@ + + default + _col1 diff --git ql/src/test/results/compiler/plan/groupby2.q.xml ql/src/test/results/compiler/plan/groupby2.q.xml index eef669c..c75d656 100755 --- ql/src/test/results/compiler/plan/groupby2.q.xml +++ ql/src/test/results/compiler/plan/groupby2.q.xml @@ -202,6 +202,9 @@ KEY._col0 + + default + _col0 @@ -239,6 +242,9 @@ + + default + _col1 @@ -321,6 +327,9 @@ + + default + _col2 @@ -338,6 +347,9 @@ + + default + _col3 @@ -418,6 +430,9 @@ + + default + KEY._col0 @@ -428,6 +443,9 @@ + + default + KEY._col1:0._col0 @@ -438,6 +456,9 @@ + + default + VALUE._col0 @@ -448,6 +469,9 @@ + + default + VALUE._col1 @@ -473,6 +497,9 @@ + + default + value @@ -525,6 +552,9 @@ + + default + key @@ -606,6 +636,9 @@ + + default + value @@ -670,6 +703,9 @@ + + default + value @@ -788,6 +824,9 @@ + + default + _col0 @@ -801,6 +840,9 @@ + + default + _col1 @@ -814,6 +856,9 @@ + + default + _col2 @@ -827,6 +872,9 @@ + + default + _col3 @@ -851,6 +899,9 @@ BLOCK__OFFSET__INSIDE__FILE + + default + BLOCK__OFFSET__INSIDE__FILE @@ -868,6 +919,9 @@ INPUT__FILE__NAME + + default + INPUT__FILE__NAME @@ -885,6 +939,9 @@ value + + default + value @@ -899,6 +956,9 @@ key + + default + key @@ -918,6 +978,9 @@ + + default + key @@ -931,6 +994,9 @@ + + default + value @@ -991,6 +1057,9 @@ + + default + key @@ -1004,6 +1073,9 @@ + + default + value @@ -1074,6 +1146,9 @@ + + default + true @@ -1090,6 +1165,9 @@ + + default + true @@ -1403,6 +1481,9 @@ + + default + _col0 @@ -1416,6 +1497,9 @@ + + default + _col1 @@ -1429,6 +1513,9 @@ + + default + _col2 @@ -1457,6 +1544,9 @@ + + default + _col0 @@ -1470,6 +1560,9 @@ + + default + _col2 @@ -1504,6 +1597,9 @@ _col1 + + default + _col1 @@ -1518,6 +1614,9 @@ _col0 + + default + _col0 @@ -1593,6 +1692,9 @@ + + default + _c0 @@ -1606,6 +1708,9 @@ + + default + _c1 @@ -1619,6 +1724,9 @@ + + default + _c2 @@ -1643,6 +1751,9 @@ _col0 + + default + KEY._col0 @@ -1677,6 +1788,9 @@ + + default + KEY._col1:0._col0 @@ -1706,6 +1820,9 @@ + + default + VALUE._col1 @@ -1785,6 +1902,9 @@ + + default + _col0 @@ -1798,6 +1918,9 @@ + + default + _col1 @@ -1811,6 +1934,9 @@ + + default + _col2 diff --git ql/src/test/results/compiler/plan/groupby3.q.xml ql/src/test/results/compiler/plan/groupby3.q.xml index 9743480..9acec5e 100644 --- ql/src/test/results/compiler/plan/groupby3.q.xml +++ ql/src/test/results/compiler/plan/groupby3.q.xml @@ -217,6 +217,9 @@ + + + _col0 @@ -302,6 +305,9 @@ + + + _col1 @@ -319,6 +325,9 @@ + + + _col2 @@ -357,6 +366,9 @@ + + + _col3 @@ -370,6 +382,9 @@ + + + _col4 @@ -383,6 +398,9 @@ + + + _col5 @@ -459,6 +477,9 @@ + + + KEY._col0:0._col0 @@ -469,6 +490,9 @@ + + + VALUE._col0 @@ -479,6 +503,9 @@ + + + VALUE._col1 @@ -489,6 +516,9 @@ + + + VALUE._col2 @@ -499,6 +529,9 @@ + + + VALUE._col3 @@ -509,6 +542,9 @@ + + + VALUE._col4 @@ -534,6 +570,9 @@ + + default + value @@ -606,6 +645,9 @@ + + default + value @@ -670,6 +712,9 @@ + + default + value @@ -737,6 +782,9 @@ + + default + value @@ -801,6 +849,9 @@ + + default + value @@ -865,6 +916,9 @@ + + default + value @@ -986,6 +1040,9 @@ + + + _col0 @@ -999,6 +1056,9 @@ + + + _col1 @@ -1012,6 +1072,9 @@ + + + _col2 @@ -1025,6 +1088,9 @@ + + + _col3 @@ -1038,6 +1104,9 @@ + + + _col4 @@ -1051,6 +1120,9 @@ + + + _col5 @@ -1075,6 +1147,9 @@ BLOCK__OFFSET__INSIDE__FILE + + default + BLOCK__OFFSET__INSIDE__FILE @@ -1092,6 +1167,9 @@ INPUT__FILE__NAME + + default + INPUT__FILE__NAME @@ -1109,6 +1187,9 @@ value + + default + value @@ -1123,6 +1204,9 @@ key + + default + key @@ -1142,6 +1226,9 @@ + + default + value @@ -1199,6 +1286,9 @@ + + default + value @@ -1260,6 +1350,9 @@ + + default + key @@ -1276,6 +1369,9 @@ + + default + true @@ -1292,6 +1388,9 @@ + + default + true @@ -1605,6 +1704,9 @@ + + + _col0 @@ -1618,6 +1720,9 @@ + + + _col1 @@ -1631,6 +1736,9 @@ + + + _col2 @@ -1644,6 +1752,9 @@ + + + _col3 @@ -1657,6 +1768,9 @@ + + + _col4 @@ -1681,6 +1795,9 @@ _col4 + + + _col4 @@ -1695,6 +1812,9 @@ _col3 + + + _col3 @@ -1709,6 +1829,9 @@ _col2 + + + _col2 @@ -1723,6 +1846,9 @@ _col1 + + + _col1 @@ -1737,6 +1863,9 @@ _col0 + + + _col0 @@ -1824,6 +1953,9 @@ + + + _c0 @@ -1837,6 +1969,9 @@ + + + _c1 @@ -1850,6 +1985,9 @@ + + + _c2 @@ -1863,6 +2001,9 @@ + + + _c3 @@ -1876,6 +2017,9 @@ + + + _c4 @@ -1919,6 +2063,9 @@ + + + VALUE._col0 @@ -1946,6 +2093,9 @@ + + + VALUE._col1 @@ -1978,6 +2128,9 @@ + + + KEY._col0:0._col0 @@ -2005,6 +2158,9 @@ + + + VALUE._col3 @@ -2032,6 +2188,9 @@ + + + VALUE._col4 @@ -2113,6 +2272,9 @@ + + + _col0 @@ -2126,6 +2288,9 @@ + + + _col1 @@ -2139,6 +2304,9 @@ + + + _col2 @@ -2152,6 +2320,9 @@ + + + _col3 @@ -2165,6 +2336,9 @@ + + + _col4 diff --git ql/src/test/results/compiler/plan/groupby4.q.xml ql/src/test/results/compiler/plan/groupby4.q.xml index 617a11a..7d697b5 100644 --- ql/src/test/results/compiler/plan/groupby4.q.xml +++ ql/src/test/results/compiler/plan/groupby4.q.xml @@ -202,6 +202,9 @@ KEY._col0 + + default + _col0 @@ -348,6 +351,9 @@ + + default + KEY._col0 @@ -373,6 +379,9 @@ + + default + key @@ -494,6 +503,9 @@ + + default + _col0 @@ -518,6 +530,9 @@ BLOCK__OFFSET__INSIDE__FILE + + default + BLOCK__OFFSET__INSIDE__FILE @@ -539,6 +554,9 @@ INPUT__FILE__NAME + + default + INPUT__FILE__NAME @@ -556,6 +574,9 @@ value + + default + value @@ -570,6 +591,9 @@ key + + default + key @@ -589,6 +613,9 @@ + + default + key @@ -646,6 +673,9 @@ + + default + key @@ -710,6 +740,9 @@ + + default + value @@ -723,6 +756,9 @@ + + default + true @@ -739,6 +775,9 @@ + + default + true @@ -1052,6 +1091,9 @@ + + default + _col0 @@ -1076,6 +1118,9 @@ _col0 + + default + _col0 @@ -1139,6 +1184,9 @@ + + default + _c0 @@ -1163,6 +1211,9 @@ _col0 + + default + KEY._col0 @@ -1237,6 +1288,9 @@ + + default + _col0 diff --git ql/src/test/results/compiler/plan/groupby5.q.xml ql/src/test/results/compiler/plan/groupby5.q.xml index 8e07860..d94576b 100644 --- ql/src/test/results/compiler/plan/groupby5.q.xml +++ ql/src/test/results/compiler/plan/groupby5.q.xml @@ -202,6 +202,9 @@ KEY._col0 + + default + _col0 @@ -290,6 +293,9 @@ + + default + _col1 @@ -370,6 +376,9 @@ + + default + KEY._col0 @@ -380,6 +389,9 @@ + + default + VALUE._col0 @@ -401,6 +413,9 @@ _col0 + + default + key @@ -439,6 +454,9 @@ + + default + value @@ -552,6 +570,9 @@ + + default + _col0 @@ -565,6 +586,9 @@ + + default + _col1 @@ -589,6 +613,9 @@ BLOCK__OFFSET__INSIDE__FILE + + default + BLOCK__OFFSET__INSIDE__FILE @@ -610,6 +637,9 @@ INPUT__FILE__NAME + + default + INPUT__FILE__NAME @@ -627,6 +657,9 @@ value + + default + value @@ -641,6 +674,9 @@ key + + default + key @@ -660,6 +696,9 @@ + + default + key @@ -673,6 +712,9 @@ + + default + value @@ -733,6 +775,9 @@ + + default + key @@ -746,6 +791,9 @@ + + default + value @@ -816,6 +864,9 @@ + + default + true @@ -832,6 +883,9 @@ + + default + true @@ -1145,6 +1199,9 @@ + + default + _col0 @@ -1158,6 +1215,9 @@ + + default + _col1 @@ -1182,6 +1242,9 @@ _col1 + + default + _col1 @@ -1196,6 +1259,9 @@ _col0 + + default + _col0 @@ -1265,6 +1331,9 @@ + + default + key @@ -1278,6 +1347,9 @@ + + default + _c1 @@ -1302,6 +1374,9 @@ _col0 + + default + KEY._col0 @@ -1333,6 +1408,9 @@ + + default + VALUE._col0 @@ -1409,6 +1487,9 @@ + + default + _col0 @@ -1422,6 +1503,9 @@ + + default + _col1 diff --git ql/src/test/results/compiler/plan/groupby6.q.xml ql/src/test/results/compiler/plan/groupby6.q.xml index 96bb347..eddef07 100644 --- ql/src/test/results/compiler/plan/groupby6.q.xml +++ ql/src/test/results/compiler/plan/groupby6.q.xml @@ -202,6 +202,9 @@ KEY._col0 + + default + _col0 @@ -348,6 +351,9 @@ + + default + KEY._col0 @@ -373,6 +379,9 @@ + + default + value @@ -494,6 +503,9 @@ + + default + _col0 @@ -518,6 +530,9 @@ BLOCK__OFFSET__INSIDE__FILE + + default + BLOCK__OFFSET__INSIDE__FILE @@ -539,6 +554,9 @@ INPUT__FILE__NAME + + default + INPUT__FILE__NAME @@ -556,6 +574,9 @@ value + + default + value @@ -570,6 +591,9 @@ key + + default + key @@ -589,6 +613,9 @@ + + default + value @@ -646,6 +673,9 @@ + + default + value @@ -707,6 +737,9 @@ + + default + key @@ -723,6 +756,9 @@ + + default + true @@ -739,6 +775,9 @@ + + default + true @@ -1052,6 +1091,9 @@ + + default + _col0 @@ -1076,6 +1118,9 @@ _col0 + + default + _col0 @@ -1139,6 +1184,9 @@ + + default + _c0 @@ -1163,6 +1211,9 @@ _col0 + + default + KEY._col0 @@ -1237,6 +1288,9 @@ + + default + _col0 diff --git ql/src/test/results/compiler/plan/input1.q.xml ql/src/test/results/compiler/plan/input1.q.xml index 1395099..3cc3a79 100755 --- ql/src/test/results/compiler/plan/input1.q.xml +++ ql/src/test/results/compiler/plan/input1.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -763,6 +769,9 @@ _col1 + + default + value @@ -777,6 +786,9 @@ _col0 + + default + key @@ -846,6 +858,9 @@ + + default + _col0 @@ -859,6 +874,9 @@ + + default + _col1 @@ -886,6 +904,9 @@ + + default + key @@ -959,6 +980,9 @@ + + default + key @@ -972,6 +996,9 @@ + + default + value @@ -985,6 +1012,9 @@ + + default + true @@ -1005,6 +1035,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input2.q.xml ql/src/test/results/compiler/plan/input2.q.xml index c791a5c..56e220d 100755 --- ql/src/test/results/compiler/plan/input2.q.xml +++ ql/src/test/results/compiler/plan/input2.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -687,6 +693,9 @@ + + default + key @@ -700,6 +709,9 @@ + + default + value @@ -1186,6 +1198,9 @@ + + default + key @@ -1199,6 +1214,9 @@ + + default + value @@ -1766,6 +1784,9 @@ _col1 + + default + value @@ -1780,6 +1801,9 @@ _col0 + + default + key @@ -1852,6 +1876,9 @@ + + default + _col0 @@ -1865,6 +1892,9 @@ + + default + _col1 @@ -1892,6 +1922,9 @@ + + default + key @@ -1965,6 +1998,9 @@ + + default + key @@ -1978,6 +2014,9 @@ + + default + value @@ -2068,6 +2107,9 @@ _col1 + + default + value @@ -2082,6 +2124,9 @@ _col0 + + default + key @@ -2151,6 +2196,9 @@ + + default + _col0 @@ -2164,6 +2212,9 @@ + + default + _col1 @@ -2195,6 +2246,9 @@ + + default + key @@ -2232,6 +2286,9 @@ + + default + key @@ -2408,6 +2465,9 @@ _col0 + + default + key @@ -2477,6 +2537,9 @@ + + default + _col0 @@ -2490,6 +2553,9 @@ + + default + _col1 @@ -2514,6 +2580,9 @@ + + default + key @@ -2639,6 +2708,9 @@ + + default + true @@ -2659,6 +2731,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input20.q.xml ql/src/test/results/compiler/plan/input20.q.xml index cef82e6..98f689d 100644 --- ql/src/test/results/compiler/plan/input20.q.xml +++ ql/src/test/results/compiler/plan/input20.q.xml @@ -202,6 +202,9 @@ _col1 + + + _col1 @@ -217,6 +220,9 @@ _col0 + + + _col0 @@ -236,6 +242,9 @@ + + + _col0 @@ -302,6 +311,9 @@ + + + _col0 @@ -388,6 +400,9 @@ + + + key @@ -401,6 +416,9 @@ + + + value @@ -581,6 +599,9 @@ + + default + key @@ -640,6 +661,9 @@ + + default + key @@ -742,6 +766,9 @@ + + default + _col0 @@ -752,6 +779,9 @@ + + default + _col1 @@ -810,6 +840,9 @@ + + default + key @@ -823,6 +856,9 @@ + + default + value @@ -836,6 +872,9 @@ + + default + true @@ -856,6 +895,9 @@ + + default + true @@ -1173,6 +1215,9 @@ + + + _col0 @@ -1186,6 +1231,9 @@ + + + _col1 @@ -1348,6 +1396,9 @@ + + + key @@ -1361,6 +1412,9 @@ + + + value @@ -1385,6 +1439,9 @@ _col1 + + + _col1 @@ -1399,6 +1456,9 @@ _col0 + + + _col0 @@ -1468,6 +1528,9 @@ + + + _col0 @@ -1478,6 +1541,9 @@ + + + _col1 @@ -1498,6 +1564,9 @@ + + + VALUE @@ -1543,6 +1612,9 @@ + + + _col0 @@ -1556,6 +1628,9 @@ + + + _col1 diff --git ql/src/test/results/compiler/plan/input3.q.xml ql/src/test/results/compiler/plan/input3.q.xml index 53e29ad..6c759d5 100755 --- ql/src/test/results/compiler/plan/input3.q.xml +++ ql/src/test/results/compiler/plan/input3.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -687,6 +693,9 @@ + + default + key @@ -700,6 +709,9 @@ + + default + value @@ -1186,6 +1198,9 @@ + + default + key @@ -1199,6 +1214,9 @@ + + default + value @@ -1623,6 +1641,9 @@ + + default + _col0 @@ -2143,6 +2164,9 @@ _col1 + + default + value @@ -2157,6 +2181,9 @@ _col0 + + default + key @@ -2229,6 +2256,9 @@ + + default + _col0 @@ -2242,6 +2272,9 @@ + + default + _col1 @@ -2269,6 +2302,9 @@ + + default + key @@ -2342,6 +2378,9 @@ + + default + key @@ -2355,6 +2394,9 @@ + + default + value @@ -2445,6 +2487,9 @@ _col1 + + default + value @@ -2459,6 +2504,9 @@ _col0 + + default + key @@ -2528,6 +2576,9 @@ + + default + _col0 @@ -2541,6 +2592,9 @@ + + default + _col1 @@ -2572,6 +2626,9 @@ + + default + key @@ -2609,6 +2666,9 @@ + + default + key @@ -2785,6 +2845,9 @@ _col0 + + default + key @@ -2854,6 +2917,9 @@ + + default + _col0 @@ -2867,6 +2933,9 @@ + + default + _col1 @@ -2895,6 +2964,9 @@ + + default + key @@ -2932,6 +3004,9 @@ + + default + key @@ -3084,6 +3159,9 @@ _col0 + + default + value @@ -3147,6 +3225,9 @@ + + default + value @@ -3177,6 +3258,9 @@ + + default + key @@ -3305,6 +3389,9 @@ + + default + true @@ -3325,6 +3412,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input4.q.xml ql/src/test/results/compiler/plan/input4.q.xml index 15f12d5..8a1f345 100755 --- ql/src/test/results/compiler/plan/input4.q.xml +++ ql/src/test/results/compiler/plan/input4.q.xml @@ -340,6 +340,9 @@ _col1 + + + _col1 @@ -355,6 +358,9 @@ _col0 + + + _col0 @@ -374,6 +380,9 @@ + + + _col0 @@ -440,6 +449,9 @@ + + + _col0 @@ -526,6 +538,9 @@ + + + tkey @@ -539,6 +554,9 @@ + + + tvalue @@ -787,6 +805,9 @@ _col1 + + default + value @@ -801,6 +822,9 @@ _col0 + + default + key @@ -870,6 +894,9 @@ + + default + _col0 @@ -880,6 +907,9 @@ + + default + _col1 @@ -941,6 +971,9 @@ + + default + key @@ -954,6 +987,9 @@ + + default + value @@ -967,6 +1003,9 @@ + + default + true @@ -987,6 +1026,9 @@ + + default + true @@ -1279,6 +1321,9 @@ + + + key @@ -1292,6 +1337,9 @@ + + + value @@ -1316,6 +1364,9 @@ _col1 + + + _col1 @@ -1330,6 +1381,9 @@ _col0 + + + _col0 @@ -1399,6 +1453,9 @@ + + + _col0 @@ -1412,6 +1469,9 @@ + + + _col1 @@ -1435,6 +1495,9 @@ + + + VALUE @@ -1480,6 +1543,9 @@ + + + _col0 @@ -1493,6 +1559,9 @@ + + + _col1 diff --git ql/src/test/results/compiler/plan/input5.q.xml ql/src/test/results/compiler/plan/input5.q.xml index 79e9681..9d7957c 100644 --- ql/src/test/results/compiler/plan/input5.q.xml +++ ql/src/test/results/compiler/plan/input5.q.xml @@ -344,6 +344,9 @@ _col1 + + + _col1 @@ -359,6 +362,9 @@ _col0 + + + _col0 @@ -378,6 +384,9 @@ + + + _col0 @@ -444,6 +453,9 @@ + + + _col0 @@ -530,6 +542,9 @@ + + + tkey @@ -543,6 +558,9 @@ + + + tvalue @@ -715,6 +733,9 @@ _col1 + + default + lintstring @@ -764,6 +785,9 @@ _col0 + + default + lint @@ -837,6 +861,9 @@ + + default + _col0 @@ -847,6 +874,9 @@ + + default + _col1 @@ -908,6 +938,9 @@ + + default + aint @@ -921,6 +954,9 @@ + + default + astring @@ -934,6 +970,9 @@ + + default + lint @@ -947,6 +986,9 @@ + + default + lstring @@ -964,6 +1006,9 @@ + + default + lintstring @@ -977,6 +1022,9 @@ + + default + mstringstring @@ -997,6 +1045,9 @@ + + default + true @@ -1017,6 +1068,9 @@ + + default + true @@ -1317,6 +1371,9 @@ + + + key @@ -1330,6 +1387,9 @@ + + + value @@ -1354,6 +1414,9 @@ _col1 + + + _col1 @@ -1368,6 +1431,9 @@ _col0 + + + _col0 @@ -1437,6 +1503,9 @@ + + + _col0 @@ -1450,6 +1519,9 @@ + + + _col1 @@ -1473,6 +1545,9 @@ + + + VALUE @@ -1518,6 +1593,9 @@ + + + _col0 @@ -1531,6 +1609,9 @@ + + + _col1 diff --git ql/src/test/results/compiler/plan/input6.q.xml ql/src/test/results/compiler/plan/input6.q.xml index fa7af70..eb65a46 100644 --- ql/src/test/results/compiler/plan/input6.q.xml +++ ql/src/test/results/compiler/plan/input6.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -763,6 +769,9 @@ _col1 + + default + value @@ -777,6 +786,9 @@ _col0 + + default + key @@ -846,6 +858,9 @@ + + default + _col0 @@ -859,6 +874,9 @@ + + default + _col1 @@ -886,6 +904,9 @@ + + default + key @@ -945,6 +966,9 @@ + + default + key @@ -958,6 +982,9 @@ + + default + value @@ -971,6 +998,9 @@ + + default + true @@ -991,6 +1021,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input7.q.xml ql/src/test/results/compiler/plan/input7.q.xml index e7de225..94eb7d6 100644 --- ql/src/test/results/compiler/plan/input7.q.xml +++ ql/src/test/results/compiler/plan/input7.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -759,6 +765,9 @@ _col1 + + default + key @@ -836,6 +845,9 @@ + + default + _col0 @@ -850,6 +862,9 @@ + + default + _col1 @@ -911,6 +926,9 @@ + + default + key @@ -924,6 +942,9 @@ + + default + value @@ -937,6 +958,9 @@ + + default + true @@ -957,6 +981,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input8.q.xml ql/src/test/results/compiler/plan/input8.q.xml index 15bb4cc..d77c0dc 100644 --- ql/src/test/results/compiler/plan/input8.q.xml +++ ql/src/test/results/compiler/plan/input8.q.xml @@ -274,6 +274,9 @@ + + default + _col0 @@ -291,6 +294,9 @@ + + default + _col1 @@ -308,6 +314,9 @@ + + default + _col2 @@ -374,6 +383,9 @@ + + default + key @@ -520,6 +532,9 @@ + + default + _c0 @@ -533,6 +548,9 @@ + + default + _c1 @@ -546,6 +564,9 @@ + + default + _c2 @@ -607,6 +628,9 @@ + + default + key @@ -620,6 +644,9 @@ + + default + value @@ -633,6 +660,9 @@ + + default + true @@ -653,6 +683,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input9.q.xml ql/src/test/results/compiler/plan/input9.q.xml index 10c5c9f..37c04b5 100644 --- ql/src/test/results/compiler/plan/input9.q.xml +++ ql/src/test/results/compiler/plan/input9.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -763,6 +769,9 @@ _col1 + + default + key @@ -840,6 +849,9 @@ + + default + _col0 @@ -854,6 +866,9 @@ + + default + _col1 @@ -941,6 +956,9 @@ + + default + key @@ -954,6 +972,9 @@ + + default + value @@ -967,6 +988,9 @@ + + default + true @@ -987,6 +1011,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input_part1.q.xml ql/src/test/results/compiler/plan/input_part1.q.xml index 9553451..46a5353 100644 --- ql/src/test/results/compiler/plan/input_part1.q.xml +++ ql/src/test/results/compiler/plan/input_part1.q.xml @@ -295,6 +295,9 @@ + + default + _col0 @@ -312,6 +315,9 @@ + + default + _col1 @@ -325,6 +331,9 @@ + + default + _col2 @@ -338,6 +347,9 @@ + + default + _col3 @@ -362,6 +374,9 @@ _col3 + + default + ds @@ -379,6 +394,9 @@ _col2 + + default + hr @@ -396,6 +414,9 @@ _col1 + + default + value @@ -410,6 +431,9 @@ _col0 + + default + key @@ -491,6 +515,9 @@ + + default + key @@ -507,6 +534,9 @@ + + default + value @@ -523,6 +553,9 @@ + + default + hr @@ -539,6 +572,9 @@ + + default + ds @@ -569,6 +605,9 @@ + + default + key @@ -642,6 +681,9 @@ + + default + key @@ -655,6 +697,9 @@ + + default + value @@ -668,6 +713,9 @@ + + default + ds @@ -681,6 +729,9 @@ + + default + hr @@ -694,6 +745,9 @@ + + default + true @@ -714,6 +768,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input_testsequencefile.q.xml ql/src/test/results/compiler/plan/input_testsequencefile.q.xml index 6e5e639..9b7bc7c 100644 --- ql/src/test/results/compiler/plan/input_testsequencefile.q.xml +++ ql/src/test/results/compiler/plan/input_testsequencefile.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -759,6 +765,9 @@ _col1 + + default + value @@ -773,6 +782,9 @@ _col0 + + default + key @@ -842,6 +854,9 @@ + + default + _col0 @@ -855,6 +870,9 @@ + + default + _col1 @@ -919,6 +937,9 @@ + + default + key @@ -932,6 +953,9 @@ + + default + value @@ -945,6 +969,9 @@ + + default + true @@ -965,6 +992,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input_testxpath.q.xml ql/src/test/results/compiler/plan/input_testxpath.q.xml index 1df0ba5..5de89a1 100644 --- ql/src/test/results/compiler/plan/input_testxpath.q.xml +++ ql/src/test/results/compiler/plan/input_testxpath.q.xml @@ -282,6 +282,9 @@ + + default + _col0 @@ -299,6 +302,9 @@ + + default + _col1 @@ -316,6 +322,9 @@ + + default + _col2 @@ -344,6 +353,9 @@ + + default + mstringstring @@ -391,6 +403,9 @@ + + default + lintstring @@ -471,6 +486,9 @@ + + default + lint @@ -570,6 +588,9 @@ + + default + _c0 @@ -583,6 +604,9 @@ + + default + mystring @@ -596,6 +620,9 @@ + + default + _c2 @@ -663,6 +690,9 @@ + + default + aint @@ -676,6 +706,9 @@ + + default + astring @@ -689,6 +722,9 @@ + + default + lint @@ -702,6 +738,9 @@ + + default + lstring @@ -719,6 +758,9 @@ + + default + lintstring @@ -732,6 +774,9 @@ + + default + mstringstring @@ -745,6 +790,9 @@ + + default + true @@ -765,6 +813,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/input_testxpath2.q.xml ql/src/test/results/compiler/plan/input_testxpath2.q.xml index 70917cf..c04d364 100644 --- ql/src/test/results/compiler/plan/input_testxpath2.q.xml +++ ql/src/test/results/compiler/plan/input_testxpath2.q.xml @@ -286,6 +286,9 @@ + + default + _col0 @@ -303,6 +306,9 @@ + + default + _col1 @@ -316,6 +322,9 @@ + + default + _col2 @@ -344,6 +353,9 @@ + + default + mstringstring @@ -383,6 +395,9 @@ + + default + lintstring @@ -442,6 +457,9 @@ + + default + lint @@ -531,6 +549,9 @@ + + default + _c0 @@ -544,6 +565,9 @@ + + default + _c1 @@ -557,6 +581,9 @@ + + default + _c2 @@ -588,6 +615,9 @@ + + default + lint @@ -623,6 +653,9 @@ + + default + mstringstring @@ -698,6 +731,9 @@ + + default + aint @@ -711,6 +747,9 @@ + + default + astring @@ -724,6 +763,9 @@ + + default + lint @@ -737,6 +779,9 @@ + + default + lstring @@ -754,6 +799,9 @@ + + default + lintstring @@ -767,6 +815,9 @@ + + default + mstringstring @@ -780,6 +831,9 @@ + + default + true @@ -800,6 +854,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/join1.q.xml ql/src/test/results/compiler/plan/join1.q.xml index 8431874..b9123ad 100644 --- ql/src/test/results/compiler/plan/join1.q.xml +++ ql/src/test/results/compiler/plan/join1.q.xml @@ -500,6 +500,9 @@ VALUE._col1 + + default + value @@ -518,6 +521,9 @@ VALUE._col0 + + default + key @@ -540,6 +546,9 @@ + + default + key @@ -678,6 +687,9 @@ + + default + VALUE._col1 @@ -742,6 +754,9 @@ + + default + key @@ -755,6 +770,9 @@ + + default + value @@ -768,6 +786,9 @@ + + default + true @@ -788,6 +809,9 @@ + + default + true @@ -820,6 +844,9 @@ VALUE._col0 + + default + key @@ -842,6 +869,9 @@ + + default + key @@ -977,6 +1007,9 @@ + + default + VALUE._col0 @@ -1038,6 +1071,9 @@ + + default + key @@ -1051,6 +1087,9 @@ + + default + value @@ -1064,6 +1103,9 @@ + + default + true @@ -1080,6 +1122,9 @@ + + default + true @@ -1378,6 +1423,9 @@ + + default + key @@ -1391,6 +1439,9 @@ + + default + value @@ -1415,6 +1466,9 @@ _col1 + + default + _col5 @@ -1429,6 +1483,9 @@ _col0 + + default + _col0 @@ -1498,6 +1555,9 @@ + + default + _col0 @@ -1511,6 +1571,9 @@ + + default + _col1 @@ -1535,6 +1598,9 @@ _col5 + + default + VALUE._col1 @@ -1549,6 +1615,9 @@ _col0 + + default + VALUE._col0 @@ -1729,6 +1798,9 @@ + + default + _col0 @@ -1742,6 +1814,9 @@ + + default + _col5 diff --git ql/src/test/results/compiler/plan/join2.q.xml ql/src/test/results/compiler/plan/join2.q.xml index f62b486..d05f638 100644 --- ql/src/test/results/compiler/plan/join2.q.xml +++ ql/src/test/results/compiler/plan/join2.q.xml @@ -339,6 +339,9 @@ VALUE._col4 + + default + _col0 @@ -357,6 +360,9 @@ VALUE._col0 + + default + _col4 @@ -383,6 +389,9 @@ + + default + _col0 @@ -396,6 +405,9 @@ + + default + _col4 @@ -558,6 +570,9 @@ + + default + VALUE._col4 @@ -602,6 +617,9 @@ + + default + _col0 @@ -615,6 +633,9 @@ + + default + _col4 @@ -644,6 +665,9 @@ VALUE._col1 + + default + value @@ -658,6 +682,9 @@ VALUE._col0 + + default + key @@ -684,6 +711,9 @@ + + default + key @@ -842,6 +872,9 @@ + + default + VALUE._col1 @@ -906,6 +939,9 @@ + + default + key @@ -919,6 +955,9 @@ + + default + value @@ -932,6 +971,9 @@ + + default + true @@ -952,6 +994,9 @@ + + default + true @@ -1304,6 +1349,9 @@ + + default + key @@ -1317,6 +1365,9 @@ + + default + value @@ -1341,6 +1392,9 @@ _col1 + + default + _col9 @@ -1355,6 +1409,9 @@ _col0 + + default + _col4 @@ -1424,6 +1481,9 @@ + + default + _col0 @@ -1437,6 +1497,9 @@ + + default + _col1 @@ -1461,6 +1524,9 @@ _col4 + + default + VALUE._col4 @@ -1475,6 +1541,9 @@ _col9 + + default + VALUE._col1 @@ -1674,6 +1743,9 @@ + + default + _col4 @@ -1687,6 +1759,9 @@ + + default + _col9 @@ -2085,6 +2160,9 @@ VALUE._col0 + + default + key @@ -2107,6 +2185,9 @@ + + default + key @@ -2245,6 +2326,9 @@ + + default + VALUE._col0 @@ -2306,6 +2390,9 @@ + + default + key @@ -2319,6 +2406,9 @@ + + default + value @@ -2332,6 +2422,9 @@ + + default + true @@ -2348,6 +2441,9 @@ + + default + true @@ -2380,6 +2476,9 @@ VALUE._col0 + + default + key @@ -2402,6 +2501,9 @@ + + default + key @@ -2537,6 +2639,9 @@ + + default + VALUE._col0 @@ -2598,6 +2703,9 @@ + + default + key @@ -2611,6 +2719,9 @@ + + default + value @@ -2624,6 +2735,9 @@ + + default + true @@ -2640,6 +2754,9 @@ + + default + true @@ -2928,6 +3045,9 @@ _col4 + + default + VALUE._col0 @@ -2942,6 +3062,9 @@ _col0 + + default + VALUE._col0 diff --git ql/src/test/results/compiler/plan/join3.q.xml ql/src/test/results/compiler/plan/join3.q.xml index 33caeb1..a5b44e1 100644 --- ql/src/test/results/compiler/plan/join3.q.xml +++ ql/src/test/results/compiler/plan/join3.q.xml @@ -672,6 +672,9 @@ VALUE._col0 + + default + key @@ -698,6 +701,9 @@ + + default + key @@ -875,6 +881,9 @@ + + default + key @@ -888,6 +897,9 @@ + + default + value @@ -901,6 +913,9 @@ + + default + true @@ -921,6 +936,9 @@ + + default + true @@ -953,6 +971,9 @@ VALUE._col1 + + default + value @@ -967,6 +988,9 @@ VALUE._col0 + + default + key @@ -989,6 +1013,9 @@ + + default + key @@ -1127,6 +1154,9 @@ + + default + VALUE._col1 @@ -1191,6 +1221,9 @@ + + default + key @@ -1204,6 +1237,9 @@ + + default + value @@ -1217,6 +1253,9 @@ + + default + true @@ -1233,6 +1272,9 @@ + + default + true @@ -1265,6 +1307,9 @@ VALUE._col0 + + default + key @@ -1287,6 +1332,9 @@ + + default + key @@ -1422,6 +1470,9 @@ + + default + VALUE._col0 @@ -1483,6 +1534,9 @@ + + default + key @@ -1496,6 +1550,9 @@ + + default + value @@ -1509,6 +1566,9 @@ + + default + true @@ -1525,6 +1585,9 @@ + + default + true @@ -1826,6 +1889,9 @@ + + default + key @@ -1839,6 +1905,9 @@ + + default + value @@ -1863,6 +1932,9 @@ _col1 + + default + _col9 @@ -1877,6 +1949,9 @@ _col0 + + default + _col0 @@ -1946,6 +2021,9 @@ + + default + _col0 @@ -1959,6 +2037,9 @@ + + default + _col1 @@ -1983,6 +2064,9 @@ _col0 + + default + VALUE._col0 @@ -1997,6 +2081,9 @@ _col9 + + default + VALUE._col1 @@ -2222,6 +2309,9 @@ + + default + _col0 @@ -2235,6 +2325,9 @@ + + default + _col9 diff --git ql/src/test/results/compiler/plan/join4.q.xml ql/src/test/results/compiler/plan/join4.q.xml index a684813..762197e 100644 --- ql/src/test/results/compiler/plan/join4.q.xml +++ ql/src/test/results/compiler/plan/join4.q.xml @@ -374,6 +374,9 @@ VALUE._col1 + + default + _col1 @@ -389,6 +392,9 @@ VALUE._col0 + + default + _col0 @@ -408,6 +414,9 @@ + + default + _col0 @@ -546,6 +555,9 @@ + + default + VALUE._col0 @@ -559,6 +571,9 @@ + + default + VALUE._col1 @@ -583,6 +598,9 @@ _col1 + + default + value @@ -597,6 +615,9 @@ _col0 + + default + key @@ -666,6 +687,9 @@ + + default + _col0 @@ -676,6 +700,9 @@ + + default + _col1 @@ -704,6 +731,9 @@ + + default + key @@ -749,6 +779,9 @@ + + default + key @@ -824,6 +857,9 @@ + + default + key @@ -837,6 +873,9 @@ + + default + value @@ -850,6 +889,9 @@ + + default + true @@ -870,6 +912,9 @@ + + default + true @@ -960,6 +1005,9 @@ VALUE._col1 + + default + _col1 @@ -971,6 +1019,9 @@ VALUE._col0 + + default + _col0 @@ -990,6 +1041,9 @@ + + default + _col0 @@ -1131,6 +1185,9 @@ + + default + VALUE._col0 @@ -1144,6 +1201,9 @@ + + default + VALUE._col1 @@ -1168,6 +1228,9 @@ _col1 + + default + value @@ -1182,6 +1245,9 @@ _col0 + + default + key @@ -1251,6 +1317,9 @@ + + default + _col0 @@ -1261,6 +1330,9 @@ + + default + _col1 @@ -1289,6 +1361,9 @@ + + default + key @@ -1326,6 +1401,9 @@ + + default + key @@ -1401,6 +1479,9 @@ + + default + key @@ -1414,6 +1495,9 @@ + + default + value @@ -1427,6 +1511,9 @@ + + default + true @@ -1443,6 +1530,9 @@ + + default + true @@ -1816,6 +1906,9 @@ + + default + _col0 @@ -1829,6 +1922,9 @@ + + default + _col1 @@ -1842,6 +1938,9 @@ + + default + _col2 @@ -1855,6 +1954,9 @@ + + default + _col3 @@ -1879,6 +1981,9 @@ _col3 + + default + _col3 @@ -1890,6 +1995,9 @@ _col2 + + default + _col2 @@ -1901,6 +2009,9 @@ _col1 + + default + _col1 @@ -1912,6 +2023,9 @@ _col0 + + default + _col0 @@ -1990,6 +2104,9 @@ + + default + c1 @@ -2006,6 +2123,9 @@ + + default + c2 @@ -2022,6 +2142,9 @@ + + default + c3 @@ -2038,6 +2161,9 @@ + + default + c4 @@ -2065,6 +2191,9 @@ _col3 + + default + _col3 @@ -2079,6 +2208,9 @@ _col2 + + default + _col2 @@ -2093,6 +2225,9 @@ _col1 + + default + _col1 @@ -2107,6 +2242,9 @@ _col0 + + default + _col0 @@ -2188,6 +2326,9 @@ + + default + _col0 @@ -2198,6 +2339,9 @@ + + default + _col1 @@ -2208,6 +2352,9 @@ + + default + _col2 @@ -2218,6 +2365,9 @@ + + default + _col3 @@ -2239,6 +2389,9 @@ _col3 + + default + VALUE._col1 @@ -2253,6 +2406,9 @@ _col2 + + default + VALUE._col0 @@ -2267,6 +2423,9 @@ _col1 + + default + VALUE._col1 @@ -2281,6 +2440,9 @@ _col0 + + default + VALUE._col0 @@ -2465,6 +2627,9 @@ + + default + _col0 @@ -2478,6 +2643,9 @@ + + default + _col1 @@ -2491,6 +2659,9 @@ + + default + _col2 @@ -2504,6 +2675,9 @@ + + default + _col3 diff --git ql/src/test/results/compiler/plan/join5.q.xml ql/src/test/results/compiler/plan/join5.q.xml index f8d09a2..074ed7d 100644 --- ql/src/test/results/compiler/plan/join5.q.xml +++ ql/src/test/results/compiler/plan/join5.q.xml @@ -374,6 +374,9 @@ VALUE._col1 + + default + _col1 @@ -389,6 +392,9 @@ VALUE._col0 + + default + _col0 @@ -408,6 +414,9 @@ + + default + _col0 @@ -546,6 +555,9 @@ + + default + VALUE._col0 @@ -559,6 +571,9 @@ + + default + VALUE._col1 @@ -583,6 +598,9 @@ _col1 + + default + value @@ -597,6 +615,9 @@ _col0 + + default + key @@ -666,6 +687,9 @@ + + default + _col0 @@ -676,6 +700,9 @@ + + default + _col1 @@ -704,6 +731,9 @@ + + default + key @@ -749,6 +779,9 @@ + + default + key @@ -824,6 +857,9 @@ + + default + key @@ -837,6 +873,9 @@ + + default + value @@ -850,6 +889,9 @@ + + default + true @@ -870,6 +912,9 @@ + + default + true @@ -960,6 +1005,9 @@ VALUE._col1 + + default + _col1 @@ -971,6 +1019,9 @@ VALUE._col0 + + default + _col0 @@ -990,6 +1041,9 @@ + + default + _col0 @@ -1131,6 +1185,9 @@ + + default + VALUE._col0 @@ -1144,6 +1201,9 @@ + + default + VALUE._col1 @@ -1168,6 +1228,9 @@ _col1 + + default + value @@ -1182,6 +1245,9 @@ _col0 + + default + key @@ -1251,6 +1317,9 @@ + + default + _col0 @@ -1261,6 +1330,9 @@ + + default + _col1 @@ -1289,6 +1361,9 @@ + + default + key @@ -1326,6 +1401,9 @@ + + default + key @@ -1401,6 +1479,9 @@ + + default + key @@ -1414,6 +1495,9 @@ + + default + value @@ -1427,6 +1511,9 @@ + + default + true @@ -1443,6 +1530,9 @@ + + default + true @@ -1816,6 +1906,9 @@ + + default + _col0 @@ -1829,6 +1922,9 @@ + + default + _col1 @@ -1842,6 +1938,9 @@ + + default + _col2 @@ -1855,6 +1954,9 @@ + + default + _col3 @@ -1879,6 +1981,9 @@ _col3 + + default + _col3 @@ -1890,6 +1995,9 @@ _col2 + + default + _col2 @@ -1901,6 +2009,9 @@ _col1 + + default + _col1 @@ -1912,6 +2023,9 @@ _col0 + + default + _col0 @@ -1990,6 +2104,9 @@ + + default + c1 @@ -2006,6 +2123,9 @@ + + default + c2 @@ -2022,6 +2142,9 @@ + + default + c3 @@ -2038,6 +2161,9 @@ + + default + c4 @@ -2065,6 +2191,9 @@ _col3 + + default + _col3 @@ -2079,6 +2208,9 @@ _col2 + + default + _col2 @@ -2093,6 +2225,9 @@ _col1 + + default + _col1 @@ -2107,6 +2242,9 @@ _col0 + + default + _col0 @@ -2188,6 +2326,9 @@ + + default + _col0 @@ -2198,6 +2339,9 @@ + + default + _col1 @@ -2208,6 +2352,9 @@ + + default + _col2 @@ -2218,6 +2365,9 @@ + + default + _col3 @@ -2239,6 +2389,9 @@ _col3 + + default + VALUE._col1 @@ -2253,6 +2406,9 @@ _col2 + + default + VALUE._col0 @@ -2267,6 +2423,9 @@ _col1 + + default + VALUE._col1 @@ -2281,6 +2440,9 @@ _col0 + + default + VALUE._col0 @@ -2461,6 +2623,9 @@ + + default + _col0 @@ -2474,6 +2639,9 @@ + + default + _col1 @@ -2487,6 +2655,9 @@ + + default + _col2 @@ -2500,6 +2671,9 @@ + + default + _col3 diff --git ql/src/test/results/compiler/plan/join6.q.xml ql/src/test/results/compiler/plan/join6.q.xml index 56f92d5..f892874 100644 --- ql/src/test/results/compiler/plan/join6.q.xml +++ ql/src/test/results/compiler/plan/join6.q.xml @@ -374,6 +374,9 @@ VALUE._col1 + + default + _col1 @@ -389,6 +392,9 @@ VALUE._col0 + + default + _col0 @@ -408,6 +414,9 @@ + + default + _col0 @@ -546,6 +555,9 @@ + + default + VALUE._col0 @@ -559,6 +571,9 @@ + + default + VALUE._col1 @@ -583,6 +598,9 @@ _col1 + + default + value @@ -597,6 +615,9 @@ _col0 + + default + key @@ -666,6 +687,9 @@ + + default + _col0 @@ -676,6 +700,9 @@ + + default + _col1 @@ -704,6 +731,9 @@ + + default + key @@ -749,6 +779,9 @@ + + default + key @@ -824,6 +857,9 @@ + + default + key @@ -837,6 +873,9 @@ + + default + value @@ -850,6 +889,9 @@ + + default + true @@ -870,6 +912,9 @@ + + default + true @@ -960,6 +1005,9 @@ VALUE._col1 + + default + _col1 @@ -971,6 +1019,9 @@ VALUE._col0 + + default + _col0 @@ -990,6 +1041,9 @@ + + default + _col0 @@ -1131,6 +1185,9 @@ + + default + VALUE._col0 @@ -1144,6 +1201,9 @@ + + default + VALUE._col1 @@ -1168,6 +1228,9 @@ _col1 + + default + value @@ -1182,6 +1245,9 @@ _col0 + + default + key @@ -1251,6 +1317,9 @@ + + default + _col0 @@ -1261,6 +1330,9 @@ + + default + _col1 @@ -1289,6 +1361,9 @@ + + default + key @@ -1326,6 +1401,9 @@ + + default + key @@ -1401,6 +1479,9 @@ + + default + key @@ -1414,6 +1495,9 @@ + + default + value @@ -1427,6 +1511,9 @@ + + default + true @@ -1443,6 +1530,9 @@ + + default + true @@ -1816,6 +1906,9 @@ + + default + _col0 @@ -1829,6 +1922,9 @@ + + default + _col1 @@ -1842,6 +1938,9 @@ + + default + _col2 @@ -1855,6 +1954,9 @@ + + default + _col3 @@ -1879,6 +1981,9 @@ _col3 + + default + _col3 @@ -1890,6 +1995,9 @@ _col2 + + default + _col2 @@ -1901,6 +2009,9 @@ _col1 + + default + _col1 @@ -1912,6 +2023,9 @@ _col0 + + default + _col0 @@ -1990,6 +2104,9 @@ + + default + c1 @@ -2006,6 +2123,9 @@ + + default + c2 @@ -2022,6 +2142,9 @@ + + default + c3 @@ -2038,6 +2161,9 @@ + + default + c4 @@ -2065,6 +2191,9 @@ _col3 + + default + _col3 @@ -2079,6 +2208,9 @@ _col2 + + default + _col2 @@ -2093,6 +2225,9 @@ _col1 + + default + _col1 @@ -2107,6 +2242,9 @@ _col0 + + default + _col0 @@ -2188,6 +2326,9 @@ + + default + _col0 @@ -2198,6 +2339,9 @@ + + default + _col1 @@ -2208,6 +2352,9 @@ + + default + _col2 @@ -2218,6 +2365,9 @@ + + default + _col3 @@ -2239,6 +2389,9 @@ _col3 + + default + VALUE._col1 @@ -2253,6 +2406,9 @@ _col2 + + default + VALUE._col0 @@ -2267,6 +2423,9 @@ _col1 + + default + VALUE._col1 @@ -2281,6 +2440,9 @@ _col0 + + default + VALUE._col0 @@ -2468,6 +2630,9 @@ + + default + _col0 @@ -2481,6 +2646,9 @@ + + default + _col1 @@ -2494,6 +2662,9 @@ + + default + _col2 @@ -2507,6 +2678,9 @@ + + default + _col3 diff --git ql/src/test/results/compiler/plan/join7.q.xml ql/src/test/results/compiler/plan/join7.q.xml index 926a153..8ec3559 100644 --- ql/src/test/results/compiler/plan/join7.q.xml +++ ql/src/test/results/compiler/plan/join7.q.xml @@ -546,6 +546,9 @@ VALUE._col1 + + default + _col1 @@ -561,6 +564,9 @@ VALUE._col0 + + default + _col0 @@ -580,6 +586,9 @@ + + default + _col0 @@ -718,6 +727,9 @@ + + default + VALUE._col0 @@ -731,6 +743,9 @@ + + default + VALUE._col1 @@ -755,6 +770,9 @@ _col1 + + default + value @@ -769,6 +787,9 @@ _col0 + + default + key @@ -838,6 +859,9 @@ + + default + _col0 @@ -848,6 +872,9 @@ + + default + _col1 @@ -876,6 +903,9 @@ + + default + key @@ -921,6 +951,9 @@ + + default + key @@ -996,6 +1029,9 @@ + + default + key @@ -1009,6 +1045,9 @@ + + default + value @@ -1022,6 +1061,9 @@ + + default + true @@ -1042,6 +1084,9 @@ + + default + true @@ -1132,6 +1177,9 @@ VALUE._col1 + + default + _col1 @@ -1143,6 +1191,9 @@ VALUE._col0 + + default + _col0 @@ -1162,6 +1213,9 @@ + + default + _col0 @@ -1303,6 +1357,9 @@ + + default + VALUE._col0 @@ -1316,6 +1373,9 @@ + + default + VALUE._col1 @@ -1340,6 +1400,9 @@ _col1 + + default + value @@ -1354,6 +1417,9 @@ _col0 + + default + key @@ -1423,6 +1489,9 @@ + + default + _col0 @@ -1433,6 +1502,9 @@ + + default + _col1 @@ -1461,6 +1533,9 @@ + + default + key @@ -1498,6 +1573,9 @@ + + default + key @@ -1573,6 +1651,9 @@ + + default + key @@ -1586,6 +1667,9 @@ + + default + value @@ -1599,6 +1683,9 @@ + + default + true @@ -1615,6 +1702,9 @@ + + default + true @@ -1705,6 +1795,9 @@ VALUE._col1 + + default + _col1 @@ -1716,6 +1809,9 @@ VALUE._col0 + + default + _col0 @@ -1735,6 +1831,9 @@ + + default + _col0 @@ -1876,6 +1975,9 @@ + + default + VALUE._col0 @@ -1889,6 +1991,9 @@ + + default + VALUE._col1 @@ -1913,6 +2018,9 @@ _col1 + + default + value @@ -1927,6 +2035,9 @@ _col0 + + default + key @@ -1996,6 +2107,9 @@ + + default + _col0 @@ -2006,6 +2120,9 @@ + + default + _col1 @@ -2034,6 +2151,9 @@ + + default + key @@ -2071,6 +2191,9 @@ + + default + key @@ -2146,6 +2269,9 @@ + + default + key @@ -2159,6 +2285,9 @@ + + default + value @@ -2172,6 +2301,9 @@ + + default + true @@ -2188,6 +2320,9 @@ + + default + true @@ -2564,6 +2699,9 @@ + + default + _col0 @@ -2577,6 +2715,9 @@ + + default + _col1 @@ -2590,6 +2731,9 @@ + + default + _col2 @@ -2603,6 +2747,9 @@ + + default + _col3 @@ -2616,6 +2763,9 @@ + + default + _col4 @@ -2629,6 +2779,9 @@ + + default + _col5 @@ -2653,6 +2806,9 @@ _col5 + + default + _col5 @@ -2664,6 +2820,9 @@ _col4 + + default + _col4 @@ -2675,6 +2834,9 @@ _col3 + + default + _col3 @@ -2686,6 +2848,9 @@ _col2 + + default + _col2 @@ -2697,6 +2862,9 @@ _col1 + + default + _col1 @@ -2708,6 +2876,9 @@ _col0 + + default + _col0 @@ -2798,6 +2969,9 @@ + + default + c1 @@ -2814,6 +2988,9 @@ + + default + c2 @@ -2830,6 +3007,9 @@ + + default + c3 @@ -2846,6 +3026,9 @@ + + default + c4 @@ -2862,6 +3045,9 @@ + + default + c5 @@ -2878,6 +3064,9 @@ + + default + c6 @@ -2905,6 +3094,9 @@ _col5 + + default + _col5 @@ -2919,6 +3111,9 @@ _col4 + + default + _col4 @@ -2933,6 +3128,9 @@ _col3 + + default + _col3 @@ -2947,6 +3145,9 @@ _col2 + + default + _col2 @@ -2961,6 +3162,9 @@ _col1 + + default + _col1 @@ -2975,6 +3179,9 @@ _col0 + + default + _col0 @@ -3068,6 +3275,9 @@ + + default + _col0 @@ -3078,6 +3288,9 @@ + + default + _col1 @@ -3088,6 +3301,9 @@ + + default + _col2 @@ -3098,6 +3314,9 @@ + + default + _col3 @@ -3108,6 +3327,9 @@ + + default + _col4 @@ -3118,6 +3340,9 @@ + + default + _col5 @@ -3139,6 +3364,9 @@ _col5 + + default + VALUE._col1 @@ -3153,6 +3381,9 @@ _col4 + + default + VALUE._col0 @@ -3167,6 +3398,9 @@ _col3 + + default + VALUE._col1 @@ -3181,6 +3415,9 @@ _col2 + + default + VALUE._col0 @@ -3195,6 +3432,9 @@ _col1 + + default + VALUE._col1 @@ -3209,6 +3449,9 @@ _col0 + + default + VALUE._col0 @@ -3452,6 +3695,9 @@ + + default + _col0 @@ -3465,6 +3711,9 @@ + + default + _col1 @@ -3478,6 +3727,9 @@ + + default + _col2 @@ -3491,6 +3743,9 @@ + + default + _col3 @@ -3504,6 +3759,9 @@ + + default + _col4 @@ -3517,6 +3775,9 @@ + + default + _col5 diff --git ql/src/test/results/compiler/plan/join8.q.xml ql/src/test/results/compiler/plan/join8.q.xml index 243df69..a944ef6 100644 --- ql/src/test/results/compiler/plan/join8.q.xml +++ ql/src/test/results/compiler/plan/join8.q.xml @@ -374,6 +374,9 @@ VALUE._col1 + + default + _col1 @@ -389,6 +392,9 @@ VALUE._col0 + + default + _col0 @@ -408,6 +414,9 @@ + + default + _col0 @@ -546,6 +555,9 @@ + + default + VALUE._col0 @@ -559,6 +571,9 @@ + + default + VALUE._col1 @@ -583,6 +598,9 @@ _col1 + + default + value @@ -597,6 +615,9 @@ _col0 + + default + key @@ -666,6 +687,9 @@ + + default + _col0 @@ -676,6 +700,9 @@ + + default + _col1 @@ -708,6 +735,9 @@ + + default + key @@ -753,6 +783,9 @@ + + default + key @@ -800,6 +833,9 @@ + + default + key @@ -865,6 +901,9 @@ + + default + key @@ -878,6 +917,9 @@ + + default + value @@ -891,6 +933,9 @@ + + default + true @@ -911,6 +956,9 @@ + + default + true @@ -1001,6 +1049,9 @@ VALUE._col1 + + default + _col1 @@ -1012,6 +1063,9 @@ VALUE._col0 + + default + _col0 @@ -1031,6 +1085,9 @@ + + default + _col0 @@ -1172,6 +1229,9 @@ + + default + VALUE._col0 @@ -1185,6 +1245,9 @@ + + default + VALUE._col1 @@ -1209,6 +1272,9 @@ _col1 + + default + value @@ -1223,6 +1289,9 @@ _col0 + + default + key @@ -1292,6 +1361,9 @@ + + default + _col0 @@ -1302,6 +1374,9 @@ + + default + _col1 @@ -1334,6 +1409,9 @@ + + default + key @@ -1371,6 +1449,9 @@ + + default + key @@ -1418,6 +1499,9 @@ + + default + key @@ -1483,6 +1567,9 @@ + + default + key @@ -1496,6 +1583,9 @@ + + default + value @@ -1509,6 +1599,9 @@ + + default + true @@ -1525,6 +1618,9 @@ + + default + true @@ -1902,6 +1998,9 @@ + + default + _col0 @@ -1915,6 +2014,9 @@ + + default + _col1 @@ -1928,6 +2030,9 @@ + + default + _col2 @@ -1941,6 +2046,9 @@ + + default + _col3 @@ -1965,6 +2073,9 @@ _col3 + + default + _col3 @@ -1976,6 +2087,9 @@ _col2 + + default + _col2 @@ -1987,6 +2101,9 @@ _col1 + + default + _col1 @@ -1998,6 +2115,9 @@ _col0 + + default + _col0 @@ -2076,6 +2196,9 @@ + + default + c1 @@ -2092,6 +2215,9 @@ + + default + c2 @@ -2108,6 +2234,9 @@ + + default + c3 @@ -2124,6 +2253,9 @@ + + default + c4 @@ -2151,6 +2283,9 @@ _col3 + + default + _col3 @@ -2165,6 +2300,9 @@ _col2 + + default + _col2 @@ -2179,6 +2317,9 @@ _col1 + + default + _col1 @@ -2193,6 +2334,9 @@ _col0 + + default + _col0 @@ -2274,6 +2418,9 @@ + + default + _col0 @@ -2284,6 +2431,9 @@ + + default + _col1 @@ -2294,6 +2444,9 @@ + + default + _col2 @@ -2304,6 +2457,9 @@ + + default + _col3 @@ -2373,6 +2529,9 @@ + + default + _col0 @@ -2386,6 +2545,9 @@ + + default + _col1 @@ -2399,6 +2561,9 @@ + + default + _col2 @@ -2412,6 +2577,9 @@ + + default + _col3 @@ -2436,6 +2604,9 @@ _col3 + + default + VALUE._col1 @@ -2450,6 +2621,9 @@ _col2 + + default + VALUE._col0 @@ -2464,6 +2638,9 @@ _col1 + + default + VALUE._col1 @@ -2478,6 +2655,9 @@ _col0 + + default + VALUE._col0 diff --git ql/src/test/results/compiler/plan/sample1.q.xml ql/src/test/results/compiler/plan/sample1.q.xml index 7836e13..39eda5b 100644 --- ql/src/test/results/compiler/plan/sample1.q.xml +++ ql/src/test/results/compiler/plan/sample1.q.xml @@ -295,6 +295,9 @@ + + default + _col0 @@ -312,6 +315,9 @@ + + default + _col1 @@ -325,6 +331,9 @@ + + default + _col2 @@ -338,6 +347,9 @@ + + default + _col3 @@ -362,6 +374,9 @@ _col3 + + default + hr @@ -379,6 +394,9 @@ _col2 + + default + ds @@ -396,6 +414,9 @@ _col1 + + default + value @@ -410,6 +431,9 @@ _col0 + + default + key @@ -494,6 +518,9 @@ + + default + key @@ -510,6 +537,9 @@ + + default + value @@ -526,6 +556,9 @@ + + default + ds @@ -542,6 +575,9 @@ + + default + hr @@ -750,6 +786,9 @@ + + default + key @@ -763,6 +802,9 @@ + + default + value @@ -776,6 +818,9 @@ + + default + ds @@ -789,6 +834,9 @@ + + default + hr @@ -865,6 +913,9 @@ + + default + true @@ -885,6 +936,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/sample2.q.xml ql/src/test/results/compiler/plan/sample2.q.xml index e8572bd..ed67146 100644 --- ql/src/test/results/compiler/plan/sample2.q.xml +++ ql/src/test/results/compiler/plan/sample2.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -771,6 +777,9 @@ _col1 + + default + value @@ -785,6 +794,9 @@ _col0 + + default + key @@ -861,6 +873,9 @@ + + default + _col0 @@ -874,6 +889,9 @@ + + default + _col1 @@ -916,6 +934,9 @@ + + default + key @@ -1064,6 +1085,9 @@ + + default + key @@ -1077,6 +1101,9 @@ + + default + value @@ -1147,6 +1174,9 @@ + + default + true @@ -1167,6 +1197,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/sample3.q.xml ql/src/test/results/compiler/plan/sample3.q.xml index bf6bfec..004cc15 100644 --- ql/src/test/results/compiler/plan/sample3.q.xml +++ ql/src/test/results/compiler/plan/sample3.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -771,6 +777,9 @@ _col1 + + default + value @@ -785,6 +794,9 @@ _col0 + + default + key @@ -861,6 +873,9 @@ + + default + _col0 @@ -874,6 +889,9 @@ + + default + _col1 @@ -916,6 +934,9 @@ + + default + key @@ -929,6 +950,9 @@ + + default + value @@ -1074,6 +1098,9 @@ + + default + key @@ -1087,6 +1114,9 @@ + + default + value @@ -1157,6 +1187,9 @@ + + default + true @@ -1177,6 +1210,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/sample4.q.xml ql/src/test/results/compiler/plan/sample4.q.xml index 4f69df5..2da7d62 100644 --- ql/src/test/results/compiler/plan/sample4.q.xml +++ ql/src/test/results/compiler/plan/sample4.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -771,6 +777,9 @@ _col1 + + default + value @@ -785,6 +794,9 @@ _col0 + + default + key @@ -861,6 +873,9 @@ + + default + _col0 @@ -874,6 +889,9 @@ + + default + _col1 @@ -916,6 +934,9 @@ + + default + key @@ -1064,6 +1085,9 @@ + + default + key @@ -1077,6 +1101,9 @@ + + default + value @@ -1147,6 +1174,9 @@ + + default + true @@ -1167,6 +1197,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/sample5.q.xml ql/src/test/results/compiler/plan/sample5.q.xml index 4dcb89a..ec0f490 100644 --- ql/src/test/results/compiler/plan/sample5.q.xml +++ ql/src/test/results/compiler/plan/sample5.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -771,6 +777,9 @@ _col1 + + default + value @@ -785,6 +794,9 @@ _col0 + + default + key @@ -861,6 +873,9 @@ + + default + _col0 @@ -874,6 +889,9 @@ + + default + _col1 @@ -916,6 +934,9 @@ + + default + key @@ -1061,6 +1082,9 @@ + + default + key @@ -1074,6 +1098,9 @@ + + default + value @@ -1144,6 +1171,9 @@ + + default + true @@ -1164,6 +1194,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/sample6.q.xml ql/src/test/results/compiler/plan/sample6.q.xml index 838fa07..d7ce91e 100644 --- ql/src/test/results/compiler/plan/sample6.q.xml +++ ql/src/test/results/compiler/plan/sample6.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -771,6 +777,9 @@ _col1 + + default + value @@ -785,6 +794,9 @@ _col0 + + default + key @@ -861,6 +873,9 @@ + + default + _col0 @@ -874,6 +889,9 @@ + + default + _col1 @@ -916,6 +934,9 @@ + + default + key @@ -1064,6 +1085,9 @@ + + default + key @@ -1077,6 +1101,9 @@ + + default + value @@ -1147,6 +1174,9 @@ + + default + true @@ -1167,6 +1197,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/sample7.q.xml ql/src/test/results/compiler/plan/sample7.q.xml index 7752352..5966701 100644 --- ql/src/test/results/compiler/plan/sample7.q.xml +++ ql/src/test/results/compiler/plan/sample7.q.xml @@ -188,6 +188,9 @@ + + default + key @@ -205,6 +208,9 @@ + + default + value @@ -775,6 +781,9 @@ _col1 + + default + value @@ -789,6 +798,9 @@ _col0 + + default + key @@ -865,6 +877,9 @@ + + default + _col0 @@ -878,6 +893,9 @@ + + default + _col1 @@ -920,6 +938,9 @@ + + default + key @@ -1068,6 +1089,9 @@ + + default + key @@ -1081,6 +1105,9 @@ + + default + value @@ -1108,6 +1135,9 @@ + + default + key @@ -1179,6 +1209,9 @@ + + default + true @@ -1199,6 +1232,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/subq.q.xml ql/src/test/results/compiler/plan/subq.q.xml index 16a0ee9..a25d135 100644 --- ql/src/test/results/compiler/plan/subq.q.xml +++ ql/src/test/results/compiler/plan/subq.q.xml @@ -121,6 +121,9 @@ + + default + _col0 @@ -138,6 +141,9 @@ + + default + _col1 @@ -659,6 +665,9 @@ _col1 + + default + _col1 @@ -673,6 +682,9 @@ _col0 + + default + _col0 @@ -745,6 +757,9 @@ + + default + key @@ -761,6 +776,9 @@ + + default + value @@ -788,6 +806,9 @@ _col1 + + default + value @@ -802,6 +823,9 @@ _col0 + + default + key @@ -874,6 +898,9 @@ + + default + _col0 @@ -887,6 +914,9 @@ + + default + _col1 @@ -914,6 +944,9 @@ + + default + key @@ -987,6 +1020,9 @@ + + default + key @@ -1000,6 +1036,9 @@ + + default + value @@ -1013,6 +1052,9 @@ + + default + true @@ -1033,6 +1075,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/udf1.q.xml ql/src/test/results/compiler/plan/udf1.q.xml index 3c5e05f..978ce3d 100644 --- ql/src/test/results/compiler/plan/udf1.q.xml +++ ql/src/test/results/compiler/plan/udf1.q.xml @@ -278,6 +278,9 @@ + + default + _col0 @@ -295,6 +298,9 @@ + + default + _col1 @@ -308,6 +314,9 @@ + + default + _col2 @@ -321,6 +330,9 @@ + + default + _col3 @@ -334,6 +346,9 @@ + + default + _col4 @@ -347,6 +362,9 @@ + + default + _col5 @@ -360,6 +378,9 @@ + + default + _col6 @@ -373,6 +394,9 @@ + + default + _col7 @@ -386,6 +410,9 @@ + + default + _col8 @@ -399,6 +426,9 @@ + + default + _col9 @@ -412,6 +442,9 @@ + + default + _col10 @@ -425,6 +458,9 @@ + + default + _col11 @@ -438,6 +474,9 @@ + + default + _col12 @@ -451,6 +490,9 @@ + + default + _col13 @@ -468,6 +510,9 @@ + + default + _col14 @@ -481,6 +526,9 @@ + + default + _col15 @@ -494,6 +542,9 @@ + + default + _col16 @@ -1507,6 +1558,9 @@ + + default + _c0 @@ -1520,6 +1574,9 @@ + + default + _c1 @@ -1533,6 +1590,9 @@ + + default + _c2 @@ -1546,6 +1606,9 @@ + + default + _c3 @@ -1559,6 +1622,9 @@ + + default + _c4 @@ -1572,6 +1638,9 @@ + + default + _c5 @@ -1585,6 +1654,9 @@ + + default + _c6 @@ -1598,6 +1670,9 @@ + + default + _c7 @@ -1611,6 +1686,9 @@ + + default + _c8 @@ -1624,6 +1702,9 @@ + + default + _c9 @@ -1637,6 +1718,9 @@ + + default + _c10 @@ -1650,6 +1734,9 @@ + + default + _c11 @@ -1663,6 +1750,9 @@ + + default + _c12 @@ -1676,6 +1766,9 @@ + + default + _c13 @@ -1689,6 +1782,9 @@ + + default + _c14 @@ -1702,6 +1798,9 @@ + + default + _c15 @@ -1715,6 +1814,9 @@ + + default + _c16 @@ -1742,6 +1844,9 @@ + + default + key @@ -1811,6 +1916,9 @@ + + default + key @@ -1824,6 +1932,9 @@ + + default + value @@ -1837,6 +1948,9 @@ + + default + true @@ -1857,6 +1971,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/udf4.q.xml ql/src/test/results/compiler/plan/udf4.q.xml index 75e51ec..6b25d28 100644 --- ql/src/test/results/compiler/plan/udf4.q.xml +++ ql/src/test/results/compiler/plan/udf4.q.xml @@ -234,6 +234,9 @@ + + default + _col0 @@ -251,6 +254,9 @@ + + default + _col1 @@ -264,6 +270,9 @@ + + default + _col2 @@ -277,6 +286,9 @@ + + default + _col3 @@ -290,6 +302,9 @@ + + default + _col4 @@ -303,6 +318,9 @@ + + default + _col5 @@ -316,6 +334,9 @@ + + default + _col6 @@ -333,6 +354,9 @@ + + default + _col7 @@ -346,6 +370,9 @@ + + default + _col8 @@ -359,6 +386,9 @@ + + default + _col9 @@ -372,6 +402,9 @@ + + default + _col10 @@ -385,6 +418,9 @@ + + default + _col11 @@ -398,6 +434,9 @@ + + default + _col12 @@ -411,6 +450,9 @@ + + default + _col13 @@ -424,6 +466,9 @@ + + default + _col14 @@ -441,6 +486,9 @@ + + default + _col15 @@ -454,6 +502,9 @@ + + default + _col16 @@ -467,6 +518,9 @@ + + default + _col17 @@ -480,6 +534,9 @@ + + default + _col18 @@ -1469,6 +1526,9 @@ + + default + _c0 @@ -1482,6 +1542,9 @@ + + default + _c1 @@ -1495,6 +1558,9 @@ + + default + _c2 @@ -1508,6 +1574,9 @@ + + default + _c3 @@ -1521,6 +1590,9 @@ + + default + _c4 @@ -1534,6 +1606,9 @@ + + default + _c5 @@ -1547,6 +1622,9 @@ + + default + _c6 @@ -1560,6 +1638,9 @@ + + default + _c7 @@ -1573,6 +1654,9 @@ + + default + _c8 @@ -1586,6 +1670,9 @@ + + default + _c9 @@ -1599,6 +1686,9 @@ + + default + _c10 @@ -1612,6 +1702,9 @@ + + default + _c11 @@ -1625,6 +1718,9 @@ + + default + _c12 @@ -1638,6 +1734,9 @@ + + default + _c13 @@ -1651,6 +1750,9 @@ + + default + _c14 @@ -1664,6 +1766,9 @@ + + default + _c15 @@ -1677,6 +1782,9 @@ + + default + _c16 @@ -1690,6 +1798,9 @@ + + default + _c17 @@ -1703,6 +1814,9 @@ + + default + _c18 @@ -1760,6 +1874,9 @@ + + default + key @@ -1777,6 +1894,9 @@ + + default + value @@ -1790,6 +1910,9 @@ + + default + true @@ -1806,6 +1929,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/udf6.q.xml ql/src/test/results/compiler/plan/udf6.q.xml index 73b72b0..c6d38e8 100644 --- ql/src/test/results/compiler/plan/udf6.q.xml +++ ql/src/test/results/compiler/plan/udf6.q.xml @@ -274,6 +274,9 @@ + + default + _col0 @@ -291,6 +294,9 @@ + + default + _col1 @@ -468,6 +474,9 @@ + + default + _c0 @@ -481,6 +490,9 @@ + + default + _c1 @@ -538,6 +550,9 @@ + + default + key @@ -551,6 +566,9 @@ + + default + value @@ -564,6 +582,9 @@ + + default + true @@ -584,6 +605,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/udf_case.q.xml ql/src/test/results/compiler/plan/udf_case.q.xml index ea83799..292ac50 100644 --- ql/src/test/results/compiler/plan/udf_case.q.xml +++ ql/src/test/results/compiler/plan/udf_case.q.xml @@ -278,6 +278,9 @@ + + default + _col0 @@ -295,6 +298,9 @@ + + default + _col1 @@ -353,6 +359,9 @@ + + default + _c0 @@ -366,6 +375,9 @@ + + default + _c1 @@ -628,6 +640,9 @@ + + default + key @@ -645,6 +660,9 @@ + + default + value @@ -658,6 +676,9 @@ + + default + true @@ -678,6 +699,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/udf_when.q.xml ql/src/test/results/compiler/plan/udf_when.q.xml index 914289a..c3dee06 100644 --- ql/src/test/results/compiler/plan/udf_when.q.xml +++ ql/src/test/results/compiler/plan/udf_when.q.xml @@ -278,6 +278,9 @@ + + default + _col0 @@ -295,6 +298,9 @@ + + default + _col1 @@ -353,6 +359,9 @@ + + default + _c0 @@ -366,6 +375,9 @@ + + default + _c1 @@ -708,6 +720,9 @@ + + default + key @@ -725,6 +740,9 @@ + + default + value @@ -738,6 +756,9 @@ + + default + true @@ -758,6 +779,9 @@ + + default + true diff --git ql/src/test/results/compiler/plan/union.q.xml ql/src/test/results/compiler/plan/union.q.xml index b746a46..628d917 100644 --- ql/src/test/results/compiler/plan/union.q.xml +++ ql/src/test/results/compiler/plan/union.q.xml @@ -121,6 +121,9 @@ + + default + _col0 @@ -138,6 +141,9 @@ + + default + _col1 @@ -835,6 +841,9 @@ _col1 + + default + _col1 @@ -849,6 +858,9 @@ _col0 + + default + _col0 @@ -921,6 +933,9 @@ + + default + key @@ -937,6 +952,9 @@ + + default + value @@ -1000,6 +1018,9 @@ _col1 + + default + value @@ -1014,6 +1035,9 @@ _col0 + + default + key @@ -1092,6 +1116,9 @@ + + default + key @@ -1208,6 +1235,9 @@ + + default + key @@ -1221,6 +1251,9 @@ + + default + value @@ -1234,6 +1267,9 @@ + + default + true @@ -1254,6 +1290,9 @@ + + default + true @@ -1293,6 +1332,9 @@ + + default + _col0 @@ -1306,6 +1348,9 @@ + + default + _col1 @@ -1331,6 +1376,9 @@ + + default + _col0 @@ -1344,6 +1392,9 @@ + + default + _col1 @@ -1368,6 +1419,9 @@ _col1 + + default + value @@ -1382,6 +1436,9 @@ _col0 + + default + key @@ -1471,6 +1528,9 @@ + + default + key @@ -1536,6 +1596,9 @@ + + default + key @@ -1549,6 +1612,9 @@ + + default + value @@ -1562,6 +1628,9 @@ + + default + true @@ -1578,6 +1647,9 @@ + + default + true