creating a Plan... - Mailing list pgsql-hackers

From Martha Chronopoulou
Subject creating a Plan...
Date
Msg-id 41DB5E3A.5090103@aueb.gr
Whole thread Raw
List pgsql-hackers
<small><small><small><span lang="EN-US" style="font-size: 12pt; font-family: Arial;"><small>Hi all<br /> best wishes,
andhappy new year !!!!!  :)  :)<br /><br /> I implement a new type of join called "Double Pipelined Hash Join". This
typeof join requires 2 hash tables; one for the left (outer) and one for the right(inner) relation. At the execution
phaseone (or more) tuple(s) from the inner relation must probe the hash table of the outer relation and one (or more)
tuple(s)from the outer relation must probe the hash table of the inner relation. Let's make the assumption that the
sequenceof this selection of the tuples from the inner or the outer relation, happens in a random manner. (It’s obvious
thatthere are many details that I don't mention here; if there is a problem with this, please tell)<br /> Those days I
createthe plan that later on must be executed. The problem I have is that I don't know whether I should create two more
paths(inner and outer), that is to add two more fields to the struct Plan, so as to be able later, at the execution
phaseto access each relation tuple by tuple, and through a hash table any time I want.(is it necessary to add those
plannodes? should I create only 2 Hash nodes without adding anything else?)<br />  <br /> (i.e. ..<br /> typedef struct
Plan  // plannodes.h<br /> {<br /> NodeTag  type;<br /> ....<br /> ....<br /> struct Plan  *rigthtree;             //
foraccess tuple by tuple<br /> struct Plan *lefttree;                //</small></span></small></small></small><span
style="font-size:12pt; font-family: Arial;"><small><small><small><span lang="EN-US" style="font-size: 12pt;
font-family:Arial;"><small>for access tuple by tuple</small></span></small></small></small><br
/></span><small><small><small><spanlang="EN-US" style="font-size: 12pt; font-family: Arial;"><small>struct Plan 
*rigthtreeHash;    //for probing the hash table<br /> struct Plan  *lefttreeHash;       //for probing the hash table<br
/>....<br /> ....<br />  )Plan;<br /><br /> (The truth is that I'm thinking only the simple case where there is one
simpleJoin. I suspect that in other cases, things may be different.)<br /> If there is something that is not clear,
pleaselet me know, so as to give more info.<br /></small><small>Thanks in advance !!!!!!!!!!!!!!!</small><br
/></span></small></small></small>

pgsql-hackers by date:

Previous
From: Oliver Jowett
Date:
Subject: Re: [PATCHES] Implementing RESET CONNECTION ...
Next
From: Oleg Bartunov
Date:
Subject: Re: [pgsql-ru-general] Final call for translation updates