final SqlNameMatcher nameMatcher = catalogReader.nameMatcher(); for (Pair<String, RexNode> p : Pair.zip(targetColumnNames, columnExprs)) { RelDataTypeField field = nameMatcher.field(targetRowType, p.left);
final List<String> columnList = SqlValidatorUtil.deriveNaturalJoinColumnList( catalogReader.nameMatcher(), leftRowType, rightRowType); conditionExp = convertUsing(leftNamespace, rightNamespace, columnList); } else {
final List<String> columnList = SqlValidatorUtil.deriveNaturalJoinColumnList( catalogReader.nameMatcher(), leftRowType, rightRowType); conditionExp = convertUsing(leftNamespace, rightNamespace, columnList); } else {
final SqlNameMatcher nameMatcher = catalogReader.nameMatcher(); for (Pair<String, RexNode> p : Pair.zip(targetColumnNames, columnExprs)) { RelDataTypeField field = nameMatcher.field(targetRowType, p.left);
final SqlNameMatcher nameMatcher = catalogReader.nameMatcher(); for (Pair<String, RexNode> p : Pair.zip(targetColumnNames, columnExprs)) { RelDataTypeField field = nameMatcher.field(targetRowType, p.left);
final SqlNameMatcher nameMatcher = catalogReader.nameMatcher(); for (Pair<String, RexNode> p : Pair.zip(targetColumnNames, columnExprs)) { RelDataTypeField field = nameMatcher.field(targetRowType, p.left);
catalogReader.nameMatcher().isCaseSensitive());
catalogReader.nameMatcher().isCaseSensitive());
catalogReader.nameMatcher().isCaseSensitive());
catalogReader.nameMatcher().isCaseSensitive());
final TableNamespace tableNamespace = resolvedNamespace.unwrap(TableNamespace.class); final SqlValidatorTable validatorTable = tableNamespace.getTable(); final RelDataTypeFactory typeFactory = catalogReader.getTypeFactory(); final List<RelDataTypeField> extendedFields = dmlNamespace.extendList == null ? ImmutableList.of()
inputRowType = typeFactory.createJoinType(rowType, getCatalogReader().createTypeFromProjection(rowType, updateColumnList)); break; typeFactory.createJoinType( typeFactory.createJoinType(rowType, rowType), getCatalogReader().createTypeFromProjection(rowType, updateColumnList)); break;
final TableNamespace tableNamespace = resolvedNamespace.unwrap(TableNamespace.class); final SqlValidatorTable validatorTable = tableNamespace.getTable(); final RelDataTypeFactory typeFactory = catalogReader.getTypeFactory(); final List<RelDataTypeField> extendedFields = dmlNamespace.extendList == null ? ImmutableList.of()
/** Populates a materialization record, converting a table path * (essentially a list of strings, like ["hr", "sales"]) into a table object * that can be used in the planning process. */ void populate(Materialization materialization) { SqlParser parser = SqlParser.create(materialization.sql); SqlNode node; try { node = parser.parseStmt(); } catch (SqlParseException e) { throw new RuntimeException("parse failed", e); } final SqlToRelConverter.Config config = SqlToRelConverter.configBuilder() .withTrimUnusedFields(true).build(); SqlToRelConverter sqlToRelConverter2 = getSqlToRelConverter(getSqlValidator(), catalogReader, config); materialization.queryRel = sqlToRelConverter2.convertQuery(node, true, true).rel; // Identify and substitute a StarTable in queryRel. // // It is possible that no StarTables match. That is OK, but the // materialization patterns that are recognized will not be as rich. // // It is possible that more than one StarTable matches. TBD: should we // take the best (whatever that means), or all of them? useStar(schema, materialization); RelOptTable table = this.catalogReader.getTable(materialization.materializedTable.path()); materialization.tableRel = sqlToRelConverter2.toRel(table); }
Pair.right(validatedFields), SqlValidatorUtil.uniquify(Pair.left(validatedFields), catalogReader.nameMatcher().isCaseSensitive()));
Pair.right(validatedFields), SqlValidatorUtil.uniquify(Pair.left(validatedFields), catalogReader.nameMatcher().isCaseSensitive()));
Pair.right(validatedFields), SqlValidatorUtil.uniquify(Pair.left(validatedFields), catalogReader.nameMatcher().isCaseSensitive()));
inputRowType = typeFactory.createJoinType(rowType, getCatalogReader().createTypeFromProjection(rowType, updateColumnList)); break; typeFactory.createJoinType( typeFactory.createJoinType(rowType, rowType), getCatalogReader().createTypeFromProjection(rowType, updateColumnList)); break;
SqlValidatorNamespace rightNamespace, List<String> nameList) { final SqlNameMatcher nameMatcher = catalogReader.nameMatcher(); final List<RexNode> list = Lists.newArrayList(); for (String name : nameList) {
Pair.right(validatedFields), SqlValidatorUtil.uniquify(Pair.left(validatedFields), catalogReader.nameMatcher().isCaseSensitive()));