Re: Bug fix for cache lookup failure for statistic_ext type

Tomas Vondra <tomas.vondra@enterprisedb.com>

From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Mark Dilger <mark.dilger@enterprisedb.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-08-04T22:32:33Z
Lists: pgsql-hackers
On 8/5/21 12:03 AM, Mark Dilger wrote:
> Hackers,
> 
> You can easily get a cache lookup failure by changing the regression tests as included in this small patch.  The failure looks thus:
> 
> +COMMENT ON STATISTICS ab1_a_b_stats IS 'new comment';
> +CREATE ROLE temp_role;
> +SET SESSION AUTHORIZATION temp_role;
> +COMMENT ON STATISTICS ab1_a_b_stats IS 'changed comment';
> +ERROR:  cache lookup failed for type 27447
> +DROP STATISTICS ab1_a_b_stats;
> +ERROR:  cache lookup failed for type 27447
> +ALTER STATISTICS ab1_a_b_stats RENAME TO ab1_a_b_stats_new;
> +ERROR:  must be owner of statistics object ab1_a_b_stats
> +RESET SESSION AUTHORIZATION;
> +DROP ROLE temp_role;
> 
> I believe this case simply has not had any test coverage, as I don't
> see any way the current code would ever work.  It treats the Oid of the
> statistics object as a type, which it is not.
> 

Yeah, you're right - this is broken since 7b504eb282c. Thanks for the 
fix, I'll get it committed.


regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Commits

  1. Rename the role in stats_ext to have regress_ prefix

  2. Fix lookup error in extended stats ownership check