diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2008-03-17 02:18:55 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2008-03-17 02:18:55 +0000 |
commit | 32846f815265b134b6ec2d20f16bf2d0c9e6f931 (patch) | |
tree | 2b04b90bcce876ac7f6ed431adc6fdc5cdc5d6ea /src/backend/access/transam/twophase.c | |
parent | a7c58abeb1d510a31098b1eb706ae18b662af8df (diff) |
Fix TransactionIdIsCurrentTransactionId() to use binary search instead of
linear search when checking child-transaction XIDs. This makes for an
important speedup in transactions that have large numbers of children,
as in a recent example from Craig Ringer. We can also get rid of an
ugly kluge that represented lists of TransactionIds as lists of OIDs.
Heikki Linnakangas
Diffstat (limited to 'src/backend/access/transam/twophase.c')
-rw-r--r-- | src/backend/access/transam/twophase.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c index de369eda6b1..a51f884c116 100644 --- a/src/backend/access/transam/twophase.c +++ b/src/backend/access/transam/twophase.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/transam/twophase.c,v 1.39 2008/01/01 19:45:48 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/access/transam/twophase.c,v 1.40 2008/03/17 02:18:55 tgl Exp $ * * NOTES * Each global transaction is associated with a global transaction @@ -827,7 +827,6 @@ StartPrepare(GlobalTransaction gxact) save_state_data(children, hdr.nsubxacts * sizeof(TransactionId)); /* While we have the child-xact data, stuff it in the gxact too */ GXactLoadSubxactData(gxact, hdr.nsubxacts, children); - pfree(children); } if (hdr.ncommitrels > 0) { |