Sent from my iPad

On 14-Jul-2013, at 22:12, Hannu Krosing <ha...@2ndquadrant.com> wrote:

> On 07/14/2013 06:10 PM, Atri Sharma wrote:
>> 
>> Sent from my iPad
>> 
>> On 10-Jul-2013, at 13:11, Hannu Krosing <ha...@2ndquadrant.com> wrote:
>> 
>>> On 07/10/2013 09:18 AM, Atri Sharma wrote:
>>>>> Can you please post an example of such a join removal? I mean a query 
>>>>> before
>>>>> and after the removal. Thanks,
>>>> Courtesy Robert Haas:
>>>> 
>>>> SELECT foo.x, foo.y, foo.z FROM foo WHERE foo.x = bar.x
>>>> 
>>>> Conditions:
>>>> 
>>>> 1) foo.x is not null.
>>> I guess that this is also not needed. you can just remove rows where
>>> 
>>> foo.x is null
>>> 
>>> That is, replace the join with "foo.x is not null"
>>>> 2) foo (x) is a foreign key referencing bar (x).
>>>> 
>>>> We can ignore bar completely in this case i.e. avoid scanning bar.
>>>> 
>>>> Regards,
>>>> 
>>>> Atri
>>>> 
>>>> 
>>>> --
>>>> Regards,
>>>> 
>>>> Atri
>>>> l'apprenant
>> I discussed with RhodiumToad and was exploring potential design methods with 
>> which we can solve the above problem. My focus is to add support for foreign 
>> key detection in planner and allow planner to make decisions based on it.
>> 
>> It wouldn't be too much of a cost to maintain the foreign key column and the 
>> referenced table. The main issue, as pointed out by RHodiumToad is primarily 
>> that, between the generation of the plan, which is made with accordance to 
>> the foreign key presence, and the execution of the plan, we may get into an 
>> inconsistent state when the corresponding row is deleted or constraints are 
>> changed and fk trigger has not yet run and detected those changes.
> Is this not all transactional and taken care of by MVCC ?
> 
> That is, the problem can only happen for prepared plans, which need
> to have invalidation in case of underlaying DDL / schema changes anyway ?
> 
> Or are you worried about the case where the FK constraint is delayed and
> thus the plan can be invalid between the change and running of FK trigger
> in the same transaction ?

Yes, that is precisely what I am concerned about.Thanks for wording it so 
nicely!

Regards,

Atri
> 


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

Reply via email to