private static String getFunctionType(ParametricFunction function) { if (function.isAggregate()) { return "aggregate"; } if (function.isWindow()) { return "window"; } return "scalar"; }
private InternalTable buildFunctions() { InternalTable.Builder table = InternalTable.builder(informationSchemaTableColumns(TABLE_INTERNAL_FUNCTIONS)); for (ParametricFunction function : metadata.listFunctions()) { if (function.isApproximate()) { continue; } table.add( function.getSignature().getName(), Joiner.on(", ").join(function.getSignature().getArgumentTypes()), function.getSignature().getReturnType().toString(), getFunctionType(function), function.isDeterministic(), nullToEmpty(function.getDescription())); } return table.build(); }