a question about relkind of RelationData handed over to heap_update function - Mailing list pgsql-hackers
| From | 노홍찬 |
|---|---|
| Subject | a question about relkind of RelationData handed over to heap_update function |
| Date | |
| Msg-id | 000001ca557f$78179760$6846c620$@yonsei.ac.kr Whole thread Raw |
| Responses |
Re: a question about relkind of RelationData handed over to heap_update function
|
| List | pgsql-hackers |
<div class="Section1"><p class="MsoNormal">Dear hackers,<p class="MsoNormal"> <p class="MsoNormal">I’m modifying
backendsource codes of pgsql. <p class="MsoNormal"> <p class="MsoNormal">While inspecting the heap_update function
(src/backend/access/heapam.c),<p class="MsoNormal"> <p class="MsoNormal">I found that the relkind fields of all
RelationDatawhich is handed over to heap_update are all the same as ‘r’.<p class="MsoNormal"> <p class="MsoNormal">I
wantto distinguish normal relation (actual table) from primary index relation (primary indexes of some tables).<p
class="MsoNormal"> <pclass="MsoNormal">As you know, there are 6 different relkinds (I,r,S,u,t,v,c). <p
class="MsoNormal"> <pclass="MsoNormal">I guess primary index relation’s relkind’d be the same as normal relation’s
(i.e.‘r’).<p class="MsoNormal"> <p class="MsoNormal"> <p class="MsoNormal">Is there any way I can distinguish normal
relationfrom primary index relation in the heap_update function?<p class="MsoNormal"> <p class="MsoNormal">In the
followingcode, I want to make ‘doIcl = false’ for the primary index relation.<p class="MsoNormal"> <p
class="MsoNormal">Thankyou for reading this.<p class="MsoNormal">-------------- -------------- --------------
---------------------------- -------------- -------------- -------------- -------------- -------------- --------------
---------------------------- -------------- -------------- -------------- <p class="MsoNormal"> <p
class="MsoNormal">heap_update(Relationrelation, ItemPointer otid, HeapTuple newtup,<p
class="MsoNormal"> ItemPointer ctid, TransactionId *update_xmax,<p
class="MsoNormal"> CommandId cid, Snapshot crosscheck, bool wait)<p
class="MsoNormal">{<pclass="MsoNormal"> HTSU_Result result;<p class="MsoNormal">
TransactionIdxid = GetCurrentTransactionId();<p class="MsoNormal"> Bitmapset *hot_attrs;<p
class="MsoNormal"> ItemId lp;<p class="MsoNormal"> HeapTupleData
oldtup;<pclass="MsoNormal"> HeapTuple heaptup;<p class="MsoNormal"> Page page;<p
class="MsoNormal"> Buffer buffer, newbuf;<p class="MsoNormal"> bool need_toast,
already_marked;<pclass="MsoNormal"> Size newtupsize, pagefree;<p class="MsoNormal"> bool
have_tuple_lock= false;<p class="MsoNormal"> bool iscombo;<p class="MsoNormal"> bool
use_hot_update= false;<p class="MsoNormal"> bool all_visible_cleared = false;<p
class="MsoNormal"> bool all_visible_cleared_new = false;<p class="MsoNormal"> <p
class="MsoNormal"> /* hongs added; variables */<p class="MsoNormal">#ifdef USE_ICL<p
class="MsoNormal"> bool doIcl = false, newDoIcl = false;<p class="MsoNormal"> BufferDesc
*bufHdr= NULL;<p class="MsoNormal"> BufferDesc *newBufHdr = NULL; //for inserting icl log
ofPageSetLSN<p class="MsoNormal"> Page newpage; //for inserting icl log of PageSetLSN<p
class="MsoNormal"> ItemId newlp;<p class="MsoNormal"> if(relation->rd_rel->relkind
!='r') {<p class="MsoNormal"> doIcl = true;<p class="MsoNormal"> }<p
class="MsoNormal"> else<p class="MsoNormal"> doIcl = false;<p
class="MsoNormal">#endif<pclass="MsoNormal"> <p class="MsoNormal">-------------- -------------- --------------
---------------------------- -------------- -------------- -------------- -------------- -------------- --------------
---------------------------- -------------- -------------- -------------- <p class="MsoNormal"> <p
class="MsoNormal"> <pclass="MsoNormal"> <p class="MsoNormal" style="text-autospace:none;word-break:break-all"><b><span
style="font-size:10.0pt;font-family:"맑은고딕";color:#1F497D">- Best Regards<br /> Hongchan<br /> (<a
href="mailto:fallsmal@cs.yonsei.ac.kr"><spanstyle="color:blue">fallsmal@cs.yonsei.ac.kr</span></a>, (02)2123-7757)
-</span></b><spanstyle="font-size:10.0pt;font-family:"맑은 고딕""></span><p class="MsoNormal"> <p class="MsoNormal"> </div>
pgsql-hackers by date: