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:
https://github.com/jOOQ/jOOQ/issues/11611

Will fix soon and ship the fix with 3.15.0 and 3.14.9

Thanks,
Lukas

On Wed, Mar 10, 2021 at 4:47 PM Rob Sargent <[email protected]> wrote:

> 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.
>
>
>
>
> --
> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jooq-user/5a5f0e27-3c6c-ed56-0572-6c731a06d9ac%40gmail.com
> <https://groups.google.com/d/msgid/jooq-user/5a5f0e27-3c6c-ed56-0572-6c731a06d9ac%40gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jooq-user/CAB4ELO5vN%3D9xHyT0KF%3D2CZ9oe-ryDoUYQ%2BeTbHxKygLMPcLhfA%40mail.gmail.com.

Reply via email to