public inbox for [email protected]  
help / color / mirror / Atom feed
From: Pavel Stehule <[email protected]>
To: Igor Korot <[email protected]>
Cc: David G. Johnston <[email protected]>
Cc: Tom Lane <[email protected]>
Cc: Adrian Klaver <[email protected]>
Cc: pgsql-generallists.postgresql.org <[email protected]>
Subject: Re: Determine server version from psql script
Date: Sun, 23 Mar 2025 20:17:02 +0100
Message-ID: <CAFj8pRB5d=0WQYyK7Nho7XY2qY+rvgwzqSmWpVOYBdvC9dcDXw@mail.gmail.com> (raw)
In-Reply-To: <CA+FnnTx5n=yCw4+qcRuv-c7ECf=K=tao7j_k=dDp5nPUMJ7t_A@mail.gmail.com>
References: <CA+FnnTyWEsYi=_QTeSXoGXd7Fkd8C7_AnCc5=hho-DZF9_iunQ@mail.gmail.com>
	<[email protected]>
	<CA+FnnTz9-cjBDf3mC9fx_FCtZGDTneF9=w8LpTRdwCfxHN86yw@mail.gmail.com>
	<CAKFQuwZGjMYbP0nWYb2+-D1a_dNg6b-mDhDC96Am-c2MZOYTNw@mail.gmail.com>
	<CA+FnnTy2Lk+K8t2uKwc1cAnCm6+RTb72eVRxt9+Y8y+C=sUeyA@mail.gmail.com>
	<[email protected]>
	<CA+FnnTztyXpMxEiKTZhxMtcQ8Nm6D+M1jbfJFfkJYU9dyvTeLg@mail.gmail.com>
	<CAKFQuwZ3-wmpyUEdHUaL7H9RHp-FTxUJjVL3L5A0jqA2bbHXYw@mail.gmail.com>
	<CAKFQuwb6vf1L2O8X_6Qu2VNq9iUhCjbXTc=51702h7yo4dH=8w@mail.gmail.com>
	<CA+FnnTx5n=yCw4+qcRuv-c7ECf=K=tao7j_k=dDp5nPUMJ7t_A@mail.gmail.com>

Hi

ne 23. 3. 2025 v 19:31 odesílatel Igor Korot <[email protected]> napsal:

> Hi,
>
> [code]
> SELECT current_setting('server_version_num')::int > 130000 as v13
> \gset
> \if :v13
>    CREATE OR REPLACE TRIGGER playersinleague_insert AFTER INSERT ON
> playersinleague WHEN new.current_rank IS NULL
>    BEGIN
>            UPDATE playersinleague SET current_rank = 1 + (SELECT
> coalesce( max( current_rank ), 0 ) FROM playersinleague WHERE id =
> new.id) WHERE rowid = new.rowid;
> psql:draft_pg.sql:44265: ERROR:  syntax error at or near "TRIGGER"
> LINE 1: CREATE OR REPLACE TRIGGER playersinleague_insert AFTER INSER...
>                          ^
> [/code]
>
> What am I doing wrong?
>


the test should be

SELECT current_setting('server_version_num')::int > =140000 as v14

\if :v14
 ...

CREATE OR REPLACE is supported from PostgreSQL 14

https://www.postgresql.org/docs/14/sql-createtrigger.html

Regards

Pavel

>
> Thank you.
>
>
> On Sun, Mar 23, 2025 at 12:53 PM David G. Johnston
> <[email protected]> wrote:
> >
> > On Sunday, March 23, 2025, David G. Johnston <[email protected]>
> wrote:
> >>
> >> On Sunday, March 23, 2025, Igor Korot <[email protected]> wrote:
> >>>
> >>>
> >>> 2. Is there a way to do CREATE TRIGGER IF NOT EXIST for the earlier
> version?
> >>
> >>
> >> No.  You have to drop the trigger if it does exist and then create the
> new one.
> >
> >
> > Well, you can always query the catalogs directly to answer the question
> “does this trigger exist”.
> >
> > David J.
> >
>
>
>


view thread (14+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]
  Subject: Re: Determine server version from psql script
  In-Reply-To: <CAFj8pRB5d=0WQYyK7Nho7XY2qY+rvgwzqSmWpVOYBdvC9dcDXw@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox