From: | Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com> |
---|---|
To: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>, Simon Riggs <simon(at)2ndQuadrant(dot)com> |
Cc: | David Steele <david(at)pgmasters(dot)net>, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: PATCH: use foreign keys to improve join estimates v1 |
Date: | 2016-04-06 23:15:59 |
Message-ID: | 28573c08-1338-e314-dd2e-3894325bf598@2ndquadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
attached is the patch split into two parts, as proposed by Simon. 0001
just adds the stuff to relcache, 0002 actually uses it for estimation.
On 04/04/2016 12:03 PM, Amit Langote wrote:
> On 2016/04/04 17:25, Simon Riggs wrote:
>> The rel cache code you're adding uses a flag called "rd_fkeyvalid"
>> which indicates that the relcache is correctly filled. That is
>> confusing, since it has nothing to do with the concept of
>> constraint validity. We should rename that to rd_fkeycachefilled or
>> similar.
>
> Maybe I'm missing something, but is a separate bool required at all
> in this case? Wouldn't simply doing the following suffice?
>
> /* Quick exit if we already computed the list. */
> if (relation->rd_fkeylist)
> return list_copy(relation->rd_fkeylist);
>
> ISTM, rd_fkeyvalid is modeled on rd_indexvalid, where the latter
> serves to convey more info than simply whether the index list is
> valid or not, so the extra field is justified.
I think you're right. I've copied the logic for indexes, but clearly for
foreign keys we don't need this flag. I've removed it.
>
> Also, it seems the patch forgot to update RelationDestroyRelation().
Right. Fixed.
regards
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Attachment | Content-Type | Size |
---|---|---|
0001-add-foreign-key-info-into-relcache.patch | binary/octet-stream | 10.3 KB |
0002-use-fkeys-in-join-estimation.patch | binary/octet-stream | 12.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2016-04-06 23:20:57 | Re: [PATCH v12] GSSAPI encryption support |
Previous Message | Tom Lane | 2016-04-06 23:01:04 | Re: pg_upgrade error regarding hstore operator |