Re: Virtual generated columns
Peter Eisentraut <peter@eisentraut.org>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Expand virtual generated columns for ALTER COLUMN TYPE
- 5069fef1cfae 18.0 landed
-
Eliminate code duplication in replace_rte_variables callbacks
- 363a6e8c6fcf 18.0 landed
-
Expand virtual generated columns in the planner
- 1e4351af329f 18.0 landed
-
Virtual generated columns
- 83ea6c54025b 18.0 landed
-
Additional tests for stored generated columns
- 41084409f635 18.0 landed
-
Improve generated_stored test
- 44b61efb7928 18.0 landed
- 86749ea3b766 18.0 landed
-
Fix handling of CREATE DOMAIN with GENERATED constraint syntax
- 84a67725cd11 18.0 landed
-
Add pg_constraint rows for not-null constraints
- 14e87ffa5c54 18.0 cited
-
Put generated_stored test objects in a schema
- 894be11adfa6 18.0 landed
-
Rename regress test generated to generated_stored
- b9ed4969250d 18.0 landed
-
Small code simplification
- 7ff9afbbd1df 18.0 landed
-
Remove useless code
- e26d313bad92 18.0 landed
-
Remove useless initializations
- da2aeba8f533 18.0 landed
-
doc: Clarify that pg_attrdef also stores generation expressions
- da486d360103 18.0 landed
-
Clean out column-level pg_init_privs entries when dropping tables.
- 76618097a6c0 17.0 cited
-
Re-implement the ereport() macro using __VA_ARGS__.
- e3a87b4991cc 13.0 cited
Attachments
- v7-0001-Virtual-generated-columns.patch (text/plain) patch v7-0001
On 09.09.24 08:02, Peter Eisentraut wrote: > On 04.09.24 12:33, Dean Rasheed wrote: >>> I left the 0001 patch alone for now and put the new rewriting >>> implementation into 0002. (Unfortunately, the diff is kind of useless >>> for visual inspection.) Let me know if this matches what you had in >>> mind, please. Also, is this the right place in fireRIRrules()? >> Yes, that's what I had in mind except that it has to be called from >> the second loop in fireRIRrules(), after any RLS policies have been >> added, because it's possible for a RLS policy expression to refer to >> virtual generated columns. It's OK to do it in the same loop that >> expands RLS policies, because such policies can only refer to columns >> of the same relation, so once the RLS policies have been expanded for >> a given relation, nothing else should get added to the query that can >> refer to columns of that relation, at that query level, so at that >> point it should be safe to expand virtual generated columns. > > If I move the code like that, then the postgres_fdw test fails. So > there is some additional interaction there that I need to study. This was actually a trivial issue. The RLS loop skips relation kinds that can't have RLS policies, which includes foreign tables. So I did this slightly differently and added another loop below the RLS loop for the virtual columns. Now this all works. I'm attaching a consolidated patch here, so we have something up to date on the record. I haven't worked through all the other recent feedback from Jian He yet; I'll do that next.