org.apache.calcite.sql.SqlUnresolvedFunction Java Examples
The following examples show how to use
org.apache.calcite.sql.SqlUnresolvedFunction.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ExpressionGenerator.java From streamline with Apache License 2.0 | 5 votes |
@Override public Expression visit(SqlCall call) { SqlOperator sqlOperator = call.getOperator(); if (sqlOperator instanceof SqlBinaryOperator) { return visitBinaryOperator((SqlBinaryOperator) sqlOperator, call.getOperandList().get(0), call.getOperandList().get(1)); } else if (sqlOperator instanceof SqlSpecialOperator) { return visitSqlSpecialOperator((SqlSpecialOperator) sqlOperator, call.getOperandList()); } else if (sqlOperator instanceof SqlFunction) { SqlFunction sqlFunction = (SqlFunction) sqlOperator; if (sqlFunction instanceof SqlAggFunction) { return visitAggregateFunction(sqlFunction.getName(), call.getOperandList()); } else if (sqlFunction instanceof SqlUnresolvedFunction) { String udfName = sqlFunction.getName().toUpperCase(); if (catalogUdfs.containsKey(udfName)) { Udf udfInfo = catalogUdfs.get(udfName); if (udfInfo.isAggregate()) { return visitUserDefinedAggregateFunction(udfInfo, call.getOperandList()); } else { return visitUserDefinedFunction(udfInfo, call.getOperandList()); } } else { throw new UnsupportedOperationException("Unknown built-in or User defined function '" + udfName + "'"); } } else { return visitFunction(sqlFunction.getName(), call.getOperandList()); } } else { throw new UnsupportedOperationException("Operator " + sqlOperator.getName() + " is not supported"); } }
Example #2
Source File: SqlAbstractParserImpl.java From calcite with Apache License 2.0 | 5 votes |
/** * Creates a call. * * @param funName Name of function * @param pos Position in source code * @param funcType Type of function * @param functionQualifier Qualifier * @param operands Operands to call * @return Call */ protected SqlCall createCall( SqlIdentifier funName, SqlParserPos pos, SqlFunctionCategory funcType, SqlLiteral functionQualifier, SqlNode[] operands) { // Create a placeholder function. Later, during // validation, it will be resolved into a real function reference. SqlOperator fun = new SqlUnresolvedFunction(funName, null, null, null, null, funcType); return fun.createCall(functionQualifier, pos, operands); }