On Tue, 14 Jan 2025 at 19:08, Peter Eisentraut <pe...@eisentraut.org> wrote: > > On 13.01.25 19:15, Dean Rasheed wrote: > > On Wed, 8 Jan 2025 at 16:14, Peter Eisentraut <pe...@eisentraut.org> wrote: > >> > >> Here is a new patch version > > > > In expand_generated_columns_in_expr(): > > > > + RangeTblEntry *rte; > > + > > + rte = makeNode(RangeTblEntry); > > + rte->relid = RelationGetRelid(rel); > > + > > + node = expand_generated_columns_internal(node, rel, rt_index, rte); > > > > This dummy RTE is a bit too minimal. > > > > I think it should explicitly set rte->rtekind to RTE_RELATION, even > > though that's technically not necessary since RTE_RELATION is zero. > > > > In addition, it needs to set rte->eref, because expandRTE() (called > > from ReplaceVarsFromTargetList()) needs that when expanding whole-row > > variables. Here's a simple reproducer which crashes: > > > > CREATE TABLE foo (a int, b int GENERATED ALWAYS AS (a*2) VIRTUAL); > > ALTER TABLE foo ADD CONSTRAINT foo_check CHECK (foo IS NOT NULL); > > Thanks, fixed. Here is a new patch with that fixed and also a few > tweaks suggested by Jian. > > I've also added a patch that addresses logical replication. It > basically adds back some of the prohibitions against including generated > columns in publications that have been lifted, but this time only for > virtual generated columns, and amends the documentation. It doesn't > rename the publication option "publish_generated_columns", but maybe > that should be done.
Hi Peter, I tried to apply the patch on HEAD but it is not applying. Rebase is required because of recent commits. Thanks and Regards, Shlok Kyal