mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-30 05:30:51 +00:00
Remove even more code
This commit is contained in:
parent
f3929b151a
commit
d296424dfa
@ -296,11 +296,6 @@ public:
|
||||
if (size)
|
||||
{
|
||||
typename ColumnVector<T>::Container & data_to = assert_cast<ColumnVector<T> &>(arr_to.getData()).getData();
|
||||
if constexpr (is_big_int_v<T>)
|
||||
// is data_to empty? we should probably use std::vector::insert then
|
||||
for (auto it = this->data(place).value.begin(); it != this->data(place).value.end(); it++)
|
||||
data_to.push_back(*it);
|
||||
else
|
||||
data_to.insert(this->data(place).value.begin(), this->data(place).value.end());
|
||||
}
|
||||
}
|
||||
|
@ -474,8 +474,6 @@ void ColumnVector<T>::gather(ColumnGathererStream & gatherer)
|
||||
template <typename T>
|
||||
void ColumnVector<T>::getExtremes(Field & min, Field & max) const
|
||||
{
|
||||
using FastRefT = std::conditional_t<is_big_int_v<T>, const T &, const T>;
|
||||
|
||||
size_t size = data.size();
|
||||
|
||||
if (size == 0)
|
||||
@ -496,7 +494,7 @@ void ColumnVector<T>::getExtremes(Field & min, Field & max) const
|
||||
T cur_min = NaNOrZero<T>();
|
||||
T cur_max = NaNOrZero<T>();
|
||||
|
||||
for (FastRefT x : data)
|
||||
for (const T & x : data)
|
||||
{
|
||||
if (isNaN(x))
|
||||
continue;
|
||||
|
@ -186,7 +186,7 @@ inline size_t DefaultHash64(std::enable_if_t<(sizeof(T) > sizeof(UInt64)), T> ke
|
||||
}
|
||||
if constexpr (std::is_same_v<T, DB::UInt128>)
|
||||
{
|
||||
return intHash64(key.low ^ key.high);
|
||||
return intHash64(key.low ^ key.high); /// TODO This is classical antipattern.
|
||||
}
|
||||
else if constexpr (is_big_int_v<T> && sizeof(T) == 32)
|
||||
{
|
||||
|
@ -76,18 +76,8 @@ private:
|
||||
if (rows_remaining != 0)
|
||||
{
|
||||
RightType right_src_remaining[Impl::rows_per_iteration];
|
||||
if constexpr (!is_big_int_v<RightType> && !std::is_same_v<RightType, Decimal256>)
|
||||
{
|
||||
memcpy(right_src_remaining, &right_src_data[rows_size], rows_remaining * sizeof(RightType));
|
||||
memset(right_src_remaining + rows_remaining, 0, (Impl::rows_per_iteration - rows_remaining) * sizeof(RightType));
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < rows_remaining; i++)
|
||||
right_src_remaining[i] = right_src_data[rows_size + i];
|
||||
for (size_t i = rows_remaining; i < Impl::rows_per_iteration; i++)
|
||||
right_src_remaining[i] = 0;
|
||||
}
|
||||
Float64 dst_remaining[Impl::rows_per_iteration];
|
||||
|
||||
Impl::execute(left_src_data, right_src_remaining, dst_remaining);
|
||||
@ -123,32 +113,13 @@ private:
|
||||
if (rows_remaining != 0)
|
||||
{
|
||||
LeftType left_src_remaining[Impl::rows_per_iteration];
|
||||
if constexpr (!is_big_int_v<LeftType> && !std::is_same_v<LeftType, Decimal256>)
|
||||
{
|
||||
memcpy(left_src_remaining, &left_src_data[rows_size], rows_remaining * sizeof(LeftType));
|
||||
memset(left_src_remaining + rows_remaining, 0, (Impl::rows_per_iteration - rows_remaining) * sizeof(LeftType));
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < rows_remaining; i++)
|
||||
left_src_remaining[i] = left_src_data[rows_size + i];
|
||||
for (size_t i = rows_remaining; i < Impl::rows_per_iteration; i++)
|
||||
left_src_remaining[i] = 0;
|
||||
}
|
||||
|
||||
RightType right_src_remaining[Impl::rows_per_iteration];
|
||||
if constexpr (!is_big_int_v<RightType> && !std::is_same_v<RightType, Decimal256>)
|
||||
{
|
||||
memcpy(right_src_remaining, &right_src_data[rows_size], rows_remaining * sizeof(RightType));
|
||||
memset(right_src_remaining + rows_remaining, 0, (Impl::rows_per_iteration - rows_remaining) * sizeof(RightType));
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < rows_remaining; i++)
|
||||
right_src_remaining[i] = right_src_data[rows_size + i];
|
||||
for (size_t i = rows_remaining; i < Impl::rows_per_iteration; i++)
|
||||
right_src_remaining[i] = 0;
|
||||
}
|
||||
|
||||
Float64 dst_remaining[Impl::rows_per_iteration];
|
||||
|
||||
Impl::execute(left_src_remaining, right_src_remaining, dst_remaining);
|
||||
@ -178,18 +149,8 @@ private:
|
||||
if (rows_remaining != 0)
|
||||
{
|
||||
LeftType left_src_remaining[Impl::rows_per_iteration];
|
||||
if constexpr (!is_big_int_v<LeftType> && !std::is_same_v<LeftType, Decimal256>)
|
||||
{
|
||||
memcpy(left_src_remaining, &left_src_data[rows_size], rows_remaining * sizeof(LeftType));
|
||||
memset(left_src_remaining + rows_remaining, 0, (Impl::rows_per_iteration - rows_remaining) * sizeof(LeftType));
|
||||
}
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < rows_remaining; i++)
|
||||
left_src_remaining[i] = left_src_data[rows_size + i];
|
||||
for (size_t i = rows_remaining; i < Impl::rows_per_iteration; i++)
|
||||
left_src_remaining[i] = 0;
|
||||
}
|
||||
|
||||
Float64 dst_remaining[Impl::rows_per_iteration];
|
||||
|
||||
|
@ -87,18 +87,8 @@ private:
|
||||
if (rows_remaining != 0)
|
||||
{
|
||||
T src_remaining[Impl::rows_per_iteration];
|
||||
if constexpr (is_big_int_v<T> || std::is_same_v<T, Decimal256>)
|
||||
{
|
||||
for (size_t i = 0; i < rows_remaining; i++)
|
||||
src_remaining[i] = src_data[rows_size + i];
|
||||
for (size_t i = rows_remaining; i < Impl::rows_per_iteration; i++)
|
||||
src_remaining[i] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(src_remaining, &src_data[rows_size], rows_remaining * sizeof(T));
|
||||
memset(src_remaining + rows_remaining, 0, (Impl::rows_per_iteration - rows_remaining) * sizeof(T));
|
||||
}
|
||||
ReturnType dst_remaining[Impl::rows_per_iteration];
|
||||
|
||||
Impl::execute(src_remaining, dst_remaining);
|
||||
|
@ -440,13 +440,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
if constexpr (!is_big_int_v<NativeType>)
|
||||
memcpy(out.data(), in.data(), in.size() * sizeof(T));
|
||||
else
|
||||
{
|
||||
for (size_t i = 0; i < in.size(); i++)
|
||||
out[i] = in[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -257,8 +257,7 @@ enum class ReadIntTextCheckOverflow
|
||||
template <typename T, typename ReturnType = void, ReadIntTextCheckOverflow check_overflow = ReadIntTextCheckOverflow::DO_NOT_CHECK_OVERFLOW>
|
||||
ReturnType readIntTextImpl(T & x, ReadBuffer & buf)
|
||||
{
|
||||
/// TODO: disabled for big ints cause of 127 vs 128 bit conversion
|
||||
using UnsignedT = std::conditional_t<is_big_int_v<T>, T, make_unsigned_t<T>>;
|
||||
using UnsignedT = make_unsigned_t<T>;
|
||||
|
||||
static constexpr bool throw_exception = std::is_same_v<ReturnType, void>;
|
||||
|
||||
@ -318,14 +317,10 @@ ReturnType readIntTextImpl(T & x, ReadBuffer & buf)
|
||||
|| common::addOverflow<T>(signed_res, (*buf.position() - '0'), signed_res))
|
||||
return ReturnType(false);
|
||||
|
||||
/// Cannot assign signed to unsigned for big ints. Ignore fast path.
|
||||
if constexpr (!is_big_int_v<T>)
|
||||
{
|
||||
res = signed_res;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
res *= 10;
|
||||
res += *buf.position() - '0';
|
||||
break;
|
||||
|
@ -923,7 +923,7 @@ inline void writeBinary(const Int256 & x, WriteBuffer & buf) { writePODBinary(x,
|
||||
|
||||
/// Methods for outputting the value in text form for a tab-separated format.
|
||||
template <typename T>
|
||||
inline std::enable_if_t<is_integer_v<T> && !is_big_int_v<T>, void>
|
||||
inline std::enable_if_t<is_integer_v<T>, void>
|
||||
writeText(const T & x, WriteBuffer & buf) { writeIntText(x, buf); }
|
||||
|
||||
template <typename T>
|
||||
|
Loading…
Reference in New Issue
Block a user