Allow psql to use 7.4.X database by not referencing tablespaces.

Greg Sabino Mullan
This commit is contained in:
Bruce Momjian 2004-08-20 20:18:23 +00:00
parent ee85595d46
commit 3ca998b951
3 changed files with 19 additions and 8 deletions

View File

@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.103 2004/07/15 03:56:06 momjian Exp $
* $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.104 2004/08/20 20:18:23 momjian Exp $
*/
#include "postgres_fe.h"
#include "describe.h"
@ -112,6 +112,12 @@ describeTablespaces(const char *pattern, bool verbose)
PGresult *res;
printQueryOpt myopt = pset.popt;
if (pset.sversion < 70500) {
fprintf(stderr, _("This server version (%d) does not support tablespaces.\n"),
pset.sversion);
return true;
}
initPQExpBuffer(&buf);
printfPQExpBuffer(&buf,
@ -706,8 +712,9 @@ describeOneTableDetails(const char *schemaname,
/* Get general table info */
printfPQExpBuffer(&buf,
"SELECT relhasindex, relkind, relchecks, reltriggers, relhasrules, \n"
"relhasoids, reltablespace \n"
"relhasoids %s \n"
"FROM pg_catalog.pg_class WHERE oid = '%s'",
pset.sversion >= 70500 ? ", reltablespace" : "",
oid);
res = PSQLexec(buf.data, false);
if (!res)
@ -729,7 +736,8 @@ describeOneTableDetails(const char *schemaname,
tableinfo.hasindex = strcmp(PQgetvalue(res, 0, 0), "t") == 0;
tableinfo.hasrules = strcmp(PQgetvalue(res, 0, 4), "t") == 0;
tableinfo.hasoids = strcmp(PQgetvalue(res, 0, 5), "t") == 0;
tableinfo.tablespace = atooid(PQgetvalue(res, 0, 6));
tableinfo.tablespace = (pset.sversion >= 70500) ?
atooid(PQgetvalue(res, 0, 6)) : 0;
PQclear(res);
headers[0] = _("Column");
@ -932,8 +940,8 @@ describeOneTableDetails(const char *schemaname,
footers = pg_malloc_zero(4 * sizeof(*footers));
footers[count_footers++] = pg_strdup(tmpbuf.data);
add_tablespace_footer(tableinfo.relkind, tableinfo.tablespace,
footers, &count_footers, tmpbuf);
add_tablespace_footer(tableinfo.relkind, tableinfo.tablespace,
footers, &count_footers, tmpbuf);
footers[count_footers] = NULL;
}

View File

@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/bin/psql/settings.h,v 1.18 2004/05/12 13:38:45 momjian Exp $
* $PostgreSQL: pgsql/src/bin/psql/settings.h,v 1.19 2004/08/20 20:18:23 momjian Exp $
*/
#ifndef SETTINGS_H
#define SETTINGS_H
@ -41,7 +41,7 @@ typedef struct _psqlSettings
FILE *cur_cmd_source; /* describe the status of the current main
* loop */
bool cur_cmd_interactive;
int sversion; /* backend server version */
const char *progname; /* in case you renamed psql */
char *inputfile; /* for error reporting */
unsigned lineno; /* also for error reporting */

View File

@ -3,7 +3,7 @@
*
* Copyright (c) 2000-2003, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.96 2004/08/18 02:59:11 momjian Exp $
* $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.97 2004/08/20 20:18:23 momjian Exp $
*/
#include "postgres_fe.h"
@ -217,6 +217,9 @@ main(int argc, char *argv[])
SyncVariables();
/* Grab the backend server version */
pset.sversion = PQserverVersion(pset.db);
if (options.action == ACT_LIST_DB)
{
int success = listAllDbs(false);