On Thu, Nov 24, 2016 at 5:29 AM, David Rowley
<david.rowley@2ndquadrant.com> wrote:
> There's 11 functions which are marked immutable, but are marked as
> parallel unsafe.
>
> postgres=# select proname from pg_proc where provolatile = 'i' and
> proparallel = 'u';
> proname
> -----------------------------
> _pg_expandarray
> _pg_keysequal
> _pg_truetypid
> _pg_truetypmod
> _pg_char_max_length
> _pg_char_octet_length
> _pg_numeric_precision
> _pg_numeric_precision_radix
> _pg_numeric_scale
> _pg_datetime_precision
> _pg_interval_type
> (11 rows)
>
> I'm finding hard to imagine a reason why these might be unsafe, but
> failed. I do notice they're all only used in information_schema.
>
> Could it just perhaps be that these just missed the verification
> process the other functions went through to determine their parallel
> safety?
Yes, I think that's it. I went through pg_proc.h, but never looked at
information_schema.sql.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company