Move applicable code out of RelationBuildDesc(), which nailed relations
 bypass.  Non-assert builds experienced no known problems.  Back-patch to
 v13, where commit 
c6b92041d38512a4176ed76ad06f713d2e6c01a8 introduced
 rd_firstRelfilenodeSubid. 
 Kyotaro Horiguchi.  Reported by Justin Pryzby. 
 Discussion: https://postgr.es/m/
20200907023737.GA7158@telsasoft.com  
           if (insertIt)
         RelationCacheInsert(relation, true);
  
 -   /*
 -    * For RelationNeedsWAL() to answer correctly on parallel workers, restore
 -    * rd_firstRelfilenodeSubid.  No subtransactions start or end while in
 -    * parallel mode, so the specific SubTransactionId does not matter.
 -    */
 -   if (IsParallelWorker() && RelFileNodeSkippingWAL(relation->rd_node))
 -       relation->rd_firstRelfilenodeSubid = TopSubTransactionId;
 -
     /* It's fully valid */
     relation->rd_isvalid = true;
  
   static void
  RelationInitPhysicalAddr(Relation relation)
  {
 +   Oid         oldnode = relation->rd_node.relNode;
 +
     /* these relations kinds never have storage */
     if (!RELKIND_HAS_STORAGE(relation->rd_rel->relkind))
         return;
              elog(ERROR, "could not find relation mapping for relation \"%s\", OID %u",
                  RelationGetRelationName(relation), relation->rd_id);
     }
 +
 +   /*
 +    * For RelationNeedsWAL() to answer correctly on parallel workers, restore
 +    * rd_firstRelfilenodeSubid.  No subtransactions start or end while in
 +    * parallel mode, so the specific SubTransactionId does not matter.
 +    */
 +   if (IsParallelWorker() && oldnode != relation->rd_node.relNode)
 +   {
 +       if (RelFileNodeSkippingWAL(relation->rd_node))
 +           relation->rd_firstRelfilenodeSubid = TopSubTransactionId;
 +       else
 +           relation->rd_firstRelfilenodeSubid = InvalidSubTransactionId;
 +   }
  }
  
  /*
          REINDEX INDEX pg_index_indrelid_index; -- non-mapped, non-shared, non-critical
  REINDEX INDEX pg_database_oid_index; -- mapped, shared, critical
  REINDEX INDEX pg_shdescription_o_c_index; -- mapped, shared, non-critical
 +-- Check the same REINDEX INDEX statements under parallelism.
 +BEGIN;
 +SET min_parallel_table_scan_size = 0;
 +REINDEX INDEX pg_class_oid_index; -- mapped, non-shared, critical
 +REINDEX INDEX pg_class_relname_nsp_index; -- mapped, non-shared, non-critical
 +REINDEX INDEX pg_index_indexrelid_index; -- non-mapped, non-shared, critical
 +REINDEX INDEX pg_index_indrelid_index; -- non-mapped, non-shared, non-critical
 +REINDEX INDEX pg_database_oid_index; -- mapped, shared, critical
 +REINDEX INDEX pg_shdescription_o_c_index; -- mapped, shared, non-critical
 +ROLLBACK;
          REINDEX INDEX pg_index_indrelid_index; -- non-mapped, non-shared, non-critical
  REINDEX INDEX pg_database_oid_index; -- mapped, shared, critical
  REINDEX INDEX pg_shdescription_o_c_index; -- mapped, shared, non-critical
 +
 +-- Check the same REINDEX INDEX statements under parallelism.
 +BEGIN;
 +SET min_parallel_table_scan_size = 0;
 +REINDEX INDEX pg_class_oid_index; -- mapped, non-shared, critical
 +REINDEX INDEX pg_class_relname_nsp_index; -- mapped, non-shared, non-critical
 +REINDEX INDEX pg_index_indexrelid_index; -- non-mapped, non-shared, critical
 +REINDEX INDEX pg_index_indrelid_index; -- non-mapped, non-shared, non-critical
 +REINDEX INDEX pg_database_oid_index; -- mapped, shared, critical
 +REINDEX INDEX pg_shdescription_o_c_index; -- mapped, shared, non-critical
 +ROLLBACK;