Re: Index AmInsert Parameter Confused? - Mailing list pgsql-hackers

From jacktby jacktby
Subject Re: Index AmInsert Parameter Confused?
Date
Msg-id 0DE3162E-375E-439C-A104-11E37B97BE5D@gmail.com
Whole thread Raw
In response to Re: Index AmInsert Parameter Confused?  (Matthias van de Meent <boekewurm+postgres@gmail.com>)
Responses Re: Index AmInsert Parameter Confused?
List pgsql-hackers

> 2023年9月27日 00:45,Matthias van de Meent <boekewurm+postgres@gmail.com> 写道:
>
> On Tue, 26 Sept 2023 at 18:38, jacktby jacktby <jacktby@gmail.com> wrote:
>>
>> typedef bool (*aminsert_function) (Relation indexRelation,
>>  Datum *values,
>>  bool *isnull,
>>  ItemPointer heap_tid,
>>  Relation heapRelation,
>>  IndexUniqueCheck checkUnique,
>>  bool indexUnchanged,
>>  struct IndexInfo *indexInfo);
>>
>> Why is there a heap_tid, We haven’t inserted the value, so where does it from ?
>
> Index insertion only happens after the TableAM tuple has been
> inserted. As indexes refer to locations in the heap, this TID contains
> the TID of the table tuple that contains the indexed values, so that
> the index knows which tuple to refer to.
>
> Note that access/amapi.h describes only index AM APIs; it does not
> cover the table AM APIs descibed in access/tableam.h
>
> Kind regards,
>
> Matthias van de Meent
1.Thanks, so if we insert a tuple into a table which has a index on itself, pg will insert tuple into heap firstly, and
thegive the heaptid form heap to the Index am api right? 
2. I’m trying to implement a new index, but I just need the data held in index table, I hope it’s not inserted into
heap,because the all data I want can be in index table. 


pgsql-hackers by date:

Previous
From: Noah Misch
Date:
Subject: Re: Fail hard if xlogreader.c fails on out-of-memory
Next
From: Michael Paquier
Date:
Subject: Re: Move global variables of pgoutput to plugin private scope.