aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2009-07-20 03:46:53 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2009-07-20 03:46:53 +0000
commit160a46720c6df1001cc7aedf906ae6c0ee3704ef (patch)
tree0d3f70e5b93106f478a011a417bc49ee627fd2e5 /src
parent7197706d8125e476207cecd2e19e629df0fcad65 (diff)
downloadpostgresql-160a46720c6df1001cc7aedf906ae6c0ee3704ef.tar.gz
postgresql-160a46720c6df1001cc7aedf906ae6c0ee3704ef.zip
Remove unnecessary and version-sensitive dependence on the exact set of
column names to be found in a sequence. Per gripe from Bruce.
Diffstat (limited to 'src')
-rw-r--r--src/bin/psql/describe.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index cde2428259d..3da1e0a4933 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -8,7 +8,7 @@
*
* Copyright (c) 2000-2009, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.218 2009/06/13 13:43:34 petere Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.218.2.1 2009/07/20 03:46:53 tgl Exp $
*/
#include "postgres_fe.h"
@@ -1131,29 +1131,22 @@ describeOneTableDetails(const char *schemaname,
*/
if (tableinfo.relkind == 'S')
{
- PGresult *result;
-
-#define SEQ_NUM_COLS 10
- printfPQExpBuffer(&buf,
- "SELECT sequence_name, last_value,\n"
- " start_value, increment_by,\n"
- " max_value, min_value, cache_value,\n"
- " log_cnt, is_cycled, is_called\n"
- "FROM %s",
- fmtId(schemaname));
+ printfPQExpBuffer(&buf, "SELECT * FROM %s", fmtId(schemaname));
/* must be separate because fmtId isn't reentrant */
appendPQExpBuffer(&buf, ".%s", fmtId(relationname));
- result = PSQLexec(buf.data, false);
- if (!result)
+ res = PSQLexec(buf.data, false);
+ if (!res)
goto error_return;
- seq_values = pg_malloc_zero((SEQ_NUM_COLS + 1) * sizeof(*seq_values));
+ seq_values = pg_malloc((PQnfields(res) + 1) * sizeof(*seq_values));
- for (i = 0; i < SEQ_NUM_COLS; i++)
- seq_values[i] = pg_strdup(PQgetvalue(result, 0, i));
+ for (i = 0; i < PQnfields(res); i++)
+ seq_values[i] = pg_strdup(PQgetvalue(res, 0, i));
+ seq_values[i] = NULL;
- PQclear(result);
+ PQclear(res);
+ res = NULL;
}
/* Get column info (index requires additional checks) */