mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Fixed tests
This commit is contained in:
parent
eabeb3076f
commit
021e5f838a
@ -10,6 +10,7 @@
|
||||
#include <DataStreams/IBlockInputStream.h>
|
||||
#include <DataTypes/DataTypesDecimal.h>
|
||||
#include <DataTypes/DataTypeArray.h>
|
||||
#include <DataTypes/DataTypeNullable.h>
|
||||
#include <Core/Block.h>
|
||||
#include <Dictionaries/IDictionary.h>
|
||||
#include <Dictionaries/DictionaryStructure.h>
|
||||
@ -244,7 +245,7 @@ public:
|
||||
{
|
||||
if constexpr (std::is_same_v<DictionaryAttributeType, Array>)
|
||||
{
|
||||
if (const auto * array_type = typeid_cast<const DataTypeArray *>(dictionary_attribute.nested_type.get()))
|
||||
if (const auto * array_type = typeid_cast<const DataTypeArray *>(dictionary_attribute.type.get()))
|
||||
{
|
||||
auto nested_column = array_type->getNestedType()->createColumn();
|
||||
return ColumnArray::create(std::move(nested_column));
|
||||
@ -264,7 +265,8 @@ public:
|
||||
}
|
||||
else if constexpr (IsDecimalNumber<DictionaryAttributeType>)
|
||||
{
|
||||
auto scale = getDecimalScale(*dictionary_attribute.nested_type);
|
||||
auto nested_type = removeNullable(dictionary_attribute.type);
|
||||
auto scale = getDecimalScale(*nested_type);
|
||||
return ColumnType::create(size, scale);
|
||||
}
|
||||
else if constexpr (is_arithmetic_v<DictionaryAttributeType>)
|
||||
|
@ -373,21 +373,9 @@ std::vector<DictionaryAttribute> DictionaryStructure::getAttributes(
|
||||
|
||||
const auto type_string = config.getString(prefix + "type");
|
||||
const auto initial_type = DataTypeFactory::instance().get(type_string);
|
||||
auto nested_type = initial_type;
|
||||
bool is_nullable = false;
|
||||
|
||||
// while (const auto * array_type = typeid_cast<const DataTypeArray *>(nested_type.get()))
|
||||
// {
|
||||
// is_array = true;
|
||||
// nested_type = array_type->getNestedType();
|
||||
// }
|
||||
|
||||
if (nested_type->isNullable())
|
||||
{
|
||||
is_nullable = true;
|
||||
nested_type = removeNullable(nested_type);
|
||||
}
|
||||
bool is_nullable = initial_type->isNullable();
|
||||
|
||||
auto nested_type = removeNullable(initial_type);
|
||||
const auto underlying_type = getAttributeUnderlyingType(nested_type);
|
||||
|
||||
const auto expression = config.getString(prefix + "expression", "");
|
||||
@ -407,7 +395,7 @@ std::vector<DictionaryAttribute> DictionaryStructure::getAttributes(
|
||||
else
|
||||
{
|
||||
ReadBufferFromString null_value_buffer{null_value_string};
|
||||
auto column_with_null_value = nested_type->createColumn();
|
||||
auto column_with_null_value = initial_type->createColumn();
|
||||
initial_type->getDefaultSerialization()->deserializeTextEscaped(*column_with_null_value, null_value_buffer, format_settings);
|
||||
null_value = (*column_with_null_value)[0];
|
||||
}
|
||||
@ -415,14 +403,11 @@ std::vector<DictionaryAttribute> DictionaryStructure::getAttributes(
|
||||
catch (Exception & e)
|
||||
{
|
||||
String dictionary_name = config.getString(".dictionary.name", "");
|
||||
e.addMessage("While parsing null_value for attribute with name " + name
|
||||
+ " in dictionary " + dictionary_name);
|
||||
e.addMessage(fmt::format("While parsing null_value for attribute with name {} in dictionary {}", name, dictionary_name));
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
std::cerr << "DictionaryStructure::getAttributes null value " << null_value.dump() << std::endl;
|
||||
|
||||
const auto hierarchical = config.getBool(prefix + "hierarchical", false);
|
||||
const auto injective = config.getBool(prefix + "injective", false);
|
||||
const auto is_object_id = config.getBool(prefix + "is_object_id", false);
|
||||
@ -441,8 +426,6 @@ std::vector<DictionaryAttribute> DictionaryStructure::getAttributes(
|
||||
name,
|
||||
underlying_type,
|
||||
initial_type,
|
||||
initial_type->getDefaultSerialization(),
|
||||
nested_type,
|
||||
expression,
|
||||
null_value,
|
||||
hierarchical,
|
||||
|
@ -75,8 +75,6 @@ struct DictionaryAttribute final
|
||||
const std::string name;
|
||||
const AttributeUnderlyingType underlying_type;
|
||||
const DataTypePtr type;
|
||||
const SerializationPtr serialization;
|
||||
const DataTypePtr nested_type;
|
||||
const std::string expression;
|
||||
const Field null_value;
|
||||
const bool hierarchical;
|
||||
|
@ -358,7 +358,8 @@ void ExternalQueryBuilder::composeKeyCondition(const Columns & key_columns, cons
|
||||
/// key_i=value_i
|
||||
writeQuoted(key_description.name, out);
|
||||
writeString("=", out);
|
||||
key_description.serialization->serializeTextQuoted(*key_columns[i], row, out, format_settings);
|
||||
auto serialization = key_description.type->getDefaultSerialization();
|
||||
serialization->serializeTextQuoted(*key_columns[i], row, out, format_settings);
|
||||
}
|
||||
}
|
||||
|
||||
@ -415,7 +416,8 @@ void ExternalQueryBuilder::composeKeyTuple(const Columns & key_columns, const si
|
||||
writeString(", ", out);
|
||||
|
||||
first = false;
|
||||
(*dict_struct.key)[i].serialization->serializeTextQuoted(*key_columns[i], row, out, format_settings);
|
||||
auto serialization = (*dict_struct.key)[i].type->getDefaultSerialization();
|
||||
serialization->serializeTextQuoted(*key_columns[i], row, out, format_settings);
|
||||
}
|
||||
|
||||
writeString(")", out);
|
||||
|
Loading…
Reference in New Issue
Block a user