mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-22 07:31:57 +00:00
Fix style issues
This commit is contained in:
parent
8fdbde8642
commit
791c7204d7
@ -259,8 +259,8 @@ ColumnPtr CacheDictionary::getColumn(
|
|||||||
ColumnPtr result;
|
ColumnPtr result;
|
||||||
|
|
||||||
PaddedPODArray<Key> backup_storage;
|
PaddedPODArray<Key> backup_storage;
|
||||||
const auto& ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
const auto & ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
||||||
|
|
||||||
auto & attribute = getAttribute(attribute_name);
|
auto & attribute = getAttribute(attribute_name);
|
||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
@ -314,8 +314,8 @@ ColumnPtr CacheDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(identifiers_size);
|
column = ColumnVector<AttributeType>::create(identifiers_size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -357,7 +357,7 @@ ColumnPtr CacheDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(attribute.type, type_call);
|
callOnDictionaryAttributeType(attribute.type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ ColumnPtr ComplexKeyCacheDictionary::getColumn(
|
|||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
/// TODO: Check if const will work as expected
|
/// TODO: Check if const will work as expected
|
||||||
|
|
||||||
auto keys_size = key_columns.front()->size();
|
auto keys_size = key_columns.front()->size();
|
||||||
|
|
||||||
auto type_call = [&](const auto &dictionary_attribute_type)
|
auto type_call = [&](const auto &dictionary_attribute_type)
|
||||||
@ -136,8 +136,8 @@ ColumnPtr ComplexKeyCacheDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(keys_size);
|
column = ColumnVector<AttributeType>::create(keys_size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -179,7 +179,7 @@ ColumnPtr ComplexKeyCacheDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(attribute.type, type_call);
|
callOnDictionaryAttributeType(attribute.type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -362,7 +362,7 @@ void ComplexKeyCacheDictionary::setDefaultAttributeValue(Attribute & attribute,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::get<ContainerPtrType<AttributeType>>(attribute.arrays)[idx] = std::get<AttributeType>(attribute.null_values);
|
std::get<ContainerPtrType<AttributeType>>(attribute.arrays)[idx] = std::get<AttributeType>(attribute.null_values);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -98,7 +98,7 @@ public:
|
|||||||
const DataTypes & key_types,
|
const DataTypes & key_types,
|
||||||
const ColumnPtr default_untyped) const override;
|
const ColumnPtr default_untyped) const override;
|
||||||
|
|
||||||
ColumnUInt8::Ptr has(const Columns & key_columns, const DataTypes & key_types) const override;
|
ColumnUInt8::Ptr has(const Columns & key_columns, const DataTypes & key_types) const override;
|
||||||
|
|
||||||
BlockInputStreamPtr getBlockInputStream(const Names & column_names, size_t max_block_size) const override;
|
BlockInputStreamPtr getBlockInputStream(const Names & column_names, size_t max_block_size) const override;
|
||||||
|
|
||||||
|
@ -47,10 +47,10 @@ ColumnPtr ComplexKeyDirectDictionary::getColumn(
|
|||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
/// TODO: Check if const will work as expected
|
/// TODO: Check if const will work as expected
|
||||||
|
|
||||||
auto size = key_columns.front()->size();
|
auto size = key_columns.front()->size();
|
||||||
|
|
||||||
auto type_call = [&](const auto &dictionary_attribute_type)
|
auto type_call = [&](const auto & dictionary_attribute_type)
|
||||||
{
|
{
|
||||||
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
||||||
using AttributeType = typename Type::AttributeType;
|
using AttributeType = typename Type::AttributeType;
|
||||||
@ -125,8 +125,8 @@ ColumnPtr ComplexKeyDirectDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(size);
|
column = ColumnVector<AttributeType>::create(size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -168,7 +168,7 @@ ColumnPtr ComplexKeyDirectDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(attribute.type, type_call);
|
callOnDictionaryAttributeType(attribute.type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ ColumnPtr ComplexKeyHashedDictionary::getColumn(
|
|||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
/// TODO: Check if const will work as expected
|
/// TODO: Check if const will work as expected
|
||||||
|
|
||||||
auto size = key_columns.front()->size();
|
auto size = key_columns.front()->size();
|
||||||
|
|
||||||
auto type_call = [&](const auto &dictionary_attribute_type)
|
auto type_call = [&](const auto &dictionary_attribute_type)
|
||||||
@ -111,8 +111,8 @@ ColumnPtr ComplexKeyHashedDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(size);
|
column = ColumnVector<AttributeType>::create(size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -154,7 +154,7 @@ ColumnPtr ComplexKeyHashedDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(attribute.type, type_call);
|
callOnDictionaryAttributeType(attribute.type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ std::vector<DictionaryAttribute> DictionaryStructure::getAttributes(
|
|||||||
is_array = true;
|
is_array = true;
|
||||||
type = array_type->getNestedType();
|
type = array_type->getNestedType();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type->isNullable())
|
if (type->isNullable())
|
||||||
{
|
{
|
||||||
is_nullable = true;
|
is_nullable = true;
|
||||||
|
@ -138,8 +138,8 @@ ColumnPtr DirectDictionary::getColumn(
|
|||||||
ColumnPtr result;
|
ColumnPtr result;
|
||||||
|
|
||||||
PaddedPODArray<Key> backup_storage;
|
PaddedPODArray<Key> backup_storage;
|
||||||
const auto& ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
const auto & ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
||||||
|
|
||||||
const auto & attribute = getAttribute(attribute_name);
|
const auto & attribute = getAttribute(attribute_name);
|
||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
@ -222,8 +222,8 @@ ColumnPtr DirectDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(size);
|
column = ColumnVector<AttributeType>::create(size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -265,7 +265,7 @@ ColumnPtr DirectDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(attribute.type, type_call);
|
callOnDictionaryAttributeType(attribute.type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,7 +16,6 @@ namespace ErrorCodes
|
|||||||
extern const int BAD_ARGUMENTS;
|
extern const int BAD_ARGUMENTS;
|
||||||
extern const int DICTIONARY_IS_EMPTY;
|
extern const int DICTIONARY_IS_EMPTY;
|
||||||
extern const int UNSUPPORTED_METHOD;
|
extern const int UNSUPPORTED_METHOD;
|
||||||
extern const int ILLEGAL_COLUMN;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const auto initial_array_size = 1024;
|
static const auto initial_array_size = 1024;
|
||||||
@ -115,8 +114,8 @@ ColumnPtr FlatDictionary::getColumn(
|
|||||||
ColumnPtr result;
|
ColumnPtr result;
|
||||||
|
|
||||||
PaddedPODArray<Key> backup_storage;
|
PaddedPODArray<Key> backup_storage;
|
||||||
const auto& ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
const auto & ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
||||||
|
|
||||||
const auto & attribute = getAttribute(attribute_name);
|
const auto & attribute = getAttribute(attribute_name);
|
||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
@ -183,8 +182,8 @@ ColumnPtr FlatDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(size);
|
column = ColumnVector<AttributeType>::create(size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -226,7 +225,7 @@ ColumnPtr FlatDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(attribute.type, type_call);
|
callOnDictionaryAttributeType(attribute.type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,14 +137,14 @@ ColumnPtr HashedDictionary::getColumn(
|
|||||||
ColumnPtr result;
|
ColumnPtr result;
|
||||||
|
|
||||||
PaddedPODArray<Key> backup_storage;
|
PaddedPODArray<Key> backup_storage;
|
||||||
const auto& ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
const auto & ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
||||||
|
|
||||||
const auto & attribute = getAttribute(attribute_name);
|
const auto & attribute = getAttribute(attribute_name);
|
||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
/// TODO: Check if const will work as expected
|
/// TODO: Check if const will work as expected
|
||||||
|
|
||||||
auto type_call = [&](const auto &dictionary_attribute_type)
|
auto type_call = [&](const auto & dictionary_attribute_type)
|
||||||
{
|
{
|
||||||
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
||||||
using AttributeType = typename Type::AttributeType;
|
using AttributeType = typename Type::AttributeType;
|
||||||
@ -205,8 +205,8 @@ ColumnPtr HashedDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(size);
|
column = ColumnVector<AttributeType>::create(size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -248,7 +248,7 @@ ColumnPtr HashedDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(attribute.type, type_call);
|
callOnDictionaryAttributeType(attribute.type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -706,14 +706,14 @@ template <>
|
|||||||
PaddedPODArray<HashedDictionary::Key> HashedDictionary::getIds<String>(const Attribute & attribute) const
|
PaddedPODArray<HashedDictionary::Key> HashedDictionary::getIds<String>(const Attribute & attribute) const
|
||||||
{
|
{
|
||||||
return getIds<StringRef>(attribute);
|
return getIds<StringRef>(attribute);
|
||||||
}
|
}
|
||||||
|
|
||||||
PaddedPODArray<HashedDictionary::Key> HashedDictionary::getIds() const
|
PaddedPODArray<HashedDictionary::Key> HashedDictionary::getIds() const
|
||||||
{
|
{
|
||||||
const auto & attribute = attributes.front();
|
const auto & attribute = attributes.front();
|
||||||
PaddedPODArray<HashedDictionary::Key> result;
|
PaddedPODArray<HashedDictionary::Key> result;
|
||||||
|
|
||||||
auto type_call = [&](const auto &dictionary_attribute_type)
|
auto type_call = [&](const auto & dictionary_attribute_type)
|
||||||
{
|
{
|
||||||
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
||||||
using AttributeType = typename Type::AttributeType;
|
using AttributeType = typename Type::AttributeType;
|
||||||
|
@ -207,8 +207,7 @@ getColumnDataAsPaddedPODArray(const IDictionaryBase * dictionary, const ColumnPt
|
|||||||
|
|
||||||
if (!vector_col)
|
if (!vector_col)
|
||||||
{
|
{
|
||||||
throw Exception{
|
throw Exception{ErrorCodes::TYPE_MISMATCH,
|
||||||
ErrorCodes::TYPE_MISMATCH,
|
|
||||||
"{}: type mismatch: column has wrong type expected {}",
|
"{}: type mismatch: column has wrong type expected {}",
|
||||||
dictionary->getDictionaryID().getNameForLogs(),
|
dictionary->getDictionaryID().getNameForLogs(),
|
||||||
"" /* TODO: Type name*/};
|
"" /* TODO: Type name*/};
|
||||||
|
@ -282,7 +282,7 @@ ColumnPtr IPAddressDictionary::getColumn(
|
|||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
/// TODO: Check if const will work as expected
|
/// TODO: Check if const will work as expected
|
||||||
|
|
||||||
auto size = key_columns.front()->size();
|
auto size = key_columns.front()->size();
|
||||||
|
|
||||||
auto type_call = [&](const auto &dictionary_attribute_type)
|
auto type_call = [&](const auto &dictionary_attribute_type)
|
||||||
@ -344,8 +344,8 @@ ColumnPtr IPAddressDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(size);
|
column = ColumnVector<AttributeType>::create(size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -387,7 +387,7 @@ ColumnPtr IPAddressDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(attribute.type, type_call);
|
callOnDictionaryAttributeType(attribute.type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -840,7 +840,8 @@ void IPAddressDictionary::setAttributeValueImpl(Attribute & attribute, const T v
|
|||||||
|
|
||||||
void IPAddressDictionary::setAttributeValue(Attribute & attribute, const Field & value)
|
void IPAddressDictionary::setAttributeValue(Attribute & attribute, const Field & value)
|
||||||
{
|
{
|
||||||
auto type_call = [&](const auto & dictionary_attribute_type) {
|
auto type_call = [&](const auto & dictionary_attribute_type)
|
||||||
|
{
|
||||||
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
||||||
using AttributeType = typename Type::AttributeType;
|
using AttributeType = typename Type::AttributeType;
|
||||||
|
|
||||||
@ -848,7 +849,7 @@ void IPAddressDictionary::setAttributeValue(Attribute & attribute, const Field &
|
|||||||
{
|
{
|
||||||
const auto & string = value.get<String>();
|
const auto & string = value.get<String>();
|
||||||
const auto * string_in_arena = attribute.string_arena->insert(string.data(), string.size());
|
const auto * string_in_arena = attribute.string_arena->insert(string.data(), string.size());
|
||||||
setAttributeValueImpl<StringRef>(attribute, StringRef{string_in_arena, string.size()});
|
setAttributeValueImpl<StringRef>(attribute, StringRef{string_in_arena, string.size()});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -70,7 +70,7 @@ public:
|
|||||||
const DataTypes & key_types,
|
const DataTypes & key_types,
|
||||||
const ColumnPtr default_untyped) const override;
|
const ColumnPtr default_untyped) const override;
|
||||||
|
|
||||||
ColumnUInt8::Ptr has(const Columns & key_columns, const DataTypes & key_types) const override;
|
ColumnUInt8::Ptr has(const Columns & key_columns, const DataTypes & key_types) const override;
|
||||||
|
|
||||||
BlockInputStreamPtr getBlockInputStream(const Names & column_names, size_t max_block_size) const override;
|
BlockInputStreamPtr getBlockInputStream(const Names & column_names, size_t max_block_size) const override;
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ ColumnPtr IPolygonDictionary::getColumn(
|
|||||||
{
|
{
|
||||||
const auto & def = default_col_const->template getValue<String>();
|
const auto & def = default_col_const->template getValue<String>();
|
||||||
|
|
||||||
getItemsImpl<StringRef, StringRef>(
|
getItemsImpl<String, StringRef>(
|
||||||
index,
|
index,
|
||||||
key_columns,
|
key_columns,
|
||||||
[&](const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
[&](const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||||
@ -169,8 +169,8 @@ ColumnPtr IPolygonDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(size);
|
column = ColumnVector<AttributeType>::create(size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -212,7 +212,7 @@ ColumnPtr IPolygonDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(dict_struct.attributes[index].underlying_type, type_call);
|
callOnDictionaryAttributeType(dict_struct.attributes[index].underlying_type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -162,8 +162,8 @@ ColumnPtr RangeHashedDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(size);
|
column = ColumnVector<AttributeType>::create(size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -205,7 +205,7 @@ ColumnPtr RangeHashedDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(attribute.type, type_call);
|
callOnDictionaryAttributeType(attribute.type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,7 +304,7 @@ void RangeHashedDictionary::calculateBytesAllocated()
|
|||||||
|
|
||||||
for (const auto & attribute : attributes)
|
for (const auto & attribute : attributes)
|
||||||
{
|
{
|
||||||
auto type_call = [&](const auto & dictionary_attribute_type)
|
auto type_call = [&](const auto & dictionary_attribute_type)
|
||||||
{
|
{
|
||||||
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
using Type = std::decay_t<decltype(dictionary_attribute_type)>;
|
||||||
using AttributeType = typename Type::AttributeType;
|
using AttributeType = typename Type::AttributeType;
|
||||||
|
@ -1338,8 +1338,8 @@ ColumnPtr SSDCacheDictionary::getColumn(
|
|||||||
ColumnPtr result;
|
ColumnPtr result;
|
||||||
|
|
||||||
PaddedPODArray<Key> backup_storage;
|
PaddedPODArray<Key> backup_storage;
|
||||||
const auto& ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
const auto & ids = getColumnDataAsPaddedPODArray(this, key_columns.front(), backup_storage);
|
||||||
|
|
||||||
const auto index = getAttributeIndex(attribute_name);
|
const auto index = getAttributeIndex(attribute_name);
|
||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
@ -1393,8 +1393,8 @@ ColumnPtr SSDCacheDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(identifiers_size);
|
column = ColumnVector<AttributeType>::create(identifiers_size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -1436,7 +1436,7 @@ ColumnPtr SSDCacheDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(dict_struct.attributes[index].underlying_type, type_call);
|
callOnDictionaryAttributeType(dict_struct.attributes[index].underlying_type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1392,7 +1392,7 @@ ColumnPtr SSDComplexKeyCacheDictionary::getColumn(
|
|||||||
|
|
||||||
/// TODO: Check that attribute type is same as result type
|
/// TODO: Check that attribute type is same as result type
|
||||||
/// TODO: Check if const will work as expected
|
/// TODO: Check if const will work as expected
|
||||||
|
|
||||||
auto keys_size = key_columns.front()->size();
|
auto keys_size = key_columns.front()->size();
|
||||||
|
|
||||||
auto type_call = [&](const auto &dictionary_attribute_type)
|
auto type_call = [&](const auto &dictionary_attribute_type)
|
||||||
@ -1442,8 +1442,8 @@ ColumnPtr SSDComplexKeyCacheDictionary::getColumn(
|
|||||||
}
|
}
|
||||||
else if constexpr (IsNumber<AttributeType>)
|
else if constexpr (IsNumber<AttributeType>)
|
||||||
column = ColumnVector<AttributeType>::create(keys_size);
|
column = ColumnVector<AttributeType>::create(keys_size);
|
||||||
|
|
||||||
auto& out = column->getData();
|
auto & out = column->getData();
|
||||||
|
|
||||||
if (default_untyped != nullptr)
|
if (default_untyped != nullptr)
|
||||||
{
|
{
|
||||||
@ -1488,7 +1488,7 @@ ColumnPtr SSDComplexKeyCacheDictionary::getColumn(
|
|||||||
};
|
};
|
||||||
|
|
||||||
callOnDictionaryAttributeType(dict_struct.attributes[index].underlying_type, type_call);
|
callOnDictionaryAttributeType(dict_struct.attributes[index].underlying_type, type_call);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -578,7 +578,7 @@ public:
|
|||||||
const DataTypes & key_types,
|
const DataTypes & key_types,
|
||||||
const ColumnPtr default_untyped) const override;
|
const ColumnPtr default_untyped) const override;
|
||||||
|
|
||||||
ColumnUInt8::Ptr has(const Columns & key_columns, const DataTypes & key_types) const override;
|
ColumnUInt8::Ptr has(const Columns & key_columns, const DataTypes & key_types) const override;
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
using ResultArrayType = SSDComplexKeyCacheStorage::ResultArrayType<T>;
|
using ResultArrayType = SSDComplexKeyCacheStorage::ResultArrayType<T>;
|
||||||
|
@ -17,20 +17,11 @@ NO_COMPILER_WARNINGS()
|
|||||||
|
|
||||||
SRCS(
|
SRCS(
|
||||||
CacheDictionary.cpp
|
CacheDictionary.cpp
|
||||||
CacheDictionary_generate1.cpp
|
|
||||||
CacheDictionary_generate2.cpp
|
|
||||||
CacheDictionary_generate3.cpp
|
|
||||||
CassandraBlockInputStream.cpp
|
CassandraBlockInputStream.cpp
|
||||||
CassandraDictionarySource.cpp
|
CassandraDictionarySource.cpp
|
||||||
CassandraHelpers.cpp
|
CassandraHelpers.cpp
|
||||||
ClickHouseDictionarySource.cpp
|
ClickHouseDictionarySource.cpp
|
||||||
ComplexKeyCacheDictionary.cpp
|
ComplexKeyCacheDictionary.cpp
|
||||||
ComplexKeyCacheDictionary_createAttributeWithType.cpp
|
|
||||||
ComplexKeyCacheDictionary_generate1.cpp
|
|
||||||
ComplexKeyCacheDictionary_generate2.cpp
|
|
||||||
ComplexKeyCacheDictionary_generate3.cpp
|
|
||||||
ComplexKeyCacheDictionary_setAttributeValue.cpp
|
|
||||||
ComplexKeyCacheDictionary_setDefaultAttributeValue.cpp
|
|
||||||
ComplexKeyDirectDictionary.cpp
|
ComplexKeyDirectDictionary.cpp
|
||||||
ComplexKeyHashedDictionary.cpp
|
ComplexKeyHashedDictionary.cpp
|
||||||
DictionaryBlockInputStreamBase.cpp
|
DictionaryBlockInputStreamBase.cpp
|
||||||
|
@ -54,7 +54,6 @@ namespace ErrorCodes
|
|||||||
extern const int UNSUPPORTED_METHOD;
|
extern const int UNSUPPORTED_METHOD;
|
||||||
extern const int UNKNOWN_TYPE;
|
extern const int UNKNOWN_TYPE;
|
||||||
extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH;
|
extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH;
|
||||||
extern const int TYPE_MISMATCH;
|
|
||||||
extern const int ILLEGAL_COLUMN;
|
extern const int ILLEGAL_COLUMN;
|
||||||
extern const int BAD_ARGUMENTS;
|
extern const int BAD_ARGUMENTS;
|
||||||
}
|
}
|
||||||
@ -275,9 +274,8 @@ private:
|
|||||||
|
|
||||||
/// TODO: Use accurateCast if argument is integer
|
/// TODO: Use accurateCast if argument is integer
|
||||||
if (!WhichDataType(arguments[2].type).isUInt64() && !isTuple(arguments[2].type))
|
if (!WhichDataType(arguments[2].type).isUInt64() && !isTuple(arguments[2].type))
|
||||||
throw Exception{
|
throw Exception{"Illegal type " + arguments[2].type->getName() + " of third argument of function "
|
||||||
"Illegal type " + arguments[2].type->getName() + " of third argument of function " + getName()
|
+ getName() + ", must be UInt64 or tuple(...).",
|
||||||
+ ", must be UInt64 or tuple(...).",
|
|
||||||
ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT};
|
ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT};
|
||||||
|
|
||||||
auto dictionary_identifier_type = dictionary->getIdentifierType();
|
auto dictionary_identifier_type = dictionary->getIdentifierType();
|
||||||
@ -298,9 +296,8 @@ private:
|
|||||||
range_col_type = arguments[current_arguments_index].type;
|
range_col_type = arguments[current_arguments_index].type;
|
||||||
|
|
||||||
if (!(range_col_type->isValueRepresentedByInteger() && range_col_type->getSizeOfValueInMemory() <= sizeof(Int64)))
|
if (!(range_col_type->isValueRepresentedByInteger() && range_col_type->getSizeOfValueInMemory() <= sizeof(Int64)))
|
||||||
throw Exception{
|
throw Exception{"Illegal type " + range_col_type->getName() + " of fourth argument of function "
|
||||||
"Illegal type " + range_col_type->getName() + " of fourth argument of function " + getName()
|
+ getName() + " must be convertible to Int64.",
|
||||||
+ " must be convertible to Int64.",
|
|
||||||
ErrorCodes::ILLEGAL_COLUMN};
|
ErrorCodes::ILLEGAL_COLUMN};
|
||||||
|
|
||||||
++current_arguments_index;
|
++current_arguments_index;
|
||||||
|
Loading…
Reference in New Issue
Block a user