pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Arnau <arnaulist@andromeiberica.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: help with version checking
Date: Thu, 28 Dec 2006 19:20:55 +0100
Message-ID: <45940B07.4010708@andromeiberica.com> (raw)
In-Reply-To: <459409A2.9020103@andromeiberica.com>
References: <000001c72aa7$e705f1e0$0b00a8c0@tedy>
	<45940403.4010909@andromeiberica.com>
	<21284.1167328587@sss.pgh.pa.us>
	<459409A2.9020103@andromeiberica.com>

Arnau wrote:
> Tom Lane wrote:
>> Arnau <arnaulist@andromeiberica.com> writes:
>>>    I don't want, if it's possible, to create a function.
>>
>> Unlike Oracle, PG makes a strong distinction between SQL and
>> programmable languages (including plpgsql).  You can't write
>> plpgsql code without putting it into a function.
>>
>>             regards, tom lane
>>
> 
> I've tried Daniel's suggestion but the Raise doesn't terminate the 
> script execution, so if doesn't do what I need. Notice the Update 1
> 
> arebassa@beowulf:~$ psql -d dermagier -f upgrade_agenda.sql
> CREATE FUNCTION
> psql:upgrade_agenda.sql:16: ERROR:  This script needs Agenda version 
> 1.0.0.0, detected version 1.0.0.1
> UPDATE 1
> 
> 

I paste the script I have created:

CREATE OR REPLACE FUNCTION check_version() RETURNS void
AS '
DECLARE
   v_version VARCHAR;

BEGIN
   SELECT version INTO v_version FROM agenda_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';

SELECT check_version();

UPDATE agenda_version set version = '1.0.0.1' where id = 1;



-- 
Arnau



view thread (10+ messages)  latest in thread

Message-ID: <45940B07.4010708@andromeiberica.com>
Permalink:  ../45940B07.4010708@andromeiberica.com/
Also on:    postgresql.org/message-id/45940B07.4010708@andromeiberica.com

 · 

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: arnaulist@andromeiberica.com
  Subject: Re: help with version checking
  In-Reply-To: <45940B07.4010708@andromeiberica.com>

* 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