mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-25 00:52:02 +00:00
Merge branch 'master' of github.com:ClickHouse/ClickHouse
This commit is contained in:
commit
7f6e9c32b0
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -104,6 +104,10 @@
|
|||||||
[submodule "contrib/sparsehash-c11"]
|
[submodule "contrib/sparsehash-c11"]
|
||||||
path = contrib/sparsehash-c11
|
path = contrib/sparsehash-c11
|
||||||
url = https://github.com/sparsehash/sparsehash-c11.git
|
url = https://github.com/sparsehash/sparsehash-c11.git
|
||||||
|
[submodule "contrib/grpc"]
|
||||||
|
path = contrib/grpc
|
||||||
|
url = https://github.com/grpc/grpc.git
|
||||||
|
branch = v1.25.0
|
||||||
[submodule "contrib/aws"]
|
[submodule "contrib/aws"]
|
||||||
path = contrib/aws
|
path = contrib/aws
|
||||||
url = https://github.com/aws/aws-sdk-cpp.git
|
url = https://github.com/aws/aws-sdk-cpp.git
|
||||||
|
@ -229,6 +229,10 @@ endif ()
|
|||||||
# Using system libs can cause a lot of warnings in includes (on macro expansion).
|
# Using system libs can cause a lot of warnings in includes (on macro expansion).
|
||||||
if (UNBUNDLED OR NOT (OS_LINUX OR OS_DARWIN) OR ARCH_32)
|
if (UNBUNDLED OR NOT (OS_LINUX OR OS_DARWIN) OR ARCH_32)
|
||||||
option (NO_WERROR "Disable -Werror compiler option" ON)
|
option (NO_WERROR "Disable -Werror compiler option" ON)
|
||||||
|
|
||||||
|
if (NOT NO_WERROR)
|
||||||
|
add_warning(error)
|
||||||
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Make this extra-checks for correct library dependencies.
|
# Make this extra-checks for correct library dependencies.
|
||||||
@ -326,7 +330,6 @@ include (cmake/find/poco.cmake)
|
|||||||
include (cmake/find/lz4.cmake)
|
include (cmake/find/lz4.cmake)
|
||||||
include (cmake/find/xxhash.cmake)
|
include (cmake/find/xxhash.cmake)
|
||||||
include (cmake/find/sparsehash.cmake)
|
include (cmake/find/sparsehash.cmake)
|
||||||
include (cmake/find/rt.cmake)
|
|
||||||
include (cmake/find/execinfo.cmake)
|
include (cmake/find/execinfo.cmake)
|
||||||
include (cmake/find/re2.cmake)
|
include (cmake/find/re2.cmake)
|
||||||
include (cmake/find/libgsasl.cmake)
|
include (cmake/find/libgsasl.cmake)
|
||||||
@ -341,6 +344,7 @@ endif()
|
|||||||
include (cmake/find/libxml2.cmake)
|
include (cmake/find/libxml2.cmake)
|
||||||
include (cmake/find/brotli.cmake)
|
include (cmake/find/brotli.cmake)
|
||||||
include (cmake/find/protobuf.cmake)
|
include (cmake/find/protobuf.cmake)
|
||||||
|
include (cmake/find/grpc.cmake)
|
||||||
include (cmake/find/pdqsort.cmake)
|
include (cmake/find/pdqsort.cmake)
|
||||||
include (cmake/find/hdfs3.cmake) # uses protobuf
|
include (cmake/find/hdfs3.cmake) # uses protobuf
|
||||||
include (cmake/find/s3.cmake)
|
include (cmake/find/s3.cmake)
|
||||||
@ -364,9 +368,9 @@ if (ENABLE_TESTS)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Need to process before "contrib" dir:
|
# Need to process before "contrib" dir:
|
||||||
include (libs/libcommon/cmake/find_jemalloc.cmake)
|
include (cmake/find/jemalloc.cmake)
|
||||||
include (libs/libcommon/cmake/find_cctz.cmake)
|
include (cmake/find/cctz.cmake)
|
||||||
include (libs/libmysqlxx/cmake/find_mysqlclient.cmake)
|
include (cmake/find/mysqlclient.cmake)
|
||||||
|
|
||||||
# When testing for memory leaks with Valgrind, don't link tcmalloc or jemalloc.
|
# When testing for memory leaks with Valgrind, don't link tcmalloc or jemalloc.
|
||||||
|
|
||||||
@ -398,7 +402,7 @@ macro (add_executable target)
|
|||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
add_subdirectory (libs)
|
add_subdirectory (base)
|
||||||
add_subdirectory (utils)
|
add_subdirectory (utils)
|
||||||
add_subdirectory (dbms)
|
add_subdirectory (dbms)
|
||||||
|
|
||||||
|
17
base/CMakeLists.txt
Normal file
17
base/CMakeLists.txt
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
add_subdirectory (common)
|
||||||
|
add_subdirectory (loggers)
|
||||||
|
add_subdirectory (daemon)
|
||||||
|
|
||||||
|
if (USE_INTERNAL_MEMCPY)
|
||||||
|
add_subdirectory (memcpy)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (USE_MYSQL)
|
||||||
|
add_subdirectory (mysqlxx)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (USE_INTERNAL_CONSISTENT_HASHING_LIBRARY)
|
||||||
|
add_subdirectory (consistent-hashing)
|
||||||
|
endif ()
|
||||||
|
add_subdirectory (consistent-hashing-sumbur)
|
||||||
|
add_subdirectory (widechar_width)
|
64
base/common/CMakeLists.txt
Normal file
64
base/common/CMakeLists.txt
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
configure_file (config_common.h.in config_common.h)
|
||||||
|
|
||||||
|
set (SRCS
|
||||||
|
argsToConfig.cpp
|
||||||
|
coverage.cpp
|
||||||
|
DateLUT.cpp
|
||||||
|
DateLUTImpl.cpp
|
||||||
|
demangle.cpp
|
||||||
|
getMemoryAmount.cpp
|
||||||
|
getThreadId.cpp
|
||||||
|
JSON.cpp
|
||||||
|
LineReader.cpp
|
||||||
|
mremap.cpp
|
||||||
|
phdr_cache.cpp
|
||||||
|
preciseExp10.c
|
||||||
|
setTerminalEcho.cpp
|
||||||
|
shift10.cpp
|
||||||
|
sleep.cpp
|
||||||
|
)
|
||||||
|
|
||||||
|
if (ENABLE_REPLXX)
|
||||||
|
set (SRCS ${SRCS}
|
||||||
|
ReplxxLineReader.cpp
|
||||||
|
ReplxxLineReader.h
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
add_library (common ${SRCS})
|
||||||
|
|
||||||
|
target_include_directories(common PUBLIC .. ${CMAKE_CURRENT_BINARY_DIR}/..)
|
||||||
|
|
||||||
|
if (USE_INTERNAL_MEMCPY)
|
||||||
|
target_link_libraries (common PRIVATE memcpy)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if(CCTZ_INCLUDE_DIR)
|
||||||
|
target_include_directories(common BEFORE PRIVATE ${CCTZ_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (NOT USE_INTERNAL_BOOST_LIBRARY)
|
||||||
|
target_include_directories (common SYSTEM BEFORE PUBLIC ${Boost_INCLUDE_DIRS})
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if(NOT USE_INTERNAL_POCO_LIBRARY)
|
||||||
|
target_include_directories (common SYSTEM BEFORE PUBLIC ${Poco_Foundation_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CCTZ_LIBRARY)
|
||||||
|
target_link_libraries(common PRIVATE ${CCTZ_LIBRARY})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
target_link_libraries(common PUBLIC replxx)
|
||||||
|
|
||||||
|
target_link_libraries (common
|
||||||
|
PUBLIC
|
||||||
|
${Poco_Util_LIBRARY}
|
||||||
|
${Poco_Foundation_LIBRARY}
|
||||||
|
${CITYHASH_LIBRARIES}
|
||||||
|
${Boost_SYSTEM_LIBRARY}
|
||||||
|
)
|
||||||
|
|
||||||
|
if (ENABLE_TESTS)
|
||||||
|
add_subdirectory (tests)
|
||||||
|
endif ()
|
@ -391,9 +391,9 @@ public:
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
The bits in week_mode has the following meaning:
|
The bits in week_mode has the following meaning:
|
||||||
WeekModeFlag::MONDAY_FIRST (0) If not set Sunday is first day of week
|
WeekModeFlag::MONDAY_FIRST (0) If not set Sunday is first day of week
|
||||||
If set Monday is first day of week
|
If set Monday is first day of week
|
||||||
WeekModeFlag::YEAR (1) If not set Week is in range 0-53
|
WeekModeFlag::YEAR (1) If not set Week is in range 0-53
|
||||||
|
|
||||||
Week 0 is returned for the the last week of the previous year (for
|
Week 0 is returned for the the last week of the previous year (for
|
||||||
a date at start of january) In this case one can get 53 for the
|
a date at start of january) In this case one can get 53 for the
|
||||||
@ -401,19 +401,19 @@ public:
|
|||||||
relevant for the given year. Note that this flag is only
|
relevant for the given year. Note that this flag is only
|
||||||
releveant if WeekModeFlag::JANUARY is not set.
|
releveant if WeekModeFlag::JANUARY is not set.
|
||||||
|
|
||||||
If set Week is in range 1-53.
|
If set Week is in range 1-53.
|
||||||
|
|
||||||
In this case one may get week 53 for a date in January (when
|
In this case one may get week 53 for a date in January (when
|
||||||
the week is that last week of previous year) and week 1 for a
|
the week is that last week of previous year) and week 1 for a
|
||||||
date in December.
|
date in December.
|
||||||
|
|
||||||
WeekModeFlag::FIRST_WEEKDAY (2) If not set Weeks are numbered according
|
WeekModeFlag::FIRST_WEEKDAY (2) If not set Weeks are numbered according
|
||||||
to ISO 8601:1988
|
to ISO 8601:1988
|
||||||
If set The week that contains the first
|
If set The week that contains the first
|
||||||
'first-day-of-week' is week 1.
|
'first-day-of-week' is week 1.
|
||||||
|
|
||||||
WeekModeFlag::NEWYEAR_DAY (3) If not set no meaning
|
WeekModeFlag::NEWYEAR_DAY (3) If not set no meaning
|
||||||
If set The week that contains the January 1 is week 1.
|
If set The week that contains the January 1 is week 1.
|
||||||
Week is in range 1-53.
|
Week is in range 1-53.
|
||||||
And ignore WeekModeFlag::YEAR, WeekModeFlag::FIRST_WEEKDAY
|
And ignore WeekModeFlag::YEAR, WeekModeFlag::FIRST_WEEKDAY
|
||||||
|
|
@ -399,7 +399,7 @@ JSON::Pos JSON::skipElement() const
|
|||||||
|
|
||||||
ElementType type = getType();
|
ElementType type = getType();
|
||||||
|
|
||||||
switch(type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case TYPE_NULL:
|
case TYPE_NULL:
|
||||||
return skipNull();
|
return skipNull();
|
||||||
@ -587,7 +587,7 @@ std::string JSON::getString() const
|
|||||||
++s;
|
++s;
|
||||||
checkPos(s);
|
checkPos(s);
|
||||||
|
|
||||||
switch(*s)
|
switch (*s)
|
||||||
{
|
{
|
||||||
case '"':
|
case '"':
|
||||||
buf += '"';
|
buf += '"';
|
||||||
@ -665,7 +665,7 @@ StringRef JSON::getRawString() const
|
|||||||
if (*s != '"')
|
if (*s != '"')
|
||||||
throw JSONException(std::string("JSON: expected \", got ") + *s);
|
throw JSONException(std::string("JSON: expected \", got ") + *s);
|
||||||
while (++s != ptr_end && *s != '"');
|
while (++s != ptr_end && *s != '"');
|
||||||
if (s != ptr_end )
|
if (s != ptr_end)
|
||||||
return StringRef(ptr_begin + 1, s - ptr_begin - 1);
|
return StringRef(ptr_begin + 1, s - ptr_begin - 1);
|
||||||
throw JSONException("JSON: incorrect syntax (expected end of string, found end of JSON).");
|
throw JSONException("JSON: incorrect syntax (expected end of string, found end of JSON).");
|
||||||
}
|
}
|
@ -3,8 +3,8 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <string_view>
|
#include <string_view>
|
||||||
|
|
||||||
#include <port/unistd.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
#ifdef OS_LINUX
|
#ifdef OS_LINUX
|
||||||
/// We can detect if code is linked with one or another readline variants or open the library dynamically.
|
/// We can detect if code is linked with one or another readline variants or open the library dynamically.
|
@ -1,8 +1,8 @@
|
|||||||
#include <common/ReplxxLineReader.h>
|
#include <common/ReplxxLineReader.h>
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <port/unistd.h>
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
@ -33,7 +33,7 @@ uint64_t getMemoryAmountOrZero()
|
|||||||
/* New 64-bit MEMORYSTATUSEX isn't available. Use old 32.bit */
|
/* New 64-bit MEMORYSTATUSEX isn't available. Use old 32.bit */
|
||||||
MEMORYSTATUS status;
|
MEMORYSTATUS status;
|
||||||
status.dwLength = sizeof(status);
|
status.dwLength = sizeof(status);
|
||||||
GlobalMemoryStatus( &status );
|
GlobalMemoryStatus(&status);
|
||||||
return status.dwTotalPhys;
|
return status.dwTotalPhys;
|
||||||
|
|
||||||
#elif defined(WIN32) || defined(_WIN32)
|
#elif defined(WIN32) || defined(_WIN32)
|
||||||
@ -41,7 +41,7 @@ uint64_t getMemoryAmountOrZero()
|
|||||||
/* Use new 64-bit MEMORYSTATUSEX, not old 32-bit MEMORYSTATUS */
|
/* Use new 64-bit MEMORYSTATUSEX, not old 32-bit MEMORYSTATUS */
|
||||||
MEMORYSTATUSEX status;
|
MEMORYSTATUSEX status;
|
||||||
status.dwLength = sizeof(status);
|
status.dwLength = sizeof(status);
|
||||||
GlobalMemoryStatusEx( &status );
|
GlobalMemoryStatusEx(&status);
|
||||||
return status.ullTotalPhys;
|
return status.ullTotalPhys;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@ -58,24 +58,24 @@ uint64_t getMemoryAmountOrZero()
|
|||||||
#endif
|
#endif
|
||||||
uint64_t size = 0; /* 64-bit */
|
uint64_t size = 0; /* 64-bit */
|
||||||
size_t len = sizeof(size);
|
size_t len = sizeof(size);
|
||||||
if ( sysctl( mib, 2, &size, &len, NULL, 0 ) == 0 ) {
|
if (sysctl(mib, 2, &size, &len, NULL, 0) == 0)
|
||||||
return size;
|
return size;
|
||||||
}
|
|
||||||
return 0; /* Failed? */
|
return 0; /* Failed? */
|
||||||
|
|
||||||
#elif defined(_SC_AIX_REALMEM)
|
#elif defined(_SC_AIX_REALMEM)
|
||||||
/* AIX. ----------------------------------------------------- */
|
/* AIX. ----------------------------------------------------- */
|
||||||
return sysconf( _SC_AIX_REALMEM ) * 1024;
|
return sysconf(_SC_AIX_REALMEM) * 1024;
|
||||||
|
|
||||||
#elif defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE)
|
#elif defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE)
|
||||||
/* FreeBSD, Linux, OpenBSD, and Solaris. -------------------- */
|
/* FreeBSD, Linux, OpenBSD, and Solaris. -------------------- */
|
||||||
return (uint64_t)sysconf( _SC_PHYS_PAGES )
|
return (uint64_t)sysconf(_SC_PHYS_PAGES)
|
||||||
* (uint64_t)sysconf( _SC_PAGESIZE );
|
* (uint64_t)sysconf(_SC_PAGESIZE);
|
||||||
|
|
||||||
#elif defined(_SC_PHYS_PAGES) && defined(_SC_PAGE_SIZE)
|
#elif defined(_SC_PHYS_PAGES) && defined(_SC_PAGE_SIZE)
|
||||||
/* Legacy. -------------------------------------------------- */
|
/* Legacy. -------------------------------------------------- */
|
||||||
return (uint64_t)sysconf( _SC_PHYS_PAGES )
|
return (uint64_t)sysconf(_SC_PHYS_PAGES)
|
||||||
* (uint64_t)sysconf( _SC_PAGE_SIZE );
|
* (uint64_t)sysconf(_SC_PAGE_SIZE);
|
||||||
|
|
||||||
#elif defined(CTL_HW) && (defined(HW_PHYSMEM) || defined(HW_REALMEM))
|
#elif defined(CTL_HW) && (defined(HW_PHYSMEM) || defined(HW_REALMEM))
|
||||||
/* DragonFly BSD, FreeBSD, NetBSD, OpenBSD, and OSX. -------- */
|
/* DragonFly BSD, FreeBSD, NetBSD, OpenBSD, and OSX. -------- */
|
||||||
@ -87,10 +87,10 @@ uint64_t getMemoryAmountOrZero()
|
|||||||
mib[1] = HW_PHYSMEM; /* Others. ------------------ */
|
mib[1] = HW_PHYSMEM; /* Others. ------------------ */
|
||||||
#endif
|
#endif
|
||||||
unsigned int size = 0; /* 32-bit */
|
unsigned int size = 0; /* 32-bit */
|
||||||
size_t len = sizeof( size );
|
size_t len = sizeof(size);
|
||||||
if ( sysctl( mib, 2, &size, &len, NULL, 0 ) == 0 ) {
|
if (sysctl(mib, 2, &size, &len, NULL, 0) == 0)
|
||||||
return size;
|
return size;
|
||||||
}
|
|
||||||
return 0; /* Failed? */
|
return 0; /* Failed? */
|
||||||
#endif /* sysctl and sysconf variants */
|
#endif /* sysctl and sysconf variants */
|
||||||
|
|
@ -1,7 +1,8 @@
|
|||||||
#include <common/shift10.h>
|
#include <common/shift10.h>
|
||||||
|
|
||||||
#include <common/likely.h>
|
#include <common/likely.h>
|
||||||
|
|
||||||
#include <limits>
|
#include <limits>
|
||||||
#include <port/ssize_t.h>
|
|
||||||
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
7
base/common/time.h
Normal file
7
base/common/time.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <time.h>
|
||||||
|
|
||||||
|
#if defined (OS_DARWIN)
|
||||||
|
# define CLOCK_MONOTONIC_COARSE CLOCK_MONOTONIC
|
||||||
|
#endif
|
@ -1,7 +1,7 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <port/unistd.h>
|
#include <unistd.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <functional>
|
#include <functional>
|
@ -382,7 +382,7 @@ enum class InstructionFail
|
|||||||
|
|
||||||
static std::string instructionFailToString(InstructionFail fail)
|
static std::string instructionFailToString(InstructionFail fail)
|
||||||
{
|
{
|
||||||
switch(fail)
|
switch (fail)
|
||||||
{
|
{
|
||||||
case InstructionFail::NONE:
|
case InstructionFail::NONE:
|
||||||
return "NONE";
|
return "NONE";
|
@ -2,7 +2,15 @@
|
|||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
namespace ext {
|
namespace ext
|
||||||
|
{
|
||||||
|
|
||||||
|
/** Thread-unsafe singleton. It works simply like a global variable.
|
||||||
|
* Supports deinitialization.
|
||||||
|
*
|
||||||
|
* In most of the cases, you don't need this class.
|
||||||
|
* Use "Meyers Singleton" instead: static T & instance() { static T x; return x; }
|
||||||
|
*/
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
class Singleton
|
class Singleton
|
||||||
@ -11,14 +19,7 @@ public:
|
|||||||
Singleton()
|
Singleton()
|
||||||
{
|
{
|
||||||
if (!instance)
|
if (!instance)
|
||||||
instance.reset(new T);
|
instance = std::make_unique<T>();
|
||||||
}
|
|
||||||
|
|
||||||
template <typename ... Args>
|
|
||||||
Singleton(const Args & ... args)
|
|
||||||
{
|
|
||||||
instance.reset(new T(args...));
|
|
||||||
/// TODO: throw exception on double-creation.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
T * operator->()
|
T * operator->()
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user