On Thu, 23 Jan 2014 13:19:37 +0200
Marti Raudsepp <[email protected]> wrote:

> Resending to Tatsuo Ishii and Yugo Nagata, your email server was
> having problems yesterday:

Thanks for resending!

> 
> This is the mail system at host sraigw2.sra.co.jp.
> 
> <[email protected]>: mail for srasce.sra.co.jp loops back to myself
> <[email protected]>: mail for srasce.sra.co.jp loops back to myself
> 
> ---------- Forwarded message ----------
> From: Marti Raudsepp <[email protected]>
> Date: Thu, Jan 23, 2014 at 3:39 AM
> Subject: Re: [HACKERS] Proposal: variant of regclass
> To: Yugo Nagata <[email protected]>
> Cc: Tatsuo Ishii <[email protected]>, pgsql-hackers
> <[email protected]>, Vik Fearing <[email protected]>,
> Robert Haas <[email protected]>, Tom Lane <[email protected]>,
> Pavel Golub <[email protected]>, Pavel Golub
> <[email protected]>, Andres Freund <[email protected]>, Pavel
> StÄ›hule <[email protected]>
> 
> 
> On Wed, Jan 22, 2014 at 1:44 PM, Yugo Nagata <[email protected]> wrote:
> > On Wed, 22 Jan 2014 20:04:12 +0900 (JST)
> > Tatsuo Ishii <[email protected]> wrote:
> > parseTypeString() is called by some other functions and I avoided
> > influences of modifying the definition on them, since this should
> > raise errors in most cases. This is same reason for other *MissingOk
> > functions in parse_type.c.
> >
> > Is it better to write definitions of these function and all there callers?
> 
> Yes, for parseTypeString certainly. There have been many refactorings
> like that in the past and all of them use this pattern.

Ok. I'll rewrite the definition and there callers.

> 
> typenameTypeIdAndMod is less clear since the code paths differ so
> much, maybe keep 2 versions (merging back to 1 function is OK too, but
> in any case you don't need 3).

I'll also fix this in either way to not use typenameTypeIdAndMod_guts.

> 
> typenameTypeIdAndModMissingOk(...)
> {
>     Type tup = LookupTypeName(pstate, typeName, typmod_p);
>     if (tup == NULL || !((Form_pg_type) GETSTRUCT(tup))->typisdefined)
>         *typeid_p = InvalidOid;
>     else
>         *typeid_p = HeapTupleGetOid(tup);
> 
>     if (tup)
>         ReleaseSysCache(tup);
> }
> typenameTypeIdAndMod(...)
> {
>     Type tup = typenameType(pstate, typeName, typmod_p);
>     *typeid_p = HeapTupleGetOid(tup);
>     ReleaseSysCache(tup);
> }
> 
> ----
> 
> Also, there's no need for "else" here:
>     if (raiseError)
>         ereport(ERROR, ...);
>     else
>         return InvalidOid;
> 
> Regards,
> Marti


-- 
Yugo Nagata <[email protected]>


-- 
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to