Re: diff value retuns, debug mode and play mode

From: "AL ELK" <ali(at)verus(dot)com(dot)tr>
To: pgsql-bugs(at)postgresql(dot)org, pgsql-general(at)postgresql(dot)org, pgsql-sql(at)postgresql(dot)org
Subject: Re: diff value retuns, debug mode and play mode
Date: 2005-05-09 14:05:25
Message-ID: d5nqnb$o9l$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-general pgsql-sql

it is about null problem
........
declare
res numeric(15,2);
_pida integer[4]; <------------ Problem is here must be ---> pida
integer[4]='{}';
_pid integer;
_rec record;
..................

"AL ELK" <ali(at)verus(dot)com(dot)tr>, haber iletisinde unlar
yazd:cv1rau$1djf$3(at)news(dot)hub(dot)org(dot)(dot)(dot)
>
> I have a postgresql function at the bottom , when i run at EMS POSTGRESQL
> debug mode with F8 step by step. Its work great but when i use with play
> button it returns null what is the different about debug mode and run
> mode.
>
> BEST REGARDS.
>
>
> CREATE OR REPLACE FUNCTION "public"."allocatedamount" (varchar, integer)
> RETURNS numeric AS
> $body$
> /* allocatedamount (varchar,integer)
> raporlarda kullan?lmak ?zere belirli bir sold un nekadar?n?n allocate
> edildi?ini bulmak i?in
> $1: Varchar: Tablo ismi.(SOCIAL,ACCOMODATION,vs)
> $2: Integer: Soldid.
> */
> declare
> res numeric(15,2);
> _pida integer[4]; _pid integer;
> _rec record;
> begin
> if $1 = 'REGISTRATION' then begin
> _pid:=1;
> for _rec in select personaldetails.id from personaldetails where
> personaldetails.id=$2 or personaldetails.masterid=$2 loop
> _pida[_pid]:=_rec.id;
> _pid:=_pid+1;
> end loop;
>
> select into res sum(allocatedpayments.amount) from allocatedpayments
> where allocatedpayments.tablename='REGISTRATION' and
> allocatedpayments.tableid = ANY (_pida::integer[]);
> res=888;
> end;
> ELSIF $1 = 'MASTER-REGISTRATION' then
> select into res sum(allocatedpayments.amount) from allocatedpayments
> where allocatedpayments.tablename='REGISTRATION' and
> allocatedpayments.tableid=$2;
>
>
> ELSIF $1 = 'ACC-REGISTRATION' then
> select into res sum(allocatedpayments.amount) from allocatedpayments
> where allocatedpayments.tablename='REGISTRATION' and
> allocatedpayments.tableid=$2;
>
>
> else
> select into res sum(allocatedpayments.amount) from allocatedpayments
> where allocatedpayments.tablename=$1 and allocatedpayments.tableid=$2;
>
> end if;
>
> if res is null then
> res:=0;
> end if;
>
>
> return res;
>
> end;
> $body$
> LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>
>

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2005-05-09 14:29:57 Re: set returning function
Previous Message Kris Jurka 2005-05-09 10:55:48 Re: set returning function

Browse pgsql-general by date

  From Date Subject
Next Message Jannelli 2005-05-09 14:24:50 aide postgres
Previous Message Robert Treat 2005-05-09 14:00:47 Re: Booleans - Why in Postgres and not in Oracle or Mysql?

Browse pgsql-sql by date

  From Date Subject
Next Message Mark Fenbers 2005-05-09 16:57:41 default value for select?
Previous Message Nick Fankhauser 2005-05-08 21:48:26 Re: interesting SQL puzzle - concatenating column with itself.