Adding a new node to the executor

Started by Varun Kacholiaover 20 years ago3 messages
#1Varun Kacholia
kacholia@gmail.com

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 node goes over a table
block 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

#2Alvaro Herrera
alvherre@alvh.no-ip.org
In reply to: Varun Kacholia (#1)
Re: Adding a new node to the executor

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)

#3Bruce Momjian
pgman@candle.pha.pa.us
In reply to: Alvaro Herrera (#2)
Re: Adding a new node to the executor

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, Pennsylvania 19073