Re: Virtual generated columns

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: jian he <jian.universality@gmail.com>
Cc: Dean Rasheed <dean.a.rasheed@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2024-11-05T16:21:42Z
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__.

On 18.09.24 04:38, jian he wrote:
> On Mon, Sep 16, 2024 at 5:22 PM jian he <jian.universality@gmail.com> wrote:
>>
>> in v7.
>>
> seems I am confused with the version number.
> 
> here, I attached another minor change in tests.
> 
> make
> ERROR:  invalid ON DELETE action for foreign key constraint containing
> generated column
> becomes
> ERROR:  foreign key constraints on virtual generated columns are not supported

I think the existing behavior is fine.  The first message is about 
something that is invalid anyway.  The second message is just that 
something is not supported yet.  If we end up implementing, then users 
will get the first message.

> change contrib/pageinspect/sql/page.sql
> expand information on t_infomask, t_bits information.

added to v8 patch

> change RelationBuildLocalRelation
> make the transient TupleDesc->TupleConstr three bool flags more accurate.

I don't think we need that.  At the time this is used, the generation 
expressions are not added to the table yet.  Note that stored generated 
columns are not dealt with here either.  If there is a bug, then we can 
fix it, but if not, then I'd rather keep the code simpler.