public RelDataTypeField field(RelDataType rowType, String alias) { return SqlValidatorUtil.lookupField(caseSensitive, rowType, alias); }
public RelDataTypeField field(RelDataType rowType, String alias) { return SqlValidatorUtil.lookupField(caseSensitive, rowType, alias); }
public SqlIdentifier fullyQualify(SqlIdentifier identifier) { // If it's a simple identifier, look for an alias. if (identifier.isSimple() && validator.getConformance().isSortByAlias()) { String name = identifier.names[0]; final SqlValidatorNamespace selectNs = validator.getNamespace(select); final RelDataType rowType = selectNs.getRowType(); if (SqlValidatorUtil.lookupField(rowType, name) != null) { return identifier; } } return super.fullyQualify(identifier); }
public String findQualifyingTableName( final String columnName, SqlNode ctx) { int count = 0; String tableName = null; for (Pair<String, SqlValidatorNamespace> child : children) { final RelDataType rowType = child.right.getRowType(); if (SqlValidatorUtil.lookupField(rowType, columnName) != null) { tableName = child.left; count++; } } switch (count) { case 0: return parent.findQualifyingTableName(columnName, ctx); case 1: return tableName; default: throw validator.newValidationError( ctx, EigenbaseResource.instance().ColumnAmbiguous.ex(columnName)); } }
final RelDataType leftRowType = leftRel.getRowType(); RelDataTypeField leftField = SqlValidatorUtil.lookupField(leftRowType, name); RexNode left = rexBuilder.makeInputRef( final RelDataType rightRowType = rightRel.getRowType(); RelDataTypeField rightField = SqlValidatorUtil.lookupField(rightRowType, name); RexNode right = rexBuilder.makeInputRef(
public SqlNode visit(SqlIdentifier id) { // Aliases, e.g. 'select a as x, b from t order by x'. if (id.isSimple() && getConformance().isSortByAlias()) { String alias = id.getSimple(); final SqlValidatorNamespace selectNs = getNamespace(select); final RelDataType rowType = selectNs.getRowTypeSansSystemColumns(); RelDataTypeField field = SqlValidatorUtil.lookupField(rowType, alias); if (field != null) { return nthSelectItem( field.getIndex(), id.getParserPosition()); } } // No match. Return identifier unchanged. return getScope().fullyQualify(id); }