Skip to content

Commit f6570d0

Browse files
author
aldrick.castro
committed
Added bug fix
1 parent 6444c51 commit f6570d0

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

postgres/datadog_checks/postgres/explain_parameterized_queries.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
SELECT CARDINALITY(parameter_types) FROM pg_prepared_statements WHERE name = 'dd_{query_signature}'
2323
'''
2424

25-
EXECUTE_PREPARED_STATEMENT_QUERY = 'EXECUTE dd_{prepared_statement}({generic_values})'
25+
EXECUTE_PREPARED_STATEMENT_QUERY = 'EXECUTE dd_{prepared_statement}{parameters}'
2626

2727
EXPLAIN_QUERY = 'SELECT {explain_function}($stmt${statement}$stmt$)'
2828

@@ -145,11 +145,16 @@ def _get_number_of_parameters_for_prepared_statement(self, dbname, query_signatu
145145

146146
@tracked_method(agent_check_getter=agent_check_getter)
147147
def _explain_prepared_statement(self, dbname, statement, obfuscated_statement, query_signature):
148-
null_parameter = ','.join(
149-
'null' for _ in range(self._get_number_of_parameters_for_prepared_statement(dbname, query_signature))
150-
)
148+
num_params = self._get_number_of_parameters_for_prepared_statement(dbname, query_signature)
149+
150+
parameters = ""
151+
152+
if num_params > 0:
153+
null_parameters = ','.join('null' for _ in range(num_params))
154+
parameters = f"({null_parameters})"
155+
151156
execute_prepared_statement_query = EXECUTE_PREPARED_STATEMENT_QUERY.format(
152-
prepared_statement=query_signature, generic_values=null_parameter
157+
prepared_statement=query_signature, parameters=parameters
153158
)
154159
try:
155160
return self._execute_query_and_fetch_rows(

0 commit comments

Comments
 (0)