@@ -468,39 +468,44 @@ logicalrep_worker_launch(LogicalRepWorkerType wtype,
468
468
bgw .bgw_start_time = BgWorkerStart_RecoveryFinished ;
469
469
snprintf (bgw .bgw_library_name , MAXPGPATH , "postgres" );
470
470
471
- if ( is_parallel_apply_worker )
471
+ switch ( worker -> type )
472
472
{
473
- snprintf (bgw .bgw_function_name , BGW_MAXLEN , "ParallelApplyWorkerMain" );
474
- snprintf (bgw .bgw_name , BGW_MAXLEN ,
475
- "logical replication parallel apply worker for subscription %u" ,
476
- subid );
477
- snprintf (bgw .bgw_type , BGW_MAXLEN , "logical replication parallel worker" );
478
- }
479
- else if (is_tablesync_worker )
480
- {
481
- snprintf (bgw .bgw_function_name , BGW_MAXLEN , "TablesyncWorkerMain" );
482
- snprintf (bgw .bgw_name , BGW_MAXLEN ,
483
- "logical replication tablesync worker for subscription %u sync %u" ,
484
- subid ,
485
- relid );
486
- snprintf (bgw .bgw_type , BGW_MAXLEN , "logical replication tablesync worker" );
487
- }
488
- else
489
- {
490
- snprintf (bgw .bgw_function_name , BGW_MAXLEN , "ApplyWorkerMain" );
491
- snprintf (bgw .bgw_name , BGW_MAXLEN ,
492
- "logical replication apply worker for subscription %u" ,
493
- subid );
494
- snprintf (bgw .bgw_type , BGW_MAXLEN , "logical replication apply worker" );
473
+ case WORKERTYPE_APPLY :
474
+ snprintf (bgw .bgw_function_name , BGW_MAXLEN , "ApplyWorkerMain" );
475
+ snprintf (bgw .bgw_name , BGW_MAXLEN ,
476
+ "logical replication apply worker for subscription %u" ,
477
+ subid );
478
+ snprintf (bgw .bgw_type , BGW_MAXLEN , "logical replication apply worker" );
479
+ break ;
480
+
481
+ case WORKERTYPE_PARALLEL_APPLY :
482
+ snprintf (bgw .bgw_function_name , BGW_MAXLEN , "ParallelApplyWorkerMain" );
483
+ snprintf (bgw .bgw_name , BGW_MAXLEN ,
484
+ "logical replication parallel apply worker for subscription %u" ,
485
+ subid );
486
+ snprintf (bgw .bgw_type , BGW_MAXLEN , "logical replication parallel worker" );
487
+
488
+ memcpy (bgw .bgw_extra , & subworker_dsm , sizeof (dsm_handle ));
489
+ break ;
490
+
491
+ case WORKERTYPE_TABLESYNC :
492
+ snprintf (bgw .bgw_function_name , BGW_MAXLEN , "TablesyncWorkerMain" );
493
+ snprintf (bgw .bgw_name , BGW_MAXLEN ,
494
+ "logical replication tablesync worker for subscription %u sync %u" ,
495
+ subid ,
496
+ relid );
497
+ snprintf (bgw .bgw_type , BGW_MAXLEN , "logical replication tablesync worker" );
498
+ break ;
499
+
500
+ case WORKERTYPE_UNKNOWN :
501
+ /* Should never happen. */
502
+ elog (ERROR , "unknown worker type" );
495
503
}
496
504
497
505
bgw .bgw_restart_time = BGW_NEVER_RESTART ;
498
506
bgw .bgw_notify_pid = MyProcPid ;
499
507
bgw .bgw_main_arg = Int32GetDatum (slot );
500
508
501
- if (is_parallel_apply_worker )
502
- memcpy (bgw .bgw_extra , & subworker_dsm , sizeof (dsm_handle ));
503
-
504
509
if (!RegisterDynamicBackgroundWorker (& bgw , & bgw_handle ))
505
510
{
506
511
/* Failed to start worker, so clean up the worker slot. */
0 commit comments