Re: Can't find the right generated column syntax

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Bzzzz <lazyvirus(at)gmx(dot)com>
Cc: pgsql-novice <pgsql-novice(at)postgresql(dot)org>
Subject: Re: Can't find the right generated column syntax
Date: 2019-11-26 03:31:31
Message-ID: CAKFQuwaWK1tVFtbT16K2AnjqG20KA28ROuhmC29uiumQLch4sA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-novice

On Monday, November 25, 2019, Bzzzz <lazyvirus(at)gmx(dot)com> wrote:

> On Mon, 25 Nov 2019 19:41:00 -0700
> "David G. Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> wrote:
>
> > On Monday, November 25, 2019, Bzzzz <lazyvirus(at)gmx(dot)com> wrote:
> >
> > > Hi list,
> > >
> > > I've got this table:
> > > date_start timestamptz,
> > > date_end temstamptz
> > >
> > > and I'd like to auto-generate a 3rd column with a tstzrange:
> > > date_start timestamptz,
> > > date_end temstamptz,
> > > duration tstzrange GENERATED ALWAYS AS ( ? ) STORED
> > >
> > > but I can't find the right syntax to do so :/ (is it even possible ?)
> > >
> > >
> > You should provide actual SQL without typos
>
>
[... lots of stuff many of which aren’t expressions]

Probably should read the docs as to what an expression is and limit your
random tests to just those...

https://www.postgresql.org/docs/12/sql-expressions.html

> CREATE TABLE tst_timerange(a timestamptz, b timestamptz, c tstzrange
> generated always as ( ('['a,b'('::tstzrange) ) stored); ERROR: syntax
> error at or near "a" LINE 1: ...imestamptz, c tstzrange generated always
> as ( ('['a,b'('::ts...
>
>
Use the closing symbol of the pair for the upper bound...

That’s an impressive amount of random input that you seem to be claiming
you don’t understand why you were in error...your issue is a lot bigger
than just not knowing how to read the syntax for the generated column
feature ; for instance using learning technique whereby you demonstrate a
correctly executed expression using a simple SELECT command first, before
attempting to incorporate said working expression in the larger create
table command (without SELECT since its presence turns an expression into a
statement).

I’m not running v12 but probably...as ( tstzrange(a,b,’[)’) ) stored ...

using a function expression is the easiest.

David J.

In response to

Responses

Browse pgsql-novice by date

  From Date Subject
Next Message David G. Johnston 2019-11-26 03:35:50 Re: Can't find the right generated column syntax
Previous Message Bzzzz 2019-11-26 02:59:36 Re: Can't find the right generated column syntax