Re: Virtual generated columns

jian he <jian.universality@gmail.com>

From: jian he <jian.universality@gmail.com>
To: Peter Eisentraut <peter@eisentraut.org>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>, Dean Rasheed <dean.a.rasheed@gmail.com>
Date: 2024-09-03T04:59:37Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Expand virtual generated columns for ALTER COLUMN TYPE

  2. Eliminate code duplication in replace_rte_variables callbacks

  3. Expand virtual generated columns in the planner

  4. Virtual generated columns

  5. Additional tests for stored generated columns

  6. Improve generated_stored test

  7. Fix handling of CREATE DOMAIN with GENERATED constraint syntax

  8. Add pg_constraint rows for not-null constraints

  9. Put generated_stored test objects in a schema

  10. Rename regress test generated to generated_stored

  11. Small code simplification

  12. Remove useless code

  13. Remove useless initializations

  14. doc: Clarify that pg_attrdef also stores generation expressions

  15. Clean out column-level pg_init_privs entries when dropping tables.

  16. Re-implement the ereport() macro using __VA_ARGS__.

Attachments

On Thu, Aug 29, 2024 at 9:35 PM jian he <jian.universality@gmail.com> wrote:
>
> On Thu, Aug 29, 2024 at 8:15 PM Peter Eisentraut <peter@eisentraut.org> wrote:
> >


> >
> > The new patch does some rebasing and contains various fixes to the
> > issues you presented.  As I mentioned, I'll look into improving the
> > rewriting.
>
>
> based on your latest patch (v4-0001-Virtual-generated-columns.patch),
> I did some minor cosmetic code change
> and tried to address get_attgenerated overhead.
>
> basically in expand_generated_columns_in_query
> and expand_generated_columns_in_expr preliminary collect (reloid,attnum)
> that have generated_virtual flag into expand_generated_context.
> later in expand_generated_columns_mutator use the collected information.
>
> deal with wholerow within the expand_generated_columns_mutator seems
> tricky, will try later.


please just ignore v4-0001-Virtual-generated-columns_minorchange.no-cfbot,
which I made some mistakes, but the tests still passed.

please checking this mail attached
v5-0001-Virtual-generated-wholerow-var-and-virtual-che.no-cfbot

It solves:
1. minor cosmetic changes.
2. virtual generated column wholerow var reference, tests added.
3. optimize get_attgenerated overhead, instead of for each var call
get_attgenerated.
  walk through the query tree, collect the virtual column's relation
oid, and the virtual generated column's attnum
and use this information later.


I will check the view insert case later.