public String generateSql() { SqlDialect dialect = getJdbcDialect(); final HiveJdbcImplementor jdbcImplementor = new HiveJdbcImplementor(dialect, (JavaTypeFactory) getCluster().getTypeFactory()); Project topProject; if (getInput() instanceof Project) { topProject = (Project) getInput(); } else { // If it is not a project operator, we add it on top of the input // to force generating the column names instead of * while // translating to SQL RelNode nodeToTranslate = getInput(); RexBuilder builder = getCluster().getRexBuilder(); List<RexNode> projects = new ArrayList<>( nodeToTranslate.getRowType().getFieldList().size()); for (int i = 0; i < nodeToTranslate.getRowType().getFieldCount(); i++) { projects.add(builder.makeInputRef(nodeToTranslate, i)); } topProject = new JdbcProject(nodeToTranslate.getCluster(), nodeToTranslate.getTraitSet(), nodeToTranslate, projects, nodeToTranslate.getRowType()); } final HiveJdbcImplementor.Result result = jdbcImplementor.translate(topProject); return result.asStatement().toSqlString(dialect).getSql(); }
@Override public JdbcProject copy(RelTraitSet traitSet, RelNode input, List<RexNode> projects, RelDataType rowType) { return new JdbcProject(getCluster(), traitSet, input, projects, rowType); }
public RelNode convert(RelNode rel) { final EnumerableProject project = (EnumerableProject) rel; return new JdbcRules.JdbcProject( rel.getCluster(), rel.getTraitSet().replace(getOutConvention()), convert(project.getInput(), project.getInput().getTraitSet().replace(getOutConvention())), project.getProjects(), project.getRowType()); } }
public RelNode convert(RelNode rel) { final Project project = (Project) rel; return new JdbcProject( rel.getCluster(), rel.getTraitSet().replace(out), convert( project.getInput(), project.getInput().getTraitSet().replace(out)), project.getProjects(), project.getRowType()); } }
public RelNode convert(RelNode rel) { final EnumerableProject project = (EnumerableProject) rel; return new JdbcRules.JdbcProject( rel.getCluster(), rel.getTraitSet().replace(getOutConvention()), convert(project.getInput(), project.getInput().getTraitSet().replace(getOutConvention())), project.getProjects(), project.getRowType()); } }
public RelNode convert(RelNode rel) { final Project project = (Project) rel; return new JdbcProject( rel.getCluster(), rel.getTraitSet().replace(out), convert( project.getInput(), project.getInput().getTraitSet().replace(out)), project.getProjects(), project.getRowType()); } }
@Override public JdbcProject copy(RelTraitSet traitSet, RelNode input, List<RexNode> projects, RelDataType rowType) { return new JdbcProject(getCluster(), traitSet, input, projects, rowType); }
public JdbcProject( RelOptCluster cluster, RelTraitSet traitSet, RelNode input, List<? extends RexNode> projects, RelDataType rowType) { super(cluster, traitSet, input, projects, rowType); assert getConvention() instanceof JdbcConvention; }
public JdbcProject( RelOptCluster cluster, RelTraitSet traitSet, RelNode input, List<? extends RexNode> projects, RelDataType rowType) { super(cluster, traitSet, input, projects, rowType); assert getConvention() instanceof JdbcConvention; }
public RelNode convert(RelNode rel) { LogicalProject project = (LogicalProject) rel; return new JdbcRules.JdbcProject(rel.getCluster(), rel.getTraitSet().replace(this.out), convert( project.getInput(), project.getInput().getTraitSet().replace(this.out).simplify()), project.getProjects(), project.getRowType()); }