Re: [HACKERS] fdw_private and (List*) handling in FDW API

2013-10-18 Thread Tom Lane
Tomas Vondra t...@fuzzy.cz writes:
 2) Is there any particular reason why PlanForeignModify/BeginForeignModify
 require the fdw_private to be a List*, and not a generic pointer?

That data has to be copiable by copyObject(), which a generic void* is
not.  We could perhaps have made it Node* instead, but that would only
work conveniently if there were infrastructure for plugins to create new
first-class Node types; which there isn't.  A List is often the easiest
way to transport a few random values from plan time to execution time,
so it seemed best to declare fdw_private that way.

regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] fdw_private and (List*) handling in FDW API

2013-10-18 Thread Tomas Vondra
On 18 Říjen 2013, 17:52, Tom Lane wrote:
 Tomas Vondra t...@fuzzy.cz writes:
 2) Is there any particular reason why
 PlanForeignModify/BeginForeignModify
 require the fdw_private to be a List*, and not a generic pointer?

 That data has to be copiable by copyObject(), which a generic void* is
 not.  We could perhaps have made it Node* instead, but that would only
 work conveniently if there were infrastructure for plugins to create new
 first-class Node types; which there isn't.  A List is often the easiest
 way to transport a few random values from plan time to execution time,
 so it seemed best to declare fdw_private that way.

Oh, I see. Thanks for explanation.

Tomas



-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers