@@ -225,6 +225,8 @@ class QueryProfiler:
225
225
Current Transaction ID.
226
226
statement_id: int
227
227
Current Statement ID.
228
+ session_params_current: dict
229
+ Current Session Parameters.
228
230
target_schema: dict
229
231
Name of the schema used to store
230
232
all the Vertica monitor and internal
@@ -239,6 +241,9 @@ class QueryProfiler:
239
241
tables_dtypes: list
240
242
Datatypes of all the loaded
241
243
performance tables.
244
+ session_params: list
245
+ Non Default Session Parameters used
246
+ to run the transactions.
242
247
overwrite: bool
243
248
If set to ``True`` overwrites the
244
249
existing performance tables.
@@ -1146,6 +1151,7 @@ def __init__(
1146
1151
session_control_loop = session_control_loop [1 :]
1147
1152
1148
1153
session_control_loop_all = []
1154
+ session_params = []
1149
1155
1150
1156
for sc in session_control_loop :
1151
1157
if sc not in ({}, "" ):
@@ -1203,8 +1209,10 @@ def __init__(
1203
1209
" will be skipped."
1204
1210
)
1205
1211
warnings .warn (warning_message , Warning )
1212
+ session_params += [self ._get_current_session_params ()]
1206
1213
1207
1214
self .session_control_params = session_control_loop_all
1215
+ self .session_params = session_params
1208
1216
1209
1217
if len (self .transactions ) == 0 and isinstance (key_id , NoneType ):
1210
1218
raise ValueError ("No transactions found." )
@@ -1252,8 +1260,38 @@ def __init__(
1252
1260
iterchecks = iterchecks , ignore_operators_check = ignore_operators_check
1253
1261
)
1254
1262
1263
+ # CORRECTING WRONG ATTRIBUTES
1264
+ if not (hasattr (self , "session_params" )) or not (self .session_params ):
1265
+ self .session_params = [{} for x in self .transactions ]
1266
+ try :
1267
+ self .session_params_current = self .session_params [0 ]
1268
+ except :
1269
+ self .session_params_current = {}
1270
+
1255
1271
# Tools
1256
1272
1273
+ @staticmethod
1274
+ def _get_current_session_params ():
1275
+ """
1276
+ Returns a ``dict`` of the current
1277
+ session parameters.
1278
+ """
1279
+ query = """
1280
+ SELECT
1281
+ parameter_name,
1282
+ current_value
1283
+ FROM v_monitor.configuration_parameters
1284
+ WHERE current_level != 'DEFAULT';"""
1285
+ res = _executeSQL (
1286
+ query ,
1287
+ title = "Getting transaction_id, statement_id." ,
1288
+ method = "fetchall" ,
1289
+ )
1290
+ params = {}
1291
+ for key , val in res :
1292
+ params [key ] = val
1293
+ return params
1294
+
1257
1295
def _check_kind (self , kind : str , kind_list : list ) -> str :
1258
1296
"""
1259
1297
Checks if the parameter 'kind'
@@ -2024,6 +2062,10 @@ def set_position(self, idx: Union[int, tuple]) -> None:
2024
2062
self .request = self .requests [idx ]
2025
2063
self .qduration = self .qdurations [idx ]
2026
2064
self .query_success = self .query_successes [idx ]
2065
+ try :
2066
+ self .session_params_current = self .session_params [idx ]
2067
+ except :
2068
+ self .session_params_current = {}
2027
2069
else :
2028
2070
raise TypeError (
2029
2071
"Wrong type for parameter 'idx'. Expecting: int or tuple."
@@ -2047,6 +2089,10 @@ def next(self) -> None:
2047
2089
self .statement_id = self .transactions [idx ][1 ]
2048
2090
self .request = self .requests [idx ]
2049
2091
self .qduration = self .qdurations [idx ]
2092
+ try :
2093
+ self .session_params_current = self .session_params [idx ]
2094
+ except :
2095
+ self .session_params_current = {}
2050
2096
2051
2097
def previous (self ) -> None :
2052
2098
"""
@@ -2065,6 +2111,10 @@ def previous(self) -> None:
2065
2111
self .statement_id = self .transactions [idx ][1 ]
2066
2112
self .request = self .requests [idx ]
2067
2113
self .qduration = self .qdurations [idx ]
2114
+ try :
2115
+ self .session_params_current = self .session_params [idx ]
2116
+ except :
2117
+ self .session_params_current = {}
2068
2118
2069
2119
# Main Method
2070
2120
0 commit comments