Re: Virtual generated columns

From: Peter Eisentraut <peter(at)eisentraut(dot)org>
To: jian he <jian(dot)universality(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Virtual generated columns
Date: 2024-07-29 14:59:07
Message-ID: 732a9543-0312-4f0c-a471-857b507a3546@eisentraut.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 22.07.24 12:53, jian he wrote:
> another bug?
> drop table gtest12v;
> CREATE TABLE gtest12v (a int PRIMARY KEY, b bigint, c int GENERATED
> ALWAYS AS (b * 2) VIRTUAL);
> insert into gtest12v (a,b) values (11, 22147483647);
> table gtest12v;
>
> insert ok, but select error:
> ERROR: integer out of range
>
> should insert fail?

I think this is the correct behavior.

There has been a previous discussion:
https://www.postgresql.org/message-id/2e3d5147-16f8-af0f-00ab-4c72cafc896f%402ndquadrant.com

> CREATE TABLE gtest12v (a int PRIMARY KEY, b bigint, c int GENERATED
> ALWAYS AS (b * 2) VIRTUAL);
> CREATE SEQUENCE sequence_testx OWNED BY gtest12v.c;
>
> seems to work. But I am not sure if there are any corner cases that
> make it not work.
> just want to raise this issue.

I don't think this matters. You can make a sequence owned by any
column, even if that column doesn't have a default that invokes the
sequence. So nonsensical setups are possible, but they are harmless.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Lakhin 2024-07-29 15:00:00 Re: Remove dead code generation tools in src/backend/utils/mb/
Previous Message Joel Jacobson 2024-07-29 14:42:17 Re: Optimize mul_var() for var1ndigits >= 8