Re: Getting fancy errors when accessing information_schema on 10.5

Axel Rau <axel.rau@chaos1.de>

From: Axel Rau <Axel.Rau@Chaos1.DE>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Laurenz Albe <laurenz.albe@cybertec.at>, pgsql-admin@postgresql.org
Date: 2018-10-30T14:35:39Z
Lists: pgsql-hackers

> Am 30.10.2018 um 14:45 schrieb Tom Lane <tgl@sss.pgh.pa.us>:
> 
> Laurenz Albe <laurenz.albe@cybertec.at <mailto:laurenz.albe@cybertec.at>> writes:
>> Tom Lane wrote:
>>> It doesn't happen for me either.  Looking at the planner code, it seems
>>> like the relkind check should happen first because it'd be cheaper than
>>> the OR condition.
> 
>> It is still unclear why the execution plan looks like that, but maybe
>> it would be more robust to change "has_sequence_privilege" so that it
>> just returns FALSE if the argument is not a sequence.
> 
> I was wondering about that, but somewhere along there we'd be losing
> all semblance of error checking on the OID argument, so it's not all
> that attractive a solution.  I'd prefer to understand why this isn't
> behaving the same as it does for other people before we resort to that.
> 
> Axel, would you try two more things on that DB?
> 
> explain select ((pg_has_role(relowner, 'USAGE'::text) OR has_sequence_privilege(oid, 'SELECT, UPDATE, USAGE'::text))) from pg_class;
> 
> explain select (relkind = ’S'::"char") from pg_class;

nextcloud=> explain select ((pg_has_role(relowner, 'USAGE'::text) OR has_sequence_privilege(oid, 'SELECT, UPDATE, USAGE'::text))) from pg_class;
                        QUERY PLAN                         
-----------------------------------------------------------
 Seq Scan on pg_class  (cost=0.00..28.56 rows=656 width=1)
(1 row)

nextcloud=> explain select (relkind = 'S'::"char") from pg_class;
                        QUERY PLAN                         
-----------------------------------------------------------
 Seq Scan on pg_class  (cost=0.00..28.56 rows=656 width=1)
(1 row)

> 
> That's just to positively confirm that the planner thinks the former
> expression is more expensive than the latter.
> 
> Assuming that it does, the only other answer I can think of is that
> there's something wrong with the insertion sort code in
> order_qual_clauses.  Pretty hard to see what, though.


Axel
---
PGP-Key:29E99DD6  ☀  computing @ chaos claudius