public DremioSqlToRelConverter( SqlConverter sqlConverter, SqlValidator validator, SqlRexConvertletTable convertletTable, Config config) { super(new NoOpExpander(), validator, sqlConverter.getCatalogReader(), sqlConverter.getCluster(), convertletTable, config); this.sqlConverter = sqlConverter; }
@Override public SqlNode visit(SqlLiteral literal) { if (literal instanceof SqlCharStringLiteral) { return SqlVarCharStringLiteral.create((SqlCharStringLiteral) literal); } return literal; } };
@Override public RelOptCluster getCluster() { return sqlConverter.getCluster(); }
public ParserConfig cloneWithSystemDefault(){ if(quoting == QUOTING && !supportFullyQualifiedProjections){ return this; } return new ParserConfig(QUOTING, identifierMaxLength); }
public ToRelContext createToRelContext() { return new ExtendedToRelContext(sqlConverter); }
@Override public RelNode toRel(ToRelContext context, RelOptTable relOptTable) { return ((ExtendedToRelContext) context).expandView(this).rel; }
public DremioCatalogReader getCatalogReader() { return sqlConverter.getCatalogReader(); }
public DynamicReturnType() { super(new DynamicType()); } }
private Checker(int size) { range = new FixedRange(size); }
public SqlFlattenOperator withIndex(int index){ return new SqlFlattenOperator(index); }
public RelDataType getOutputType(SqlNode validatedNode) { return validator.getValidatedNodeType(validatedNode); }
public UserSession getSession() { return sqlConverter.getSession(); }
public SqlNode validate(final SqlNode parsedNode) { return validator.validate(parsedNode); }
@Override public SqlVarCharStringLiteral clone(SqlParserPos pos) { return new SqlVarCharStringLiteral((NlsString) value, pos); }
public SqlOperatorImpl(String name, int argCountMin, int argCountMax, boolean isDeterministic, boolean isDynamic, SqlReturnTypeInference sqlReturnTypeInference, SqlSyntax syntax) { super(name, null, SqlKind.OTHER_FUNCTION, sqlReturnTypeInference, null, Checker.getChecker(argCountMin, argCountMax), null, SqlFunctionCategory.USER_DEFINED_FUNCTION); this.isDeterministic = isDeterministic; this.isDynamic = isDynamic; this.syntax = syntax; } @Override
public int nextFlattenIndex(){ return flattenCount.nextFlattenIndex(); }
public PlannerSettings getPlannerSettings() { return sqlConverter.getSettings(); }
@Override public Prepare.PreparingTable getTableForMember(List<String> names) { return getTable(names); }
/** * Given a Calcite's RelDataType, return a Dremio's corresponding TypeProtos.MinorType */ public static TypeProtos.MinorType getMinorTypeFromCalciteType(final RelDataType relDataType) { final SqlTypeName sqlTypeName = relDataType.getSqlTypeName(); return getMinorTypeFromCalciteType(sqlTypeName); }
@Override public RelOptCluster getCluster() { return parent.getCluster(); }