WIP: parameterized function scan
От | Antonin Houska |
---|---|
Тема | WIP: parameterized function scan |
Дата | |
Msg-id | 4FAD8A27.1030106@gmail.com обсуждение исходный текст |
Ответы |
Re: WIP: parameterized function scan
|
Список | 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.
Вложения
В списке pgsql-hackers по дате отправления: