a question about relkind of RelationData handed over to heap_update function
От | 노홍찬 |
---|---|
Тема | a question about relkind of RelationData handed over to heap_update function |
Дата | |
Msg-id | 000001ca557f$78179760$6846c620$@yonsei.ac.kr обсуждение исходный текст |
Ответы |
Re: a question about relkind of RelationData handed over to heap_update function
|
Список | 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 по дате отправления:
Предыдущее
От: James MansionДата:
Сообщение: Re: Could postgres be much cleaner if a future release skipped backward compatibility?
Следующее
От: Tom LaneДата:
Сообщение: Re: a question about relkind of RelationData handed over to heap_update function