vAB2-0001-Extract-InjectionPointCondition-to-injection_po.patch
application/octet-stream
Filename: vAB2-0001-Extract-InjectionPointCondition-to-injection_po.patch
Type: application/octet-stream
Part: 0
From d523218aef1001d9ee7697e1a60bad1979206b70 Mon Sep 17 00:00:00 2001
From: Andrey Borodin <amborodin@acm.org>
Date: Wed, 6 May 2026 11:17:05 +0500
Subject: [PATCH vAB2 1/3] Extract InjectionPointCondition to
injection_point_condition.h
Move InjectionPointCondition and InjectionPointConditionType from
injection_points.c into a small header so other test modules can build
the same private_data layout passed to injection_wait without copying
the definition.
Discussion: https://www.postgresql.org/message-id/d2983796-2603-41b7-a66e-fc8489ddb954@gmail.com
Author: Vlad Lesin <vladlesin@gmail.com>
Reviewed-by: Andrey Borodin <amborodin@acm.org>
---
.../injection_point_condition.h | 25 ++++++++++++++++++
.../injection_points/injection_points.c | 26 ++-----------------
2 files changed, 27 insertions(+), 24 deletions(-)
create mode 100644 src/test/modules/injection_points/injection_point_condition.h
diff --git a/src/test/modules/injection_points/injection_point_condition.h b/src/test/modules/injection_points/injection_point_condition.h
new file mode 100644
index 00000000000..fc926196c65
--- /dev/null
+++ b/src/test/modules/injection_points/injection_point_condition.h
@@ -0,0 +1,25 @@
+/*-------------------------------------------------------------------------
+ * injection_point_condition.h
+ * Shared condition payload for injection_points module callbacks
+ *
+ * Copyright (c) 2025-2026, PostgreSQL Global Development Group
+ *
+ * src/test/modules/injection_points/injection_point_condition.h
+ *-------------------------------------------------------------------------
+ */
+#ifndef INJECTION_POINT_CONDITION_H
+#define INJECTION_POINT_CONDITION_H
+
+typedef enum InjectionPointConditionType
+{
+ INJ_CONDITION_ALWAYS = 0,
+ INJ_CONDITION_PID,
+} InjectionPointConditionType;
+
+typedef struct InjectionPointCondition
+{
+ InjectionPointConditionType type;
+ int pid;
+} InjectionPointCondition;
+
+#endif /* INJECTION_POINT_CONDITION_H */
diff --git a/src/test/modules/injection_points/injection_points.c b/src/test/modules/injection_points/injection_points.c
index 0f1af513673..fb7a7d477cc 100644
--- a/src/test/modules/injection_points/injection_points.c
+++ b/src/test/modules/injection_points/injection_points.c
@@ -34,36 +34,14 @@
#include "utils/tuplestore.h"
#include "utils/wait_event.h"
+#include "injection_point_condition.h"
+
PG_MODULE_MAGIC;
/* Maximum number of waits usable in injection points at once */
#define INJ_MAX_WAIT 8
#define INJ_NAME_MAXLEN 64
-/*
- * Conditions related to injection points. This tracks in shared memory the
- * runtime conditions under which an injection point is allowed to run,
- * stored as private_data when an injection point is attached, and passed as
- * argument to the callback.
- *
- * If more types of runtime conditions need to be tracked, this structure
- * should be expanded.
- */
-typedef enum InjectionPointConditionType
-{
- INJ_CONDITION_ALWAYS = 0, /* always run */
- INJ_CONDITION_PID, /* PID restriction */
-} InjectionPointConditionType;
-
-typedef struct InjectionPointCondition
-{
- /* Type of the condition */
- InjectionPointConditionType type;
-
- /* ID of the process where the injection point is allowed to run */
- int pid;
-} InjectionPointCondition;
-
/*
* List of injection points stored in TopMemoryContext attached
* locally to this process.
--
2.50.1 (Apple Git-155)