diff options
author | uzhas <[email protected]> | 2023-10-03 19:08:33 +0300 |
---|---|---|
committer | uzhas <[email protected]> | 2023-10-03 19:36:34 +0300 |
commit | a14e6df4ad207375e3b08b57c0355f94bca2532f (patch) | |
tree | 7d22cbb592d2a52bf1eeb605d07789982bb917b6 | |
parent | 67ac5cbb0cfd9cee9cc656b779038312ce270ed9 (diff) |
fix compilation for win
7 files changed, 109 insertions, 115 deletions
diff --git a/ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-x86_64.txt b/ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-x86_64.txt index f2d21c30ef5..84e91879cde 100644 --- a/ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-x86_64.txt +++ b/ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-x86_64.txt @@ -14,6 +14,10 @@ get_built_tool_path( ) add_library(providers-s3-serializations) +target_compile_options(providers-s3-serializations PRIVATE + -DARCADIA_BUILD + -DUSE_PARQUET +) target_include_directories(providers-s3-serializations PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/pcg-random @@ -22,6 +26,8 @@ target_include_directories(providers-s3-serializations PRIVATE target_link_libraries(providers-s3-serializations PUBLIC contrib-libs-cxxsupp yutil + contrib-libs-fmt + libs-poco-Util clickhouse_client_udf tools-enum_parser-enum_serialization_runtime ) diff --git a/ydb/library/yql/providers/s3/serializations/CMakeLists.linux-aarch64.txt b/ydb/library/yql/providers/s3/serializations/CMakeLists.linux-aarch64.txt index 510cc4384ea..55c3f830954 100644 --- a/ydb/library/yql/providers/s3/serializations/CMakeLists.linux-aarch64.txt +++ b/ydb/library/yql/providers/s3/serializations/CMakeLists.linux-aarch64.txt @@ -14,6 +14,10 @@ get_built_tool_path( ) add_library(providers-s3-serializations) +target_compile_options(providers-s3-serializations PRIVATE + -DARCADIA_BUILD + -DUSE_PARQUET +) target_include_directories(providers-s3-serializations PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/pcg-random @@ -23,6 +27,8 @@ target_link_libraries(providers-s3-serializations PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-fmt + libs-poco-Util clickhouse_client_udf tools-enum_parser-enum_serialization_runtime ) diff --git a/ydb/library/yql/providers/s3/serializations/CMakeLists.linux-x86_64.txt b/ydb/library/yql/providers/s3/serializations/CMakeLists.linux-x86_64.txt index 510cc4384ea..55c3f830954 100644 --- a/ydb/library/yql/providers/s3/serializations/CMakeLists.linux-x86_64.txt +++ b/ydb/library/yql/providers/s3/serializations/CMakeLists.linux-x86_64.txt @@ -14,6 +14,10 @@ get_built_tool_path( ) add_library(providers-s3-serializations) +target_compile_options(providers-s3-serializations PRIVATE + -DARCADIA_BUILD + -DUSE_PARQUET +) target_include_directories(providers-s3-serializations PRIVATE ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/pcg-random @@ -23,6 +27,8 @@ target_link_libraries(providers-s3-serializations PUBLIC contrib-libs-linux-headers contrib-libs-cxxsupp yutil + contrib-libs-fmt + libs-poco-Util clickhouse_client_udf tools-enum_parser-enum_serialization_runtime ) diff --git a/ydb/library/yql/providers/s3/serializations/CMakeLists.windows-x86_64.txt b/ydb/library/yql/providers/s3/serializations/CMakeLists.windows-x86_64.txt index 6916d0a31fe..1dc8345658f 100644 --- a/ydb/library/yql/providers/s3/serializations/CMakeLists.windows-x86_64.txt +++ b/ydb/library/yql/providers/s3/serializations/CMakeLists.windows-x86_64.txt @@ -6,30 +6,9 @@ # original buildsystem will not be accepted. -get_built_tool_path( - TOOL_enum_parser_bin - TOOL_enum_parser_dependency - tools/enum_parser/enum_parser - enum_parser -) -add_library(providers-s3-serializations) -target_include_directories(providers-s3-serializations PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/base/pcg-random - ${CMAKE_SOURCE_DIR}/ydb/library/yql/udfs/common/clickhouse/client/src -) -target_link_libraries(providers-s3-serializations PUBLIC +add_library(providers-s3-serializations INTERFACE) +target_link_libraries(providers-s3-serializations INTERFACE contrib-libs-cxxsupp yutil - common-clickhouse-client - tools-enum_parser-enum_serialization_runtime -) -target_sources(providers-s3-serializations PRIVATE - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/serializations/serialization_interval.cpp -) -generate_enum_serilization(providers-s3-serializations - ${CMAKE_SOURCE_DIR}/ydb/library/yql/providers/s3/serializations/serialization_interval.h - INCLUDE_HEADERS - ydb/library/yql/providers/s3/serializations/serialization_interval.h ) diff --git a/ydb/library/yql/providers/s3/serializations/serialization_interval.cpp b/ydb/library/yql/providers/s3/serializations/serialization_interval.cpp index 65d23b1c3ae..304862bbd2b 100644 --- a/ydb/library/yql/providers/s3/serializations/serialization_interval.cpp +++ b/ydb/library/yql/providers/s3/serializations/serialization_interval.cpp @@ -1,5 +1,9 @@ #include "serialization_interval.h" +#include <ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeFactory.h> +#include <ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeInterval.h> +#include <ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationNumber.h> + #include <ydb/library/yql/udfs/common/clickhouse/client/src/IO/ReadHelpers.h> #include <ydb/library/yql/udfs/common/clickhouse/client/src/IO/WriteHelpers.h> @@ -36,87 +40,88 @@ TSerializationInterval::EUnit TSerializationInterval::ToUnit(const TString& unit return EUnit::MICROSECONDS; } -TSerializationInterval::TSerializationInterval(EUnit unit) - : Multiplier(ToAvgMicroSeconds(unit)) -{} +class TSerializationIntervalImpl : public SerializationNumber<Int64> { +public: + using Base = NDB::SerializationNumber<Int64>; -void TSerializationInterval::serializeText(const IColumn & column, size_t rowNum, WriteBuffer & ostr, const FormatSettings &) const -{ - writeText(assert_cast<const ColumnVector<Int64> &>(column).getData()[rowNum] / Multiplier , ostr); -} +public: + TSerializationIntervalImpl(TSerializationInterval::EUnit unit) + : Multiplier(ToAvgMicroSeconds(unit)) + { + } + + void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr, const FormatSettings &) const override { + writeText(assert_cast<const ColumnVector<Int64> &>(column).getData()[row_num] / Multiplier , ostr); + } -void TSerializationInterval::deserializeText(IColumn & column, ReadBuffer & istr, const FormatSettings & formatSettings) const -{ - Base::deserializeText(column, istr, formatSettings); - assert_cast<ColumnVector<Int64> &>(column).getData().back() *= Multiplier; -} + void deserializeText(IColumn & column, ReadBuffer & istr, const FormatSettings & settings) const override { + Base::deserializeText(column, istr, settings); + assert_cast<ColumnVector<Int64> &>(column).getData().back() *= Multiplier; + } -void TSerializationInterval::serializeTextJSON(const IColumn & column, size_t rowNum, WriteBuffer & ostr, const FormatSettings & settings) const -{ - auto x = assert_cast<const ColumnVector<Int64> &>(column).getData()[rowNum] / Multiplier; - writeJSONNumber(x, ostr, settings); -} + void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr, const FormatSettings & settings) const override { + auto x = assert_cast<const ColumnVector<Int64> &>(column).getData()[row_num] / Multiplier; + writeJSONNumber(x, ostr, settings); + } -void TSerializationInterval::deserializeTextJSON(IColumn & column, ReadBuffer & istr, const FormatSettings & formatSettings) const -{ - Base::deserializeTextJSON(column, istr, formatSettings); - assert_cast<ColumnVector<Int64> &>(column).getData().back() *= Multiplier; -} + void deserializeTextJSON(IColumn & column, ReadBuffer & istr, const FormatSettings & settings) const override { + Base::deserializeTextJSON(column, istr, settings); + assert_cast<ColumnVector<Int64> &>(column).getData().back() *= Multiplier; + } -void TSerializationInterval::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const FormatSettings & formatSettings) const -{ - Base::deserializeTextCSV(column, istr, formatSettings); - assert_cast<ColumnVector<Int64> &>(column).getData().back() *= Multiplier; -} + void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const FormatSettings & settings) const override { + Base::deserializeTextCSV(column, istr, settings); + assert_cast<ColumnVector<Int64> &>(column).getData().back() *= Multiplier; + } -void TSerializationInterval::serializeBinary(const Field & field, WriteBuffer & ostr) const -{ - /// ColumnVector<T>::ValueType is a narrower type. For example, UInt8, when the Field type is UInt64 - typename ColumnVector<Int64>::ValueType x = get<FieldType>(field) / Multiplier; - writeBinary(x, ostr); -} + /** Format is platform-dependent. */ + void serializeBinary(const Field & field, WriteBuffer & ostr) const override { + /// ColumnVector<T>::ValueType is a narrower type. For example, UInt8, when the Field type is UInt64 + typename ColumnVector<Int64>::ValueType x = get<FieldType>(field) / Multiplier; + writeBinary(x, ostr); + } -void TSerializationInterval::deserializeBinary(Field & field, ReadBuffer & istr) const -{ - Base::deserializeBinary(field, istr); - field.get<Int64>() *= Multiplier; -} + void deserializeBinary(Field & field, ReadBuffer & istr) const override { + Base::deserializeBinary(field, istr); + field.get<Int64>() *= Multiplier; + } -void TSerializationInterval::serializeBinary(const IColumn & column, size_t rowNum, WriteBuffer & ostr) const -{ - writeBinary(assert_cast<const ColumnVector<Int64> &>(column).getData()[rowNum] / Multiplier, ostr); -} + void serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override { + writeBinary(assert_cast<const ColumnVector<Int64> &>(column).getData()[row_num] / Multiplier, ostr); + } -void TSerializationInterval::deserializeBinary(IColumn & column, ReadBuffer & istr) const -{ - Base::deserializeBinary(column, istr); - assert_cast<ColumnVector<Int64> &>(column).getData().back() *= Multiplier; -} + void deserializeBinary(IColumn & column, ReadBuffer & istr) const override { + Base::deserializeBinary(column, istr); + assert_cast<ColumnVector<Int64> &>(column).getData().back() *= Multiplier; + } -void TSerializationInterval::serializeBinaryBulk(const IColumn & column, WriteBuffer & ostr, size_t offset, size_t limit) const -{ - const typename ColumnVector<NDB::Int64>::Container & x = typeid_cast<const ColumnVector<NDB::Int64> &>(column).getData(); - size_t size = x.size(); + void serializeBinaryBulk(const IColumn & column, WriteBuffer & ostr, size_t offset, size_t limit) const override { + const typename ColumnVector<NDB::Int64>::Container & x = typeid_cast<const ColumnVector<NDB::Int64> &>(column).getData(); + size_t size = x.size(); - if (limit == 0 || offset + limit > size) - limit = size - offset; + if (limit == 0 || offset + limit > size) { + limit = size - offset; + } - for (size_t i = offset; i < limit; i++) { - serializeBinary(column, i, ostr); + for (size_t i = offset; i < limit; i++) { + serializeBinary(column, i, ostr); + } } -} -void TSerializationInterval::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double avgValueSizeHint) const -{ - Base::deserializeBinaryBulk(column, istr, limit, avgValueSizeHint); - ColumnVector<Int64>::Container & x = typeid_cast<ColumnVector<Int64> &>(column).getData(); - for (size_t i = x.size() - limit; i < x.size(); i++) { - assert_cast<ColumnVector<Int64> &>(column).getData()[i] *= Multiplier; + void deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override { + Base::deserializeBinaryBulk(column, istr, limit, avg_value_size_hint); + ColumnVector<Int64>::Container & x = typeid_cast<ColumnVector<Int64> &>(column).getData(); + for (size_t i = x.size() - limit; i < x.size(); i++) { + assert_cast<ColumnVector<Int64> &>(column).getData()[i] *= Multiplier; + } } -} + +private: + const Int64 Multiplier; +}; NDB::DataTypePtr GetInterval(TSerializationInterval::EUnit unit) { - auto customDescr = std::make_unique<NDB::DataTypeCustomDesc>(std::make_unique<NDB::DataTypeCustomFixedName>("IntervalSecond"), std::make_shared<TSerializationInterval>(unit)); + auto customDescr = std::make_unique<NDB::DataTypeCustomDesc>(std::make_unique<NDB::DataTypeCustomFixedName>("IntervalSecond"), std::make_shared<TSerializationIntervalImpl>(unit)); return NDB::DataTypeFactory::instance().getCustom(std::move(customDescr)); } diff --git a/ydb/library/yql/providers/s3/serializations/serialization_interval.h b/ydb/library/yql/providers/s3/serializations/serialization_interval.h index 29ee573c2a7..114bd89ad49 100644 --- a/ydb/library/yql/providers/s3/serializations/serialization_interval.h +++ b/ydb/library/yql/providers/s3/serializations/serialization_interval.h @@ -1,16 +1,18 @@ #pragma once -#include <ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeFactory.h> -#include <ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/DataTypeInterval.h> -#include <ydb/library/yql/udfs/common/clickhouse/client/src/DataTypes/Serializations/SerializationNumber.h> +#include <util/generic/string.h> -#include <util/generic/fwd.h> +namespace NDB +{ -namespace NYql::NSerialization { +class IDataType; +using DataTypePtr = std::shared_ptr<const IDataType>; + +} -using namespace NDB; +namespace NYql::NSerialization { -class TSerializationInterval : public SerializationNumber<Int64> { +class TSerializationInterval { public: enum class EUnit { @@ -23,28 +25,8 @@ public: WEEKS }; -private: - Int64 Multiplier; - public: - TSerializationInterval(EUnit unit); - static EUnit ToUnit(const TString& unit); - - using Base = NDB::SerializationNumber<Int64>; - void serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr, const FormatSettings &) const override; - void deserializeText(IColumn & column, ReadBuffer & istr, const FormatSettings & settings) const override; - void serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr, const FormatSettings & settings) const override; - void deserializeTextJSON(IColumn & column, ReadBuffer & istr, const FormatSettings &) const override; - void deserializeTextCSV(IColumn & column, ReadBuffer & istr, const FormatSettings & settings) const override; - - /** Format is platform-dependent. */ - void serializeBinary(const Field & field, WriteBuffer & ostr) const override; - void deserializeBinary(Field & field, ReadBuffer & istr) const override; - void serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const override; - void deserializeBinary(IColumn & column, ReadBuffer & istr) const override; - void serializeBinaryBulk(const IColumn & column, WriteBuffer & ostr, size_t offset, size_t limit) const override; - void deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const override; }; NDB::DataTypePtr GetInterval(TSerializationInterval::EUnit unit); diff --git a/ydb/library/yql/providers/s3/serializations/ya.make b/ydb/library/yql/providers/s3/serializations/ya.make index 2a3cbaaa0d4..df57b7ae7c7 100644 --- a/ydb/library/yql/providers/s3/serializations/ya.make +++ b/ydb/library/yql/providers/s3/serializations/ya.make @@ -1,10 +1,14 @@ LIBRARY() +IF (CLANG AND NOT WITH_VALGRIND) + SRCS( serialization_interval.cpp ) PEERDIR( + contrib/libs/fmt + contrib/libs/poco/Util ydb/library/yql/udfs/common/clickhouse/client ) @@ -14,6 +18,12 @@ ADDINCL( ydb/library/yql/udfs/common/clickhouse/client/src ) +CFLAGS ( + -DARCADIA_BUILD -DUSE_PARQUET +) + GENERATE_ENUM_SERIALIZATION(serialization_interval.h) -END() +ENDIF() + +END()
\ No newline at end of file |