Thread

Commits

  1. Rename the role in stats_ext to have regress_ prefix

  2. Fix lookup error in extended stats ownership check

  1. Bug fix for cache lookup failure for statistic_ext type

    Mark Dilger <mark.dilger@enterprisedb.com> — 2021-08-04T22:03:57Z

    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.
    
    
  2. Re: Bug fix for cache lookup failure for statistic_ext type

    Tomas Vondra <tomas.vondra@enterprisedb.com> — 2021-08-04T22:32:33Z

    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
    
    
    
    
  3. Re: Bug fix for cache lookup failure for statistic_ext type

    Tomas Vondra <tomas.vondra@enterprisedb.com> — 2021-08-31T17:50:58Z

    
    On 8/5/21 12:32 AM, Tomas Vondra wrote:
    > 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.
    > 
    
    I've pushed a fix for this. And then a fix for the fix :-( because I 
    forgot about the rule that role names in regression tests should start 
    with regress_ prefix, so animals enforcing this failed.
    
    
    regards
    
    -- 
    Tomas Vondra
    EnterpriseDB: http://www.enterprisedb.com
    The Enterprise PostgreSQL Company
    
    
    
    
  4. Re: Bug fix for cache lookup failure for statistic_ext type

    Mark Dilger <mark.dilger@enterprisedb.com> — 2021-08-31T18:53:32Z

    
    > On Aug 31, 2021, at 10:50 AM, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote:
    > 
    > I've pushed a fix for this. And then a fix for the fix :-( because I forgot about the rule that role names in regression tests should start with regress_ prefix, so animals enforcing this failed.
    
    Thanks!
    
    —
    Mark Dilger
    EnterpriseDB: http://www.enterprisedb.com
    The Enterprise PostgreSQL Company