@Override protected SqlToRelConverter getSqlToRelConverter( SqlValidator validator, CatalogReader catalogReader) { SqlToRelConverter sqlToRelConverter = new SqlToRelConverter( this, validator, catalogReader, planner, rexBuilder, StandardConvertletTable.INSTANCE); sqlToRelConverter.setTrimUnusedFields(true); return sqlToRelConverter; }
@Override protected SqlToRelConverter getSqlToRelConverter( SqlValidator validator, CatalogReader catalogReader) { SqlToRelConverter sqlToRelConverter = new SqlToRelConverter( this, validator, catalogReader, planner, rexBuilder); sqlToRelConverter.setTrimUnusedFields(false); return sqlToRelConverter; }
/** * Walks over a tree of relational expressions, replacing each * {@link org.eigenbase.rel.RelNode} with a 'slimmed down' relational * expression that projects * only the columns required by its consumer. * * @param rootRel Relational expression that is at the root of the tree * @return Trimmed relational expression */ protected RelNode trimUnusedFields(RelNode rootRel) { final SqlToRelConverter converter = getSqlToRelConverter( getSqlValidator(), catalogReader); converter.setTrimUnusedFields(TRIM); return converter.trimUnusedFields(rootRel); }
/** * Walks over a tree of relational expressions, replacing each * {@link org.eigenbase.rel.RelNode} with a 'slimmed down' relational * expression that projects * only the columns required by its consumer. * * @param rootRel Relational expression that is at the root of the tree * @return Trimmed relational expression */ protected RelNode trimUnusedFields(RelNode rootRel) { final SqlToRelConverter converter = getSqlToRelConverter( getSqlValidator(), catalogReader); converter.setTrimUnusedFields(shouldTrim(rootRel)); return converter.trimUnusedFields(rootRel); }
public RelNode expandView(RelDataType rowType, String queryString, List<String> schemaPath) { SqlParser parser = SqlParser.create(parserFactory, queryString, lex.quoting, lex.unquotedCasing, lex.quotedCasing); SqlNode sqlNode; try { sqlNode = parser.parseQuery(); } catch (SqlParseException e) { throw new RuntimeException("parse failed", e); } final OptiqCatalogReader catalogReader = createCatalogReader().withSchemaPath(schemaPath); SqlValidator validator = new OptiqSqlValidator( operatorTable, catalogReader, typeFactory); SqlNode validatedSqlNode = validator.validate(sqlNode); SqlToRelConverter sqlToRelConverter = new SqlToRelConverter( null, validator, catalogReader, planner, createRexBuilder(), convertletTable); sqlToRelConverter.setTrimUnusedFields(false); return sqlToRelConverter.convertQuery(validatedSqlNode, true, false); } }
public RelNode convert(SqlNode sql) throws RelConversionException { ensure(State.STATE_4_VALIDATED); assert validatedSqlNode != null; this.sqlToRelConverter = new SqlToRelConverter( new ViewExpanderImpl(), validator, createCatalogReader(), planner, createRexBuilder(), convertletTable); sqlToRelConverter.setTrimUnusedFields(false); sqlToRelConverter.enableTableAccessConversion(false); rel = sqlToRelConverter.convertQuery(validatedSqlNode, false, true); rel = sqlToRelConverter.flattenTypes(rel, true); rel = sqlToRelConverter.decorrelate(validatedSqlNode, rel); state = State.STATE_5_CONVERTED; return rel; }
catalogReader, typeFactory); converter.setTrimUnusedFields(true); final SqlNode validatedQuery = validator.validate(sqlQuery); RelNode rel = converter.setTrimUnusedFields(true); rel = converter.trimUnusedFields(rel);
public RelNode convertSqlToRel(String sql) { Util.pre(sql != null, "sql != null"); final SqlNode sqlQuery; try { sqlQuery = parseQuery(sql); } catch (Exception e) { throw Util.newInternal(e); // todo: better handling } final RelDataTypeFactory typeFactory = getTypeFactory(); final Prepare.CatalogReader catalogReader = createCatalogReader(typeFactory); final SqlValidator validator = createValidator( catalogReader, typeFactory); final SqlToRelConverter converter = createSqlToRelConverter( validator, catalogReader, typeFactory); converter.setTrimUnusedFields(true); final SqlNode validatedQuery = validator.validate(sqlQuery); final RelNode rel = converter.convertQuery(validatedQuery, false, true); Util.post(rel != null, "return != null"); return rel; }