pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Daniel CAUNE <d.caune@free.fr>
To: arnaulist@andromeiberica.com
To: pgsql-sql@postgresql.org
Subject: Re: help with version checking
Date: Thu, 28 Dec 2006 12:45:02 -0500
Message-ID: <000001c72aa7$e705f1e0$0b00a8c0@tedy> (raw)
In-Reply-To: <4593FF4F.40706@andromeiberica.com>

> I tried to do the following in PostgreSQL:
> 
> DECLARE
>    v_version VARCHAR;
> 
> BEGIN
>    SELECT version INTO v_version FROM version WHERE id = 1;
> 
>    IF v_version <> ''1.0.0.0'' THEN
>      RAISE EXCEPTION ''This script needs Agenda version 1.0.0.0,
> detected version %'', v_version;
>    END IF;
> 
> END;
> 
> //The upgrade stuff
> 
> but when I execute it, gives a lot of errors:
> 
> psql -d dermagier -f upgrade_agenda.sql
> psql:upgrade_agenda.sql:2: ERROR:  syntax error at or near "VARCHAR" at
> character 21
> psql:upgrade_agenda.sql:5: ERROR:  syntax error at or near "SELECT" at
> character 9
> psql:upgrade_agenda.sql:8: ERROR:  syntax error at or near "IF" at
> character 3
> psql:upgrade_agenda.sql:9: ERROR:  syntax error at or near "IF" at
> character 7
> psql:upgrade_agenda.sql:11: WARNING:  there is no transaction in progress
> COMMIT
> 
> 
> Anybody knows how I can do this or which is the best way to do it?
> 

You should define a PL/PGSQL function such as:

CREATE OR REPLACE FUNCTION check_version()
  RETURNS void
AS $$
DECLARE
  v_version VARCHAR;
BEGIN
  SELECT version INTO v_version FROM version WHERE id = 1;
 
  IF v_version <> '1.0.0.0' THEN
    RAISE EXCEPTION 'This script needs Agenda version 1.0.0.0, detected
version %', v_version;
  END IF;
END;
$$ LANGUAGE PLPGSQL;


Regards,

--
Daniel




view thread (10+ messages)  latest in thread

Message-ID: <000001c72aa7$e705f1e0$0b00a8c0@tedy>
Permalink:  ../000001c72aa7$e705f1e0$0b00a8c0@tedy/
Also on:    postgresql.org/message-id/000001c72aa7$e705f1e0$0b00a8c0@tedy

 · 

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: pgsql-sql@postgresql.org
  Cc: d.caune@free.fr, arnaulist@andromeiberica.com
  Subject: Re: help with version checking
  In-Reply-To: <000001c72aa7$e705f1e0$0b00a8c0@tedy>

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

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