Re: Puzzled by ROW constructor behaviour?

From: Steve Baldwin <steve(dot)baldwin(at)gmail(dot)com>
To: Eagna <eagna(at)protonmail(dot)com>
Cc: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Puzzled by ROW constructor behaviour?
Date: 2022-11-22 21:19:29
Message-ID: CAKE1Aiafb1CRVdFJnbALXnkRRF=1_EYOOe2naQujVvKxS3MbkA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi Eagna,

Did you check the syntax of the INSERT statement? You either need 'VALUES
...' or a query. I don't think your expression on its own is considered a
query.

Cheers,

Steve

On Wed, Nov 23, 2022 at 8:11 AM Eagna <eagna(at)protonmail(dot)com> wrote:

>
> Hi all,
>
> I'm puzzled by some behaviour of the ROW constructor that I noticed when I
> was playing around.
>
> From the documentation (
> https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-ROW-CONSTRUCTORS),
> we have
>
> NUMBER 1
>
> > SELECT ROW(1,2.5,'this is a test') = ROW(1, 3, 'not the same') AS test1;
>
> result:
>
> > test1
> > f
>
> This is fine.
>
> and then
>
> NUMBER 2
>
> > SELECT ROW(1, 2.5, 'this is a test') = (VALUES (1, 2.5, 'this is a
> test')) AS test2;
>
> result:
>
> > test2
> > t
>
> OK - notice the equivalence of a ROW constructor and a VALUES clause.
>
> So, then I create this table:
>
> > CREATE TABLE test
> > (
> > a INT NOT NULL,
> > b INT NOT NULL,
> > c TEXT NOT NULL
> > );
>
> and then tried:
>
> NUMBER 3
>
> > INSERT INTO test ((ROW (1, 2.4, 'test...')));
>
> and I get:
>
> > ERROR: syntax error at or near "ROW"
> > LINE 1: INSERT INTO test ((ROW (1, 2.4, 'test...')));
>
>
> I tried various permutations of brackets and whatnot but nothing doing.
>
>
> My question is that if a ROW constructor works for a VALUES clause in
> statement NUMBER 2, then why not NUMBER 3?
>
>
> TIA and rgs,
>
> E.
>
>
>
>
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2022-11-22 21:19:50 Re: Upgrading to v12
Previous Message Eagna 2022-11-22 21:11:00 Puzzled by ROW constructor behaviour?