Sergej Sergeev wrote:
> 
> >Sergej Sergeev <[EMAIL PROTECTED]> writes:
> >  
> >
> >>>What happens if you feed other pseudotypes, like cstring or
> >>>language_handler?  Shouldn't that be disallowed or something?
> >>>      
> >>>
> >
> >  
> >
> >>Other pseudo-types are disallowed (no-change)
> >>    
> >>
> >
> >No, because you diked out the check at lines 1452ff, rather than
> >upgrading it to something correct.
> >
> >I find the "fn_retispseudo" and "arg_is_p" flags pretty bogus anyway
> >since they fail to indicate *which* pseudotype it is.  You might as
> >well just test for the specific type OID.
> >
> >                     regards, tom lane
> >  
> >
> New patch. I have added the check pseudo-type argumetns.
> Specific type is substituted in runtime, during function call.

I can't apply this patch because the code has changed too much.  Would
you regenerate a patch against current CVS?

Also, this indenting seems wrong:

> !                             /* Disallow pseudotype argument, except 
> ANYELEMENT or ANYARRAY */
>                               if (typeStruct->typtype == 'p')
> +                                     if (procStruct->proargtypes[i] == 
> ANYARRAYOID ||
> +                                             procStruct->proargtypes[i] == 
> ANYELEMENTOID)
> +                                      /* okay */
> +                                             prodesc->arg_is_p[i] = true;
> +                                     else
>                                       {
>                                               free(prodesc->proname);
>                                               free(prodesc);

Putting an 'if' after an 'if' is just too strange.  Please make a more
complete fix that has proper block indenting.

Also, I don't think the arg_is_p variable is really the proper fix for
this, but I am unsure what to recomment.  Others?

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to