On Fri, Feb 11, 2011 at 8:51 AM, Nikhil S <nixmisc@gmail.com> wrote:
> Hi,
>
> On Thu, Feb 10, 2011 at 8:48 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> On Mon, Feb 7, 2011 at 9:03 AM, Nikhil S <nixmisc@gmail.com> wrote:
>> > One side-effect of this feature is that earlier where non-default
>> > variables
>> > appeared as empty, they will now appear with values "". This will happen
>> > only if some arguments have defvals and some don't. We could have added
>> > code
>> > to do away with "" entries, but then I thought it is possible for people
>> > to
>> > provide "" as default values too. So we can live with this I think..
>> >
>>
>> Even for non-strings?
>>
>
> Consider the following procedure:
>
> CREATE OR REPLACE PROCEDURE pass_proc(p1 IN INTEGER, p2 IN INTEGER, p3 IN
> INTEGER DEFAULT 0) IS
> BEGIN
> dbms_output.put_line('Parameter #1 P1 = ' || p1);
> END;
>
> The pldbg_get_target_info() function call returns the following info for
> defvals for this procedure:
>
> {"","",0}
>
> Because of this the first two params will end up getting "" prepopulated.
>
> Note that if there are no default values, the the defvals column is
> completely empty. Now why we see the "" for non-default arguments - the
> issue seems to be on the server side in the contrib module calls to compute
> the default values.
We need to change that then - we can't have the missing default values
default to something that's not valid for that datatype. Change them
to null or just empty them?
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company