implementing another hash join...
Hi,
Im new to postgres and I'm about to implement the algorithm "double
pipelined hash join". I've started using SPI functions but soon I
realised that I 'm not at the right way (am I?). Is there a way that
I'm not obliged to change code of the optimizer of postgres but to
write a seperate code as a new function?I've been told by my supervisor
that I should use the function that is doing the hashing of a relation.
There is a chaos !!!!Please help!!I'm reading the documentation of
postgres and some '.c .h' files (mainly the createplan.c at the
directory "~/src/backend/optimizer/plan/") to figer out what to do and
from where to start.
Regards!!!!
Martha
Martha Chronopoulou <mchron@aueb.gr> writes:
Im new to postgres and I'm about to implement the algorithm "double
pipelined hash join". I've started using SPI functions but soon I
realised that I 'm not at the right way (am I?).
Not even close. You need to be implementing new executor node types
(see backend/executor) and teaching the planner about the properties
of this join method. SPI is at a completely different level of
abstraction ...
Is there a way that I'm not obliged to change code of the optimizer of
postgres
Nope. The set of join types it knows about is pretty much hard-wired.
regards, tom lane