Re: Proposal: variant of regclass

Поиск
Список
Период
Сортировка
От Marti Raudsepp
Тема Re: Proposal: variant of regclass
Дата
Msg-id CABRT9RDwj3NPYkECNdL_F-a3z_aOzE6O6oA-aqr_E9O6gpeqcg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Proposal: variant of regclass  (Yugo Nagata <nagata@sraoss.co.jp>)
Список pgsql-hackers
On Wed, Jan 22, 2014 at 1:44 PM, Yugo Nagata <nagata@sraoss.co.jp> wrote:
> On Wed, 22 Jan 2014 20:04:12 +0900 (JST)
> Tatsuo Ishii <ishii@postgresql.org> 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.

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).

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



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: Add min and max execute statement time in pg_stat_statement
Следующее
От: Claudio Freire
Дата:
Сообщение: Re: [Lsf-pc] Linux kernel impact on PostgreSQL performance