mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
Merge remote-tracking branch 'upstream/master' into build/shorten-64-to-32
This commit is contained in:
commit
a63dee2763
1
contrib/CMakeLists.txt
vendored
1
contrib/CMakeLists.txt
vendored
@ -114,6 +114,7 @@ if (ENABLE_TESTS)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_contrib (llvm-project-cmake llvm-project)
|
add_contrib (llvm-project-cmake llvm-project)
|
||||||
|
add_contrib (libfuzzer-cmake llvm-project)
|
||||||
add_contrib (libxml2-cmake libxml2)
|
add_contrib (libxml2-cmake libxml2)
|
||||||
add_contrib (aws-s3-cmake
|
add_contrib (aws-s3-cmake
|
||||||
aws
|
aws
|
||||||
|
35
contrib/libfuzzer-cmake/CMakeLists.txt
Normal file
35
contrib/libfuzzer-cmake/CMakeLists.txt
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
set(COMPILER_RT_FUZZER_SRC_DIR "${ClickHouse_SOURCE_DIR}/contrib/llvm-project/compiler-rt/lib/fuzzer")
|
||||||
|
|
||||||
|
set(FUZZER_SRCS
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerCrossOver.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerDataFlowTrace.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerDriver.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerExtFunctionsDlsym.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerExtFunctionsWeak.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerExtFunctionsWindows.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerExtraCounters.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerExtraCountersDarwin.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerExtraCountersWindows.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerFork.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerIO.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerIOPosix.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerIOWindows.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerLoop.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerMerge.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerMutate.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerSHA1.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerTracePC.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerUtil.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerUtilDarwin.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerUtilFuchsia.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerUtilLinux.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerUtilPosix.cpp"
|
||||||
|
"${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerUtilWindows.cpp"
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(_fuzzer_no_main STATIC ${FUZZER_SRCS})
|
||||||
|
add_library(ch_contrib::fuzzer_no_main ALIAS _fuzzer_no_main)
|
||||||
|
|
||||||
|
add_library(_fuzzer STATIC ${FUZZER_SRCS} "${COMPILER_RT_FUZZER_SRC_DIR}/FuzzerMain.cpp")
|
||||||
|
add_library(ch_contrib::fuzzer ALIAS _fuzzer)
|
||||||
|
|
@ -1156,7 +1156,7 @@ dateName(date_part, date)
|
|||||||
**Arguments**
|
**Arguments**
|
||||||
|
|
||||||
- `date_part` — Date part. Possible values: 'year', 'quarter', 'month', 'week', 'dayofyear', 'day', 'weekday', 'hour', 'minute', 'second'. [String](../../sql-reference/data-types/string.md).
|
- `date_part` — Date part. Possible values: 'year', 'quarter', 'month', 'week', 'dayofyear', 'day', 'weekday', 'hour', 'minute', 'second'. [String](../../sql-reference/data-types/string.md).
|
||||||
- `date` — Date. [Date](../../sql-reference/data-types/date.md), [DateTime](../../sql-reference/data-types/datetime.md) or [DateTime64](../../sql-reference/data-types/datetime64.md).
|
- `date` — Date. [Date](../../sql-reference/data-types/date.md), [Date32](../../sql-reference/data-types/date32.md), [DateTime](../../sql-reference/data-types/datetime.md) or [DateTime64](../../sql-reference/data-types/datetime64.md).
|
||||||
- `timezone` — Timezone. Optional. [String](../../sql-reference/data-types/string.md).
|
- `timezone` — Timezone. Optional. [String](../../sql-reference/data-types/string.md).
|
||||||
|
|
||||||
**Returned value**
|
**Returned value**
|
||||||
|
@ -1078,7 +1078,7 @@ dateName(date_part, date)
|
|||||||
**Аргументы**
|
**Аргументы**
|
||||||
|
|
||||||
- `date_part` — часть даты. Возможные значения: 'year', 'quarter', 'month', 'week', 'dayofyear', 'day', 'weekday', 'hour', 'minute', 'second'. [String](../../sql-reference/data-types/string.md).
|
- `date_part` — часть даты. Возможные значения: 'year', 'quarter', 'month', 'week', 'dayofyear', 'day', 'weekday', 'hour', 'minute', 'second'. [String](../../sql-reference/data-types/string.md).
|
||||||
- `date` — дата. [Date](../../sql-reference/data-types/date.md), [DateTime](../../sql-reference/data-types/datetime.md) или [DateTime64](../../sql-reference/data-types/datetime64.md).
|
- `date` — дата. [Date](../../sql-reference/data-types/date.md), [Date32](../../sql-reference/data-types/date32.md), [DateTime](../../sql-reference/data-types/datetime.md) или [DateTime64](../../sql-reference/data-types/datetime64.md).
|
||||||
- `timezone` — часовой пояс. Необязательный аргумент. [String](../../sql-reference/data-types/string.md).
|
- `timezone` — часовой пояс. Необязательный аргумент. [String](../../sql-reference/data-types/string.md).
|
||||||
|
|
||||||
**Возвращаемое значение**
|
**Возвращаемое значение**
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include <IO/WriteHelpers.h>
|
#include <IO/WriteHelpers.h>
|
||||||
|
|
||||||
#include <DataTypes/DataTypeDate.h>
|
#include <DataTypes/DataTypeDate.h>
|
||||||
|
#include <DataTypes/DataTypeDate32.h>
|
||||||
#include <DataTypes/DataTypeDateTime.h>
|
#include <DataTypes/DataTypeDateTime.h>
|
||||||
#include <DataTypes/DataTypeDateTime64.h>
|
#include <DataTypes/DataTypeDateTime64.h>
|
||||||
#include <DataTypes/DataTypeString.h>
|
#include <DataTypes/DataTypeString.h>
|
||||||
@ -34,6 +35,11 @@ template <> struct DataTypeToTimeTypeMap<DataTypeDate>
|
|||||||
using TimeType = UInt16;
|
using TimeType = UInt16;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <> struct DataTypeToTimeTypeMap<DataTypeDate32>
|
||||||
|
{
|
||||||
|
using TimeType = Int32;
|
||||||
|
};
|
||||||
|
|
||||||
template <> struct DataTypeToTimeTypeMap<DataTypeDateTime>
|
template <> struct DataTypeToTimeTypeMap<DataTypeDateTime>
|
||||||
{
|
{
|
||||||
using TimeType = UInt32;
|
using TimeType = UInt32;
|
||||||
@ -72,7 +78,7 @@ public:
|
|||||||
ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH,
|
ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH,
|
||||||
"Number of arguments for function {} doesn't match: passed {}",
|
"Number of arguments for function {} doesn't match: passed {}",
|
||||||
getName(),
|
getName(),
|
||||||
toString(arguments.size()));
|
arguments.size());
|
||||||
|
|
||||||
if (!WhichDataType(arguments[0].type).isString())
|
if (!WhichDataType(arguments[0].type).isString())
|
||||||
throw Exception(
|
throw Exception(
|
||||||
@ -83,7 +89,7 @@ public:
|
|||||||
|
|
||||||
WhichDataType first_argument_type(arguments[1].type);
|
WhichDataType first_argument_type(arguments[1].type);
|
||||||
|
|
||||||
if (!(first_argument_type.isDate() || first_argument_type.isDateTime() || first_argument_type.isDateTime64()))
|
if (!(first_argument_type.isDate() || first_argument_type.isDateTime() || first_argument_type.isDate32() || first_argument_type.isDateTime64()))
|
||||||
throw Exception(
|
throw Exception(
|
||||||
ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT,
|
ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT,
|
||||||
"Illegal type {} of 2 argument of function {}. Must be a date or a date with time",
|
"Illegal type {} of 2 argument of function {}. Must be a date or a date with time",
|
||||||
@ -108,6 +114,7 @@ public:
|
|||||||
ColumnPtr res;
|
ColumnPtr res;
|
||||||
|
|
||||||
if (!((res = executeType<DataTypeDate>(arguments, result_type))
|
if (!((res = executeType<DataTypeDate>(arguments, result_type))
|
||||||
|
|| (res = executeType<DataTypeDate32>(arguments, result_type))
|
||||||
|| (res = executeType<DataTypeDateTime>(arguments, result_type))
|
|| (res = executeType<DataTypeDateTime>(arguments, result_type))
|
||||||
|| (res = executeType<DataTypeDateTime64>(arguments, result_type))))
|
|| (res = executeType<DataTypeDateTime64>(arguments, result_type))))
|
||||||
throw Exception(
|
throw Exception(
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
2021 2021 2021
|
2021 2021 2021 2021
|
||||||
2 2 2
|
2 2 2 2
|
||||||
April April April
|
April April April April
|
||||||
104 104 104
|
104 104 104 104
|
||||||
14 14 14
|
14 14 14 14
|
||||||
15 15 15
|
15 15 15 15
|
||||||
Wednesday Wednesday Wednesday
|
Wednesday Wednesday Wednesday Wednesday
|
||||||
11 11
|
11 11
|
||||||
22 22
|
22 22
|
||||||
33 33
|
33 33
|
||||||
|
@ -1,44 +1,51 @@
|
|||||||
WITH
|
WITH
|
||||||
toDate('2021-04-14') AS date_value,
|
toDate('2021-04-14') AS date_value,
|
||||||
|
toDate32('2021-04-14') AS date_32_value,
|
||||||
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
||||||
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
||||||
SELECT dateName('year', date_value), dateName('year', date_time_value), dateName('year', date_time_64_value);
|
SELECT dateName('year', date_value), dateName('year', date_32_value), dateName('year', date_time_value), dateName('year', date_time_64_value);
|
||||||
|
|
||||||
WITH
|
WITH
|
||||||
toDate('2021-04-14') AS date_value,
|
toDate('2021-04-14') AS date_value,
|
||||||
|
toDate32('2021-04-14') AS date_32_value,
|
||||||
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
||||||
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
||||||
SELECT dateName('quarter', date_value), dateName('quarter', date_time_value), dateName('quarter', date_time_64_value);
|
SELECT dateName('quarter', date_value), dateName('quarter', date_32_value), dateName('quarter', date_time_value), dateName('quarter', date_time_64_value);
|
||||||
|
|
||||||
WITH
|
WITH
|
||||||
toDate('2021-04-14') AS date_value,
|
toDate('2021-04-14') AS date_value,
|
||||||
|
toDate32('2021-04-14') AS date_32_value,
|
||||||
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
||||||
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
||||||
SELECT dateName('month', date_value), dateName('month', date_time_value), dateName('month', date_time_64_value);
|
SELECT dateName('month', date_value), dateName('month', date_32_value), dateName('month', date_time_value), dateName('month', date_time_64_value);
|
||||||
|
|
||||||
WITH
|
WITH
|
||||||
toDate('2021-04-14') AS date_value,
|
toDate('2021-04-14') AS date_value,
|
||||||
|
toDate32('2021-04-14') AS date_32_value,
|
||||||
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
||||||
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
||||||
SELECT dateName('dayofyear', date_value), dateName('dayofyear', date_time_value), dateName('dayofyear', date_time_64_value);
|
SELECT dateName('dayofyear', date_value), dateName('dayofyear', date_32_value), dateName('dayofyear', date_time_value), dateName('dayofyear', date_time_64_value);
|
||||||
|
|
||||||
WITH
|
WITH
|
||||||
toDate('2021-04-14') AS date_value,
|
toDate('2021-04-14') AS date_value,
|
||||||
|
toDate32('2021-04-14') AS date_32_value,
|
||||||
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
||||||
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
||||||
SELECT dateName('day', date_value), dateName('day', date_time_value), dateName('day', date_time_64_value);
|
SELECT dateName('day', date_value), dateName('day', date_32_value), dateName('day', date_time_value), dateName('day', date_time_64_value);
|
||||||
|
|
||||||
WITH
|
WITH
|
||||||
toDate('2021-04-14') AS date_value,
|
toDate('2021-04-14') AS date_value,
|
||||||
|
toDate32('2021-04-14') AS date_32_value,
|
||||||
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
||||||
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
||||||
SELECT dateName('week', date_value), dateName('week', date_time_value), dateName('week', date_time_64_value);
|
SELECT dateName('week', date_value), dateName('week', date_32_value), dateName('week', date_time_value), dateName('week', date_time_64_value);
|
||||||
|
|
||||||
WITH
|
WITH
|
||||||
toDate('2021-04-14') AS date_value,
|
toDate('2021-04-14') AS date_value,
|
||||||
|
toDate32('2021-04-14') AS date_32_value,
|
||||||
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
||||||
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
toDateTime64('2021-04-14 11:22:33', 3) AS date_time_64_value
|
||||||
SELECT dateName('weekday', date_value), dateName('weekday', date_time_value), dateName('weekday', date_time_64_value);
|
SELECT dateName('weekday', date_value), dateName('weekday', date_32_value), dateName('weekday', date_time_value), dateName('weekday', date_time_64_value);
|
||||||
|
|
||||||
WITH
|
WITH
|
||||||
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
toDateTime('2021-04-14 11:22:33') AS date_time_value,
|
||||||
|
Loading…
Reference in New Issue
Block a user