mirror of
https://github.com/postgres/postgres.git
synced 2025-10-27 00:12:01 +03:00
Simplify the bootstrap (BKI) code by getting rid of a useless table of all
the strings seen during the bootstrap run. There might have been some actual point to doing that, many years ago, but as far as I can see the only value now is to conserve a bit of memory. Even if we cared about wasting a megabyte or so during the initdb run, it'd be far more effective to arrange to release memory at the end of each BKI command, instead of intentionally hanging onto strings that might never be used again. Not maintaining the table probably makes it faster too; but the main point of this patch is to get rid of a couple hundred lines of unnecessary and rather crufty code.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/bootstrap/bootstrap.h,v 1.52 2009/07/31 20:26:23 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/include/bootstrap/bootstrap.h,v 1.53 2009/09/27 01:32:11 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -16,38 +16,43 @@
|
||||
|
||||
#include "nodes/execnodes.h"
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CheckerProcess,
|
||||
BootstrapProcess,
|
||||
StartupProcess,
|
||||
BgWriterProcess,
|
||||
WalWriterProcess,
|
||||
|
||||
NUM_AUXPROCTYPES /* Must be last! */
|
||||
} AuxProcType;
|
||||
|
||||
/*
|
||||
* MAXATTR is the maximum number of attributes in a relation supported
|
||||
* at bootstrap time (i.e., the max possible in a system table).
|
||||
*/
|
||||
#define MAXATTR 40
|
||||
|
||||
typedef struct hashnode
|
||||
{
|
||||
int strnum; /* Index into string table */
|
||||
struct hashnode *next;
|
||||
} hashnode;
|
||||
|
||||
|
||||
extern Relation boot_reldesc;
|
||||
extern Form_pg_attribute attrtypes[MAXATTR];
|
||||
extern int numattr;
|
||||
|
||||
|
||||
extern void AuxiliaryProcessMain(int argc, char *argv[]);
|
||||
|
||||
extern void index_register(Oid heap, Oid ind, IndexInfo *indexInfo);
|
||||
|
||||
extern void err_out(void);
|
||||
extern void InsertOneTuple(Oid objectid);
|
||||
|
||||
extern void closerel(char *name);
|
||||
extern void boot_openrel(char *name);
|
||||
extern char *LexIDStr(int ident_num);
|
||||
|
||||
extern void DefineAttr(char *name, char *type, int attnum);
|
||||
extern void InsertOneTuple(Oid objectid);
|
||||
extern void InsertOneValue(char *value, int i);
|
||||
extern void InsertOneNull(int i);
|
||||
|
||||
extern char *MapArrayTypeName(char *s);
|
||||
extern char *CleanUpStr(char *s);
|
||||
extern int EnterString(char *str);
|
||||
|
||||
extern void index_register(Oid heap, Oid ind, IndexInfo *indexInfo);
|
||||
extern void build_indices(void);
|
||||
|
||||
extern void boot_get_type_io_data(Oid typid,
|
||||
@@ -64,15 +69,4 @@ extern int boot_yyparse(void);
|
||||
extern int boot_yylex(void);
|
||||
extern void boot_yyerror(const char *str);
|
||||
|
||||
typedef enum
|
||||
{
|
||||
CheckerProcess,
|
||||
BootstrapProcess,
|
||||
StartupProcess,
|
||||
BgWriterProcess,
|
||||
WalWriterProcess,
|
||||
|
||||
NUM_AUXPROCTYPES /* Must be last! */
|
||||
} AuxProcType;
|
||||
|
||||
#endif /* BOOTSTRAP_H */
|
||||
|
||||
Reference in New Issue
Block a user