diff options
author | vvvv <vvvv@ydb.tech> | 2023-06-01 18:08:27 +0300 |
---|---|---|
committer | vvvv <vvvv@ydb.tech> | 2023-06-01 18:08:27 +0300 |
commit | ea304c573cd8b749e6e482859c92f81e4785565f (patch) | |
tree | d5d7e14b4e41eee97f5d3c1c59d0652d607d0978 | |
parent | 99a6a4fce57e826d1bc23bdf359bfa4b48121e36 (diff) | |
download | ydb-ea304c573cd8b749e6e482859c92f81e4785565f.tar.gz |
Perf experiment for PG_TRY
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"; + } +} |