Better [#CLICKHOUSE-2].

This commit is contained in:
Alexey Milovidov 2017-12-01 23:21:35 +03:00
parent bdd25b15bd
commit 431da20d99
44 changed files with 196 additions and 197 deletions

View File

@ -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;
}

View File

@ -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")

View File

@ -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)
{

View File

@ -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);
};
}

View File

@ -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();

View File

@ -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;

View File

@ -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();

View File

@ -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
{

View File

@ -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);

View File

@ -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);

View File

@ -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();

View File

@ -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); });
}

View File

@ -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);
}

View File

@ -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();

View File

@ -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); });
}

View File

@ -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);

View File

@ -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>();
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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()

View File

@ -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;

View File

@ -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)
{

View File

@ -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)
{

View File

@ -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
{

View File

@ -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

View File

@ -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.");

View File

@ -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);

View File

@ -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};
}

View File

@ -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);

View File

@ -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)
{

View File

@ -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);
}

View File

@ -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>

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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)
{

View File

@ -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();

View File

@ -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);
}

View File

@ -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)

View File

@ -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;

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
};

View File

@ -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)