src/main/codegen/config.fmpp
${project.build.directory}/generated-sources/fmpp
src/main/codegen/templates
generate-fmpp-sources
validate
generate
复制模板文件
从calcite源码包中,将code\src\main\codegen下所有文件复制到自己的代码路径下
写解析类
创建SqlJacky类,包路径为 org.apache.calcite.sql 因为,SqlJacky需要继承SqlNode类,而该类没有public构造函数。
package org.apache.calcite.sql;
import org.apache.calcite.sql.parser.SqlParserPos;
import org.apache.calcite.sql.util.SqlVisitor;
import org.apache.calcite.sql.validate.SqlValidator;
import org.apache.calcite.sql.validate.SqlValidatorScope;
import org.apache.calcite.util.Litmus;
public class SqlJacky extends SqlNode {
private String jackyString;
private SqlParserPos pos;
public SqlJacky(SqlParserPos pos, String jackyString){
super(pos);
this.pos = pos;
this.jackyString = jackyString;
}
public String getJackyString(){
System.out.println(“getJackyString”);
return this.jackyString;
}
@Override
public SqlNode clone(SqlParserPos sqlParserPos) {
System.out.println(“clone”);
return null;
}
@Override
public void unparse(SqlWriter sqlWriter, int i, int