Re: Migration from DB2 to PostgreSQL - Mailing list pgsql-general

From Amit Langote
Subject Re: Migration from DB2 to PostgreSQL
Date
Msg-id CA+HiwqHtwksRu1TCKT+bSRDKHRnrGqarCOfGFNn6exbfqfSs7Q@mail.gmail.com
Whole thread Raw
In response to Re: Migration from DB2 to PostgreSQL  (Chris Angelico <rosuav@gmail.com>)
Responses Re: Migration from DB2 to PostgreSQL  (Chris Angelico <rosuav@gmail.com>)
List pgsql-general
On Thu, Jun 20, 2013 at 11:10 AM, Chris Angelico <rosuav@gmail.com> wrote:
> On Thu, Jun 20, 2013 at 12:09 PM, Amit Langote <amitlangote09@gmail.com> wrote:
>> Umm, my bad! I almost forgot I could write pure SQL function bodies.
>> Although, why does following happen? (sorry, a 8.4.2 installation) :
>>
>> postgres=# create or replace function gt(n int, m int) returns boolean
>> as 'select n>m' language sql;
>> ERROR:  column "n" does not exist
>> LINE 2: as 'select n>m' language sql;
>
> Hmm, no idea. I'm using 9.2.4, could well have been changes.
>

Hmm, I guess in 8.4.2, one needs to refer to function arguments as $1, $2 ...

postgres=# create or replace function gt(n int, m int) returns boolean
as 'select $1>$2' language sql;
CREATE FUNCTION

postgres=# create or replace function gt3(n int, m int, o int) returns boolean
as 'select gt($1,$2)' language sql;
CREATE FUNCTION

postgres=# select count(*) from nums where num > 3450;
 count
--------
 996550
(1 row)

Time: 126.184 ms

postgres=# select count(*) from nums where gt(num, 3450);
 count
--------
 996550
(1 row)

Time: 130.754 ms

postgres=# select count(*) from nums where gt3(num, 3450, 0);
 count
--------
 996550
(1 row)

Time: 140.031 ms


And yes. OP can go ahead with his migration using this suggested
wrapping function idea.


--
Amit Langote


pgsql-general by date:

Previous
From: Chris Angelico
Date:
Subject: Re: Migration from DB2 to PostgreSQL
Next
From: Chris Angelico
Date:
Subject: Re: Migration from DB2 to PostgreSQL