4 package com.mapd.calcite.planner;
13 import org.apache.calcite.avatica.util.Casing;
14 import org.apache.calcite.plan.RelOptUtil;
15 import org.apache.calcite.rel.RelRoot;
16 import org.apache.calcite.schema.SchemaPlus;
17 import org.apache.calcite.sql.SqlNode;
18 import org.apache.calcite.sql.fun.SqlStdOperatorTable;
19 import org.apache.calcite.sql.parser.SqlParseException;
20 import org.apache.calcite.sql.parser.SqlParser;
21 import org.apache.calcite.sql.validate.SqlConformanceEnum;
22 import org.apache.calcite.tools.FrameworkConfig;
23 import org.apache.calcite.tools.Frameworks;
24 import org.apache.calcite.tools.Planner;
25 import org.apache.calcite.tools.RelConversionException;
26 import org.apache.calcite.tools.ValidationException;
27 import org.slf4j.LoggerFactory;
29 import java.util.function.Supplier;
30 import java.util.logging.Level;
31 import java.util.logging.Logger;
38 final static org.slf4j.Logger
MAPDLOGGER = LoggerFactory.getLogger(tester.class);
41 final SqlStdOperatorTable stdOpTab = SqlStdOperatorTable.instance();
45 final SchemaPlus rootSchema = Frameworks.createRootSchema(
true);
46 final FrameworkConfig config =
47 Frameworks.newConfigBuilder()
48 .defaultSchema(rootSchema.add(
"omnisci", mapd))
49 .operatorTable(stdOpTab)
50 .parserConfig(SqlParser.configBuilder()
51 .setConformance(SqlConformanceEnum.LENIENT)
52 .setUnquotedCasing(Casing.UNCHANGED)
53 .setCaseSensitive(
false)
57 Planner p = Frameworks.getPlanner(config);
59 SqlNode parseR = null;
61 parseR = p.parse(
"<<QUERY>>");
62 }
catch (SqlParseException ex) {
63 Logger.getLogger(tester.class.getName()).log(Level.SEVERE, null, ex);
66 SqlNode validateR = null;
69 }
catch (ValidationException ex) {
70 Logger.getLogger(tester.class.getName()).log(Level.SEVERE, null, ex);
74 relR = p.rel(validateR);
75 }
catch (RelConversionException ex) {
76 Logger.getLogger(tester.class.getName()).log(Level.SEVERE, null, ex);
78 MAPDLOGGER.error(
"Result was " + relR);
79 MAPDLOGGER.error(
"Result project() " + relR.project());
80 MAPDLOGGER.error(
"Result project() " + RelOptUtil.toString(relR.project()));
81 MAPDLOGGER.error(
"Json Version \n" + MapDSerializer.toString(relR.project()));
84 Supplier<MapDSqlOperatorTable> operatorTable =
new Supplier<MapDSqlOperatorTable>() {
95 MAPDLOGGER.error(
"MapDParser result: \n" + mp.processSql(
"<<QUERY>>", mdpo));
96 }
catch (SqlParseException ex) {
97 Logger.getLogger(tester.class.getName()).log(Level.SEVERE, null, ex);
98 }
catch (ValidationException ex) {
99 Logger.getLogger(tester.class.getName()).log(Level.SEVERE, null, ex);
100 }
catch (RelConversionException ex) {
101 Logger.getLogger(tester.class.getName()).log(Level.SEVERE, null, ex);
static void main(String[] args)
static final org.slf4j.Logger MAPDLOGGER