On Fri, Nov 29, 2024 at 6:13 PM Peter Eisentraut <pe...@eisentraut.org> wrote: > > - Added support for virtual columns in trigger column lists. (For that, > I renamed ExecInitStoredGenerated() to ExecInitGenerated(), which > handles the computation of ri_extraUpdatedCols.) >
why not duplicate some code from ExecInitStoredGenerated to ExecGetExtraUpdatedCols? * now the expression is that something initiated for the virtual generated column. which may not be necessary for virtual columns. let's make ResultRelInfo->ri_GeneratedExprsI, ResultRelInfo->ri_GeneratedExprsU be NULL for virtual columns. currently it may look like this: (gdb) p resultRelInfo->ri_GeneratedExprsU $20 = (ExprState **) 0x34f9638 (gdb) p resultRelInfo->ri_GeneratedExprsU[0] $21 = (ExprState *) 0x0 (gdb) p resultRelInfo->ri_GeneratedExprsU[1] $22 = (ExprState *) 0x0 (gdb) p resultRelInfo->ri_GeneratedExprsU[2] $23 = (ExprState *) 0x40 * ExecInitStoredGenerated main used in ExecComputeStoredGenerated. * we also need to slightly change ExecInitGenerated's comments. * in InitResultRelInfo, do we need explicit set ri_Generated_valid to false? * duplicate code won't have big performance issues, since build_column_default will take most of the time. the attached patch makes ExecInitStoredGenerated as is; duplicate some code from ExecInitStoredGenerated to ExecGetExtraUpdatedCols.
v10-0001-refactor-ExecGetExtraUpdatedCols.no-cfbot
Description: Binary data