diff options
author | Pavan Deolasee | 2011-05-20 15:06:06 +0000 |
---|---|---|
committer | Pavan Deolasee | 2011-05-20 15:06:06 +0000 |
commit | f65ae81fa4c6436093915410222dc962ec657b33 (patch) | |
tree | a7aa88a822cda01d1447ef46c68f369b7f81ff64 /src/backend/access/gist/gistxlog.c | |
parent | 9bf28d03c9ca4f8a791b5e455f77b39d092dfa6c (diff) | |
parent | 1084f317702e1a039696ab8a37caf900e55ec8f2 (diff) |
Merge commit '1084f317702e1a039696ab8a37caf900e55ec8f2' into int-pgxc
Merge 9.0 PostgreSQL release into PGXC. Resolve conflicts thrown by git
and fix some issues raised during compilation. We still don't compile fine
at this point, but we should have resolved many conflicts to make further
progress.
Some of the changes in the regression tests are merged to reflect whats
there in 9.0 release. Those are easy to fix later when we run regressions
Conflicts:
contrib/Makefile
contrib/pgbench/pgbench.c
src/Makefile
src/backend/Makefile
src/backend/access/transam/varsup.c
src/backend/catalog/Makefile
src/backend/catalog/dependency.c
src/backend/catalog/genbki.sh
src/backend/commands/dbcommands.c
src/backend/commands/explain.c
src/backend/commands/vacuum.c
src/backend/executor/execMain.c
src/backend/executor/execProcnode.c
src/backend/executor/execTuples.c
src/backend/parser/analyze.c
src/backend/parser/gram.y
src/backend/parser/parse_utilcmd.c
src/backend/postmaster/postmaster.c
src/backend/rewrite/rewriteHandler.c
src/backend/storage/ipc/procarray.c
src/backend/storage/lmgr/proc.c
src/backend/tcop/postgres.c
src/backend/tcop/utility.c
src/backend/utils/cache/relcache.c
src/backend/utils/init/postinit.c
src/backend/utils/misc/guc.c
src/bin/pg_ctl/pg_ctl.c
src/include/Makefile
src/include/access/twophase.h
src/include/bootstrap/bootstrap.h
src/include/catalog/catversion.h
src/include/catalog/dependency.h
src/include/catalog/indexing.h
src/include/catalog/pg_proc.h
src/include/nodes/nodes.h
src/include/storage/lwlock.h
src/include/storage/proc.h
src/include/storage/procarray.h
src/include/utils/lsyscache.h
src/test/regress/expected/delete.out
src/test/regress/expected/float4.out
src/test/regress/expected/float8.out
src/test/regress/expected/geometry.out
src/test/regress/expected/join.out
src/test/regress/expected/point.out
src/test/regress/expected/rowtypes.out
src/test/regress/expected/timestamp.out
src/test/regress/expected/timestamptz.out
src/test/regress/expected/tsearch.out
src/test/regress/sql/numeric.sql
src/test/regress/sql/point.sql
Diffstat (limited to 'src/backend/access/gist/gistxlog.c')
-rw-r--r-- | src/backend/access/gist/gistxlog.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/backend/access/gist/gistxlog.c b/src/backend/access/gist/gistxlog.c index 672d714e01..7f5dd990c8 100644 --- a/src/backend/access/gist/gistxlog.c +++ b/src/backend/access/gist/gistxlog.c @@ -4,11 +4,11 @@ * WAL replay logic for GiST. * * - * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group + * Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.32 2009/01/20 18:59:36 heikki Exp $ + * $PostgreSQL: pgsql/src/backend/access/gist/gistxlog.c,v 1.35 2010/01/02 16:57:34 momjian Exp $ *------------------------------------------------------------------------- */ #include "postgres.h" @@ -396,6 +396,12 @@ gist_redo(XLogRecPtr lsn, XLogRecord *record) uint8 info = record->xl_info & ~XLR_INFO_MASK; MemoryContext oldCxt; + /* + * GIST indexes do not require any conflict processing. NB: If we ever + * implement a similar optimization we have in b-tree, and remove killed + * tuples outside VACUUM, we'll need to handle that here. + */ + RestoreBkpBlocks(lsn, record, false); oldCxt = MemoryContextSwitchTo(opCtx); @@ -644,6 +650,7 @@ gistContinueInsert(gistIncompleteInsert *insert) int j, k, pituplen = 0; + uint8 xlinfo; XLogRecData *rdata; XLogRecPtr recptr; Buffer tempbuffer = InvalidBuffer; @@ -732,6 +739,7 @@ gistContinueInsert(gistIncompleteInsert *insert) for (j = 0; j < ntodelete; j++) PageIndexTupleDelete(pages[0], todelete[j]); + xlinfo = XLOG_GIST_PAGE_SPLIT; rdata = formSplitRdata(index->rd_node, insert->path[i], false, &(insert->key), gistMakePageLayout(buffers, numbuffer)); @@ -745,6 +753,7 @@ gistContinueInsert(gistIncompleteInsert *insert) PageIndexTupleDelete(pages[0], todelete[j]); gistfillbuffer(pages[0], itup, lenitup, InvalidOffsetNumber); + xlinfo = XLOG_GIST_PAGE_UPDATE; rdata = formUpdateRdata(index->rd_node, buffers[0], todelete, ntodelete, itup, lenitup, &(insert->key)); @@ -761,7 +770,7 @@ gistContinueInsert(gistIncompleteInsert *insert) GistPageGetOpaque(pages[j])->rightlink = InvalidBlockNumber; MarkBufferDirty(buffers[j]); } - recptr = XLogInsert(RM_GIST_ID, XLOG_GIST_PAGE_UPDATE, rdata); + recptr = XLogInsert(RM_GIST_ID, xlinfo, rdata); for (j = 0; j < numbuffer; j++) { PageSetLSN(pages[j], recptr); |