parser exception on postgres function

121 views
Skip to first unread message

Rob Sargent

unread,
Mar 10, 2021, 10:47:11 AM3/10/21
to jooq...@googlegroups.com
Just an anomaly.  I get the following exception during a gradle build using nu.studer.jooq
INFO: Parse error              : Error when parsing column name : pv(events_less, events_equal, events_greater, 0)
org.jooq.impl.ParserException: Unknown function: [1:4] pv([*]events_less, events_equal, events_greater, 0)
    at org.jooq.impl.ParserContext.exception(ParserImpl.java:12259)
    at org.jooq.impl.ParserImpl.parseUnaryOps(ParserImpl.java:6558)
    at org.jooq.impl.ParserImpl.parseExp(ParserImpl.java:6522)
    at org.jooq.impl.ParserImpl.parseFactor(ParserImpl.java:6499)
    at org.jooq.impl.ParserImpl.parseSum(ParserImpl.java:6445)
    at org.jooq.impl.ParserImpl.parseNumericOp(ParserImpl.java:6430)
    at org.jooq.impl.ParserImpl.parseCollated(ParserImpl.java:6404)
    at org.jooq.impl.ParserImpl.parseConcat(ParserImpl.java:6394)
    at org.jooq.impl.ParserImpl.parsePredicate(ParserImpl.java:5323)
    at org.jooq.impl.ParserImpl.parseNot(ParserImpl.java:5253)
    at org.jooq.impl.ParserImpl.parseAnd(ParserImpl.java:5243)
    at org.jooq.impl.ParserImpl.parseOr(ParserImpl.java:5234)
    at org.jooq.impl.ParserImpl.parseField(ParserImpl.java:6311)
    at org.jooq.impl.ParserImpl.parseField(ParserImpl.java:6236)
    at org.jooq.impl.ParserImpl.parseField(ParserImpl.java:764)
    at org.jooq.impl.ParserImpl.parseField(ParserImpl.java:758)
    at org.jooq.meta.postgres.PostgresDatabase.tryParseColumnName(PostgresDatabase.java:266)
    at org.jooq.meta.postgres.PostgresDatabase.getIndexes0(PostgresDatabase.java:226)
    at org.jooq.meta.AbstractDatabase$14.run(AbstractDatabase.java:2338)
    at org.jooq.meta.AbstractDatabase.onError(AbstractDatabase.java:3094)
    at org.jooq.meta.AbstractDatabase.getIndexes(AbstractDatabase.java:2335)
    at org.jooq.meta.AbstractDatabase.getIndexes(AbstractDatabase.java:2369)
    at org.jooq.meta.AbstractTableDefinition.getIndexes(AbstractTableDefinition.java:99)
    at org.jooq.codegen.JavaGenerator.generateTable(JavaGenerator.java:5327)
    at org.jooq.codegen.JavaGenerator.generateTable(JavaGenerator.java:5038)
    at org.jooq.codegen.JavaGenerator.generateTables(JavaGenerator.java:5012)
    at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:582)
    at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:537)
    at org.jooq.codegen.JavaGenerator.generate(JavaGenerator.java:436)
    at org.jooq.codegen.GenerationTool.run0(GenerationTool.java:879)
    at org.jooq.codegen.GenerationTool.run(GenerationTool.java:233)
    at org.jooq.codegen.GenerationTool.generate(GenerationTool.java:228)
    at org.jooq.codegen.GenerationTool.main(GenerationTool.java:200)
However the function appears to be created just fine.  The definition is as follows:
CREATE OR REPLACE FUNCTION public.pv(l bigint, e bigint, g bigint, o integer)
 RETURNS double precision
 LANGUAGE sql
AS $function$
select 1.0*(g+e+o)/(l+e+g+o)::float;
$function$

The build succeed.  I just happened to watching the output.


 

Lukas Eder

unread,
Mar 10, 2021, 1:36:24 PM3/10/21
to jOOQ User Group
Thanks a lot for your report. We've started parsing index column definitions since recently (3.15.0 and 3.14.5: https://github.com/jOOQ/jOOQ/issues/11047) to be able to handle quoted identifiers. Obviously, we must ignore unknown user-defined functions, so that's clearly a bug:

Will fix soon and ship the fix with 3.15.0 and 3.14.9

Thanks,
Lukas

--
You received this message because you are subscribed to the Google Groups "jOOQ User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jooq-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jooq-user/5a5f0e27-3c6c-ed56-0572-6c731a06d9ac%40gmail.com.
Reply all
Reply to author
Forward
0 new messages