mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Better [#CLICKHOUSE-2].
This commit is contained in:
parent
bdd25b15bd
commit
431da20d99
@ -13,7 +13,7 @@ inline typename std::enable_if<std::is_floating_point<T>::value, bool>::type isN
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename std::enable_if<!std::is_floating_point<T>::value, bool>::type isNaN(T x)
|
||||
inline typename std::enable_if<!std::is_floating_point<T>::value, bool>::type isNaN(T)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@ -25,7 +25,7 @@ inline typename std::enable_if<std::is_floating_point<T>::value, bool>::type isF
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename std::enable_if<!std::is_floating_point<T>::value, bool>::type isFinite(T x)
|
||||
inline typename std::enable_if<!std::is_floating_point<T>::value, bool>::type isFinite(T)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -181,10 +181,10 @@ static BlockOutputStreamPtr getOutputImpl(const String & name, WriteBuffer & buf
|
||||
return std::make_shared<PrettySpaceBlockOutputStream>(buf, true, settings.output_format_pretty_max_rows, context);
|
||||
else if (name == "Vertical")
|
||||
return std::make_shared<BlockOutputStreamFromRowOutputStream>(std::make_shared<VerticalRowOutputStream>(
|
||||
buf, sample, settings.output_format_pretty_max_rows, context));
|
||||
buf, sample, settings.output_format_pretty_max_rows));
|
||||
else if (name == "VerticalRaw")
|
||||
return std::make_shared<BlockOutputStreamFromRowOutputStream>(std::make_shared<VerticalRawRowOutputStream>(
|
||||
buf, sample, settings.output_format_pretty_max_rows, context));
|
||||
buf, sample, settings.output_format_pretty_max_rows));
|
||||
else if (name == "Values")
|
||||
return std::make_shared<BlockOutputStreamFromRowOutputStream>(std::make_shared<ValuesRowOutputStream>(buf));
|
||||
else if (name == "JSON")
|
||||
|
@ -338,12 +338,12 @@ void SummingSortedBlockInputStream::merge(ColumnPlainPtrs & merged_columns, std:
|
||||
desc.createState();
|
||||
|
||||
// Start aggregations with current row
|
||||
addRow(current_row, current);
|
||||
addRow(current);
|
||||
current_row_is_zero = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
addRow(current_row, current);
|
||||
addRow(current);
|
||||
|
||||
// Merge maps only for same rows
|
||||
for (auto & desc : maps_to_sum)
|
||||
@ -456,7 +456,7 @@ bool SummingSortedBlockInputStream::mergeMap(const MapDescription & desc, Row &
|
||||
|
||||
|
||||
template <typename TSortCursor>
|
||||
void SummingSortedBlockInputStream::addRow(Row & row, TSortCursor & cursor)
|
||||
void SummingSortedBlockInputStream::addRow(TSortCursor & cursor)
|
||||
{
|
||||
for (auto & desc : columns_to_aggregate)
|
||||
{
|
||||
|
@ -151,7 +151,7 @@ private:
|
||||
|
||||
// Add the row under the cursor to the `row`.
|
||||
template <typename TSortCursor>
|
||||
void addRow(Row & row, TSortCursor & cursor);
|
||||
void addRow(TSortCursor & cursor);
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ namespace DB
|
||||
{
|
||||
|
||||
VerticalRowOutputStream::VerticalRowOutputStream(
|
||||
WriteBuffer & ostr_, const Block & sample_, size_t max_rows_, const Context & context)
|
||||
WriteBuffer & ostr_, const Block & sample_, size_t max_rows_)
|
||||
: ostr(ostr_), sample(sample_), max_rows(max_rows_)
|
||||
{
|
||||
size_t columns = sample.columns();
|
||||
|
@ -18,7 +18,7 @@ class Context;
|
||||
class VerticalRowOutputStream : public IRowOutputStream
|
||||
{
|
||||
public:
|
||||
VerticalRowOutputStream(WriteBuffer & ostr_, const Block & sample_, size_t max_rows_, const Context & context);
|
||||
VerticalRowOutputStream(WriteBuffer & ostr_, const Block & sample_, size_t max_rows_);
|
||||
|
||||
void writeField(const IColumn & column, const IDataType & type, size_t row_num) override;
|
||||
void writeRowStartDelimiter() override;
|
||||
|
@ -110,7 +110,7 @@ void DataTypeAggregateFunction::serializeBinaryBulk(const IColumn & column, Writ
|
||||
function->serialize(*it, ostr);
|
||||
}
|
||||
|
||||
void DataTypeAggregateFunction::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const
|
||||
void DataTypeAggregateFunction::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double /*avg_value_size_hint*/) const
|
||||
{
|
||||
ColumnAggregateFunction & real_column = typeid_cast<ColumnAggregateFunction &>(column);
|
||||
ColumnAggregateFunction::Container_t & vec = real_column.getData();
|
||||
|
@ -214,7 +214,7 @@ void DataTypeArray::deserializeBinaryBulkWithMultipleStreams(
|
||||
IColumn & column,
|
||||
InputStreamGetter getter,
|
||||
size_t limit,
|
||||
double avg_value_size_hint,
|
||||
double /*avg_value_size_hint*/,
|
||||
bool position_independent_encoding,
|
||||
SubstreamPath path) const
|
||||
{
|
||||
|
@ -70,7 +70,7 @@ void DataTypeDate::serializeTextCSV(const IColumn & column, size_t row_num, Writ
|
||||
writeChar('"', ostr);
|
||||
}
|
||||
|
||||
void DataTypeDate::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const
|
||||
void DataTypeDate::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char /*delimiter*/) const
|
||||
{
|
||||
LocalDate value;
|
||||
readCSV(value, istr);
|
||||
|
@ -94,7 +94,7 @@ void DataTypeDateTime::serializeTextCSV(const IColumn & column, size_t row_num,
|
||||
writeChar('"', ostr);
|
||||
}
|
||||
|
||||
void DataTypeDateTime::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const
|
||||
void DataTypeDateTime::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char /*delimiter*/) const
|
||||
{
|
||||
time_t x;
|
||||
readDateTimeCSV(x, istr, time_zone);
|
||||
|
@ -226,7 +226,7 @@ void DataTypeEnum<Type>::serializeBinaryBulk(
|
||||
|
||||
template <typename Type>
|
||||
void DataTypeEnum<Type>::deserializeBinaryBulk(
|
||||
IColumn & column, ReadBuffer & istr, const size_t limit, const double avg_value_size_hint) const
|
||||
IColumn & column, ReadBuffer & istr, const size_t limit, const double /*avg_value_size_hint*/) const
|
||||
{
|
||||
auto & x = typeid_cast<ColumnType &>(column).getData();
|
||||
const auto initial_size = x.size();
|
||||
|
@ -91,7 +91,7 @@ void DataTypeFixedString::serializeBinaryBulk(const IColumn & column, WriteBuffe
|
||||
}
|
||||
|
||||
|
||||
void DataTypeFixedString::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const
|
||||
void DataTypeFixedString::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double /*avg_value_size_hint*/) const
|
||||
{
|
||||
ColumnFixedString::Chars_t & data = typeid_cast<ColumnFixedString &>(column).getChars();
|
||||
|
||||
@ -194,7 +194,7 @@ void DataTypeFixedString::serializeTextCSV(const IColumn & column, size_t row_nu
|
||||
}
|
||||
|
||||
|
||||
void DataTypeFixedString::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const
|
||||
void DataTypeFixedString::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char /*delimiter*/) const
|
||||
{
|
||||
read(*this, column, [&istr](ColumnFixedString::Chars_t & data) { readCSVStringInto(data, istr); });
|
||||
}
|
||||
|
@ -26,7 +26,7 @@ void DataTypeNull::serializeBinaryBulk(const IColumn & column, WriteBuffer & ost
|
||||
writeBinary(x, ostr);
|
||||
}
|
||||
|
||||
void DataTypeNull::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const
|
||||
void DataTypeNull::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double /*avg_value_size_hint*/) const
|
||||
{
|
||||
istr.ignore(sizeof(UInt8) * limit);
|
||||
|
||||
@ -45,7 +45,7 @@ size_t DataTypeNull::getSizeOfField() const
|
||||
return sizeof(UInt8);
|
||||
}
|
||||
|
||||
void DataTypeNull::serializeBinary(const Field & field, WriteBuffer & ostr) const
|
||||
void DataTypeNull::serializeBinary(const Field & /*field*/, WriteBuffer & ostr) const
|
||||
{
|
||||
UInt8 x = 1; /// Value is 1 to be consistent with NULLs serialization in DataTypeNullable.
|
||||
writeBinary(x, ostr);
|
||||
@ -58,7 +58,7 @@ void DataTypeNull::deserializeBinary(Field & field, ReadBuffer & istr) const
|
||||
field = Null();
|
||||
}
|
||||
|
||||
void DataTypeNull::serializeBinary(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
|
||||
void DataTypeNull::serializeBinary(const IColumn & /*column*/, size_t /*row_num*/, WriteBuffer & ostr) const
|
||||
{
|
||||
UInt8 x = 1;
|
||||
writeBinary(x, ostr);
|
||||
@ -71,47 +71,47 @@ void DataTypeNull::deserializeBinary(IColumn & column, ReadBuffer & istr) const
|
||||
column.insertDefault();
|
||||
}
|
||||
|
||||
void DataTypeNull::serializeTextEscaped(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
|
||||
void DataTypeNull::serializeTextEscaped(const IColumn & /*column*/, size_t /*row_num*/, WriteBuffer & ostr) const
|
||||
{
|
||||
writeCString("\\N", ostr);
|
||||
}
|
||||
|
||||
void DataTypeNull::deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const
|
||||
void DataTypeNull::deserializeTextEscaped(IColumn & /*column*/, ReadBuffer & istr) const
|
||||
{
|
||||
assertString("\\N", istr);
|
||||
}
|
||||
|
||||
void DataTypeNull::serializeTextQuoted(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
|
||||
void DataTypeNull::serializeTextQuoted(const IColumn & /*column*/, size_t /*row_num*/, WriteBuffer & ostr) const
|
||||
{
|
||||
writeCString("NULL", ostr);
|
||||
}
|
||||
|
||||
void DataTypeNull::deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const
|
||||
void DataTypeNull::deserializeTextQuoted(IColumn & /*column*/, ReadBuffer & istr) const
|
||||
{
|
||||
assertStringCaseInsensitive("NULL", istr);
|
||||
}
|
||||
|
||||
void DataTypeNull::serializeTextCSV(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
|
||||
void DataTypeNull::serializeTextCSV(const IColumn & /*column*/, size_t /*row_num*/, WriteBuffer & ostr) const
|
||||
{
|
||||
writeCString("\\N", ostr);
|
||||
}
|
||||
|
||||
void DataTypeNull::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const
|
||||
void DataTypeNull::deserializeTextCSV(IColumn & /*column*/, ReadBuffer & istr, const char /*delimiter*/) const
|
||||
{
|
||||
assertString("\\N", istr);
|
||||
}
|
||||
|
||||
void DataTypeNull::serializeText(const IColumn & column, size_t row_num, WriteBuffer & ostr) const
|
||||
void DataTypeNull::serializeText(const IColumn & /*column*/, size_t /*row_num*/, WriteBuffer & ostr) const
|
||||
{
|
||||
writeCString("NULL", ostr);
|
||||
}
|
||||
|
||||
void DataTypeNull::serializeTextJSON(const IColumn & column, size_t row_num, WriteBuffer & ostr, const FormatSettingsJSON &) const
|
||||
void DataTypeNull::serializeTextJSON(const IColumn & /*column*/, size_t /*row_num*/, WriteBuffer & ostr, const FormatSettingsJSON &) const
|
||||
{
|
||||
writeCString("null", ostr);
|
||||
}
|
||||
|
||||
void DataTypeNull::deserializeTextJSON(IColumn & column, ReadBuffer & istr) const
|
||||
void DataTypeNull::deserializeTextJSON(IColumn & /*column*/, ReadBuffer & istr) const
|
||||
{
|
||||
assertString("null", istr);
|
||||
}
|
||||
|
@ -24,23 +24,16 @@ void DataTypeNumberBase<T>::serializeTextEscaped(const IColumn & column, size_t
|
||||
}
|
||||
|
||||
|
||||
template <typename T>
|
||||
static void readTextUnsafeIfIntegral(typename std::enable_if<std::is_integral<T>::value && std::is_arithmetic<T>::value, T>::type & x, ReadBuffer & istr)
|
||||
{
|
||||
readIntTextUnsafe(x, istr);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static void readTextUnsafeIfIntegral(typename std::enable_if<!std::is_integral<T>::value || !std::is_arithmetic<T>::value, T>::type & x, ReadBuffer & istr)
|
||||
{
|
||||
readText(x, istr);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static void deserializeText(IColumn & column, ReadBuffer & istr)
|
||||
{
|
||||
T x;
|
||||
readTextUnsafeIfIntegral<T>(x, istr);
|
||||
|
||||
if constexpr (std::is_integral<T>::value && std::is_arithmetic<T>::value)
|
||||
readIntTextUnsafe(x, istr);
|
||||
else
|
||||
readText(x, istr);
|
||||
|
||||
static_cast<ColumnVector<T> &>(column).getData().push_back(x);
|
||||
}
|
||||
|
||||
@ -65,26 +58,28 @@ void DataTypeNumberBase<T>::deserializeTextQuoted(IColumn & column, ReadBuffer &
|
||||
|
||||
|
||||
template <typename T>
|
||||
static inline typename std::enable_if<std::is_floating_point<T>::value, void>::type writeDenormalNumber(T x, WriteBuffer & ostr)
|
||||
static inline void writeDenormalNumber(T x, WriteBuffer & ostr)
|
||||
{
|
||||
if (std::signbit(x))
|
||||
if constexpr (std::is_floating_point<T>::value)
|
||||
{
|
||||
if (isNaN(x))
|
||||
writeCString("-nan", ostr);
|
||||
if (std::signbit(x))
|
||||
{
|
||||
if (isNaN(x))
|
||||
writeCString("-nan", ostr);
|
||||
else
|
||||
writeCString("-inf", ostr);
|
||||
}
|
||||
else
|
||||
writeCString("-inf", ostr);
|
||||
{
|
||||
if (isNaN(x))
|
||||
writeCString("nan", ostr);
|
||||
else
|
||||
writeCString("inf", ostr);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (isNaN(x))
|
||||
writeCString("nan", ostr);
|
||||
else
|
||||
writeCString("inf", ostr);
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static inline typename std::enable_if<!std::is_floating_point<T>::value, void>::type writeDenormalNumber(T x, WriteBuffer & ostr) {}
|
||||
/// This function is not called for non floating point numbers.
|
||||
}
|
||||
|
||||
|
||||
template <typename T>
|
||||
@ -168,7 +163,7 @@ void DataTypeNumberBase<T>::serializeTextCSV(const IColumn & column, size_t row_
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void DataTypeNumberBase<T>::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const
|
||||
void DataTypeNumberBase<T>::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char /*delimiter*/) const
|
||||
{
|
||||
FieldType x;
|
||||
readCSV(x, istr);
|
||||
@ -225,7 +220,7 @@ void DataTypeNumberBase<T>::serializeBinaryBulk(const IColumn & column, WriteBuf
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void DataTypeNumberBase<T>::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const
|
||||
void DataTypeNumberBase<T>::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double /*avg_value_size_hint*/) const
|
||||
{
|
||||
typename ColumnVector<T>::Container_t & x = typeid_cast<ColumnVector<T> &>(column).getData();
|
||||
size_t initial_size = x.size();
|
||||
|
@ -219,7 +219,7 @@ void DataTypeString::serializeTextEscaped(const IColumn & column, size_t row_num
|
||||
|
||||
|
||||
template <typename Reader>
|
||||
static inline void read(IColumn & column, ReadBuffer & istr, Reader && reader)
|
||||
static inline void read(IColumn & column, Reader && reader)
|
||||
{
|
||||
ColumnString & column_string = static_cast<ColumnString &>(column);
|
||||
ColumnString::Chars_t & data = column_string.getChars();
|
||||
@ -245,7 +245,7 @@ static inline void read(IColumn & column, ReadBuffer & istr, Reader && reader)
|
||||
|
||||
void DataTypeString::deserializeTextEscaped(IColumn & column, ReadBuffer & istr) const
|
||||
{
|
||||
read(column, istr, [&](ColumnString::Chars_t & data) { readEscapedStringInto(data, istr); });
|
||||
read(column, [&](ColumnString::Chars_t & data) { readEscapedStringInto(data, istr); });
|
||||
}
|
||||
|
||||
|
||||
@ -257,7 +257,7 @@ void DataTypeString::serializeTextQuoted(const IColumn & column, size_t row_num,
|
||||
|
||||
void DataTypeString::deserializeTextQuoted(IColumn & column, ReadBuffer & istr) const
|
||||
{
|
||||
read(column, istr, [&](ColumnString::Chars_t & data) { readQuotedStringInto<true>(data, istr); });
|
||||
read(column, [&](ColumnString::Chars_t & data) { readQuotedStringInto<true>(data, istr); });
|
||||
}
|
||||
|
||||
|
||||
@ -269,7 +269,7 @@ void DataTypeString::serializeTextJSON(const IColumn & column, size_t row_num, W
|
||||
|
||||
void DataTypeString::deserializeTextJSON(IColumn & column, ReadBuffer & istr) const
|
||||
{
|
||||
read(column, istr, [&](ColumnString::Chars_t & data) { readJSONStringInto(data, istr); });
|
||||
read(column, [&](ColumnString::Chars_t & data) { readJSONStringInto(data, istr); });
|
||||
}
|
||||
|
||||
|
||||
@ -285,9 +285,9 @@ void DataTypeString::serializeTextCSV(const IColumn & column, size_t row_num, Wr
|
||||
}
|
||||
|
||||
|
||||
void DataTypeString::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const
|
||||
void DataTypeString::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char /*delimiter*/) const
|
||||
{
|
||||
read(column, istr, [&](ColumnString::Chars_t & data) { readCSVStringInto(data, istr); });
|
||||
read(column, [&](ColumnString::Chars_t & data) { readCSVStringInto(data, istr); });
|
||||
}
|
||||
|
||||
|
||||
|
@ -66,7 +66,7 @@ void DataTypeUUID::serializeTextCSV(const IColumn & column, size_t row_num, Writ
|
||||
writeChar('"', ostr);
|
||||
}
|
||||
|
||||
void DataTypeUUID::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char delimiter) const
|
||||
void DataTypeUUID::deserializeTextCSV(IColumn & column, ReadBuffer & istr, const char /*delimiter*/) const
|
||||
{
|
||||
UUID value;
|
||||
readCSV(value, istr);
|
||||
|
@ -22,7 +22,7 @@ namespace ErrorCodes
|
||||
}
|
||||
|
||||
|
||||
DataTypePtr FieldToDataType::operator() (Null & x) const
|
||||
DataTypePtr FieldToDataType::operator() (Null &) const
|
||||
{
|
||||
return std::make_shared<DataTypeNull>();
|
||||
}
|
||||
@ -43,12 +43,12 @@ DataTypePtr FieldToDataType::operator() (Int64 & x) const
|
||||
return std::make_shared<DataTypeInt64>();
|
||||
}
|
||||
|
||||
DataTypePtr FieldToDataType::operator() (Float64 & x) const
|
||||
DataTypePtr FieldToDataType::operator() (Float64 &) const
|
||||
{
|
||||
return std::make_shared<DataTypeFloat64>();
|
||||
}
|
||||
|
||||
DataTypePtr FieldToDataType::operator() (String & x) const
|
||||
DataTypePtr FieldToDataType::operator() (String &) const
|
||||
{
|
||||
return std::make_shared<DataTypeString>();
|
||||
}
|
||||
|
@ -45,12 +45,12 @@ ColumnPtr IDataType::createConstColumn(size_t size, const Field & field) const
|
||||
}
|
||||
|
||||
|
||||
void IDataType::serializeBinaryBulk(const IColumn & column, WriteBuffer & ostr, size_t offset, size_t limit) const
|
||||
void IDataType::serializeBinaryBulk(const IColumn &, WriteBuffer &, size_t, size_t) const
|
||||
{
|
||||
throw Exception("Data type " + getName() + " must be serialized with multiple streams", ErrorCodes::MULTIPLE_STREAMS_REQUIRED);
|
||||
}
|
||||
|
||||
void IDataType::deserializeBinaryBulk(IColumn & column, ReadBuffer & istr, size_t limit, double avg_value_size_hint) const
|
||||
void IDataType::deserializeBinaryBulk(IColumn &, ReadBuffer &, size_t, double) const
|
||||
{
|
||||
throw Exception("Data type " + getName() + " must be deserialized with multiple streams", ErrorCodes::MULTIPLE_STREAMS_REQUIRED);
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ DatabaseDictionary::DatabaseDictionary(const String & name_, const Context & con
|
||||
{
|
||||
}
|
||||
|
||||
void DatabaseDictionary::loadTables(Context & context, ThreadPool * thread_pool, bool has_force_restore_data_flag)
|
||||
void DatabaseDictionary::loadTables(Context &, ThreadPool *, bool)
|
||||
{
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ Tables DatabaseDictionary::loadTables()
|
||||
}
|
||||
|
||||
bool DatabaseDictionary::isTableExist(
|
||||
const Context & context,
|
||||
const Context & /*context*/,
|
||||
const String & table_name) const
|
||||
{
|
||||
auto objects_map = external_dictionaries.getObjectsMap();
|
||||
@ -57,7 +57,7 @@ bool DatabaseDictionary::isTableExist(
|
||||
}
|
||||
|
||||
StoragePtr DatabaseDictionary::tryGetTable(
|
||||
const Context & context,
|
||||
const Context & /*context*/,
|
||||
const String & table_name)
|
||||
{
|
||||
auto objects_map = external_dictionaries.getObjectsMap();
|
||||
@ -82,12 +82,12 @@ StoragePtr DatabaseDictionary::tryGetTable(
|
||||
return {};
|
||||
}
|
||||
|
||||
DatabaseIteratorPtr DatabaseDictionary::getIterator(const Context & context)
|
||||
DatabaseIteratorPtr DatabaseDictionary::getIterator(const Context & /*context*/)
|
||||
{
|
||||
return std::make_unique<DatabaseSnaphotIterator>(loadTables());
|
||||
}
|
||||
|
||||
bool DatabaseDictionary::empty(const Context & context) const
|
||||
bool DatabaseDictionary::empty(const Context & /*context*/) const
|
||||
{
|
||||
auto objects_map = external_dictionaries.getObjectsMap();
|
||||
const auto & dictionaries = objects_map.get();
|
||||
@ -97,21 +97,21 @@ bool DatabaseDictionary::empty(const Context & context) const
|
||||
return true;
|
||||
}
|
||||
|
||||
StoragePtr DatabaseDictionary::detachTable(const String & table_name)
|
||||
StoragePtr DatabaseDictionary::detachTable(const String & /*table_name*/)
|
||||
{
|
||||
throw Exception("DatabaseDictionary: detachTable() is not supported", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
void DatabaseDictionary::attachTable(const String & table_name, const StoragePtr & table)
|
||||
void DatabaseDictionary::attachTable(const String & /*table_name*/, const StoragePtr & /*table*/)
|
||||
{
|
||||
throw Exception("DatabaseDictionary: attachTable() is not supported", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
void DatabaseDictionary::createTable(
|
||||
const Context & context,
|
||||
const String & table_name,
|
||||
const StoragePtr & table,
|
||||
const ASTPtr & query)
|
||||
const Context & /*context*/,
|
||||
const String & /*table_name*/,
|
||||
const StoragePtr & /*table*/,
|
||||
const ASTPtr & /*query*/)
|
||||
{
|
||||
throw Exception("DatabaseDictionary: createTable() is not supported", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
@ -128,36 +128,36 @@ void DatabaseDictionary::removeTable(
|
||||
}
|
||||
|
||||
void DatabaseDictionary::renameTable(
|
||||
const Context & context,
|
||||
const String & table_name,
|
||||
IDatabase & to_database,
|
||||
const String & to_table_name)
|
||||
const Context &,
|
||||
const String &,
|
||||
IDatabase &,
|
||||
const String &)
|
||||
{
|
||||
throw Exception("DatabaseDictionary: renameTable() is not supported", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
void DatabaseDictionary::alterTable(
|
||||
const Context & context,
|
||||
const String & name,
|
||||
const NamesAndTypesList & columns,
|
||||
const NamesAndTypesList & materialized_columns,
|
||||
const NamesAndTypesList & alias_columns,
|
||||
const ColumnDefaults & column_defaults,
|
||||
const ASTModifier & engine_modifier)
|
||||
const Context &,
|
||||
const String &,
|
||||
const NamesAndTypesList &,
|
||||
const NamesAndTypesList &,
|
||||
const NamesAndTypesList &,
|
||||
const ColumnDefaults &,
|
||||
const ASTModifier &)
|
||||
{
|
||||
throw Exception("DatabaseDictionary: alterTable() is not supported", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
time_t DatabaseDictionary::getTableMetadataModificationTime(
|
||||
const Context & context,
|
||||
const String & table_name)
|
||||
const Context &,
|
||||
const String &)
|
||||
{
|
||||
return static_cast<time_t>(0);
|
||||
}
|
||||
|
||||
ASTPtr DatabaseDictionary::getCreateQuery(
|
||||
const Context & context,
|
||||
const String & table_name) const
|
||||
const Context &,
|
||||
const String &) const
|
||||
{
|
||||
throw Exception("DatabaseDictionary: getCreateQuery() is not supported", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
@ -14,9 +14,9 @@ namespace ErrorCodes
|
||||
}
|
||||
|
||||
void DatabaseMemory::loadTables(
|
||||
Context & context,
|
||||
ThreadPool * thread_pool,
|
||||
bool has_force_restore_data_flag)
|
||||
Context & /*context*/,
|
||||
ThreadPool * /*thread_pool*/,
|
||||
bool /*has_force_restore_data_flag*/)
|
||||
{
|
||||
log = &Logger::get("DatabaseMemory(" + name + ")");
|
||||
|
||||
@ -24,7 +24,7 @@ void DatabaseMemory::loadTables(
|
||||
}
|
||||
|
||||
bool DatabaseMemory::isTableExist(
|
||||
const Context & context,
|
||||
const Context & /*context*/,
|
||||
const String & table_name) const
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(mutex);
|
||||
@ -32,7 +32,7 @@ bool DatabaseMemory::isTableExist(
|
||||
}
|
||||
|
||||
StoragePtr DatabaseMemory::tryGetTable(
|
||||
const Context & context,
|
||||
const Context & /*context*/,
|
||||
const String & table_name)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(mutex);
|
||||
@ -42,13 +42,13 @@ StoragePtr DatabaseMemory::tryGetTable(
|
||||
return it->second;
|
||||
}
|
||||
|
||||
DatabaseIteratorPtr DatabaseMemory::getIterator(const Context & context)
|
||||
DatabaseIteratorPtr DatabaseMemory::getIterator(const Context & /*context*/)
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(mutex);
|
||||
return std::make_unique<DatabaseSnaphotIterator>(tables);
|
||||
}
|
||||
|
||||
bool DatabaseMemory::empty(const Context & context) const
|
||||
bool DatabaseMemory::empty(const Context & /*context*/) const
|
||||
{
|
||||
std::lock_guard<std::mutex> lock(mutex);
|
||||
return tables.empty();
|
||||
@ -77,55 +77,54 @@ void DatabaseMemory::attachTable(const String & table_name, const StoragePtr & t
|
||||
}
|
||||
|
||||
void DatabaseMemory::createTable(
|
||||
const Context & context,
|
||||
const Context & /*context*/,
|
||||
const String & table_name,
|
||||
const StoragePtr & table,
|
||||
const ASTPtr & query)
|
||||
const ASTPtr & /*query*/)
|
||||
{
|
||||
attachTable(table_name, table);
|
||||
}
|
||||
|
||||
void DatabaseMemory::removeTable(
|
||||
const Context & context,
|
||||
const Context & /*context*/,
|
||||
const String & table_name)
|
||||
{
|
||||
detachTable(table_name);
|
||||
}
|
||||
|
||||
void DatabaseMemory::renameTable(
|
||||
const Context & context,
|
||||
const String & table_name,
|
||||
IDatabase & to_database,
|
||||
const String & to_table_name)
|
||||
const Context &,
|
||||
const String &,
|
||||
IDatabase &,
|
||||
const String &)
|
||||
{
|
||||
throw Exception("DatabaseMemory: renameTable() is not supported", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
void DatabaseMemory::alterTable(
|
||||
const Context & context,
|
||||
const String & name,
|
||||
const NamesAndTypesList & columns,
|
||||
const NamesAndTypesList & materialized_columns,
|
||||
const NamesAndTypesList & alias_columns,
|
||||
const ColumnDefaults & column_defaults,
|
||||
const ASTModifier & engine_modifier)
|
||||
const Context &,
|
||||
const String &,
|
||||
const NamesAndTypesList &,
|
||||
const NamesAndTypesList &,
|
||||
const NamesAndTypesList &,
|
||||
const ColumnDefaults &,
|
||||
const ASTModifier &)
|
||||
{
|
||||
throw Exception("DatabaseMemory: alterTable() is not supported", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
time_t DatabaseMemory::getTableMetadataModificationTime(
|
||||
const Context & context,
|
||||
const String & table_name)
|
||||
const Context &,
|
||||
const String &)
|
||||
{
|
||||
return static_cast<time_t>(0);
|
||||
}
|
||||
|
||||
ASTPtr DatabaseMemory::getCreateQuery(
|
||||
const Context & context,
|
||||
const String & table_name) const
|
||||
const Context &,
|
||||
const String &) const
|
||||
{
|
||||
throw Exception("DatabaseMemory: getCreateQuery() is not supported", ErrorCodes::NOT_IMPLEMENTED);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void DatabaseMemory::shutdown()
|
||||
|
@ -93,7 +93,7 @@ void CacheDictionary::toParent(const PaddedPODArray<Key> & ids, PaddedPODArray<K
|
||||
|
||||
/// Allow to use single value in same way as array.
|
||||
static inline CacheDictionary::Key getAt(const PaddedPODArray<CacheDictionary::Key> & arr, const size_t idx) { return arr[idx]; }
|
||||
static inline CacheDictionary::Key getAt(const CacheDictionary::Key & value, const size_t idx) { return value; }
|
||||
static inline CacheDictionary::Key getAt(const CacheDictionary::Key & value, const size_t) { return value; }
|
||||
|
||||
|
||||
template <typename AncestorType>
|
||||
@ -459,7 +459,7 @@ void CacheDictionary::createAttributes()
|
||||
|
||||
CacheDictionary::Attribute CacheDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value)
|
||||
{
|
||||
Attribute attr{type};
|
||||
Attribute attr{type, {}, {}};
|
||||
|
||||
switch (type)
|
||||
{
|
||||
@ -628,7 +628,7 @@ void CacheDictionary::getItemsNumberImpl(
|
||||
for (const auto row : outdated_ids[id])
|
||||
out[row] = static_cast<OutputType>(attribute_value);
|
||||
},
|
||||
[&] (const auto id, const auto cell_idx)
|
||||
[&] (const auto id, const auto)
|
||||
{
|
||||
for (const auto row : outdated_ids[id])
|
||||
out[row] = get_default(row);
|
||||
@ -750,7 +750,7 @@ void CacheDictionary::getItemsString(
|
||||
map[id] = String{attribute_value};
|
||||
total_length += (attribute_value.size + 1) * outdated_ids[id].size();
|
||||
},
|
||||
[&] (const auto id, const auto cell_idx)
|
||||
[&] (const auto id, const auto)
|
||||
{
|
||||
for (const auto row : outdated_ids[id])
|
||||
total_length += get_default(row).size + 1;
|
||||
|
@ -5,7 +5,7 @@ namespace DB
|
||||
|
||||
ComplexKeyCacheDictionary::Attribute ComplexKeyCacheDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value)
|
||||
{
|
||||
Attribute attr{type};
|
||||
Attribute attr{type, {}, {}};
|
||||
|
||||
switch (type)
|
||||
{
|
||||
|
@ -89,7 +89,7 @@ void ComplexKeyHashedDictionary::getString(
|
||||
const auto & null_value = StringRef{std::get<String>(attribute.null_values)};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, key_columns,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t) { return null_value; });
|
||||
}
|
||||
|
||||
@ -136,7 +136,7 @@ void ComplexKeyHashedDictionary::getString(
|
||||
ErrorCodes::TYPE_MISMATCH};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, key_columns,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t row) { return def->getDataAt(row); });
|
||||
}
|
||||
|
||||
@ -183,7 +183,7 @@ void ComplexKeyHashedDictionary::getString(
|
||||
ErrorCodes::TYPE_MISMATCH};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, key_columns,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t) { return StringRef{def}; });
|
||||
}
|
||||
|
||||
@ -333,7 +333,7 @@ void ComplexKeyHashedDictionary::createAttributeImpl(Attribute & attribute, cons
|
||||
|
||||
ComplexKeyHashedDictionary::Attribute ComplexKeyHashedDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value)
|
||||
{
|
||||
Attribute attr{type};
|
||||
Attribute attr{type, {}, {}, {}};
|
||||
|
||||
switch (type)
|
||||
{
|
||||
|
@ -201,7 +201,7 @@ template <typename DictionaryType, typename Key>
|
||||
template <typename Type, typename Container>
|
||||
void DictionaryBlockInputStream<DictionaryType, Key>::callGetter(
|
||||
DictionaryGetter<Type> getter, const PaddedPODArray<Key> & ids,
|
||||
const Columns & keys, const DataTypes & data_types,
|
||||
const Columns & /*keys*/, const DataTypes & /*data_types*/,
|
||||
Container & container, const DictionaryAttribute & attribute, const DictionaryType & dictionary) const
|
||||
{
|
||||
(dictionary.*getter)(attribute.name, ids, container);
|
||||
@ -211,7 +211,7 @@ template <typename DictionaryType, typename Key>
|
||||
template <typename Container>
|
||||
void DictionaryBlockInputStream<DictionaryType, Key>::callGetter(
|
||||
DictionaryStringGetter getter, const PaddedPODArray<Key> & ids,
|
||||
const Columns & keys, const DataTypes & data_types,
|
||||
const Columns & /*keys*/, const DataTypes & /*data_types*/,
|
||||
Container & container, const DictionaryAttribute & attribute, const DictionaryType & dictionary) const
|
||||
{
|
||||
(dictionary.*getter)(attribute.name, ids, container);
|
||||
@ -220,7 +220,7 @@ void DictionaryBlockInputStream<DictionaryType, Key>::callGetter(
|
||||
template <typename DictionaryType, typename Key>
|
||||
template <typename Type, typename Container>
|
||||
void DictionaryBlockInputStream<DictionaryType, Key>::callGetter(
|
||||
GetterByKey<Type> getter, const PaddedPODArray<Key> & ids,
|
||||
GetterByKey<Type> getter, const PaddedPODArray<Key> & /*ids*/,
|
||||
const Columns & keys, const DataTypes & data_types,
|
||||
Container & container, const DictionaryAttribute & attribute, const DictionaryType & dictionary) const
|
||||
{
|
||||
@ -230,7 +230,7 @@ void DictionaryBlockInputStream<DictionaryType, Key>::callGetter(
|
||||
template <typename DictionaryType, typename Key>
|
||||
template <typename Container>
|
||||
void DictionaryBlockInputStream<DictionaryType, Key>::callGetter(
|
||||
StringGetterByKey getter, const PaddedPODArray<Key> & ids,
|
||||
StringGetterByKey getter, const PaddedPODArray<Key> & /*ids*/,
|
||||
const Columns & keys, const DataTypes & data_types,
|
||||
Container & container, const DictionaryAttribute & attribute, const DictionaryType & dictionary) const
|
||||
{
|
||||
|
@ -20,7 +20,10 @@
|
||||
#include <Dictionaries/MongoDBDictionarySource.h>
|
||||
#endif
|
||||
#if Poco_DataODBC_FOUND
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#include <Poco/Data/ODBC/Connector.h>
|
||||
#pragma GCC diagnostic pop
|
||||
#include <Dictionaries/ODBCDictionarySource.h>
|
||||
#endif
|
||||
#if USE_MYSQL
|
||||
|
@ -10,7 +10,7 @@
|
||||
static constexpr auto config_key = "mysql_metrica";
|
||||
|
||||
|
||||
void TechDataHierarchy::reload(const Poco::Util::AbstractConfiguration & config)
|
||||
void TechDataHierarchy::reload()
|
||||
{
|
||||
Logger * log = &Logger::get("TechDataHierarchy");
|
||||
LOG_DEBUG(log, "Loading tech data hierarchy.");
|
||||
|
@ -19,7 +19,7 @@ private:
|
||||
UInt8 se_parent[256] {};
|
||||
|
||||
public:
|
||||
void reload(const Poco::Util::AbstractConfiguration & config);
|
||||
void reload();
|
||||
|
||||
/// Has corresponding section in configuration file.
|
||||
static bool isConfigured(const Poco::Util::AbstractConfiguration & config);
|
||||
|
@ -21,13 +21,13 @@ public:
|
||||
|
||||
BlockInputStreamPtr loadAll() override;
|
||||
|
||||
BlockInputStreamPtr loadIds(const std::vector<UInt64> & ids) override
|
||||
BlockInputStreamPtr loadIds(const std::vector<UInt64> & /*ids*/) override
|
||||
{
|
||||
throw Exception{"Method loadIds is unsupported for FileDictionarySource", ErrorCodes::NOT_IMPLEMENTED};
|
||||
}
|
||||
|
||||
BlockInputStreamPtr loadKeys(
|
||||
const Columns & key_columns, const std::vector<size_t> & requested_rows) override
|
||||
const Columns & /*key_columns*/, const std::vector<size_t> & /*requested_rows*/) override
|
||||
{
|
||||
throw Exception{"Method loadKeys is unsupported for FileDictionarySource", ErrorCodes::NOT_IMPLEMENTED};
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ void FlatDictionary::toParent(const PaddedPODArray<Key> & ids, PaddedPODArray<Ke
|
||||
|
||||
/// Allow to use single value in same way as array.
|
||||
static inline FlatDictionary::Key getAt(const PaddedPODArray<FlatDictionary::Key> & arr, const size_t idx) { return arr[idx]; }
|
||||
static inline FlatDictionary::Key getAt(const FlatDictionary::Key & value, const size_t idx) { return value; }
|
||||
static inline FlatDictionary::Key getAt(const FlatDictionary::Key & value, const size_t) { return value; }
|
||||
|
||||
template <typename ChildType, typename AncestorType>
|
||||
void FlatDictionary::isInImpl(
|
||||
@ -151,7 +151,7 @@ void FlatDictionary::getString(const std::string & attribute_name, const PaddedP
|
||||
const auto & null_value = std::get<StringRef>(attribute.null_values);
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, ids,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t) { return null_value; });
|
||||
}
|
||||
|
||||
@ -194,7 +194,7 @@ void FlatDictionary::getString(
|
||||
ErrorCodes::TYPE_MISMATCH};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, ids,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t row) { return def->getDataAt(row); });
|
||||
}
|
||||
|
||||
@ -237,7 +237,7 @@ void FlatDictionary::getString(
|
||||
ErrorCodes::TYPE_MISMATCH};
|
||||
|
||||
FlatDictionary::getItemsImpl<StringRef, StringRef>(attribute, ids,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t) { return StringRef{def}; });
|
||||
}
|
||||
|
||||
@ -381,7 +381,7 @@ void FlatDictionary::createAttributeImpl<String>(Attribute & attribute, const Fi
|
||||
|
||||
FlatDictionary::Attribute FlatDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value)
|
||||
{
|
||||
Attribute attr{type};
|
||||
Attribute attr{type, {}, {}, {}};
|
||||
|
||||
switch (type)
|
||||
{
|
||||
@ -519,7 +519,7 @@ const FlatDictionary::Attribute & FlatDictionary::getAttribute(const std::string
|
||||
|
||||
|
||||
template <typename T>
|
||||
void FlatDictionary::has(const Attribute & attribute, const PaddedPODArray<Key> & ids, PaddedPODArray<UInt8> & out) const
|
||||
void FlatDictionary::has(const Attribute &, const PaddedPODArray<Key> & ids, PaddedPODArray<UInt8> & out) const
|
||||
{
|
||||
const auto ids_count = ext::size(ids);
|
||||
|
||||
|
@ -52,7 +52,7 @@ void HashedDictionary::toParent(const PaddedPODArray<Key> & ids, PaddedPODArray<
|
||||
|
||||
/// Allow to use single value in same way as array.
|
||||
static inline HashedDictionary::Key getAt(const PaddedPODArray<HashedDictionary::Key> & arr, const size_t idx) { return arr[idx]; }
|
||||
static inline HashedDictionary::Key getAt(const HashedDictionary::Key & value, const size_t idx) { return value; }
|
||||
static inline HashedDictionary::Key getAt(const HashedDictionary::Key & value, const size_t) { return value; }
|
||||
|
||||
template <typename ChildType, typename AncestorType>
|
||||
void HashedDictionary::isInImpl(
|
||||
@ -148,7 +148,7 @@ void HashedDictionary::getString(const std::string & attribute_name, const Padde
|
||||
const auto & null_value = StringRef{std::get<String>(attribute.null_values)};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, ids,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t) { return null_value; });
|
||||
}
|
||||
|
||||
@ -191,7 +191,7 @@ void HashedDictionary::getString(
|
||||
ErrorCodes::TYPE_MISMATCH};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, ids,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t row) { return def->getDataAt(row); });
|
||||
}
|
||||
|
||||
@ -233,7 +233,7 @@ void HashedDictionary::getString(
|
||||
ErrorCodes::TYPE_MISMATCH};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, ids,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t) { return StringRef{def}; });
|
||||
}
|
||||
|
||||
@ -356,7 +356,7 @@ void HashedDictionary::createAttributeImpl(Attribute & attribute, const Field &
|
||||
|
||||
HashedDictionary::Attribute HashedDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value)
|
||||
{
|
||||
Attribute attr{type};
|
||||
Attribute attr{type, {}, {}, {}};
|
||||
|
||||
switch (type)
|
||||
{
|
||||
|
@ -81,17 +81,17 @@ struct IDictionary : IDictionaryBase
|
||||
|
||||
/// Methods for hierarchy.
|
||||
|
||||
virtual void isInVectorVector(const PaddedPODArray<Key> & child_ids, const PaddedPODArray<Key> & ancestor_ids, PaddedPODArray<UInt8> & out) const
|
||||
virtual void isInVectorVector(const PaddedPODArray<Key> & /*child_ids*/, const PaddedPODArray<Key> & /*ancestor_ids*/, PaddedPODArray<UInt8> & /*out*/) const
|
||||
{
|
||||
throw Exception("Hierarchy is not supported for " + getName() + " dictionary.", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
virtual void isInVectorConstant(const PaddedPODArray<Key> & child_ids, const Key ancestor_id, PaddedPODArray<UInt8> & out) const
|
||||
virtual void isInVectorConstant(const PaddedPODArray<Key> & /*child_ids*/, const Key /*ancestor_id*/, PaddedPODArray<UInt8> & /*out*/) const
|
||||
{
|
||||
throw Exception("Hierarchy is not supported for " + getName() + " dictionary.", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
||||
virtual void isInConstantVector(const Key child_id, const PaddedPODArray<Key> & ancestor_ids, PaddedPODArray<UInt8> & out) const
|
||||
virtual void isInConstantVector(const Key /*child_id*/, const PaddedPODArray<Key> & /*ancestor_ids*/, PaddedPODArray<UInt8> & /*out*/) const
|
||||
{
|
||||
throw Exception("Hierarchy is not supported for " + getName() + " dictionary.", ErrorCodes::NOT_IMPLEMENTED);
|
||||
}
|
||||
|
@ -5,9 +5,12 @@
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
|
||||
#include <Poco/MongoDB/Connection.h>
|
||||
#include <Poco/MongoDB/Cursor.h>
|
||||
#include <Poco/MongoDB/Element.h>
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#include <Poco/MongoDB/Connection.h>
|
||||
#include <Poco/MongoDB/Cursor.h>
|
||||
#include <Poco/MongoDB/Element.h>
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#include <Dictionaries/DictionaryStructure.h>
|
||||
#include <Dictionaries/MongoDBBlockInputStream.h>
|
||||
|
@ -2,10 +2,15 @@
|
||||
#if Poco_MongoDB_FOUND
|
||||
#include <Poco/Util/AbstractConfiguration.h>
|
||||
#include <Poco/MD5Engine.h>
|
||||
#include <Poco/MongoDB/Connection.h>
|
||||
#include <Poco/MongoDB/Database.h>
|
||||
#include <Poco/MongoDB/Cursor.h>
|
||||
#include <Poco/MongoDB/Array.h>
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#include <Poco/MongoDB/Connection.h>
|
||||
#include <Poco/MongoDB/Database.h>
|
||||
#include <Poco/MongoDB/Cursor.h>
|
||||
#include <Poco/MongoDB/Array.h>
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#include <Poco/Version.h>
|
||||
|
||||
// only after poco
|
||||
|
@ -4,9 +4,12 @@
|
||||
#include <DataStreams/IProfilingBlockInputStream.h>
|
||||
#include <Dictionaries/ExternalResultDescription.h>
|
||||
|
||||
#include <Poco/Data/Session.h>
|
||||
#include <Poco/Data/Statement.h>
|
||||
#include <Poco/Data/RecordSet.h>
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#include <Poco/Data/Session.h>
|
||||
#include <Poco/Data/Statement.h>
|
||||
#include <Poco/Data/RecordSet.h>
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#include <string>
|
||||
|
||||
|
@ -1,6 +1,11 @@
|
||||
#include <DataTypes/DataTypeString.h>
|
||||
#include <Columns/ColumnString.h>
|
||||
#include <Poco/Data/SessionPool.h>
|
||||
|
||||
#pragma GCC diagnostic push
|
||||
#pragma GCC diagnostic ignored "-Wunused-parameter"
|
||||
#include <Poco/Data/SessionPool.h>
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
#include <Poco/Util/AbstractConfiguration.h>
|
||||
#include <Dictionaries/ODBCDictionarySource.h>
|
||||
#include <Dictionaries/ODBCBlockInputStream.h>
|
||||
|
@ -188,7 +188,7 @@ void RangeHashedDictionary::createAttributeImpl(Attribute & attribute, const Fie
|
||||
|
||||
RangeHashedDictionary::Attribute RangeHashedDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value)
|
||||
{
|
||||
Attribute attr{type};
|
||||
Attribute attr{type, {}, {}, {}};
|
||||
|
||||
switch (type)
|
||||
{
|
||||
|
@ -106,7 +106,7 @@ void TrieDictionary::getString(
|
||||
const auto & null_value = StringRef{std::get<String>(attribute.null_values)};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, key_columns,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t) { return null_value; });
|
||||
}
|
||||
|
||||
@ -153,7 +153,7 @@ void TrieDictionary::getString(
|
||||
ErrorCodes::TYPE_MISMATCH};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, key_columns,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t row) { return def->getDataAt(row); });
|
||||
}
|
||||
|
||||
@ -200,7 +200,7 @@ void TrieDictionary::getString(
|
||||
ErrorCodes::TYPE_MISMATCH};
|
||||
|
||||
getItemsImpl<StringRef, StringRef>(attribute, key_columns,
|
||||
[&] (const size_t row, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t, const StringRef value) { out->insertData(value.data, value.size); },
|
||||
[&] (const size_t) { return StringRef{def}; });
|
||||
}
|
||||
|
||||
@ -360,7 +360,7 @@ void TrieDictionary::createAttributeImpl(Attribute & attribute, const Field & nu
|
||||
|
||||
TrieDictionary::Attribute TrieDictionary::createAttributeWithType(const AttributeUnderlyingType type, const Field & null_value)
|
||||
{
|
||||
Attribute attr{type};
|
||||
Attribute attr{type, {}, {}, {}};
|
||||
|
||||
switch (type)
|
||||
{
|
||||
@ -534,7 +534,7 @@ const TrieDictionary::Attribute & TrieDictionary::getAttribute(const std::string
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void TrieDictionary::has(const Attribute & attribute, const Columns & key_columns, PaddedPODArray<UInt8> & out) const
|
||||
void TrieDictionary::has(const Attribute &, const Columns & key_columns, PaddedPODArray<UInt8> & out) const
|
||||
{
|
||||
const auto first_column = key_columns.front();
|
||||
const auto rows = first_column->size();
|
||||
|
@ -65,7 +65,7 @@ const Type * checkAndGetColumnConstData(const IColumn * column)
|
||||
}
|
||||
|
||||
template <typename Type>
|
||||
const bool checkColumnConst(const IColumn * column)
|
||||
bool checkColumnConst(const IColumn * column)
|
||||
{
|
||||
return checkAndGetColumnConst<Type>(column);
|
||||
}
|
||||
|
@ -1141,7 +1141,7 @@ void NO_INLINE Aggregator::convertToBlockImplFinal(
|
||||
*final_aggregate_columns[i]);
|
||||
}
|
||||
|
||||
destroyImpl(method, data); /// NOTE You can do better.
|
||||
destroyImpl<Method>(data); /// NOTE You can do better.
|
||||
}
|
||||
|
||||
template <typename Method, typename Table>
|
||||
@ -2430,9 +2430,7 @@ std::vector<Block> Aggregator::convertBlockToTwoLevel(const Block & block)
|
||||
|
||||
|
||||
template <typename Method, typename Table>
|
||||
void NO_INLINE Aggregator::destroyImpl(
|
||||
Method & method,
|
||||
Table & table) const
|
||||
void NO_INLINE Aggregator::destroyImpl(Table & table) const
|
||||
{
|
||||
for (auto elem : table)
|
||||
{
|
||||
@ -2482,7 +2480,7 @@ void Aggregator::destroyAllAggregateStates(AggregatedDataVariants & result)
|
||||
|
||||
#define M(NAME, IS_TWO_LEVEL) \
|
||||
else if (result.type == AggregatedDataVariants::Type::NAME) \
|
||||
destroyImpl(*result.NAME, result.NAME->data);
|
||||
destroyImpl<decltype(result.NAME)::element_type>(result.NAME->data);
|
||||
|
||||
if (false) {}
|
||||
APPLY_FOR_AGGREGATED_VARIANTS(M)
|
||||
|
@ -1394,9 +1394,7 @@ protected:
|
||||
std::vector<Block> & destinations) const;
|
||||
|
||||
template <typename Method, typename Table>
|
||||
void destroyImpl(
|
||||
Method & method,
|
||||
Table & table) const;
|
||||
void destroyImpl(Table & table) const;
|
||||
|
||||
void destroyWithoutKey(
|
||||
AggregatedDataVariants & result) const;
|
||||
|
@ -364,7 +364,7 @@ Cluster::Cluster(const Settings & settings, const std::vector<std::vector<String
|
||||
std::move(replicas), settings.load_balancing, settings.connections_with_failover_max_tries);
|
||||
|
||||
slot_to_shard.insert(std::end(slot_to_shard), default_weight, shards_info.size());
|
||||
shards_info.push_back({{}, current_shard_num, default_weight, {}, shard_pool});
|
||||
shards_info.push_back({{}, current_shard_num, default_weight, {}, shard_pool, false});
|
||||
++current_shard_num;
|
||||
}
|
||||
|
||||
|
@ -838,7 +838,7 @@ StoragePtr Context::tryRemoveExternalTable(const String & table_name)
|
||||
return {};
|
||||
}
|
||||
|
||||
DDLGuard::DDLGuard(Map & map_, std::mutex & mutex_, std::unique_lock<std::mutex> && lock, const String & elem, const String & message)
|
||||
DDLGuard::DDLGuard(Map & map_, std::mutex & mutex_, std::unique_lock<std::mutex> && /*lock*/, const String & elem, const String & message)
|
||||
: map(map_), mutex(mutex_)
|
||||
{
|
||||
bool inserted;
|
||||
|
@ -84,7 +84,7 @@ bool EmbeddedDictionaries::reloadImpl(const bool throw_on_error, const bool forc
|
||||
return {};
|
||||
|
||||
auto dictionary = std::make_unique<TechDataHierarchy>();
|
||||
dictionary->reload(config);
|
||||
dictionary->reload();
|
||||
return dictionary;
|
||||
};
|
||||
|
||||
|
@ -150,19 +150,9 @@ public:
|
||||
unsigned max_connections_ = MYSQLXX_POOL_DEFAULT_MAX_CONNECTIONS,
|
||||
const char * parent_config_name_ = nullptr);
|
||||
|
||||
/**
|
||||
* @param db_ Database name
|
||||
* @param server_ Hostname
|
||||
* @param user_ User name
|
||||
* @param password_ Password
|
||||
* @param socket_ Socket
|
||||
* @param port_ Port
|
||||
* @param default_connections_ Number of default connections
|
||||
* @param max_connections_ Maximum number of connections
|
||||
*
|
||||
* Like with mysqlxx::Connection, either port either socket should be specified.
|
||||
* If server is localhost and socket is not empty, than socket is used. Otherwise, server and port is used.
|
||||
*/
|
||||
/** Like with mysqlxx::Connection, either port either socket should be specified.
|
||||
* If server is localhost and socket is not empty, than socket is used. Otherwise, server and port is used.
|
||||
*/
|
||||
Pool(const std::string & db_,
|
||||
const std::string & server_,
|
||||
const std::string & user_ = "",
|
||||
@ -174,7 +164,7 @@ public:
|
||||
unsigned default_connections_ = MYSQLXX_POOL_DEFAULT_START_CONNECTIONS,
|
||||
unsigned max_connections_ = MYSQLXX_POOL_DEFAULT_MAX_CONNECTIONS)
|
||||
: default_connections(default_connections_), max_connections(max_connections_),
|
||||
db(db_), server(server_), user(user_), password(password_), port(port_),
|
||||
db(db_), server(server_), user(user_), password(password_), port(port_), socket(socket_),
|
||||
connect_timeout(connect_timeout_), rw_timeout(rw_timeout_) {}
|
||||
|
||||
Pool(const Pool & other)
|
||||
|
Loading…
Reference in New Issue
Block a user