Re: latest plperl

From: Joe Conway <mail(at)joeconway(dot)com>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: pgsql-patches(at)postgresql(dot)org
Subject: Re: latest plperl
Date: 2004-07-01 05:56:06
Message-ID: 40E3A776.8020203@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-patches

Andrew Dunstan wrote:
> The attached patch (and 2 new files incorporating previous eloglvl.[ch] as
> before) has the following changes over previously sent patch
> (fixes all by me):

Some comments below:

--------------------
In plperl_trigger_build_args(), this looks bogus:

+ char *tmp;
+
+ tmp = (char *) malloc(sizeof(int));
...
+ sprintf(tmp, "%d", tdata->tg_trigger->tgnargs);
+ sv_catpvf(rv, ", argc => %s", tmp);
...
+ free(tmp);

I changed it to:

+ sv_catpvf(rv, ", argc => %d", tdata->tg_trigger->tgnargs);

--------------------
In this section, it appears that empty strings in the tuple will be
coerced into NULL values:

+ plval = plperl_get_elem(hvNew, platt);

+ if (plval)
+ {
+ src = plval;
+ if (strlen(plval))
+ {
+ modvalues[j] = FunctionCall3(&finfo,
+ CStringGetDatum(src),
+ ObjectIdGetDatum(typelem),
+ Int32GetDatum(tupdesc->attrs[atti]->atttypmod));
+ modnulls[j] = ' ';
+ }
+ else
+ {
+ modvalues[i] = (Datum) 0;
+ modnulls[j] = 'n';
+ }
+ }
+ plval = NULL;

Shouldn't that look more like this?

+ plval = plperl_get_elem(hvNew, platt);

+ if (plval)
+ {
+ modvalues[j] = FunctionCall3(&finfo,
+ CStringGetDatum(plval),
+ ObjectIdGetDatum(typelem),
+ Int32GetDatum(tupdesc->attrs[atti]->atttypmod));
+ modnulls[j] = ' ';
+ }
+ else
+ {
+ modvalues[i] = (Datum) 0;
+ modnulls[j] = 'n';
+ }

Joe

In response to

Responses

Browse pgsql-patches by date

  From Date Subject
Next Message Claudio Natoli 2004-07-01 07:39:51 Re: [PATCH] s_lock support for win32
Previous Message Joe Conway 2004-07-01 05:25:27 Re: compile warnings