mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Use new datlastsysoid field in pg_database + some cleanups & fixes
This commit is contained in:
@ -220,6 +220,7 @@ void RestoreArchive(Archive* AHX, RestoreOptions *ropt)
|
|||||||
*/
|
*/
|
||||||
if (!AH->CustomOutPtr)
|
if (!AH->CustomOutPtr)
|
||||||
fprintf(stderr, "%s: WARNING - skipping BLOB restoration\n", progname);
|
fprintf(stderr, "%s: WARNING - skipping BLOB restoration\n", progname);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
_disableTriggers(AH, te, ropt);
|
_disableTriggers(AH, te, ropt);
|
||||||
@ -951,6 +952,10 @@ int ahwrite(const void *ptr, size_t size, size_t nmemb, ArchiveHandle* AH)
|
|||||||
{
|
{
|
||||||
res = lo_write(AH->connection, AH->loFd, (void*)ptr, size * nmemb);
|
res = lo_write(AH->connection, AH->loFd, (void*)ptr, size * nmemb);
|
||||||
ahlog(AH, 5, "Wrote %d bytes of BLOB data (result = %d)\n", size * nmemb, res);
|
ahlog(AH, 5, "Wrote %d bytes of BLOB data (result = %d)\n", size * nmemb, res);
|
||||||
|
if (res < size * nmemb)
|
||||||
|
die_horribly(AH, "%s: could not write to large object (result = %d, expected %d)\n",
|
||||||
|
progname, res, size * nmemb);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
else if (AH->gzOut)
|
else if (AH->gzOut)
|
||||||
|
@ -62,7 +62,7 @@ typedef z_stream *z_streamp;
|
|||||||
|
|
||||||
#define K_VERS_MAJOR 1
|
#define K_VERS_MAJOR 1
|
||||||
#define K_VERS_MINOR 4
|
#define K_VERS_MINOR 4
|
||||||
#define K_VERS_REV 17
|
#define K_VERS_REV 19
|
||||||
|
|
||||||
/* Data block types */
|
/* Data block types */
|
||||||
#define BLK_DATA 1
|
#define BLK_DATA 1
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.172 2000/10/22 05:27:18 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/bin/pg_dump/pg_dump.c,v 1.173 2000/10/22 18:13:09 pjw Exp $
|
||||||
*
|
*
|
||||||
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
|
* Modifications - 6/10/96 - dave@bensoft.com - version 1.13.dhb
|
||||||
*
|
*
|
||||||
@ -140,7 +140,7 @@ static char *checkForQuote(const char *s);
|
|||||||
static void clearTableInfo(TableInfo *, int);
|
static void clearTableInfo(TableInfo *, int);
|
||||||
static void dumpOneFunc(Archive *fout, FuncInfo *finfo, int i,
|
static void dumpOneFunc(Archive *fout, FuncInfo *finfo, int i,
|
||||||
TypeInfo *tinfo, int numTypes);
|
TypeInfo *tinfo, int numTypes);
|
||||||
static int findLastBuiltinOid(void);
|
static int findLastBuiltinOid(const char*);
|
||||||
static void setMaxOid(Archive *fout);
|
static void setMaxOid(Archive *fout);
|
||||||
|
|
||||||
static void AddAcl(char *aclbuf, const char *keyword);
|
static void AddAcl(char *aclbuf, const char *keyword);
|
||||||
@ -954,7 +954,7 @@ main(int argc, char **argv)
|
|||||||
PQclear(res);
|
PQclear(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_last_builtin_oid = findLastBuiltinOid();
|
g_last_builtin_oid = findLastBuiltinOid(dbname);
|
||||||
|
|
||||||
/* Dump the database definition */
|
/* Dump the database definition */
|
||||||
if (!dataOnly)
|
if (!dataOnly)
|
||||||
@ -3888,14 +3888,17 @@ setMaxOid(Archive *fout)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static int
|
static int
|
||||||
findLastBuiltinOid(void)
|
findLastBuiltinOid(const char* dbname)
|
||||||
{
|
{
|
||||||
PGresult *res;
|
PGresult *res;
|
||||||
int ntups;
|
int ntups;
|
||||||
int last_oid;
|
int last_oid;
|
||||||
|
PQExpBuffer query = createPQExpBuffer();
|
||||||
|
|
||||||
res = PQexec(g_conn,
|
resetPQExpBuffer(query);
|
||||||
"SELECT oid from pg_database where datname = 'template1'");
|
appendPQExpBuffer(query, "SELECT datlastsysoid from pg_database where datname = '%s'", dbname);
|
||||||
|
|
||||||
|
res = PQexec(g_conn, query->data);
|
||||||
if (res == NULL ||
|
if (res == NULL ||
|
||||||
PQresultStatus(res) != PGRES_TUPLES_OK)
|
PQresultStatus(res) != PGRES_TUPLES_OK)
|
||||||
{
|
{
|
||||||
@ -3916,7 +3919,7 @@ findLastBuiltinOid(void)
|
|||||||
fprintf(stderr, "There is more than one 'template1' entry in the 'pg_database' table\n");
|
fprintf(stderr, "There is more than one 'template1' entry in the 'pg_database' table\n");
|
||||||
exit_nicely(g_conn);
|
exit_nicely(g_conn);
|
||||||
}
|
}
|
||||||
last_oid = atoi(PQgetvalue(res, 0, PQfnumber(res, "oid")));
|
last_oid = atoi(PQgetvalue(res, 0, PQfnumber(res, "datlastsysoid")));
|
||||||
PQclear(res);
|
PQclear(res);
|
||||||
return last_oid;
|
return last_oid;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user