1
0
mirror of https://github.com/postgres/postgres.git synced 2025-10-16 17:07:43 +03:00

pgindent run on all C files. Java run to follow. initdb/regression

tests pass.
This commit is contained in:
Bruce Momjian
2001-10-25 05:50:21 +00:00
parent 59da2105d8
commit b81844b173
818 changed files with 21684 additions and 20491 deletions

View File

@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.34 2001/10/23 21:26:44 tgl Exp $
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.35 2001/10/25 05:49:52 momjian Exp $
*
* Modifications - 28-Jun-2000 - pjw@rhyme.com.au
*
@@ -42,20 +42,20 @@
* - Only disable triggers in DataOnly (or implied data-only) restores.
*
* Modifications - 31-Mar-2001 - pjw@rhyme.com.au
*
*
* - Rudimentary support for dependencies in archives. Current implementation
* uses dependencies to modify the OID used in sorting TOC entries.
* This will NOT handle multi-level dependencies, but will manage simple
* relationships like UDTs & their functions.
*
* - Treat OIDs with more respect (avoid using ints, use macros for
* - Treat OIDs with more respect (avoid using ints, use macros for
* conversion & comparison).
*
* Modifications - 10-May-2001 - pjw@rhyme.com.au
* - Treat SEQUENCE SET TOC entries as data entries rather than schema
* entries.
* - Make allowance for data entries that did not have a data dumper
* routine (eg. SEQUENCE SET)
* routine (eg. SEQUENCE SET)
*
*-------------------------------------------------------------------------
*/
@@ -88,7 +88,7 @@ static void _moveAfter(ArchiveHandle *AH, TocEntry *pos, TocEntry *te);
static void _moveBefore(ArchiveHandle *AH, TocEntry *pos, TocEntry *te);
static int _discoverArchiveFormat(ArchiveHandle *AH);
static void _fixupOidInfo(TocEntry *te);
static Oid _findMaxOID(const char *((*deps)[]));
static Oid _findMaxOID(const char *((*deps)[]));
const char *progname;
static char *modulename = gettext_noop("archiver");
@@ -110,7 +110,7 @@ static int _restoringToDB(ArchiveHandle *AH);
/* Create a new archive */
/* Public */
Archive *
Archive *
CreateArchive(const char *FileSpec, const ArchiveFormat fmt,
const int compression)
@@ -122,7 +122,7 @@ CreateArchive(const char *FileSpec, const ArchiveFormat fmt,
/* Open an existing archive */
/* Public */
Archive *
Archive *
OpenArchive(const char *FileSpec, const ArchiveFormat fmt)
{
ArchiveHandle *AH = _allocAH(FileSpec, fmt, 0, archModeRead);
@@ -167,8 +167,9 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
*
* NB: create+dropSchema is useless because if you're creating the DB,
* there's no need to drop individual items in it. Moreover, if we
* tried to do that then we'd issue the drops in the database initially
* connected to, not the one we will create, which is very bad...
* tried to do that then we'd issue the drops in the database
* initially connected to, not the one we will create, which is very
* bad...
*/
if (ropt->create && ropt->noReconnect)
die_horribly(AH, modulename, "-C and -R are incompatible options\n");
@@ -238,7 +239,7 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
write_msg(modulename, "WARNING:\n"
" Data restoration may fail because existing triggers cannot be disabled\n"
" (no superuser user name specified). This is only a problem when\n"
" restoring into a database with already existing triggers.\n");
" restoring into a database with already existing triggers.\n");
/*
* Setup the output file if necessary.
@@ -283,11 +284,11 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
/* Dump any relevant dump warnings to stderr */
if (!ropt->suppressDumpWarnings && strcmp(te->desc, "WARNING") == 0)
{
if (!ropt->dataOnly && te->defn != NULL && strlen(te->defn) != 0)
if (!ropt->dataOnly && te->defn != NULL && strlen(te->defn) != 0)
write_msg(modulename, "warning from original dump file: %s\n", te->defn);
else if (te->copyStmt != NULL && strlen(te->copyStmt) != 0)
write_msg(modulename, "warning from original dump file: %s\n", te->copyStmt);
}
}
defnDumped = false;
@@ -306,18 +307,20 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
ahlog(AH, 1, "connecting to new database %s as user %s\n", te->name, te->owner);
_reconnectAsUser(AH, te->name, te->owner);
}
}
}
/*
* If we have a data component, then process it
*/
if ( (reqs & 2) != 0 )
if ((reqs & 2) != 0)
{
/* hadDumper will be set if there is genuine data component for this
* node. Otherwise, we need to check the defn field for statements
* that need to be executed in data-only restores.
/*
* hadDumper will be set if there is genuine data component
* for this node. Otherwise, we need to check the defn field
* for statements that need to be executed in data-only
* restores.
*/
if (te->hadDumper)
if (te->hadDumper)
{
/*
* If we can output the data, then restore it.
@@ -332,16 +335,17 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
_printTocEntry(AH, te, ropt, true);
/*
* Maybe we can't do BLOBS, so check if this node is for BLOBS
* Maybe we can't do BLOBS, so check if this node is
* for BLOBS
*/
if ((strcmp(te->desc, "BLOBS") == 0) && !_canRestoreBlobs(AH))
{
ahprintf(AH, "--\n-- SKIPPED \n--\n\n");
/*
* This is a bit nasty - we assume, for the moment, that
* if a custom output is used, then we don't want
* warnings.
* This is a bit nasty - we assume, for the
* moment, that if a custom output is used, then
* we don't want warnings.
*/
if (!AH->CustomOutPtr)
write_msg(modulename, "WARNING: skipping large object restoration\n");
@@ -353,21 +357,23 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
_disableTriggersIfNecessary(AH, te, ropt);
/*
* Reconnect if necessary (_disableTriggers may have
* reconnected)
* Reconnect if necessary (_disableTriggers may
* have reconnected)
*/
_reconnectAsOwner(AH, NULL, te);
ahlog(AH, 1, "restoring data for table %s\n", te->name);
/*
* If we have a copy statement, use it. As of V1.3, these
* are separate to allow easy import from withing a
* database connection. Pre 1.3 archives can not use DB
* connections and are sent to output only.
* If we have a copy statement, use it. As of
* V1.3, these are separate to allow easy import
* from withing a database connection. Pre 1.3
* archives can not use DB connections and are
* sent to output only.
*
* For V1.3+, the table data MUST have a copy statement so
* that we can go into appropriate mode with libpq.
* For V1.3+, the table data MUST have a copy
* statement so that we can go into appropriate
* mode with libpq.
*/
if (te->copyStmt && strlen(te->copyStmt) > 0)
ahprintf(AH, te->copyStmt);
@@ -377,8 +383,10 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
_enableTriggersIfNecessary(AH, te, ropt);
}
}
} else if (!defnDumped) {
/* If we haven't already dumped the defn part, do so now */
}
else if (!defnDumped)
{
/* If we haven't already dumped the defn part, do so now */
ahlog(AH, 1, "executing %s %s\n", te->desc, te->name);
_printTocEntry(AH, te, ropt, false);
}
@@ -493,7 +501,6 @@ _disableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te, RestoreOptions *rop
{
if (!_restoringToDB(AH) || !ConnectedUserIsSuperuser(AH))
{
/*
* If we're not allowing changes for ownership, then remember
* the user so we can change it back here. Otherwise, let
@@ -552,7 +559,6 @@ _enableTriggersIfNecessary(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt
{
if (!_restoringToDB(AH) || !ConnectedUserIsSuperuser(AH))
{
/*
* If we're not allowing changes for ownership, then remember
* the user so we can change it back here. Otherwise, let
@@ -1065,7 +1071,6 @@ SetOutput(ArchiveHandle *AH, char *filename, int compression)
#ifdef HAVE_LIBZ
char fmode[10];
#endif
int fn = 0;
@@ -1233,7 +1238,6 @@ ahwrite(const void *ptr, size_t size, size_t nmemb, ArchiveHandle *AH)
}
else
{
/*
* If we're doing a restore, and it's direct to DB, and we're
* connected then send it to the DB.
@@ -1262,7 +1266,7 @@ _write_msg(const char *modulename, const char *fmt, va_list ap)
}
void
write_msg(const char *modulename, const char *fmt, ...)
write_msg(const char *modulename, const char *fmt,...)
{
va_list ap;
@@ -1469,7 +1473,7 @@ _discoverArchiveFormat(ArchiveHandle *AH)
int wantClose = 0;
#if 0
write_msg(modulename, "attempting to ascertain archive format\n");
write_msg(modulename, "attempting to ascertain archive format\n");
#endif
if (AH->lookahead)
@@ -1534,7 +1538,6 @@ _discoverArchiveFormat(ArchiveHandle *AH)
}
else
{
/*
* *Maybe* we have a tar archive format file... So, read first 512
* byte header...
@@ -1554,7 +1557,6 @@ _discoverArchiveFormat(ArchiveHandle *AH)
/* If we can't seek, then mark the header as read */
if (fseek(fh, 0, SEEK_SET) != 0)
{
/*
* NOTE: Formats that use the looahead buffer can unset this in
* their Init routine.
@@ -1588,7 +1590,7 @@ _allocAH(const char *FileSpec, const ArchiveFormat fmt,
ArchiveHandle *AH;
#if 0
write_msg(modulename, "allocating AH for %s, format %d\n", FileSpec, fmt);
write_msg(modulename, "allocating AH for %s, format %d\n", FileSpec, fmt);
#endif
AH = (ArchiveHandle *) calloc(1, sizeof(ArchiveHandle));
@@ -1638,7 +1640,7 @@ _allocAH(const char *FileSpec, const ArchiveFormat fmt,
AH->OF = stdout;
#if 0
write_msg(modulename, "archive format is %d\n", fmt);
write_msg(modulename, "archive format is %d\n", fmt);
#endif
if (fmt == archUnknown)
@@ -1747,12 +1749,10 @@ WriteToc(ArchiveHandle *AH)
if (te->depOid != NULL)
{
i = 0;
while( (dep = (*te->depOid)[i++]) != NULL)
{
while ((dep = (*te->depOid)[i++]) != NULL)
WriteStr(AH, dep);
}
}
WriteStr(AH, NULL); /* Terminate List */
WriteStr(AH, NULL); /* Terminate List */
if (AH->WriteExtraTocPtr)
(*AH->WriteExtraTocPtr) (AH, te);
@@ -1764,7 +1764,7 @@ void
ReadToc(ArchiveHandle *AH)
{
int i;
char *((*deps)[]);
char *((*deps)[]);
int depIdx;
int depSize;
@@ -1800,14 +1800,14 @@ ReadToc(ArchiveHandle *AH)
if (AH->version >= K_VERS_1_5)
{
depSize = 100;
deps = malloc(sizeof(char*) * depSize);
deps = malloc(sizeof(char *) * depSize);
depIdx = 0;
do
{
if (depIdx > depSize)
{
depSize *= 2;
deps = realloc(deps, sizeof(char*) * depSize);
deps = realloc(deps, sizeof(char *) * depSize);
}
(*deps)[depIdx] = ReadStr(AH);
#if 0
@@ -1815,12 +1815,12 @@ ReadToc(ArchiveHandle *AH)
write_msg(modulename, "read dependency for %s -> %s\n",
te->name, (*deps)[depIdx]);
#endif
} while ( (*deps)[depIdx++] != NULL);
} while ((*deps)[depIdx++] != NULL);
if (depIdx > 1) /* We have a non-null entry */
te->depOid = realloc(deps, sizeof(char*) * depIdx); /* trim it */
if (depIdx > 1) /* We have a non-null entry */
te->depOid = realloc(deps, sizeof(char *) * depIdx); /* trim it */
else
te->depOid = NULL; /* no deps */
te->depOid = NULL; /* no deps */
}
else
te->depOid = NULL;
@@ -1918,7 +1918,7 @@ _tocEntryRequired(TocEntry *te, RestoreOptions *ropt)
* user, this won't do anything.
*
* If we're currently restoring right into a database, this will
* actuall establish a connection. Otherwise it puts a \connect into
* actuall establish a connection. Otherwise it puts a \connect into
* the script output.
*/
static void
@@ -1928,7 +1928,10 @@ _reconnectAsUser(ArchiveHandle *AH, const char *dbname, const char *user)
|| (strcmp(AH->currUser, user) == 0 && !dbname))
return; /* no need to do anything */
/* Use SET SESSION AUTHORIZATION if allowed and no database change needed */
/*
* Use SET SESSION AUTHORIZATION if allowed and no database change
* needed
*/
if (!dbname && AH->ropt->use_setsessauth)
{
if (RestoringToDB(AH))
@@ -1961,8 +1964,10 @@ _reconnectAsUser(ArchiveHandle *AH, const char *dbname, const char *user)
dbname ? dbname : "-",
user ? user : "-");
/* NOTE: currUser keeps track of what the imaginary session user
in our script is */
/*
* NOTE: currUser keeps track of what the imaginary session user in
* our script is
*/
if (AH->currUser)
free(AH->currUser);
@@ -1988,14 +1993,12 @@ _reconnectAsOwner(ArchiveHandle *AH, const char *dbname, TocEntry *te)
static int
_printTocEntry(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt, bool isData)
{
char *pfx;
char *pfx;
if (isData)
{
pfx = "Data for ";
} else {
else
pfx = "";
}
ahprintf(AH, "--\n-- %sTOC Entry ID %d (OID %s)\n--\n-- Name: %s Type: %s Owner: %s\n",
pfx, te->id, te->oid, te->name, te->desc, te->owner);
@@ -2136,7 +2139,6 @@ _SortToc(ArchiveHandle *AH, TocSortCompareFn fn)
te = AH->toc;
for (i = 0; i <= AH->tocCount + 1; i++)
{
/*
* printf("%d: %x (%x, %x) - %d\n", i, te, te->prev, te->next,
* te->oidVal);
@@ -2159,7 +2161,6 @@ _SortToc(ArchiveHandle *AH, TocSortCompareFn fn)
te = AH->toc;
for (i = 0; i <= AH->tocCount + 1; i++)
{
/*
* printf("%d: %x (%x, %x) - %d\n", i, te, te->prev, te->next,
* te->oidVal);
@@ -2187,39 +2188,48 @@ _tocSortCompareByOIDNum(const void *p1, const void *p2)
/* If we have a deterministic answer, return it. */
if (cmpval != 0)
return cmpval;
return cmpval;
/* More comparisons required */
if ( oideq(id1, te1->maxDepOidVal) ) /* maxOid1 came from deps */
if (oideq(id1, te1->maxDepOidVal)) /* maxOid1 came from deps */
{
if ( oideq(id2, te2->maxDepOidVal) ) /* maxOid2 also came from deps */
if (oideq(id2, te2->maxDepOidVal)) /* maxOid2 also came from
* deps */
{
cmpval = oidcmp(te1->oidVal, te2->oidVal); /* Just compare base OIDs */
cmpval = oidcmp(te1->oidVal, te2->oidVal); /* Just compare base
* OIDs */
}
else /* MaxOid2 was entry OID */
else
/* MaxOid2 was entry OID */
{
return 1; /* entry1 > entry2 */
return 1; /* entry1 > entry2 */
};
}
else /* must have oideq(id1, te1->oidVal) => maxOid1 = Oid1 */
}
else
/* must have oideq(id1, te1->oidVal) => maxOid1 = Oid1 */
{
if ( oideq(id2, te2->maxDepOidVal) ) /* maxOid2 came from deps */
if (oideq(id2, te2->maxDepOidVal)) /* maxOid2 came from deps */
{
return -1; /* entry1 < entry2 */
return -1; /* entry1 < entry2 */
}
else /* MaxOid2 was entry OID - deps don't matter */
else
/* MaxOid2 was entry OID - deps don't matter */
{
cmpval = 0;
};
};
/* If we get here, then we've done another comparison
* Once again, a 0 result means we require even more
/*
* If we get here, then we've done another comparison Once again, a 0
* result means we require even more
*/
if (cmpval != 0)
return cmpval;
/* Entire OID details match, so use ID number (ie. original pg_dump order) */
/*
* Entire OID details match, so use ID number (ie. original pg_dump
* order)
*/
return _tocSortCompareByIDNum(te1, te2);
}
@@ -2245,35 +2255,35 @@ _tocSortCompareByIDNum(const void *p1, const void *p2)
* Assuming Oid and depOid are set, work out the various
* Oid values used in sorting.
*/
static void
static void
_fixupOidInfo(TocEntry *te)
{
te->oidVal = atooid(te->oid);
te->maxDepOidVal = _findMaxOID(te->depOid);
/* For the purpose of sorting, find the max OID. */
if (oidcmp(te->oidVal, te->maxDepOidVal) >= 0)
if (oidcmp(te->oidVal, te->maxDepOidVal) >= 0)
te->maxOidVal = te->oidVal;
else
te->maxOidVal = te->maxDepOidVal;
}
/*
* Find the max OID value for a given list of string Oid values
/*
* Find the max OID value for a given list of string Oid values
*/
static Oid
_findMaxOID(const char *((*deps)[]))
{
const char *dep;
int i;
Oid maxOid = (Oid)0;
Oid maxOid = (Oid) 0;
Oid currOid;
if (!deps)
return maxOid;
i = 0;
while( (dep = (*deps)[i++]) != NULL)
while ((dep = (*deps)[i++]) != NULL)
{
currOid = atooid(dep);
if (oidcmp(maxOid, currOid) < 0)