> On Nov 25, 2023, at 9:47 AM, Alexander Korotkov <aekorot...@gmail.com> wrote:
> 
>> Should the patch at least document which parts of the EState are expected to 
>> be in which states, and which parts should be viewed as undefined?  If the 
>> implementors of table AMs rely on any/all aspects of EState, doesn't that 
>> prevent future changes to how that structure is used?
> 
> New tuple tuple_insert_with_arbiter() table AM API method needs EState
> argument to call executor functions: ExecCheckIndexConstraints(),
> ExecUpdateLockMode(), and ExecInsertIndexTuples().  I think we
> probably need to invent some opaque way to call this executor function
> without revealing EState to table AM.  Do you think this could work?

We're clearly not accessing all of the EState, just some specific fields, such 
as es_per_tuple_exprcontext.  I think you could at least refactor to pass the 
minimum amount of state information through the table AM API.

—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company





Reply via email to