Thread: Adding a new node to the executor
Hey guys,I am taking my chances of posting a devel doubt on this list (couldn't find any other relevant list). I think I have spent too much time on this and need a fresh pair of eyes to look in it.. So this is my situation: 1. I have added a new field to RangeTblEntry (bool tablesample). 2. I have created a new executor node (this is to do system sampling[Ref: Query sampling thread]). In short, this new nodegoes over a tableblock by block, skipping some blocks as required. 3. Have made the appropriate changes to the parser+planner so that the information about a tablesample is passed from the parser to the executor. But the RangeTblEntry received by my executor node does not have the tablesample set, inspite of the fact that I do set it in parse_relation.c:addRangeTableEntry(). I have made the appropriate changes to copyfuncs.c, but still in vain.. Any help would be highly appreciated. I can send a diff if someone is interested. Thanks Varun
On Sat, Sep 03, 2005 at 02:43:20AM -0700, Varun Kacholia wrote: > But the RangeTblEntry received by my executor node does > not have the tablesample set, inspite of the fact that I do set it in > parse_relation.c:addRangeTableEntry(). > > I have made the appropriate changes to copyfuncs.c, but still in vain.. Did you change all the other files in src/backend/nodes? You need to change not only copyfuncs.c, but equalfuncs, outfuncs and readfuncs as well. -- Alvaro Herrera -- Valdivia, Chile Architect, www.EnterpriseDB.com "El miedo atento y previsor es la madre de la seguridad" (E. Burke)
Alvaro Herrera wrote: > On Sat, Sep 03, 2005 at 02:43:20AM -0700, Varun Kacholia wrote: > > > But the RangeTblEntry received by my executor node does > > not have the tablesample set, inspite of the fact that I do set it in > > parse_relation.c:addRangeTableEntry(). > > > > I have made the appropriate changes to copyfuncs.c, but still in vain.. > > Did you change all the other files in src/backend/nodes? You need to > change not only copyfuncs.c, but equalfuncs, outfuncs and readfuncs as > well. Yep. My suggestion is to pick an existing field in RangeTblEntry and find all occurances of that, and determine if your new field has to be added in that place. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073