Re: Virtual generated columns
jian he <jian.universality@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 Sat, Feb 22, 2025 at 11:12 PM Richard Guo <guofenglinux@gmail.com> wrote:
>
> On Sat, Feb 22, 2025 at 11:55 PM Richard Guo <guofenglinux@gmail.com> wrote:
> > Attached are the updated patches to fix all the mentioned issues. I
> > plan to push them early next week after staring at the code for a bit
> > longer, barring any objections.
>
> Sign... I neglected to make the change in 0001 that a Var newnode
> compares its varlevelsup with 0 when deciding to wrap it in a
> ReturningExpr. I made this change in 0002 though, so maybe we're good
> here. Still, I'll fix this later.
>
i also noticed this issue...
some minor comments about v7.
* In order to be able to cache the results, we always generate the
* expansion with varlevelsup = 0. The caller is responsible for
* adjusting it if needed.
*
expandRTE(target_rte,
var->varno, 0 /* not varlevelsup */ ,
var->varreturningtype, var->location,
(var->vartype != RECORDOID),
&colnames, &fields);
the above comments should be put on top of ReplaceVarFromTargetList?
so people can easily catch it.
when using ReplaceVarFromTargetList,
they’ll be aware that they might need to call IncrementVarSublevelsUp
in the caller.
src/include/nodes/primnodes.h
* ReturningExpr nodes never appear in a parsed Query --- they are only ever
* inserted by the rewriter.
*/
typedef struct ReturningExpr
this comment needs to change?
on top of src/test/regress/sql/generated_virtual.sql, we have:
-- keep these tests aligned with generated_stored.sql
but gtest32 is only related to virtual generated column.
maybe add a comment saying gtest32 related tests do not
apply to stored generated column.