summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoruzhas <[email protected]>2023-10-03 19:08:33 +0300
committeruzhas <[email protected]>2023-10-03 19:36:34 +0300
commita14e6df4ad207375e3b08b57c0355f94bca2532f (patch)
tree7d22cbb592d2a52bf1eeb605d07789982bb917b6
parent67ac5cbb0cfd9cee9cc656b779038312ce270ed9 (diff)
fix compilation for win
-rw-r--r--ydb/library/yql/providers/s3/serializations/CMakeLists.darwin-x86_64.txt6
-rw-r--r--ydb/library/yql/providers/s3/serializations/CMakeLists.linux-aarch64.txt6
-rw-r--r--ydb/library/yql/providers/s3/serializations/CMakeLists.linux-x86_64.txt6
-rw-r--r--ydb/library/yql/providers/s3/serializations/CMakeLists.windows-x86_64.txt25
-rw-r--r--ydb/library/yql/providers/s3/serializations/serialization_interval.cpp133
-rw-r--r--ydb/library/yql/providers/s3/serializations/serialization_interval.h36
-rw-r--r--ydb/library/yql/providers/s3/serializations/ya.make12
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