diff --git a/src/jrd/trace/TraceDSQLHelpers.h b/src/jrd/trace/TraceDSQLHelpers.h index e42a9f1226f..3d3f0cd78cf 100644 --- a/src/jrd/trace/TraceDSQLHelpers.h +++ b/src/jrd/trace/TraceDSQLHelpers.h @@ -31,6 +31,8 @@ #include "../../jrd/trace/TraceManager.h" #include "../../jrd/trace/TraceObjects.h" +#include + namespace Jrd { using Firebird::ITracePlugin; @@ -53,14 +55,14 @@ class TraceDSQLPrepare m_start_clock = fb_utils::query_performance_counter(); - static const char empty_string[] = ""; - if (!string) - { - m_string = empty_string; - m_string_len = 0; - } + if (m_string == nullptr) + traceEmptyStatement(); else if (m_string_len == 0) + { m_string_len = fb_strlen(m_string); + if (m_string_len == 0) + traceEmptyStatement(); + } } ~TraceDSQLPrepare() @@ -105,6 +107,13 @@ class TraceDSQLPrepare } private: + void traceEmptyStatement() + { + static constexpr std::string_view empty_string = ""; + m_string = empty_string.data(); + m_string_len = empty_string.length(); + } + bool m_need_trace; Attachment* m_attachment; jrd_tra* const m_transaction;