Unfortunately, SELECT VERSION() gives a long text string - parsing out the version isn't reliable. So, we can reduce my question to a simpler question: What's the best way to determine if postgres is running > version x? Or, what's the best way to determine the exact version number programatically (ie not just a long string) On 9/24/12, Igor Neyman <ineyman@xxxxxxxxxxxxxx> wrote: >> -----Original Message----- >> From: Robert James [mailto:srobertjames@xxxxxxxxx] >> Sent: Monday, September 24, 2012 9:33 AM >> To: Postgres General >> Subject: Running CREATE only on certain Postgres versions >> >> I have some code which creates a function in Postgres, taken from >> http://wiki.postgresql.org/wiki/Array_agg . >> >> DROP AGGREGATE IF EXISTS array_agg(anyelement); CREATE AGGREGATE >> array_agg(anyelement) ( SFUNC=array_append, STYPE=anyarray, >> INITCOND='{}' >> ); >> >> The function was added in 8.4, and so the code fails when run on 8.4 or >> higher. >> >> How can I make the code cross-version compatible? For instance, how >> can I tell it to check the version, and only run if 8.3 or lower? Or >> another way to make it cross-version? > > Find your PG version with: > SELECT version(); > > and continue accordingly... > > Regards, > Igor Neyman > -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general