diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2009-07-20 03:46:53 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2009-07-20 03:46:53 +0000 |
commit | 160a46720c6df1001cc7aedf906ae6c0ee3704ef (patch) | |
tree | 0d3f70e5b93106f478a011a417bc49ee627fd2e5 /src | |
parent | 7197706d8125e476207cecd2e19e629df0fcad65 (diff) | |
download | postgresql-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.c | 27 |
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) */ |