Re: Column value derived from generated column in INSERT?

From: Mark Raynsford <co+org(dot)postgresql(at)io7m(dot)com>
To: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
Cc: pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Column value derived from generated column in INSERT?
Date: 2022-10-19 19:30:57
Message-ID: 20221019193057.39aff1c1@sunflower.int.arc7.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 2022-10-19T11:58:07 -0700
"David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> wrote:

> On Wed, Oct 19, 2022 at 10:36 AM Mark Raynsford <co+org(dot)postgresql(at)io7m(dot)com>
> wrote:
>
> > insert into t (y) values (t.x * 2);
> >
> > I can think of various ways to do it with multiple statements, but a
> > single statement would be preferable.
> >
> >
> No, by extension of the documented constraint: "The generation expression
> can refer to other columns in the table, but not other generated columns."
>

Hello!

Just want to confirm that I wasn't misunderstood. The documentation in
CREATE TABLE has the sentence you quoted above, and unless I'm
misunderstanding that's saying that the expression used to generate
values in GENERATED (ALWAYS AS) columns can't refer to other GENERATED
columns. That's fine, but that's not what I was asking. In the table
above, `x` is generated without references to other columns, but for
the non-GENERATED `y` value, I want to refer to the value that `x` will
have when I calculate a value for the `y` column in the INSERT
statement.

If that's not doable, that's fine, I just want to be sure. :)

--
Mark Raynsford | https://www.io7m.com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2022-10-19 19:43:31 Re: Column value derived from generated column in INSERT?
Previous Message Philip Semanchuk 2022-10-19 19:02:42 Custom function ROWS hint ignored due to inlining?