Re: Virtual generated columns
vignesh C <vignesh21@gmail.com>
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
On Wed, 5 Feb 2025 at 04:06, Peter Eisentraut <peter@eisentraut.org> wrote: > > On 27.01.25 13:42, Dean Rasheed wrote: > > On Mon, 27 Jan 2025 at 09:59, Peter Eisentraut <peter@eisentraut.org> wrote: > >> > >> Here is an updated patch that integrates the above changes and also > >> makes some adjustments now that the logical replication configuration > >> questions are resolved. I think this is complete now. > >> > > > > In struct ResultRelInfo, the following field is added: > > > > int ri_NumGeneratedNeededI; > > int ri_NumGeneratedNeededU; > > > > + /* true if the above have been computed */ > > + bool ri_Generated_valid; > > + > > > > but that doesn't really seem to be accurate, because it's set to true > > by ExecInitGenerated() whether it's called with CMD_INSERT or > > CMD_UPDATE, so it will be true before both the other fields are > > computed. It's used from ExecGetExtraUpdatedCols() as an indicator > > that ri_extraUpdatedCols is valid, but it looks like that might not be > > the case, if ExecInitGenerated() was only called with CMD_INSERT. > > > > I'm not sure if that represents an actual bug, but it looks wrong. It > > should perhaps be called "ri_extraUpdatedCols_valid", and only set to > > true when ExecInitGenerated() is called with CMD_UPDATE, and > > ri_extraUpdatedCols is populated. > > Yeah, this is quite contorted. I have renamed it like you suggested. One suggestion: for the option where the user specifies publish_generated_columns as virtual (as shown below), could we change the error indicating that virtual generated columns are not currently supported? CREATE PUBLICATION pub1 FOR TABLE t1 WITH (publish_generated_columns = virtual); Also, could we add a XXX comment in either decode.c, pgoutput.c, or publicationcmds.c outlining what would be needed to support the replication of virtual generated columns? Specifically, it would be helpful if we could include how to retrieve virtual generated column data during decoding. This would serve as a reference for anyone working on enabling logical replication of virtual generated columns in the future. Regards, Vignesh