From 3ec5e77ed342f0339ef8c4b7bde7c7c97af5f358 Mon Sep 17 00:00:00 2001 From: Artyom Abakumov Date: Sat, 20 Sep 2025 16:49:04 +0300 Subject: [PATCH 1/3] Pass SQL with zero length in trace correctly --- src/jrd/trace/TraceDSQLHelpers.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/jrd/trace/TraceDSQLHelpers.h b/src/jrd/trace/TraceDSQLHelpers.h index 8561b321c37..409ee0f42f7 100644 --- a/src/jrd/trace/TraceDSQLHelpers.h +++ b/src/jrd/trace/TraceDSQLHelpers.h @@ -51,13 +51,14 @@ class TraceDSQLPrepare if (!m_need_trace) return; - m_start_clock = fb_utils::query_performance_counter(); + m_start_clock = fb_utils::query_performance_counter();std::string_view - static const char empty_string[] = ""; - if (!m_string_len || !string) + static constexpr const char* empty_string = ""; + static FB_SIZE_T empty_string_length = fb_strlen(empty_string); + if (m_string == nullptr || (m_string_len == 0 && (m_string_len = fb_strlen(m_string)) == 0)) { m_string = empty_string; - m_string_len = 0; + m_string_len = empty_string_length; } } From c6ae7a7b56c2c9558ec77d96c94fad511da43647 Mon Sep 17 00:00:00 2001 From: Artyom Abakumov Date: Sun, 21 Sep 2025 17:05:39 +0300 Subject: [PATCH 2/3] Add forgotten change --- src/jrd/trace/TraceDSQLHelpers.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/jrd/trace/TraceDSQLHelpers.h b/src/jrd/trace/TraceDSQLHelpers.h index 409ee0f42f7..1d97ead4cad 100644 --- a/src/jrd/trace/TraceDSQLHelpers.h +++ b/src/jrd/trace/TraceDSQLHelpers.h @@ -51,7 +51,7 @@ class TraceDSQLPrepare if (!m_need_trace) return; - m_start_clock = fb_utils::query_performance_counter();std::string_view + m_start_clock = fb_utils::query_performance_counter(); static constexpr const char* empty_string = ""; static FB_SIZE_T empty_string_length = fb_strlen(empty_string); From 91b975daa6ae74b5fb970a788bbf219992e8f4f9 Mon Sep 17 00:00:00 2001 From: Artyom Abakumov Date: Sun, 21 Sep 2025 18:53:46 +0300 Subject: [PATCH 3/3] Calculate size only when empty sql is encountered --- src/jrd/trace/TraceDSQLHelpers.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/jrd/trace/TraceDSQLHelpers.h b/src/jrd/trace/TraceDSQLHelpers.h index 1d97ead4cad..edce9dfd544 100644 --- a/src/jrd/trace/TraceDSQLHelpers.h +++ b/src/jrd/trace/TraceDSQLHelpers.h @@ -53,10 +53,11 @@ class TraceDSQLPrepare m_start_clock = fb_utils::query_performance_counter(); - static constexpr const char* empty_string = ""; - static FB_SIZE_T empty_string_length = fb_strlen(empty_string); if (m_string == nullptr || (m_string_len == 0 && (m_string_len = fb_strlen(m_string)) == 0)) { + static constexpr const char* empty_string = ""; + static FB_SIZE_T empty_string_length = fb_strlen(empty_string); + m_string = empty_string; m_string_len = empty_string_length; }