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:

Previous
From: James Mansion
Date:
Subject: Re: Could postgres be much cleaner if a future release skipped backward compatibility?
Next
From: Tom Lane
Date:
Subject: Re: a question about relkind of RelationData handed over to heap_update function