Search in sources :

Example 1 with Config

use of org.apache.calcite.sql.parser.SqlParser.Config in project calcite by apache.

the class LexCaseSensitiveTest method runProjectQueryWithLex.

private static void runProjectQueryWithLex(Lex lex, String sql) throws SqlParseException, ValidationException, RelConversionException {
    Config javaLex = SqlParser.configBuilder().setLex(lex).build();
    Planner planner = getPlanner(null, javaLex, Programs.ofRules(Programs.RULE_SET));
    SqlNode parse = planner.parse(sql);
    SqlNode validate = planner.validate(parse);
    RelNode convert = planner.rel(validate).rel;
    RelTraitSet traitSet = planner.getEmptyTraitSet().replace(EnumerableConvention.INSTANCE);
    RelNode transform = planner.transform(0, traitSet, convert);
    assertThat(transform, instanceOf(EnumerableProject.class));
    List<String> fieldNames = transform.getRowType().getFieldNames();
    assertThat(fieldNames.size(), is(2));
    if (lex.caseSensitive) {
        assertThat(fieldNames.get(0), is("EMPID"));
        assertThat(fieldNames.get(1), is("empid"));
    } else {
        assertThat(fieldNames.get(0) + "-" + fieldNames.get(1), anyOf(is("EMPID-empid0"), is("EMPID0-empid")));
    }
}
Also used : RelNode(org.apache.calcite.rel.RelNode) Config(org.apache.calcite.sql.parser.SqlParser.Config) FrameworkConfig(org.apache.calcite.tools.FrameworkConfig) Planner(org.apache.calcite.tools.Planner) RelTraitSet(org.apache.calcite.plan.RelTraitSet) EnumerableProject(org.apache.calcite.adapter.enumerable.EnumerableProject) SqlNode(org.apache.calcite.sql.SqlNode)

Aggregations

EnumerableProject (org.apache.calcite.adapter.enumerable.EnumerableProject)1 RelTraitSet (org.apache.calcite.plan.RelTraitSet)1 RelNode (org.apache.calcite.rel.RelNode)1 SqlNode (org.apache.calcite.sql.SqlNode)1 Config (org.apache.calcite.sql.parser.SqlParser.Config)1 FrameworkConfig (org.apache.calcite.tools.FrameworkConfig)1 Planner (org.apache.calcite.tools.Planner)1