mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
Merge branch 'master' of github.com:yandex/ClickHouse
This commit is contained in:
commit
a5a85c97a3
@ -1,6 +1,7 @@
|
|||||||
#include <DB/Dictionaries/DictionaryStructure.h>
|
#include <DB/Dictionaries/DictionaryStructure.h>
|
||||||
#include <DB/Common/StringUtils.h>
|
#include <DB/Common/StringUtils.h>
|
||||||
|
|
||||||
|
#include <unordered_set>
|
||||||
|
|
||||||
namespace DB
|
namespace DB
|
||||||
{
|
{
|
||||||
@ -231,6 +232,20 @@ std::size_t DictionaryStructure::getKeySize() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void CheckAttributeKeys(const Poco::Util::AbstractConfiguration::Keys & keys)
|
||||||
|
{
|
||||||
|
static const std::unordered_set<std::string> valid_keys =
|
||||||
|
{ "name", "type", "expression", "null_value", "hierarchical", "injective" };
|
||||||
|
|
||||||
|
for (const auto & key : keys)
|
||||||
|
{
|
||||||
|
if (valid_keys.find(key) == valid_keys.end())
|
||||||
|
throw Exception{
|
||||||
|
"Unknown key '" + key + "' inside attribute section",
|
||||||
|
ErrorCodes::BAD_ARGUMENTS};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<DictionaryAttribute> DictionaryStructure::getAttributes(
|
std::vector<DictionaryAttribute> DictionaryStructure::getAttributes(
|
||||||
const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix,
|
const Poco::Util::AbstractConfiguration & config, const std::string & config_prefix,
|
||||||
const bool hierarchy_allowed, const bool allow_null_values)
|
const bool hierarchy_allowed, const bool allow_null_values)
|
||||||
@ -247,6 +262,10 @@ std::vector<DictionaryAttribute> DictionaryStructure::getAttributes(
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
const auto prefix = config_prefix + '.' + key + '.';
|
const auto prefix = config_prefix + '.' + key + '.';
|
||||||
|
Poco::Util::AbstractConfiguration::Keys attribute_keys;
|
||||||
|
config.keys(config_prefix + '.' + key, attribute_keys);
|
||||||
|
|
||||||
|
CheckAttributeKeys(attribute_keys);
|
||||||
|
|
||||||
const auto name = config.getString(prefix + "name");
|
const auto name = config.getString(prefix + "name");
|
||||||
const auto type_string = config.getString(prefix + "type");
|
const auto type_string = config.getString(prefix + "type");
|
||||||
|
@ -40,10 +40,12 @@ BlockInputStreams StorageSystemBuildOptions::read(
|
|||||||
ColumnWithTypeAndName col_name{std::make_shared<ColumnString>(), std::make_shared<DataTypeString>(), "name"};
|
ColumnWithTypeAndName col_name{std::make_shared<ColumnString>(), std::make_shared<DataTypeString>(), "name"};
|
||||||
ColumnWithTypeAndName col_value{std::make_shared<ColumnString>(), std::make_shared<DataTypeString>(), "value"};
|
ColumnWithTypeAndName col_value{std::make_shared<ColumnString>(), std::make_shared<DataTypeString>(), "value"};
|
||||||
|
|
||||||
for (const auto & option : auto_config_build)
|
for (auto it = auto_config_build.begin(); it != auto_config_build.end(); ++it) {
|
||||||
{
|
col_name.column->insert(String(*it));
|
||||||
col_name.column->insert(String(option.first));
|
++it;
|
||||||
col_value.column->insert(String(option.second));
|
if (it == auto_config_build.end())
|
||||||
|
break;
|
||||||
|
col_value.column->insert(String(*it));
|
||||||
}
|
}
|
||||||
|
|
||||||
Block block{
|
Block block{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
set (CONFIG_VERSION ${CMAKE_CURRENT_BINARY_DIR}/include/common/config_version.h)
|
set (CONFIG_VERSION ${CMAKE_CURRENT_BINARY_DIR}/include/common/config_version.h)
|
||||||
set (CONFIG_COMMON ${CMAKE_CURRENT_BINARY_DIR}/include/common/config_common.h)
|
set (CONFIG_COMMON ${CMAKE_CURRENT_BINARY_DIR}/include/common/config_common.h)
|
||||||
set (CONFIG_BUILD ${CMAKE_CURRENT_BINARY_DIR}/include/common/config_build.h)
|
set (CONFIG_BUILD ${CMAKE_CURRENT_BINARY_DIR}/src/config_build.cpp)
|
||||||
|
|
||||||
include_directories (include)
|
include_directories (include)
|
||||||
include_directories (BEFORE ${CMAKE_SOURCE_DIR}/contrib/libcctz/include)
|
include_directories (BEFORE ${CMAKE_SOURCE_DIR}/contrib/libcctz/include)
|
||||||
@ -23,8 +23,8 @@ configure_file (${CMAKE_CURRENT_SOURCE_DIR}/include/common/config_version.h.in $
|
|||||||
get_property (BUILD_COMPILE_DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY COMPILE_DEFINITIONS)
|
get_property (BUILD_COMPILE_DEFINITIONS DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY COMPILE_DEFINITIONS)
|
||||||
get_property (BUILD_INCLUDE_DIRECTORIES DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
|
get_property (BUILD_INCLUDE_DIRECTORIES DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
|
||||||
|
|
||||||
string (TIMESTAMP BUILD_DATE UTC)
|
string (TIMESTAMP BUILD_DATE "%Y-%m-%d" UTC)
|
||||||
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/include/common/config_build.h.in ${CONFIG_BUILD})
|
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/src/config_build.cpp.in ${CONFIG_BUILD})
|
||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
add_library (apple_rt
|
add_library (apple_rt
|
||||||
@ -55,6 +55,7 @@ add_library (common
|
|||||||
include/common/singleton.h
|
include/common/singleton.h
|
||||||
include/common/strong_typedef.h
|
include/common/strong_typedef.h
|
||||||
include/common/JSON.h
|
include/common/JSON.h
|
||||||
|
include/common/config_build.h
|
||||||
|
|
||||||
include/ext/bit_cast.hpp
|
include/ext/bit_cast.hpp
|
||||||
include/ext/collection_cast.hpp
|
include/ext/collection_cast.hpp
|
||||||
@ -69,6 +70,7 @@ add_library (common
|
|||||||
|
|
||||||
${CONFIG_VERSION}
|
${CONFIG_VERSION}
|
||||||
${CONFIG_COMMON}
|
${CONFIG_COMMON}
|
||||||
|
${CONFIG_BUILD}
|
||||||
)
|
)
|
||||||
|
|
||||||
# When testing for memory leaks, dont link tcmalloc or jemalloc.
|
# When testing for memory leaks, dont link tcmalloc or jemalloc.
|
||||||
|
4
libs/libcommon/include/common/config_build.h
Normal file
4
libs/libcommon/include/common/config_build.h
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
#pragma once
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
extern const std::vector<const char *> auto_config_build;
|
@ -1,26 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
// .h autogenerated by cmake !
|
|
||||||
|
|
||||||
#include <utility>
|
|
||||||
#include <array>
|
|
||||||
|
|
||||||
const std::array<const std::pair<const char *, const char *>, 17> auto_config_build { {
|
|
||||||
{"VERSION_FULL", "@VERSION_FULL@"},
|
|
||||||
{"VERSION_DESCRIBE", "@VERSION_DESCRIBE@"},
|
|
||||||
{"BUILD_DATE", "@BUILD_DATE@"},
|
|
||||||
{"BUILD_TYPE", "@CMAKE_BUILD_TYPE@"},
|
|
||||||
{"SYSTEM", "@CMAKE_SYSTEM@"},
|
|
||||||
{"SYSTEM_PROCESSOR", "@CMAKE_SYSTEM_PROCESSOR@"},
|
|
||||||
{"LIBRARY_ARCHITECTURE", "@CMAKE_LIBRARY_ARCHITECTURE@"},
|
|
||||||
{"CMAKE_VERSION", "@CMAKE_VERSION@"},
|
|
||||||
{"C_COMPILER", "@CMAKE_C_COMPILER@"},
|
|
||||||
{"C_COMPILER_VERSION", "@CMAKE_C_COMPILER_VERSION@"},
|
|
||||||
{"CXX_COMPILER", "@CMAKE_CXX_COMPILER@"},
|
|
||||||
{"CXX_COMPILER_VERSION", "@CMAKE_CXX_COMPILER_VERSION@"},
|
|
||||||
{"C_FLAGS", "@FULL_C_FLAGS@"},
|
|
||||||
{"CXX_FLAGS", "@FULL_CXX_FLAGS@"},
|
|
||||||
{"LINK_FLAGS", "@CMAKE_EXE_LINKER_FLAGS@"},
|
|
||||||
{"BUILD_COMPILE_DEFINITIONS", "@BUILD_COMPILE_DEFINITIONS@"},
|
|
||||||
{"BUILD_INCLUDE_DIRECTORIES", "@BUILD_INCLUDE_DIRECTORIES@"},
|
|
||||||
} };
|
|
24
libs/libcommon/src/config_build.cpp.in
Normal file
24
libs/libcommon/src/config_build.cpp.in
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
// .cpp autogenerated by cmake !
|
||||||
|
|
||||||
|
#include <common/config_build.h>
|
||||||
|
|
||||||
|
const std::vector<const char *> auto_config_build {
|
||||||
|
"VERSION_FULL", "@VERSION_FULL@",
|
||||||
|
"VERSION_DESCRIBE", "@VERSION_DESCRIBE@",
|
||||||
|
"BUILD_DATE", "@BUILD_DATE@",
|
||||||
|
"BUILD_TYPE", "@CMAKE_BUILD_TYPE@",
|
||||||
|
"SYSTEM", "@CMAKE_SYSTEM@",
|
||||||
|
"SYSTEM_PROCESSOR", "@CMAKE_SYSTEM_PROCESSOR@",
|
||||||
|
"LIBRARY_ARCHITECTURE", "@CMAKE_LIBRARY_ARCHITECTURE@",
|
||||||
|
"CMAKE_VERSION", "@CMAKE_VERSION@",
|
||||||
|
"C_COMPILER", "@CMAKE_C_COMPILER@",
|
||||||
|
"C_COMPILER_VERSION", "@CMAKE_C_COMPILER_VERSION@",
|
||||||
|
"CXX_COMPILER", "@CMAKE_CXX_COMPILER@",
|
||||||
|
"CXX_COMPILER_VERSION", "@CMAKE_CXX_COMPILER_VERSION@",
|
||||||
|
"C_FLAGS", "@FULL_C_FLAGS@",
|
||||||
|
"CXX_FLAGS", "@FULL_CXX_FLAGS@",
|
||||||
|
"LINK_FLAGS", "@CMAKE_EXE_LINKER_FLAGS@",
|
||||||
|
"BUILD_COMPILE_DEFINITIONS", "@BUILD_COMPILE_DEFINITIONS@",
|
||||||
|
"BUILD_INCLUDE_DIRECTORIES", "@BUILD_INCLUDE_DIRECTORIES@",
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user