mirror of
https://github.com/postgres/postgres.git
synced 2025-06-30 21:42:05 +03:00
Make bootstrap debug messages more readable. Clean up some clutter.
This commit is contained in:
@ -8,7 +8,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.106 2001/03/22 06:16:10 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.107 2001/05/12 01:48:49 petere Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -185,13 +185,11 @@ err_out(void)
|
||||
static void
|
||||
usage(void)
|
||||
{
|
||||
fprintf(stderr, "Usage: postgres -boot [-d] [-C] [-F] [-O] [-Q] ");
|
||||
fprintf(stderr, "[-P portno] [dbName]\n");
|
||||
fprintf(stderr, " d: debug mode\n");
|
||||
fprintf(stderr, " C: disable version checking\n");
|
||||
fprintf(stderr, " F: turn off fsync\n");
|
||||
fprintf(stderr, " O: set BootstrapProcessing mode\n");
|
||||
fprintf(stderr, " P portno: specify port number\n");
|
||||
fprintf(stderr, "Usage:\n postgres -boot [-d] [-D datadir] [-F] [-x num] dbname\n");
|
||||
fprintf(stderr, " -d debug mode\n");
|
||||
fprintf(stderr, " -D datadir data directory\n");
|
||||
fprintf(stderr, " -F turn off fsync\n");
|
||||
fprintf(stderr, " -x num internal use\n");
|
||||
|
||||
proc_exit(1);
|
||||
}
|
||||
@ -240,8 +238,6 @@ BootstrapMain(int argc, char *argv[])
|
||||
*/
|
||||
|
||||
/* Set defaults, to be overriden by explicit options below */
|
||||
Quiet = false;
|
||||
Noversion = false;
|
||||
dbName = NULL;
|
||||
if (!IsUnderPostmaster)
|
||||
{
|
||||
@ -250,7 +246,7 @@ BootstrapMain(int argc, char *argv[])
|
||||
* variable */
|
||||
}
|
||||
|
||||
while ((flag = getopt(argc, argv, "D:dCQx:pB:F")) != EOF)
|
||||
while ((flag = getopt(argc, argv, "B:dD:Fpx:")) != EOF)
|
||||
{
|
||||
switch (flag)
|
||||
{
|
||||
@ -261,15 +257,9 @@ BootstrapMain(int argc, char *argv[])
|
||||
DebugMode = true; /* print out debugging info while
|
||||
* parsing */
|
||||
break;
|
||||
case 'C':
|
||||
Noversion = true;
|
||||
break;
|
||||
case 'F':
|
||||
enableFsync = false;
|
||||
break;
|
||||
case 'Q':
|
||||
Quiet = true;
|
||||
break;
|
||||
case 'x':
|
||||
xlogop = atoi(optarg);
|
||||
break;
|
||||
@ -285,21 +275,12 @@ BootstrapMain(int argc, char *argv[])
|
||||
}
|
||||
} /* while */
|
||||
|
||||
if (argc - optind > 1)
|
||||
if (argc - optind != 1)
|
||||
usage();
|
||||
else if (argc - optind == 1)
|
||||
dbName = argv[optind];
|
||||
|
||||
if (dbName == NULL)
|
||||
{
|
||||
dbName = getenv("USER");
|
||||
if (dbName == NULL)
|
||||
{
|
||||
fputs("bootstrap backend: failed, no db name specified\n", stderr);
|
||||
fputs(" and no USER enviroment variable\n", stderr);
|
||||
proc_exit(1);
|
||||
}
|
||||
}
|
||||
dbName = argv[optind];
|
||||
|
||||
Assert(dbName);
|
||||
|
||||
if (!IsUnderPostmaster)
|
||||
{
|
||||
@ -493,9 +474,9 @@ boot_openrel(char *relname)
|
||||
if (reldesc != NULL)
|
||||
closerel(NULL);
|
||||
|
||||
if (!Quiet)
|
||||
printf("Amopen: relation %s. attrsize %d\n", relname ? relname : "(null)",
|
||||
(int) ATTRIBUTE_TUPLE_SIZE);
|
||||
if (DebugMode)
|
||||
elog(DEBUG, "open relation %s, attrsize %d", relname ? relname : "(null)",
|
||||
(int) ATTRIBUTE_TUPLE_SIZE);
|
||||
|
||||
reldesc = heap_openr(relname, NoLock);
|
||||
numattr = reldesc->rd_rel->relnatts;
|
||||
@ -523,11 +504,10 @@ boot_openrel(char *relname)
|
||||
{
|
||||
Form_pg_attribute at = attrtypes[i];
|
||||
|
||||
printf("create attribute %d name %s len %d num %d type %d\n",
|
||||
i, NameStr(at->attname), at->attlen, at->attnum,
|
||||
at->atttypid
|
||||
elog(DEBUG, "create attribute %d name %s len %d num %d type %u",
|
||||
i, NameStr(at->attname), at->attlen, at->attnum,
|
||||
at->atttypid
|
||||
);
|
||||
fflush(stdout);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -554,11 +534,11 @@ closerel(char *name)
|
||||
}
|
||||
|
||||
if (reldesc == NULL)
|
||||
elog(ERROR, "Warning: no opened relation to close.\n");
|
||||
elog(ERROR, "no open relation to close");
|
||||
else
|
||||
{
|
||||
if (!Quiet)
|
||||
printf("Amclose: relation %s.\n", relname ? relname : "(null)");
|
||||
if (DebugMode)
|
||||
elog(DEBUG, "close relation %s", relname ? relname : "(null)");
|
||||
heap_close(reldesc, NoLock);
|
||||
reldesc = (Relation) NULL;
|
||||
}
|
||||
@ -582,7 +562,7 @@ DefineAttr(char *name, char *type, int attnum)
|
||||
|
||||
if (reldesc != NULL)
|
||||
{
|
||||
fputs("Warning: no open relations allowed with 't' command.\n", stderr);
|
||||
elog(DEBUG, "warning: no open relations allowed with 'create' command");
|
||||
closerel(relname);
|
||||
}
|
||||
|
||||
@ -593,8 +573,8 @@ DefineAttr(char *name, char *type, int attnum)
|
||||
{
|
||||
attrtypes[attnum]->atttypid = Ap->am_oid;
|
||||
namestrcpy(&attrtypes[attnum]->attname, name);
|
||||
if (!Quiet)
|
||||
printf("<%s %s> ", NameStr(attrtypes[attnum]->attname), type);
|
||||
if (DebugMode)
|
||||
elog(DEBUG, "column %s %s", NameStr(attrtypes[attnum]->attname), type);
|
||||
attrtypes[attnum]->attnum = 1 + attnum; /* fillatt */
|
||||
attlen = attrtypes[attnum]->attlen = Ap->am_typ.typlen;
|
||||
attrtypes[attnum]->attbyval = Ap->am_typ.typbyval;
|
||||
@ -605,8 +585,8 @@ DefineAttr(char *name, char *type, int attnum)
|
||||
{
|
||||
attrtypes[attnum]->atttypid = Procid[typeoid].oid;
|
||||
namestrcpy(&attrtypes[attnum]->attname, name);
|
||||
if (!Quiet)
|
||||
printf("<%s %s> ", NameStr(attrtypes[attnum]->attname), type);
|
||||
if (DebugMode)
|
||||
elog(DEBUG, "column %s %s", NameStr(attrtypes[attnum]->attname), type);
|
||||
attrtypes[attnum]->attnum = 1 + attnum; /* fillatt */
|
||||
attlen = attrtypes[attnum]->attlen = Procid[typeoid].len;
|
||||
attrtypes[attnum]->attstorage = 'p';
|
||||
@ -654,10 +634,7 @@ InsertOneTuple(Oid objectid)
|
||||
int i;
|
||||
|
||||
if (DebugMode)
|
||||
{
|
||||
printf("InsertOneTuple oid %u, %d attrs\n", objectid, numattr);
|
||||
fflush(stdout);
|
||||
}
|
||||
elog(DEBUG, "inserting row oid %u, %d columns", objectid, numattr);
|
||||
|
||||
tupDesc = CreateTupleDesc(numattr, attrtypes);
|
||||
tuple = heap_formtuple(tupDesc, values, Blanks);
|
||||
@ -668,10 +645,7 @@ InsertOneTuple(Oid objectid)
|
||||
heap_insert(reldesc, tuple);
|
||||
heap_freetuple(tuple);
|
||||
if (DebugMode)
|
||||
{
|
||||
printf("End InsertOneTuple, objectid=%u\n", objectid);
|
||||
fflush(stdout);
|
||||
}
|
||||
elog(DEBUG, "row inserted");
|
||||
|
||||
/*
|
||||
* Reset blanks for next tuple
|
||||
@ -691,30 +665,25 @@ InsertOneValue(Oid objectid, char *value, int i)
|
||||
char *prt;
|
||||
struct typmap **app;
|
||||
|
||||
AssertArg(i >= 0 || i < MAXATTR);
|
||||
|
||||
if (DebugMode)
|
||||
printf("Inserting value: '%s'\n", value);
|
||||
if (i < 0 || i >= MAXATTR)
|
||||
{
|
||||
printf("i out of range: %d\n", i);
|
||||
Assert(0);
|
||||
}
|
||||
elog(DEBUG, "inserting column %d value '%s'", i, value);
|
||||
|
||||
if (Typ != (struct typmap **) NULL)
|
||||
{
|
||||
struct typmap *ap;
|
||||
|
||||
if (DebugMode)
|
||||
puts("Typ != NULL");
|
||||
elog(DEBUG, "Typ != NULL");
|
||||
app = Typ;
|
||||
while (*app && (*app)->am_oid != reldesc->rd_att->attrs[i]->atttypid)
|
||||
++app;
|
||||
ap = *app;
|
||||
if (ap == NULL)
|
||||
{
|
||||
printf("Unable to find atttypid in Typ list! %u\n",
|
||||
reldesc->rd_att->attrs[i]->atttypid
|
||||
);
|
||||
Assert(0);
|
||||
elog(FATAL, "unable to find atttypid %u in Typ list",
|
||||
reldesc->rd_att->attrs[i]->atttypid);
|
||||
}
|
||||
values[i] = OidFunctionCall3(ap->am_typ.typinput,
|
||||
CStringGetDatum(value),
|
||||
@ -724,8 +693,8 @@ InsertOneValue(Oid objectid, char *value, int i)
|
||||
values[i],
|
||||
ObjectIdGetDatum(ap->am_typ.typelem),
|
||||
Int32GetDatum(-1)));
|
||||
if (!Quiet)
|
||||
printf("%s ", prt);
|
||||
if (DebugMode)
|
||||
elog(DEBUG, " -> %s", prt);
|
||||
pfree(prt);
|
||||
}
|
||||
else
|
||||
@ -736,9 +705,9 @@ InsertOneValue(Oid objectid, char *value, int i)
|
||||
break;
|
||||
}
|
||||
if (typeindex >= n_types)
|
||||
elog(ERROR, "can't find type OID %u", attrtypes[i]->atttypid);
|
||||
elog(ERROR, "type oid %u not found", attrtypes[i]->atttypid);
|
||||
if (DebugMode)
|
||||
printf("Typ == NULL, typeindex = %u idx = %d\n", typeindex, i);
|
||||
elog(DEBUG, "Typ == NULL, typeindex = %u", typeindex);
|
||||
values[i] = OidFunctionCall3(Procid[typeindex].inproc,
|
||||
CStringGetDatum(value),
|
||||
ObjectIdGetDatum(Procid[typeindex].elem),
|
||||
@ -747,15 +716,12 @@ InsertOneValue(Oid objectid, char *value, int i)
|
||||
values[i],
|
||||
ObjectIdGetDatum(Procid[typeindex].elem),
|
||||
Int32GetDatum(-1)));
|
||||
if (!Quiet)
|
||||
printf("%s ", prt);
|
||||
if (DebugMode)
|
||||
elog(DEBUG, " -> %s", prt);
|
||||
pfree(prt);
|
||||
}
|
||||
if (DebugMode)
|
||||
{
|
||||
puts("End InsertValue");
|
||||
fflush(stdout);
|
||||
}
|
||||
elog(DEBUG, "inserted");
|
||||
}
|
||||
|
||||
/* ----------------
|
||||
@ -766,9 +732,8 @@ void
|
||||
InsertOneNull(int i)
|
||||
{
|
||||
if (DebugMode)
|
||||
printf("Inserting null\n");
|
||||
if (i < 0 || i >= MAXATTR)
|
||||
elog(FATAL, "i out of range (too many attrs): %d\n", i);
|
||||
elog(DEBUG, "inserting column %d NULL", i);
|
||||
Assert(i >= 0 || i < MAXATTR);
|
||||
values[i] = PointerGetDatum(NULL);
|
||||
Blanks[i] = 'n';
|
||||
}
|
||||
@ -855,7 +820,7 @@ gettype(char *type)
|
||||
return i;
|
||||
}
|
||||
if (DebugMode)
|
||||
printf("bootstrap.c: External Type: %s\n", type);
|
||||
elog(DEBUG, "external type: %s", type);
|
||||
rel = heap_openr(TypeRelationName, NoLock);
|
||||
scan = heap_beginscan(rel, 0, SnapshotNow, 0, (ScanKey) NULL);
|
||||
i = 0;
|
||||
|
Reference in New Issue
Block a user