#include "access/htup_details.h"
#include "access/table.h"
+#include "access/xact.h"
#include "catalog/catalog.h"
#include "catalog/dependency.h"
#include "catalog/indexing.h"
* idle state.
*/
AbortOutOfAnyTransaction();
- pgstat_report_subscription_error(MySubscription->oid,
- WORKERTYPE_SEQUENCESYNC);
+ pgstat_report_subscription_error(MySubscription->oid);
PG_RE_THROW();
}
* idle state.
*/
AbortOutOfAnyTransaction();
- pgstat_report_subscription_error(MySubscription->oid,
- WORKERTYPE_TABLESYNC);
+ pgstat_report_subscription_error(MySubscription->oid);
PG_RE_THROW();
}
* idle state.
*/
AbortOutOfAnyTransaction();
- pgstat_report_subscription_error(MySubscription->oid,
- MyLogicalRepWorker->type);
+ pgstat_report_subscription_error(MySubscription->oid);
PG_RE_THROW();
}
* Report the worker failed during sequence synchronization, table
* synchronization, or apply.
*/
- pgstat_report_subscription_error(MyLogicalRepWorker->subid,
- MyLogicalRepWorker->type);
+ pgstat_report_subscription_error(MyLogicalRepWorker->subid);
/* Disable the subscription */
StartTransactionCommand();
#include "miscadmin.h"
#include "pgstat.h"
#include "port/pg_bitutils.h"
+#include "replication/logicalctl.h"
#include "replication/logicalworker.h"
#include "replication/walsender.h"
#include "storage/condition_variable.h"
* Report a subscription error.
*/
void
-pgstat_report_subscription_error(Oid subid, LogicalRepWorkerType wtype)
+pgstat_report_subscription_error(Oid subid)
{
PgStat_EntryRef *entry_ref;
PgStat_BackendSubEntry *pending;
+ LogicalRepWorkerType wtype = get_logical_worker_type();
entry_ref = pgstat_prep_pending_entry(PGSTAT_KIND_SUBSCRIPTION,
InvalidOid, subid, NULL);
#include "portability/instr_time.h"
#include "postmaster/pgarch.h" /* for MAX_XFN_CHARS */
#include "replication/conflict.h"
-#include "replication/worker_internal.h"
#include "utils/backend_progress.h" /* for backward compatibility */ /* IWYU pragma: export */
#include "utils/backend_status.h" /* for backward compatibility */ /* IWYU pragma: export */
#include "utils/pgstat_kind.h"
* Functions in pgstat_subscription.c
*/
-extern void pgstat_report_subscription_error(Oid subid,
- LogicalRepWorkerType wtype);
+extern void pgstat_report_subscription_error(Oid subid);
extern void pgstat_report_subscription_conflict(Oid subid, ConflictType type);
extern void pgstat_create_subscription(Oid subid);
extern void pgstat_drop_subscription(Oid subid);
return isParallelApplyWorker(MyLogicalRepWorker);
}
+static inline LogicalRepWorkerType
+get_logical_worker_type(void)
+{
+ Assert(MyLogicalRepWorker->in_use);
+ return MyLogicalRepWorker->type;
+}
+
#endif /* WORKER_INTERNAL_H */
*/
#include "postgres.h"
+#include "access/htup_details.h"
#include "common/hashfn.h"
#include "funcapi.h"
#include "storage/dsm_registry.h"