]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Remove unnecessary and version-sensitive dependence on the exact set of
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 20 Jul 2009 03:46:53 +0000 (03:46 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 20 Jul 2009 03:46:53 +0000 (03:46 +0000)
column names to be found in a sequence.  Per gripe from Bruce.

src/bin/psql/describe.c

index cde2428259dd0468465c7488c29a00451a98a67a..3da1e0a4933062a0da6c4d0d82413512f263498a 100644 (file)
@@ -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) */