aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <vvvv@ydb.tech>2023-06-01 18:08:27 +0300
committervvvv <vvvv@ydb.tech>2023-06-01 18:08:27 +0300
commitea304c573cd8b749e6e482859c92f81e4785565f (patch)
treed5d7e14b4e41eee97f5d3c1c59d0652d607d0978
parent99a6a4fce57e826d1bc23bdf359bfa4b48121e36 (diff)
downloadydb-ea304c573cd8b749e6e482859c92f81e4785565f.tar.gz
Perf experiment for PG_TRY
-rw-r--r--ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp48
5 files changed, 52 insertions, 0 deletions
diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt
index 045dab73baa..b4ec3bc4ca9 100644
--- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt
+++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.darwin-x86_64.txt
@@ -117,6 +117,7 @@ target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
)
target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/sort_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/type_cache_ut.cpp
diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt
index 0996b22f47a..4d87ba652a7 100644
--- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt
+++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-aarch64.txt
@@ -120,6 +120,7 @@ target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
)
target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/sort_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/type_cache_ut.cpp
diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt
index ae5400484cb..a376b614e42 100644
--- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt
+++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.linux-x86_64.txt
@@ -121,6 +121,7 @@ target_link_options(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
)
target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/sort_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/type_cache_ut.cpp
diff --git a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt
index 415e09d521f..337259590f8 100644
--- a/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt
+++ b/ydb/library/yql/parser/pg_wrapper/ut/CMakeLists.windows-x86_64.txt
@@ -122,6 +122,7 @@ target_link_libraries(ydb-library-yql-parser-pg_wrapper-ut PUBLIC
)
target_sources(ydb-library-yql-parser-pg_wrapper-ut PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/codegen_ut.cpp
+ ${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/parser_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/sort_ut.cpp
${CMAKE_SOURCE_DIR}/ydb/library/yql/parser/pg_wrapper/ut/type_cache_ut.cpp
diff --git a/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp b/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp
new file mode 100644
index 00000000000..b0701003956
--- /dev/null
+++ b/ydb/library/yql/parser/pg_wrapper/ut/error_ut.cpp
@@ -0,0 +1,48 @@
+#include <library/cpp/testing/unittest/registar.h>
+
+extern "C" {
+#include <ydb/library/yql/parser/pg_wrapper/postgresql/src/include/postgres.h>
+#include <ydb/library/yql/parser/pg_wrapper/postgresql/src/include/utils/elog.h>
+}
+
+#include <util/datetime/cputimer.h>
+
+#if defined(NDEBUG) && !defined(_san_enabled_)
+constexpr ui32 IterationsCount = 1000000000;
+#else
+constexpr ui32 IterationsCount = 100000000;
+#endif
+
+Y_UNIT_TEST_SUITE(TErrorTests) {
+ Y_UNIT_TEST(TestPgTry) {
+ Cout << "begin...\n";
+ TSimpleTimer timer;
+ volatile ui32 x;
+ for (ui32 i = 0; i < IterationsCount; ++i) {
+ PG_TRY();
+ {
+ x += 1;
+ }
+ PG_CATCH();
+ {
+ }
+ PG_END_TRY();
+ }
+
+ Cout << "done, elapsed: " << timer.Get() << "\n";
+ }
+
+ Y_UNIT_TEST(TestCppTry) {
+ Cout << "begin...\n";
+ TSimpleTimer timer;
+ volatile ui32 x;
+ for (ui32 i = 0; i < IterationsCount; ++i) {
+ try {
+ x += 1;
+ } catch (...) {
+ }
+ }
+
+ Cout << "done, elapsed: " << timer.Get() << "\n";
+ }
+}