Re: SRF patch (was Re: [HACKERS] troubleshooting pointers)
| От | Joe Conway |
|---|---|
| Тема | Re: SRF patch (was Re: [HACKERS] troubleshooting pointers) |
| Дата | |
| Msg-id | 3CDF3C43.80404@joeconway.com обсуждение исходный текст |
| Ответ на | SRF patch (was Re: [HACKERS] troubleshooting pointers) (Joe Conway <mail@joeconway.com>) |
| Ответы |
Re: SRF patch (was Re: [HACKERS] troubleshooting pointers)
|
| Список | pgsql-patches |
Tom Lane wrote: > Joe Conway <mail@joeconway.com> writes: > >>Here's the patch, per my post to HACKERS. >>It builds cleanly on my dev box, and passes all regression tests. > > > I've committed this with some revisions. The VIEW cases you were > worried about seem to work now. I think you'll find that > single-FROM-item cases generally work, and it's time to start worrying > about joins (ie, rescans). Thanks! I've been offline most of the weekend, but I can get back on this now. I'll start work on the rescans and test cases below right away. Were your revisions extensive? Any major misconceptions on my part? Thanks, Joe > > Parameters also need thought. This should be rejected: > > regression=# select * from foo, foot(fooid) z where foo.f2 = z.f2; > server closed the connection unexpectedly > > On the other hand, IMHO this should work: > > regression=# select * from foo where f2 in > regression-# (select f2 from foot(foo.fooid) z where z.fooid = foo.fooid); > server closed the connection unexpectedly > > and here again rescanning is going to be critical. > > regards, tom lane > > PS: test case for above: > > create table foo(fooid int, f2 int); > insert into foo values(1, 11); > insert into foo values(2, 22); > insert into foo values(1, 111); > > create function foot(int) returns setof foo as ' > select * from foo where fooid = $1' language sql; > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html
В списке pgsql-patches по дате отправления: