reindexdb: Fix warning about uninitialized indices_tables_cell
authorAlexander Korotkov <[email protected]>
Mon, 25 Mar 2024 09:35:30 +0000 (11:35 +0200)
committerAlexander Korotkov <[email protected]>
Mon, 25 Mar 2024 09:40:25 +0000 (11:40 +0200)
Initialize indices_tables_cell with NULL to silence the warning.  Also,
refactor the place of the first assignment of indices_tables_cell.

Reported-by: Thomas Munro, David Rowley, Tom Lane, Richard Guo
Discussion: https://postgr.es/m/2348025.1711332418%40sss.pgh.pa.us
Discussion: https://postgr.es/m/E1roXs4-005UdX-1V%40gemulon.postgresql.org

src/bin/scripts/reindexdb.c

index a46b07d97a628321c22c0574c287102db2c38971..904c196fbbaa8488f43f5100975b687f7c618faa 100644 (file)
@@ -277,7 +277,7 @@ reindex_one_database(ConnParams *cparams, ReindexType type,
 {
    PGconn     *conn;
    SimpleStringListCell *cell;
-   SimpleStringListCell *indices_tables_cell;
+   SimpleStringListCell *indices_tables_cell = NULL;
    bool        parallel = concurrentCons > 1;
    SimpleStringList *process_list = user_list;
    SimpleStringList *indices_tables_list = NULL;
@@ -366,12 +366,20 @@ reindex_one_database(ConnParams *cparams, ReindexType type,
                indices_tables_list = get_parallel_object_list(conn, process_type,
                                                               user_list, echo);
 
-               if (indices_tables_list)
-                   indices_tables_cell = indices_tables_list->head;
-
-               /* Bail out if nothing to process */
-               if (process_list == NULL)
+               /*
+                * Bail out if nothing to process.  'user_list' was modified
+                * in-place, so check if it has at least one cell.
+                */
+               if (user_list->head == NULL)
                    return;
+
+               /*
+                * Assuming 'user_list' is not empty, 'indices_tables_list'
+                * shouldn't be empty as well.
+                */
+               Assert(indices_tables_list != NULL);
+               indices_tables_cell = indices_tables_list->head;
+
                break;
 
            case REINDEX_SYSTEM: