Le mer. 16 janv. 2019 à 17:40, Andrew Gierth <and...@tao11.riddles.org.uk>
a écrit :

> >>>>> "Andrew" == Andrew Gierth <and...@tao11.riddles.org.uk> writes:
> >>>>> "Guillaume" == Guillaume Lelarge <guilla...@lelarge.info> writes:
>
>  Guillaume> CASE grouping(to_char(b, 'MMYYYY'))
>
>  Guillaume> ERROR:  arguments to GROUPING must be grouping expressions of
> the
>  Guillaume> associated query level
>  Guillaume> LINE 3: CASE grouping(to_char(b, 'MMYYYY')) WHEN 1 THEN 'some
> date' ...
>
>  Guillaume> AFAICT, both queries should behave the same, though their
>  Guillaume> actual behaviours are quite opposite. Working fine for the
>  Guillaume> first, erroring out on the second.
>
>  Guillaume> Does anyone has any idea what's going on here?
>
>  Andrew> Not yet. But I will find out, since it seems to be a bug.
>
> It is definitely a bug, to do with assignment of collations. It
> specifically happens when you use GROUPING which contains any
> subexpression of a collatable type, inside a CASE expr WHEN clause,
> since that assigns collations to the expression much earlier in parsing
> than the rest of the query, so the code that validates GROUPING ends up
> trying to compare an expression which has had collations assigned to it
> to one which has not, and so it thinks they differ.
>
> I will see about fixing this, somehow.
>
>
Thanks a lot.


-- 
Guillaume.

Reply via email to