Re: If a row-level security policy contains a set returning function, pg_dump returns an incorrect serialization of that policy if the return type of the function was altered
Dean Rasheed <dean.a.rasheed@gmail.com>
From: Dean Rasheed <dean.a.rasheed@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Timo Stolz <timo.stolz@nullachtvierzehn.de>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Jonas Reinsch <jonas.reinsch@pitchview.de>,
Laura Schlimmer <laura.schlimmer@pitchview.de>
Date: 2022-07-21T07:19:04Z
Lists: pgsql-bugs
On Wed, 20 Jul 2022 at 21:54, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > This has nothing particularly to do with RLS policies; you can > reproduce the same problem with any stored query that selects from a > function-returning-composite, for instance a view. > Yep, I reached the same conclusion. > What we have to do here is to suppress the aliases for any since-dropped > columns, while keeping the live ones. That's slightly finicky, but there > is existing code that can get the job done. ruleutils just wasn't > considering the possibility that function RTEs might have this problem. > Agreed. I even came up with a similar patch, but your version looks better. > The larger issue that this touches on is that we don't prevent you from > dropping the composite type's column even when the query using the > dependent function has hard references to that column (e.g, it's actually > output by the view). Maybe sometime somebody ought to work on tightening > that up. In the meantime though, it's bad for EXPLAIN or pg_dump to fail > altogether on such cases, so I propose the behavior shown in the attached > patch. > +1. LGTM. Regards, Dean
Commits
-
Close old gap in dependency checks for functions returning composite.
- c2fa113ddb11 15.0 landed
- 0b292bed9211 16.0 landed
-
Fix ruleutils issues with dropped cols in functions-returning-composite.
- c1d1e8469c77 15.0 landed
- da9a28fd5563 14.5 landed
- b9654cecea6a 16.0 landed
- b243092a6b24 12.12 landed
- 6bceacfe87ff 10.22 landed
- 5b5d43513985 13.8 landed
- 1078742af015 11.17 landed