@@ -48,7 +48,6 @@ typedef struct
48
48
49
49
MemoryContextCallback contextCallback ;
50
50
51
-
52
51
static LocalTransactionId traces_lxid = InvalidLocalTransactionId ;
53
52
static HTAB * traces = NULL ;
54
53
static MemoryContext traces_mcxt = NULL ;
@@ -60,14 +59,24 @@ static void stmt_end(PLpgSQL_execstate *estate, PLpgSQL_stmt *stmt, void **plugi
60
59
static plpgsql_check_plugin2 cursors_leaks_plugin2 = { func_setup , NULL , func_end , NULL ,
61
60
NULL , stmt_end , NULL , NULL , NULL , NULL , NULL , NULL };
62
61
62
+ #if PG_VERSION_NUM >= 170000
63
+
64
+ #define CURRENT_LXID (MyProc->vxid.lxid)
65
+
66
+ #else
67
+
68
+ #define CURRENT_LXID (MyProc->lxid)
69
+
70
+ #endif
71
+
63
72
static FunctionTrace *
64
73
get_function_trace (PLpgSQL_function * func )
65
74
{
66
75
bool found ;
67
76
FunctionTrace * ftrace ;
68
77
FunctionTraceKey key ;
69
78
70
- if (traces == NULL || traces_lxid != MyProc -> lxid )
79
+ if (traces == NULL || traces_lxid != CURRENT_LXID )
71
80
{
72
81
HASHCTL ctl ;
73
82
@@ -85,7 +94,7 @@ get_function_trace(PLpgSQL_function *func)
85
94
& ctl ,
86
95
HASH_ELEM | HASH_BLOBS | HASH_CONTEXT );
87
96
88
- traces_lxid = MyProc -> lxid ;
97
+ traces_lxid = CURRENT_LXID ;
89
98
}
90
99
91
100
key .fn_oid = func -> fn_oid ;
@@ -132,7 +141,7 @@ func_end(PLpgSQL_execstate *estate,
132
141
FunctionTrace * ftrace = * plugin2_info ;
133
142
int i ;
134
143
135
- if (!ftrace || traces_lxid != MyProc -> lxid )
144
+ if (!ftrace || traces_lxid != CURRENT_LXID )
136
145
return ;
137
146
138
147
for (i = 0 ; i < ftrace -> ncursors ; i ++ )
@@ -182,7 +191,7 @@ stmt_end(PLpgSQL_execstate *estate, PLpgSQL_stmt *stmt, void **plugin2_info)
182
191
if (!ftrace )
183
192
return ;
184
193
185
- if (traces_lxid != MyProc -> lxid )
194
+ if (traces_lxid != CURRENT_LXID )
186
195
{
187
196
ftrace = get_function_trace (estate -> func );
188
197
* plugin2_info = ftrace ;
0 commit comments