*/
if (!AH->CustomOutPtr)
fprintf(stderr, "%s: WARNING - skipping BLOB restoration\n", progname);
+
} else {
_disableTriggers(AH, te, ropt);
{
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);
+ 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;
}
else if (AH->gzOut)
*
*
* 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
*
static void clearTableInfo(TableInfo *, int);
static void dumpOneFunc(Archive *fout, FuncInfo *finfo, int i,
TypeInfo *tinfo, int numTypes);
-static int findLastBuiltinOid(void);
+static int findLastBuiltinOid(const char*);
static void setMaxOid(Archive *fout);
static void AddAcl(char *aclbuf, const char *keyword);
PQclear(res);
}
- g_last_builtin_oid = findLastBuiltinOid();
+ g_last_builtin_oid = findLastBuiltinOid(dbname);
/* Dump the database definition */
if (!dataOnly)
*/
static int
-findLastBuiltinOid(void)
+findLastBuiltinOid(const char* dbname)
{
PGresult *res;
int ntups;
int last_oid;
+ PQExpBuffer query = createPQExpBuffer();
+
+ resetPQExpBuffer(query);
+ appendPQExpBuffer(query, "SELECT datlastsysoid from pg_database where datname = '%s'", dbname);
- res = PQexec(g_conn,
- "SELECT oid from pg_database where datname = 'template1'");
+ res = PQexec(g_conn, query->data);
if (res == NULL ||
PQresultStatus(res) != PGRES_TUPLES_OK)
{
fprintf(stderr, "There is more than one 'template1' entry in the 'pg_database' table\n");
exit_nicely(g_conn);
}
- last_oid = atoi(PQgetvalue(res, 0, PQfnumber(res, "oid")));
+ last_oid = atoi(PQgetvalue(res, 0, PQfnumber(res, "datlastsysoid")));
PQclear(res);
return last_oid;
}