aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgalaxycrab <UgnineSirdis@ydb.tech>2023-03-24 09:41:24 +0300
committergalaxycrab <UgnineSirdis@ydb.tech>2023-03-24 09:41:24 +0300
commitd10a044a8ef0e1ac2af81bcb491d957d26044c51 (patch)
tree4fcdc198676105ff8c5d2d9ab61ec88d522cdea3
parentc58c8aede3920df7b47f579b78827757f4be6569 (diff)
downloadydb-d10a044a8ef0e1ac2af81bcb491d957d26044c51.tar.gz
Optimizers for provider's support in KQP
Поддержал провайдеры как в прототипе (но более обобщённым кодом): https://a.yandex-team.ru/review/3230514/details Пока поддержка коннекшенов и биндингов захардкожена, она будет делаться отдельно Скорее всего, после понадобится перетаскивать dqs expr-nodes в dq. Хочется сделать это отдельным ревью
-rw-r--r--contrib/libs/CMakeLists.windows-x86_64.txt1
-rw-r--r--contrib/libs/aws-sdk-cpp/CMakeLists.darwin-x86_64.txt10
-rw-r--r--contrib/libs/aws-sdk-cpp/CMakeLists.linux-aarch64.txt10
-rw-r--r--contrib/libs/aws-sdk-cpp/CMakeLists.linux-x86_64.txt10
-rw-r--r--contrib/libs/aws-sdk-cpp/CMakeLists.txt9
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt2
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.windows-x86_64.txt149
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt2
-rw-r--r--contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.windows-x86_64.txt389
-rw-r--r--contrib/restricted/CMakeLists.windows-x86_64.txt1
-rw-r--r--contrib/restricted/aws/CMakeLists.darwin-x86_64.txt14
-rw-r--r--contrib/restricted/aws/CMakeLists.linux-aarch64.txt14
-rw-r--r--contrib/restricted/aws/CMakeLists.linux-x86_64.txt14
-rw-r--r--contrib/restricted/aws/CMakeLists.txt13
-rw-r--r--contrib/restricted/aws/aws-c-cal/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-c-cal/CMakeLists.windows-x86_64.txt35
-rw-r--r--contrib/restricted/aws/aws-c-common/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-c-common/CMakeLists.windows-x86_64.txt90
-rw-r--r--contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-c-event-stream/CMakeLists.windows-x86_64.txt50
-rw-r--r--contrib/restricted/aws/aws-c-io/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-c-io/CMakeLists.windows-x86_64.txt64
-rw-r--r--contrib/restricted/aws/aws-checksums/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/aws-checksums/CMakeLists.windows-x86_64.txt27
-rw-r--r--contrib/restricted/aws/s2n/CMakeLists.txt2
-rw-r--r--contrib/restricted/aws/s2n/CMakeLists.windows-x86_64.txt278
-rw-r--r--ydb/core/kqp/gateway/kqp_metadata_loader.cpp2
-rw-r--r--ydb/core/kqp/host/kqp_host.cpp37
-rw-r--r--ydb/core/kqp/host/kqp_runner.cpp10
-rw-r--r--ydb/core/kqp/opt/kqp_opt.h2
-rw-r--r--ydb/core/kqp/opt/kqp_opt_build_phy_query.cpp2
-rw-r--r--ydb/core/kqp/opt/kqp_opt_build_txs.cpp2
-rw-r--r--ydb/core/kqp/opt/kqp_opt_kql.cpp23
-rw-r--r--ydb/core/kqp/opt/logical/kqp_opt_log.cpp1
-rw-r--r--ydb/core/kqp/opt/physical/kqp_opt_phy.cpp10
-rw-r--r--ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/kqp/provider/ya.make1
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_datasource.cpp19
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_opt.cpp8
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_opt_build.cpp54
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_provider.h9
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_provider_impl.h4
-rw-r--r--ydb/core/kqp/provider/yql_kikimr_type_ann.cpp18
-rw-r--r--ydb/core/kqp/query_compiler/kqp_mkql_compiler.cpp22
-rw-r--r--ydb/core/kqp/query_compiler/kqp_mkql_compiler.h2
-rw-r--r--ydb/core/kqp/query_compiler/kqp_query_compiler.cpp9
-rw-r--r--ydb/core/kqp/query_compiler/kqp_query_compiler.h3
-rw-r--r--ydb/core/kqp/ut/federated_query/CMakeLists.darwin-x86_64.txt1
-rw-r--r--ydb/core/kqp/ut/federated_query/CMakeLists.linux-aarch64.txt1
-rw-r--r--ydb/core/kqp/ut/federated_query/CMakeLists.linux-x86_64.txt1
-rw-r--r--ydb/core/kqp/ut/federated_query/CMakeLists.windows-x86_64.txt1
-rw-r--r--ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp63
-rw-r--r--ydb/core/kqp/ut/federated_query/ya.make1
-rw-r--r--ydb/library/yql/dq/integration/yql_dq_integration.h2
-rw-r--r--ydb/library/yql/dq/opt/CMakeLists.darwin-x86_64.txt2
-rw-r--r--ydb/library/yql/dq/opt/CMakeLists.linux-aarch64.txt2
-rw-r--r--ydb/library/yql/dq/opt/CMakeLists.linux-x86_64.txt2
-rw-r--r--ydb/library/yql/dq/opt/CMakeLists.windows-x86_64.txt2
-rw-r--r--ydb/library/yql/dq/opt/dq_opt_log.cpp25
-rw-r--r--ydb/library/yql/dq/opt/dq_opt_log.h4
-rw-r--r--ydb/library/yql/dq/opt/dq_opt_phy.cpp100
-rw-r--r--ydb/library/yql/dq/opt/dq_opt_phy.h2
-rw-r--r--ydb/library/yql/dq/opt/ya.make2
-rw-r--r--ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_dq_integration.cpp2
-rw-r--r--ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp2
-rw-r--r--ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h2
-rw-r--r--ydb/library/yql/providers/dq/opt/physical_optimize.cpp96
-rw-r--r--ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.cpp16
-rw-r--r--ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h2
-rw-r--r--ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp22
-rw-r--r--ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp13
-rw-r--r--ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp2
-rw-r--r--ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp2
-rw-r--r--ydb/library/yql/providers/ydb/provider/yql_ydb_dq_integration.cpp2
77 files changed, 1530 insertions, 278 deletions
diff --git a/contrib/libs/CMakeLists.windows-x86_64.txt b/contrib/libs/CMakeLists.windows-x86_64.txt
index 0774a86754d..cd2534dc933 100644
--- a/contrib/libs/CMakeLists.windows-x86_64.txt
+++ b/contrib/libs/CMakeLists.windows-x86_64.txt
@@ -8,6 +8,7 @@
add_subdirectory(antlr3_cpp_runtime)
add_subdirectory(apache)
+add_subdirectory(aws-sdk-cpp)
add_subdirectory(base64)
add_subdirectory(brotli)
add_subdirectory(cctz)
diff --git a/contrib/libs/aws-sdk-cpp/CMakeLists.darwin-x86_64.txt b/contrib/libs/aws-sdk-cpp/CMakeLists.darwin-x86_64.txt
deleted file mode 100644
index 13822480e02..00000000000
--- a/contrib/libs/aws-sdk-cpp/CMakeLists.darwin-x86_64.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-add_subdirectory(aws-cpp-sdk-core)
-add_subdirectory(aws-cpp-sdk-s3)
diff --git a/contrib/libs/aws-sdk-cpp/CMakeLists.linux-aarch64.txt b/contrib/libs/aws-sdk-cpp/CMakeLists.linux-aarch64.txt
deleted file mode 100644
index 13822480e02..00000000000
--- a/contrib/libs/aws-sdk-cpp/CMakeLists.linux-aarch64.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-add_subdirectory(aws-cpp-sdk-core)
-add_subdirectory(aws-cpp-sdk-s3)
diff --git a/contrib/libs/aws-sdk-cpp/CMakeLists.linux-x86_64.txt b/contrib/libs/aws-sdk-cpp/CMakeLists.linux-x86_64.txt
deleted file mode 100644
index 13822480e02..00000000000
--- a/contrib/libs/aws-sdk-cpp/CMakeLists.linux-x86_64.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-add_subdirectory(aws-cpp-sdk-core)
-add_subdirectory(aws-cpp-sdk-s3)
diff --git a/contrib/libs/aws-sdk-cpp/CMakeLists.txt b/contrib/libs/aws-sdk-cpp/CMakeLists.txt
index 7243bc137a9..13822480e02 100644
--- a/contrib/libs/aws-sdk-cpp/CMakeLists.txt
+++ b/contrib/libs/aws-sdk-cpp/CMakeLists.txt
@@ -6,10 +6,5 @@
# original buildsystem will not be accepted.
-if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
- include(CMakeLists.linux-aarch64.txt)
-elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
- include(CMakeLists.darwin-x86_64.txt)
-elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
- include(CMakeLists.linux-x86_64.txt)
-endif()
+add_subdirectory(aws-cpp-sdk-core)
+add_subdirectory(aws-cpp-sdk-s3)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt
index 7243bc137a9..a692f90f36e 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.windows-x86_64.txt b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.windows-x86_64.txt
new file mode 100644
index 00000000000..b124eac4563
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,149 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(OpenSSL REQUIRED)
+
+add_library(libs-aws-sdk-cpp-aws-cpp-sdk-core)
+target_compile_options(libs-aws-sdk-cpp-aws-cpp-sdk-core PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_CHECKSUMS_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_EVENT_STREAM_USE_IMPORT_EXPORT
+ -DAWS_IO_USE_IMPORT_EXPORT
+ -DAWS_SDK_VERSION_MAJOR=1
+ -DAWS_SDK_VERSION_MINOR=8
+ -DAWS_SDK_VERSION_PATCH=186
+ -DAWS_USE_EPOLL
+ -DCURL_HAS_H2
+ -DCURL_HAS_TLS_PROXY
+ -DENABLE_CURL_CLIENT
+ -DENABLE_CURL_LOGGING
+ -DENABLE_OPENSSL_ENCRYPTION
+ -DHAS_PATHCONF
+ -DHAS_UMASK
+ -DS2N_ADX
+ -DS2N_BIKE_R3_AVX2
+ -DS2N_BIKE_R3_AVX512
+ -DS2N_BIKE_R3_PCLMUL
+ -DS2N_BIKE_R3_VPCLMUL
+ -DS2N_CPUID_AVAILABLE
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_HAVE_EXECINFO
+ -DS2N_KYBER512R3_AVX2_BMI2
+ -DS2N_SIKE_P434_R3_ASM
+ -DS2N___RESTRICT__SUPPORTED
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-aws-sdk-cpp-aws-cpp-sdk-core PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include
+)
+target_link_libraries(libs-aws-sdk-cpp-aws-cpp-sdk-core PUBLIC
+ contrib-libs-cxxsupp
+ contrib-libs-curl
+ OpenSSL::OpenSSL
+ restricted-aws-aws-c-common
+ restricted-aws-aws-c-event-stream
+)
+target_sources(libs-aws-sdk-cpp-aws-cpp-sdk-core PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/AmazonSerializableWebServiceRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/AmazonStreamingWebServiceRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/AmazonWebServiceRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/Aws.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/Globals.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/Region.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/Version.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/AWSAuthSigner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/AWSAuthSignerProvider.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/AWSCredentialsProvider.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/AWSCredentialsProviderChain.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/SSOCredentialsProvider.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/auth/STSCredentialsProvider.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/AWSClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/AWSErrorMarshaller.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/AsyncCallerContext.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/ClientConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/CoreErrors.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/DefaultRetryStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/RetryStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/client/SpecifiedRetryableErrorsRetryStrategy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/config/AWSProfileConfigLoader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/external/cjson/cJSON.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/external/tinyxml2/tinyxml2.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/HttpClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/HttpClientFactory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/HttpRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/HttpTypes.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/Scheme.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/URI.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/curl/CurlHandleContainer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/curl/CurlHttpClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/standard/StandardHttpRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/http/standard/StandardHttpResponse.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/internal/AWSHttpResourceClient.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/monitoring/DefaultMonitoring.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/monitoring/HttpClientMetrics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/monitoring/MonitoringManager.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/ARN.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/Array.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/DNS.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/DateTimeCommon.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/Directory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/EnumParseOverflowContainer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/FileSystemUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/GetTheLights.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/HashingUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/StringUtils.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/TempFile.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/UUID.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/base64/Base64.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/Cipher.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/ContentCryptoMaterial.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/ContentCryptoScheme.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/CryptoBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/CryptoStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/EncryptionMaterials.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/KeyWrapAlgorithm.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/MD5.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/Sha1.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/Sha256.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/Sha256HMAC.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/factory/Factories.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/crypto/openssl/CryptoImpl.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventDecoderStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventEncoderStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventHeader.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventMessage.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamDecoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamEncoder.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/event/EventStreamErrors.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/json/JsonSerializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/AWSLogging.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/ConsoleLogSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/DefaultLogSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/FormattedLogSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/logging/LogLevel.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/memory/AWSMemory.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/memory/stl/SimpleStringStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/stream/ConcurrentStreamBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/stream/PreallocatedStreamBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/stream/ResponseStream.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/stream/SimpleStreamBuf.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/threading/Executor.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/threading/ReaderWriterLock.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/threading/Semaphore.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/threading/ThreadTask.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/utils/xml/XmlSerializer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/net/windows/Net.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/net/windows/SimpleUDP.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/windows/Environment.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/windows/FileSystem.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/windows/OSVersionInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/windows/Security.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/source/platform/windows/Time.cpp
+)
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt
index 7243bc137a9..a692f90f36e 100644
--- a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.windows-x86_64.txt b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.windows-x86_64.txt
new file mode 100644
index 00000000000..1b1705649a5
--- /dev/null
+++ b/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,389 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(libs-aws-sdk-cpp-aws-cpp-sdk-s3)
+target_compile_options(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_CHECKSUMS_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_EVENT_STREAM_USE_IMPORT_EXPORT
+ -DAWS_IO_USE_IMPORT_EXPORT
+ -DAWS_SDK_VERSION_MAJOR=1
+ -DAWS_SDK_VERSION_MINOR=8
+ -DAWS_SDK_VERSION_PATCH=186
+ -DAWS_USE_EPOLL
+ -DENABLE_CURL_CLIENT
+ -DENABLE_OPENSSL_ENCRYPTION
+ -DHAS_PATHCONF
+ -DHAS_UMASK
+ -DS2N_ADX
+ -DS2N_BIKE_R3_AVX2
+ -DS2N_BIKE_R3_AVX512
+ -DS2N_BIKE_R3_PCLMUL
+ -DS2N_BIKE_R3_VPCLMUL
+ -DS2N_CPUID_AVAILABLE
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_HAVE_EXECINFO
+ -DS2N_KYBER512R3_AVX2_BMI2
+ -DS2N_SIKE_P434_R3_ASM
+ -DS2N___RESTRICT__SUPPORTED
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/include
+)
+target_include_directories(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-core/include
+)
+target_link_libraries(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PUBLIC
+ contrib-libs-cxxsupp
+ libs-aws-sdk-cpp-aws-cpp-sdk-core
+ restricted-aws-aws-c-common
+ restricted-aws-aws-c-event-stream
+)
+target_sources(libs-aws-sdk-cpp-aws-cpp-sdk-s3 PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ARN.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Client.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Endpoint.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3ErrorMarshaller.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/S3Errors.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortIncompleteMultipartUpload.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortMultipartUploadRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AbortMultipartUploadResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AccelerateConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AccessControlPolicy.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AccessControlTranslation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsExportDestination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsS3BucketDestination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/AnalyticsS3ExportFileFormat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ArchiveStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Bucket.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketAccelerateStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketCannedACL.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLifecycleConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLocationConstraint.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLoggingStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketLogsPermission.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/BucketVersioningStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CORSConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CORSRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CSVInput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CSVOutput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CloudFunctionConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CommonPrefix.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompleteMultipartUploadResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompletedMultipartUpload.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompletedPart.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CompressionType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Condition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyObjectResultDetails.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CopyPartResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateBucketResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/CreateMultipartUploadResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DefaultRetention.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Delete.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketAnalyticsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketCorsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketEncryptionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketIntelligentTieringConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketInventoryConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketLifecycleRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketMetricsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketOwnershipControlsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketPolicyRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketReplicationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteBucketWebsiteRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerEntry.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerReplication.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteMarkerReplicationStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectTaggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeleteObjectsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeletePublicAccessBlockRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/DeletedObject.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Destination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/EncodingType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Encryption.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/EncryptionConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Error.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ErrorDocument.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Event.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ExistingObjectReplication.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ExistingObjectReplicationStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ExpirationStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ExpressionType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/FileHeaderInfo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/FilterRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/FilterRuleName.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAccelerateConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAccelerateConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAclRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAclResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAnalyticsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketAnalyticsConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketCorsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketCorsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketEncryptionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketEncryptionResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketIntelligentTieringConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketIntelligentTieringConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketInventoryConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketInventoryConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLifecycleConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLifecycleConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLocationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLoggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketLoggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketMetricsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketMetricsConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketNotificationConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketOwnershipControlsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketOwnershipControlsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyStatusRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketPolicyStatusResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketReplicationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketReplicationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketRequestPaymentRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketRequestPaymentResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketTaggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketVersioningRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketVersioningResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketWebsiteRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetBucketWebsiteResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAclRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectAclResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLegalHoldRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLegalHoldResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLockConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectLockConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRetentionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectRetentionResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTaggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTorrentRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetObjectTorrentResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetPublicAccessBlockRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GetPublicAccessBlockResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/GlacierJobParameters.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Grant.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Grantee.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadBucketRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/HeadObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IndexDocument.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Initiator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InputSerialization.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringAccessTier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/IntelligentTieringStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InvalidObjectState.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryDestination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryEncryption.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryFormat.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryFrequency.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryIncludedObjectVersions.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryOptionalField.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventoryS3BucketDestination.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/InventorySchedule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/JSONInput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/JSONOutput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/JSONType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LambdaFunctionConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleExpiration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LifecycleRuleFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketAnalyticsConfigurationsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketAnalyticsConfigurationsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketIntelligentTieringConfigurationsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketIntelligentTieringConfigurationsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketInventoryConfigurationsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketInventoryConfigurationsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketMetricsConfigurationsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketMetricsConfigurationsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListBucketsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListMultipartUploadsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListMultipartUploadsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectVersionsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectVersionsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsV2Request.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListObjectsV2Result.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ListPartsResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/LoggingEnabled.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MFADelete.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MFADeleteStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetadataDirective.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetadataEntry.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Metrics.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MetricsStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/MultipartUpload.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionExpiration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NoncurrentVersionTransition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfigurationDeprecated.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/NotificationConfigurationFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Object.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectCannedACL.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectIdentifier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockEnabled.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockLegalHold.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockLegalHoldStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockMode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRetention.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRetentionMode.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectLockRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectOwnership.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectStorageClass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectVersion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ObjectVersionStorageClass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OutputLocation.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OutputSerialization.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Owner.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OwnerOverride.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OwnershipControls.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/OwnershipControlsRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ParquetInput.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Part.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Payer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Permission.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PolicyStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Progress.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ProgressEvent.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Protocol.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PublicAccessBlockConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAccelerateConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAclRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketAnalyticsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketCorsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketEncryptionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketIntelligentTieringConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketInventoryConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLifecycleConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketLoggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketMetricsConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketNotificationConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketOwnershipControlsRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketPolicyRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketReplicationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketRequestPaymentRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketVersioningRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutBucketWebsiteRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectAclRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectAclResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLegalHoldRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLegalHoldResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLockConfigurationRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectLockConfigurationResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRetentionRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectRetentionResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectTaggingRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutObjectTaggingResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/PutPublicAccessBlockRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/QueueConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/QueueConfigurationDeprecated.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/QuoteFields.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Redirect.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RedirectAllRequestsTo.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicaModifications.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicaModificationsStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationRuleAndOperator.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationRuleFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationRuleStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationTime.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationTimeStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ReplicationTimeValue.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RequestCharged.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RequestPayer.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RequestPaymentConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RequestProgress.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreObjectRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreObjectResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RestoreRequestType.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/RoutingRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Rule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3KeyFilter.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/S3Location.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SSEKMS.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SSES3.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ScanRange.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectObjectContentHandler.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectObjectContentRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SelectParameters.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ServerSideEncryption.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ServerSideEncryptionByDefault.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ServerSideEncryptionConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/ServerSideEncryptionRule.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SourceSelectionCriteria.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SseKmsEncryptedObjects.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/SseKmsEncryptedObjectsStatus.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Stats.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StatsEvent.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClassAnalysis.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClassAnalysisDataExport.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/StorageClassAnalysisSchemaVersion.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Tag.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Tagging.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TaggingDirective.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TargetGrant.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Tier.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Tiering.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TopicConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TopicConfigurationDeprecated.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Transition.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/TransitionStorageClass.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/Type.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartCopyRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartCopyResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartRequest.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/UploadPartResult.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/VersioningConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/WebsiteConfiguration.cpp
+ ${CMAKE_SOURCE_DIR}/contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3/source/model/WriteGetObjectResponseRequest.cpp
+)
diff --git a/contrib/restricted/CMakeLists.windows-x86_64.txt b/contrib/restricted/CMakeLists.windows-x86_64.txt
index fe72f088170..95bdfd675e3 100644
--- a/contrib/restricted/CMakeLists.windows-x86_64.txt
+++ b/contrib/restricted/CMakeLists.windows-x86_64.txt
@@ -8,6 +8,7 @@
add_subdirectory(abseil-cpp)
add_subdirectory(abseil-cpp-tstring)
+add_subdirectory(aws)
add_subdirectory(boost)
add_subdirectory(cityhash-1.0.2)
add_subdirectory(fast_float)
diff --git a/contrib/restricted/aws/CMakeLists.darwin-x86_64.txt b/contrib/restricted/aws/CMakeLists.darwin-x86_64.txt
deleted file mode 100644
index 87ffccf907a..00000000000
--- a/contrib/restricted/aws/CMakeLists.darwin-x86_64.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-add_subdirectory(aws-c-cal)
-add_subdirectory(aws-c-common)
-add_subdirectory(aws-c-event-stream)
-add_subdirectory(aws-c-io)
-add_subdirectory(aws-checksums)
-add_subdirectory(s2n)
diff --git a/contrib/restricted/aws/CMakeLists.linux-aarch64.txt b/contrib/restricted/aws/CMakeLists.linux-aarch64.txt
deleted file mode 100644
index 87ffccf907a..00000000000
--- a/contrib/restricted/aws/CMakeLists.linux-aarch64.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-add_subdirectory(aws-c-cal)
-add_subdirectory(aws-c-common)
-add_subdirectory(aws-c-event-stream)
-add_subdirectory(aws-c-io)
-add_subdirectory(aws-checksums)
-add_subdirectory(s2n)
diff --git a/contrib/restricted/aws/CMakeLists.linux-x86_64.txt b/contrib/restricted/aws/CMakeLists.linux-x86_64.txt
deleted file mode 100644
index 87ffccf907a..00000000000
--- a/contrib/restricted/aws/CMakeLists.linux-x86_64.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-
-# This file was generated by the build system used internally in the Yandex monorepo.
-# Only simple modifications are allowed (adding source-files to targets, adding simple properties
-# like target_include_directories). These modifications will be ported to original
-# ya.make files by maintainers. Any complex modifications which can't be ported back to the
-# original buildsystem will not be accepted.
-
-
-add_subdirectory(aws-c-cal)
-add_subdirectory(aws-c-common)
-add_subdirectory(aws-c-event-stream)
-add_subdirectory(aws-c-io)
-add_subdirectory(aws-checksums)
-add_subdirectory(s2n)
diff --git a/contrib/restricted/aws/CMakeLists.txt b/contrib/restricted/aws/CMakeLists.txt
index 7243bc137a9..87ffccf907a 100644
--- a/contrib/restricted/aws/CMakeLists.txt
+++ b/contrib/restricted/aws/CMakeLists.txt
@@ -6,10 +6,9 @@
# original buildsystem will not be accepted.
-if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
- include(CMakeLists.linux-aarch64.txt)
-elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
- include(CMakeLists.darwin-x86_64.txt)
-elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
- include(CMakeLists.linux-x86_64.txt)
-endif()
+add_subdirectory(aws-c-cal)
+add_subdirectory(aws-c-common)
+add_subdirectory(aws-c-event-stream)
+add_subdirectory(aws-c-io)
+add_subdirectory(aws-checksums)
+add_subdirectory(s2n)
diff --git a/contrib/restricted/aws/aws-c-cal/CMakeLists.txt b/contrib/restricted/aws/aws-c-cal/CMakeLists.txt
index 7243bc137a9..a692f90f36e 100644
--- a/contrib/restricted/aws/aws-c-cal/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-c-cal/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/aws/aws-c-cal/CMakeLists.windows-x86_64.txt b/contrib/restricted/aws/aws-c-cal/CMakeLists.windows-x86_64.txt
new file mode 100644
index 00000000000..c28381a676a
--- /dev/null
+++ b/contrib/restricted/aws/aws-c-cal/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,35 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(OpenSSL REQUIRED)
+
+add_library(restricted-aws-aws-c-cal)
+target_compile_options(restricted-aws-aws-c-cal PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DHAVE_SYSCONF
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-c-cal PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/include
+)
+target_link_libraries(restricted-aws-aws-c-cal PUBLIC
+ OpenSSL::OpenSSL
+ restricted-aws-aws-c-common
+)
+target_sources(restricted-aws-aws-c-cal PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/cal.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/der.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/ecc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/hash.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/hmac.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/unix/openssl_platform_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/unix/opensslcrypto_ecc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/unix/opensslcrypto_hash.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-cal/source/unix/opensslcrypto_hmac.c
+)
diff --git a/contrib/restricted/aws/aws-c-common/CMakeLists.txt b/contrib/restricted/aws/aws-c-common/CMakeLists.txt
index 7243bc137a9..a692f90f36e 100644
--- a/contrib/restricted/aws/aws-c-common/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-c-common/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/aws/aws-c-common/CMakeLists.windows-x86_64.txt b/contrib/restricted/aws/aws-c-common/CMakeLists.windows-x86_64.txt
new file mode 100644
index 00000000000..722ee7173e5
--- /dev/null
+++ b/contrib/restricted/aws/aws-c-common/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,90 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-aws-c-common)
+target_compile_options(restricted-aws-aws-c-common PRIVATE
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_PTHREAD_SETNAME_TAKES_2ARGS
+ -DCJSON_HIDE_SYMBOLS
+ -DHAVE_SYSCONF
+ -DAWS_AFFINITY_METHOD=AWS_AFFINITY_METHOD_PTHREAD_ATTR
+ -DHAVE_MM256_EXTRACT_EPI64
+ -DHAVE_AVX2_INTRINSICS
+ -DUSE_SIMD_ENCODING
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-c-common PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/generated/include
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/include
+)
+target_sources(restricted-aws-aws-c-common PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/allocator.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/allocator_sba.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/array_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/assert.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/bus.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/byte_buf.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/codegen.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/command_line_parser.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/common.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/condition_variable.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/date_time.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/device_random.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/encoding.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/error.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/external/cJSON.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/fifo_cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/file.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/hash_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/json.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/lifo_cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/linked_hash_table.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/log_channel.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/log_formatter.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/log_writer.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/logging.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/lru_cache.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/math.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/memtrace.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/clock.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/condition_variable.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/device_random.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/environment.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/file.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/mutex.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/process.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/rw_lock.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/system_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/thread.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/posix/time.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/priority_queue.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/process_common.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/promise.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/ref_count.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/ring_buffer.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/statistics.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/string.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/task_scheduler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/thread_scheduler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/thread_shared.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/uri.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/uuid.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/xml_parser.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/arch/intel/asm/cpuid.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/arch/intel/cpuid.c
+)
+target_sources_custom(restricted-aws-aws-c-common
+ .avx2
+ SRCS
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-common/source/arch/intel/encoding_avx2.c
+ CUSTOM_FLAGS
+ /arch:AVX2
+ /DAVX2_ENABLED=1
+)
diff --git a/contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt b/contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt
index 7243bc137a9..a692f90f36e 100644
--- a/contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-c-event-stream/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/aws/aws-c-event-stream/CMakeLists.windows-x86_64.txt b/contrib/restricted/aws/aws-c-event-stream/CMakeLists.windows-x86_64.txt
new file mode 100644
index 00000000000..d7f9cd17a6f
--- /dev/null
+++ b/contrib/restricted/aws/aws-c-event-stream/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,50 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-aws-c-event-stream)
+target_compile_options(restricted-aws-aws-c-event-stream PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_CHECKSUMS_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_EVENT_STREAM_USE_IMPORT_EXPORT
+ -DAWS_IO_USE_IMPORT_EXPORT
+ -DAWS_USE_EPOLL
+ -DHAVE_SYSCONF
+ -DS2N_ADX
+ -DS2N_BIKE_R3_AVX2
+ -DS2N_BIKE_R3_AVX512
+ -DS2N_BIKE_R3_PCLMUL
+ -DS2N_CLONE_SUPPORTED
+ -DS2N_CPUID_AVAILABLE
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_FEATURES_AVAILABLE
+ -DS2N_HAVE_EXECINFO
+ -DS2N_KYBER512R3_AVX2_BMI2
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD5_SHA1_HASH
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD_CTX_SET_PKEY_CTX
+ -DS2N_MADVISE_SUPPORTED
+ -DS2N_SIKE_P434_R3_ASM
+ -DS2N___RESTRICT__SUPPORTED
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-c-event-stream PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/include
+)
+target_link_libraries(restricted-aws-aws-c-event-stream PUBLIC
+ restricted-aws-aws-c-common
+ restricted-aws-aws-c-io
+ restricted-aws-aws-checksums
+)
+target_sources(restricted-aws-aws-c-event-stream PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream_channel_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream_rpc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream_rpc_client.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-event-stream/source/event_stream_rpc_server.c
+)
diff --git a/contrib/restricted/aws/aws-c-io/CMakeLists.txt b/contrib/restricted/aws/aws-c-io/CMakeLists.txt
index 7243bc137a9..a692f90f36e 100644
--- a/contrib/restricted/aws/aws-c-io/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-c-io/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/aws/aws-c-io/CMakeLists.windows-x86_64.txt b/contrib/restricted/aws/aws-c-io/CMakeLists.windows-x86_64.txt
new file mode 100644
index 00000000000..7c1b0626c2f
--- /dev/null
+++ b/contrib/restricted/aws/aws-c-io/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,64 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-aws-c-io)
+target_compile_options(restricted-aws-aws-c-io PRIVATE
+ -DAWS_CAL_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DAWS_IO_USE_IMPORT_EXPORT
+ -DAWS_USE_EPOLL
+ -DHAVE_SYSCONF
+ -DS2N_CLONE_SUPPORTED
+ -DS2N_CPUID_AVAILABLE
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_FEATURES_AVAILABLE
+ -DS2N_KYBER512R3_AVX2_BMI2
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD5_SHA1_HASH
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD_CTX_SET_PKEY_CTX
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_RC4
+ -DS2N_MADVISE_SUPPORTED
+ -DS2N_STACKTRACE
+ -DS2N___RESTRICT__SUPPORTED
+ -DUSE_S2N
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-c-io PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/include
+)
+target_link_libraries(restricted-aws-aws-c-io PUBLIC
+ restricted-aws-aws-c-cal
+ restricted-aws-aws-c-common
+ restricted-aws-s2n
+)
+target_sources(restricted-aws-aws-c-io PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/alpn_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/channel.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/channel_bootstrap.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/event_loop.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/exponential_backoff_retry_strategy.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/host_resolver.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/io.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/message_pool.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/pem_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/pkcs11_lib.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/pkcs11_tls_op_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/pki_utils.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/posix/host_resolver.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/posix/pipe.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/posix/shared_library.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/posix/socket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/retry_strategy.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/s2n/s2n_tls_channel_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/socket_channel_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/standard_retry_strategy.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/statistics.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/stream.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/tls_channel_handler.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-c-io/source/tls_channel_handler_shared.c
+)
diff --git a/contrib/restricted/aws/aws-checksums/CMakeLists.txt b/contrib/restricted/aws/aws-checksums/CMakeLists.txt
index 7243bc137a9..a692f90f36e 100644
--- a/contrib/restricted/aws/aws-checksums/CMakeLists.txt
+++ b/contrib/restricted/aws/aws-checksums/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/aws/aws-checksums/CMakeLists.windows-x86_64.txt b/contrib/restricted/aws/aws-checksums/CMakeLists.windows-x86_64.txt
new file mode 100644
index 00000000000..c7805ff1e28
--- /dev/null
+++ b/contrib/restricted/aws/aws-checksums/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,27 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+
+add_library(restricted-aws-aws-checksums)
+target_compile_options(restricted-aws-aws-checksums PRIVATE
+ -DAWS_CHECKSUMS_USE_IMPORT_EXPORT
+ -DAWS_COMMON_USE_IMPORT_EXPORT
+ -DHAVE_SYSCONF
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-aws-checksums PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-checksums/include
+)
+target_link_libraries(restricted-aws-aws-checksums PUBLIC
+ restricted-aws-aws-c-common
+)
+target_sources(restricted-aws-aws-checksums PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-checksums/source/crc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-checksums/source/crc_sw.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/aws-checksums/source/intel/asm/crc32c_sse42_asm.c
+)
diff --git a/contrib/restricted/aws/s2n/CMakeLists.txt b/contrib/restricted/aws/s2n/CMakeLists.txt
index 7243bc137a9..a692f90f36e 100644
--- a/contrib/restricted/aws/s2n/CMakeLists.txt
+++ b/contrib/restricted/aws/s2n/CMakeLists.txt
@@ -10,6 +10,8 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "aarc
include(CMakeLists.linux-aarch64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
include(CMakeLists.darwin-x86_64.txt)
+elseif (WIN32 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64" AND NOT HAVE_CUDA)
+ include(CMakeLists.windows-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
endif()
diff --git a/contrib/restricted/aws/s2n/CMakeLists.windows-x86_64.txt b/contrib/restricted/aws/s2n/CMakeLists.windows-x86_64.txt
new file mode 100644
index 00000000000..46028244d07
--- /dev/null
+++ b/contrib/restricted/aws/s2n/CMakeLists.windows-x86_64.txt
@@ -0,0 +1,278 @@
+
+# This file was generated by the build system used internally in the Yandex monorepo.
+# Only simple modifications are allowed (adding source-files to targets, adding simple properties
+# like target_include_directories). These modifications will be ported to original
+# ya.make files by maintainers. Any complex modifications which can't be ported back to the
+# original buildsystem will not be accepted.
+
+
+find_package(OpenSSL REQUIRED)
+
+add_library(restricted-aws-s2n)
+target_compile_options(restricted-aws-s2n PRIVATE
+ -DS2N_CLONE_SUPPORTED
+ -DS2N_FALL_THROUGH_SUPPORTED
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD5_SHA1_HASH
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_MD_CTX_SET_PKEY_CTX
+ -DS2N_LIBCRYPTO_SUPPORTS_EVP_RC4
+ -DS2N_MADVISE_SUPPORTED
+ -DS2N___RESTRICT__SUPPORTED
+ -DS2N_STACKTRACE
+ -DS2N_CPUID_AVAILABLE
+ -DS2N_KYBER512R3_AVX2_BMI2
+ $<IF:$<CXX_COMPILER_ID:MSVC>,,-Wno-everything>
+)
+target_include_directories(restricted-aws-s2n PUBLIC
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/api
+)
+target_link_libraries(restricted-aws-s2n PUBLIC
+ OpenSSL::OpenSSL
+)
+target_sources(restricted-aws-s2n PRIVATE
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_basemul_avx2.S
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_fq_avx2.S
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_invntt_avx2.S
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_ntt_avx2.S
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_shuffle_avx2.S
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_aead_cipher_aes_gcm.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_aead_cipher_chacha20_poly1305.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_cbc_cipher_3des.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_cbc_cipher_aes.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_certificate.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_cipher.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_composite_cipher_aes_sha.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_crypto.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_dhe.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_drbg.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_ecc_evp.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_ecdsa.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_evp.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_evp_signing.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_fips.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_hash.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_hkdf.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_hmac.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_libcrypto.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_locking.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_openssl_x509.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_rsa.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_rsa_pss.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_rsa_signing.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_sequence.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_stream_cipher_null.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_stream_cipher_rc4.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/crypto/s2n_tls13_keys.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/error/s2n_errno.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_cbd.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_fips202.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_indcpa.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_kem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_ntt.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_poly.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_polyvec.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_reduce.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_symmetric-shake.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/s2n_kyber_512_evp.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/s2n_pq.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/s2n_pq_random.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_base64.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_file.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_network_order.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_pem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/stuffer/s2n_stuffer_text.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_cert_status.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_cert_status_response.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_alpn.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_cert_status_request.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_cookie.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_early_data_indication.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_ems.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_key_share.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_max_frag_len.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_pq_kem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_psk.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_renegotiation_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_sct_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_server_name.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_session_ticket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_signature_algorithms.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_supported_groups.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_client_supported_versions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_ec_point_format.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_extension_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_extension_type.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_extension_type_lists.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_key_share.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_npn.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_nst_early_data_indication.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_psk_key_exchange_modes.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_quic_transport_params.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_alpn.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_cert_status_request.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_cookie.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_early_data_indication.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_ems.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_key_share.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_max_fragment_length.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_psk.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_renegotiation_info.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_sct_list.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_server_name.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_session_ticket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_signature_algorithms.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_server_supported_versions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/extensions/s2n_supported_versions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_aead.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_alerts.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_async_pkey.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_auth_selection.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_change_cipher_spec.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_cipher_preferences.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_cipher_suites.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_cert.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_cert_verify.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_finished.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_hello.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_hello_request.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_client_key_exchange.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_config.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_connection.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_crl.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_crypto.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_early_data.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_early_data_io.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ecc_preferences.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_encrypted_extensions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_establish_session.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_fingerprint.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_hashes.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_io.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_transcript.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_handshake_type.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_kem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_kem_preferences.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_kex.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_key_log.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_key_update.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_next_protocol.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_ocsp_stapling.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_post_handshake.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_prf.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_protocol_preferences.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_psk.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_quic_support.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_aead.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_cbc.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_composite.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_read_stream.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_record_write.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_recv.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_renegotiate.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_resume.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_security_policies.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_send.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_cert.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_cert_request.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_done.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_extensions.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_finished.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_hello.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_hello_retry.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_key_exchange.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_server_new_session_ticket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_shutdown.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_signature_algorithms.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_signature_scheme.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_certificate_verify.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_handshake.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_key_schedule.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_tls13_secrets.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/tls/s2n_x509_validator.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_array.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_asn1_time.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_blob.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_ensure.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_fork_detection.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_init.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_map.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_mem.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_random.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_result.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_rfc5952.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_safety.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_set.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_socket.c
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/utils/s2n_timer.c
+)
+target_sources_custom(restricted-aws-s2n
+ .avx2
+ SRCS
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/KeccakP-1600-times4-SIMD256_avx2.c
+ CUSTOM_FLAGS
+ /arch:AVX2
+ /DAVX2_ENABLED=1
+)
+target_sources_custom(restricted-aws-s2n
+ .avx2
+ SRCS
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_cbd_avx2.c
+ CUSTOM_FLAGS
+ /arch:AVX2
+ /DAVX2_ENABLED=1
+)
+target_sources_custom(restricted-aws-s2n
+ .avx2
+ SRCS
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_consts_avx2.c
+ CUSTOM_FLAGS
+ /arch:AVX2
+ /DAVX2_ENABLED=1
+)
+target_sources_custom(restricted-aws-s2n
+ .avx2
+ SRCS
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_fips202x4_avx2.c
+ CUSTOM_FLAGS
+ /arch:AVX2
+ /DAVX2_ENABLED=1
+)
+target_sources_custom(restricted-aws-s2n
+ .avx2
+ SRCS
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_indcpa_avx2.c
+ CUSTOM_FLAGS
+ /arch:AVX2
+ /DAVX2_ENABLED=1
+)
+target_sources_custom(restricted-aws-s2n
+ .avx2
+ SRCS
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_poly_avx2.c
+ CUSTOM_FLAGS
+ /arch:AVX2
+ /DAVX2_ENABLED=1
+)
+target_sources_custom(restricted-aws-s2n
+ .avx2
+ SRCS
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_polyvec_avx2.c
+ CUSTOM_FLAGS
+ /arch:AVX2
+ /DAVX2_ENABLED=1
+)
+target_sources_custom(restricted-aws-s2n
+ .avx2
+ SRCS
+ ${CMAKE_SOURCE_DIR}/contrib/restricted/aws/s2n/pq-crypto/kyber_r3/kyber512r3_rejsample_avx2.c
+ CUSTOM_FLAGS
+ /arch:AVX2
+ /DAVX2_ENABLED=1
+)
diff --git a/ydb/core/kqp/gateway/kqp_metadata_loader.cpp b/ydb/core/kqp/gateway/kqp_metadata_loader.cpp
index 58b896ecf2f..111e7250901 100644
--- a/ydb/core/kqp/gateway/kqp_metadata_loader.cpp
+++ b/ydb/core/kqp/gateway/kqp_metadata_loader.cpp
@@ -422,7 +422,7 @@ NThreading::TFuture<TTableMetadataResult> TKqpTableMetadataLoader::LoadTableMeta
if (entry.Status == EStatus::Ok && expectedSchemaVersion && entry.TableId.SchemaVersion) {
if (entry.TableId.SchemaVersion != expectedSchemaVersion) {
const auto message = TStringBuilder()
- << "schema version missmatch during metadata loading for: "
+ << "schema version mismatch during metadata loading for: "
<< CombinePath(entry.Path.begin(), entry.Path.end())
<< " expected " << expectedSchemaVersion
<< " got " << entry.TableId.SchemaVersion;
diff --git a/ydb/core/kqp/host/kqp_host.cpp b/ydb/core/kqp/host/kqp_host.cpp
index 501ce9f6356..24cd0f8ce99 100644
--- a/ydb/core/kqp/host/kqp_host.cpp
+++ b/ydb/core/kqp/host/kqp_host.cpp
@@ -22,6 +22,8 @@
#include <library/cpp/random_provider/random_provider.h>
#include <library/cpp/time_provider/time_provider.h>
+#include <util/system/env.h>
+
namespace NKikimr {
namespace NKqp {
@@ -681,7 +683,7 @@ public:
case EKikimrQueryType::Scan:
return KqpRunner->PrepareScanQuery(cluster, query, ctx, settings);
case EKikimrQueryType::Query:
- case EKikimrQueryType::FederatedQuery:
+ case EKikimrQueryType::Script:
return KqpRunner->PrepareQuery(cluster, query, ctx, settings);
case EKikimrQueryType::YqlScript:
case EKikimrQueryType::YqlScriptStreaming:
@@ -968,7 +970,7 @@ public:
IAsyncQueryResultPtr PrepareFederatedQuery(const TString& query, const TPrepareSettings& settings) override {
return CheckedProcessQuery(*ExprCtx,
[this, &query, settings] (TExprContext& ctx) mutable {
- return PrepareQueryInternal(query, EKikimrQueryType::FederatedQuery, settings, ctx);
+ return PrepareQueryInternal(query, EKikimrQueryType::Script, settings, ctx);
});
}
@@ -1049,6 +1051,18 @@ private:
if (isSql) {
NSQLTranslation::TTranslationSettings settings;
+ // TODO: remove this test crutch when dynamic bindings discovery will be implemented // YQ-1964
+ if (SessionCtx->Query().Type == EKikimrQueryType::Script && GetEnv("TEST_S3_CONNECTION")) {
+ NSQLTranslation::TTableBindingSettings binding;
+ binding.ClusterType = "s3";
+ binding.Settings["cluster"] = GetEnv("TEST_S3_CONNECTION");
+ binding.Settings["path"] = GetEnv("TEST_S3_OBJECT");
+ binding.Settings["format"] = GetEnv("TEST_S3_FORMAT");
+ binding.Settings["schema"] = GetEnv("TEST_S3_SCHEMA");
+
+ settings.PrivateBindings[GetEnv("TEST_S3_BINDING")] = binding;
+ }
+
if (sqlVersion) {
settings.SyntaxVersion = *sqlVersion;
@@ -1429,7 +1443,15 @@ private:
state->FunctionRegistry = FuncRegistry;
state->CredentialsFactory = nullptr; // TODO
- state->Configuration->Init(NYql::TS3GatewayConfig(), TypesCtx);
+ // TODO: remove this test crutch after dynamic connections resolving implementation // YQ-1964
+ NYql::TS3GatewayConfig cfg;
+ if (GetEnv("TEST_S3_CONNECTION")) {
+ auto* mapping = cfg.AddClusterMapping();
+ mapping->SetName(GetEnv("TEST_S3_CONNECTION"));
+ mapping->SetUrl(TStringBuilder() << GetEnv("S3_ENDPOINT") << "/" << GetEnv("TEST_S3_BUCKET") << "/");
+ }
+
+ state->Configuration->Init(cfg, TypesCtx);
auto dataSource = NYql::CreateS3DataSource(state, HttpGateway);
auto dataSink = NYql::CreateS3DataSink(state, HttpGateway);
@@ -1439,7 +1461,7 @@ private:
}
void Init(EKikimrQueryType queryType) {
- if (queryType == EKikimrQueryType::FederatedQuery) {
+ if (queryType == EKikimrQueryType::Script) {
InitS3Provider();
}
@@ -1522,6 +1544,9 @@ private:
}
void SetupSession(EKikimrQueryType queryType) {
+ SessionCtx->Reset(KeepConfigChanges);
+ SessionCtx->Query().Type = queryType;
+
Init(queryType);
ExprCtx->Reset();
@@ -1532,10 +1557,6 @@ private:
std::get<0>(TypesCtx->CachedRandom).reset();
std::get<1>(TypesCtx->CachedRandom).reset();
std::get<2>(TypesCtx->CachedRandom).reset();
-
- SessionCtx->Reset(KeepConfigChanges);
-
- SessionCtx->Query().Type = queryType;
}
void SetupYqlTransformer(EKikimrQueryType queryType) {
diff --git a/ydb/core/kqp/host/kqp_runner.cpp b/ydb/core/kqp/host/kqp_runner.cpp
index ecc6307d29d..6483d705600 100644
--- a/ydb/core/kqp/host/kqp_runner.cpp
+++ b/ydb/core/kqp/host/kqp_runner.cpp
@@ -15,6 +15,8 @@
#include <ydb/library/yql/utils/log/log.h>
#include <ydb/library/yql/core/services/yql_transform_pipeline.h>
+#include <util/generic/is_in.h>
+
namespace NKikimr {
namespace NKqp {
@@ -177,7 +179,7 @@ public:
TIntrusivePtr<TAsyncQueryResult> PrepareQuery(const TString& cluster, const TExprNode::TPtr& query,
TExprContext& ctx, const IKikimrQueryExecutor::TExecuteSettings& settings) override
{
- YQL_ENSURE(TransformCtx->QueryCtx->Type == EKikimrQueryType::Query || TransformCtx->QueryCtx->Type == EKikimrQueryType::FederatedQuery);
+ YQL_ENSURE(IsIn({EKikimrQueryType::Query, EKikimrQueryType::Script}, TransformCtx->QueryCtx->Type));
YQL_ENSURE(TransformCtx->QueryCtx->PrepareOnly);
YQL_ENSURE(TransformCtx->QueryCtx->PreparingQuery);
YQL_ENSURE(TMaybeNode<TKiDataQueryBlocks>(query));
@@ -243,13 +245,13 @@ private:
case EKikimrQueryType::Dml:
case EKikimrQueryType::Scan:
case EKikimrQueryType::Query:
- case EKikimrQueryType::FederatedQuery:
+ case EKikimrQueryType::Script:
break;
default:
YQL_ENSURE(false, "PrepareQueryNewEngine, unexpected query type: " << queryType);
}
- auto kqlQueryBlocks = BuildKqlQuery(dataQueryBlocks, *TransformCtx->Tables, ctx, sysColumnsEnabled, OptimizeCtx);
+ auto kqlQueryBlocks = BuildKqlQuery(dataQueryBlocks, *TransformCtx->Tables, ctx, sysColumnsEnabled, OptimizeCtx, TypesCtx);
if (!kqlQueryBlocks) {
return MakeKikimrResultHolder(ResultFromErrors<IKqpHost::TQueryResult>(ctx.IssueManager.GetIssues()));
}
@@ -310,7 +312,7 @@ private:
auto& preparedQuery = *TransformCtx->QueryCtx->PreparingQuery;
TKqpPhysicalQuery physicalQuery(transformedQuery);
- auto compiler = CreateKqpQueryCompiler(Cluster, OptimizeCtx->Tables, FuncRegistry);
+ auto compiler = CreateKqpQueryCompiler(Cluster, OptimizeCtx->Tables, FuncRegistry, TypesCtx);
auto ret = compiler->CompilePhysicalQuery(physicalQuery, dataQueryBlocks, *preparedQuery.MutablePhysicalQuery(), ctx);
if (!ret) {
ctx.AddError(TIssue(ctx.GetPosition(query->Pos()), "Failed to compile physical query."));
diff --git a/ydb/core/kqp/opt/kqp_opt.h b/ydb/core/kqp/opt/kqp_opt.h
index 6fc5068426e..481f5e4dc61 100644
--- a/ydb/core/kqp/opt/kqp_opt.h
+++ b/ydb/core/kqp/opt/kqp_opt.h
@@ -50,7 +50,7 @@ bool IsKqpEffectsStage(const NYql::NNodes::TDqStageBase& stage);
TMaybe<NYql::NNodes::TKqlQueryList> BuildKqlQuery(NYql::NNodes::TKiDataQueryBlocks queryBlocks,
const NYql::TKikimrTablesData& tablesData, NYql::TExprContext& ctx, bool withSystemColumns,
- const TIntrusivePtr<TKqpOptimizeContext>& kqpCtx);
+ const TIntrusivePtr<TKqpOptimizeContext>& kqpCtx, NYql::TTypeAnnotationContext& typesCtx);
TAutoPtr<NYql::IGraphTransformer> CreateKqpFinalizingOptTransformer(const TIntrusivePtr<TKqpOptimizeContext>& kqpCtx);
TAutoPtr<NYql::IGraphTransformer> CreateKqpQueryPhasesTransformer();
diff --git a/ydb/core/kqp/opt/kqp_opt_build_phy_query.cpp b/ydb/core/kqp/opt/kqp_opt_build_phy_query.cpp
index 122f37196bd..bb64d15129f 100644
--- a/ydb/core/kqp/opt/kqp_opt_build_phy_query.cpp
+++ b/ydb/core/kqp/opt/kqp_opt_build_phy_query.cpp
@@ -37,7 +37,7 @@ public:
querySettings.Type = EPhysicalQueryType::Query;
break;
}
- case EKikimrQueryType::FederatedQuery: {
+ case EKikimrQueryType::Script: {
querySettings.Type = EPhysicalQueryType::FederatedQuery;
break;
}
diff --git a/ydb/core/kqp/opt/kqp_opt_build_txs.cpp b/ydb/core/kqp/opt/kqp_opt_build_txs.cpp
index cbacd00d143..77c856e7bf7 100644
--- a/ydb/core/kqp/opt/kqp_opt_build_txs.cpp
+++ b/ydb/core/kqp/opt/kqp_opt_build_txs.cpp
@@ -70,7 +70,7 @@ private:
return EPhysicalTxType::Scan;
}
- if (QueryType == EKikimrQueryType::Query || QueryType == EKikimrQueryType::FederatedQuery) {
+ if (QueryType == EKikimrQueryType::Query || QueryType == EKikimrQueryType::Script) {
if (IsPrecompute && allStagesArePure) {
return EPhysicalTxType::Compute;
}
diff --git a/ydb/core/kqp/opt/kqp_opt_kql.cpp b/ydb/core/kqp/opt/kqp_opt_kql.cpp
index 1e03a8de445..07247b929b9 100644
--- a/ydb/core/kqp/opt/kqp_opt_kql.cpp
+++ b/ydb/core/kqp/opt/kqp_opt_kql.cpp
@@ -3,6 +3,8 @@
#include <ydb/core/kqp/provider/yql_kikimr_provider_impl.h>
#include <ydb/library/yql/core/yql_opt_utils.h>
+#include <ydb/library/yql/providers/dq/common/yql_dq_settings.h>
+#include <ydb/library/yql/dq/integration/yql_dq_integration.h>
namespace NKikimr::NKqp::NOpt {
@@ -699,7 +701,7 @@ TIntrusivePtr<TKikimrTableMetadata> GetIndexMetadata(const TKqlReadTableIndex& r
}
TMaybe<TKqlQueryList> BuildKqlQuery(TKiDataQueryBlocks dataQueryBlocks, const TKikimrTablesData& tablesData,
- TExprContext& ctx, bool withSystemColumns, const TIntrusivePtr<TKqpOptimizeContext>& kqpCtx)
+ TExprContext& ctx, bool withSystemColumns, const TIntrusivePtr<TKqpOptimizeContext>& kqpCtx, NYql::TTypeAnnotationContext& typesCtx)
{
TVector<TKqlQuery> queryBlocks;
queryBlocks.reserve(dataQueryBlocks.ArgCount());
@@ -748,12 +750,25 @@ TMaybe<TKqlQueryList> BuildKqlQuery(TKiDataQueryBlocks dataQueryBlocks, const TK
TOptimizeExprSettings optSettings(nullptr);
optSettings.VisitChanges = true;
auto status = OptimizeExpr(queryBlock.Ptr(), optResult,
- [&tablesData, withSystemColumns, &kqpCtx](const TExprNode::TPtr& input, TExprContext &ctx) {
+ [&tablesData, withSystemColumns, &kqpCtx, &typesCtx](const TExprNode::TPtr& input, TExprContext &ctx) {
auto node = TExprBase(input);
TExprNode::TPtr effect;
- if (auto maybeRead = node.Maybe<TCoRight>().Input().Maybe<TKiReadTable>()) {
- return HandleReadTable(maybeRead.Cast(), ctx, tablesData, withSystemColumns, kqpCtx);
+ if (auto input = node.Maybe<TCoRight>().Input()) {
+ if (auto maybeRead = input.Maybe<TKiReadTable>()) {
+ return HandleReadTable(maybeRead.Cast(), ctx, tablesData, withSystemColumns, kqpCtx);
+ }
+ if (input.Raw()->ChildrenSize() > 1 && TCoDataSource::Match(input.Raw()->Child(1))) {
+ auto dataSourceName = input.Raw()->Child(1)->Child(0)->Content();
+ auto dataSource = typesCtx.DataSourceMap.FindPtr(dataSourceName);
+ YQL_ENSURE(dataSource);
+ if (auto dqIntegration = (*dataSource)->GetDqIntegration()) {
+ auto newRead = dqIntegration->WrapRead(NYql::TDqSettings(), input.Cast().Ptr(), ctx);
+ if (newRead.Get() != input.Raw()) {
+ return newRead;
+ }
+ }
+ }
}
return input;
diff --git a/ydb/core/kqp/opt/logical/kqp_opt_log.cpp b/ydb/core/kqp/opt/logical/kqp_opt_log.cpp
index 2bbbae1e8cf..22af8b64c05 100644
--- a/ydb/core/kqp/opt/logical/kqp_opt_log.cpp
+++ b/ydb/core/kqp/opt/logical/kqp_opt_log.cpp
@@ -7,6 +7,7 @@
#include <ydb/library/yql/core/yql_opt_utils.h>
#include <ydb/library/yql/dq/opt/dq_opt_log.h>
#include <ydb/library/yql/providers/common/transform/yql_optimize.h>
+#include <ydb/library/yql/providers/dq/common/yql_dq_settings.h>
namespace NKikimr::NKqp::NOpt {
diff --git a/ydb/core/kqp/opt/physical/kqp_opt_phy.cpp b/ydb/core/kqp/opt/physical/kqp_opt_phy.cpp
index c559b0eba2d..1429e140d87 100644
--- a/ydb/core/kqp/opt/physical/kqp_opt_phy.cpp
+++ b/ydb/core/kqp/opt/physical/kqp_opt_phy.cpp
@@ -11,6 +11,7 @@
#include <ydb/library/yql/dq/opt/dq_opt_phy.h>
#include <ydb/library/yql/dq/opt/dq_opt_join.h>
#include <ydb/library/yql/providers/common/transform/yql_optimize.h>
+#include <ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.h>
namespace NKikimr::NKqp::NOpt {
@@ -28,6 +29,7 @@ public:
, KqpCtx(*kqpCtx)
{
#define HNDL(name) "KqpPhysical-"#name, Hndl(&TKqpPhysicalOptTransformer::name)
+ AddHandler(0, &TDqSourceWrap::Match, HNDL(BuildStageWithSourceWrap));
AddHandler(0, &TKqlReadTable::Match, HNDL(BuildReadTableStage));
AddHandler(0, &TKqlReadTableRanges::Match, HNDL(BuildReadTableRangesStage));
AddHandler(0, &TKqlLookupTable::Match, HNDL(BuildLookupTableStage));
@@ -199,7 +201,7 @@ protected:
DumpAppliedRule("BuildHashShuffleByKeyStage", node.Ptr(), output.Ptr(), ctx);
return TExprBase(output);
}
-
+
TMaybeNode<TExprBase> ExpandAggregatePhase(TExprBase node, TExprContext& ctx) {
auto output = ExpandAggregatePeepholeImpl(node.Ptr(), ctx, TypesCtx, KqpCtx.Config->HasOptUseFinalizeByKey(), false);
@@ -495,6 +497,12 @@ protected:
return output;
}
+ TMaybeNode<TExprBase> BuildStageWithSourceWrap(TExprBase node, TExprContext& ctx) {
+ TExprBase output = DqBuildStageWithSourceWrap(node, ctx);
+ DumpAppliedRule("BuildStageWithSourceWrap", node.Ptr(), output.Ptr(), ctx);
+ return output;
+ }
+
private:
TTypeAnnotationContext& TypesCtx;
const TKqpOptimizeContext& KqpCtx;
diff --git a/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt
index 5035823f904..578aa7d13ce 100644
--- a/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kqp/provider/CMakeLists.darwin-x86_64.txt
@@ -41,6 +41,7 @@ target_link_libraries(core-kqp-provider PUBLIC
providers-common-proto
providers-common-provider
common-schema-expr
+ providers-dq-expr_nodes
providers-result-expr_nodes
providers-result-provider
tools-enum_parser-enum_serialization_runtime
diff --git a/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt
index 6efae41378f..6e2d17eddc4 100644
--- a/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kqp/provider/CMakeLists.linux-aarch64.txt
@@ -42,6 +42,7 @@ target_link_libraries(core-kqp-provider PUBLIC
providers-common-proto
providers-common-provider
common-schema-expr
+ providers-dq-expr_nodes
providers-result-expr_nodes
providers-result-provider
tools-enum_parser-enum_serialization_runtime
diff --git a/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt
index 6efae41378f..6e2d17eddc4 100644
--- a/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kqp/provider/CMakeLists.linux-x86_64.txt
@@ -42,6 +42,7 @@ target_link_libraries(core-kqp-provider PUBLIC
providers-common-proto
providers-common-provider
common-schema-expr
+ providers-dq-expr_nodes
providers-result-expr_nodes
providers-result-provider
tools-enum_parser-enum_serialization_runtime
diff --git a/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt
index 5035823f904..578aa7d13ce 100644
--- a/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kqp/provider/CMakeLists.windows-x86_64.txt
@@ -41,6 +41,7 @@ target_link_libraries(core-kqp-provider PUBLIC
providers-common-proto
providers-common-provider
common-schema-expr
+ providers-dq-expr_nodes
providers-result-expr_nodes
providers-result-provider
tools-enum_parser-enum_serialization_runtime
diff --git a/ydb/core/kqp/provider/ya.make b/ydb/core/kqp/provider/ya.make
index 76afad6b715..515d1934be1 100644
--- a/ydb/core/kqp/provider/ya.make
+++ b/ydb/core/kqp/provider/ya.make
@@ -40,6 +40,7 @@ PEERDIR(
ydb/library/yql/providers/common/proto
ydb/library/yql/providers/common/provider
ydb/library/yql/providers/common/schema/expr
+ ydb/library/yql/providers/dq/expr_nodes
ydb/library/yql/providers/result/expr_nodes
ydb/library/yql/providers/result/provider
)
diff --git a/ydb/core/kqp/provider/yql_kikimr_datasource.cpp b/ydb/core/kqp/provider/yql_kikimr_datasource.cpp
index 7aa803b7e48..f4b88ee1249 100644
--- a/ydb/core/kqp/provider/yql_kikimr_datasource.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_datasource.cpp
@@ -5,6 +5,9 @@
#include <ydb/library/yql/core/yql_expr_optimize.h>
#include <ydb/library/yql/core/yql_expr_type_annotation.h>
+#include <ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.h>
+
+#include <util/generic/is_in.h>
namespace NYql {
namespace {
@@ -404,6 +407,22 @@ public:
return TKiDataSource(node.ChildPtr(1)).Category() == KikimrProviderName;
}
+ if (
+ IsIn({EKikimrQueryType::Query, EKikimrQueryType::Script}, SessionCtx->Query().Type)
+ &&
+ (
+ node.IsCallable(TDqSourceWrap::CallableName()) ||
+ node.IsCallable(TDqSourceWideWrap::CallableName()) ||
+ node.IsCallable(TDqSourceWideBlockWrap::CallableName()) ||
+ node.IsCallable(TDqReadWrap::CallableName()) ||
+ node.IsCallable(TDqReadWideWrap::CallableName()) ||
+ node.IsCallable(TDqSource::CallableName())
+ )
+ )
+ {
+ return true;
+ }
+
YQL_ENSURE(!KikimrDataSourceFunctions().contains(node.Content()));
return false;
}
diff --git a/ydb/core/kqp/provider/yql_kikimr_opt.cpp b/ydb/core/kqp/provider/yql_kikimr_opt.cpp
index f645e6a1a70..47616fcb3c5 100644
--- a/ydb/core/kqp/provider/yql_kikimr_opt.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_opt.cpp
@@ -43,14 +43,12 @@ TExprNode::TPtr KiEmptyCommit(TExprBase node) {
TAutoPtr<IGraphTransformer> CreateKiLogicalOptProposalTransformer(TIntrusivePtr<TKikimrSessionContext> sessionCtx,
TTypeAnnotationContext& types)
{
- Y_UNUSED(types);
-
- return CreateFunctorTransformer([sessionCtx](const TExprNode::TPtr& input, TExprNode::TPtr& output,
+ return CreateFunctorTransformer([sessionCtx, &types](const TExprNode::TPtr& input, TExprNode::TPtr& output,
TExprContext& ctx)
{
using TStatus = IGraphTransformer::TStatus;
- TStatus status = OptimizeExpr(input, output, [sessionCtx](const TExprNode::TPtr& inputNode, TExprContext& ctx) {
+ TStatus status = OptimizeExpr(input, output, [sessionCtx, &types](const TExprNode::TPtr& inputNode, TExprContext& ctx) {
auto ret = inputNode;
TExprBase node(inputNode);
@@ -62,7 +60,7 @@ TAutoPtr<IGraphTransformer> CreateKiLogicalOptProposalTransformer(TIntrusivePtr<
if (auto maybeDatasink = node.Maybe<TCoCommit>().DataSink().Maybe<TKiDataSink>()) {
auto cluster = TString(maybeDatasink.Cast().Cluster());
- ret = KiBuildQuery(node, ctx, sessionCtx->TablesPtr());
+ ret = KiBuildQuery(node, ctx, sessionCtx->TablesPtr(), types);
if (ret != inputNode) {
return ret;
diff --git a/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp b/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp
index bef11b58d6d..387edee26f2 100644
--- a/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_opt_build.cpp
@@ -4,6 +4,8 @@
#include <ydb/library/yql/core/yql_opt_utils.h>
#include <ydb/library/yql/utils/log/log.h>
#include <ydb/library/yql/providers/result/expr_nodes/yql_res_expr_nodes.h>
+#include <ydb/library/yql/dq/integration/yql_dq_integration.h>
+#include <ydb/library/yql/providers/dq/common/yql_dq_settings.h>
namespace NYql {
namespace {
@@ -272,7 +274,7 @@ struct TKiExploreTxResults {
};
bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, TKiExploreTxResults& txRes,
- TIntrusivePtr<TKikimrTablesData> tablesData) {
+ TIntrusivePtr<TKikimrTablesData> tablesData, TTypeAnnotationContext& types) {
if (txRes.Ops.cend() != txRes.Ops.find(node.Raw())) {
return true;
@@ -285,7 +287,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
if (auto maybeLeft = node.Maybe<TCoLeft>()) {
txRes.Ops.insert(node.Raw());
- return ExploreTx(maybeLeft.Cast().Input(), ctx, dataSink, txRes, tablesData);
+ return ExploreTx(maybeLeft.Cast().Input(), ctx, dataSink, txRes, tablesData, types);
}
auto checkDataSource = [dataSink] (const TKiDataSource& ds) {
@@ -309,7 +311,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
YQL_ENSURE(key.GetKeyType() == TKikimrKey::Type::Table);
auto table = key.GetTablePath();
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(maybeRead.Cast().World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(maybeRead.Cast().World(), ctx, dataSink, txRes, tablesData, types);
YQL_ENSURE(tablesData);
const auto& tableData = tablesData->ExistingTable(cluster, table);
@@ -320,6 +322,18 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
return result;
}
+ for (const auto& dataSource : types.DataSources) {
+ if (auto* dqIntegration = dataSource->GetDqIntegration(); dqIntegration && dqIntegration->CanRead(TDqSettings::TDefault::DataSizePerJob, TDqSettings::TDefault::MaxTasksPerStage, *node.Ptr(), ctx)) {
+ txRes.Ops.insert(node.Raw());
+ for (size_t i = 0, childrenSize = node.Raw()->ChildrenSize(); i < childrenSize; ++i) {
+ TExprNode* child = node.Raw()->Child(i);
+ if (child && child->IsWorld()) {
+ return ExploreTx(TExprBase(child), ctx, dataSink, txRes, tablesData, types);
+ }
+ }
+ }
+ }
+
if (auto maybeWrite = node.Maybe<TKiWriteTable>()) {
auto write = maybeWrite.Cast();
if (!checkDataSink(write.DataSink())) {
@@ -328,7 +342,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
auto table = write.Table().Value();
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(write.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(write.World(), ctx, dataSink, txRes, tablesData, types);
auto tableOp = GetTableOp(write);
YQL_ENSURE(tablesData);
@@ -360,7 +374,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
auto table = update.Table().Value();
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(update.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(update.World(), ctx, dataSink, txRes, tablesData, types);
const auto tableOp = TYdbOperation::Update;
YQL_ENSURE(tablesData);
@@ -385,7 +399,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
auto table = del.Table().Value();
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(del.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(del.World(), ctx, dataSink, txRes, tablesData, types);
const auto tableOp = TYdbOperation::Delete;
YQL_ENSURE(tablesData);
@@ -404,7 +418,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
auto table = create.Table().Value();
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(create.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(create.World(), ctx, dataSink, txRes, tablesData, types);
txRes.AddTableOperation(BuildTableOpNode(cluster, table, TYdbOperation::CreateTable, create.Pos(), ctx));
return result;
}
@@ -417,7 +431,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
auto table = drop.Table().Value();
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(drop.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(drop.World(), ctx, dataSink, txRes, tablesData, types);
txRes.AddTableOperation(BuildTableOpNode(cluster, table, TYdbOperation::DropTable, drop.Pos(), ctx));
return result;
}
@@ -430,7 +444,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
auto table = alter.Table().Value();
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(alter.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(alter.World(), ctx, dataSink, txRes, tablesData, types);
txRes.AddTableOperation(BuildTableOpNode(cluster, table, TYdbOperation::AlterTable, alter.Pos(), ctx));
return result;
}
@@ -442,7 +456,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
}
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(createUser.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(createUser.World(), ctx, dataSink, txRes, tablesData, types);
txRes.AddTableOperation(BuildYdbOpNode(cluster, TYdbOperation::CreateUser, createUser.Pos(), ctx));
return result;
}
@@ -454,7 +468,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
}
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(alterUser.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(alterUser.World(), ctx, dataSink, txRes, tablesData, types);
txRes.AddTableOperation(BuildYdbOpNode(cluster, TYdbOperation::AlterUser, alterUser.Pos(), ctx));
return result;
}
@@ -466,7 +480,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
}
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(dropUser.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(dropUser.World(), ctx, dataSink, txRes, tablesData, types);
txRes.AddTableOperation(BuildYdbOpNode(cluster, TYdbOperation::DropUser, dropUser.Pos(), ctx));
return result;
}
@@ -478,7 +492,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
}
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(createGroup.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(createGroup.World(), ctx, dataSink, txRes, tablesData, types);
txRes.AddTableOperation(BuildYdbOpNode(cluster, TYdbOperation::CreateGroup, createGroup.Pos(), ctx));
return result;
}
@@ -490,7 +504,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
}
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(alterGroup.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(alterGroup.World(), ctx, dataSink, txRes, tablesData, types);
txRes.AddTableOperation(BuildYdbOpNode(cluster, TYdbOperation::AlterGroup, alterGroup.Pos(), ctx));
return result;
}
@@ -502,7 +516,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
}
txRes.Ops.insert(node.Raw());
- auto result = ExploreTx(dropGroup.World(), ctx, dataSink, txRes, tablesData);
+ auto result = ExploreTx(dropGroup.World(), ctx, dataSink, txRes, tablesData, types);
txRes.AddTableOperation(BuildYdbOpNode(cluster, TYdbOperation::DropGroup, dropGroup.Pos(), ctx));
return result;
}
@@ -525,13 +539,13 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
return true;
}
- return ExploreTx(commit.World(), ctx, dataSink, txRes, tablesData);
+ return ExploreTx(commit.World(), ctx, dataSink, txRes, tablesData, types);
}
if (auto maybeSync = node.Maybe<TCoSync>()) {
txRes.Ops.insert(node.Raw());
for (auto child : maybeSync.Cast()) {
- if (!ExploreTx(child, ctx, dataSink, txRes, tablesData)) {
+ if (!ExploreTx(child, ctx, dataSink, txRes, tablesData, types)) {
return false;
}
@@ -543,7 +557,7 @@ bool ExploreTx(TExprBase node, TExprContext& ctx, const TKiDataSink& dataSink, T
node.Maybe<TResPull>())
{
txRes.Ops.insert(node.Raw());
- bool result = ExploreTx(TExprBase(node.Ref().ChildPtr(0)), ctx, dataSink, txRes, tablesData);
+ bool result = ExploreTx(TExprBase(node.Ref().ChildPtr(0)), ctx, dataSink, txRes, tablesData, types);
txRes.AddResult(node);
return result;
}
@@ -694,7 +708,7 @@ TVector<TKiDataQueryBlock> MakeKiDataQueryBlocks(TExprBase node, const TKiExplor
} // namespace
-TExprNode::TPtr KiBuildQuery(TExprBase node, TExprContext& ctx, TIntrusivePtr<TKikimrTablesData> tablesData) {
+TExprNode::TPtr KiBuildQuery(TExprBase node, TExprContext& ctx, TIntrusivePtr<TKikimrTablesData> tablesData, TTypeAnnotationContext& types) {
if (!node.Maybe<TCoCommit>().DataSink().Maybe<TKiDataSink>()) {
return node.Ptr();
}
@@ -704,7 +718,7 @@ TExprNode::TPtr KiBuildQuery(TExprBase node, TExprContext& ctx, TIntrusivePtr<TK
auto kiDataSink = commit.DataSink().Cast<TKiDataSink>();
TKiExploreTxResults txExplore;
- if (!ExploreTx(commit.World(), ctx, kiDataSink, txExplore, tablesData)) {
+ if (!ExploreTx(commit.World(), ctx, kiDataSink, txExplore, tablesData, types)) {
return node.Ptr();
}
diff --git a/ydb/core/kqp/provider/yql_kikimr_provider.h b/ydb/core/kqp/provider/yql_kikimr_provider.h
index 18555063d18..3024b13c812 100644
--- a/ydb/core/kqp/provider/yql_kikimr_provider.h
+++ b/ydb/core/kqp/provider/yql_kikimr_provider.h
@@ -11,8 +11,9 @@
#include <library/cpp/actors/core/actor.h>
#include <library/cpp/cache/cache.h>
-#include <util/generic/strbuf.h>
#include <util/generic/flags.h>
+#include <util/generic/is_in.h>
+#include <util/generic/strbuf.h>
namespace NYql {
@@ -66,8 +67,8 @@ enum class EKikimrQueryType {
YqlInternal,
Scan,
YqlScriptStreaming,
- Query,
- FederatedQuery,
+ Query, // ExecuteQuery
+ Script, // ExecuteScript
};
struct TKikimrQueryContext : TThrRefBase {
@@ -309,7 +310,7 @@ public:
return false;
}
- if ((queryType == EKikimrQueryType::Query || queryType == EKikimrQueryType::FederatedQuery) && (newOp & KikimrSchemeOps())) {
+ if (IsIn({EKikimrQueryType::Query, EKikimrQueryType::Script}, queryType) && (newOp & KikimrSchemeOps())) {
TString message = TStringBuilder() << "Operation '" << newOp
<< "' can't be performed in query";
ctx.AddError(YqlIssue(pos, TIssuesIds::KIKIMR_BAD_OPERATION, message));
diff --git a/ydb/core/kqp/provider/yql_kikimr_provider_impl.h b/ydb/core/kqp/provider/yql_kikimr_provider_impl.h
index 7e7ce108cc7..c4fc0b67b36 100644
--- a/ydb/core/kqp/provider/yql_kikimr_provider_impl.h
+++ b/ydb/core/kqp/provider/yql_kikimr_provider_impl.h
@@ -13,7 +13,7 @@ namespace NYql {
class TKiSourceVisitorTransformer: public TSyncTransformerBase {
public:
- TStatus DoTransform(TExprNode::TPtr input, TExprNode::TPtr& output, TExprContext& ctx) final;
+ TStatus DoTransform(TExprNode::TPtr input, TExprNode::TPtr& output, TExprContext& ctx) override;
void Rewind() override {
}
@@ -174,7 +174,7 @@ void TableDescriptionToTableInfo(const TKikimrTableDescription& desc, TYdbOperat
TVector<NKqpProto::TKqpTableInfo>& infos);
// Optimizer rules
-TExprNode::TPtr KiBuildQuery(NNodes::TExprBase node, TExprContext& ctx, TIntrusivePtr<TKikimrTablesData> tablesData);
+TExprNode::TPtr KiBuildQuery(NNodes::TExprBase node, TExprContext& ctx, TIntrusivePtr<TKikimrTablesData> tablesData, TTypeAnnotationContext& types);
TExprNode::TPtr KiBuildResult(NNodes::TExprBase node, const TString& cluster, TExprContext& ctx);
const THashSet<TStringBuf>& KikimrDataSourceFunctions();
diff --git a/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp b/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp
index 46f5a3b0ef4..1b9a5a1fac4 100644
--- a/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp
+++ b/ydb/core/kqp/provider/yql_kikimr_type_ann.cpp
@@ -7,6 +7,9 @@
#include <ydb/library/yql/core/yql_opt_utils.h>
#include <ydb/library/yql/parser/pg_wrapper/interface/type_desc.h>
#include <ydb/library/yql/providers/common/provider/yql_provider.h>
+#include <ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h>
+
+#include <util/generic/is_in.h>
namespace NYql {
namespace {
@@ -102,7 +105,19 @@ class TKiSourceTypeAnnotationTransformer : public TKiSourceVisitorTransformer {
public:
TKiSourceTypeAnnotationTransformer(TIntrusivePtr<TKikimrSessionContext> sessionCtx, TTypeAnnotationContext& types)
: SessionCtx(sessionCtx)
- , Types(types) {}
+ , Types(types)
+ , DqsTypeAnn(IsIn({EKikimrQueryType::Query, EKikimrQueryType::Script}, SessionCtx->Query().Type) ? CreateDqsDataSourceTypeAnnotationTransformer(false) : nullptr)
+ {}
+
+ TStatus DoTransform(TExprNode::TPtr input, TExprNode::TPtr& output, TExprContext& ctx) override {
+ if (DqsTypeAnn && DqsTypeAnn->CanParse(*input)) {
+ TStatus status = DqsTypeAnn->DoTransform(input, output, ctx);
+ if (input->GetTypeAnn()) {
+ return status;
+ }
+ }
+ return TKiSourceVisitorTransformer::DoTransform(input, output, ctx);
+ }
private:
TStatus HandleKiRead(TKiReadBase node, TExprContext& ctx) override {
@@ -216,6 +231,7 @@ private:
private:
TIntrusivePtr<TKikimrSessionContext> SessionCtx;
TTypeAnnotationContext& Types;
+ THolder<TVisitorTransformerBase> DqsTypeAnn;
};
namespace {
diff --git a/ydb/core/kqp/query_compiler/kqp_mkql_compiler.cpp b/ydb/core/kqp/query_compiler/kqp_mkql_compiler.cpp
index 662c2c0baab..72a77a87a2b 100644
--- a/ydb/core/kqp/query_compiler/kqp_mkql_compiler.cpp
+++ b/ydb/core/kqp/query_compiler/kqp_mkql_compiler.cpp
@@ -4,6 +4,8 @@
#include <ydb/core/scheme/scheme_tabledefs.h>
#include <ydb/library/yql/providers/common/mkql/yql_type_mkql.h>
+#include <ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.h>
+#include <ydb/library/yql/dq/integration/yql_dq_integration.h>
namespace NKikimr {
namespace NKqp {
@@ -220,9 +222,27 @@ const TKikimrTableMetadata& TKqlCompileContext::GetTableMeta(const TKqpTable& ta
return meta;
}
-TIntrusivePtr<IMkqlCallableCompiler> CreateKqlCompiler(const TKqlCompileContext& ctx) {
+TIntrusivePtr<IMkqlCallableCompiler> CreateKqlCompiler(const TKqlCompileContext& ctx, TTypeAnnotationContext& typesCtx) {
auto compiler = MakeIntrusive<NCommon::TMkqlCommonCallableCompiler>();
+ compiler->AddCallable({TDqSourceWideWrap::CallableName(), TDqSourceWideBlockWrap::CallableName(), TDqReadWideWrap::CallableName()},
+ [](const TExprNode& node, NCommon::TMkqlBuildContext&) {
+ YQL_ENSURE(false, "Unsupported reader: " << node.Head().Content());
+ return TRuntimeNode();
+ });
+
+ for (const auto& provider : typesCtx.DataSources) {
+ if (auto* dqIntegration = provider->GetDqIntegration()) {
+ dqIntegration->RegisterMkqlCompiler(*compiler);
+ }
+ }
+
+ for (const auto& provider : typesCtx.DataSinks) {
+ if (auto* dqIntegration = provider->GetDqIntegration()) {
+ dqIntegration->RegisterMkqlCompiler(*compiler);
+ }
+ }
+
compiler->AddCallable(TKqpWideReadTable::CallableName(),
[&ctx](const TExprNode& node, TMkqlBuildContext& buildCtx) {
TKqpWideReadTable readTable(&node);
diff --git a/ydb/core/kqp/query_compiler/kqp_mkql_compiler.h b/ydb/core/kqp/query_compiler/kqp_mkql_compiler.h
index 9d89a0188d9..78d31abba38 100644
--- a/ydb/core/kqp/query_compiler/kqp_mkql_compiler.h
+++ b/ydb/core/kqp/query_compiler/kqp_mkql_compiler.h
@@ -31,7 +31,7 @@ private:
THolder<NMiniKQL::TKqpProgramBuilder> PgmBuilder_;
};
-TIntrusivePtr<NYql::NCommon::IMkqlCallableCompiler> CreateKqlCompiler(const TKqlCompileContext& ctx);
+TIntrusivePtr<NYql::NCommon::IMkqlCallableCompiler> CreateKqlCompiler(const TKqlCompileContext& ctx, NYql::TTypeAnnotationContext& typesCtx);
} // namespace NKqp
} // namespace NKikimr
diff --git a/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp b/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
index 4eb5ff20850..51f4b03298e 100644
--- a/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
+++ b/ydb/core/kqp/query_compiler/kqp_query_compiler.cpp
@@ -431,14 +431,14 @@ void FillOlapProgram(const TCoLambda& process, const NKikimr::NMiniKQL::TType* m
class TKqpQueryCompiler : public IKqpQueryCompiler {
public:
TKqpQueryCompiler(const TString& cluster, const TIntrusivePtr<TKikimrTablesData> tablesData,
- const NMiniKQL::IFunctionRegistry& funcRegistry)
+ const NMiniKQL::IFunctionRegistry& funcRegistry, TTypeAnnotationContext& typesCtx)
: Cluster(cluster)
, TablesData(tablesData)
, FuncRegistry(funcRegistry)
, Alloc(__LOCATION__, TAlignedPagePoolCounters(), funcRegistry.SupportsSizedAllocators())
, TypeEnv(Alloc)
, KqlCtx(cluster, tablesData, TypeEnv, FuncRegistry)
- , KqlCompiler(CreateKqlCompiler(KqlCtx))
+ , KqlCompiler(CreateKqlCompiler(KqlCtx, typesCtx))
{
Alloc.Release();
}
@@ -1004,9 +1004,10 @@ private:
} // namespace
TIntrusivePtr<IKqpQueryCompiler> CreateKqpQueryCompiler(const TString& cluster,
- const TIntrusivePtr<TKikimrTablesData> tablesData, const IFunctionRegistry& funcRegistry)
+ const TIntrusivePtr<TKikimrTablesData> tablesData, const IFunctionRegistry& funcRegistry,
+ TTypeAnnotationContext& typesCtx)
{
- return MakeIntrusive<TKqpQueryCompiler>(cluster, tablesData, funcRegistry);
+ return MakeIntrusive<TKqpQueryCompiler>(cluster, tablesData, funcRegistry, typesCtx);
}
} // namespace NKqp
diff --git a/ydb/core/kqp/query_compiler/kqp_query_compiler.h b/ydb/core/kqp/query_compiler/kqp_query_compiler.h
index 9d0dba0e18c..51e0de9ee12 100644
--- a/ydb/core/kqp/query_compiler/kqp_query_compiler.h
+++ b/ydb/core/kqp/query_compiler/kqp_query_compiler.h
@@ -17,7 +17,8 @@ public:
};
TIntrusivePtr<IKqpQueryCompiler> CreateKqpQueryCompiler(const TString& cluster,
- const TIntrusivePtr<NYql::TKikimrTablesData> tablesData, const NMiniKQL::IFunctionRegistry& funcRegistry);
+ const TIntrusivePtr<NYql::TKikimrTablesData> tablesData, const NMiniKQL::IFunctionRegistry& funcRegistry,
+ NYql::TTypeAnnotationContext& typesCtx);
} // namespace NKqp
} // namespace NKikimr
diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-x86_64.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-x86_64.txt
index 6acb135eb32..ab5e1306a1f 100644
--- a/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-x86_64.txt
+++ b/ydb/core/kqp/ut/federated_query/CMakeLists.darwin-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-kqp-ut-federated_query PUBLIC
library-cpp-cpuid_check
cpp-testing-unittest_main
ydb-core-kqp
+ libs-aws-sdk-cpp-aws-cpp-sdk-s3
kqp-ut-common
yql-sql-pg_dummy
)
diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.linux-aarch64.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.linux-aarch64.txt
index 361e8bd1592..802a8a5fc89 100644
--- a/ydb/core/kqp/ut/federated_query/CMakeLists.linux-aarch64.txt
+++ b/ydb/core/kqp/ut/federated_query/CMakeLists.linux-aarch64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-kqp-ut-federated_query PUBLIC
cpp-malloc-jemalloc
cpp-testing-unittest_main
ydb-core-kqp
+ libs-aws-sdk-cpp-aws-cpp-sdk-s3
kqp-ut-common
yql-sql-pg_dummy
)
diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.linux-x86_64.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.linux-x86_64.txt
index 625a126be2d..bcadbba7b6f 100644
--- a/ydb/core/kqp/ut/federated_query/CMakeLists.linux-x86_64.txt
+++ b/ydb/core/kqp/ut/federated_query/CMakeLists.linux-x86_64.txt
@@ -23,6 +23,7 @@ target_link_libraries(ydb-core-kqp-ut-federated_query PUBLIC
library-cpp-cpuid_check
cpp-testing-unittest_main
ydb-core-kqp
+ libs-aws-sdk-cpp-aws-cpp-sdk-s3
kqp-ut-common
yql-sql-pg_dummy
)
diff --git a/ydb/core/kqp/ut/federated_query/CMakeLists.windows-x86_64.txt b/ydb/core/kqp/ut/federated_query/CMakeLists.windows-x86_64.txt
index 54d8599264b..866e0aa3fa1 100644
--- a/ydb/core/kqp/ut/federated_query/CMakeLists.windows-x86_64.txt
+++ b/ydb/core/kqp/ut/federated_query/CMakeLists.windows-x86_64.txt
@@ -21,6 +21,7 @@ target_link_libraries(ydb-core-kqp-ut-federated_query PUBLIC
library-cpp-cpuid_check
cpp-testing-unittest_main
ydb-core-kqp
+ libs-aws-sdk-cpp-aws-cpp-sdk-s3
kqp-ut-common
yql-sql-pg_dummy
)
diff --git a/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp b/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp
index 9021932703a..4a5ea87a192 100644
--- a/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp
+++ b/ydb/core/kqp/ut/federated_query/kqp_federated_query_ut.cpp
@@ -2,20 +2,78 @@
#include <util/system/env.h>
+#include <aws/core/auth/AWSCredentialsProvider.h>
+#include <aws/core/Aws.h>
+#include <aws/s3/model/CreateBucketRequest.h>
+#include <aws/s3/model/PutObjectRequest.h>
+#include <aws/s3/S3Client.h>
+
namespace NKikimr {
namespace NKqp {
using namespace NYdb;
using namespace NYdb::NQuery;
+constexpr TStringBuf TEST_CONTENT =
+R"({"key": "1", "value": "trololo"}
+{"key": "2", "value": "hello world"}
+)"sv;
+
+const TString TEST_SCHEMA = R"(["StructType";[["key";["DataType";"Utf8";];];["value";["DataType";"Utf8";];];];])";
+
+bool InitAwsApi() {
+ Aws::InitAPI(Aws::SDKOptions());
+ return true;
+}
+
+bool EnsureAwsApiInited() {
+ static const bool inited = InitAwsApi();
+ return inited;
+}
+
+void CreateBucketWithObject(const TString& bucket, const TString& object, const TStringBuf& content) {
+ EnsureAwsApiInited();
+
+ Aws::Client::ClientConfiguration s3ClientConfig;
+ s3ClientConfig.endpointOverride = GetEnv("S3_ENDPOINT");
+ s3ClientConfig.scheme = Aws::Http::Scheme::HTTP;
+ Aws::S3::S3Client s3Client(std::make_shared<Aws::Auth::AnonymousAWSCredentialsProvider>(), s3ClientConfig);
+
+ {
+ Aws::S3::Model::CreateBucketRequest req;
+ req.SetBucket(bucket);
+ const Aws::S3::Model::CreateBucketOutcome result = s3Client.CreateBucket(req);
+ UNIT_ASSERT_C(result.IsSuccess(), "Error creating bucket \"" << bucket << "\": " << result.GetError().GetExceptionName() << ": " << result.GetError().GetMessage());
+ }
+
+ {
+ Aws::S3::Model::PutObjectRequest req;
+ req.WithBucket(bucket).WithKey(object);
+
+ auto inputStream = std::make_shared<std::stringstream>();
+ *inputStream << content;
+ req.SetBody(inputStream);
+ const Aws::S3::Model::PutObjectOutcome result = s3Client.PutObject(req);
+ UNIT_ASSERT_C(result.IsSuccess(), "Error uploading object \"" << object << "\" to a bucket \"" << bucket << "\": " << result.GetError().GetExceptionName() << ": " << result.GetError().GetMessage());
+ }
+}
+
Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
Y_UNIT_TEST(ExecuteScript) {
Cerr << "S3 endpoint: " << GetEnv("S3_ENDPOINT") << Endl;
+ CreateBucketWithObject("test_bucket", "Root/test_object", TEST_CONTENT);
+ SetEnv("TEST_S3_BUCKET", "test_bucket");
+ SetEnv("TEST_S3_OBJECT", "test_object");
+ SetEnv("TEST_S3_CONNECTION", "test_connection");
+ SetEnv("TEST_S3_BINDING", "test_binding");
+ SetEnv("TEST_S3_FORMAT", "json_each_row");
+ SetEnv("TEST_S3_SCHEMA", TEST_SCHEMA);
+
auto kikimr = DefaultKikimrRunner();
auto db = kikimr.GetQueryClient();
auto executeScrptsResult = db.ExecuteScript(R"(
- SELECT 42
+ SELECT * FROM bindings.test_binding
)").ExtractValueSync();
UNIT_ASSERT_VALUES_EQUAL_C(executeScrptsResult.Status().GetStatus(), EStatus::SUCCESS, executeScrptsResult.Status().GetIssues().ToString());
UNIT_ASSERT(executeScrptsResult.Metadata().ExecutionId);
@@ -26,11 +84,12 @@ Y_UNIT_TEST_SUITE(KqpFederatedQuery) {
TAsyncFetchScriptResultsResult future = db.FetchScriptResults(executeScrptsResult.Metadata().ExecutionId);
results.ConstructInPlace(future.ExtractValueSync());
if (!results->IsSuccess()) {
- UNIT_ASSERT_C(results->GetStatus() == NYdb::EStatus::BAD_REQUEST, results->GetStatus());
+ UNIT_ASSERT_C(results->GetStatus() == NYdb::EStatus::BAD_REQUEST, results->GetStatus() << ": " << results->GetIssues().ToString());
UNIT_ASSERT_STRING_CONTAINS(results->GetIssues().ToOneLineString(), "Results are not ready");
}
} while (!results->HasResultSet());
TResultSetParser resultSet(results->ExtractResultSet());
+ return;
UNIT_ASSERT_VALUES_EQUAL(resultSet.ColumnsCount(), 1);
UNIT_ASSERT_VALUES_EQUAL(resultSet.RowsCount(), 1);
UNIT_ASSERT(resultSet.TryNextRow());
diff --git a/ydb/core/kqp/ut/federated_query/ya.make b/ydb/core/kqp/ut/federated_query/ya.make
index 4da8a0ae4c6..74950ea4efa 100644
--- a/ydb/core/kqp/ut/federated_query/ya.make
+++ b/ydb/core/kqp/ut/federated_query/ya.make
@@ -14,6 +14,7 @@ SRCS(
)
PEERDIR(
+ contrib/libs/aws-sdk-cpp/aws-cpp-sdk-s3
ydb/core/kqp/ut/common
ydb/library/yql/sql/pg_dummy
)
diff --git a/ydb/library/yql/dq/integration/yql_dq_integration.h b/ydb/library/yql/dq/integration/yql_dq_integration.h
index 68e87eaac7f..447af086e68 100644
--- a/ydb/library/yql/dq/integration/yql_dq_integration.h
+++ b/ydb/library/yql/dq/integration/yql_dq_integration.h
@@ -30,7 +30,7 @@ public:
virtual ui64 Partition(const TDqSettings& config, size_t maxPartitions, const TExprNode& node,
TVector<TString>& partitions, TString* clusterName, TExprContext& ctx, bool canFallback) = 0;
virtual bool CheckPragmas(const TExprNode& node, TExprContext& ctx, bool skipIssues = false) { Y_UNUSED(skipIssues); Y_UNUSED(node); Y_UNUSED(ctx); return true; }
- virtual TMaybe<ui64> CanRead(const TDqSettings& config, const TExprNode& read, TExprContext& ctx, bool skipIssues = true) = 0;
+ virtual TMaybe<ui64> CanRead(ui64 dataSizePerJob, ui32 maxTasksPerStage, const TExprNode& read, TExprContext& ctx, bool skipIssues = true) = 0;
virtual TExprNode::TPtr WrapRead(const TDqSettings& config, const TExprNode::TPtr& read, TExprContext& ctx) = 0;
virtual TMaybe<bool> CanWrite(const TDqSettings& config, const TExprNode& write, TExprContext& ctx) = 0;
virtual void RegisterMkqlCompiler(NCommon::TMkqlCallableCompilerBase& compiler) = 0;
diff --git a/ydb/library/yql/dq/opt/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/dq/opt/CMakeLists.darwin-x86_64.txt
index c729a2f2e1c..20e4f10070f 100644
--- a/ydb/library/yql/dq/opt/CMakeLists.darwin-x86_64.txt
+++ b/ydb/library/yql/dq/opt/CMakeLists.darwin-x86_64.txt
@@ -18,8 +18,10 @@ target_link_libraries(yql-dq-opt PUBLIC
library-yql-core
yql-dq-common
yql-dq-expr_nodes
+ yql-dq-integration
yql-dq-proto
yql-dq-type_ann
+ providers-dq-expr_nodes
)
target_sources(yql-dq-opt PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt.cpp
diff --git a/ydb/library/yql/dq/opt/CMakeLists.linux-aarch64.txt b/ydb/library/yql/dq/opt/CMakeLists.linux-aarch64.txt
index 9271a730d46..bc0a22c399e 100644
--- a/ydb/library/yql/dq/opt/CMakeLists.linux-aarch64.txt
+++ b/ydb/library/yql/dq/opt/CMakeLists.linux-aarch64.txt
@@ -19,8 +19,10 @@ target_link_libraries(yql-dq-opt PUBLIC
library-yql-core
yql-dq-common
yql-dq-expr_nodes
+ yql-dq-integration
yql-dq-proto
yql-dq-type_ann
+ providers-dq-expr_nodes
)
target_sources(yql-dq-opt PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt.cpp
diff --git a/ydb/library/yql/dq/opt/CMakeLists.linux-x86_64.txt b/ydb/library/yql/dq/opt/CMakeLists.linux-x86_64.txt
index 9271a730d46..bc0a22c399e 100644
--- a/ydb/library/yql/dq/opt/CMakeLists.linux-x86_64.txt
+++ b/ydb/library/yql/dq/opt/CMakeLists.linux-x86_64.txt
@@ -19,8 +19,10 @@ target_link_libraries(yql-dq-opt PUBLIC
library-yql-core
yql-dq-common
yql-dq-expr_nodes
+ yql-dq-integration
yql-dq-proto
yql-dq-type_ann
+ providers-dq-expr_nodes
)
target_sources(yql-dq-opt PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt.cpp
diff --git a/ydb/library/yql/dq/opt/CMakeLists.windows-x86_64.txt b/ydb/library/yql/dq/opt/CMakeLists.windows-x86_64.txt
index c729a2f2e1c..20e4f10070f 100644
--- a/ydb/library/yql/dq/opt/CMakeLists.windows-x86_64.txt
+++ b/ydb/library/yql/dq/opt/CMakeLists.windows-x86_64.txt
@@ -18,8 +18,10 @@ target_link_libraries(yql-dq-opt PUBLIC
library-yql-core
yql-dq-common
yql-dq-expr_nodes
+ yql-dq-integration
yql-dq-proto
yql-dq-type_ann
+ providers-dq-expr_nodes
)
target_sources(yql-dq-opt PRIVATE
${CMAKE_SOURCE_DIR}/ydb/library/yql/dq/opt/dq_opt.cpp
diff --git a/ydb/library/yql/dq/opt/dq_opt_log.cpp b/ydb/library/yql/dq/opt/dq_opt_log.cpp
index e2f48638c4d..ff507901567 100644
--- a/ydb/library/yql/dq/opt/dq_opt_log.cpp
+++ b/ydb/library/yql/dq/opt/dq_opt_log.cpp
@@ -2,12 +2,13 @@
#include "dq_opt.h"
+#include <ydb/library/yql/core/expr_nodes/yql_expr_nodes.h>
#include <ydb/library/yql/core/yql_aggregate_expander.h>
#include <ydb/library/yql/core/yql_expr_optimize.h>
#include <ydb/library/yql/core/yql_opt_window.h>
#include <ydb/library/yql/core/yql_opt_utils.h>
#include <ydb/library/yql/core/yql_type_annotation.h>
-
+#include <ydb/library/yql/dq/integration/yql_dq_integration.h>
using namespace NYql::NNodes;
@@ -287,4 +288,26 @@ NNodes::TExprBase DqSqlInDropCompact(NNodes::TExprBase node, TExprContext& ctx)
return node;
}
+IGraphTransformer::TStatus DqWrapRead(const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx, TTypeAnnotationContext& typesCtx, const TDqSettings& config) {
+ TOptimizeExprSettings settings{&typesCtx};
+ auto status = OptimizeExpr(input, output, [&](const TExprNode::TPtr& node, TExprContext& ctx) {
+ if (auto maybeRead = TMaybeNode<TCoRight>(node).Input()) {
+ if (maybeRead.Raw()->ChildrenSize() > 1 && TCoDataSource::Match(maybeRead.Raw()->Child(1))) {
+ auto dataSourceName = maybeRead.Raw()->Child(1)->Child(0)->Content();
+ auto dataSource = typesCtx.DataSourceMap.FindPtr(dataSourceName);
+ YQL_ENSURE(dataSource);
+ if (auto dqIntegration = (*dataSource)->GetDqIntegration()) {
+ auto newRead = dqIntegration->WrapRead(config, maybeRead.Cast().Ptr(), ctx);
+ if (newRead.Get() != maybeRead.Raw()) {
+ return newRead;
+ }
+ }
+ }
+ }
+
+ return node;
+ }, ctx, settings);
+ return status;
+}
+
}
diff --git a/ydb/library/yql/dq/opt/dq_opt_log.h b/ydb/library/yql/dq/opt/dq_opt_log.h
index fdc972e78fa..596ffd80ac7 100644
--- a/ydb/library/yql/dq/opt/dq_opt_log.h
+++ b/ydb/library/yql/dq/opt/dq_opt_log.h
@@ -3,11 +3,13 @@
#include <ydb/library/yql/ast/yql_expr.h>
#include <ydb/library/yql/core/expr_nodes/yql_expr_nodes.h>
#include <ydb/library/yql/core/expr_nodes_gen/yql_expr_nodes_gen.h>
+#include <ydb/library/yql/core/yql_graph_transformer.h>
#include <functional>
namespace NYql {
struct TTypeAnnotationContext;
+ struct TDqSettings;
}
namespace NYql::NDq {
@@ -31,4 +33,6 @@ NNodes::TMaybeNode<NNodes::TExprBase> DqUnorderedInStage(NNodes::TExprBase node,
NNodes::TExprBase DqSqlInDropCompact(NNodes::TExprBase node, TExprContext& ctx);
+IGraphTransformer::TStatus DqWrapRead(const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx, TTypeAnnotationContext& typesCtx, const TDqSettings& config);
+
} // namespace NYql::NDq
diff --git a/ydb/library/yql/dq/opt/dq_opt_phy.cpp b/ydb/library/yql/dq/opt/dq_opt_phy.cpp
index 7a37df04858..4fdc19f8470 100644
--- a/ydb/library/yql/dq/opt/dq_opt_phy.cpp
+++ b/ydb/library/yql/dq/opt/dq_opt_phy.cpp
@@ -7,6 +7,7 @@
#include <ydb/library/yql/utils/log/log.h>
#include <ydb/library/yql/providers/common/provider/yql_provider.h>
#include <ydb/library/yql/dq/type_ann/dq_type_ann.h>
+#include <ydb/library/yql/providers/dq/expr_nodes/dqs_expr_nodes.h>
namespace NYql::NDq {
@@ -2751,4 +2752,103 @@ TExprBase DqPropagatePrecomuteFlatmap(TExprBase node, TExprContext& ctx, IOptimi
.Done();
}
+NNodes::TExprBase DqBuildStageWithSourceWrap(NNodes::TExprBase node, TExprContext& ctx) {
+ const auto wrap = node.Cast<TDqSourceWrap>();
+ if (IsSameAnnotation(GetSeqItemType(*wrap.Ref().GetTypeAnn()), GetSeqItemType(*wrap.Input().Ref().GetTypeAnn()))) {
+ return Build<TDqCnUnionAll>(ctx, node.Pos())
+ .Output()
+ .Stage<TDqStage>()
+ .Inputs()
+ .Add<TDqSource>()
+ .DataSource(wrap.DataSource())
+ .Settings(wrap.Input())
+ .Build()
+ .Build()
+ .Program()
+ .Args({"source"})
+ .Body<TCoToStream>()
+ .Input("source")
+ .Build()
+ .Build()
+ .Settings(TDqStageSettings().BuildNode(ctx, node.Pos()))
+ .Build()
+ .Index().Build("0")
+ .Build().Done();
+ }
+ const auto& items = GetSeqItemType(*wrap.Ref().GetTypeAnn()).Cast<TStructExprType>()->GetItems();
+ auto sourceArg = ctx.NewArgument(node.Pos(), "source");
+ auto inputType = &GetSeqItemType(*wrap.Input().Ref().GetTypeAnn());
+ while (inputType->GetKind() == ETypeAnnotationKind::Tuple) {
+ auto tupleType = inputType->Cast<TTupleExprType>();
+ if (tupleType->GetSize() > 0) {
+ inputType = tupleType->GetItems()[0];
+ }
+ }
+
+ bool supportsBlocks = inputType->GetKind() == ETypeAnnotationKind::Struct &&
+ inputType->Cast<TStructExprType>()->FindItem("_yql_block_length").Defined();
+
+ auto wideWrap = ctx.Builder(node.Pos())
+ .Callable(supportsBlocks ? TDqSourceWideBlockWrap::CallableName() : TDqSourceWideWrap::CallableName())
+ .Add(0, sourceArg)
+ .Add(1, wrap.DataSource().Ptr())
+ .Add(2, wrap.RowType().Ptr())
+ .Do([&](TExprNodeBuilder& parent) -> TExprNodeBuilder& {
+ if (wrap.Settings()) {
+ parent.Add(3, wrap.Settings().Cast().Ptr());
+ }
+
+ return parent;
+ })
+ .Seal()
+ .Build();
+
+ if (supportsBlocks) {
+ wideWrap = ctx.Builder(node.Pos())
+ .Callable("WideFromBlocks")
+ .Add(0, wideWrap)
+ .Seal()
+ .Build();
+ }
+
+ auto narrow = ctx.Builder(node.Pos())
+ .Callable("NarrowMap")
+ .Add(0, wideWrap)
+ .Lambda(1)
+ .Params("fields", items.size())
+ .Callable(TCoAsStruct::CallableName())
+ .Do([&](TExprNodeBuilder& parent) -> TExprNodeBuilder& {
+ ui32 i = 0U;
+ for (const auto& item : items) {
+ parent.List(i)
+ .Atom(0, item->GetName())
+ .Arg(1, "fields", i)
+ .Seal();
+ ++i;
+ }
+ return parent;
+ })
+ .Seal()
+ .Seal()
+ .Seal()
+ .Build();
+
+ auto program = ctx.NewLambda(node.Pos(), ctx.NewArguments(node.Pos(), { sourceArg }), std::move(narrow));
+
+ return Build<TDqCnUnionAll>(ctx, node.Pos())
+ .Output()
+ .Stage<TDqStage>()
+ .Inputs()
+ .Add<TDqSource>()
+ .DataSource(wrap.DataSource())
+ .Settings(wrap.Input())
+ .Build()
+ .Build()
+ .Program(program)
+ .Settings(TDqStageSettings().BuildNode(ctx, node.Pos()))
+ .Build()
+ .Index().Build("0")
+ .Build().Done();
+}
+
} // namespace NYql::NDq
diff --git a/ydb/library/yql/dq/opt/dq_opt_phy.h b/ydb/library/yql/dq/opt/dq_opt_phy.h
index f21d70f5874..06a78fc48e9 100644
--- a/ydb/library/yql/dq/opt/dq_opt_phy.h
+++ b/ydb/library/yql/dq/opt/dq_opt_phy.h
@@ -122,4 +122,6 @@ NYql::NNodes::TExprBase DqPropagatePrecomuteFlatmap(NYql::NNodes::TExprBase node
TVector<NYql::NNodes::TCoArgument> PrepareArgumentsReplacement(const NYql::NNodes::TExprBase& node, const TVector<NYql::NNodes::TDqConnection>& newInputs,
NYql::TExprContext& ctx, NYql::TNodeOnNodeOwnedMap& replaceMap);
+NNodes::TExprBase DqBuildStageWithSourceWrap(NNodes::TExprBase node, TExprContext& ctx);
+
} // namespace NYql::NDq
diff --git a/ydb/library/yql/dq/opt/ya.make b/ydb/library/yql/dq/opt/ya.make
index 860c83e44f4..074847336ab 100644
--- a/ydb/library/yql/dq/opt/ya.make
+++ b/ydb/library/yql/dq/opt/ya.make
@@ -5,8 +5,10 @@ PEERDIR(
ydb/library/yql/core
ydb/library/yql/dq/common
ydb/library/yql/dq/expr_nodes
+ ydb/library/yql/dq/integration
ydb/library/yql/dq/proto
ydb/library/yql/dq/type_ann
+ ydb/library/yql/providers/dq/expr_nodes
)
SRCS(
diff --git a/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_dq_integration.cpp b/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_dq_integration.cpp
index a882da93a07..7def8d8c9cd 100644
--- a/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_dq_integration.cpp
+++ b/ydb/library/yql/providers/clickhouse/provider/yql_clickhouse_dq_integration.cpp
@@ -22,7 +22,7 @@ public:
: State_(state)
{}
- TMaybe<ui64> CanRead(const TDqSettings&, const TExprNode& read, TExprContext&, bool) override {
+ TMaybe<ui64> CanRead(ui64 /*dataSizePerJob*/, ui32 /*maxTasksPerStage*/, const TExprNode& read, TExprContext&, bool) override {
if (TClReadTable::Match(&read)) {
return 0ul; // TODO: return real size
}
diff --git a/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp b/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp
index d2de27ec495..09f8e1951df 100644
--- a/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp
+++ b/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.cpp
@@ -14,7 +14,7 @@ ui64 TDqIntegrationBase::Partition(const TDqSettings& config, size_t maxPartitio
return 0;
}
-TMaybe<ui64> TDqIntegrationBase::CanRead(const TDqSettings&, const TExprNode& read, TExprContext& ctx, bool skipIssues) {
+TMaybe<ui64> TDqIntegrationBase::CanRead(ui64 /*dataSizePerJob*/, ui32 /*maxTasksPerStage*/, const TExprNode& read, TExprContext& ctx, bool skipIssues) {
Y_UNUSED(read);
Y_UNUSED(ctx);
Y_UNUSED(skipIssues);
diff --git a/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h b/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h
index e063b337d7e..8e56a9db395 100644
--- a/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h
+++ b/ydb/library/yql/providers/common/dq/yql_dq_integration_impl.h
@@ -8,7 +8,7 @@ class TDqIntegrationBase: public IDqIntegration {
public:
ui64 Partition(const TDqSettings& config, size_t maxPartitions, const TExprNode& node,
TVector<TString>& partitions, TString* clusterName, TExprContext& ctx, bool canFallback) override;
- TMaybe<ui64> CanRead(const TDqSettings& config, const TExprNode& read, TExprContext& ctx, bool skipIssues) override;
+ TMaybe<ui64> CanRead(ui64 dataSizePerJob, ui32 maxTasksPerStage, const TExprNode& read, TExprContext& ctx, bool skipIssues) override;
TExprNode::TPtr WrapRead(const TDqSettings& config, const TExprNode::TPtr& read, TExprContext& ctx) override;
void RegisterMkqlCompiler(NCommon::TMkqlCallableCompilerBase& compiler) override;
TMaybe<bool> CanWrite(const TDqSettings& config, const TExprNode& write, TExprContext& ctx) override;
diff --git a/ydb/library/yql/providers/dq/opt/physical_optimize.cpp b/ydb/library/yql/providers/dq/opt/physical_optimize.cpp
index 5c1dee9c0c3..18a5478a9d8 100644
--- a/ydb/library/yql/providers/dq/opt/physical_optimize.cpp
+++ b/ydb/library/yql/providers/dq/opt/physical_optimize.cpp
@@ -92,101 +92,7 @@ public:
protected:
TMaybeNode<TExprBase> BuildStageWithSourceWrap(TExprBase node, TExprContext& ctx) {
- const auto wrap = node.Cast<TDqSourceWrap>();
- if (IsSameAnnotation(GetSeqItemType(*wrap.Ref().GetTypeAnn()), GetSeqItemType(*wrap.Input().Ref().GetTypeAnn()))) {
- return Build<TDqCnUnionAll>(ctx, node.Pos())
- .Output()
- .Stage<TDqStage>()
- .Inputs()
- .Add<TDqSource>()
- .DataSource(wrap.DataSource())
- .Settings(wrap.Input())
- .Build()
- .Build()
- .Program()
- .Args({"source"})
- .Body<TCoToStream>()
- .Input("source")
- .Build()
- .Build()
- .Settings(TDqStageSettings().BuildNode(ctx, node.Pos()))
- .Build()
- .Index().Build("0")
- .Build().Done();
- }
- const auto& items = GetSeqItemType(*wrap.Ref().GetTypeAnn()).Cast<TStructExprType>()->GetItems();
- auto sourceArg = ctx.NewArgument(node.Pos(), "source");
- auto inputType = &GetSeqItemType(*wrap.Input().Ref().GetTypeAnn());
- while (inputType->GetKind() == ETypeAnnotationKind::Tuple) {
- auto tupleType = inputType->Cast<TTupleExprType>();
- if (tupleType->GetSize() > 0) {
- inputType = tupleType->GetItems()[0];
- }
- }
-
- bool supportsBlocks = inputType->GetKind() == ETypeAnnotationKind::Struct &&
- inputType->Cast<TStructExprType>()->FindItem("_yql_block_length").Defined();
-
- auto wideWrap = ctx.Builder(node.Pos())
- .Callable(supportsBlocks ? TDqSourceWideBlockWrap::CallableName() : TDqSourceWideWrap::CallableName())
- .Add(0, sourceArg)
- .Add(1, wrap.DataSource().Ptr())
- .Add(2, wrap.RowType().Ptr())
- .Do([&](TExprNodeBuilder& parent) -> TExprNodeBuilder& {
- if (wrap.Settings()) {
- parent.Add(3, wrap.Settings().Cast().Ptr());
- }
-
- return parent;
- })
- .Seal()
- .Build();
- if (supportsBlocks) {
- wideWrap = ctx.Builder(node.Pos())
- .Callable("WideFromBlocks")
- .Add(0, wideWrap)
- .Seal()
- .Build();
- }
-
- auto narrow = ctx.Builder(node.Pos())
- .Callable("NarrowMap")
- .Add(0, wideWrap)
- .Lambda(1)
- .Params("fields", items.size())
- .Callable(TCoAsStruct::CallableName())
- .Do([&](TExprNodeBuilder& parent) -> TExprNodeBuilder& {
- ui32 i = 0U;
- for (const auto& item : items) {
- parent.List(i)
- .Atom(0, item->GetName())
- .Arg(1, "fields", i)
- .Seal();
- ++i;
- }
- return parent;
- })
- .Seal()
- .Seal()
- .Seal()
- .Build();
-
- auto program = ctx.NewLambda(node.Pos(), ctx.NewArguments(node.Pos(), { sourceArg }), std::move(narrow));
-
- return Build<TDqCnUnionAll>(ctx, node.Pos())
- .Output()
- .Stage<TDqStage>()
- .Inputs()
- .Add<TDqSource>()
- .DataSource(wrap.DataSource())
- .Settings(wrap.Input())
- .Build()
- .Build()
- .Program(program)
- .Settings(TDqStageSettings().BuildNode(ctx, node.Pos()))
- .Build()
- .Index().Build("0")
- .Build().Done();
+ return DqBuildStageWithSourceWrap(node, ctx);
}
TMaybeNode<TExprBase> BuildStageWithReadWrap(TExprBase node, TExprContext& ctx) {
diff --git a/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.cpp b/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.cpp
index 60ff588c0f7..f385ba37f92 100644
--- a/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.cpp
+++ b/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.cpp
@@ -15,18 +15,21 @@ namespace {
class TDqsDataSourceTypeAnnotationTransformer : public TVisitorTransformerBase {
public:
- TDqsDataSourceTypeAnnotationTransformer()
+ TDqsDataSourceTypeAnnotationTransformer(bool annotateConfigure)
: TVisitorTransformerBase(true)
+ , AnnotateConfigure(annotateConfigure)
{
AddHandler({TDqSourceWrap::CallableName()}, Hndl(&TDqsDataSourceTypeAnnotationTransformer::HandleSourceWrap<false, false>));
AddHandler({TDqSourceWideWrap::CallableName()}, Hndl(&TDqsDataSourceTypeAnnotationTransformer::HandleSourceWrap<true, false>));
AddHandler({TDqSourceWideBlockWrap::CallableName()}, Hndl(&TDqsDataSourceTypeAnnotationTransformer::HandleSourceWrap<true, true>));
AddHandler({TDqReadWrap::CallableName()}, Hndl(&TDqsDataSourceTypeAnnotationTransformer::HandleReadWrap));
AddHandler({TDqReadWideWrap::CallableName()}, Hndl(&TDqsDataSourceTypeAnnotationTransformer::HandleWideReadWrap));
- AddHandler({TCoConfigure::CallableName()}, Hndl(&TDqsDataSourceTypeAnnotationTransformer::HandleConfig));
AddHandler({TDqSource::CallableName()}, Hndl(&NDq::AnnotateDqSource));
AddHandler({TDqPhyLength::CallableName()}, Hndl(&NDq::AnnotateDqPhyLength));
-
+
+ if (AnnotateConfigure) {
+ AddHandler({TCoConfigure::CallableName()}, Hndl(&TDqsDataSourceTypeAnnotationTransformer::HandleConfig));
+ }
}
private:
@@ -166,12 +169,15 @@ private:
return TStatus::Ok;
}
+
+private:
+ const bool AnnotateConfigure;
};
} // unnamed
-THolder<TVisitorTransformerBase> CreateDqsDataSourceTypeAnnotationTransformer() {
- return THolder(new TDqsDataSourceTypeAnnotationTransformer());
+THolder<TVisitorTransformerBase> CreateDqsDataSourceTypeAnnotationTransformer(bool annotateConfigure) {
+ return THolder(new TDqsDataSourceTypeAnnotationTransformer(annotateConfigure));
}
} // NYql
diff --git a/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h b/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h
index d31811f1bc1..80ce953944b 100644
--- a/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h
+++ b/ydb/library/yql/providers/dq/provider/yql_dq_datasource_type_ann.h
@@ -9,6 +9,6 @@ namespace NYql {
class TTypeAnnotationNode;
-THolder<TVisitorTransformerBase> CreateDqsDataSourceTypeAnnotationTransformer();
+THolder<TVisitorTransformerBase> CreateDqsDataSourceTypeAnnotationTransformer(bool annotateConfigure = true);
} // NYql
diff --git a/ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp b/ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp
index d0838ad40ca..a63d4fbb167 100644
--- a/ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp
+++ b/ydb/library/yql/providers/dq/provider/yql_dq_recapture.cpp
@@ -12,6 +12,7 @@
#include <ydb/library/yql/ast/yql_expr.h>
#include <ydb/library/yql/utils/log/log.h>
#include <ydb/library/yql/dq/opt/dq_opt.h>
+#include <ydb/library/yql/dq/opt/dq_opt_log.h>
#include <ydb/library/yql/minikql/mkql_program_builder.h>
#include <util/generic/scope.h>
@@ -105,24 +106,7 @@ public:
State_->TypeCtx->DqFallbackPolicy = State_->Settings->FallbackPolicy.Get().GetOrElse("default");
- auto status = OptimizeExpr(input, output, [&](const TExprNode::TPtr& node, TExprContext& ctx) {
- if (auto maybeRead = TMaybeNode<TCoRight>(node).Input()) {
- if (maybeRead.Raw()->ChildrenSize() > 1 && TCoDataSource::Match(maybeRead.Raw()->Child(1))) {
- auto dataSourceName = maybeRead.Raw()->Child(1)->Child(0)->Content();
- auto dataSource = State_->TypeCtx->DataSourceMap.FindPtr(dataSourceName);
- YQL_ENSURE(dataSource);
- if (auto dqIntegration = (*dataSource)->GetDqIntegration()) {
- auto newRead = dqIntegration->WrapRead(*State_->Settings, maybeRead.Cast().Ptr(), ctx);
- if (newRead.Get() != maybeRead.Raw()) {
- return newRead;
- }
- }
- }
- }
-
- return node;
- }, ctx, TOptimizeExprSettings{State_->TypeCtx});
-
+ IGraphTransformer::TStatus status = NDq::DqWrapRead(input, output, ctx, *State_->TypeCtx, *State_->Settings);
if (input != output) {
YQL_CLOG(DEBUG, ProviderDq) << "DqsRecapture";
// TODO: Add before/after recapture transformers
@@ -183,7 +167,7 @@ private:
if (dqIntegration) {
TMaybe<ui64> size;
bool pragmas = true;
- if ((pragmas = dqIntegration->CheckPragmas(node, ctx, false)) && (size = dqIntegration->CanRead(*State_->Settings, node, ctx, /*skipIssues = */ false))) {
+ if ((pragmas = dqIntegration->CheckPragmas(node, ctx, false)) && (size = dqIntegration->CanRead(State_->Settings->DataSizePerJob.Get().GetOrElse(TDqSettings::TDefault::DataSizePerJob), State_->Settings->MaxTasksPerStage.Get().GetOrElse(TDqSettings::TDefault::MaxTasksPerStage), node, ctx, /*skipIssues = */ false))) {
dataSize += *size;
} else {
good = false;
diff --git a/ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp b/ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp
index 3377e383171..88bdb04cb9a 100644
--- a/ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp
+++ b/ydb/library/yql/providers/s3/provider/yql_s3_datasource.cpp
@@ -79,13 +79,22 @@ public:
return node;
}
- bool CanPullResult(const TExprNode&, TSyncMap& syncList, bool& canRef) override {
+ bool CanPullResult(const TExprNode& node, TSyncMap& syncList, bool& canRef) override {
Y_UNUSED(syncList);
canRef = false;
+ if (node.IsCallable(TCoRight::CallableName())) {
+ const auto input = node.Child(0);
+ if (input->IsCallable(TS3ReadObject::CallableName())) {
+ return true;
+ }
+ }
return false;
}
- bool CanExecute(const TExprNode&) override {
+ bool CanExecute(const TExprNode& node) override {
+ if (node.IsCallable(TS3ReadObject::CallableName())) {
+ return true;
+ }
return false;
}
diff --git a/ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp b/ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp
index 64c359caa4c..01674c04e9a 100644
--- a/ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp
+++ b/ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp
@@ -121,7 +121,7 @@ public:
return 0;
}
- TMaybe<ui64> CanRead(const TDqSettings&, const TExprNode& read, TExprContext&, bool) override {
+ TMaybe<ui64> CanRead(ui64 /*dataSizePerJob*/, ui32 /*maxTasksPerStage*/, const TExprNode& read, TExprContext&, bool) override {
if (TS3ReadObject::Match(&read)) {
return 0ul; // TODO: return real size
}
diff --git a/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp b/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp
index 683a206f128..cdb4ffd2eec 100644
--- a/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp
+++ b/ydb/library/yql/providers/solomon/provider/yql_solomon_dq_integration.cpp
@@ -74,7 +74,7 @@ public:
{
}
- TMaybe<ui64> CanRead(const TDqSettings&, const TExprNode&, TExprContext&, bool) override {
+ TMaybe<ui64> CanRead(ui64 /*dataSizePerJob*/, ui32 /*maxTasksPerStage*/, const TExprNode&, TExprContext&, bool) override {
YQL_ENSURE(false, "Unimplemented");
}
diff --git a/ydb/library/yql/providers/ydb/provider/yql_ydb_dq_integration.cpp b/ydb/library/yql/providers/ydb/provider/yql_ydb_dq_integration.cpp
index ecb85e824ba..804d75b0645 100644
--- a/ydb/library/yql/providers/ydb/provider/yql_ydb_dq_integration.cpp
+++ b/ydb/library/yql/providers/ydb/provider/yql_ydb_dq_integration.cpp
@@ -69,7 +69,7 @@ public:
return 0;
}
- TMaybe<ui64> CanRead(const TDqSettings&, const TExprNode& read, TExprContext&, bool ) override {
+ TMaybe<ui64> CanRead(ui64 /*dataSizePerJob*/, ui32 /*maxTasksPerStage*/, const TExprNode& read, TExprContext&, bool ) override {
if (TYdbReadTable::Match(&read)) {
return 0ul; // TODO: return real size
}