WIP: parameterized function scan - Mailing list pgsql-hackers

From Antonin Houska
Subject WIP: parameterized function scan
Date
Msg-id 4FAD8A27.1030106@gmail.com
Whole thread Raw
Responses Re: WIP: parameterized function scan
List pgsql-hackers
Hello,
following this short discussion
http://archives.postgresql.org/message-id/4F5AA202.9020906@gmail.com
I gave it one more try and hacked the optimizer so that function can
become an inner relation in NL join, parametrized with values from the
outer relation.

I tried to explain my thoughts in comments. Other than that:

1. I haven't tried to use SpecialJoinInfo to constrain join order. Even
if the order matters in query like
SELECT * from a, func(a.i)
it's still inner join by nature. SpecialJoinInfo is used for INNER join
rarely, but never stored in PlannerInfo. Doing so only for these lateral
functions would be rather disruptive.

2. Simple SQL function (i.e. one that gets pulled-up into the main
query) is a special case. The query that results from such a pull-up no
longer contains any function (and thus is not affected by this patch)
but such cases need to be newly taken into account and examined / tested
(the patch unblocks them at parsing stage too).

3. There might be some open questions about SQL conformance.

I've spent quite a while looking into the optimizer code and after all I
was surprised that it didn't require that many changes. At least to make
few simple examples work. Do I ignore any important fact(s) ?

Thanks,
Tony.



Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: checkpointer code behaving strangely on postmaster -T
Next
From: Tom Lane
Date:
Subject: Re: problem/bug in drop tablespace?