我正在使用 Apache Calcite 添加一些内置函数。现在,我想实现GROUP_CONCAT
类似 MySQL 的功能,将一列与一个分隔符连接起来。
SELECT GROUP_CONCAT(n_name, '|') FROM nation GROUP BY n_lang;
函数类如下:
public class SqlGroupConcatFunction extends SqlAggFunction {
public SqlGroupConcatFunction() {
super(
"GROUP_CONCAT",
null,
SqlKind.GROUP_CONCAT,
ReturnTypes.VARCHAR_2000,
InferTypes.FIRST_KNOWN,
OperandTypes.family(SqlTypeFamily.ANY, SqlTypeFamily.STRING),
SqlFunctionCategory.STRING,
false,
false);
}
}
现在,我希望这个函数可以接受一个参数(不带分隔符)或两个参数。当只接受一个参数时,将第二个参数设置为默认值。
我没有找到在 Calcite 中设置默认参数值的任何方法。有实现此功能的方法吗?