Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7b78474

Browse files
committed
Make CLUSTER MVCC-safe. Heikki Linnakangas
1 parent2fca2c0 commit7b78474

File tree

10 files changed

+894
-97
lines changed

10 files changed

+894
-97
lines changed

‎src/backend/access/heap/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
# Makefile for access/heap
55
#
66
# IDENTIFICATION
7-
# $PostgreSQL: pgsql/src/backend/access/heap/Makefile,v 1.14 2007/01/20 17:16:10 petere Exp $
7+
# $PostgreSQL: pgsql/src/backend/access/heap/Makefile,v 1.15 2007/04/08 01:26:27 tgl Exp $
88
#
99
#-------------------------------------------------------------------------
1010

1111
subdir = src/backend/access/heap
1212
top_builddir = ../../../..
1313
include$(top_builddir)/src/Makefile.global
1414

15-
OBJS = heapam.o hio.o tuptoaster.o
15+
OBJS = heapam.o hio.orewriteheap.otuptoaster.o
1616

1717
all: SUBSYS.o
1818

‎src/backend/access/heap/heapam.c

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.231 2007/04/03 04:14:26 tgl Exp $
11+
* $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.232 2007/04/08 01:26:27 tgl Exp $
1212
*
1313
*
1414
* INTERFACE ROUTINES
@@ -3299,6 +3299,51 @@ log_heap_move(Relation reln, Buffer oldbuf, ItemPointerData from,
32993299
returnlog_heap_update(reln,oldbuf,from,newbuf,newtup, true);
33003300
}
33013301

3302+
/*
3303+
* Perform XLogInsert of a HEAP_NEWPAGE record to WAL. Caller is responsible
3304+
* for writing the page to disk after calling this routine.
3305+
*
3306+
* Note: all current callers build pages in private memory and write them
3307+
* directly to smgr, rather than using bufmgr. Therefore there is no need
3308+
* to pass a buffer ID to XLogInsert, nor to perform MarkBufferDirty within
3309+
* the critical section.
3310+
*
3311+
* Note: the NEWPAGE log record is used for both heaps and indexes, so do
3312+
* not do anything that assumes we are touching a heap.
3313+
*/
3314+
XLogRecPtr
3315+
log_newpage(RelFileNode*rnode,BlockNumberblkno,Pagepage)
3316+
{
3317+
xl_heap_newpagexlrec;
3318+
XLogRecPtrrecptr;
3319+
XLogRecDatardata[2];
3320+
3321+
/* NO ELOG(ERROR) from here till newpage op is logged */
3322+
START_CRIT_SECTION();
3323+
3324+
xlrec.node=*rnode;
3325+
xlrec.blkno=blkno;
3326+
3327+
rdata[0].data= (char*)&xlrec;
3328+
rdata[0].len=SizeOfHeapNewpage;
3329+
rdata[0].buffer=InvalidBuffer;
3330+
rdata[0].next=&(rdata[1]);
3331+
3332+
rdata[1].data= (char*)page;
3333+
rdata[1].len=BLCKSZ;
3334+
rdata[1].buffer=InvalidBuffer;
3335+
rdata[1].next=NULL;
3336+
3337+
recptr=XLogInsert(RM_HEAP_ID,XLOG_HEAP_NEWPAGE,rdata);
3338+
3339+
PageSetLSN(page,recptr);
3340+
PageSetTLI(page,ThisTimeLineID);
3341+
3342+
END_CRIT_SECTION();
3343+
3344+
returnrecptr;
3345+
}
3346+
33023347
staticvoid
33033348
heap_xlog_clean(XLogRecPtrlsn,XLogRecord*record)
33043349
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp