1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-27 12:41:57 +03:00

Remove the 'slow' path for btree index build, which built the btree

incrementally by successive inserts rather than by sorting the data.
We were only using the slow path during bootstrap, apparently because
when first written it failed during bootstrap --- but it works fine now
AFAICT.  Removing it saves a hundred or so lines of code and produces
noticeably (~10%) smaller initial states of the system catalog indexes.
While that won't make much difference for heavily-modified catalogs,
for the more static ones there may be a useful long-term performance
improvement.
This commit is contained in:
Tom Lane
2006-04-01 03:03:37 +00:00
parent a8b8f4db23
commit 89bda95d82
4 changed files with 25 additions and 161 deletions

View File

@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtxlog.c,v 1.30 2006/03/31 23:32:05 tgl Exp $
* $PostgreSQL: pgsql/src/backend/access/nbtree/nbtxlog.c,v 1.31 2006/04/01 03:03:37 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -556,18 +556,6 @@ btree_xlog_newroot(XLogRecPtr lsn, XLogRecord *record)
}
}
static void
btree_xlog_newmeta(XLogRecPtr lsn, XLogRecord *record)
{
xl_btree_newmeta *xlrec = (xl_btree_newmeta *) XLogRecGetData(record);
Relation reln;
reln = XLogOpenRelation(xlrec->node);
_bt_restore_meta(reln, lsn,
xlrec->meta.root, xlrec->meta.level,
xlrec->meta.fastroot, xlrec->meta.fastlevel);
}
void
btree_redo(XLogRecPtr lsn, XLogRecord *record)
@ -609,9 +597,6 @@ btree_redo(XLogRecPtr lsn, XLogRecord *record)
case XLOG_BTREE_NEWROOT:
btree_xlog_newroot(lsn, record);
break;
case XLOG_BTREE_NEWMETA:
btree_xlog_newmeta(lsn, record);
break;
default:
elog(PANIC, "btree_redo: unknown op code %u", info);
}
@ -727,17 +712,6 @@ btree_desc(StringInfo buf, uint8 xl_info, char *rec)
xlrec->rootblk, xlrec->level);
break;
}
case XLOG_BTREE_NEWMETA:
{
xl_btree_newmeta *xlrec = (xl_btree_newmeta *) rec;
appendStringInfo(buf, "newmeta: rel %u/%u/%u; root %u lev %u fast %u lev %u",
xlrec->node.spcNode, xlrec->node.dbNode,
xlrec->node.relNode,
xlrec->meta.root, xlrec->meta.level,
xlrec->meta.fastroot, xlrec->meta.fastlevel);
break;
}
default:
appendStringInfo(buf, "UNKNOWN");
break;