Re: help with version checking

From: Daniel CAUNE <d(dot)caune(at)free(dot)fr>
To: arnaulist(at)andromeiberica(dot)com, pgsql-sql(at)postgresql(dot)org
Subject: Re: help with version checking
Date: 2006-12-28 17:45:02
Message-ID: 000001c72aa7$e705f1e0$0b00a8c0@tedy
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

> 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

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Arnau 2006-12-28 17:50:59 Re: help with version checking
Previous Message Arnau 2006-12-28 17:30:55 help with version checking