From: | Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com> |
---|---|
To: | Etsuro Fujita <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Use %u to print user mapping's umid and userid |
Date: | 2016-05-11 09:03:49 |
Message-ID: | CAFjFpRd+v=Gb95QwVusy9tLwni6v1X9OOnheybBo-vMA7wie6g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Wed, May 11, 2016 at 1:34 PM, Etsuro Fujita <fujita(dot)etsuro(at)lab(dot)ntt(dot)co(dot)jp>
wrote:
> On 2016/05/11 16:49, Ashutosh Bapat wrote:
>
>> The patch is calculating user mapping when it's readily available
>> through RelOptInfo::fdw_private. That incurs a catalog lookup
>> unnecessarily. Instead, can we add new function makeOid, oidVal on the
>> lines of makeInteger and intVal to store and retrieve an OID resp. and
>> also corresponding print function? It might be helpful in future.
>>
>
> That might be an idea, but is the overhead in that re-calculation so large?
>
>
A call to GetForeignTable would incur a catalog lookup which means a
catalog table/index scan if corresponding entry is not in the cache. This
is followed by GetUserMapping() which is another catalog access. That's
bound to be expensive than an makeOid(), oidVal() call.
--
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company
From | Date | Subject | |
---|---|---|---|
Next Message | Martín Marqués | 2016-05-11 11:00:21 | Minor documentation patch |
Previous Message | Etsuro Fujita | 2016-05-11 08:04:58 | Re: Use %u to print user mapping's umid and userid |