From 537fb8c4eeb50276ee5c8f6a232a1864378f1c42 Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 15 Aug 2022 01:16:35 +0300 Subject: [PATCH 01/61] fix 1 --- src/Functions/DateTimeTransforms.h | 103 +++++++++++++++++++++++----- src/Functions/FunctionsConversion.h | 29 +++++--- 2 files changed, 108 insertions(+), 24 deletions(-) diff --git a/src/Functions/DateTimeTransforms.h b/src/Functions/DateTimeTransforms.h index 065f08296d0..42733a82165 100644 --- a/src/Functions/DateTimeTransforms.h +++ b/src/Functions/DateTimeTransforms.h @@ -61,15 +61,24 @@ struct ToDateImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return UInt16(time_zone.toDayNum(t)); + auto day_num = time_zone.toDayNum(t); + if (day_num < 0) + return 0; + else if (day_num > DATE_LUT_MAX_DAY_NUM) + return UInt16(DATE_LUT_MAX_DAY_NUM); + else + return UInt16(day_num); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { return UInt16(time_zone.toDayNum(t)); } - static inline UInt16 execute(Int32, const DateLUTImpl &) + static inline UInt16 execute(Int32 t, const DateLUTImpl &) { - return dateIsNotSupported(name); + if (t < 0) + return 0; + + return UInt16(t < DATE_LUT_MAX_DAY_NUM ? t : DATE_LUT_MAX_DAY_NUM); } static inline UInt16 execute(UInt16 d, const DateLUTImpl &) { @@ -111,7 +120,10 @@ struct ToStartOfDayImpl //TODO: right now it is hardcoded to produce DateTime only, needs fixing later. See date_and_time_type_details::ResultDataTypeMap for deduction of result type example. static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & time_zone) { - return time_zone.toDate(static_cast(t.whole)); + if (t.whole < 0) + return 0; + + return time_zone.toDate(t.whole < DATE_LUT_MAX_DAY_NUM ? t.whole : DATE_LUT_MAX_DAY_NUM); } static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -119,7 +131,10 @@ struct ToStartOfDayImpl } static inline UInt32 execute(Int32 d, const DateLUTImpl & time_zone) { - return time_zone.toDate(ExtendedDayNum(d)); + if (d < 0) + return 0; + + return time_zone.toDate(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); } static inline UInt32 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -135,8 +150,14 @@ struct ToMondayImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { + if (t < 0) + return 0; + + auto day_num = time_zone.toDayNum(t); + + return time_zone.toFirstDayNumOfWeek(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); //return time_zone.toFirstDayNumOfWeek(time_zone.toDayNum(t)); - return time_zone.toFirstDayNumOfWeek(t); +// return time_zone.toFirstDayNumOfWeek(t); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -145,7 +166,11 @@ struct ToMondayImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(d)); + if (d < 0) + return 0; + + return time_zone.toFirstDayNumOfWeek(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); +// return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(d)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -161,7 +186,13 @@ struct ToStartOfMonthImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfMonth(time_zone.toDayNum(t)); + if (t < 0) + return 0; + + auto day_num = time_zone.toDayNum(t); + + return time_zone.toFirstDayNumOfMonth(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); +// return time_zone.toFirstDayNumOfMonth(time_zone.toDayNum(t)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -169,7 +200,11 @@ struct ToStartOfMonthImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfMonth(ExtendedDayNum(d)); + if (d < 0) + return 0; + + return time_zone.toFirstDayNumOfMonth(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); +// return time_zone.toFirstDayNumOfMonth(ExtendedDayNum(d)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -185,7 +220,13 @@ struct ToLastDayOfMonthImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return time_zone.toLastDayNumOfMonth(time_zone.toDayNum(t)); + if (t < 0) + return 0; + + auto day_num = time_zone.toDayNum(t); + + return time_zone.toLastDayNumOfMonth(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); +// return time_zone.toLastDayNumOfMonth(time_zone.toDayNum(t)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -193,7 +234,11 @@ struct ToLastDayOfMonthImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return time_zone.toLastDayNumOfMonth(ExtendedDayNum(d)); + if (d < 0) + return 0; + + return time_zone.toLastDayNumOfMonth(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); +// return time_zone.toLastDayNumOfMonth(ExtendedDayNum(d)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -209,7 +254,13 @@ struct ToStartOfQuarterImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfQuarter(time_zone.toDayNum(t)); + if (t < 0) + return 0; + + auto day_num = time_zone.toDayNum(t); + + return time_zone.toFirstDayNumOfQuarter(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); +// return time_zone.toFirstDayNumOfQuarter(time_zone.toDayNum(t)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -217,7 +268,11 @@ struct ToStartOfQuarterImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(d)); + if (d < 0) + return 0; + + return time_zone.toFirstDayNumOfQuarter(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); +// return time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(d)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -233,7 +288,13 @@ struct ToStartOfYearImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfYear(time_zone.toDayNum(t)); + if (t < 0) + return 0; + + auto day_num = time_zone.toDayNum(t); + + return time_zone.toFirstDayNumOfYear(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); +// return time_zone.toFirstDayNumOfYear(time_zone.toDayNum(t)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -241,7 +302,11 @@ struct ToStartOfYearImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfYear(ExtendedDayNum(d)); + if (d < 0) + return 0; + + return time_zone.toFirstDayNumOfYear(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); +// return time_zone.toFirstDayNumOfYear(ExtendedDayNum(d)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -283,7 +348,13 @@ struct ToStartOfMinuteImpl static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & time_zone) { - return time_zone.toStartOfMinute(t.whole); + if (t.whole < 0) + return 0; + + auto day_num = time_zone.toDayNum(t.whole); + + return time_zone.toStartOfMinute(day_num < DATE_LUT_MAX_DAY_NUM ? t.whole : INT16_MAX); +// return time_zone.toStartOfMinute(t.whole); } static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone) { diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index 2788e2cc390..c4599fa2de3 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -322,9 +322,12 @@ struct ToDateTimeImpl return time_zone.fromDayNum(DayNum(d)); } - static inline Int64 execute(Int32 d, const DateLUTImpl & time_zone) + static inline UInt32 execute(Int32 d, const DateLUTImpl & time_zone) { - return time_zone.fromDayNum(ExtendedDayNum(d)); + if (d < 0) + return 0; + + return time_zone.fromDayNum(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); } static inline UInt32 execute(UInt32 dt, const DateLUTImpl & /*time_zone*/) @@ -332,10 +335,15 @@ struct ToDateTimeImpl return dt; } - // TODO: return UInt32 ??? - static inline Int64 execute(Int64 dt64, const DateLUTImpl & /*time_zone*/) + static inline UInt32 execute(Int64 dt64, const DateLUTImpl & time_zone) { - return dt64; + if (dt64 < 0) + return 0; + + auto day_num = time_zone.toDayNum(dt64); + return (day_num < DATE_LUT_MAX_DAY_NUM) + ? dt64 + : time_zone.toDayNum(std::min(time_t(dt64), time_t(0xFFFFFFFF))); } }; @@ -355,6 +363,8 @@ struct ToDateTransform32Or64 static inline NO_SANITIZE_UNDEFINED ToType execute(const FromType & from, const DateLUTImpl & time_zone) { // since converting to Date, no need in values outside of default LUT range. + if (from < 0) + return time_t(0); return (from < DATE_LUT_MAX_DAY_NUM) ? from : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF))); @@ -509,11 +519,14 @@ struct ToDateTimeTransform64Signed { static constexpr auto name = "toDateTime"; - static inline NO_SANITIZE_UNDEFINED ToType execute(const FromType & from, const DateLUTImpl &) + static inline NO_SANITIZE_UNDEFINED ToType execute(const FromType & from, const DateLUTImpl & time_zone) { if (from < 0) return 0; - return std::min(time_t(from), time_t(0xFFFFFFFF)); + else if (time_zone.toDayNum(from) > DATE_LUT_MAX_DAY_NUM) + return DATE_LUT_MAX_DAY_NUM; + else + return time_t(from); } }; @@ -1786,7 +1799,7 @@ private: { /// Account for optional timezone argument. if (arguments.size() != 2 && arguments.size() != 3) - throw Exception{"Function " + getName() + " expects 2 or 3 arguments for DataTypeDateTime64.", + throw Exception{"Function " + getName() + " expects 2 or 3 arguments for DateTime64.", ErrorCodes::TOO_FEW_ARGUMENTS_FOR_FUNCTION}; } else if (arguments.size() != 2) From a7a1269e60cdc82316dd1ca7e77951a0b5da3441 Mon Sep 17 00:00:00 2001 From: zvonand Date: Wed, 17 Aug 2022 18:33:36 +0300 Subject: [PATCH 02/61] updated tests + improve logic --- docs/ru/sql-reference/data-types/date.md | 2 +- src/Functions/DateTimeTransforms.h | 68 +++++++++---------- src/Functions/FunctionsConversion.h | 51 +++++++++----- .../02403_date_time_narrowing.reference | 17 +++++ .../0_stateless/02403_date_time_narrowing.sql | 51 ++++++++++++++ 5 files changed, 136 insertions(+), 53 deletions(-) create mode 100644 tests/queries/0_stateless/02403_date_time_narrowing.reference create mode 100644 tests/queries/0_stateless/02403_date_time_narrowing.sql diff --git a/docs/ru/sql-reference/data-types/date.md b/docs/ru/sql-reference/data-types/date.md index 46f73bc8cb7..c4088102ac3 100644 --- a/docs/ru/sql-reference/data-types/date.md +++ b/docs/ru/sql-reference/data-types/date.md @@ -5,7 +5,7 @@ sidebar_label: Date # Date {#data-type-date} -Дата. Хранится в двух байтах в виде (беззнакового) числа дней, прошедших от 1970-01-01. Позволяет хранить значения от чуть больше, чем начала unix-эпохи до верхнего порога, определяющегося константой на этапе компиляции (сейчас - до 2106 года, последний полностью поддерживаемый год - 2105). +Дата. Хранится в двух байтах в виде (беззнакового) числа дней, прошедших от 1970-01-01. Позволяет хранить значения от чуть больше, чем начала unix-эпохи до верхнего порога, определяющегося константой на этапе компиляции (сейчас - до 2149 года, последний полностью поддерживаемый год - 2148). Диапазон значений: \[1970-01-01, 2149-06-06\]. diff --git a/src/Functions/DateTimeTransforms.h b/src/Functions/DateTimeTransforms.h index 42733a82165..30c262e988b 100644 --- a/src/Functions/DateTimeTransforms.h +++ b/src/Functions/DateTimeTransforms.h @@ -61,24 +61,22 @@ struct ToDateImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - auto day_num = time_zone.toDayNum(t); - if (day_num < 0) + if (t < 0) return 0; - else if (day_num > DATE_LUT_MAX_DAY_NUM) - return UInt16(DATE_LUT_MAX_DAY_NUM); - else - return UInt16(day_num); + + auto day_num = time_zone.toDayNum(t); + return day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM; } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { - return UInt16(time_zone.toDayNum(t)); + return time_zone.toDayNum(t); } static inline UInt16 execute(Int32 t, const DateLUTImpl &) { if (t < 0) return 0; - return UInt16(t < DATE_LUT_MAX_DAY_NUM ? t : DATE_LUT_MAX_DAY_NUM); + return t < DATE_LUT_MAX_DAY_NUM ? t : DATE_LUT_MAX_DAY_NUM; } static inline UInt16 execute(UInt16 d, const DateLUTImpl &) { @@ -123,7 +121,11 @@ struct ToStartOfDayImpl if (t.whole < 0) return 0; - return time_zone.toDate(t.whole < DATE_LUT_MAX_DAY_NUM ? t.whole : DATE_LUT_MAX_DAY_NUM); + Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(t.whole)); + if (date_time <= 0xffffffff) + return date_time; + else + return time_zone.toDate(0xffffffff); } static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -134,11 +136,19 @@ struct ToStartOfDayImpl if (d < 0) return 0; - return time_zone.toDate(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); + Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(d)); + if (date_time <= 0xffffffff) + return date_time; + else + return time_zone.toDate(0xffffffff); } static inline UInt32 execute(UInt16 d, const DateLUTImpl & time_zone) { - return time_zone.toDate(DayNum(d)); + Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(d)); + if (date_time <= 0xffffffff) + return date_time; + else + return time_zone.toDate(0xffffffff); } using FactorTransform = ZeroTransform; @@ -155,13 +165,10 @@ struct ToMondayImpl auto day_num = time_zone.toDayNum(t); - return time_zone.toFirstDayNumOfWeek(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); - //return time_zone.toFirstDayNumOfWeek(time_zone.toDayNum(t)); -// return time_zone.toFirstDayNumOfWeek(t); + return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { - //return time_zone.toFirstDayNumOfWeek(time_zone.toDayNum(t)); return time_zone.toFirstDayNumOfWeek(t); } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) @@ -169,8 +176,8 @@ struct ToMondayImpl if (d < 0) return 0; - return time_zone.toFirstDayNumOfWeek(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); -// return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(d)); + return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)) + ; } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -191,20 +198,18 @@ struct ToStartOfMonthImpl auto day_num = time_zone.toDayNum(t); - return time_zone.toFirstDayNumOfMonth(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); -// return time_zone.toFirstDayNumOfMonth(time_zone.toDayNum(t)); + return time_zone.toFirstDayNumOfMonth(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfMonth(time_zone.toDayNum(t)); + return time_zone.toFirstDayNumOfMonth(ExtendedDayNum(time_zone.toDayNum(t))); } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { if (d < 0) return 0; - return time_zone.toFirstDayNumOfMonth(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); -// return time_zone.toFirstDayNumOfMonth(ExtendedDayNum(d)); + return time_zone.toFirstDayNumOfMonth(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -224,9 +229,7 @@ struct ToLastDayOfMonthImpl return 0; auto day_num = time_zone.toDayNum(t); - - return time_zone.toLastDayNumOfMonth(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); -// return time_zone.toLastDayNumOfMonth(time_zone.toDayNum(t)); + return time_zone.toLastDayNumOfMonth(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -237,8 +240,7 @@ struct ToLastDayOfMonthImpl if (d < 0) return 0; - return time_zone.toLastDayNumOfMonth(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); -// return time_zone.toLastDayNumOfMonth(ExtendedDayNum(d)); + return time_zone.toLastDayNumOfMonth(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -259,8 +261,7 @@ struct ToStartOfQuarterImpl auto day_num = time_zone.toDayNum(t); - return time_zone.toFirstDayNumOfQuarter(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); -// return time_zone.toFirstDayNumOfQuarter(time_zone.toDayNum(t)); + return time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -271,8 +272,7 @@ struct ToStartOfQuarterImpl if (d < 0) return 0; - return time_zone.toFirstDayNumOfQuarter(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); -// return time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(d)); + return time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -293,8 +293,7 @@ struct ToStartOfYearImpl auto day_num = time_zone.toDayNum(t); - return time_zone.toFirstDayNumOfYear(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM); -// return time_zone.toFirstDayNumOfYear(time_zone.toDayNum(t)); + return time_zone.toFirstDayNumOfYear(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -305,8 +304,7 @@ struct ToStartOfYearImpl if (d < 0) return 0; - return time_zone.toFirstDayNumOfYear(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM); -// return time_zone.toFirstDayNumOfYear(ExtendedDayNum(d)); + return time_zone.toFirstDayNumOfYear(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index c4599fa2de3..9062f3a5846 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -301,6 +301,11 @@ struct ConvertImpl } }; +/** Conversion of Date32 to Date: check bounds. + */ +template struct ConvertImpl + : DateTimeTransformImpl {}; + /** Conversion of DateTime to Date: throw off time component. */ template struct ConvertImpl @@ -319,7 +324,8 @@ struct ToDateTimeImpl static inline UInt32 execute(UInt16 d, const DateLUTImpl & time_zone) { - return time_zone.fromDayNum(DayNum(d)); + Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(d)); + return date_time <= 0xffffffff ? UInt32(date_time) : UInt32(0xffffffff); } static inline UInt32 execute(Int32 d, const DateLUTImpl & time_zone) @@ -327,7 +333,8 @@ struct ToDateTimeImpl if (d < 0) return 0; - return time_zone.fromDayNum(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); + Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(d)); + return date_time <= 0xffffffff ? UInt32(date_time) : UInt32(0xffffffff); } static inline UInt32 execute(UInt32 dt, const DateLUTImpl & /*time_zone*/) @@ -335,15 +342,13 @@ struct ToDateTimeImpl return dt; } - static inline UInt32 execute(Int64 dt64, const DateLUTImpl & time_zone) + static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & time_zone) { - if (dt64 < 0) + if (t.whole < 0) return 0; - auto day_num = time_zone.toDayNum(dt64); - return (day_num < DATE_LUT_MAX_DAY_NUM) - ? dt64 - : time_zone.toDayNum(std::min(time_t(dt64), time_t(0xFFFFFFFF))); + auto day_num = time_zone.toDayNum(t.whole); + return (day_num < DATE_LUT_MAX_DAY_NUM) ? t.whole : time_t(0xFFFFFFFF); } }; @@ -364,10 +369,10 @@ struct ToDateTransform32Or64 { // since converting to Date, no need in values outside of default LUT range. if (from < 0) - return time_t(0); - return (from < DATE_LUT_MAX_DAY_NUM) - ? from - : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF))); + return 0; + + auto day_num = time_zone.toDayNum(from); + return day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM; } }; @@ -382,9 +387,9 @@ struct ToDateTransform32Or64Signed /// The function should be monotonic (better for query optimizations), so we saturate instead of overflow. if (from < 0) return 0; - return (from < DATE_LUT_MAX_DAY_NUM) - ? from - : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF))); + + auto day_num = time_zone.toDayNum(from); + return day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM; } }; @@ -457,35 +462,49 @@ struct ToDate32Transform8Or16Signed */ template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; + template struct ConvertImpl : DateTimeTransformImpl> {}; @@ -647,8 +666,6 @@ struct FromDateTime64Transform } }; -/** Conversion of DateTime64 to Date or DateTime: discards fractional part. - */ template struct ConvertImpl : DateTimeTransformImpl> {}; template struct ConvertImpl diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference new file mode 100644 index 00000000000..9aaee671f42 --- /dev/null +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -0,0 +1,17 @@ +1970-01-01 2149-06-06 +1970-01-01 2149-06-06 +1970-01-01 00:00:00 2106-02-07 06:28:15 +1970-01-01 00:00:00 2106-02-07 06:28:15 +2106-02-07 06:28:15 +toStartOfDay +2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 +toMonday +2149-06-02 1970-01-01 1970-01-01 2149-06-02 +toStartOfMonth +2149-06-01 1970-01-01 1970-01-01 2149-06-01 +toLastDayOfMonth +1970-01-24 1970-01-01 1970-01-01 1970-01-24 +toStartOfQuarter +2149-04-01 1970-01-01 1970-01-01 2149-04-01 +toStartOfYear +2149-01-01 1970-01-01 1970-01-01 2149-01-01 diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.sql b/tests/queries/0_stateless/02403_date_time_narrowing.sql new file mode 100644 index 00000000000..19b68188ead --- /dev/null +++ b/tests/queries/0_stateless/02403_date_time_narrowing.sql @@ -0,0 +1,51 @@ +SELECT toDate(toDate32('1930-01-01', 'UTC'), 'UTC'), + toDate(toDate32('2150-01-01', 'UTC'), 'UTC'); + +SELECT toDate(toDateTime64('1930-01-01 12:12:12.12', 3, 'UTC'), 'UTC'), + toDate(toDateTime64('2150-01-01 12:12:12.12', 3, 'UTC'), 'UTC'); + +SELECT toDateTime(toDateTime64('1930-01-01 12:12:12.12', 3, 'UTC'), 'UTC'), + toDateTime(toDateTime64('2150-01-01 12:12:12.12', 3, 'UTC'), 'UTC'); + +SELECT toDateTime(toDate32('1930-01-01', 'UTC'), 'UTC'), + toDateTime(toDate32('2150-01-01', 'UTC'), 'UTC'); + +SELECT toDateTime(toDate('2140-01-01', 'UTC'), 'UTC'); + +SELECT 'toStartOfDay'; +SELECT toStartOfDay(toDate('2141-01-01', 'UTC'), 'UTC'), + toStartOfDay(toDate('1941-01-01', 'UTC'), 'UTC'), + toStartOfDay(toDate32('2141-01-01', 'UTC'), 'UTC'), + toStartOfDay(toDate32('1941-01-01', 'UTC'), 'UTC'), + toStartOfDay(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), + toStartOfDay(toDateTime64('2141-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); + +SELECT 'toMonday'; +SELECT toMonday(toDate32('2151-01-01', 'UTC')), + toMonday(toDate32('1941-01-01', 'UTC')), + toMonday(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), + toMonday(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); + +SELECT 'toStartOfMonth'; +SELECT toStartOfMonth(toDate32('2151-01-01', 'UTC')), + toStartOfMonth(toDate32('1941-01-01', 'UTC')), + toStartOfMonth(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), + toStartOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); + +SELECT 'toLastDayOfMonth'; +SELECT toLastDayOfMonth(toDate32('2151-01-01', 'UTC')), + toLastDayOfMonth(toDate32('1941-01-01', 'UTC')), + toLastDayOfMonth(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), + toLastDayOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); + +SELECT 'toStartOfQuarter'; +SELECT toStartOfQuarter(toDate32('2151-01-01', 'UTC')), + toStartOfQuarter(toDate32('1941-01-01', 'UTC')), + toStartOfQuarter(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), + toStartOfQuarter(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); + +SELECT 'toStartOfYear'; +SELECT toStartOfYear(toDate32('2151-01-01', 'UTC')), + toStartOfYear(toDate32('1941-01-01', 'UTC')), + toStartOfYear(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), + toStartOfYear(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); \ No newline at end of file From eba4bd2a875ac45413d82b8a71b3d77bdb1db143 Mon Sep 17 00:00:00 2001 From: zvonand Date: Sun, 21 Aug 2022 18:59:09 +0300 Subject: [PATCH 03/61] update test and chinese docs --- docs/zh/sql-reference/data-types/date.md | 2 +- .../02403_date_time_narrowing.reference | 12 ++--- .../0_stateless/02403_date_time_narrowing.sql | 48 +++++++++---------- 3 files changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/zh/sql-reference/data-types/date.md b/docs/zh/sql-reference/data-types/date.md index ab5d3acae1b..35d0299bb37 100644 --- a/docs/zh/sql-reference/data-types/date.md +++ b/docs/zh/sql-reference/data-types/date.md @@ -1,6 +1,6 @@ # 日期 {#date} -日期类型,用两个字节存储,表示从 1970-01-01 (无符号) 到当前的日期值。允许存储从 Unix 纪元开始到编译阶段定义的上限阈值常量(目前上限是2106年,但最终完全支持的年份为2105)。最小值输出为1970-01-01。 +日期类型,用两个字节存储,表示从 1970-01-01 (无符号) 到当前的日期值。允许存储从 Unix 纪元开始到编译阶段定义的上限阈值常量(目前上限是2149年,但最终完全支持的年份为2148)。最小值输出为1970-01-01。 值的范围: \[1970-01-01, 2149-06-06\]。 diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference index 9aaee671f42..5f1f37c11ae 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.reference +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -4,14 +4,14 @@ 1970-01-01 00:00:00 2106-02-07 06:28:15 2106-02-07 06:28:15 toStartOfDay -2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 +1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 toMonday -2149-06-02 1970-01-01 1970-01-01 2149-06-02 +1970-01-01 2149-06-02 1970-01-01 2149-06-02 toStartOfMonth -2149-06-01 1970-01-01 1970-01-01 2149-06-01 +1970-01-01 2149-06-01 1970-01-01 2149-06-01 toLastDayOfMonth -1970-01-24 1970-01-01 1970-01-01 1970-01-24 +1970-01-01 1970-01-24 1970-01-01 1970-01-24 toStartOfQuarter -2149-04-01 1970-01-01 1970-01-01 2149-04-01 +1970-01-01 2149-04-01 1970-01-01 2149-04-01 toStartOfYear -2149-01-01 1970-01-01 1970-01-01 2149-01-01 +1970-01-01 2149-01-01 1970-01-01 2149-01-01 diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.sql b/tests/queries/0_stateless/02403_date_time_narrowing.sql index 19b68188ead..ff7f0b1f020 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.sql +++ b/tests/queries/0_stateless/02403_date_time_narrowing.sql @@ -1,51 +1,51 @@ SELECT toDate(toDate32('1930-01-01', 'UTC'), 'UTC'), - toDate(toDate32('2150-01-01', 'UTC'), 'UTC'); + toDate(toDate32('2151-01-01', 'UTC'), 'UTC'); SELECT toDate(toDateTime64('1930-01-01 12:12:12.12', 3, 'UTC'), 'UTC'), - toDate(toDateTime64('2150-01-01 12:12:12.12', 3, 'UTC'), 'UTC'); + toDate(toDateTime64('2151-01-01 12:12:12.12', 3, 'UTC'), 'UTC'); SELECT toDateTime(toDateTime64('1930-01-01 12:12:12.12', 3, 'UTC'), 'UTC'), - toDateTime(toDateTime64('2150-01-01 12:12:12.12', 3, 'UTC'), 'UTC'); + toDateTime(toDateTime64('2151-01-01 12:12:12.12', 3, 'UTC'), 'UTC'); SELECT toDateTime(toDate32('1930-01-01', 'UTC'), 'UTC'), - toDateTime(toDate32('2150-01-01', 'UTC'), 'UTC'); + toDateTime(toDate32('2151-01-01', 'UTC'), 'UTC'); -SELECT toDateTime(toDate('2140-01-01', 'UTC'), 'UTC'); +SELECT toDateTime(toDate('2141-01-01', 'UTC'), 'UTC'); SELECT 'toStartOfDay'; -SELECT toStartOfDay(toDate('2141-01-01', 'UTC'), 'UTC'), - toStartOfDay(toDate('1941-01-01', 'UTC'), 'UTC'), +SELECT toStartOfDay(toDate('1930-01-01', 'UTC'), 'UTC'), + toStartOfDay(toDate('2141-01-01', 'UTC'), 'UTC'), + toStartOfDay(toDate32('1930-01-01', 'UTC'), 'UTC'), toStartOfDay(toDate32('2141-01-01', 'UTC'), 'UTC'), - toStartOfDay(toDate32('1941-01-01', 'UTC'), 'UTC'), - toStartOfDay(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), + toStartOfDay(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toStartOfDay(toDateTime64('2141-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); SELECT 'toMonday'; -SELECT toMonday(toDate32('2151-01-01', 'UTC')), - toMonday(toDate32('1941-01-01', 'UTC')), - toMonday(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), +SELECT toMonday(toDate32('1930-01-01', 'UTC')), + toMonday(toDate32('2151-01-01', 'UTC')), + toMonday(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toMonday(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); SELECT 'toStartOfMonth'; -SELECT toStartOfMonth(toDate32('2151-01-01', 'UTC')), - toStartOfMonth(toDate32('1941-01-01', 'UTC')), - toStartOfMonth(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), +SELECT toStartOfMonth(toDate32('1930-01-01', 'UTC')), + toStartOfMonth(toDate32('2151-01-01', 'UTC')), + toStartOfMonth(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toStartOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); SELECT 'toLastDayOfMonth'; -SELECT toLastDayOfMonth(toDate32('2151-01-01', 'UTC')), - toLastDayOfMonth(toDate32('1941-01-01', 'UTC')), - toLastDayOfMonth(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), +SELECT toLastDayOfMonth(toDate32('1930-01-01', 'UTC')), + toLastDayOfMonth(toDate32('2151-01-01', 'UTC')), + toLastDayOfMonth(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toLastDayOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); SELECT 'toStartOfQuarter'; -SELECT toStartOfQuarter(toDate32('2151-01-01', 'UTC')), - toStartOfQuarter(toDate32('1941-01-01', 'UTC')), - toStartOfQuarter(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), +SELECT toStartOfQuarter(toDate32('1930-01-01', 'UTC')), + toStartOfQuarter(toDate32('2151-01-01', 'UTC')), + toStartOfQuarter(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toStartOfQuarter(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); SELECT 'toStartOfYear'; -SELECT toStartOfYear(toDate32('2151-01-01', 'UTC')), - toStartOfYear(toDate32('1941-01-01', 'UTC')), - toStartOfYear(toDateTime64('1941-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), +SELECT toStartOfYear(toDate32('1930-01-01', 'UTC')), + toStartOfYear(toDate32('2151-01-01', 'UTC')), + toStartOfYear(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toStartOfYear(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); \ No newline at end of file From e5b4fb4191dbc665c7f64c9629d031bb4a5e3fc7 Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 22 Aug 2022 00:02:27 +0300 Subject: [PATCH 04/61] fix some issues --- src/Functions/DateTimeTransforms.h | 91 +++++++----------------------- 1 file changed, 21 insertions(+), 70 deletions(-) diff --git a/src/Functions/DateTimeTransforms.h b/src/Functions/DateTimeTransforms.h index 30c262e988b..c7b8d178802 100644 --- a/src/Functions/DateTimeTransforms.h +++ b/src/Functions/DateTimeTransforms.h @@ -61,11 +61,7 @@ struct ToDateImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - if (t < 0) - return 0; - - auto day_num = time_zone.toDayNum(t); - return day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM; + return t < 0 ? 0 : std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -73,10 +69,7 @@ struct ToDateImpl } static inline UInt16 execute(Int32 t, const DateLUTImpl &) { - if (t < 0) - return 0; - - return t < DATE_LUT_MAX_DAY_NUM ? t : DATE_LUT_MAX_DAY_NUM; + return t < 0 ? 0 : std::min(time_t(t), time_t(DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl &) { @@ -118,7 +111,7 @@ struct ToStartOfDayImpl //TODO: right now it is hardcoded to produce DateTime only, needs fixing later. See date_and_time_type_details::ResultDataTypeMap for deduction of result type example. static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & time_zone) { - if (t.whole < 0) + if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) return 0; Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(t.whole)); @@ -145,10 +138,7 @@ struct ToStartOfDayImpl static inline UInt32 execute(UInt16 d, const DateLUTImpl & time_zone) { Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(d)); - if (date_time <= 0xffffffff) - return date_time; - else - return time_zone.toDate(0xffffffff); + return date_time < 0xffffffff ? date_time : time_zone.toDate(0xffffffff); } using FactorTransform = ZeroTransform; @@ -160,12 +150,8 @@ struct ToMondayImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - if (t < 0) - return 0; - - auto day_num = time_zone.toDayNum(t); - - return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); + return t < 0 ? 0 : time_zone.toFirstDayNumOfWeek(ExtendedDayNum( + std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -173,11 +159,7 @@ struct ToMondayImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - if (d < 0) - return 0; - - return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)) - ; + return d < 0 ? 0 : time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -193,12 +175,7 @@ struct ToStartOfMonthImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - if (t < 0) - return 0; - - auto day_num = time_zone.toDayNum(t); - - return time_zone.toFirstDayNumOfMonth(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); + return t < 0 ? 0 : time_zone.toFirstDayNumOfMonth(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -206,10 +183,7 @@ struct ToStartOfMonthImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - if (d < 0) - return 0; - - return time_zone.toFirstDayNumOfMonth(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); + return d < 0 ? 0 : time_zone.toFirstDayNumOfMonth(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -225,11 +199,7 @@ struct ToLastDayOfMonthImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - if (t < 0) - return 0; - - auto day_num = time_zone.toDayNum(t); - return time_zone.toLastDayNumOfMonth(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); + return t < 0 ? 0 : time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -237,10 +207,7 @@ struct ToLastDayOfMonthImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - if (d < 0) - return 0; - - return time_zone.toLastDayNumOfMonth(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); + return d < 0 ? 0 : time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -256,12 +223,7 @@ struct ToStartOfQuarterImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - if (t < 0) - return 0; - - auto day_num = time_zone.toDayNum(t); - - return time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); + return t < 0 ? 0 : time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -269,10 +231,7 @@ struct ToStartOfQuarterImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - if (d < 0) - return 0; - - return time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); + return d < 0 ? 0 : time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -288,12 +247,7 @@ struct ToStartOfYearImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - if (t < 0) - return 0; - - auto day_num = time_zone.toDayNum(t); - - return time_zone.toFirstDayNumOfYear(ExtendedDayNum(day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM)); + return t < 0 ? 0 : time_zone.toFirstDayNumOfYear(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -301,10 +255,7 @@ struct ToStartOfYearImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - if (d < 0) - return 0; - - return time_zone.toFirstDayNumOfYear(ExtendedDayNum(d < DATE_LUT_MAX_DAY_NUM ? d : DATE_LUT_MAX_DAY_NUM)); + return d < 0 ? 0 : time_zone.toFirstDayNumOfYear(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -346,13 +297,10 @@ struct ToStartOfMinuteImpl static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & time_zone) { - if (t.whole < 0) + if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) return 0; - auto day_num = time_zone.toDayNum(t.whole); - - return time_zone.toStartOfMinute(day_num < DATE_LUT_MAX_DAY_NUM ? t.whole : INT16_MAX); -// return time_zone.toStartOfMinute(t.whole); + return time_zone.toStartOfMinute(std::min(t.whole, time_t(0xffffffff))); } static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -643,7 +591,10 @@ struct ToStartOfHourImpl static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & time_zone) { - return time_zone.toStartOfHour(t.whole); + if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) + return 0; + + return time_zone.toStartOfHour(std::min(t.whole, time_t(0xffffffff))); } static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone) From 963d838647b87383feec43ea9054e3bd335d9338 Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 22 Aug 2022 13:59:03 +0300 Subject: [PATCH 05/61] updated docs --- .../functions/date-time-functions.md | 16 +++++++++++----- .../functions/date-time-functions.md | 18 +++++++++++++++--- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index d54028582c5..47134d0cb3e 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -266,8 +266,13 @@ Result: └────────────────┘ ``` -:::note -The return type `toStartOf*` functions described below is `Date` or `DateTime`. Though these functions can take `DateTime64` as an argument, passing them a `DateTime64` that is out of the normal range (years 1900 - 2299) will give an incorrect result. +:::Attention +The return type of `toStartOf*`, `toLastDayOfMonth`, `toMonday` functions described below is `Date` or `DateTime`. +Though these functions can take `Date32` and `DateTime64` values as an argument, passing them a time point that is out of the normal range (years 1970 - 2148) will give wrong result. +In case argument is out of normal range: + * `1970-01-01 (00:00:00)` will be returned for values prior to 1970, + * `2106-02-07 08:28:15` will be taken as argument when actual argument is above this timestamp and return type is `DateTime`, + * `2149-06-06` will be taken as argument when actual argument is above this timestamp and return type is `Date`. ::: ## toStartOfYear @@ -291,9 +296,10 @@ Returns the date. Rounds down a date or date with time to the first day of the month. Returns the date. -:::note -The behavior of parsing incorrect dates is implementation specific. ClickHouse may return zero date, throw an exception or do “natural” overflow. -::: +## toLastDayOfMonth + +Rounds up a date or date with time to the last day of the month. +Returns the date. ## toMonday diff --git a/docs/ru/sql-reference/functions/date-time-functions.md b/docs/ru/sql-reference/functions/date-time-functions.md index 9c873b0fcfc..311f5138f69 100644 --- a/docs/ru/sql-reference/functions/date-time-functions.md +++ b/docs/ru/sql-reference/functions/date-time-functions.md @@ -269,6 +269,16 @@ SELECT toUnixTimestamp('2017-11-05 08:07:47', 'Asia/Tokyo') AS unix_timestamp; :::note "Attention" `Date` или `DateTime` это возвращаемый тип функций `toStartOf*`, который описан ниже. Несмотря на то, что эти функции могут принимать `DateTime64` в качестве аргумента, если переданное значение типа `DateTime64` выходит за пределы нормального диапазона (с 1900 по 2299 год), то это даст неверный результат. ::: + +:::Attention +Тип возвращаемого описанными далее функциями `toStartOf*`, `toLastDayOfMonth`, `toMonday` значения - `Date` или `DateTime`. +Хотя эти функции могут принимать значения типа `Date32` или `DateTime64` в качестве аргумента, при обработке аргумента вне нормального диапазона значений (`1970` - `2148` для `Date` и `1970-01-01 00:00:00`-`2106-02-07 08:28:15` для `DateTime`) будет получен некорректный результат. +Возвращаемые значения для значений вне нормального диапазона: +* `1970-01-01 (00:00:00)` будет возвращён для моментов времени до 1970 года, +* `2106-02-07 08:28:15` будет взят в качестве аргумента, если полученный аргумент превосходит данное значение и возвращаемый тип - `DateTime`, +* `2149-06-06` будет взят в качестве аргумента, если полученный аргумент превосходит данное значение и возвращаемый тип - `Date`. + ::: +* ## toStartOfYear {#tostartofyear} Округляет дату или дату-с-временем вниз до первого дня года. @@ -302,9 +312,11 @@ SELECT toStartOfISOYear(toDate('2017-01-01')) AS ISOYear20170101; Округляет дату или дату-с-временем вниз до первого дня месяца. Возвращается дата. - :::note "Attention" - Возвращаемое значение для некорректных дат зависит от реализации. ClickHouse может вернуть нулевую дату, выбросить исключение, или выполнить «естественное» перетекание дат между месяцами. - ::: +## toLastDayOfMonth + +Округляет дату или дату-с-временем до последнего числа месяца. +Возвращается дата. + ## toMonday {#tomonday} Округляет дату или дату-с-временем вниз до ближайшего понедельника. From d789dabc9d94d4010c8fd04d9d3477d7f3cd2dca Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 22 Aug 2022 17:36:10 +0300 Subject: [PATCH 06/61] Fixed , updated docs --- .../functions/date-time-functions.md | 3 ++- .../functions/date-time-functions.md | 5 +++-- src/Functions/DateTimeTransforms.h | 21 ++++++++++++------- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index 47134d0cb3e..3a474f27a11 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -272,7 +272,8 @@ Though these functions can take `Date32` and `DateTime64` values as an argument, In case argument is out of normal range: * `1970-01-01 (00:00:00)` will be returned for values prior to 1970, * `2106-02-07 08:28:15` will be taken as argument when actual argument is above this timestamp and return type is `DateTime`, - * `2149-06-06` will be taken as argument when actual argument is above this timestamp and return type is `Date`. + * `2149-06-06` will be taken as argument when actual argument is above this timestamp and return type is `Date`, + * `2149-05-31` will be the result of execution of `toLastDayOfMonth` when argument is greater then `2149-05-31`. ::: ## toStartOfYear diff --git a/docs/ru/sql-reference/functions/date-time-functions.md b/docs/ru/sql-reference/functions/date-time-functions.md index 311f5138f69..6a17efce35e 100644 --- a/docs/ru/sql-reference/functions/date-time-functions.md +++ b/docs/ru/sql-reference/functions/date-time-functions.md @@ -271,12 +271,13 @@ SELECT toUnixTimestamp('2017-11-05 08:07:47', 'Asia/Tokyo') AS unix_timestamp; ::: :::Attention -Тип возвращаемого описанными далее функциями `toStartOf*`, `toLastDayOfMonth`, `toMonday` значения - `Date` или `DateTime`. +Тип возвращаемого описанными далее функциями `toStartOf*`, `toMonday` значения - `Date` или `DateTime`. Хотя эти функции могут принимать значения типа `Date32` или `DateTime64` в качестве аргумента, при обработке аргумента вне нормального диапазона значений (`1970` - `2148` для `Date` и `1970-01-01 00:00:00`-`2106-02-07 08:28:15` для `DateTime`) будет получен некорректный результат. Возвращаемые значения для значений вне нормального диапазона: * `1970-01-01 (00:00:00)` будет возвращён для моментов времени до 1970 года, * `2106-02-07 08:28:15` будет взят в качестве аргумента, если полученный аргумент превосходит данное значение и возвращаемый тип - `DateTime`, -* `2149-06-06` будет взят в качестве аргумента, если полученный аргумент превосходит данное значение и возвращаемый тип - `Date`. +* `2149-06-06` будет взят в качестве аргумента, если полученный аргумент превосходит данное значение и возвращаемый тип - `Date`, +* `2149-05-31` будет результатом функции `toLastDayOfMonth` при обработке аргумента больше `2149-05-31`. ::: * ## toStartOfYear {#tostartofyear} diff --git a/src/Functions/DateTimeTransforms.h b/src/Functions/DateTimeTransforms.h index c7b8d178802..3b31eafd774 100644 --- a/src/Functions/DateTimeTransforms.h +++ b/src/Functions/DateTimeTransforms.h @@ -114,11 +114,7 @@ struct ToStartOfDayImpl if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) return 0; - Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(t.whole)); - if (date_time <= 0xffffffff) - return date_time; - else - return time_zone.toDate(0xffffffff); + return time_zone.toDate(std::min(t.whole, time_t(0xffffffff))); } static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -199,7 +195,11 @@ struct ToLastDayOfMonthImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return t < 0 ? 0 : time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); + if (t < 0) + return 0; + + /// 0xFFF9 is Int value for 2149-05-31 -- the last day where we can actually find LastDayOfMonth. This will also be the return value. + return time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(0xFFF9)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -207,11 +207,16 @@ struct ToLastDayOfMonthImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return d < 0 ? 0 : time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); + if (d < 0) + return 0; + + /// 0xFFF9 is Int value for 2149-05-31 -- the last day where we can actually find LastDayOfMonth. This will also be the return value. + return time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(d, 0xFFF9))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { - return time_zone.toLastDayNumOfMonth(DayNum(d)); + /// 0xFFF9 is Int value for 2149-05-31 -- the last day where we can actually find LastDayOfMonth. This will also be the return value. + return time_zone.toLastDayNumOfMonth(DayNum(std::min(d, UInt16(0xFFF9)))); } using FactorTransform = ZeroTransform; From 1df3d607c28b9c48e76bd37e0084c6cb6d472cf3 Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 22 Aug 2022 21:45:34 +0300 Subject: [PATCH 07/61] fix tests --- tests/queries/0_stateless/02403_date_time_narrowing.reference | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference index 5f1f37c11ae..d9672fd629a 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.reference +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -10,7 +10,7 @@ toMonday toStartOfMonth 1970-01-01 2149-06-01 1970-01-01 2149-06-01 toLastDayOfMonth -1970-01-01 1970-01-24 1970-01-01 1970-01-24 +1970-01-01 2149-05-31 1970-01-01 2149-05-31 toStartOfQuarter 1970-01-01 2149-04-01 1970-01-01 2149-04-01 toStartOfYear From 6abe09a725aa6597a6ec4501f51ed5547c9632ed Mon Sep 17 00:00:00 2001 From: zvonand Date: Tue, 23 Aug 2022 17:13:39 +0300 Subject: [PATCH 08/61] updated tests + teStartOfWeek --- src/Functions/CustomWeekTransforms.h | 22 ++++++++++-- src/Functions/FunctionCustomWeekToSomething.h | 36 ++++++++----------- src/Functions/FunctionsConversion.h | 2 +- .../02403_date_time_narrowing.reference | 9 +++-- .../0_stateless/02403_date_time_narrowing.sql | 36 ++++++++++++++++--- 5 files changed, 73 insertions(+), 32 deletions(-) diff --git a/src/Functions/CustomWeekTransforms.h b/src/Functions/CustomWeekTransforms.h index c296c8228b1..617beea72bf 100644 --- a/src/Functions/CustomWeekTransforms.h +++ b/src/Functions/CustomWeekTransforms.h @@ -62,7 +62,15 @@ struct ToStartOfWeekImpl static inline UInt16 execute(Int64 t, UInt8 week_mode, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfWeek(time_zone.toDayNum(t), week_mode); + if (t < 0) + return 0; + + auto res = time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM))), week_mode); + + if (res < 0) + return 0; + else + return res; } static inline UInt16 execute(UInt32 t, UInt8 week_mode, const DateLUTImpl & time_zone) { @@ -70,11 +78,19 @@ struct ToStartOfWeekImpl } static inline UInt16 execute(Int32 d, UInt8 week_mode, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(d), week_mode); + if (d < 0) + return 0; + + return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); } static inline UInt16 execute(UInt16 d, UInt8 week_mode, const DateLUTImpl & time_zone) { - return time_zone.toFirstDayNumOfWeek(DayNum(d), week_mode); + auto res = time_zone.toFirstDayNumOfWeek(DayNum(d), week_mode); + + if (res > d) + return 0; + else + return res; } using FactorTransform = ZeroTransform; diff --git a/src/Functions/FunctionCustomWeekToSomething.h b/src/Functions/FunctionCustomWeekToSomething.h index 6ed751fd889..8a0f474a7e8 100644 --- a/src/Functions/FunctionCustomWeekToSomething.h +++ b/src/Functions/FunctionCustomWeekToSomething.h @@ -41,23 +41,20 @@ public: if (!isDate(arguments[0].type) && !isDate32(arguments[0].type) && !isDateTime(arguments[0].type) && !isDateTime64(arguments[0].type)) throw Exception( "Illegal type " + arguments[0].type->getName() + " of argument of function " + getName() - + ". Should be a date or a date with time", + + ". Must be Date, Date32, DateTime or DateTime64.", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); } else if (arguments.size() == 2) { if (!isDate(arguments[0].type) && !isDate32(arguments[0].type) && !isDateTime(arguments[0].type) && !isDateTime64(arguments[0].type)) throw Exception( - "Illegal type " + arguments[0].type->getName() + " of argument of function " + getName() - + ". Should be a date or a date with time", + "Illegal type " + arguments[0].type->getName() + " of 1st argument of function " + getName() + + ". Must be Date, Date32, DateTime or DateTime64.", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); if (!isUInt8(arguments[1].type)) throw Exception( - "Function " + getName() - + " supports 1 or 2 or 3 arguments. The 1st argument " - "must be of type Date or DateTime. The 2nd argument (optional) must be " - "a constant UInt8 with week mode. The 3rd argument (optional) must be " - "a constant string with timezone name", + "Illegal type of 2nd (optional) argument of function " + getName() + + ". Must be constant UInt8 (week mode).", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); } else if (arguments.size() == 3) @@ -65,33 +62,28 @@ public: if (!isDate(arguments[0].type) && !isDate32(arguments[0].type) && !isDateTime(arguments[0].type) && !isDateTime64(arguments[0].type)) throw Exception( "Illegal type " + arguments[0].type->getName() + " of argument of function " + getName() - + ". Should be a date or a date with time", + + ". Must be Date, Date32, DateTime or DateTime64", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); if (!isUInt8(arguments[1].type)) throw Exception( - "Function " + getName() - + " supports 1 or 2 or 3 arguments. The 1st argument " - "must be of type Date or DateTime. The 2nd argument (optional) must be " - "a constant UInt8 with week mode. The 3rd argument (optional) must be " - "a constant string with timezone name", + "Illegal type of 2nd (optional) argument of function " + getName() + + ". Must be constant UInt8 (week mode).", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); if (!isString(arguments[2].type)) throw Exception( - "Function " + getName() - + " supports 1 or 2 or 3 arguments. The 1st argument " - "must be of type Date or DateTime. The 2nd argument (optional) must be " - "a constant UInt8 with week mode. The 3rd argument (optional) must be " - "a constant string with timezone name", + "Illegal type of 3rd (optional) argument of function " + getName() + + ". Must be constant string (timezone name).", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); - if (isDate(arguments[0].type) && std::is_same_v) + if ((isDate(arguments[0].type) || isDate32(arguments[0].type)) + && (std::is_same_v || std::is_same_v)) throw Exception( - "The timezone argument of function " + getName() + " is allowed only when the 1st argument has the type DateTime", + "The timezone argument of function " + getName() + " is allowed only when the 1st argument is DateTime or DateTime64.", ErrorCodes::ILLEGAL_TYPE_OF_ARGUMENT); } else throw Exception( "Number of arguments for function " + getName() + " doesn't match: passed " + toString(arguments.size()) - + ", should be 1 or 2 or 3", + + ", expected 1, 2 or 3.", ErrorCodes::NUMBER_OF_ARGUMENTS_DOESNT_MATCH); return std::make_shared(); diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index 9062f3a5846..94b81a51711 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -388,7 +388,7 @@ struct ToDateTransform32Or64Signed if (from < 0) return 0; - auto day_num = time_zone.toDayNum(from); + auto day_num = time_zone.toDayNum(ExtendedDayNum(from)); return day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM; } }; diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference index d9672fd629a..af762d70d7a 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.reference +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -1,3 +1,4 @@ +1970-01-01 2149-06-06 1970-01-01 2149-06-06 1900-01-01 1970-01-02 1970-01-01 2149-06-06 1970-01-01 2149-06-06 1970-01-01 00:00:00 2106-02-07 06:28:15 @@ -5,12 +6,16 @@ 2106-02-07 06:28:15 toStartOfDay 1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 +toStartOfWeek +1970-01-01 2149-06-03 1970-01-01 1970-01-01 1970-01-01 2149-06-01 1970-01-01 2149-06-01 toMonday -1970-01-01 2149-06-02 1970-01-01 2149-06-02 +1970-01-01 1970-01-01 2149-06-02 1970-01-01 2149-06-02 +toStartOfMonth +1970-01-01 2149-06-01 1970-01-01 2149-06-01 toStartOfMonth 1970-01-01 2149-06-01 1970-01-01 2149-06-01 toLastDayOfMonth -1970-01-01 2149-05-31 1970-01-01 2149-05-31 +2149-05-31 1970-01-01 2149-05-31 1970-01-01 2149-05-31 toStartOfQuarter 1970-01-01 2149-04-01 1970-01-01 2149-04-01 toStartOfYear diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.sql b/tests/queries/0_stateless/02403_date_time_narrowing.sql index ff7f0b1f020..7fd47a664fe 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.sql +++ b/tests/queries/0_stateless/02403_date_time_narrowing.sql @@ -1,5 +1,14 @@ -SELECT toDate(toDate32('1930-01-01', 'UTC'), 'UTC'), - toDate(toDate32('2151-01-01', 'UTC'), 'UTC'); +-- check conversion of overflown numbers to date/time -- +SELECT toDate(toInt32(toDate32('1930-01-01'))), + toDate(toInt32(toDate32('2151-01-01'))), + toDate(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3))), + toDate(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3))), + toDate32(toInt32(toDate32('1900-01-01')) - 1), + toDate32(toInt32(toDate32('2299-12-31')) + 1); + +-- check conversion of extended range type to normal range type -- +SELECT toDate(toDate32('1930-01-01')), + toDate(toDate32('2151-01-01')); SELECT toDate(toDateTime64('1930-01-01 12:12:12.12', 3, 'UTC'), 'UTC'), toDate(toDateTime64('2151-01-01 12:12:12.12', 3, 'UTC'), 'UTC'); @@ -12,6 +21,7 @@ SELECT toDateTime(toDate32('1930-01-01', 'UTC'), 'UTC'), SELECT toDateTime(toDate('2141-01-01', 'UTC'), 'UTC'); +-- test DateTimeTransforms -- SELECT 'toStartOfDay'; SELECT toStartOfDay(toDate('1930-01-01', 'UTC'), 'UTC'), toStartOfDay(toDate('2141-01-01', 'UTC'), 'UTC'), @@ -20,8 +30,19 @@ SELECT toStartOfDay(toDate('1930-01-01', 'UTC'), 'UTC'), toStartOfDay(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toStartOfDay(toDateTime64('2141-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); +SELECT 'toStartOfWeek'; +SELECT toStartOfWeek(toDate('1970-01-01')), + toStartOfWeek(toDate32('1970-01-01')), + toStartOfWeek(toDateTime('1970-01-01 10:10:10')), + toStartOfWeek(toDateTime64('1970-01-01 10:10:10.123', 3)), + toStartOfWeek(toDate32('1930-01-01')), + toStartOfWeek(toDate32('2151-01-01')), + toStartOfWeek(toDateTime64('1930-01-01 12:12:12.123', 3)), + toStartOfWeek(toDateTime64('2151-01-01 12:12:12.123', 3)); + SELECT 'toMonday'; -SELECT toMonday(toDate32('1930-01-01', 'UTC')), +SELECT toMonday(toDate('1970-01-02')), + toMonday(toDate32('1930-01-01', 'UTC')), toMonday(toDate32('2151-01-01', 'UTC')), toMonday(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toMonday(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); @@ -32,8 +53,15 @@ SELECT toStartOfMonth(toDate32('1930-01-01', 'UTC')), toStartOfMonth(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toStartOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); +SELECT 'toStartOfMonth'; +SELECT toStartOfMonth(toDate32('1930-01-01', 'UTC')), + toStartOfMonth(toDate32('2151-01-01', 'UTC')), + toStartOfMonth(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), + toStartOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); + SELECT 'toLastDayOfMonth'; -SELECT toLastDayOfMonth(toDate32('1930-01-01', 'UTC')), +SELECT toLastDayOfMonth(toDate('2149-06-03')), + toLastDayOfMonth(toDate32('1930-01-01', 'UTC')), toLastDayOfMonth(toDate32('2151-01-01', 'UTC')), toLastDayOfMonth(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toLastDayOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); From 6dd9f7fd23822ad5866de0ce5c723e2667d0aa63 Mon Sep 17 00:00:00 2001 From: zvonand Date: Tue, 23 Aug 2022 17:15:20 +0300 Subject: [PATCH 09/61] fix identation --- tests/queries/0_stateless/02403_date_time_narrowing.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.sql b/tests/queries/0_stateless/02403_date_time_narrowing.sql index 7fd47a664fe..511c222bda0 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.sql +++ b/tests/queries/0_stateless/02403_date_time_narrowing.sql @@ -76,4 +76,4 @@ SELECT 'toStartOfYear'; SELECT toStartOfYear(toDate32('1930-01-01', 'UTC')), toStartOfYear(toDate32('2151-01-01', 'UTC')), toStartOfYear(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), - toStartOfYear(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); \ No newline at end of file + toStartOfYear(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); From 42f86442abb116a8bb7aee41b22502dc1b6a8604 Mon Sep 17 00:00:00 2001 From: zvonand Date: Tue, 23 Aug 2022 18:32:55 +0300 Subject: [PATCH 10/61] updated tests + toStartOfWeek --- src/Functions/CustomWeekTransforms.h | 7 ++++++- src/Functions/FunctionsConversion.h | 5 +++-- .../0_stateless/02403_date_time_narrowing.reference | 6 +++--- tests/queries/0_stateless/02403_date_time_narrowing.sql | 5 ++--- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/Functions/CustomWeekTransforms.h b/src/Functions/CustomWeekTransforms.h index 617beea72bf..2e783eb953d 100644 --- a/src/Functions/CustomWeekTransforms.h +++ b/src/Functions/CustomWeekTransforms.h @@ -81,7 +81,12 @@ struct ToStartOfWeekImpl if (d < 0) return 0; - return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); + auto res = time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); + + if (res < 0) + return 0; + else + return res; } static inline UInt16 execute(UInt16 d, UInt8 week_mode, const DateLUTImpl & time_zone) { diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index 94b81a51711..63e4633ccb5 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -434,9 +434,10 @@ struct ToDate32Transform32Or64Signed static const Int32 daynum_min_offset = -static_cast(DateLUT::instance().getDayNumOffsetEpoch()); if (from < daynum_min_offset) return daynum_min_offset; - return (from < DATE_LUT_MAX_EXTEND_DAY_NUM) + + return (time_zone.toDayNum(from) < DATE_LUT_MAX_EXTEND_DAY_NUM) ? from - : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF))); + : time_zone.toDayNum(std::min(time_t(from), time_t(DATE_LUT_MAX_EXTEND_DAY_NUM))); } }; diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference index af762d70d7a..cbdac452cfa 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.reference +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -1,13 +1,13 @@ -1970-01-01 2149-06-06 1970-01-01 2149-06-06 1900-01-01 1970-01-02 +1970-01-01 2149-06-06 1970-01-01 2149-06-06 1900-01-01 2299-12-31 1970-01-01 2149-06-06 1970-01-01 2149-06-06 1970-01-01 00:00:00 2106-02-07 06:28:15 1970-01-01 00:00:00 2106-02-07 06:28:15 2106-02-07 06:28:15 toStartOfDay -1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 +2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 toStartOfWeek -1970-01-01 2149-06-03 1970-01-01 1970-01-01 1970-01-01 2149-06-01 1970-01-01 2149-06-01 +1970-01-01 1970-01-01 1970-01-01 1970-01-01 1970-01-01 2149-06-01 1970-01-01 2149-06-01 toMonday 1970-01-01 1970-01-01 2149-06-02 1970-01-01 2149-06-02 toStartOfMonth diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.sql b/tests/queries/0_stateless/02403_date_time_narrowing.sql index 511c222bda0..d32bac1a47b 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.sql +++ b/tests/queries/0_stateless/02403_date_time_narrowing.sql @@ -1,4 +1,4 @@ --- check conversion of overflown numbers to date/time -- +-- check conversion of numbers to date/time -- SELECT toDate(toInt32(toDate32('1930-01-01'))), toDate(toInt32(toDate32('2151-01-01'))), toDate(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3))), @@ -23,8 +23,7 @@ SELECT toDateTime(toDate('2141-01-01', 'UTC'), 'UTC'); -- test DateTimeTransforms -- SELECT 'toStartOfDay'; -SELECT toStartOfDay(toDate('1930-01-01', 'UTC'), 'UTC'), - toStartOfDay(toDate('2141-01-01', 'UTC'), 'UTC'), +SELECT toStartOfDay(toDate('2141-01-01', 'UTC'), 'UTC'), toStartOfDay(toDate32('1930-01-01', 'UTC'), 'UTC'), toStartOfDay(toDate32('2141-01-01', 'UTC'), 'UTC'), toStartOfDay(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), From e4f00e2f150d0cdb39594e995bc63dafa697b9c8 Mon Sep 17 00:00:00 2001 From: Andrey Zvonov <32552679+zvonand@users.noreply.github.com> Date: Tue, 23 Aug 2022 23:40:34 +0300 Subject: [PATCH 11/61] Update docs 1 Co-authored-by: Robert Schulze --- docs/en/sql-reference/functions/date-time-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index 3a474f27a11..2795ca0b9e4 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -272,7 +272,7 @@ Though these functions can take `Date32` and `DateTime64` values as an argument, In case argument is out of normal range: * `1970-01-01 (00:00:00)` will be returned for values prior to 1970, * `2106-02-07 08:28:15` will be taken as argument when actual argument is above this timestamp and return type is `DateTime`, - * `2149-06-06` will be taken as argument when actual argument is above this timestamp and return type is `Date`, + * If the return type is `Date` and the argument is larger than `2149-06-06`, the result will be calculated from the argument `2149-06-06` instead. * `2149-05-31` will be the result of execution of `toLastDayOfMonth` when argument is greater then `2149-05-31`. ::: From 946223df20772f92dbcfedfd812d74264768b6e3 Mon Sep 17 00:00:00 2001 From: Andrey Zvonov <32552679+zvonand@users.noreply.github.com> Date: Tue, 23 Aug 2022 23:41:01 +0300 Subject: [PATCH 12/61] Update docs/en/sql-reference/functions/date-time-functions.md Co-authored-by: Robert Schulze --- docs/en/sql-reference/functions/date-time-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index 2795ca0b9e4..d1e75fbf1b0 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -268,7 +268,7 @@ Result: :::Attention The return type of `toStartOf*`, `toLastDayOfMonth`, `toMonday` functions described below is `Date` or `DateTime`. -Though these functions can take `Date32` and `DateTime64` values as an argument, passing them a time point that is out of the normal range (years 1970 - 2148) will give wrong result. +Though these functions can take values of the extended types `Date32` and `DateTime64` as an argument, passing them a time outside the normal range (year 1970 to 2149 for `Date` / 2106 for `DateTime`) will produce wrong results. In case argument is out of normal range: * `1970-01-01 (00:00:00)` will be returned for values prior to 1970, * `2106-02-07 08:28:15` will be taken as argument when actual argument is above this timestamp and return type is `DateTime`, From 6c1fa6844fcef8f0ff786f09e79d2e61a6eb61fa Mon Sep 17 00:00:00 2001 From: Andrey Zvonov <32552679+zvonand@users.noreply.github.com> Date: Tue, 23 Aug 2022 23:41:19 +0300 Subject: [PATCH 13/61] Update docs/en/sql-reference/functions/date-time-functions.md Co-authored-by: Robert Schulze --- docs/en/sql-reference/functions/date-time-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index d1e75fbf1b0..e5b6443596f 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -270,7 +270,7 @@ Result: The return type of `toStartOf*`, `toLastDayOfMonth`, `toMonday` functions described below is `Date` or `DateTime`. Though these functions can take values of the extended types `Date32` and `DateTime64` as an argument, passing them a time outside the normal range (year 1970 to 2149 for `Date` / 2106 for `DateTime`) will produce wrong results. In case argument is out of normal range: - * `1970-01-01 (00:00:00)` will be returned for values prior to 1970, + * If the argument is smaller than 1970, the result will be calculated from the argument `1970-01-01 (00:00:00)` instead. * `2106-02-07 08:28:15` will be taken as argument when actual argument is above this timestamp and return type is `DateTime`, * If the return type is `Date` and the argument is larger than `2149-06-06`, the result will be calculated from the argument `2149-06-06` instead. * `2149-05-31` will be the result of execution of `toLastDayOfMonth` when argument is greater then `2149-05-31`. From b54a04d48fa8a8cfebd3d937c562566b78703ca8 Mon Sep 17 00:00:00 2001 From: Andrey Zvonov <32552679+zvonand@users.noreply.github.com> Date: Tue, 23 Aug 2022 23:42:01 +0300 Subject: [PATCH 14/61] Update docs/en/sql-reference/functions/date-time-functions.md Co-authored-by: Robert Schulze --- docs/en/sql-reference/functions/date-time-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index e5b6443596f..70dacd40ad1 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -271,7 +271,7 @@ The return type of `toStartOf*`, `toLastDayOfMonth`, `toMonday` functions descri Though these functions can take values of the extended types `Date32` and `DateTime64` as an argument, passing them a time outside the normal range (year 1970 to 2149 for `Date` / 2106 for `DateTime`) will produce wrong results. In case argument is out of normal range: * If the argument is smaller than 1970, the result will be calculated from the argument `1970-01-01 (00:00:00)` instead. - * `2106-02-07 08:28:15` will be taken as argument when actual argument is above this timestamp and return type is `DateTime`, + * If the return type is `DateTime` and the argument is larger than `2106-02-07 08:28:15`, the result will be calculated from the argument `2106-02-07 08:28:15` instead. * If the return type is `Date` and the argument is larger than `2149-06-06`, the result will be calculated from the argument `2149-06-06` instead. * `2149-05-31` will be the result of execution of `toLastDayOfMonth` when argument is greater then `2149-05-31`. ::: From f40bd2194f9d3c841b0aaf557707ef11f8e26178 Mon Sep 17 00:00:00 2001 From: Andrey Zvonov <32552679+zvonand@users.noreply.github.com> Date: Tue, 23 Aug 2022 23:42:19 +0300 Subject: [PATCH 15/61] Update docs/en/sql-reference/functions/date-time-functions.md Co-authored-by: Robert Schulze --- docs/en/sql-reference/functions/date-time-functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index 70dacd40ad1..a9eca5541dc 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -273,7 +273,7 @@ In case argument is out of normal range: * If the argument is smaller than 1970, the result will be calculated from the argument `1970-01-01 (00:00:00)` instead. * If the return type is `DateTime` and the argument is larger than `2106-02-07 08:28:15`, the result will be calculated from the argument `2106-02-07 08:28:15` instead. * If the return type is `Date` and the argument is larger than `2149-06-06`, the result will be calculated from the argument `2149-06-06` instead. - * `2149-05-31` will be the result of execution of `toLastDayOfMonth` when argument is greater then `2149-05-31`. + * If `toLastDayOfMonth` is called with an argument greater then `2149-05-31`, the result will be calculated from the argument `2149-05-31` instead. ::: ## toStartOfYear From a9fd73387119ca8f91732f7e31a39c588ac10074 Mon Sep 17 00:00:00 2001 From: zvonand Date: Mon, 22 Aug 2022 13:59:03 +0300 Subject: [PATCH 16/61] updated docs --- .../en/sql-reference/functions/date-time-functions.md | 4 ++-- .../ru/sql-reference/functions/date-time-functions.md | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index a9eca5541dc..6f137da78f9 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -267,7 +267,7 @@ Result: ``` :::Attention -The return type of `toStartOf*`, `toLastDayOfMonth`, `toMonday` functions described below is `Date` or `DateTime`. +The return type of `toStartOf*`, `toLastDayOfMonth`, `toMonday` functions described below is `Date` or `DateTime`. Though these functions can take values of the extended types `Date32` and `DateTime64` as an argument, passing them a time outside the normal range (year 1970 to 2149 for `Date` / 2106 for `DateTime`) will produce wrong results. In case argument is out of normal range: * If the argument is smaller than 1970, the result will be calculated from the argument `1970-01-01 (00:00:00)` instead. @@ -1046,7 +1046,7 @@ Example: SELECT timeSlots(toDateTime('2012-01-01 12:20:00'), toUInt32(600)); SELECT timeSlots(toDateTime('1980-12-12 21:01:02', 'UTC'), toUInt32(600), 299); SELECT timeSlots(toDateTime64('1980-12-12 21:01:02.1234', 4, 'UTC'), toDecimal64(600.1, 1), toDecimal64(299, 0)); -``` +``` ``` text ┌─timeSlots(toDateTime('2012-01-01 12:20:00'), toUInt32(600))─┐ │ ['2012-01-01 12:00:00','2012-01-01 12:30:00'] │ diff --git a/docs/ru/sql-reference/functions/date-time-functions.md b/docs/ru/sql-reference/functions/date-time-functions.md index 2a74db69ad6..56f3b3d7ddf 100644 --- a/docs/ru/sql-reference/functions/date-time-functions.md +++ b/docs/ru/sql-reference/functions/date-time-functions.md @@ -276,6 +276,15 @@ SELECT toUnixTimestamp('2017-11-05 08:07:47', 'Asia/Tokyo') AS unix_timestamp; * `2149-05-31` будет результатом функции `toLastDayOfMonth` при обработке аргумента больше `2149-05-31`. ::: +:::Attention +Тип возвращаемого описанными далее функциями `toStartOf*`, `toLastDayOfMonth`, `toMonday` значения - `Date` или `DateTime`. +Хотя эти функции могут принимать значения типа `Date32` или `DateTime64` в качестве аргумента, при обработке аргумента вне нормального диапазона значений (`1970` - `2148` для `Date` и `1970-01-01 00:00:00`-`2106-02-07 08:28:15` для `DateTime`) будет получен некорректный результат. +Возвращаемые значения для значений вне нормального диапазона: +* `1970-01-01 (00:00:00)` будет возвращён для моментов времени до 1970 года, +* `2106-02-07 08:28:15` будет взят в качестве аргумента, если полученный аргумент превосходит данное значение и возвращаемый тип - `DateTime`, +* `2149-06-06` будет взят в качестве аргумента, если полученный аргумент превосходит данное значение и возвращаемый тип - `Date`. + ::: +* ## toStartOfYear {#tostartofyear} Округляет дату или дату-с-временем вниз до первого дня года. @@ -964,7 +973,7 @@ SELECT now('Europe/Moscow'); ## timeSlots(StartTime, Duration,\[, Size\]) {#timeslotsstarttime-duration-size} Для интервала, начинающегося в `StartTime` и длящегося `Duration` секунд, возвращает массив моментов времени, кратных `Size`. Параметр `Size` указывать необязательно, по умолчанию он равен 1800 секундам (30 минутам) - необязательный параметр. -Данная функция может использоваться, например, для анализа количества просмотров страницы за соответствующую сессию. +Данная функция может использоваться, например, для анализа количества просмотров страницы за соответствующую сессию. Аргумент `StartTime` может иметь тип `DateTime` или `DateTime64`. В случае, если используется `DateTime`, аргументы `Duration` и `Size` должны иметь тип `UInt32`; Для DateTime64 они должны быть типа `Decimal64`. Возвращает массив DateTime/DateTime64 (тип будет совпадать с типом параметра ’StartTime’). Для DateTime64 масштаб(scale) возвращаемой величины может отличаться от масштаба фргумента ’StartTime’ --- результат будет иметь наибольший масштаб среди всех данных аргументов. From e257f9d0cda4690fdfb1d911026a52f06094d6fd Mon Sep 17 00:00:00 2001 From: zvonand Date: Wed, 24 Aug 2022 00:44:08 +0300 Subject: [PATCH 17/61] update docs, tests + small fixes --- .../functions/date-time-functions.md | 4 +++- .../functions/date-time-functions.md | 4 +++- src/Functions/CustomWeekTransforms.h | 24 +++++++++---------- src/Functions/DateTimeTransforms.h | 4 ++-- src/Functions/FunctionsConversion.h | 9 ++++--- .../02403_date_time_narrowing.reference | 2 +- .../0_stateless/02403_date_time_narrowing.sql | 4 +++- 7 files changed, 28 insertions(+), 23 deletions(-) diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index 6f137da78f9..2c1fcd05bf7 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -305,13 +305,15 @@ Returns the date. ## toMonday Rounds down a date or date with time to the nearest Monday. +As a special case, date arguments `1970-01-01`, `1970-01-02`, `1970-01-03` and `1970-01-04` return date `1970-01-01`. Returns the date. ## toStartOfWeek(t\[,mode\]) Rounds down a date or date with time to the nearest Sunday or Monday by mode. Returns the date. -The mode argument works exactly like the mode argument to toWeek(). For the single-argument syntax, a mode value of 0 is used. +As a special case, date arguments `1970-01-01`, `1970-01-02`, `1970-01-03` and `1970-01-04` (and `1970-01-05` if `mode` is `1`) return date `1970-01-01`. +The `mode` argument works exactly like the mode argument to toWeek(). For the single-argument syntax, a mode value of 0 is used. ## toStartOfDay diff --git a/docs/ru/sql-reference/functions/date-time-functions.md b/docs/ru/sql-reference/functions/date-time-functions.md index 56f3b3d7ddf..dbd4151f31e 100644 --- a/docs/ru/sql-reference/functions/date-time-functions.md +++ b/docs/ru/sql-reference/functions/date-time-functions.md @@ -326,13 +326,15 @@ SELECT toStartOfISOYear(toDate('2017-01-01')) AS ISOYear20170101; ## toMonday {#tomonday} Округляет дату или дату-с-временем вниз до ближайшего понедельника. +Частный случай: для дат `1970-01-01`, `1970-01-02`, `1970-01-03` и `1970-01-04` результатом будет `1970-01-01`. Возвращается дата. ## toStartOfWeek(t[,mode]) {#tostartofweek} Округляет дату или дату со временем до ближайшего воскресенья или понедельника в соответствии с mode. Возвращается дата. -Аргумент mode работает точно так же, как аргумент mode [toWeek()](#toweek). Если аргумент mode опущен, то используется режим 0. +Частный случай: для дат `1970-01-01`, `1970-01-02`, `1970-01-03` и `1970-01-04` (и `1970-01-05`, если `mode` равен `1`) результатом будет `1970-01-01`. +Аргумент `mode` работает точно так же, как аргумент mode [toWeek()](#toweek). Если аргумент mode опущен, то используется режим 0. ## toStartOfDay {#tostartofday} diff --git a/src/Functions/CustomWeekTransforms.h b/src/Functions/CustomWeekTransforms.h index 2e783eb953d..1b6eb590f74 100644 --- a/src/Functions/CustomWeekTransforms.h +++ b/src/Functions/CustomWeekTransforms.h @@ -65,12 +65,12 @@ struct ToStartOfWeekImpl if (t < 0) return 0; - auto res = time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM))), week_mode); - - if (res < 0) - return 0; - else - return res; + return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM))), week_mode); +// +// if (res < 0) +// return 0; +// else +// return res; } static inline UInt16 execute(UInt32 t, UInt8 week_mode, const DateLUTImpl & time_zone) { @@ -81,12 +81,12 @@ struct ToStartOfWeekImpl if (d < 0) return 0; - auto res = time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); - - if (res < 0) - return 0; - else - return res; + return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); +// +// if (res < 0) +// return 0; +// else +// return res; } static inline UInt16 execute(UInt16 d, UInt8 week_mode, const DateLUTImpl & time_zone) { diff --git a/src/Functions/DateTimeTransforms.h b/src/Functions/DateTimeTransforms.h index 3b31eafd774..8af908abdae 100644 --- a/src/Functions/DateTimeTransforms.h +++ b/src/Functions/DateTimeTransforms.h @@ -125,7 +125,7 @@ struct ToStartOfDayImpl if (d < 0) return 0; - Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(d)); + auto date_time = time_zone.fromDayNum(ExtendedDayNum(d)); if (date_time <= 0xffffffff) return date_time; else @@ -133,7 +133,7 @@ struct ToStartOfDayImpl } static inline UInt32 execute(UInt16 d, const DateLUTImpl & time_zone) { - Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(d)); + auto date_time = time_zone.fromDayNum(ExtendedDayNum(d)); return date_time < 0xffffffff ? date_time : time_zone.toDate(0xffffffff); } diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index 63e4633ccb5..40d5b754c9f 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -324,7 +324,7 @@ struct ToDateTimeImpl static inline UInt32 execute(UInt16 d, const DateLUTImpl & time_zone) { - Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(d)); + auto date_time = time_zone.fromDayNum(ExtendedDayNum(d)); return date_time <= 0xffffffff ? UInt32(date_time) : UInt32(0xffffffff); } @@ -333,7 +333,7 @@ struct ToDateTimeImpl if (d < 0) return 0; - Int64 date_time = time_zone.fromDayNum(ExtendedDayNum(d)); + auto date_time = time_zone.fromDayNum(ExtendedDayNum(d)); return date_time <= 0xffffffff ? UInt32(date_time) : UInt32(0xffffffff); } @@ -344,11 +344,10 @@ struct ToDateTimeImpl static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & time_zone) { - if (t.whole < 0) + if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) return 0; - auto day_num = time_zone.toDayNum(t.whole); - return (day_num < DATE_LUT_MAX_DAY_NUM) ? t.whole : time_t(0xFFFFFFFF); + return time_zone.toDayNum(std::min(t.whole, time_t(0xFFFFFFFF))); } }; diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference index cbdac452cfa..3196be6332e 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.reference +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -1,4 +1,4 @@ -1970-01-01 2149-06-06 1970-01-01 2149-06-06 1900-01-01 2299-12-31 +1970-01-01 2149-06-06 1970-01-01 2149-06-06 1900-01-01 2299-12-31 1970-01-01 03:00:00 1970-01-01 21:12:15 1970-01-01 2149-06-06 1970-01-01 2149-06-06 1970-01-01 00:00:00 2106-02-07 06:28:15 diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.sql b/tests/queries/0_stateless/02403_date_time_narrowing.sql index d32bac1a47b..ddadf507055 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.sql +++ b/tests/queries/0_stateless/02403_date_time_narrowing.sql @@ -4,7 +4,9 @@ SELECT toDate(toInt32(toDate32('1930-01-01'))), toDate(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3))), toDate(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3))), toDate32(toInt32(toDate32('1900-01-01')) - 1), - toDate32(toInt32(toDate32('2299-12-31')) + 1); + toDate32(toInt32(toDate32('2299-12-31')) + 1), + toDateTime(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3))), + toDateTime(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3))); -- check conversion of extended range type to normal range type -- SELECT toDate(toDate32('1930-01-01')), From b4564099f9c5aef48a4644acb759666a43aeaa9e Mon Sep 17 00:00:00 2001 From: zvonand Date: Wed, 24 Aug 2022 17:07:30 +0300 Subject: [PATCH 18/61] fix inherited parts --- src/Functions/CustomWeekTransforms.h | 26 +++++++++++++------------- src/Functions/FunctionsConversion.h | 15 ++++++--------- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/Functions/CustomWeekTransforms.h b/src/Functions/CustomWeekTransforms.h index 1b6eb590f74..3f520d12420 100644 --- a/src/Functions/CustomWeekTransforms.h +++ b/src/Functions/CustomWeekTransforms.h @@ -65,12 +65,12 @@ struct ToStartOfWeekImpl if (t < 0) return 0; - return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM))), week_mode); -// -// if (res < 0) -// return 0; -// else -// return res; + auto res = time_zone.toFirstDayNumOfWeek(DayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM))), week_mode); + + if (res > time_zone.toDayNum(t)) + return 0; + else + return res; } static inline UInt16 execute(UInt32 t, UInt8 week_mode, const DateLUTImpl & time_zone) { @@ -81,16 +81,16 @@ struct ToStartOfWeekImpl if (d < 0) return 0; - return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); -// -// if (res < 0) -// return 0; -// else -// return res; + auto res = time_zone.toFirstDayNumOfWeek(DayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); + + if (res > d) + return 0; + else + return res; } static inline UInt16 execute(UInt16 d, UInt8 week_mode, const DateLUTImpl & time_zone) { - auto res = time_zone.toFirstDayNumOfWeek(DayNum(d), week_mode); + auto res = time_zone.toFirstDayNumOfWeek(d, week_mode); if (res > d) return 0; diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index 40d5b754c9f..6bd6f480eed 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -342,12 +342,12 @@ struct ToDateTimeImpl return dt; } - static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & time_zone) + static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & /*time_zone*/) { if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) return 0; - return time_zone.toDayNum(std::min(t.whole, time_t(0xFFFFFFFF))); + return std::min(t.whole, time_t(0xFFFFFFFF)); } }; @@ -417,9 +417,7 @@ struct ToDate32Transform32Or64 static inline NO_SANITIZE_UNDEFINED ToType execute(const FromType & from, const DateLUTImpl & time_zone) { - return (from < DATE_LUT_MAX_EXTEND_DAY_NUM) - ? from - : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF))); + return std::min(time_t(time_zone.toDayNum(from)), time_t(DATE_LUT_MAX_EXTEND_DAY_NUM)); } }; @@ -434,9 +432,7 @@ struct ToDate32Transform32Or64Signed if (from < daynum_min_offset) return daynum_min_offset; - return (time_zone.toDayNum(from) < DATE_LUT_MAX_EXTEND_DAY_NUM) - ? from - : time_zone.toDayNum(std::min(time_t(from), time_t(DATE_LUT_MAX_EXTEND_DAY_NUM))); + return std::min(time_t(time_zone.toDayNum(from)), time_t(DATE_LUT_MAX_EXTEND_DAY_NUM)); } }; @@ -689,7 +685,8 @@ struct ToDateTime64Transform inline DateTime64::NativeType execute(Int32 d, const DateLUTImpl & time_zone) const { - const auto dt = ToDateTimeImpl::execute(d, time_zone); +// const auto dt = ToDateTimeImpl::execute(d, time_zone); + const auto dt = time_zone.fromDayNum(ExtendedDayNum(d)); return DecimalUtils::decimalFromComponentsWithMultiplier(dt, 0, scale_multiplier); } From 5c004289403b3123ed61f93c624eb1eae3ef8eb4 Mon Sep 17 00:00:00 2001 From: zvonand Date: Wed, 24 Aug 2022 19:46:17 +0300 Subject: [PATCH 19/61] updated as was before --- src/Functions/FunctionsConversion.h | 17 +++++++++++++---- .../02403_date_time_narrowing.reference | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index 6bd6f480eed..b60f9f739f5 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -334,7 +334,7 @@ struct ToDateTimeImpl return 0; auto date_time = time_zone.fromDayNum(ExtendedDayNum(d)); - return date_time <= 0xffffffff ? UInt32(date_time) : UInt32(0xffffffff); + return date_time <= 0xffffffff ? date_time : 0xffffffff; } static inline UInt32 execute(UInt32 dt, const DateLUTImpl & /*time_zone*/) @@ -342,6 +342,15 @@ struct ToDateTimeImpl return dt; } + static inline UInt32 execute(Int64 d, const DateLUTImpl & time_zone) + { + if (d < 0) + return 0; + + auto date_time = time_zone.toDate(d); + return date_time <= 0xffffffff ? date_time : 0xffffffff; + } + static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & /*time_zone*/) { if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) @@ -431,8 +440,9 @@ struct ToDate32Transform32Or64Signed static const Int32 daynum_min_offset = -static_cast(DateLUT::instance().getDayNumOffsetEpoch()); if (from < daynum_min_offset) return daynum_min_offset; - - return std::min(time_t(time_zone.toDayNum(from)), time_t(DATE_LUT_MAX_EXTEND_DAY_NUM)); + return (from < DATE_LUT_MAX_EXTEND_DAY_NUM) + ? from + : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF))); } }; @@ -685,7 +695,6 @@ struct ToDateTime64Transform inline DateTime64::NativeType execute(Int32 d, const DateLUTImpl & time_zone) const { -// const auto dt = ToDateTimeImpl::execute(d, time_zone); const auto dt = time_zone.fromDayNum(ExtendedDayNum(d)); return DecimalUtils::decimalFromComponentsWithMultiplier(dt, 0, scale_multiplier); } diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference index 3196be6332e..3d8e09ac5e1 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.reference +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -1,4 +1,4 @@ -1970-01-01 2149-06-06 1970-01-01 2149-06-06 1900-01-01 2299-12-31 1970-01-01 03:00:00 1970-01-01 21:12:15 +1970-01-01 2149-06-06 1970-01-01 2149-06-06 1900-01-01 1970-01-02 1970-01-01 03:00:00 1970-01-01 21:12:15 1970-01-01 2149-06-06 1970-01-01 2149-06-06 1970-01-01 00:00:00 2106-02-07 06:28:15 From a61fd73c882ab7b2c852fde8e8eddf2bb5181ada Mon Sep 17 00:00:00 2001 From: zvonand Date: Thu, 25 Aug 2022 00:26:44 +0300 Subject: [PATCH 20/61] fix test fails --- src/Functions/CustomWeekTransforms.h | 21 ++------ src/Functions/FunctionsConversion.h | 24 ++++++---- .../0_stateless/00941_to_custom_week.sql | 1 - .../01440_to_date_monotonicity.reference | 2 +- .../01921_datatype_date32.reference | 48 +++++++++---------- .../02403_date_time_narrowing.reference | 2 +- .../0_stateless/02403_date_time_narrowing.sql | 12 ++--- 7 files changed, 50 insertions(+), 60 deletions(-) diff --git a/src/Functions/CustomWeekTransforms.h b/src/Functions/CustomWeekTransforms.h index 3f520d12420..3fd5cd07824 100644 --- a/src/Functions/CustomWeekTransforms.h +++ b/src/Functions/CustomWeekTransforms.h @@ -65,12 +65,7 @@ struct ToStartOfWeekImpl if (t < 0) return 0; - auto res = time_zone.toFirstDayNumOfWeek(DayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM))), week_mode); - - if (res > time_zone.toDayNum(t)) - return 0; - else - return res; + return time_zone.toFirstDayNumOfWeek(DayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM))), week_mode); } static inline UInt16 execute(UInt32 t, UInt8 week_mode, const DateLUTImpl & time_zone) { @@ -81,21 +76,11 @@ struct ToStartOfWeekImpl if (d < 0) return 0; - auto res = time_zone.toFirstDayNumOfWeek(DayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); - - if (res > d) - return 0; - else - return res; + return time_zone.toFirstDayNumOfWeek(DayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); } static inline UInt16 execute(UInt16 d, UInt8 week_mode, const DateLUTImpl & time_zone) { - auto res = time_zone.toFirstDayNumOfWeek(d, week_mode); - - if (res > d) - return 0; - else - return res; + return time_zone.toFirstDayNumOfWeek(DayNum(d), week_mode); } using FactorTransform = ZeroTransform; diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index b60f9f739f5..7a94e42d330 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -379,8 +379,9 @@ struct ToDateTransform32Or64 if (from < 0) return 0; - auto day_num = time_zone.toDayNum(from); - return day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM; + return (from < DATE_LUT_MAX_DAY_NUM) + ? from + : std::min(UInt64(time_zone.toDayNum(from)), UInt64(DATE_LUT_MAX_DAY_NUM)); } }; @@ -398,6 +399,11 @@ struct ToDateTransform32Or64Signed auto day_num = time_zone.toDayNum(ExtendedDayNum(from)); return day_num < DATE_LUT_MAX_DAY_NUM ? day_num : DATE_LUT_MAX_DAY_NUM; + + return (from < DATE_LUT_MAX_DAY_NUM) + ? from + : std::min(UInt64(time_zone.toDayNum(from)), UInt64(0xFFFFFFFF)); + } }; @@ -426,7 +432,9 @@ struct ToDate32Transform32Or64 static inline NO_SANITIZE_UNDEFINED ToType execute(const FromType & from, const DateLUTImpl & time_zone) { - return std::min(time_t(time_zone.toDayNum(from)), time_t(DATE_LUT_MAX_EXTEND_DAY_NUM)); + return (from < DATE_LUT_MAX_EXTEND_DAY_NUM) + ? from + : std::min(UInt64(time_zone.toDayNum(from)), UInt64(DATE_LUT_MAX_EXTEND_DAY_NUM)); } }; @@ -442,7 +450,7 @@ struct ToDate32Transform32Or64Signed return daynum_min_offset; return (from < DATE_LUT_MAX_EXTEND_DAY_NUM) ? from - : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF))); + : time_zone.toDayNum(std::min(Int64(from), Int64(0xFFFFFFFF))); } }; @@ -544,14 +552,12 @@ struct ToDateTimeTransform64Signed { static constexpr auto name = "toDateTime"; - static inline NO_SANITIZE_UNDEFINED ToType execute(const FromType & from, const DateLUTImpl & time_zone) + static inline NO_SANITIZE_UNDEFINED ToType execute(const FromType & from, const DateLUTImpl & /* time_zone */) { if (from < 0) return 0; - else if (time_zone.toDayNum(from) > DATE_LUT_MAX_DAY_NUM) - return DATE_LUT_MAX_DAY_NUM; - else - return time_t(from); + + return std::min(Int64(from), Int64(0xFFFFFFFF)); } }; diff --git a/tests/queries/0_stateless/00941_to_custom_week.sql b/tests/queries/0_stateless/00941_to_custom_week.sql index 4dd5d209306..04ff08d4117 100644 --- a/tests/queries/0_stateless/00941_to_custom_week.sql +++ b/tests/queries/0_stateless/00941_to_custom_week.sql @@ -49,4 +49,3 @@ SELECT toStartOfWeek(x, 3) AS w3, toStartOfWeek(x_t, 3) AS wt3 FROM numbers(10); - diff --git a/tests/queries/0_stateless/01440_to_date_monotonicity.reference b/tests/queries/0_stateless/01440_to_date_monotonicity.reference index 2dbec540fbb..dd8545b721d 100644 --- a/tests/queries/0_stateless/01440_to_date_monotonicity.reference +++ b/tests/queries/0_stateless/01440_to_date_monotonicity.reference @@ -1,4 +1,4 @@ 0 -1970-01-01 2106-02-07 1970-04-11 1970-01-01 2149-06-06 +1970-01-01 2120-07-26 1970-04-11 1970-01-01 2149-06-06 1970-01-01 02:00:00 2106-02-07 09:28:15 1970-01-01 02:16:40 2000-01-01 13:12:12 diff --git a/tests/queries/0_stateless/01921_datatype_date32.reference b/tests/queries/0_stateless/01921_datatype_date32.reference index acb0cc4ca59..a33a96ffffb 100644 --- a/tests/queries/0_stateless/01921_datatype_date32.reference +++ b/tests/queries/0_stateless/01921_datatype_date32.reference @@ -43,16 +43,16 @@ -------toMinute--------- -------toSecond--------- -------toStartOfDay--------- -2036-02-07 07:31:20 -2036-02-07 07:31:20 -2027-10-01 11:03:28 -2027-10-17 11:03:28 +1970-01-01 02:00:00 +1970-01-01 02:00:00 +2106-02-07 00:00:00 +2106-02-07 00:00:00 2021-06-22 00:00:00 -------toMonday--------- -2079-06-07 -2079-06-07 -2120-07-06 -2120-07-20 +1970-01-01 +1970-01-01 +2149-06-02 +2149-06-02 2021-06-21 -------toISOWeek--------- 1 @@ -79,28 +79,28 @@ 229953 202125 -------toStartOfWeek--------- -2079-06-06 -2079-06-06 -2120-07-05 -2120-07-26 +1970-01-01 +1970-01-01 +2149-06-01 +2149-06-01 2021-06-20 -------toStartOfMonth--------- -2079-06-07 -2079-06-07 -2120-06-26 -2120-06-26 +1970-01-01 +1970-01-01 +2149-06-01 +2149-06-01 2021-06-01 -------toStartOfQuarter--------- -2079-06-07 -2079-06-07 -2120-04-26 -2120-04-26 +1970-01-01 +1970-01-01 +2149-04-01 +2149-04-01 2021-04-01 -------toStartOfYear--------- -2079-06-07 -2079-06-07 -2119-07-28 -2119-07-28 +1970-01-01 +1970-01-01 +2149-01-01 +2149-01-01 2021-01-01 -------toStartOfSecond--------- -------toStartOfMinute--------- diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference index 3d8e09ac5e1..1d97c361773 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.reference +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -1,4 +1,4 @@ -1970-01-01 2149-06-06 1970-01-01 2149-06-06 1900-01-01 1970-01-02 1970-01-01 03:00:00 1970-01-01 21:12:15 +1970-01-01 2149-06-06 1970-01-01 2149-06-06 1900-01-01 1970-01-02 1970-01-01 00:00:00 2106-02-07 06:28:15 1970-01-01 2149-06-06 1970-01-01 2149-06-06 1970-01-01 00:00:00 2106-02-07 06:28:15 diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.sql b/tests/queries/0_stateless/02403_date_time_narrowing.sql index ddadf507055..bcc35df5934 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.sql +++ b/tests/queries/0_stateless/02403_date_time_narrowing.sql @@ -1,12 +1,12 @@ -- check conversion of numbers to date/time -- SELECT toDate(toInt32(toDate32('1930-01-01'))), toDate(toInt32(toDate32('2151-01-01'))), - toDate(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3))), - toDate(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3))), + toDate(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'))), + toDate(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'))), toDate32(toInt32(toDate32('1900-01-01')) - 1), toDate32(toInt32(toDate32('2299-12-31')) + 1), - toDateTime(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3))), - toDateTime(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3))); + toDateTime(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC')), 'UTC'), + toDateTime(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC')), 'UTC'); -- check conversion of extended range type to normal range type -- SELECT toDate(toDate32('1930-01-01')), @@ -34,8 +34,8 @@ SELECT toStartOfDay(toDate('2141-01-01', 'UTC'), 'UTC'), SELECT 'toStartOfWeek'; SELECT toStartOfWeek(toDate('1970-01-01')), toStartOfWeek(toDate32('1970-01-01')), - toStartOfWeek(toDateTime('1970-01-01 10:10:10')), - toStartOfWeek(toDateTime64('1970-01-01 10:10:10.123', 3)), + toStartOfWeek(toDateTime('1970-01-01 10:10:10', 'UTC')), + toStartOfWeek(toDateTime64('1970-01-01 10:10:10.123', 3, 'UTC')), toStartOfWeek(toDate32('1930-01-01')), toStartOfWeek(toDate32('2151-01-01')), toStartOfWeek(toDateTime64('1930-01-01 12:12:12.123', 3)), From d319e8274dc6524292c9b95672cb93b00056cf89 Mon Sep 17 00:00:00 2001 From: zvonand Date: Thu, 25 Aug 2022 02:34:16 +0300 Subject: [PATCH 21/61] fix parquet test --- tests/queries/0_stateless/00900_long_parquet.reference | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/queries/0_stateless/00900_long_parquet.reference b/tests/queries/0_stateless/00900_long_parquet.reference index bbdad7243bd..4dfc726145e 100644 --- a/tests/queries/0_stateless/00900_long_parquet.reference +++ b/tests/queries/0_stateless/00900_long_parquet.reference @@ -44,12 +44,12 @@ converted: diff: dest: 79 81 82 83 84 85 86 87 88 89 str01\0\0\0\0\0\0\0\0\0\0 fstr1\0\0\0\0\0\0\0\0\0\0 2003-03-04 2004-05-06 00:00:00 2004-05-06 07:08:09.012000000 -80 81 82 83 84 85 86 87 88 89 str02 fstr2\0\0\0\0\0\0\0\0\0\0 2005-03-04 2006-08-09 10:11:12 2006-08-09 10:11:12.345000000 +80 81 82 83 84 85 86 87 88 89 str02 fstr2\0\0\0\0\0\0\0\0\0\0 2149-06-06 2006-08-09 10:11:12 2006-08-09 10:11:12.345000000 min: --128 0 0 0 0 0 0 0 -1 -1 string-1\0\0\0\0\0\0\0 fixedstring-1\0\0 2003-04-05 2003-02-03 2003-02-03 04:05:06.789000000 --108 108 8 92 -8 108 -40 -116 -1 -1 string-0\0\0\0\0\0\0\0 fixedstring\0\0\0\0 2001-02-03 2002-02-03 2002-02-03 04:05:06.789000000 +-128 0 0 0 0 0 0 0 -1 -1 string-1\0\0\0\0\0\0\0 fixedstring-1\0\0 2003-04-05 2149-06-06 2003-02-03 04:05:06.789000000 +-108 108 8 92 -8 108 -40 -116 -1 -1 string-0\0\0\0\0\0\0\0 fixedstring\0\0\0\0 2001-02-03 2149-06-06 2002-02-03 04:05:06.789000000 79 81 82 83 84 85 86 87 88 89 str01\0\0\0\0\0\0\0\0\0\0 fstr1\0\0\0\0\0\0\0\0\0\0 2003-03-04 2004-05-06 2004-05-06 07:08:09.012000000 -127 -1 -1 -1 -1 -1 -1 -1 -1 -1 string-2\0\0\0\0\0\0\0 fixedstring-2\0\0 2004-06-07 2004-02-03 2004-02-03 04:05:06.789000000 +127 -1 -1 -1 -1 -1 -1 -1 -1 -1 string-2\0\0\0\0\0\0\0 fixedstring-2\0\0 2004-06-07 2149-06-06 2004-02-03 04:05:06.789000000 max: -128 0 -32768 0 -2147483648 0 -9223372036854775808 0 -1 -1 string-1 fixedstring-1\0\0 2003-04-05 00:00:00 2003-02-03 04:05:06 2003-02-03 04:05:06.789000000 -108 108 -1016 1116 -1032 1132 -1064 1164 -1 -1 string-0 fixedstring\0\0\0\0 2001-02-03 00:00:00 2002-02-03 04:05:06 2002-02-03 04:05:06.789000000 From bd3383cd27cb6915847d8534c6c5db8cad0a7eac Mon Sep 17 00:00:00 2001 From: zvonand Date: Thu, 25 Aug 2022 11:10:01 +0300 Subject: [PATCH 22/61] update test --- .../queries/0_stateless/02403_date_time_narrowing.reference | 2 -- tests/queries/0_stateless/02403_date_time_narrowing.sql | 6 ------ 2 files changed, 8 deletions(-) diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference index 1d97c361773..ff5641c3d92 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.reference +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -12,8 +12,6 @@ toMonday 1970-01-01 1970-01-01 2149-06-02 1970-01-01 2149-06-02 toStartOfMonth 1970-01-01 2149-06-01 1970-01-01 2149-06-01 -toStartOfMonth -1970-01-01 2149-06-01 1970-01-01 2149-06-01 toLastDayOfMonth 2149-05-31 1970-01-01 2149-05-31 1970-01-01 2149-05-31 toStartOfQuarter diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.sql b/tests/queries/0_stateless/02403_date_time_narrowing.sql index bcc35df5934..59918e170bc 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.sql +++ b/tests/queries/0_stateless/02403_date_time_narrowing.sql @@ -54,12 +54,6 @@ SELECT toStartOfMonth(toDate32('1930-01-01', 'UTC')), toStartOfMonth(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), toStartOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); -SELECT 'toStartOfMonth'; -SELECT toStartOfMonth(toDate32('1930-01-01', 'UTC')), - toStartOfMonth(toDate32('2151-01-01', 'UTC')), - toStartOfMonth(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), - toStartOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); - SELECT 'toLastDayOfMonth'; SELECT toLastDayOfMonth(toDate('2149-06-03')), toLastDayOfMonth(toDate32('1930-01-01', 'UTC')), From 24dfa0c64afe5963aaeef6f1fe57bccd4fbf4096 Mon Sep 17 00:00:00 2001 From: zvonand Date: Thu, 25 Aug 2022 12:28:15 +0300 Subject: [PATCH 23/61] tryfix darwin --- src/Functions/CustomWeekTransforms.h | 4 ++-- src/Functions/DateTimeTransforms.h | 30 ++++++++++++++-------------- src/Functions/FunctionsConversion.h | 14 ++++++------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/Functions/CustomWeekTransforms.h b/src/Functions/CustomWeekTransforms.h index 3fd5cd07824..3378aec02d5 100644 --- a/src/Functions/CustomWeekTransforms.h +++ b/src/Functions/CustomWeekTransforms.h @@ -65,7 +65,7 @@ struct ToStartOfWeekImpl if (t < 0) return 0; - return time_zone.toFirstDayNumOfWeek(DayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM))), week_mode); + return time_zone.toFirstDayNumOfWeek(DayNum(std::min(Int32(time_zone.toDayNum(t)), Int32(DATE_LUT_MAX_DAY_NUM))), week_mode); } static inline UInt16 execute(UInt32 t, UInt8 week_mode, const DateLUTImpl & time_zone) { @@ -76,7 +76,7 @@ struct ToStartOfWeekImpl if (d < 0) return 0; - return time_zone.toFirstDayNumOfWeek(DayNum(std::min(d, DATE_LUT_MAX_DAY_NUM)), week_mode); + return time_zone.toFirstDayNumOfWeek(DayNum(std::min(d, Int32(DATE_LUT_MAX_DAY_NUM))), week_mode); } static inline UInt16 execute(UInt16 d, UInt8 week_mode, const DateLUTImpl & time_zone) { diff --git a/src/Functions/DateTimeTransforms.h b/src/Functions/DateTimeTransforms.h index 8af908abdae..66d57f2463f 100644 --- a/src/Functions/DateTimeTransforms.h +++ b/src/Functions/DateTimeTransforms.h @@ -61,7 +61,7 @@ struct ToDateImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return t < 0 ? 0 : std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)); + return t < 0 ? 0 : std::min(Int32(time_zone.toDayNum(t)), Int32(DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -69,7 +69,7 @@ struct ToDateImpl } static inline UInt16 execute(Int32 t, const DateLUTImpl &) { - return t < 0 ? 0 : std::min(time_t(t), time_t(DATE_LUT_MAX_DAY_NUM)); + return t < 0 ? 0 : std::min(t, Int32(DATE_LUT_MAX_DAY_NUM)); } static inline UInt16 execute(UInt16 d, const DateLUTImpl &) { @@ -114,7 +114,7 @@ struct ToStartOfDayImpl if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) return 0; - return time_zone.toDate(std::min(t.whole, time_t(0xffffffff))); + return time_zone.toDate(std::min(t.whole, Int64(0xffffffff))); } static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -147,7 +147,7 @@ struct ToMondayImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { return t < 0 ? 0 : time_zone.toFirstDayNumOfWeek(ExtendedDayNum( - std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); + std::min(Int32(time_zone.toDayNum(t)), Int32(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -155,7 +155,7 @@ struct ToMondayImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return d < 0 ? 0 : time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); + return d < 0 ? 0 : time_zone.toFirstDayNumOfWeek(ExtendedDayNum(std::min(d, Int32(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -171,7 +171,7 @@ struct ToStartOfMonthImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return t < 0 ? 0 : time_zone.toFirstDayNumOfMonth(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); + return t < 0 ? 0 : time_zone.toFirstDayNumOfMonth(ExtendedDayNum(std::min(Int32(time_zone.toDayNum(t)), Int32(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -179,7 +179,7 @@ struct ToStartOfMonthImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return d < 0 ? 0 : time_zone.toFirstDayNumOfMonth(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); + return d < 0 ? 0 : time_zone.toFirstDayNumOfMonth(ExtendedDayNum(std::min(d, Int32(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -199,7 +199,7 @@ struct ToLastDayOfMonthImpl return 0; /// 0xFFF9 is Int value for 2149-05-31 -- the last day where we can actually find LastDayOfMonth. This will also be the return value. - return time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(0xFFF9)))); + return time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(Int32(time_zone.toDayNum(t)), Int32(0xFFF9)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -211,7 +211,7 @@ struct ToLastDayOfMonthImpl return 0; /// 0xFFF9 is Int value for 2149-05-31 -- the last day where we can actually find LastDayOfMonth. This will also be the return value. - return time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(d, 0xFFF9))); + return time_zone.toLastDayNumOfMonth(ExtendedDayNum(std::min(d, Int32(0xFFF9)))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -228,7 +228,7 @@ struct ToStartOfQuarterImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return t < 0 ? 0 : time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); + return t < 0 ? 0 : time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(std::min(Int64(time_zone.toDayNum(t)), Int64(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -236,7 +236,7 @@ struct ToStartOfQuarterImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return d < 0 ? 0 : time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); + return d < 0 ? 0 : time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(std::min(d, Int32(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -252,7 +252,7 @@ struct ToStartOfYearImpl static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone) { - return t < 0 ? 0 : time_zone.toFirstDayNumOfYear(ExtendedDayNum(std::min(time_t(time_zone.toDayNum(t)), time_t(DATE_LUT_MAX_DAY_NUM)))); + return t < 0 ? 0 : time_zone.toFirstDayNumOfYear(ExtendedDayNum(std::min(Int32(time_zone.toDayNum(t)), Int32(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -260,7 +260,7 @@ struct ToStartOfYearImpl } static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone) { - return d < 0 ? 0 : time_zone.toFirstDayNumOfYear(ExtendedDayNum(std::min(d, DATE_LUT_MAX_DAY_NUM))); + return d < 0 ? 0 : time_zone.toFirstDayNumOfYear(ExtendedDayNum(std::min(d, Int32(DATE_LUT_MAX_DAY_NUM)))); } static inline UInt16 execute(UInt16 d, const DateLUTImpl & time_zone) { @@ -305,7 +305,7 @@ struct ToStartOfMinuteImpl if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) return 0; - return time_zone.toStartOfMinute(std::min(t.whole, time_t(0xffffffff))); + return time_zone.toStartOfMinute(std::min(t.whole, Int64(0xffffffff))); } static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone) { @@ -599,7 +599,7 @@ struct ToStartOfHourImpl if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) return 0; - return time_zone.toStartOfHour(std::min(t.whole, time_t(0xffffffff))); + return time_zone.toStartOfHour(std::min(t.whole, Int64(0xffffffff))); } static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone) diff --git a/src/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h index 12a70f01d57..96c28b21ef0 100644 --- a/src/Functions/FunctionsConversion.h +++ b/src/Functions/FunctionsConversion.h @@ -356,7 +356,7 @@ struct ToDateTimeImpl if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0)) return 0; - return std::min(t.whole, time_t(0xFFFFFFFF)); + return std::min(t.whole, Int64(0xFFFFFFFF)); } }; @@ -381,7 +381,7 @@ struct ToDateTransform32Or64 return (from < DATE_LUT_MAX_DAY_NUM) ? from - : std::min(UInt64(time_zone.toDayNum(from)), UInt64(DATE_LUT_MAX_DAY_NUM)); + : std::min(Int32(time_zone.toDayNum(from)), Int32(DATE_LUT_MAX_DAY_NUM)); } }; @@ -402,7 +402,7 @@ struct ToDateTransform32Or64Signed return (from < DATE_LUT_MAX_DAY_NUM) ? from - : std::min(UInt64(time_zone.toDayNum(from)), UInt64(0xFFFFFFFF)); + : std::min(Int32(time_zone.toDayNum(from)), Int32(0xFFFFFFFF)); } }; @@ -434,7 +434,7 @@ struct ToDate32Transform32Or64 { return (from < DATE_LUT_MAX_EXTEND_DAY_NUM) ? from - : std::min(UInt64(time_zone.toDayNum(from)), UInt64(DATE_LUT_MAX_EXTEND_DAY_NUM)); + : std::min(Int32(time_zone.toDayNum(from)), Int32(DATE_LUT_MAX_EXTEND_DAY_NUM)); } }; @@ -450,7 +450,7 @@ struct ToDate32Transform32Or64Signed return daynum_min_offset; return (from < DATE_LUT_MAX_EXTEND_DAY_NUM) ? from - : time_zone.toDayNum(std::min(Int64(from), Int64(0xFFFFFFFF))); + : time_zone.toDayNum(std::min(Int64(from), Int64(0xFFFFFFFF))); } }; @@ -530,7 +530,7 @@ struct ToDateTimeTransform64 static inline NO_SANITIZE_UNDEFINED ToType execute(const FromType & from, const DateLUTImpl &) { - return std::min(time_t(from), time_t(0xFFFFFFFF)); + return std::min(Int64(from), Int64(0xFFFFFFFF)); } }; @@ -557,7 +557,7 @@ struct ToDateTimeTransform64Signed if (from < 0) return 0; - return std::min(Int64(from), Int64(0xFFFFFFFF)); + return std::min(Int64(from), Int64(0xFFFFFFFF)); } }; From b9b8f7a05d29104af1dbeb8216c3d99da2cb140c Mon Sep 17 00:00:00 2001 From: zvonand Date: Fri, 26 Aug 2022 18:43:31 +0300 Subject: [PATCH 24/61] explicit timezone in test --- .../02403_date_time_narrowing.reference | 2 +- .../0_stateless/02403_date_time_narrowing.sql | 36 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.reference b/tests/queries/0_stateless/02403_date_time_narrowing.reference index ff5641c3d92..7d6e91c61b8 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.reference +++ b/tests/queries/0_stateless/02403_date_time_narrowing.reference @@ -7,7 +7,7 @@ toStartOfDay 2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 1970-01-01 00:00:00 2106-02-07 00:00:00 toStartOfWeek -1970-01-01 1970-01-01 1970-01-01 1970-01-01 1970-01-01 2149-06-01 1970-01-01 2149-06-01 +1970-01-01 1970-01-01 1970-01-01 1970-01-01 1970-01-01 2149-06-01 1970-01-01 2149-06-02 toMonday 1970-01-01 1970-01-01 2149-06-02 1970-01-01 2149-06-02 toStartOfMonth diff --git a/tests/queries/0_stateless/02403_date_time_narrowing.sql b/tests/queries/0_stateless/02403_date_time_narrowing.sql index 59918e170bc..07cbba6f31c 100644 --- a/tests/queries/0_stateless/02403_date_time_narrowing.sql +++ b/tests/queries/0_stateless/02403_date_time_narrowing.sql @@ -1,16 +1,16 @@ -- check conversion of numbers to date/time -- -SELECT toDate(toInt32(toDate32('1930-01-01'))), - toDate(toInt32(toDate32('2151-01-01'))), - toDate(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'))), - toDate(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'))), - toDate32(toInt32(toDate32('1900-01-01')) - 1), - toDate32(toInt32(toDate32('2299-12-31')) + 1), +SELECT toDate(toInt32(toDate32('1930-01-01', 'UTC')), 'UTC'), + toDate(toInt32(toDate32('2151-01-01', 'UTC')), 'UTC'), + toDate(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC')), 'UTC'), + toDate(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC')), 'UTC'), + toDate32(toInt32(toDate32('1900-01-01', 'UTC')) - 1, 'UTC'), + toDate32(toInt32(toDate32('2299-12-31', 'UTC')) + 1, 'UTC'), toDateTime(toInt64(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC')), 'UTC'), toDateTime(toInt64(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC')), 'UTC'); -- check conversion of extended range type to normal range type -- -SELECT toDate(toDate32('1930-01-01')), - toDate(toDate32('2151-01-01')); +SELECT toDate(toDate32('1930-01-01', 'UTC'), 'UTC'), + toDate(toDate32('2151-01-01', 'UTC'), 'UTC'); SELECT toDate(toDateTime64('1930-01-01 12:12:12.12', 3, 'UTC'), 'UTC'), toDate(toDateTime64('2151-01-01 12:12:12.12', 3, 'UTC'), 'UTC'); @@ -32,17 +32,17 @@ SELECT toStartOfDay(toDate('2141-01-01', 'UTC'), 'UTC'), toStartOfDay(toDateTime64('2141-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); SELECT 'toStartOfWeek'; -SELECT toStartOfWeek(toDate('1970-01-01')), - toStartOfWeek(toDate32('1970-01-01')), - toStartOfWeek(toDateTime('1970-01-01 10:10:10', 'UTC')), - toStartOfWeek(toDateTime64('1970-01-01 10:10:10.123', 3, 'UTC')), - toStartOfWeek(toDate32('1930-01-01')), - toStartOfWeek(toDate32('2151-01-01')), - toStartOfWeek(toDateTime64('1930-01-01 12:12:12.123', 3)), - toStartOfWeek(toDateTime64('2151-01-01 12:12:12.123', 3)); +SELECT toStartOfWeek(toDate('1970-01-01', 'UTC')), + toStartOfWeek(toDate32('1970-01-01', 'UTC')), + toStartOfWeek(toDateTime('1970-01-01 10:10:10', 'UTC'), 0, 'UTC'), + toStartOfWeek(toDateTime64('1970-01-01 10:10:10.123', 3, 'UTC'), 1, 'UTC'), + toStartOfWeek(toDate32('1930-01-01', 'UTC')), + toStartOfWeek(toDate32('2151-01-01', 'UTC')), + toStartOfWeek(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 2, 'UTC'), + toStartOfWeek(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 3, 'UTC'); SELECT 'toMonday'; -SELECT toMonday(toDate('1970-01-02')), +SELECT toMonday(toDate('1970-01-02', 'UTC')), toMonday(toDate32('1930-01-01', 'UTC')), toMonday(toDate32('2151-01-01', 'UTC')), toMonday(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), @@ -55,7 +55,7 @@ SELECT toStartOfMonth(toDate32('1930-01-01', 'UTC')), toStartOfMonth(toDateTime64('2151-01-01 12:12:12.123', 3, 'UTC'), 'UTC'); SELECT 'toLastDayOfMonth'; -SELECT toLastDayOfMonth(toDate('2149-06-03')), +SELECT toLastDayOfMonth(toDate('2149-06-03', 'UTC')), toLastDayOfMonth(toDate32('1930-01-01', 'UTC')), toLastDayOfMonth(toDate32('2151-01-01', 'UTC')), toLastDayOfMonth(toDateTime64('1930-01-01 12:12:12.123', 3, 'UTC'), 'UTC'), From 6414a01987d27cd1519de26599a1afe4fbc200a6 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Fri, 26 Aug 2022 22:36:34 +0200 Subject: [PATCH 25/61] Rewrite NLP tests from integration to functional --- programs/server/config.d/ext-en.txt | 1 + programs/server/config.d/ext-ru.txt | 1 + programs/server/config.d/lem-en.bin | 1 + programs/server/config.d/nlp.xml | 1 + .../dictionaries => config}/ext-en.txt | 0 .../dictionaries => config}/ext-ru.txt | 0 tests/config/install.sh | 5 + .../dicts_config.xml => config/nlp.xml} | 6 +- tests/integration/test_nlp/__init__.py | 0 .../test_nlp/dictionaries/lem-en.bin | Bin 42116 -> 0 bytes tests/integration/test_nlp/test.py | 149 ------------------ tests/queries/0_stateless/02412_nlp.reference | 15 ++ tests/queries/0_stateless/02412_nlp.sql | 18 +++ 13 files changed, 45 insertions(+), 152 deletions(-) create mode 120000 programs/server/config.d/ext-en.txt create mode 120000 programs/server/config.d/ext-ru.txt create mode 120000 programs/server/config.d/lem-en.bin create mode 120000 programs/server/config.d/nlp.xml rename tests/{integration/test_nlp/dictionaries => config}/ext-en.txt (100%) rename tests/{integration/test_nlp/dictionaries => config}/ext-ru.txt (100%) rename tests/{integration/test_nlp/configs/dicts_config.xml => config/nlp.xml} (65%) delete mode 100644 tests/integration/test_nlp/__init__.py delete mode 100644 tests/integration/test_nlp/dictionaries/lem-en.bin delete mode 100644 tests/integration/test_nlp/test.py create mode 100644 tests/queries/0_stateless/02412_nlp.reference create mode 100644 tests/queries/0_stateless/02412_nlp.sql diff --git a/programs/server/config.d/ext-en.txt b/programs/server/config.d/ext-en.txt new file mode 120000 index 00000000000..6bc78ab238a --- /dev/null +++ b/programs/server/config.d/ext-en.txt @@ -0,0 +1 @@ +../../../tests/config/ext-en.txt \ No newline at end of file diff --git a/programs/server/config.d/ext-ru.txt b/programs/server/config.d/ext-ru.txt new file mode 120000 index 00000000000..63ea415a66e --- /dev/null +++ b/programs/server/config.d/ext-ru.txt @@ -0,0 +1 @@ +../../../tests/config/ext-ru.txt \ No newline at end of file diff --git a/programs/server/config.d/lem-en.bin b/programs/server/config.d/lem-en.bin new file mode 120000 index 00000000000..d2c960cf013 --- /dev/null +++ b/programs/server/config.d/lem-en.bin @@ -0,0 +1 @@ +../../../tests/config/lem-en.bin \ No newline at end of file diff --git a/programs/server/config.d/nlp.xml b/programs/server/config.d/nlp.xml new file mode 120000 index 00000000000..def9d3b1eb4 --- /dev/null +++ b/programs/server/config.d/nlp.xml @@ -0,0 +1 @@ +../../../tests/config/nlp.xml \ No newline at end of file diff --git a/tests/integration/test_nlp/dictionaries/ext-en.txt b/tests/config/ext-en.txt similarity index 100% rename from tests/integration/test_nlp/dictionaries/ext-en.txt rename to tests/config/ext-en.txt diff --git a/tests/integration/test_nlp/dictionaries/ext-ru.txt b/tests/config/ext-ru.txt similarity index 100% rename from tests/integration/test_nlp/dictionaries/ext-ru.txt rename to tests/config/ext-ru.txt diff --git a/tests/config/install.sh b/tests/config/install.sh index 072787efbb3..efbb9e614ae 100755 --- a/tests/config/install.sh +++ b/tests/config/install.sh @@ -48,6 +48,7 @@ ln -sf $SRC_PATH/config.d/named_collection.xml $DEST_SERVER_PATH/config.d/ ln -sf $SRC_PATH/config.d/ssl_certs.xml $DEST_SERVER_PATH/config.d/ ln -sf $SRC_PATH/config.d/filesystem_cache_log.xml $DEST_SERVER_PATH/config.d/ ln -sf $SRC_PATH/config.d/session_log.xml $DEST_SERVER_PATH/config.d/ +ln -sf $SRC_PATH/config.d/nlp.xml $DEST_SERVER_PATH/config.d/ ln -sf $SRC_PATH/users.d/log_queries.xml $DEST_SERVER_PATH/users.d/ ln -sf $SRC_PATH/users.d/readonly.xml $DEST_SERVER_PATH/users.d/ @@ -75,6 +76,10 @@ ln -sf $SRC_PATH/test_function.xml $DEST_SERVER_PATH/ ln -sf $SRC_PATH/top_level_domains $DEST_SERVER_PATH/ +ln -sf $SRC_PATH/ext-en.txt $DEST_SERVER_PATH/ +ln -sf $SRC_PATH/ext-ru.txt $DEST_SERVER_PATH/ +ln -sf $SRC_PATH/lem-en.bin $DEST_SERVER_PATH/ + ln -sf $SRC_PATH/server.key $DEST_SERVER_PATH/ ln -sf $SRC_PATH/server.crt $DEST_SERVER_PATH/ ln -sf $SRC_PATH/dhparam.pem $DEST_SERVER_PATH/ diff --git a/tests/integration/test_nlp/configs/dicts_config.xml b/tests/config/nlp.xml similarity index 65% rename from tests/integration/test_nlp/configs/dicts_config.xml rename to tests/config/nlp.xml index 8c05ea67e49..17b11741fbd 100644 --- a/tests/integration/test_nlp/configs/dicts_config.xml +++ b/tests/config/nlp.xml @@ -4,19 +4,19 @@ en plain - /etc/clickhouse-server/dictionaries/ext-en.txt + config.d/ext-en.txt ru plain - /etc/clickhouse-server/dictionaries/ext-ru.txt + config.d/ext-ru.txt en - /etc/clickhouse-server/dictionaries/lem-en.bin + config.d/lem-en.bin diff --git a/tests/integration/test_nlp/__init__.py b/tests/integration/test_nlp/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/integration/test_nlp/dictionaries/lem-en.bin b/tests/integration/test_nlp/dictionaries/lem-en.bin deleted file mode 100644 index 8981bc1ead02fe36557075b0d83558ce4063459e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42116 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 Date: Fri, 26 Aug 2022 22:43:15 +0200 Subject: [PATCH 26/61] Fix fasttest --- tests/queries/0_stateless/02412_nlp.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/queries/0_stateless/02412_nlp.sql b/tests/queries/0_stateless/02412_nlp.sql index 6536b1beb70..42c3f108764 100644 --- a/tests/queries/0_stateless/02412_nlp.sql +++ b/tests/queries/0_stateless/02412_nlp.sql @@ -1,3 +1,5 @@ +-- Tags: no-fasttest + SET allow_experimental_nlp_functions = 1; SELECT lemmatize('en', 'wolves'); From 86fc10af66908a6bbfef6dc08ce8369cea568f1f Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Fri, 26 Aug 2022 23:42:36 +0200 Subject: [PATCH 27/61] Add missing file --- tests/config/lem-en.bin | Bin 0 -> 42116 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/config/lem-en.bin diff --git a/tests/config/lem-en.bin b/tests/config/lem-en.bin new file mode 100644 index 0000000000000000000000000000000000000000..8981bc1ead02fe36557075b0d83558ce4063459e GIT binary patch literal 42116 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 Date: Sat, 27 Aug 2022 02:56:56 +0300 Subject: [PATCH 28/61] Update install.sh --- tests/config/install.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/config/install.sh b/tests/config/install.sh index efbb9e614ae..e6cab3c8192 100755 --- a/tests/config/install.sh +++ b/tests/config/install.sh @@ -76,9 +76,9 @@ ln -sf $SRC_PATH/test_function.xml $DEST_SERVER_PATH/ ln -sf $SRC_PATH/top_level_domains $DEST_SERVER_PATH/ -ln -sf $SRC_PATH/ext-en.txt $DEST_SERVER_PATH/ -ln -sf $SRC_PATH/ext-ru.txt $DEST_SERVER_PATH/ -ln -sf $SRC_PATH/lem-en.bin $DEST_SERVER_PATH/ +ln -sf $SRC_PATH/ext-en.txt $DEST_SERVER_PATH/config.d/ +ln -sf $SRC_PATH/ext-ru.txt $DEST_SERVER_PATH/config.d/ +ln -sf $SRC_PATH/lem-en.bin $DEST_SERVER_PATH/config.d/ ln -sf $SRC_PATH/server.key $DEST_SERVER_PATH/ ln -sf $SRC_PATH/server.crt $DEST_SERVER_PATH/ From c801469e9eda8cf393a34dc380648532f183ca2a Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sat, 27 Aug 2022 14:01:49 +0200 Subject: [PATCH 29/61] Fix LOGICAL_ERROR with max_read_buffer_size=0 during reading marks The problem is that the buffer size validated after marks reading in MergeTreeReaderStream::init(), since it requires to read marks first. And later it is passed to AsynchronousReadBufferFromFileDescriptor, which throws LOGICAL_ERROR because buffer_size < alignment. Fix this my simply disallow such values for max_read_buffer_size (I thougt about modifying createReadBufferFromFileBase(), but it is not used for remote reads -- remote_fs_buffer_size). Fixes: #40669 Signed-off-by: Azat Khuzhin --- src/Interpreters/Context.cpp | 7 +++++++ ...052_last_granula_adjust_LOGICAL_ERROR.sql.j2 | 2 +- ...rge_tree_zero_max_read_buffer_size.reference | 0 ...411_merge_tree_zero_max_read_buffer_size.sql | 17 +++++++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 tests/queries/0_stateless/02411_merge_tree_zero_max_read_buffer_size.reference create mode 100644 tests/queries/0_stateless/02411_merge_tree_zero_max_read_buffer_size.sql diff --git a/src/Interpreters/Context.cpp b/src/Interpreters/Context.cpp index bea7c656bab..3d55a09f989 100644 --- a/src/Interpreters/Context.cpp +++ b/src/Interpreters/Context.cpp @@ -3460,6 +3460,13 @@ ReadSettings Context::getReadSettings() const res.remote_read_min_bytes_for_seek = settings.remote_read_min_bytes_for_seek; + /// Zero read buffer will not make progress. + if (!settings.max_read_buffer_size) + { + throw Exception(ErrorCodes::INVALID_SETTING_VALUE, + "Invalid value '{}' for max_read_buffer_size", settings.max_read_buffer_size); + } + res.local_fs_buffer_size = settings.max_read_buffer_size; res.remote_fs_buffer_size = settings.max_read_buffer_size; res.direct_io_threshold = settings.min_bytes_to_use_direct_io; diff --git a/tests/queries/0_stateless/02052_last_granula_adjust_LOGICAL_ERROR.sql.j2 b/tests/queries/0_stateless/02052_last_granula_adjust_LOGICAL_ERROR.sql.j2 index 53d970496b2..dee13a83b4c 100644 --- a/tests/queries/0_stateless/02052_last_granula_adjust_LOGICAL_ERROR.sql.j2 +++ b/tests/queries/0_stateless/02052_last_granula_adjust_LOGICAL_ERROR.sql.j2 @@ -12,7 +12,7 @@ as select number, repeat(toString(number), 5) from numbers({{ rows_in_table }}); -- avoid any optimizations with ignore(*) select * apply max from data_02052_{{ rows_in_table }}_wide{{ wide }} settings max_read_buffer_size=1, max_threads=1; -select * apply max from data_02052_{{ rows_in_table }}_wide{{ wide }} settings max_read_buffer_size=0, max_threads=1; -- { serverError CANNOT_READ_ALL_DATA } +select * apply max from data_02052_{{ rows_in_table }}_wide{{ wide }} settings max_read_buffer_size=0, max_threads=1; -- { serverError INVALID_SETTING_VALUE } drop table data_02052_{{ rows_in_table }}_wide{{ wide }}; {% endfor %} diff --git a/tests/queries/0_stateless/02411_merge_tree_zero_max_read_buffer_size.reference b/tests/queries/0_stateless/02411_merge_tree_zero_max_read_buffer_size.reference new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/queries/0_stateless/02411_merge_tree_zero_max_read_buffer_size.sql b/tests/queries/0_stateless/02411_merge_tree_zero_max_read_buffer_size.sql new file mode 100644 index 00000000000..72b80cc70c8 --- /dev/null +++ b/tests/queries/0_stateless/02411_merge_tree_zero_max_read_buffer_size.sql @@ -0,0 +1,17 @@ +-- Tags: no-parallel +-- Tag no-parallel: due to SYSTEM DROP MARK CACHE + +--- Regression test for possible LOGICAL_ERROR with max_read_buffer_size=0 +--- (when marks was reading with max_read_buffer_size=0, hence DROP MARK CACHE is required) + +DROP TABLE IF EXISTS data_02411; +CREATE TABLE data_02411 +( + key Int32 +) +ENGINE = MergeTree +ORDER BY key +SETTINGS min_bytes_for_wide_part = 0, index_granularity = 8192; +INSERT INTO data_02411 SELECT * FROM numbers(100); +SYSTEM DROP MARK CACHE; +SELECT * FROM data_02411 FORMAT Null SETTINGS max_read_buffer_size=0; -- { serverError INVALID_SETTING_VALUE } From b70373d42998cdb89784057933213d2c8f5c396e Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 27 Aug 2022 20:23:15 +0200 Subject: [PATCH 30/61] Fix error --- programs/server/config.d/nlp.xml | 2 +- tests/config/{ => config.d}/nlp.xml | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename tests/config/{ => config.d}/nlp.xml (100%) diff --git a/programs/server/config.d/nlp.xml b/programs/server/config.d/nlp.xml index def9d3b1eb4..577caf7bcc1 120000 --- a/programs/server/config.d/nlp.xml +++ b/programs/server/config.d/nlp.xml @@ -1 +1 @@ -../../../tests/config/nlp.xml \ No newline at end of file +../../../tests/config/config.d/nlp.xml \ No newline at end of file diff --git a/tests/config/nlp.xml b/tests/config/config.d/nlp.xml similarity index 100% rename from tests/config/nlp.xml rename to tests/config/config.d/nlp.xml From 6139cc8f7a33e51d8754f881353dc96355692c45 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 27 Aug 2022 22:06:03 +0200 Subject: [PATCH 31/61] Add Documentation to FunctionFactory --- src/Common/Documentation.h | 10 +- src/Functions/CRC.cpp | 2 +- src/Functions/CastOverloadResolver.cpp | 4 +- src/Functions/FunctionChar.cpp | 2 +- src/Functions/FunctionFQDN.cpp | 2 +- src/Functions/FunctionFactory.cpp | 20 +- src/Functions/FunctionFactory.h | 22 +- .../FunctionsBinaryRepresentation.cpp | 8 +- src/Functions/FunctionsConversion.cpp | 2 +- src/Functions/FunctionsLogical.cpp | 2 +- src/Functions/FunctionsRound.cpp | 10 +- src/Functions/abs.cpp | 2 +- src/Functions/acos.cpp | 2 +- src/Functions/array/length.cpp | 37 +- src/Functions/asin.cpp | 29 +- src/Functions/atan.cpp | 2 +- src/Functions/atan2.cpp | 2 +- src/Functions/base64Decode.cpp | 2 +- src/Functions/base64Encode.cpp | 2 +- src/Functions/coalesce.cpp | 2 +- src/Functions/concat.cpp | 2 +- src/Functions/connectionId.cpp | 2 +- src/Functions/cos.cpp | 2 +- src/Functions/countMatches.cpp | 4 +- src/Functions/countSubstrings.cpp | 2 +- src/Functions/currentDatabase.cpp | 2 +- src/Functions/dateDiff.cpp | 3 +- src/Functions/dateName.cpp | 2 +- src/Functions/date_trunc.cpp | 2 +- src/Functions/degrees.cpp | 2 +- src/Functions/exp.cpp | 2 +- src/Functions/greatest.cpp | 2 +- src/Functions/hypot.cpp | 2 +- src/Functions/if.cpp | 2 +- src/Functions/ifNull.cpp | 2 +- src/Functions/isNull.cpp | 2 +- src/Functions/least.cpp | 2 +- src/Functions/left.cpp | 4 +- src/Functions/lemmatize.cpp | 2 +- src/Functions/lengthUTF8.cpp | 4 +- src/Functions/log.cpp | 2 +- src/Functions/log10.cpp | 2 +- src/Functions/log2.cpp | 2 +- src/Functions/lower.cpp | 2 +- src/Functions/mathConstants.cpp | 2 +- src/Functions/max2.cpp | 2 +- src/Functions/min2.cpp | 2 +- src/Functions/monthName.cpp | 2 +- src/Functions/now.cpp | 2 +- src/Functions/now64.cpp | 2 +- src/Functions/nullIf.cpp | 3 +- src/Functions/position.cpp | 2 +- src/Functions/pow.cpp | 2 +- src/Functions/radians.cpp | 2 +- src/Functions/rand.cpp | 3 +- src/Functions/repeat.cpp | 2 +- src/Functions/reverse.cpp | 2 +- src/Functions/right.cpp | 4 +- src/Functions/serverConstants.cpp | 5 +- src/Functions/sign.cpp | 2 +- src/Functions/sin.cpp | 2 +- src/Functions/sqrt.cpp | 2 +- src/Functions/stem.cpp | 2 +- src/Functions/substring.cpp | 4 +- src/Functions/synonyms.cpp | 2 +- src/Functions/tan.cpp | 2 +- src/Functions/tanh.cpp | 4 +- src/Functions/toDayOfMonth.cpp | 6 +- src/Functions/toDayOfWeek.cpp | 4 +- src/Functions/toDayOfYear.cpp | 4 +- src/Functions/toHour.cpp | 4 +- src/Functions/toLastDayOfMonth.cpp | 4 +- src/Functions/toMinute.cpp | 4 +- src/Functions/toMonth.cpp | 4 +- src/Functions/toQuarter.cpp | 4 +- src/Functions/toSecond.cpp | 4 +- src/Functions/toYear.cpp | 4 +- src/Functions/upper.cpp | 2 +- .../System/StorageSystemFunctions.cpp | 27 +- src/TableFunctions/TableFunctionFactory.cpp | 9 +- src/TableFunctions/TableFunctionFactory.h | 14 +- ...new_functions_must_be_documented.reference | 1052 +++++++++++++++++ ...5_all_new_functions_must_be_documented.sql | 3 + 83 files changed, 1277 insertions(+), 148 deletions(-) create mode 100644 tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference create mode 100644 tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql diff --git a/src/Common/Documentation.h b/src/Common/Documentation.h index f8fbc1fb3d5..0b0eacbeccd 100644 --- a/src/Common/Documentation.h +++ b/src/Common/Documentation.h @@ -43,7 +43,7 @@ namespace DB * Documentation does not support multiple languages. * The only available language is English. */ -struct Doc +struct Documentation { using Description = std::string; using ExampleName = std::string; @@ -56,13 +56,13 @@ struct Doc Examples examples; Categories categories; - Doc(Description description_) : description(std::move(description_)) {} - Doc(Description description_, Examples examples_) : description(std::move(description_)), examples(std::move(examples_)) {} - Doc(Description description_, Examples examples_, Categories categories_) + Documentation(Description description_) : description(std::move(description_)) {} + Documentation(Description description_, Examples examples_) : description(std::move(description_)), examples(std::move(examples_)) {} + Documentation(Description description_, Examples examples_, Categories categories_) : description(std::move(description_)), examples(std::move(examples_)), categories(std::move(categories_)) {} /// TODO: Please remove this constructor. Documentation should always be non-empty. - Doc() {} + Documentation() {} }; } diff --git a/src/Functions/CRC.cpp b/src/Functions/CRC.cpp index 10045a246c0..92f0130c19b 100644 --- a/src/Functions/CRC.cpp +++ b/src/Functions/CRC.cpp @@ -140,7 +140,7 @@ using FunctionCRC64ECMA = FunctionCRC; template void registerFunctionCRCImpl(FunctionFactory & factory) { - factory.registerFunction(T::name, FunctionFactory::CaseInsensitive); + factory.registerFunction(T::name, {}, FunctionFactory::CaseInsensitive); } REGISTER_FUNCTION(CRC) diff --git a/src/Functions/CastOverloadResolver.cpp b/src/Functions/CastOverloadResolver.cpp index 6f8b5eb9de2..20a08e3b60b 100644 --- a/src/Functions/CastOverloadResolver.cpp +++ b/src/Functions/CastOverloadResolver.cpp @@ -7,10 +7,10 @@ namespace DB REGISTER_FUNCTION(CastOverloadResolvers) { - factory.registerFunction>(FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); /// Note: "internal" (not affected by null preserving setting) versions of accurate cast functions are unneeded. - factory.registerFunction>(FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); factory.registerFunction>(); factory.registerFunction>(); } diff --git a/src/Functions/FunctionChar.cpp b/src/Functions/FunctionChar.cpp index c022fda04c8..9a5a7a2689f 100644 --- a/src/Functions/FunctionChar.cpp +++ b/src/Functions/FunctionChar.cpp @@ -115,7 +115,7 @@ private: REGISTER_FUNCTION(Char) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/FunctionFQDN.cpp b/src/Functions/FunctionFQDN.cpp index c4ac409ca04..b054ff8e1d7 100644 --- a/src/Functions/FunctionFQDN.cpp +++ b/src/Functions/FunctionFQDN.cpp @@ -46,7 +46,7 @@ public: REGISTER_FUNCTION(FQDN) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerFunction("fullHostName"); } diff --git a/src/Functions/FunctionFactory.cpp b/src/Functions/FunctionFactory.cpp index 664c18a9aaf..f36a0bc69ab 100644 --- a/src/Functions/FunctionFactory.cpp +++ b/src/Functions/FunctionFactory.cpp @@ -28,10 +28,11 @@ const String & getFunctionCanonicalNameIfAny(const String & name) void FunctionFactory::registerFunction( const std::string & name, - Value creator, + FunctionCreator creator, + Documentation doc, CaseSensitiveness case_sensitiveness) { - if (!functions.emplace(name, creator).second) + if (!functions.emplace(name, FunctionFactoryData{creator, doc}).second) throw Exception("FunctionFactory: the function name '" + name + "' is not unique", ErrorCodes::LOGICAL_ERROR); @@ -42,7 +43,7 @@ void FunctionFactory::registerFunction( if (case_sensitiveness == CaseInsensitive) { - if (!case_insensitive_functions.emplace(function_name_lowercase, creator).second) + if (!case_insensitive_functions.emplace(function_name_lowercase, FunctionFactoryData{creator, doc}).second) throw Exception("FunctionFactory: the case insensitive function name '" + name + "' is not unique", ErrorCodes::LOGICAL_ERROR); case_insensitive_name_mapping[function_name_lowercase] = name; @@ -105,13 +106,13 @@ FunctionOverloadResolverPtr FunctionFactory::tryGetImpl( auto it = functions.find(name); if (functions.end() != it) - res = it->second(context); + res = it->second.first(context); else { name = Poco::toLower(name); it = case_insensitive_functions.find(name); if (case_insensitive_functions.end() != it) - res = it->second(context); + res = it->second.first(context); } if (!res) @@ -141,4 +142,13 @@ FunctionFactory & FunctionFactory::instance() return ret; } +Documentation FunctionFactory::getDocumentation(const std::string & name) const +{ + auto it = functions.find(name); + if (it == functions.end()) + throw Exception(ErrorCodes::UNKNOWN_FUNCTION, "Unknown function {}", name); + + return it->second.second; +} + } diff --git a/src/Functions/FunctionFactory.h b/src/Functions/FunctionFactory.h index 6758592558c..b6a2adcb424 100644 --- a/src/Functions/FunctionFactory.h +++ b/src/Functions/FunctionFactory.h @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -15,30 +16,32 @@ namespace DB { +using FunctionCreator = std::function; +using FunctionFactoryData = std::pair; + /** Creates function by name. * Function could use for initialization (take ownership of shared_ptr, for example) * some dictionaries from Context. */ -class FunctionFactory : private boost::noncopyable, - public IFactoryWithAliases> +class FunctionFactory : private boost::noncopyable, public IFactoryWithAliases { public: static FunctionFactory & instance(); template - void registerFunction(CaseSensitiveness case_sensitiveness = CaseSensitive) + void registerFunction(Documentation doc = {}, CaseSensitiveness case_sensitiveness = CaseSensitive) { - registerFunction(Function::name, case_sensitiveness); + registerFunction(Function::name, std::move(doc), case_sensitiveness); } template - void registerFunction(const std::string & name, CaseSensitiveness case_sensitiveness = CaseSensitive) + void registerFunction(const std::string & name, Documentation doc = {}, CaseSensitiveness case_sensitiveness = CaseSensitive) { if constexpr (std::is_base_of_v) - registerFunction(name, &adaptFunctionToOverloadResolver, case_sensitiveness); + registerFunction(name, &adaptFunctionToOverloadResolver, std::move(doc), case_sensitiveness); else - registerFunction(name, &Function::create, case_sensitiveness); + registerFunction(name, &Function::create, std::move(doc), case_sensitiveness); } /// This function is used by YQL - innovative transactional DBMS that depends on ClickHouse by source code. @@ -60,9 +63,12 @@ public: /// No locking, you must register all functions before usage of get. void registerFunction( const std::string & name, - Value creator, + FunctionCreator creator, + Documentation doc = {}, CaseSensitiveness case_sensitiveness = CaseSensitive); + Documentation getDocumentation(const std::string & name) const; + private: using Functions = std::unordered_map; diff --git a/src/Functions/FunctionsBinaryRepresentation.cpp b/src/Functions/FunctionsBinaryRepresentation.cpp index d53963ace8a..775696ded8a 100644 --- a/src/Functions/FunctionsBinaryRepresentation.cpp +++ b/src/Functions/FunctionsBinaryRepresentation.cpp @@ -623,10 +623,10 @@ public: REGISTER_FUNCTION(BinaryRepr) { - factory.registerFunction>(FunctionFactory::CaseInsensitive); - factory.registerFunction>(FunctionFactory::CaseInsensitive); - factory.registerFunction>(FunctionFactory::CaseInsensitive); - factory.registerFunction>(FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/FunctionsConversion.cpp b/src/Functions/FunctionsConversion.cpp index dc0235f810f..3deb93fa5b4 100644 --- a/src/Functions/FunctionsConversion.cpp +++ b/src/Functions/FunctionsConversion.cpp @@ -29,7 +29,7 @@ REGISTER_FUNCTION(Conversion) factory.registerFunction(); /// MySQL compatibility alias. - factory.registerFunction("DATE", FunctionFactory::CaseInsensitive); + factory.registerFunction("DATE", {}, FunctionFactory::CaseInsensitive); factory.registerFunction(); factory.registerFunction(); factory.registerFunction(); diff --git a/src/Functions/FunctionsLogical.cpp b/src/Functions/FunctionsLogical.cpp index 05ec1e54c94..63a2818a0c0 100644 --- a/src/Functions/FunctionsLogical.cpp +++ b/src/Functions/FunctionsLogical.cpp @@ -27,7 +27,7 @@ REGISTER_FUNCTION(Logical) factory.registerFunction(); factory.registerFunction(); factory.registerFunction(); - factory.registerFunction(FunctionFactory::CaseInsensitive); /// Operator NOT(x) can be parsed as a function. + factory.registerFunction({}, FunctionFactory::CaseInsensitive); /// Operator NOT(x) can be parsed as a function. } namespace ErrorCodes diff --git a/src/Functions/FunctionsRound.cpp b/src/Functions/FunctionsRound.cpp index a08ebbaf038..02fe1d659de 100644 --- a/src/Functions/FunctionsRound.cpp +++ b/src/Functions/FunctionsRound.cpp @@ -7,11 +7,11 @@ namespace DB REGISTER_FUNCTION(Round) { - factory.registerFunction("round", FunctionFactory::CaseInsensitive); - factory.registerFunction("roundBankers", FunctionFactory::CaseSensitive); - factory.registerFunction("floor", FunctionFactory::CaseInsensitive); - factory.registerFunction("ceil", FunctionFactory::CaseInsensitive); - factory.registerFunction("trunc", FunctionFactory::CaseInsensitive); + factory.registerFunction("round", {}, FunctionFactory::CaseInsensitive); + factory.registerFunction("roundBankers", {}, FunctionFactory::CaseSensitive); + factory.registerFunction("floor", {}, FunctionFactory::CaseInsensitive); + factory.registerFunction("ceil", {}, FunctionFactory::CaseInsensitive); + factory.registerFunction("trunc", {}, FunctionFactory::CaseInsensitive); factory.registerFunction(); /// Compatibility aliases. diff --git a/src/Functions/abs.cpp b/src/Functions/abs.cpp index 67aa5ec6e90..ae2a2412a4b 100644 --- a/src/Functions/abs.cpp +++ b/src/Functions/abs.cpp @@ -52,7 +52,7 @@ template <> struct FunctionUnaryArithmeticMonotonicity REGISTER_FUNCTION(Abs) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/acos.cpp b/src/Functions/acos.cpp index 1fbd636f14e..bc300ee77fb 100644 --- a/src/Functions/acos.cpp +++ b/src/Functions/acos.cpp @@ -14,7 +14,7 @@ using FunctionAcos = FunctionMathUnary>; REGISTER_FUNCTION(Acos) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/array/length.cpp b/src/Functions/array/length.cpp index dca38474ab0..50829b8626a 100644 --- a/src/Functions/array/length.cpp +++ b/src/Functions/array/length.cpp @@ -55,7 +55,42 @@ using FunctionLength = FunctionStringOrArrayToT(FunctionFactory::CaseInsensitive); + factory.registerFunction( + { + R"( +Calculates the length of the string or array. + +For String or FixedString argument: calculates the number of bytes in string. +[example:string1] + +For Array argument: calculates the number of elements in the array. +[example:arr1] + +If applied for FixedString argument, the function is a constant expression: +[example:constexpr] + +Please note that the number of bytes in a string is not the same as the number of Unicode "code points" +and it is not the same as the number of Unicode "grapheme clusters" (what we usually call "characters") +and it is not the same as the visible string width. +[example:unicode] + +It is ok to have ASCII NUL bytes in strings, and they will be counted as well. +[example:nul] +)", + Documentation::Examples{ + {"string1", "SELECT length('Hello, world!')"}, + {"arr1", "SELECT length(['Hello'], ['world'])"}, + {"constexpr", "WITH 'hello' || toString(number) AS str\n" + "SELECT str, \n" + " isConstant(length(str)) AS str_length_is_constant, \n" + " isConstant(length(str::FixedString(6))) AS fixed_str_length_is_constant\n" + "FROM numbers(3)"}, + {"unicode", "SELECT 'ёлка' AS str1, length(str1), lengthUTF8(str1), normalizeUTF8NFKD(str1) AS str2, length(str2), lengthUTF8(str2)"}, + {"nul", R"(SELECT 'abc\\0\\0\\0' AS str, length(str))"}, + }, + Documentation::Categories{"String", "Array"} + }, + FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/asin.cpp b/src/Functions/asin.cpp index a02175367b0..264d2389974 100644 --- a/src/Functions/asin.cpp +++ b/src/Functions/asin.cpp @@ -14,7 +14,34 @@ using FunctionAsin = FunctionMathUnary>; REGISTER_FUNCTION(Asin) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction( + { + R"( +Calculates the arcsine of the argument. + +Takes arbitrary numeric type, which includes floating point and integer numbers, as well as big integers and decimals and returns Float64. + +For arguments in range [-1, 1] it returns the value in range of [-pi() / 2, pi() / 2]. + +It represents an inverse function to function 'sin' on this range: +[example:inverse] + +It always returns Float64, even if the argument has Float32 type: +[example:float32] + +For arguments outside of this range, it returns nan: +[example:nan] + +Every self-respectful data scientist knows how to apply arcsine to improve ads click-through rate with ClickHouse. +For more details, see [https://en.wikipedia.org/wiki/Inverse_trigonometric_functions]. +)", + Documentation::Examples{ + {"inverse", "SELECT asin(1.0) = pi() / 2, sin(asin(1)), asin(sin(1))"}, + {"float32", "SELECT toTypeName(asin(1.0::Float32))"}, + {"nan", "SELECT asin(1.1), asin(-2), asin(inf), asin(nan)"}}, + Documentation::Categories{"Mathematical", "Trigonometric"} + }, + FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/atan.cpp b/src/Functions/atan.cpp index b735846fea7..32a0f06db8a 100644 --- a/src/Functions/atan.cpp +++ b/src/Functions/atan.cpp @@ -14,7 +14,7 @@ using FunctionAtan = FunctionMathUnary>; REGISTER_FUNCTION(Atan) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/atan2.cpp b/src/Functions/atan2.cpp index c6a9f70286c..7be177f6dfb 100644 --- a/src/Functions/atan2.cpp +++ b/src/Functions/atan2.cpp @@ -15,7 +15,7 @@ namespace REGISTER_FUNCTION(Atan2) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/base64Decode.cpp b/src/Functions/base64Decode.cpp index 8922e1e0095..071d2554927 100644 --- a/src/Functions/base64Decode.cpp +++ b/src/Functions/base64Decode.cpp @@ -12,7 +12,7 @@ REGISTER_FUNCTION(Base64Decode) factory.registerFunction>(); /// MysQL compatibility alias. - factory.registerFunction>("FROM_BASE64", FunctionFactory::CaseInsensitive); + factory.registerFunction>("FROM_BASE64", {}, FunctionFactory::CaseInsensitive); } } #endif diff --git a/src/Functions/base64Encode.cpp b/src/Functions/base64Encode.cpp index 14523f8b0f3..b3bc8345496 100644 --- a/src/Functions/base64Encode.cpp +++ b/src/Functions/base64Encode.cpp @@ -14,7 +14,7 @@ REGISTER_FUNCTION(Base64Encode) factory.registerFunction>(); /// MysQL compatibility alias. - factory.registerFunction>("TO_BASE64", FunctionFactory::CaseInsensitive); + factory.registerFunction>("TO_BASE64", {}, FunctionFactory::CaseInsensitive); } } #endif diff --git a/src/Functions/coalesce.cpp b/src/Functions/coalesce.cpp index aafbcd7d714..befebd1ff52 100644 --- a/src/Functions/coalesce.cpp +++ b/src/Functions/coalesce.cpp @@ -176,7 +176,7 @@ private: REGISTER_FUNCTION(Coalesce) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/concat.cpp b/src/Functions/concat.cpp index 3b02f2c0b78..9f459711aa5 100644 --- a/src/Functions/concat.cpp +++ b/src/Functions/concat.cpp @@ -230,7 +230,7 @@ private: REGISTER_FUNCTION(Concat) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerFunction(); } diff --git a/src/Functions/connectionId.cpp b/src/Functions/connectionId.cpp index b9d772e3871..9c53482482b 100644 --- a/src/Functions/connectionId.cpp +++ b/src/Functions/connectionId.cpp @@ -33,7 +33,7 @@ public: REGISTER_FUNCTION(ConnectionId) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerAlias("connection_id", "connectionID", FunctionFactory::CaseInsensitive); } diff --git a/src/Functions/cos.cpp b/src/Functions/cos.cpp index e7c9d7759ed..3496373a9d5 100644 --- a/src/Functions/cos.cpp +++ b/src/Functions/cos.cpp @@ -13,7 +13,7 @@ using FunctionCos = FunctionMathUnary>; REGISTER_FUNCTION(Cos) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/countMatches.cpp b/src/Functions/countMatches.cpp index d8948f85d44..a8620080012 100644 --- a/src/Functions/countMatches.cpp +++ b/src/Functions/countMatches.cpp @@ -22,8 +22,8 @@ namespace DB REGISTER_FUNCTION(CountMatches) { - factory.registerFunction>(FunctionFactory::CaseSensitive); - factory.registerFunction>(FunctionFactory::CaseSensitive); + factory.registerFunction>({}, FunctionFactory::CaseSensitive); + factory.registerFunction>({}, FunctionFactory::CaseSensitive); } } diff --git a/src/Functions/countSubstrings.cpp b/src/Functions/countSubstrings.cpp index ba8d150fb41..843b81437f5 100644 --- a/src/Functions/countSubstrings.cpp +++ b/src/Functions/countSubstrings.cpp @@ -19,6 +19,6 @@ using FunctionCountSubstrings = FunctionsStringSearch(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/currentDatabase.cpp b/src/Functions/currentDatabase.cpp index 981b324fb51..09a60f6b66e 100644 --- a/src/Functions/currentDatabase.cpp +++ b/src/Functions/currentDatabase.cpp @@ -54,7 +54,7 @@ public: REGISTER_FUNCTION(CurrentDatabase) { factory.registerFunction(); - factory.registerFunction("DATABASE", FunctionFactory::CaseInsensitive); + factory.registerFunction("DATABASE", {}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/dateDiff.cpp b/src/Functions/dateDiff.cpp index 27948a35f57..b8bf3c11698 100644 --- a/src/Functions/dateDiff.cpp +++ b/src/Functions/dateDiff.cpp @@ -263,8 +263,7 @@ private: REGISTER_FUNCTION(DateDiff) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } - diff --git a/src/Functions/dateName.cpp b/src/Functions/dateName.cpp index 8f551dfd136..3911b1cf838 100644 --- a/src/Functions/dateName.cpp +++ b/src/Functions/dateName.cpp @@ -345,7 +345,7 @@ private: REGISTER_FUNCTION(DateName) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/date_trunc.cpp b/src/Functions/date_trunc.cpp index bb891ac702f..0e437482e64 100644 --- a/src/Functions/date_trunc.cpp +++ b/src/Functions/date_trunc.cpp @@ -155,7 +155,7 @@ private: REGISTER_FUNCTION(DateTrunc) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); /// Compatibility alias. factory.registerAlias("dateTrunc", FunctionDateTrunc::name); diff --git a/src/Functions/degrees.cpp b/src/Functions/degrees.cpp index 2881f8d2df6..3aa20a77a0d 100644 --- a/src/Functions/degrees.cpp +++ b/src/Functions/degrees.cpp @@ -23,7 +23,7 @@ namespace REGISTER_FUNCTION(Degrees) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/exp.cpp b/src/Functions/exp.cpp index 71037692f15..d352cda7460 100644 --- a/src/Functions/exp.cpp +++ b/src/Functions/exp.cpp @@ -36,7 +36,7 @@ using FunctionExp = FunctionMathUnary>; REGISTER_FUNCTION(Exp) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/greatest.cpp b/src/Functions/greatest.cpp index cac02eea1be..93fd7e24853 100644 --- a/src/Functions/greatest.cpp +++ b/src/Functions/greatest.cpp @@ -65,7 +65,7 @@ using FunctionGreatest = FunctionBinaryArithmetic; REGISTER_FUNCTION(Greatest) { - factory.registerFunction>(FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/hypot.cpp b/src/Functions/hypot.cpp index 4963e0262e4..465471cb09b 100644 --- a/src/Functions/hypot.cpp +++ b/src/Functions/hypot.cpp @@ -15,7 +15,7 @@ namespace REGISTER_FUNCTION(Hypot) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/if.cpp b/src/Functions/if.cpp index d7fefb1ad0e..86707fc62d6 100644 --- a/src/Functions/if.cpp +++ b/src/Functions/if.cpp @@ -1122,7 +1122,7 @@ public: REGISTER_FUNCTION(If) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/ifNull.cpp b/src/Functions/ifNull.cpp index a586a695752..ef301a9662e 100644 --- a/src/Functions/ifNull.cpp +++ b/src/Functions/ifNull.cpp @@ -91,7 +91,7 @@ private: REGISTER_FUNCTION(IfNull) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/isNull.cpp b/src/Functions/isNull.cpp index 1e1d4edd6ed..cdce037088d 100644 --- a/src/Functions/isNull.cpp +++ b/src/Functions/isNull.cpp @@ -74,7 +74,7 @@ public: REGISTER_FUNCTION(IsNull) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/least.cpp b/src/Functions/least.cpp index 53676f0c00d..f5680d4d468 100644 --- a/src/Functions/least.cpp +++ b/src/Functions/least.cpp @@ -65,7 +65,7 @@ using FunctionLeast = FunctionBinaryArithmetic; REGISTER_FUNCTION(Least) { - factory.registerFunction>(FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/left.cpp b/src/Functions/left.cpp index 93983d698ce..006706c8f21 100644 --- a/src/Functions/left.cpp +++ b/src/Functions/left.cpp @@ -6,8 +6,8 @@ namespace DB REGISTER_FUNCTION(Left) { - factory.registerFunction>(FunctionFactory::CaseInsensitive); - factory.registerFunction>(FunctionFactory::CaseSensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseSensitive); } } diff --git a/src/Functions/lemmatize.cpp b/src/Functions/lemmatize.cpp index 72d4fe98a86..873a12baf40 100644 --- a/src/Functions/lemmatize.cpp +++ b/src/Functions/lemmatize.cpp @@ -122,7 +122,7 @@ public: REGISTER_FUNCTION(Lemmatize) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction(); } } diff --git a/src/Functions/lengthUTF8.cpp b/src/Functions/lengthUTF8.cpp index b139f87bc64..f3b3caf112e 100644 --- a/src/Functions/lengthUTF8.cpp +++ b/src/Functions/lengthUTF8.cpp @@ -73,8 +73,8 @@ REGISTER_FUNCTION(LengthUTF8) factory.registerFunction(); /// Compatibility aliases. - factory.registerFunction("CHAR_LENGTH", FunctionFactory::CaseInsensitive); - factory.registerFunction("CHARACTER_LENGTH", FunctionFactory::CaseInsensitive); + factory.registerFunction("CHAR_LENGTH", {}, FunctionFactory::CaseInsensitive); + factory.registerFunction("CHARACTER_LENGTH", {}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/log.cpp b/src/Functions/log.cpp index cacb6dec1d2..9096b8c6f22 100644 --- a/src/Functions/log.cpp +++ b/src/Functions/log.cpp @@ -34,7 +34,7 @@ using FunctionLog = FunctionMathUnary>; REGISTER_FUNCTION(Log) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerAlias("ln", "log", FunctionFactory::CaseInsensitive); } diff --git a/src/Functions/log10.cpp b/src/Functions/log10.cpp index 87b1e84f0fd..5dfe4ac9357 100644 --- a/src/Functions/log10.cpp +++ b/src/Functions/log10.cpp @@ -13,7 +13,7 @@ using FunctionLog10 = FunctionMathUnary(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/log2.cpp b/src/Functions/log2.cpp index 487a9850958..9457ac64bc6 100644 --- a/src/Functions/log2.cpp +++ b/src/Functions/log2.cpp @@ -13,7 +13,7 @@ using FunctionLog2 = FunctionMathUnary>; REGISTER_FUNCTION(Log2) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/lower.cpp b/src/Functions/lower.cpp index a1b777db112..38ae5a8a7f0 100644 --- a/src/Functions/lower.cpp +++ b/src/Functions/lower.cpp @@ -19,7 +19,7 @@ using FunctionLower = FunctionStringToString, NameLower REGISTER_FUNCTION(Lower) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerAlias("lcase", NameLower::name, FunctionFactory::CaseInsensitive); } diff --git a/src/Functions/mathConstants.cpp b/src/Functions/mathConstants.cpp index c65b55cf7cf..c7eb37289ac 100644 --- a/src/Functions/mathConstants.cpp +++ b/src/Functions/mathConstants.cpp @@ -41,7 +41,7 @@ REGISTER_FUNCTION(E) REGISTER_FUNCTION(Pi) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/max2.cpp b/src/Functions/max2.cpp index 3a693f1f5bb..928e6f22918 100644 --- a/src/Functions/max2.cpp +++ b/src/Functions/max2.cpp @@ -21,6 +21,6 @@ namespace REGISTER_FUNCTION(Max2) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/min2.cpp b/src/Functions/min2.cpp index 10233ab4011..f031530edf5 100644 --- a/src/Functions/min2.cpp +++ b/src/Functions/min2.cpp @@ -22,6 +22,6 @@ namespace REGISTER_FUNCTION(Min2) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/monthName.cpp b/src/Functions/monthName.cpp index e841f68b326..f782ac647cc 100644 --- a/src/Functions/monthName.cpp +++ b/src/Functions/monthName.cpp @@ -74,7 +74,7 @@ private: REGISTER_FUNCTION(MonthName) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/now.cpp b/src/Functions/now.cpp index 9ecaca55e52..d257bf4314e 100644 --- a/src/Functions/now.cpp +++ b/src/Functions/now.cpp @@ -128,7 +128,7 @@ public: REGISTER_FUNCTION(Now) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/now64.cpp b/src/Functions/now64.cpp index 0308fa95b39..c5225d3317f 100644 --- a/src/Functions/now64.cpp +++ b/src/Functions/now64.cpp @@ -160,7 +160,7 @@ public: REGISTER_FUNCTION(Now64) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/nullIf.cpp b/src/Functions/nullIf.cpp index e85747834b1..392cc20cfcf 100644 --- a/src/Functions/nullIf.cpp +++ b/src/Functions/nullIf.cpp @@ -69,8 +69,7 @@ public: REGISTER_FUNCTION(NullIf) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } - diff --git a/src/Functions/position.cpp b/src/Functions/position.cpp index c25beec5ed9..409a593b44c 100644 --- a/src/Functions/position.cpp +++ b/src/Functions/position.cpp @@ -19,7 +19,7 @@ using FunctionPosition = FunctionsStringSearch(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerAlias("locate", NamePosition::name, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/pow.cpp b/src/Functions/pow.cpp index afbf9d10f16..9b383da97e7 100644 --- a/src/Functions/pow.cpp +++ b/src/Functions/pow.cpp @@ -13,7 +13,7 @@ using FunctionPow = FunctionMathBinaryFloat64(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerAlias("power", "pow", FunctionFactory::CaseInsensitive); } diff --git a/src/Functions/radians.cpp b/src/Functions/radians.cpp index 5e46ccca5bd..2c2c2743532 100644 --- a/src/Functions/radians.cpp +++ b/src/Functions/radians.cpp @@ -23,7 +23,7 @@ namespace REGISTER_FUNCTION(Radians) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/rand.cpp b/src/Functions/rand.cpp index ba511382651..ea30922d731 100644 --- a/src/Functions/rand.cpp +++ b/src/Functions/rand.cpp @@ -13,9 +13,8 @@ using FunctionRand = FunctionRandom; REGISTER_FUNCTION(Rand) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerAlias("rand32", NameRand::name); } } - diff --git a/src/Functions/repeat.cpp b/src/Functions/repeat.cpp index d89ed683af0..748615f9ce5 100644 --- a/src/Functions/repeat.cpp +++ b/src/Functions/repeat.cpp @@ -254,7 +254,7 @@ public: REGISTER_FUNCTION(Repeat) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/reverse.cpp b/src/Functions/reverse.cpp index 56397958b10..08234afaff0 100644 --- a/src/Functions/reverse.cpp +++ b/src/Functions/reverse.cpp @@ -150,7 +150,7 @@ private: REGISTER_FUNCTION(Reverse) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/right.cpp b/src/Functions/right.cpp index 4c26630c9ff..a8ab4bf9685 100644 --- a/src/Functions/right.cpp +++ b/src/Functions/right.cpp @@ -6,8 +6,8 @@ namespace DB REGISTER_FUNCTION(Right) { - factory.registerFunction>(FunctionFactory::CaseInsensitive); - factory.registerFunction>(FunctionFactory::CaseSensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseSensitive); } } diff --git a/src/Functions/serverConstants.cpp b/src/Functions/serverConstants.cpp index 2190b16d966..623382e1da3 100644 --- a/src/Functions/serverConstants.cpp +++ b/src/Functions/serverConstants.cpp @@ -153,12 +153,12 @@ REGISTER_FUNCTION(Uptime) REGISTER_FUNCTION(Version) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } REGISTER_FUNCTION(Revision) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } REGISTER_FUNCTION(ZooKeeperSessionUptime) @@ -174,4 +174,3 @@ REGISTER_FUNCTION(GetOSKernelVersion) } - diff --git a/src/Functions/sign.cpp b/src/Functions/sign.cpp index ae87ff8e8b6..60ad6ba5365 100644 --- a/src/Functions/sign.cpp +++ b/src/Functions/sign.cpp @@ -45,7 +45,7 @@ struct FunctionUnaryArithmeticMonotonicity REGISTER_FUNCTION(Sign) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/sin.cpp b/src/Functions/sin.cpp index 536b2635b9a..dc75f4800c0 100644 --- a/src/Functions/sin.cpp +++ b/src/Functions/sin.cpp @@ -13,7 +13,7 @@ using FunctionSin = FunctionMathUnary>; REGISTER_FUNCTION(Sin) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/sqrt.cpp b/src/Functions/sqrt.cpp index 63c1098d7e7..3c50f994391 100644 --- a/src/Functions/sqrt.cpp +++ b/src/Functions/sqrt.cpp @@ -13,7 +13,7 @@ using FunctionSqrt = FunctionMathUnary>; REGISTER_FUNCTION(Sqrt) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/stem.cpp b/src/Functions/stem.cpp index 25021ed74a4..50293500b35 100644 --- a/src/Functions/stem.cpp +++ b/src/Functions/stem.cpp @@ -127,7 +127,7 @@ public: REGISTER_FUNCTION(Stem) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction(); } } diff --git a/src/Functions/substring.cpp b/src/Functions/substring.cpp index 79b801a9ef6..dc1c3324437 100644 --- a/src/Functions/substring.cpp +++ b/src/Functions/substring.cpp @@ -188,11 +188,11 @@ public: REGISTER_FUNCTION(Substring) { - factory.registerFunction>(FunctionFactory::CaseInsensitive); + factory.registerFunction>({}, FunctionFactory::CaseInsensitive); factory.registerAlias("substr", "substring", FunctionFactory::CaseInsensitive); factory.registerAlias("mid", "substring", FunctionFactory::CaseInsensitive); /// from MySQL dialect - factory.registerFunction>(FunctionFactory::CaseSensitive); + factory.registerFunction>({}, FunctionFactory::CaseSensitive); } } diff --git a/src/Functions/synonyms.cpp b/src/Functions/synonyms.cpp index d68f9c76743..69310ed9680 100644 --- a/src/Functions/synonyms.cpp +++ b/src/Functions/synonyms.cpp @@ -120,7 +120,7 @@ public: REGISTER_FUNCTION(Synonyms) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/tan.cpp b/src/Functions/tan.cpp index 7d84055d0c3..e39f8598419 100644 --- a/src/Functions/tan.cpp +++ b/src/Functions/tan.cpp @@ -13,7 +13,7 @@ using FunctionTan = FunctionMathUnary>; REGISTER_FUNCTION(Tan) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/tanh.cpp b/src/Functions/tanh.cpp index 9461c2a5811..bdefa5263d7 100644 --- a/src/Functions/tanh.cpp +++ b/src/Functions/tanh.cpp @@ -39,9 +39,7 @@ using FunctionTanh = FunctionMathUnary>; REGISTER_FUNCTION(Tanh) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toDayOfMonth.cpp b/src/Functions/toDayOfMonth.cpp index c5ed4629258..55b0609390f 100644 --- a/src/Functions/toDayOfMonth.cpp +++ b/src/Functions/toDayOfMonth.cpp @@ -14,10 +14,8 @@ REGISTER_FUNCTION(ToDayOfMonth) factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("DAY", FunctionFactory::CaseInsensitive); - factory.registerFunction("DAYOFMONTH", FunctionFactory::CaseInsensitive); + factory.registerFunction("DAY", {}, FunctionFactory::CaseInsensitive); + factory.registerFunction("DAYOFMONTH", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toDayOfWeek.cpp b/src/Functions/toDayOfWeek.cpp index 2c04e30a607..d9022491346 100644 --- a/src/Functions/toDayOfWeek.cpp +++ b/src/Functions/toDayOfWeek.cpp @@ -14,9 +14,7 @@ REGISTER_FUNCTION(ToDayOfWeek) factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("DAYOFWEEK", FunctionFactory::CaseInsensitive); + factory.registerFunction("DAYOFWEEK", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toDayOfYear.cpp b/src/Functions/toDayOfYear.cpp index ac289e3a757..1033a967dc7 100644 --- a/src/Functions/toDayOfYear.cpp +++ b/src/Functions/toDayOfYear.cpp @@ -14,9 +14,7 @@ REGISTER_FUNCTION(ToDayOfYear) factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("DAYOFYEAR", FunctionFactory::CaseInsensitive); + factory.registerFunction("DAYOFYEAR", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toHour.cpp b/src/Functions/toHour.cpp index 172515aad58..d8915366c87 100644 --- a/src/Functions/toHour.cpp +++ b/src/Functions/toHour.cpp @@ -14,9 +14,7 @@ REGISTER_FUNCTION(ToHour) factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("HOUR", FunctionFactory::CaseInsensitive); + factory.registerFunction("HOUR", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toLastDayOfMonth.cpp b/src/Functions/toLastDayOfMonth.cpp index 38d42521f00..9cfcf66bdd1 100644 --- a/src/Functions/toLastDayOfMonth.cpp +++ b/src/Functions/toLastDayOfMonth.cpp @@ -13,9 +13,7 @@ REGISTER_FUNCTION(ToLastDayOfMonth) factory.registerFunction(); /// MySQL compatibility alias. - factory.registerFunction("LAST_DAY", FunctionFactory::CaseInsensitive); + factory.registerFunction("LAST_DAY", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toMinute.cpp b/src/Functions/toMinute.cpp index c84b0876a24..5f6dd182d8d 100644 --- a/src/Functions/toMinute.cpp +++ b/src/Functions/toMinute.cpp @@ -13,9 +13,7 @@ REGISTER_FUNCTION(ToMinute) { factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("MINUTE", FunctionFactory::CaseInsensitive); + factory.registerFunction("MINUTE", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toMonth.cpp b/src/Functions/toMonth.cpp index 1364ad5a997..2d2abe8a99f 100644 --- a/src/Functions/toMonth.cpp +++ b/src/Functions/toMonth.cpp @@ -13,9 +13,7 @@ REGISTER_FUNCTION(ToMonth) { factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("MONTH", FunctionFactory::CaseInsensitive); + factory.registerFunction("MONTH", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toQuarter.cpp b/src/Functions/toQuarter.cpp index e9c1795121f..bf9737fbf56 100644 --- a/src/Functions/toQuarter.cpp +++ b/src/Functions/toQuarter.cpp @@ -13,9 +13,7 @@ REGISTER_FUNCTION(ToQuarter) { factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("QUARTER", FunctionFactory::CaseInsensitive); + factory.registerFunction("QUARTER", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toSecond.cpp b/src/Functions/toSecond.cpp index 8ab329689f7..bf6ffabda0f 100644 --- a/src/Functions/toSecond.cpp +++ b/src/Functions/toSecond.cpp @@ -13,9 +13,7 @@ REGISTER_FUNCTION(ToSecond) { factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("SECOND", FunctionFactory::CaseInsensitive); + factory.registerFunction("SECOND", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/toYear.cpp b/src/Functions/toYear.cpp index 6658bf0e927..eda677a9560 100644 --- a/src/Functions/toYear.cpp +++ b/src/Functions/toYear.cpp @@ -13,9 +13,7 @@ REGISTER_FUNCTION(ToYear) { factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("YEAR", FunctionFactory::CaseInsensitive); + factory.registerFunction("YEAR", {}, FunctionFactory::CaseInsensitive); } } - - diff --git a/src/Functions/upper.cpp b/src/Functions/upper.cpp index 05a125379d9..3e1c7b1d800 100644 --- a/src/Functions/upper.cpp +++ b/src/Functions/upper.cpp @@ -18,7 +18,7 @@ using FunctionUpper = FunctionStringToString, NameUpper REGISTER_FUNCTION(Upper) { - factory.registerFunction(FunctionFactory::CaseInsensitive); + factory.registerFunction({}, FunctionFactory::CaseInsensitive); factory.registerAlias("ucase", FunctionUpper::name, FunctionFactory::CaseInsensitive); } diff --git a/src/Storages/System/StorageSystemFunctions.cpp b/src/Storages/System/StorageSystemFunctions.cpp index e2bc699d3f1..db6b51cb4f1 100644 --- a/src/Storages/System/StorageSystemFunctions.cpp +++ b/src/Storages/System/StorageSystemFunctions.cpp @@ -38,7 +38,13 @@ namespace ErrorCodes namespace { template - void fillRow(MutableColumns & res_columns, const String & name, UInt64 is_aggregate, const String & create_query, FunctionOrigin function_origin, const Factory & f) + void fillRow( + MutableColumns & res_columns, + const String & name, + UInt64 is_aggregate, + const String & create_query, + FunctionOrigin function_origin, + const Factory & factory) { res_columns[0]->insert(name); res_columns[1]->insert(is_aggregate); @@ -50,15 +56,25 @@ namespace } else { - res_columns[2]->insert(f.isCaseInsensitive(name)); - if (f.isAlias(name)) - res_columns[3]->insert(f.aliasTo(name)); + res_columns[2]->insert(factory.isCaseInsensitive(name)); + if (factory.isAlias(name)) + res_columns[3]->insert(factory.aliasTo(name)); else res_columns[3]->insertDefault(); } res_columns[4]->insert(create_query); res_columns[5]->insert(static_cast(function_origin)); + + if constexpr (std::is_same_v) + { + if (factory.isAlias(name)) + res_columns[6]->insertDefault(); + else + res_columns[6]->insert(factory.getDocumentation(name).description); + } + else + res_columns[6]->insertDefault(); } } @@ -79,7 +95,8 @@ NamesAndTypesList StorageSystemFunctions::getNamesAndTypes() {"case_insensitive", std::make_shared()}, {"alias_to", std::make_shared()}, {"create_query", std::make_shared()}, - {"origin", std::make_shared(getOriginEnumsAndValues())} + {"origin", std::make_shared(getOriginEnumsAndValues())}, + {"description", std::make_shared()}, }; } diff --git a/src/TableFunctions/TableFunctionFactory.cpp b/src/TableFunctions/TableFunctionFactory.cpp index 7bcd5452102..5ed22e39300 100644 --- a/src/TableFunctions/TableFunctionFactory.cpp +++ b/src/TableFunctions/TableFunctionFactory.cpp @@ -17,14 +17,15 @@ namespace ErrorCodes } -void TableFunctionFactory::registerFunction(const std::string & name, TableFunctionCreator creator, Doc doc, CaseSensitiveness case_sensitiveness) +void TableFunctionFactory::registerFunction( + const std::string & name, TableFunctionCreator creator, Documentation doc, CaseSensitiveness case_sensitiveness) { - if (!table_functions.emplace(name, TableFunctionData{creator, doc}).second) + if (!table_functions.emplace(name, TableFunctionFactoryData{creator, doc}).second) throw Exception("TableFunctionFactory: the table function name '" + name + "' is not unique", ErrorCodes::LOGICAL_ERROR); if (case_sensitiveness == CaseInsensitive - && !case_insensitive_table_functions.emplace(Poco::toLower(name), TableFunctionData{creator, doc}).second) + && !case_insensitive_table_functions.emplace(Poco::toLower(name), TableFunctionFactoryData{creator, doc}).second) throw Exception("TableFunctionFactory: the case insensitive table function name '" + name + "' is not unique", ErrorCodes::LOGICAL_ERROR); } @@ -85,7 +86,7 @@ bool TableFunctionFactory::isTableFunctionName(const std::string & name) const return table_functions.contains(name); } -Doc TableFunctionFactory::getDocumentation(const std::string & name) const +Documentation TableFunctionFactory::getDocumentation(const std::string & name) const { auto it = table_functions.find(name); if (it == table_functions.end()) diff --git a/src/TableFunctions/TableFunctionFactory.h b/src/TableFunctions/TableFunctionFactory.h index e1672beb134..8ff352ff9ac 100644 --- a/src/TableFunctions/TableFunctionFactory.h +++ b/src/TableFunctions/TableFunctionFactory.h @@ -18,21 +18,25 @@ namespace DB class Context; using TableFunctionCreator = std::function; -using TableFunctionData = std::pair; +using TableFunctionFactoryData = std::pair; /** Lets you get a table function by its name. */ -class TableFunctionFactory final: private boost::noncopyable, public IFactoryWithAliases +class TableFunctionFactory final: private boost::noncopyable, public IFactoryWithAliases { public: static TableFunctionFactory & instance(); /// Register a function by its name. /// No locking, you must register all functions before usage of get. - void registerFunction(const std::string & name, TableFunctionCreator creator, Doc doc = {}, CaseSensitiveness case_sensitiveness = CaseSensitive); + void registerFunction( + const std::string & name, + TableFunctionCreator creator, + Documentation doc = {}, + CaseSensitiveness case_sensitiveness = CaseSensitive); template - void registerFunction(Doc doc = {}, CaseSensitiveness case_sensitiveness = CaseSensitive) + void registerFunction(Documentation doc = {}, CaseSensitiveness case_sensitiveness = CaseSensitive) { auto creator = []() -> TableFunctionPtr { return std::make_shared(); }; registerFunction(Function::name, std::move(creator), std::move(doc), case_sensitiveness); @@ -44,7 +48,7 @@ public: /// Returns nullptr if not found. TableFunctionPtr tryGet(const std::string & name, ContextPtr context) const; - Doc getDocumentation(const std::string & name) const; + Documentation getDocumentation(const std::string & name) const; bool isTableFunctionName(const std::string & name) const; diff --git a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference new file mode 100644 index 00000000000..8d9d6cb5654 --- /dev/null +++ b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference @@ -0,0 +1,1052 @@ +CAST +CHARACTER_LENGTH +CHAR_LENGTH +CRC32 +CRC32IEEE +CRC64 +DATABASE +DATE +DAY +DAYOFMONTH +DAYOFWEEK +DAYOFYEAR +FQDN +FROM_BASE64 +FROM_UNIXTIME +HOUR +IPv4CIDRToRange +IPv4NumToString +IPv4NumToStringClassC +IPv4StringToNum +IPv4StringToNumOrDefault +IPv4StringToNumOrNull +IPv4ToIPv6 +IPv6CIDRToRange +IPv6NumToString +IPv6StringToNum +IPv6StringToNumOrDefault +IPv6StringToNumOrNull +JSONExtract +JSONExtractArrayRaw +JSONExtractBool +JSONExtractFloat +JSONExtractInt +JSONExtractKeys +JSONExtractKeysAndValues +JSONExtractKeysAndValuesRaw +JSONExtractRaw +JSONExtractString +JSONExtractUInt +JSONHas +JSONKey +JSONLength +JSONType +JSON_EXISTS +JSON_QUERY +JSON_VALUE +L1Distance +L1Norm +L1Normalize +L2Distance +L2Norm +L2Normalize +L2SquaredDistance +L2SquaredNorm +LAST_DAY +LinfDistance +LinfNorm +LinfNormalize +LpDistance +LpNorm +LpNormalize +MACNumToString +MACStringToNum +MACStringToOUI +MD4 +MD5 +MINUTE +MONTH +QUARTER +SECOND +SHA1 +SHA224 +SHA256 +SHA384 +SHA512 +TO_BASE64 +URLHash +URLHierarchy +URLPathHierarchy +UUIDNumToString +UUIDStringToNum +YEAR +_CAST +__bitBoolMaskAnd +__bitBoolMaskOr +__bitSwapLastTwo +__bitWrapperFunc +__getScalar +abs +accurateCast +accurateCastOrDefault +accurateCastOrNull +acos +acosh +addDays +addHours +addMicroseconds +addMilliseconds +addMinutes +addMonths +addNanoseconds +addQuarters +addSeconds +addWeeks +addYears +addressToLine +addressToLineWithInlines +addressToSymbol +aes_decrypt_mysql +aes_encrypt_mysql +alphaTokens +and +appendTrailingCharIfAbsent +array +arrayAUC +arrayAll +arrayAvg +arrayCompact +arrayConcat +arrayCount +arrayCumSum +arrayCumSumNonNegative +arrayDifference +arrayDistinct +arrayElement +arrayEnumerate +arrayEnumerateDense +arrayEnumerateDenseRanked +arrayEnumerateUniq +arrayEnumerateUniqRanked +arrayExists +arrayFill +arrayFilter +arrayFirst +arrayFirstIndex +arrayFirstOrNull +arrayFlatten +arrayIntersect +arrayJoin +arrayLast +arrayLastIndex +arrayLastOrNull +arrayMap +arrayMax +arrayMin +arrayPopBack +arrayPopFront +arrayProduct +arrayPushBack +arrayPushFront +arrayReduce +arrayReduceInRanges +arrayResize +arrayReverse +arrayReverseFill +arrayReverseSort +arrayReverseSplit +arraySlice +arraySort +arraySplit +arrayStringConcat +arraySum +arrayUniq +arrayWithConstant +arrayZip +asinh +assumeNotNull +atan +atan2 +atanh +bar +base58Decode +base58Encode +base64Decode +base64Encode +basename +bin +bitAnd +bitCount +bitHammingDistance +bitNot +bitOr +bitPositionsToArray +bitRotateLeft +bitRotateRight +bitShiftLeft +bitShiftRight +bitSlice +bitTest +bitTestAll +bitTestAny +bitXor +bitmapAnd +bitmapAndCardinality +bitmapAndnot +bitmapAndnotCardinality +bitmapBuild +bitmapCardinality +bitmapContains +bitmapHasAll +bitmapHasAny +bitmapMax +bitmapMin +bitmapOr +bitmapOrCardinality +bitmapSubsetInRange +bitmapSubsetLimit +bitmapToArray +bitmapTransform +bitmapXor +bitmapXorCardinality +bitmaskToArray +bitmaskToList +blockNumber +blockSerializedSize +blockSize +buildId +byteSize +caseWithExpr +caseWithExpression +caseWithoutExpr +caseWithoutExpression +cbrt +ceil +char +cityHash64 +coalesce +concat +concatAssumeInjective +connectionId +convertCharset +cos +cosh +cosineDistance +countDigits +countEqual +countMatches +countMatchesCaseInsensitive +countSubstrings +countSubstringsCaseInsensitive +countSubstringsCaseInsensitiveUTF8 +currentDatabase +currentProfiles +currentRoles +currentUser +cutFragment +cutIPv6 +cutQueryString +cutQueryStringAndFragment +cutToFirstSignificantSubdomain +cutToFirstSignificantSubdomainCustom +cutToFirstSignificantSubdomainCustomWithWWW +cutToFirstSignificantSubdomainWithWWW +cutURLParameter +cutWWW +dateDiff +dateName +dateTime64ToSnowflake +dateTimeToSnowflake +date_trunc +decodeURLComponent +decodeURLFormComponent +decodeXMLComponent +decrypt +defaultProfiles +defaultRoles +defaultValueOfArgumentType +defaultValueOfTypeName +degrees +demangle +detectCharset +detectLanguage +detectLanguageMixed +detectLanguageUnknown +detectProgrammingLanguage +detectTonality +dictGet +dictGetChildren +dictGetDate +dictGetDateOrDefault +dictGetDateTime +dictGetDateTimeOrDefault +dictGetDescendants +dictGetFloat32 +dictGetFloat32OrDefault +dictGetFloat64 +dictGetFloat64OrDefault +dictGetHierarchy +dictGetInt16 +dictGetInt16OrDefault +dictGetInt32 +dictGetInt32OrDefault +dictGetInt64 +dictGetInt64OrDefault +dictGetInt8 +dictGetInt8OrDefault +dictGetOrDefault +dictGetOrNull +dictGetString +dictGetStringOrDefault +dictGetUInt16 +dictGetUInt16OrDefault +dictGetUInt32 +dictGetUInt32OrDefault +dictGetUInt64 +dictGetUInt64OrDefault +dictGetUInt8 +dictGetUInt8OrDefault +dictGetUUID +dictGetUUIDOrDefault +dictHas +dictIsIn +divide +domain +domainWithoutWWW +dotProduct +dumpColumnStructure +e +empty +emptyArrayDate +emptyArrayDateTime +emptyArrayFloat32 +emptyArrayFloat64 +emptyArrayInt16 +emptyArrayInt32 +emptyArrayInt64 +emptyArrayInt8 +emptyArrayString +emptyArrayToSingle +emptyArrayUInt16 +emptyArrayUInt32 +emptyArrayUInt64 +emptyArrayUInt8 +enabledProfiles +enabledRoles +encodeURLComponent +encodeURLFormComponent +encodeXMLComponent +encrypt +endsWith +equals +erf +erfc +errorCodeToName +evalMLMethod +exp +exp10 +exp2 +extract +extractAll +extractAllGroupsHorizontal +extractAllGroupsVertical +extractGroups +extractTextFromHTML +extractURLParameter +extractURLParameterNames +extractURLParameters +farmFingerprint64 +farmHash64 +file +filesystemAvailable +filesystemCapacity +filesystemFree +finalizeAggregation +firstSignificantSubdomain +firstSignificantSubdomainCustom +flattenTuple +floor +format +formatDateTime +formatReadableQuantity +formatReadableSize +formatReadableTimeDelta +formatRow +formatRowNoNewline +fragment +fromModifiedJulianDay +fromModifiedJulianDayOrNull +fromUnixTimestamp64Micro +fromUnixTimestamp64Milli +fromUnixTimestamp64Nano +fullHostName +fuzzBits +gccMurmurHash +gcd +generateUUIDv4 +geoDistance +geoToH3 +geoToS2 +geohashDecode +geohashEncode +geohashesInBox +getMacro +getOSKernelVersion +getServerPort +getSetting +getSizeOfEnumType +getTypeSerializationStreams +globalIn +globalInIgnoreSet +globalNotIn +globalNotInIgnoreSet +globalNotNullIn +globalNotNullInIgnoreSet +globalNullIn +globalNullInIgnoreSet +globalVariable +greatCircleAngle +greatCircleDistance +greater +greaterOrEquals +greatest +h3CellAreaM2 +h3CellAreaRads2 +h3Distance +h3EdgeAngle +h3EdgeLengthKm +h3EdgeLengthM +h3ExactEdgeLengthKm +h3ExactEdgeLengthM +h3ExactEdgeLengthRads +h3GetBaseCell +h3GetDestinationIndexFromUnidirectionalEdge +h3GetFaces +h3GetIndexesFromUnidirectionalEdge +h3GetOriginIndexFromUnidirectionalEdge +h3GetPentagonIndexes +h3GetRes0Indexes +h3GetResolution +h3GetUnidirectionalEdge +h3GetUnidirectionalEdgeBoundary +h3GetUnidirectionalEdgesFromHexagon +h3HexAreaKm2 +h3HexAreaM2 +h3HexRing +h3IndexesAreNeighbors +h3IsPentagon +h3IsResClassIII +h3IsValid +h3Line +h3NumHexagons +h3PointDistKm +h3PointDistM +h3PointDistRads +h3ToCenterChild +h3ToChildren +h3ToGeo +h3ToGeoBoundary +h3ToParent +h3ToString +h3UnidirectionalEdgeIsValid +h3kRing +halfMD5 +has +hasAll +hasAny +hasColumnInTable +hasSubstr +hasThreadFuzzer +hasToken +hasTokenCaseInsensitive +hashid +hex +hiveHash +hop +hopEnd +hopStart +hostName +hypot +identity +if +ifNotFinite +ifNull +ignore +ilike +in +inIgnoreSet +indexHint +indexOf +initialQueryID +initializeAggregation +intDiv +intDivOrZero +intExp10 +intExp2 +intHash32 +intHash64 +isConstant +isDecimalOverflow +isFinite +isIPAddressInRange +isIPv4String +isIPv6String +isInfinite +isNaN +isNotNull +isNull +isNullable +isValidJSON +isValidUTF8 +isZeroOrNull +javaHash +javaHashUTF16LE +joinGet +joinGetOrNull +jumpConsistentHash +kostikConsistentHash +lcm +least +left +leftPad +leftPadUTF8 +leftUTF8 +lemmatize +lengthUTF8 +less +lessOrEquals +lgamma +like +log +log10 +log1p +log2 +logTrace +lowCardinalityIndices +lowCardinalityKeys +lower +lowerUTF8 +makeDate +makeDate32 +makeDateTime +makeDateTime64 +map +mapAdd +mapApply +mapContains +mapContainsKeyLike +mapExtractKeyLike +mapFilter +mapKeys +mapPopulateSeries +mapSubtract +mapUpdate +mapValues +match +materialize +max2 +meiliMatch +metroHash64 +min2 +minSampleSizeContinous +minSampleSizeConversion +minus +modelEvaluate +modulo +moduloLegacy +moduloOrZero +monthName +multiFuzzyMatchAllIndices +multiFuzzyMatchAny +multiFuzzyMatchAnyIndex +multiIf +multiMatchAllIndices +multiMatchAny +multiMatchAnyIndex +multiSearchAllPositions +multiSearchAllPositionsCaseInsensitive +multiSearchAllPositionsCaseInsensitiveUTF8 +multiSearchAllPositionsUTF8 +multiSearchAny +multiSearchAnyCaseInsensitive +multiSearchAnyCaseInsensitiveUTF8 +multiSearchAnyUTF8 +multiSearchFirstIndex +multiSearchFirstIndexCaseInsensitive +multiSearchFirstIndexCaseInsensitiveUTF8 +multiSearchFirstIndexUTF8 +multiSearchFirstPosition +multiSearchFirstPositionCaseInsensitive +multiSearchFirstPositionCaseInsensitiveUTF8 +multiSearchFirstPositionUTF8 +multiply +murmurHash2_32 +murmurHash2_64 +murmurHash3_128 +murmurHash3_32 +murmurHash3_64 +negate +neighbor +netloc +ngramDistance +ngramDistanceCaseInsensitive +ngramDistanceCaseInsensitiveUTF8 +ngramDistanceUTF8 +ngramMinHash +ngramMinHashArg +ngramMinHashArgCaseInsensitive +ngramMinHashArgCaseInsensitiveUTF8 +ngramMinHashArgUTF8 +ngramMinHashCaseInsensitive +ngramMinHashCaseInsensitiveUTF8 +ngramMinHashUTF8 +ngramSearch +ngramSearchCaseInsensitive +ngramSearchCaseInsensitiveUTF8 +ngramSearchUTF8 +ngramSimHash +ngramSimHashCaseInsensitive +ngramSimHashCaseInsensitiveUTF8 +ngramSimHashUTF8 +ngrams +normalizeQuery +normalizeQueryKeepNames +normalizeUTF8NFC +normalizeUTF8NFD +normalizeUTF8NFKC +normalizeUTF8NFKD +normalizedQueryHash +normalizedQueryHashKeepNames +not +notEmpty +notEquals +notILike +notIn +notInIgnoreSet +notLike +notNullIn +notNullInIgnoreSet +now +now64 +nowInBlock +nullIf +nullIn +nullInIgnoreSet +or +parseDateTime32BestEffort +parseDateTime32BestEffortOrNull +parseDateTime32BestEffortOrZero +parseDateTime64BestEffort +parseDateTime64BestEffortOrNull +parseDateTime64BestEffortOrZero +parseDateTime64BestEffortUS +parseDateTime64BestEffortUSOrNull +parseDateTime64BestEffortUSOrZero +parseDateTimeBestEffort +parseDateTimeBestEffortOrNull +parseDateTimeBestEffortOrZero +parseDateTimeBestEffortUS +parseDateTimeBestEffortUSOrNull +parseDateTimeBestEffortUSOrZero +parseTimeDelta +partitionId +path +pathFull +pi +plus +pointInEllipses +pointInPolygon +polygonAreaCartesian +polygonAreaSpherical +polygonConvexHullCartesian +polygonPerimeterCartesian +polygonPerimeterSpherical +polygonsDistanceCartesian +polygonsDistanceSpherical +polygonsEqualsCartesian +polygonsIntersectionCartesian +polygonsIntersectionSpherical +polygonsSymDifferenceCartesian +polygonsSymDifferenceSpherical +polygonsUnionCartesian +polygonsUnionSpherical +polygonsWithinCartesian +polygonsWithinSpherical +port +position +positionCaseInsensitive +positionCaseInsensitiveUTF8 +positionUTF8 +pow +proportionsZTest +protocol +queryID +queryString +queryStringAndFragment +radians +rand +rand64 +randConstant +randomFixedString +randomPrintableASCII +randomString +randomStringUTF8 +range +readWKTMultiPolygon +readWKTPoint +readWKTPolygon +readWKTRing +regexpQuoteMeta +regionHierarchy +regionIn +regionToArea +regionToCity +regionToContinent +regionToCountry +regionToDistrict +regionToName +regionToPopulation +regionToTopContinent +reinterpret +reinterpretAsDate +reinterpretAsDateTime +reinterpretAsFixedString +reinterpretAsFloat32 +reinterpretAsFloat64 +reinterpretAsInt128 +reinterpretAsInt16 +reinterpretAsInt256 +reinterpretAsInt32 +reinterpretAsInt64 +reinterpretAsInt8 +reinterpretAsString +reinterpretAsUInt128 +reinterpretAsUInt16 +reinterpretAsUInt256 +reinterpretAsUInt32 +reinterpretAsUInt64 +reinterpretAsUInt8 +reinterpretAsUUID +repeat +replaceAll +replaceOne +replaceRegexpAll +replaceRegexpOne +replicate +reverse +reverseUTF8 +revision +right +rightPad +rightPadUTF8 +rightUTF8 +round +roundAge +roundBankers +roundDown +roundDuration +roundToExp2 +rowNumberInAllBlocks +rowNumberInBlock +runningAccumulate +runningConcurrency +runningDifference +runningDifferenceStartingWithFirstValue +s2CapContains +s2CapUnion +s2CellsIntersect +s2GetNeighbors +s2RectAdd +s2RectContains +s2RectIntersection +s2RectUnion +s2ToGeo +serverUUID +shardCount +shardNum +showCertificate +sigmoid +sign +simpleJSONExtractBool +simpleJSONExtractFloat +simpleJSONExtractInt +simpleJSONExtractRaw +simpleJSONExtractString +simpleJSONExtractUInt +simpleJSONHas +sin +sinh +sipHash128 +sipHash64 +sleep +sleepEachRow +snowflakeToDateTime +snowflakeToDateTime64 +splitByChar +splitByNonAlpha +splitByRegexp +splitByString +splitByWhitespace +sqrt +startsWith +stem +stringToH3 +subBitmap +substring +substringUTF8 +subtractDays +subtractHours +subtractMicroseconds +subtractMilliseconds +subtractMinutes +subtractMonths +subtractNanoseconds +subtractQuarters +subtractSeconds +subtractWeeks +subtractYears +svg +synonyms +tan +tanh +tcpPort +tgamma +throwIf +tid +timeSlot +timeSlots +timezone +timezoneOf +timezoneOffset +toBool +toColumnTypeName +toDate +toDate32 +toDate32OrDefault +toDate32OrNull +toDate32OrZero +toDateOrDefault +toDateOrNull +toDateOrZero +toDateTime +toDateTime32 +toDateTime64 +toDateTime64OrDefault +toDateTime64OrNull +toDateTime64OrZero +toDateTimeOrDefault +toDateTimeOrNull +toDateTimeOrZero +toDayOfMonth +toDayOfWeek +toDayOfYear +toDecimal128 +toDecimal128OrDefault +toDecimal128OrNull +toDecimal128OrZero +toDecimal256 +toDecimal256OrDefault +toDecimal256OrNull +toDecimal256OrZero +toDecimal32 +toDecimal32OrDefault +toDecimal32OrNull +toDecimal32OrZero +toDecimal64 +toDecimal64OrDefault +toDecimal64OrNull +toDecimal64OrZero +toFixedString +toFloat32 +toFloat32OrDefault +toFloat32OrNull +toFloat32OrZero +toFloat64 +toFloat64OrDefault +toFloat64OrNull +toFloat64OrZero +toHour +toIPv4 +toIPv4OrDefault +toIPv4OrNull +toIPv6 +toIPv6OrDefault +toIPv6OrNull +toISOWeek +toISOYear +toInt128 +toInt128OrDefault +toInt128OrNull +toInt128OrZero +toInt16 +toInt16OrDefault +toInt16OrNull +toInt16OrZero +toInt256 +toInt256OrDefault +toInt256OrNull +toInt256OrZero +toInt32 +toInt32OrDefault +toInt32OrNull +toInt32OrZero +toInt64 +toInt64OrDefault +toInt64OrNull +toInt64OrZero +toInt8 +toInt8OrDefault +toInt8OrNull +toInt8OrZero +toIntervalDay +toIntervalHour +toIntervalMicrosecond +toIntervalMillisecond +toIntervalMinute +toIntervalMonth +toIntervalNanosecond +toIntervalQuarter +toIntervalSecond +toIntervalWeek +toIntervalYear +toJSONString +toLastDayOfMonth +toLowCardinality +toMinute +toModifiedJulianDay +toModifiedJulianDayOrNull +toMonday +toMonth +toNullable +toQuarter +toRelativeDayNum +toRelativeHourNum +toRelativeMinuteNum +toRelativeMonthNum +toRelativeQuarterNum +toRelativeSecondNum +toRelativeWeekNum +toRelativeYearNum +toSecond +toStartOfDay +toStartOfFifteenMinutes +toStartOfFiveMinutes +toStartOfHour +toStartOfISOYear +toStartOfInterval +toStartOfMicrosecond +toStartOfMillisecond +toStartOfMinute +toStartOfMonth +toStartOfNanosecond +toStartOfQuarter +toStartOfSecond +toStartOfTenMinutes +toStartOfWeek +toStartOfYear +toString +toStringCutToZero +toTime +toTimezone +toTypeName +toUInt128 +toUInt128OrNull +toUInt128OrZero +toUInt16 +toUInt16OrDefault +toUInt16OrNull +toUInt16OrZero +toUInt256 +toUInt256OrDefault +toUInt256OrNull +toUInt256OrZero +toUInt32 +toUInt32OrDefault +toUInt32OrNull +toUInt32OrZero +toUInt64 +toUInt64OrDefault +toUInt64OrNull +toUInt64OrZero +toUInt8 +toUInt8OrDefault +toUInt8OrNull +toUInt8OrZero +toUUID +toUUIDOrDefault +toUUIDOrNull +toUUIDOrZero +toUnixTimestamp +toUnixTimestamp64Micro +toUnixTimestamp64Milli +toUnixTimestamp64Nano +toValidUTF8 +toWeek +toYYYYMM +toYYYYMMDD +toYYYYMMDDhhmmss +toYear +toYearWeek +today +tokens +topLevelDomain +transactionID +transactionLatestSnapshot +transactionOldestSnapshot +transform +translate +translateUTF8 +trimBoth +trimLeft +trimRight +trunc +tryBase64Decode +tumble +tumbleEnd +tumbleStart +tuple +tupleDivide +tupleDivideByNumber +tupleElement +tupleHammingDistance +tupleMinus +tupleMultiply +tupleMultiplyByNumber +tupleNegate +tuplePlus +tupleToNameValuePairs +unbin +unhex +upper +upperUTF8 +uptime +validateNestedArraySizes +version +visibleWidth +visitParamExtractBool +visitParamExtractFloat +visitParamExtractInt +visitParamExtractRaw +visitParamExtractString +visitParamExtractUInt +visitParamHas +windowID +wkt +wordShingleMinHash +wordShingleMinHashArg +wordShingleMinHashArgCaseInsensitive +wordShingleMinHashArgCaseInsensitiveUTF8 +wordShingleMinHashArgUTF8 +wordShingleMinHashCaseInsensitive +wordShingleMinHashCaseInsensitiveUTF8 +wordShingleMinHashUTF8 +wordShingleSimHash +wordShingleSimHashCaseInsensitive +wordShingleSimHashCaseInsensitiveUTF8 +wordShingleSimHashUTF8 +wyHash64 +xor +xxHash32 +xxHash64 +yesterday +zookeeperSessionUptime diff --git a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql new file mode 100644 index 00000000000..1454bfe24b4 --- /dev/null +++ b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql @@ -0,0 +1,3 @@ +-- This outputs the list of undocumented functions. No new items in the list should appear. +-- Please help shorten this list down to zero elements. +SELECT name FROM system.functions WHERE NOT is_aggregate AND origin = 'System' AND alias_to = '' AND length(description) < 10 ORDER BY name; From 31a7ed09a1d4d51ae0c686e3947c045a1bd6d68c Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy Date: Sat, 27 Aug 2022 21:08:01 +0000 Subject: [PATCH 32/61] disable default ENABLE_CLICKHOUSE_SELF_EXTRACTING and add to env --- programs/CMakeLists.txt | 9 ++++----- tests/ci/build_check.py | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/programs/CMakeLists.txt b/programs/CMakeLists.txt index d10a3e9ca14..3c0c0781de6 100644 --- a/programs/CMakeLists.txt +++ b/programs/CMakeLists.txt @@ -18,11 +18,10 @@ option (ENABLE_CLICKHOUSE_SERVER "Server mode (main mode)" ${ENABLE_CLICKHOUSE_A option (ENABLE_CLICKHOUSE_CLIENT "Client mode (interactive tui/shell that connects to the server)" ${ENABLE_CLICKHOUSE_ALL}) -if (SPLIT_SHARED_LIBRARIES) - # Don't create self-extracting clickhouse for split build - option (ENABLE_CLICKHOUSE_SELF_EXTRACTING "Self-extracting executable" OFF) -else () - option (ENABLE_CLICKHOUSE_SELF_EXTRACTING "Self-extracting executable" ON) +# Don't create self-extracting clickhouse for split build +if (ENABLE_CLICKHOUSE_SELF_EXTRACTING AND SPLIT_SHARED_LIBRARIES) + message (STATUS "Self-extracting on split build is not supported") + unset (ENABLE_CLICKHOUSE_SELF_EXTRACTING CACHE) endif () # https://clickhouse.com/docs/en/operations/utilities/clickhouse-local/ diff --git a/tests/ci/build_check.py b/tests/ci/build_check.py index 533d0f7ac6e..f58c7a74dfe 100644 --- a/tests/ci/build_check.py +++ b/tests/ci/build_check.py @@ -58,8 +58,9 @@ def get_packager_cmd( ) -> str: package_type = build_config["package_type"] comp = build_config["compiler"] + cmake_flags = "-DENABLE_CLICKHOUSE_SELF_EXTRACTING=1" cmd = ( - f"cd {packager_path} && ./packager --output-dir={output_path} " + f"cd {packager_path} && CMAKE_FLAGS='{cmake_flags}' ./packager --output-dir={output_path} " f"--package-type={package_type} --compiler={comp}" ) From 421d28542bc76ebda0303c4e4bd5b97f2a6bc514 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 27 Aug 2022 23:53:51 +0200 Subject: [PATCH 33/61] Register all function aliases correctly --- src/Functions/FunctionsConversion.cpp | 2 +- src/Functions/base64Decode.cpp | 2 +- src/Functions/base64Encode.cpp | 2 +- src/Functions/currentDatabase.cpp | 2 +- src/Functions/lengthUTF8.cpp | 4 ++-- src/Functions/toDayOfMonth.cpp | 4 ++-- src/Functions/toDayOfWeek.cpp | 2 +- src/Functions/toDayOfYear.cpp | 2 +- src/Functions/toHour.cpp | 2 +- src/Functions/toLastDayOfMonth.cpp | 2 +- src/Functions/toMinute.cpp | 3 ++- src/Functions/toMonth.cpp | 2 +- src/Functions/toQuarter.cpp | 2 +- src/Functions/toSecond.cpp | 3 ++- src/Functions/toYear.cpp | 3 ++- 15 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/Functions/FunctionsConversion.cpp b/src/Functions/FunctionsConversion.cpp index 3deb93fa5b4..3c2f8e454f6 100644 --- a/src/Functions/FunctionsConversion.cpp +++ b/src/Functions/FunctionsConversion.cpp @@ -29,7 +29,7 @@ REGISTER_FUNCTION(Conversion) factory.registerFunction(); /// MySQL compatibility alias. - factory.registerFunction("DATE", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("DATE", "toDate", FunctionFactory::CaseInsensitive); factory.registerFunction(); factory.registerFunction(); factory.registerFunction(); diff --git a/src/Functions/base64Decode.cpp b/src/Functions/base64Decode.cpp index 071d2554927..f6943233d44 100644 --- a/src/Functions/base64Decode.cpp +++ b/src/Functions/base64Decode.cpp @@ -12,7 +12,7 @@ REGISTER_FUNCTION(Base64Decode) factory.registerFunction>(); /// MysQL compatibility alias. - factory.registerFunction>("FROM_BASE64", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("FROM_BASE64", "base64Decode", FunctionFactory::CaseInsensitive); } } #endif diff --git a/src/Functions/base64Encode.cpp b/src/Functions/base64Encode.cpp index b3bc8345496..e895230d44f 100644 --- a/src/Functions/base64Encode.cpp +++ b/src/Functions/base64Encode.cpp @@ -14,7 +14,7 @@ REGISTER_FUNCTION(Base64Encode) factory.registerFunction>(); /// MysQL compatibility alias. - factory.registerFunction>("TO_BASE64", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("TO_BASE64", "base64Encode", FunctionFactory::CaseInsensitive); } } #endif diff --git a/src/Functions/currentDatabase.cpp b/src/Functions/currentDatabase.cpp index 09a60f6b66e..b1a3cbf5856 100644 --- a/src/Functions/currentDatabase.cpp +++ b/src/Functions/currentDatabase.cpp @@ -54,7 +54,7 @@ public: REGISTER_FUNCTION(CurrentDatabase) { factory.registerFunction(); - factory.registerFunction("DATABASE", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("DATABASE", "currentDatabase", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/lengthUTF8.cpp b/src/Functions/lengthUTF8.cpp index f3b3caf112e..9e5b5d04dd2 100644 --- a/src/Functions/lengthUTF8.cpp +++ b/src/Functions/lengthUTF8.cpp @@ -73,8 +73,8 @@ REGISTER_FUNCTION(LengthUTF8) factory.registerFunction(); /// Compatibility aliases. - factory.registerFunction("CHAR_LENGTH", {}, FunctionFactory::CaseInsensitive); - factory.registerFunction("CHARACTER_LENGTH", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("CHAR_LENGTH", "lengthUTF8", FunctionFactory::CaseInsensitive); + factory.registerAlias("CHARACTER_LENGTH", "lengthUTF8", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toDayOfMonth.cpp b/src/Functions/toDayOfMonth.cpp index 55b0609390f..d7689ef00f2 100644 --- a/src/Functions/toDayOfMonth.cpp +++ b/src/Functions/toDayOfMonth.cpp @@ -14,8 +14,8 @@ REGISTER_FUNCTION(ToDayOfMonth) factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("DAY", {}, FunctionFactory::CaseInsensitive); - factory.registerFunction("DAYOFMONTH", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("DAY", "toDayOfMonth", FunctionFactory::CaseInsensitive); + factory.registerAlias("DAYOFMONTH", "toDayOfMonth", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toDayOfWeek.cpp b/src/Functions/toDayOfWeek.cpp index d9022491346..354d4dea894 100644 --- a/src/Functions/toDayOfWeek.cpp +++ b/src/Functions/toDayOfWeek.cpp @@ -14,7 +14,7 @@ REGISTER_FUNCTION(ToDayOfWeek) factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("DAYOFWEEK", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("DAYOFWEEK", "toDayOfWeek", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toDayOfYear.cpp b/src/Functions/toDayOfYear.cpp index 1033a967dc7..8b03f1a4211 100644 --- a/src/Functions/toDayOfYear.cpp +++ b/src/Functions/toDayOfYear.cpp @@ -14,7 +14,7 @@ REGISTER_FUNCTION(ToDayOfYear) factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("DAYOFYEAR", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("DAYOFYEAR", "toDayOfYear", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toHour.cpp b/src/Functions/toHour.cpp index d8915366c87..a6a57946e33 100644 --- a/src/Functions/toHour.cpp +++ b/src/Functions/toHour.cpp @@ -14,7 +14,7 @@ REGISTER_FUNCTION(ToHour) factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("HOUR", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("HOUR", "toHour", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toLastDayOfMonth.cpp b/src/Functions/toLastDayOfMonth.cpp index 9cfcf66bdd1..a7faab15f9f 100644 --- a/src/Functions/toLastDayOfMonth.cpp +++ b/src/Functions/toLastDayOfMonth.cpp @@ -13,7 +13,7 @@ REGISTER_FUNCTION(ToLastDayOfMonth) factory.registerFunction(); /// MySQL compatibility alias. - factory.registerFunction("LAST_DAY", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("LAST_DAY", "toLastDayOfMonth", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toMinute.cpp b/src/Functions/toMinute.cpp index 5f6dd182d8d..25939870554 100644 --- a/src/Functions/toMinute.cpp +++ b/src/Functions/toMinute.cpp @@ -12,8 +12,9 @@ using FunctionToMinute = FunctionDateOrDateTimeToSomething(); + /// MysQL compatibility alias. - factory.registerFunction("MINUTE", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("MINUTE", "toMinute", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toMonth.cpp b/src/Functions/toMonth.cpp index 2d2abe8a99f..783a1341e23 100644 --- a/src/Functions/toMonth.cpp +++ b/src/Functions/toMonth.cpp @@ -13,7 +13,7 @@ REGISTER_FUNCTION(ToMonth) { factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("MONTH", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("MONTH", "toMonth", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toQuarter.cpp b/src/Functions/toQuarter.cpp index bf9737fbf56..2268b6402c6 100644 --- a/src/Functions/toQuarter.cpp +++ b/src/Functions/toQuarter.cpp @@ -13,7 +13,7 @@ REGISTER_FUNCTION(ToQuarter) { factory.registerFunction(); /// MysQL compatibility alias. - factory.registerFunction("QUARTER", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("QUARTER", "toQuarter", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toSecond.cpp b/src/Functions/toSecond.cpp index bf6ffabda0f..2fd64912c0f 100644 --- a/src/Functions/toSecond.cpp +++ b/src/Functions/toSecond.cpp @@ -12,8 +12,9 @@ using FunctionToSecond = FunctionDateOrDateTimeToSomething(); + /// MysQL compatibility alias. - factory.registerFunction("SECOND", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("SECOND", "toSecond", FunctionFactory::CaseInsensitive); } } diff --git a/src/Functions/toYear.cpp b/src/Functions/toYear.cpp index eda677a9560..9cf2a260921 100644 --- a/src/Functions/toYear.cpp +++ b/src/Functions/toYear.cpp @@ -12,8 +12,9 @@ using FunctionToYear = FunctionDateOrDateTimeToSomething(); + /// MysQL compatibility alias. - factory.registerFunction("YEAR", {}, FunctionFactory::CaseInsensitive); + factory.registerAlias("YEAR", "toYear", FunctionFactory::CaseInsensitive); } } From e2666885764e3410f29f7d59b04ec5eabbcc461f Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 27 Aug 2022 23:58:34 +0200 Subject: [PATCH 34/61] Remove something stupid --- src/Functions/formatDateTime.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Functions/formatDateTime.cpp b/src/Functions/formatDateTime.cpp index 37f1f7e83f8..328e252b67e 100644 --- a/src/Functions/formatDateTime.cpp +++ b/src/Functions/formatDateTime.cpp @@ -722,19 +722,19 @@ struct NameFormatDateTime struct NameFromUnixTime { - static constexpr auto name = "FROM_UNIXTIME"; + static constexpr auto name = "fromUnixTimestamp"; }; using FunctionFormatDateTime = FunctionFormatDateTimeImpl; -using FunctionFROM_UNIXTIME = FunctionFormatDateTimeImpl; +using FunctionFromUnixTimestamp = FunctionFormatDateTimeImpl; } REGISTER_FUNCTION(FormatDateTime) { factory.registerFunction(); - factory.registerFunction(); - factory.registerAlias("fromUnixTimestamp", "FROM_UNIXTIME"); + factory.registerFunction(); + factory.registerAlias("FROM_UNIXTIME", "fromUnixTimestamp"); } } From a7f4c90f0c8aa50733d6a7e564ebeea62f687636 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 27 Aug 2022 23:59:32 +0200 Subject: [PATCH 35/61] Update test --- ...new_functions_must_be_documented.reference | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference index 8d9d6cb5654..a326515922d 100644 --- a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference +++ b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference @@ -1,19 +1,8 @@ CAST -CHARACTER_LENGTH -CHAR_LENGTH CRC32 CRC32IEEE CRC64 -DATABASE -DATE -DAY -DAYOFMONTH -DAYOFWEEK -DAYOFYEAR FQDN -FROM_BASE64 -FROM_UNIXTIME -HOUR IPv4CIDRToRange IPv4NumToString IPv4NumToStringClassC @@ -52,7 +41,6 @@ L2Norm L2Normalize L2SquaredDistance L2SquaredNorm -LAST_DAY LinfDistance LinfNorm LinfNormalize @@ -64,22 +52,16 @@ MACStringToNum MACStringToOUI MD4 MD5 -MINUTE -MONTH -QUARTER -SECOND SHA1 SHA224 SHA256 SHA384 SHA512 -TO_BASE64 URLHash URLHierarchy URLPathHierarchy UUIDNumToString UUIDStringToNum -YEAR _CAST __bitBoolMaskAnd __bitBoolMaskOr @@ -376,6 +358,7 @@ formatRowNoNewline fragment fromModifiedJulianDay fromModifiedJulianDayOrNull +fromUnixTimestamp fromUnixTimestamp64Micro fromUnixTimestamp64Milli fromUnixTimestamp64Nano From a6d99e795edf0fb4d0b15855744dae11941eb8fb Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 00:14:38 +0200 Subject: [PATCH 36/61] Register more aliases correctly --- src/Functions/visitParamExtractBool.cpp | 7 ++----- src/Functions/visitParamExtractFloat.cpp | 7 ++----- src/Functions/visitParamExtractInt.cpp | 7 ++----- src/Functions/visitParamExtractRaw.cpp | 5 +---- src/Functions/visitParamExtractString.cpp | 5 +---- src/Functions/visitParamExtractUInt.cpp | 7 ++----- src/Functions/visitParamHas.cpp | 7 ++----- .../02415_all_new_functions_must_be_documented.reference | 7 ------- 8 files changed, 12 insertions(+), 40 deletions(-) diff --git a/src/Functions/visitParamExtractBool.cpp b/src/Functions/visitParamExtractBool.cpp index e5a2277b443..31763fe54ce 100644 --- a/src/Functions/visitParamExtractBool.cpp +++ b/src/Functions/visitParamExtractBool.cpp @@ -16,16 +16,13 @@ struct ExtractBool } }; -struct NameVisitParamExtractBool { static constexpr auto name = "visitParamExtractBool"; }; -using FunctionVisitParamExtractBool = FunctionsStringSearch>; - -struct NameSimpleJSONExtractBool { static constexpr auto name = "simpleJSONExtractBool"; }; +struct NameSimpleJSONExtractBool { static constexpr auto name = "simpleJSONExtractBool"; }; using FunctionSimpleJSONExtractBool = FunctionsStringSearch>; REGISTER_FUNCTION(VisitParamExtractBool) { - factory.registerFunction(); factory.registerFunction(); + factory.registerAlias("visitParamExtractBool", "simpleJSONExtractBool"); } } diff --git a/src/Functions/visitParamExtractFloat.cpp b/src/Functions/visitParamExtractFloat.cpp index ee00f960f8f..6f6d5274050 100644 --- a/src/Functions/visitParamExtractFloat.cpp +++ b/src/Functions/visitParamExtractFloat.cpp @@ -6,16 +6,13 @@ namespace DB { -struct NameVisitParamExtractFloat { static constexpr auto name = "visitParamExtractFloat"; }; -using FunctionVisitParamExtractFloat = FunctionsStringSearch>>; - -struct NameSimpleJSONExtractFloat { static constexpr auto name = "simpleJSONExtractFloat"; }; +struct NameSimpleJSONExtractFloat { static constexpr auto name = "simpleJSONExtractFloat"; }; using FunctionSimpleJSONExtractFloat = FunctionsStringSearch>>; REGISTER_FUNCTION(VisitParamExtractFloat) { - factory.registerFunction(); factory.registerFunction(); + factory.registerAlias("visitParamExtractFloat", "simpleJSONExtractFloat"); } } diff --git a/src/Functions/visitParamExtractInt.cpp b/src/Functions/visitParamExtractInt.cpp index 30b373182ea..e020c43e8b4 100644 --- a/src/Functions/visitParamExtractInt.cpp +++ b/src/Functions/visitParamExtractInt.cpp @@ -6,16 +6,13 @@ namespace DB { -struct NameVisitParamExtractInt { static constexpr auto name = "visitParamExtractInt"; }; -using FunctionVisitParamExtractInt = FunctionsStringSearch>>; - -struct NameSimpleJSONExtractInt { static constexpr auto name = "simpleJSONExtractInt"; }; +struct NameSimpleJSONExtractInt { static constexpr auto name = "simpleJSONExtractInt"; }; using FunctionSimpleJSONExtractInt = FunctionsStringSearch>>; REGISTER_FUNCTION(VisitParamExtractInt) { - factory.registerFunction(); factory.registerFunction(); + factory.registerAlias("visitParamExtractInt", "simpleJSONExtractInt"); } } diff --git a/src/Functions/visitParamExtractRaw.cpp b/src/Functions/visitParamExtractRaw.cpp index ab21fdf6e98..74a83170545 100644 --- a/src/Functions/visitParamExtractRaw.cpp +++ b/src/Functions/visitParamExtractRaw.cpp @@ -56,16 +56,13 @@ struct ExtractRaw } }; -struct NameVisitParamExtractRaw { static constexpr auto name = "visitParamExtractRaw"; }; -using FunctionVisitParamExtractRaw = FunctionsStringSearchToString, NameVisitParamExtractRaw>; - struct NameSimpleJSONExtractRaw { static constexpr auto name = "simpleJSONExtractRaw"; }; using FunctionSimpleJSONExtractRaw = FunctionsStringSearchToString, NameSimpleJSONExtractRaw>; REGISTER_FUNCTION(VisitParamExtractRaw) { - factory.registerFunction(); factory.registerFunction(); + factory.registerAlias("visitParamExtractRaw", "simpleJSONExtractRaw"); } } diff --git a/src/Functions/visitParamExtractString.cpp b/src/Functions/visitParamExtractString.cpp index df640cef371..50d5f345189 100644 --- a/src/Functions/visitParamExtractString.cpp +++ b/src/Functions/visitParamExtractString.cpp @@ -17,16 +17,13 @@ struct ExtractString } }; -struct NameVisitParamExtractString { static constexpr auto name = "visitParamExtractString"; }; -using FunctionVisitParamExtractString = FunctionsStringSearchToString, NameVisitParamExtractString>; - struct NameSimpleJSONExtractString { static constexpr auto name = "simpleJSONExtractString"; }; using FunctionSimpleJSONExtractString = FunctionsStringSearchToString, NameSimpleJSONExtractString>; REGISTER_FUNCTION(VisitParamExtractString) { - factory.registerFunction(); factory.registerFunction(); + factory.registerAlias("visitParamExtractString", "simpleJSONExtractString"); } } diff --git a/src/Functions/visitParamExtractUInt.cpp b/src/Functions/visitParamExtractUInt.cpp index 1612c91984d..fb58e417f34 100644 --- a/src/Functions/visitParamExtractUInt.cpp +++ b/src/Functions/visitParamExtractUInt.cpp @@ -6,17 +6,14 @@ namespace DB { -struct NameVisitParamExtractUInt { static constexpr auto name = "visitParamExtractUInt"; }; -using FunctionVisitParamExtractUInt = FunctionsStringSearch>>; - -struct NameSimpleJSONExtractUInt { static constexpr auto name = "simpleJSONExtractUInt"; }; +struct NameSimpleJSONExtractUInt { static constexpr auto name = "simpleJSONExtractUInt"; }; using FunctionSimpleJSONExtractUInt = FunctionsStringSearch>>; REGISTER_FUNCTION(VisitParamExtractUInt) { - factory.registerFunction(); factory.registerFunction(); + factory.registerAlias("visitParamExtractUInt", "simpleJSONExtractUInt"); } } diff --git a/src/Functions/visitParamHas.cpp b/src/Functions/visitParamHas.cpp index 9e481fb44cc..1ed1f1d16e7 100644 --- a/src/Functions/visitParamHas.cpp +++ b/src/Functions/visitParamHas.cpp @@ -16,16 +16,13 @@ struct HasParam } }; -struct NameVisitParamHas { static constexpr auto name = "visitParamHas"; }; -using FunctionVisitParamHas = FunctionsStringSearch>; - -struct NameSimpleJSONHas { static constexpr auto name = "simpleJSONHas"; }; +struct NameSimpleJSONHas { static constexpr auto name = "simpleJSONHas"; }; using FunctionSimpleJSONHas = FunctionsStringSearch>; REGISTER_FUNCTION(VisitParamHas) { - factory.registerFunction(); factory.registerFunction(); + factory.registerAlias("visitParamHas", "simpleJSONHas"); } } diff --git a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference index a326515922d..2f9faf6febb 100644 --- a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference +++ b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference @@ -1006,13 +1006,6 @@ uptime validateNestedArraySizes version visibleWidth -visitParamExtractBool -visitParamExtractFloat -visitParamExtractInt -visitParamExtractRaw -visitParamExtractString -visitParamExtractUInt -visitParamHas windowID wkt wordShingleMinHash From 6ac9eabbd4f75207aa8d4d66b3bb8d3411693677 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 00:17:13 +0200 Subject: [PATCH 37/61] Register more aliases correctly --- src/Functions/date_trunc.cpp | 7 ++++--- .../02415_all_new_functions_must_be_documented.reference | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Functions/date_trunc.cpp b/src/Functions/date_trunc.cpp index 0e437482e64..1c2475cf56a 100644 --- a/src/Functions/date_trunc.cpp +++ b/src/Functions/date_trunc.cpp @@ -23,7 +23,7 @@ namespace class FunctionDateTrunc : public IFunction { public: - static constexpr auto name = "date_trunc"; + static constexpr auto name = "dateTrunc"; explicit FunctionDateTrunc(ContextPtr context_) : context(context_) {} @@ -153,12 +153,13 @@ private: } + REGISTER_FUNCTION(DateTrunc) { - factory.registerFunction({}, FunctionFactory::CaseInsensitive); + factory.registerFunction(); /// Compatibility alias. - factory.registerAlias("dateTrunc", FunctionDateTrunc::name); + factory.registerAlias("DATE_TRUNC", "dateTrunc", FunctionFactory::CaseInsensitive); } } diff --git a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference index 2f9faf6febb..40cdffd7af6 100644 --- a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference +++ b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference @@ -239,7 +239,7 @@ dateDiff dateName dateTime64ToSnowflake dateTimeToSnowflake -date_trunc +dateTrunc decodeURLComponent decodeURLFormComponent decodeXMLComponent From 89daf3db8f63bd0d565945077fd1c12708ecd583 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 00:18:00 +0200 Subject: [PATCH 38/61] Fix test --- .../0_stateless/02117_show_create_table_system.reference | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/02117_show_create_table_system.reference b/tests/queries/0_stateless/02117_show_create_table_system.reference index 0405bc2f1d1..9e2f676bb55 100644 --- a/tests/queries/0_stateless/02117_show_create_table_system.reference +++ b/tests/queries/0_stateless/02117_show_create_table_system.reference @@ -270,7 +270,8 @@ CREATE TABLE system.functions `case_insensitive` UInt8, `alias_to` String, `create_query` String, - `origin` Enum8('System' = 0, 'SQLUserDefined' = 1, 'ExecutableUserDefined' = 2) + `origin` Enum8('System' = 0, 'SQLUserDefined' = 1, 'ExecutableUserDefined' = 2), + `description` String ) ENGINE = SystemFunctions COMMENT 'SYSTEM TABLE is built on the fly.' From 63fc3a2c3fe1eb04a5b4287e637222a94ce7f698 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 00:27:37 +0200 Subject: [PATCH 39/61] Update test --- ...new_functions_must_be_documented.reference | 75 ------------------- ...5_all_new_functions_must_be_documented.sql | 18 ++++- 2 files changed, 17 insertions(+), 76 deletions(-) diff --git a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference index 40cdffd7af6..8cb4e79fbd3 100644 --- a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference +++ b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference @@ -50,13 +50,6 @@ LpNormalize MACNumToString MACStringToNum MACStringToOUI -MD4 -MD5 -SHA1 -SHA224 -SHA256 -SHA384 -SHA512 URLHash URLHierarchy URLPathHierarchy @@ -88,8 +81,6 @@ addYears addressToLine addressToLineWithInlines addressToSymbol -aes_decrypt_mysql -aes_encrypt_mysql alphaTokens and appendTrailingCharIfAbsent @@ -153,8 +144,6 @@ atanh bar base58Decode base58Encode -base64Decode -base64Encode basename bin bitAnd @@ -210,7 +199,6 @@ coalesce concat concatAssumeInjective connectionId -convertCharset cos cosh cosineDistance @@ -243,7 +231,6 @@ dateTrunc decodeURLComponent decodeURLFormComponent decodeXMLComponent -decrypt defaultProfiles defaultRoles defaultValueOfArgumentType @@ -251,8 +238,6 @@ defaultValueOfTypeName degrees demangle detectCharset -detectLanguage -detectLanguageMixed detectLanguageUnknown detectProgrammingLanguage detectTonality @@ -318,7 +303,6 @@ enabledRoles encodeURLComponent encodeURLFormComponent encodeXMLComponent -encrypt endsWith equals erf @@ -368,8 +352,6 @@ gccMurmurHash gcd generateUUIDv4 geoDistance -geoToH3 -geoToS2 geohashDecode geohashEncode geohashesInBox @@ -393,47 +375,6 @@ greatCircleDistance greater greaterOrEquals greatest -h3CellAreaM2 -h3CellAreaRads2 -h3Distance -h3EdgeAngle -h3EdgeLengthKm -h3EdgeLengthM -h3ExactEdgeLengthKm -h3ExactEdgeLengthM -h3ExactEdgeLengthRads -h3GetBaseCell -h3GetDestinationIndexFromUnidirectionalEdge -h3GetFaces -h3GetIndexesFromUnidirectionalEdge -h3GetOriginIndexFromUnidirectionalEdge -h3GetPentagonIndexes -h3GetRes0Indexes -h3GetResolution -h3GetUnidirectionalEdge -h3GetUnidirectionalEdgeBoundary -h3GetUnidirectionalEdgesFromHexagon -h3HexAreaKm2 -h3HexAreaM2 -h3HexRing -h3IndexesAreNeighbors -h3IsPentagon -h3IsResClassIII -h3IsValid -h3Line -h3NumHexagons -h3PointDistKm -h3PointDistM -h3PointDistRads -h3ToCenterChild -h3ToChildren -h3ToGeo -h3ToGeoBoundary -h3ToParent -h3ToString -h3UnidirectionalEdgeIsValid -h3kRing -halfMD5 has hasAll hasAny @@ -494,7 +435,6 @@ left leftPad leftPadUTF8 leftUTF8 -lemmatize lengthUTF8 less lessOrEquals @@ -594,10 +534,6 @@ ngramSimHashUTF8 ngrams normalizeQuery normalizeQueryKeepNames -normalizeUTF8NFC -normalizeUTF8NFD -normalizeUTF8NFKC -normalizeUTF8NFKD normalizedQueryHash normalizedQueryHashKeepNames not @@ -735,15 +671,6 @@ runningAccumulate runningConcurrency runningDifference runningDifferenceStartingWithFirstValue -s2CapContains -s2CapUnion -s2CellsIntersect -s2GetNeighbors -s2RectAdd -s2RectContains -s2RectIntersection -s2RectUnion -s2ToGeo serverUUID shardCount shardNum @@ -773,7 +700,6 @@ splitByWhitespace sqrt startsWith stem -stringToH3 subBitmap substring substringUTF8 @@ -983,7 +909,6 @@ trimBoth trimLeft trimRight trunc -tryBase64Decode tumble tumbleEnd tumbleStart diff --git a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql index 1454bfe24b4..26ea03514ca 100644 --- a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql +++ b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql @@ -1,3 +1,19 @@ -- This outputs the list of undocumented functions. No new items in the list should appear. -- Please help shorten this list down to zero elements. -SELECT name FROM system.functions WHERE NOT is_aggregate AND origin = 'System' AND alias_to = '' AND length(description) < 10 ORDER BY name; +SELECT name FROM system.functions WHERE NOT is_aggregate AND origin = 'System' AND alias_to = '' AND length(description) < 10 +AND name NOT IN ( + 'MD4', 'MD5', 'SHA1', 'SHA224', 'SHA256', 'SHA384', 'SHA512', 'halfMD5', + 'aes_decrypt_mysql', 'aes_encrypt_mysql', 'decrypt', 'encrypt', + 'base64Decode', 'base64Encode', 'tryBase64Decode', + 'convertCharset', + 'detectLanguage', 'detectLanguageMixed', + 'geoToH3', + 'h3CellAreaM2', 'h3CellAreaRads2', 'h3Distance', 'h3EdgeAngle', 'h3EdgeLengthKm', 'h3EdgeLengthM', 'h3ExactEdgeLengthKm', 'h3ExactEdgeLengthM', 'h3ExactEdgeLengthRads', 'h3GetBaseCell', + 'h3GetDestinationIndexFromUnidirectionalEdge', 'h3GetFaces', 'h3GetIndexesFromUnidirectionalEdge', 'h3GetOriginIndexFromUnidirectionalEdge', 'h3GetPentagonIndexes', 'h3GetRes0Indexes', + 'h3GetResolution', 'h3GetUnidirectionalEdge', 'h3GetUnidirectionalEdgeBoundary', 'h3GetUnidirectionalEdgesFromHexagon', 'h3HexAreaKm2', 'h3HexAreaM2', 'h3HexRing', 'h3IndexesAreNeighbors', + 'h3IsPentagon', 'h3IsResClassIII', 'h3IsValid', 'h3Line', 'h3NumHexagons', 'h3PointDistKm', 'h3PointDistM', 'h3PointDistRads', 'h3ToCenterChild', 'h3ToChildren', 'h3ToGeo', + 'h3ToGeoBoundary', 'h3ToParent', 'h3ToString', 'h3UnidirectionalEdgeIsValid', 'h3kRing', 'stringToH3', + 'geoToS2', 's2CapContains', 's2CapUnion', 's2CellsIntersect', 's2GetNeighbors', 's2RectAdd', 's2RectContains', 's2RectIntersection', 's2RectUnion', 's2ToGeo', + 'normalizeUTF8NFC', 'normalizeUTF8NFD', 'normalizeUTF8NFKC', 'normalizeUTF8NFKD', + 'lemmatize', 'tokenize', 'synonims' +) ORDER BY name; From 8a4bacc4b7c788f3077d217dab09c965f40d656e Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 00:30:14 +0200 Subject: [PATCH 40/61] Update example --- src/Functions/array/length.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Functions/array/length.cpp b/src/Functions/array/length.cpp index 50829b8626a..7a64c24fd6b 100644 --- a/src/Functions/array/length.cpp +++ b/src/Functions/array/length.cpp @@ -86,7 +86,7 @@ It is ok to have ASCII NUL bytes in strings, and they will be counted as well. " isConstant(length(str::FixedString(6))) AS fixed_str_length_is_constant\n" "FROM numbers(3)"}, {"unicode", "SELECT 'ёлка' AS str1, length(str1), lengthUTF8(str1), normalizeUTF8NFKD(str1) AS str2, length(str2), lengthUTF8(str2)"}, - {"nul", R"(SELECT 'abc\\0\\0\\0' AS str, length(str))"}, + {"nul", R"(SELECT 'abc\0\0\0' AS str, length(str))"}, }, Documentation::Categories{"String", "Array"} }, From b5bb1be15a7af9387e7c5e9bbfafcd5747dbac7c Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy Date: Sat, 27 Aug 2022 23:29:32 +0000 Subject: [PATCH 41/61] pass ENABLE_CLICKHOUSE_SELF_EXTRACTING to native build --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index aff5375663f..4f4561b5f10 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -600,6 +600,7 @@ if (NATIVE_BUILD_TARGETS "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}" "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" "-DENABLE_CCACHE=${ENABLE_CCACHE}" + "-DENABLE_CLICKHOUSE_SELF_EXTRACTING=${ENABLE_CLICKHOUSE_SELF_EXTRACTING}" ${CMAKE_SOURCE_DIR} WORKING_DIRECTORY "${NATIVE_BUILD_DIR}" COMMAND_ECHO STDOUT) From d583f29a004e379737e476fcae7bb27de8adb2c8 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 01:36:32 +0200 Subject: [PATCH 42/61] Fix test --- ...1705_normalize_case_insensitive_function_names.reference | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/queries/0_stateless/01705_normalize_case_insensitive_function_names.reference b/tests/queries/0_stateless/01705_normalize_case_insensitive_function_names.reference index 5b0f7bdeb2d..682652152dc 100644 --- a/tests/queries/0_stateless/01705_normalize_case_insensitive_function_names.reference +++ b/tests/queries/0_stateless/01705_normalize_case_insensitive_function_names.reference @@ -3,8 +3,8 @@ SELECT ceil(1), ceil(1), char(49), - CHAR_LENGTH('1'), - CHARACTER_LENGTH('1'), + lengthUTF8('1'), + lengthUTF8('1'), coalesce(1), concat('1', '1'), corr(1, 1), @@ -12,7 +12,7 @@ SELECT count(), covarPop(1, 1), covarSamp(1, 1), - DATABASE(), + currentDatabase(), dateDiff('DAY', toDate('2020-10-24'), toDate('2019-10-24')), exp(1), arrayFlatten([[1]]), From 0309a2ca765bebe06382ee03a612f51750191434 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 01:37:23 +0200 Subject: [PATCH 43/61] Fix test --- .../0_stateless/02415_all_new_functions_must_be_documented.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql index 26ea03514ca..3202a28cdd0 100644 --- a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql +++ b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.sql @@ -15,5 +15,5 @@ AND name NOT IN ( 'h3ToGeoBoundary', 'h3ToParent', 'h3ToString', 'h3UnidirectionalEdgeIsValid', 'h3kRing', 'stringToH3', 'geoToS2', 's2CapContains', 's2CapUnion', 's2CellsIntersect', 's2GetNeighbors', 's2RectAdd', 's2RectContains', 's2RectIntersection', 's2RectUnion', 's2ToGeo', 'normalizeUTF8NFC', 'normalizeUTF8NFD', 'normalizeUTF8NFKC', 'normalizeUTF8NFKD', - 'lemmatize', 'tokenize', 'synonims' + 'lemmatize', 'tokenize', 'stem', 'synonyms' ) ORDER BY name; From 1ff535a128153ea7fc66865da429005ad52d00bb Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 02:00:09 +0200 Subject: [PATCH 44/61] One step back --- src/Dictionaries/DictionaryStructure.cpp | 1 + src/Functions/FunctionsConversion.cpp | 8 ++++++-- src/Parsers/ASTFunction.cpp | 1 - src/Parsers/ParserCreateQuery.cpp | 3 +++ src/Parsers/ParserCreateQuery.h | 3 ++- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Dictionaries/DictionaryStructure.cpp b/src/Dictionaries/DictionaryStructure.cpp index 3ba82164eb2..ec6a56ec2ab 100644 --- a/src/Dictionaries/DictionaryStructure.cpp +++ b/src/Dictionaries/DictionaryStructure.cpp @@ -55,6 +55,7 @@ std::optional tryGetAttributeUnderlyingType(TypeIndex i return magic_enum::enum_cast(static_cast(index)); } + } diff --git a/src/Functions/FunctionsConversion.cpp b/src/Functions/FunctionsConversion.cpp index 3c2f8e454f6..d607af54fcd 100644 --- a/src/Functions/FunctionsConversion.cpp +++ b/src/Functions/FunctionsConversion.cpp @@ -28,8 +28,12 @@ REGISTER_FUNCTION(Conversion) factory.registerFunction(); factory.registerFunction(); - /// MySQL compatibility alias. - factory.registerAlias("DATE", "toDate", FunctionFactory::CaseInsensitive); + + /// MySQL compatibility alias. Cannot be registered as alias, + /// because we don't want it to be normalized to toDate in queries, + /// otherwise CREATE DICTIONARY query breaks. + factory.registerFunction("DATE", {}, FunctionFactory::CaseInsensitive); + factory.registerFunction(); factory.registerFunction(); factory.registerFunction(); diff --git a/src/Parsers/ASTFunction.cpp b/src/Parsers/ASTFunction.cpp index ac340eef987..63dc9f6b3ac 100644 --- a/src/Parsers/ASTFunction.cpp +++ b/src/Parsers/ASTFunction.cpp @@ -12,7 +12,6 @@ #include #include #include -#include #include #include diff --git a/src/Parsers/ParserCreateQuery.cpp b/src/Parsers/ParserCreateQuery.cpp index 275f3bc75cc..08240abe8c6 100644 --- a/src/Parsers/ParserCreateQuery.cpp +++ b/src/Parsers/ParserCreateQuery.cpp @@ -31,6 +31,7 @@ namespace ErrorCodes namespace { + ASTPtr parseComment(IParser::Pos & pos, Expected & expected) { ParserKeyword s_comment("COMMENT"); @@ -41,8 +42,10 @@ ASTPtr parseComment(IParser::Pos & pos, Expected & expected) return comment; } + } + bool ParserNestedTable::parseImpl(Pos & pos, ASTPtr & node, Expected & expected) { ParserToken open(TokenType::OpeningRoundBracket); diff --git a/src/Parsers/ParserCreateQuery.h b/src/Parsers/ParserCreateQuery.h index 79da3defdac..f56e0a4c3a0 100644 --- a/src/Parsers/ParserCreateQuery.h +++ b/src/Parsers/ParserCreateQuery.h @@ -53,7 +53,8 @@ bool IParserNameTypePair::parseImpl(Pos & pos, ASTPtr & node, Expect NameParser name_parser; ParserDataType type_parser; - ASTPtr name, type; + ASTPtr name; + ASTPtr type; if (name_parser.parse(pos, name, expected) && type_parser.parse(pos, type, expected)) { From b0e5174e78bcbf7a6642373c62194d2de78f09a6 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 02:01:17 +0200 Subject: [PATCH 45/61] Update test --- .../02415_all_new_functions_must_be_documented.reference | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference index 8cb4e79fbd3..cbd92d0e8f4 100644 --- a/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference +++ b/tests/queries/0_stateless/02415_all_new_functions_must_be_documented.reference @@ -2,6 +2,7 @@ CAST CRC32 CRC32IEEE CRC64 +DATE FQDN IPv4CIDRToRange IPv4NumToString @@ -699,7 +700,6 @@ splitByString splitByWhitespace sqrt startsWith -stem subBitmap substring substringUTF8 @@ -715,7 +715,6 @@ subtractSeconds subtractWeeks subtractYears svg -synonyms tan tanh tcpPort From 7831200fc8e28c3ca46fef5262161416d5f9c112 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sat, 27 Aug 2022 21:06:09 +0200 Subject: [PATCH 46/61] All new table functions must be documented --- ...ble_functions_must_be_documented.reference | 31 +++++++++++++++++++ ...new_table_functions_must_be_documented.sql | 3 ++ 2 files changed, 34 insertions(+) create mode 100644 tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference create mode 100644 tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.sql diff --git a/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference new file mode 100644 index 00000000000..af1e9136540 --- /dev/null +++ b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference @@ -0,0 +1,31 @@ +MeiliSearch +cluster +clusterAllReplicas +cosn +dictionary +executable +file +format +generateRandom +hdfs +hdfsCluster +hive +input +jdbc +merge +mongodb +mysql +null +numbers +numbers_mt +odbc +postgresql +remote +remoteSecure +s3 +s3Cluster +sqlite +url +values +view +viewIfPermitted diff --git a/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.sql b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.sql new file mode 100644 index 00000000000..09a39bc3a27 --- /dev/null +++ b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.sql @@ -0,0 +1,3 @@ +-- This outputs the list of undocumented table functions. No new items in the list should appear. +-- Please help shorten this list down to zero elements. +SELECT name FROM system.table_functions WHERE length(description) < 10 ORDER BY name; From 1a7dbd2c6224c2d69b596ad1e077c029baa7e18d Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 02:05:01 +0200 Subject: [PATCH 47/61] Update test --- ..._all_new_table_functions_must_be_documented.reference | 9 --------- .../02414_all_new_table_functions_must_be_documented.sql | 5 ++++- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference index af1e9136540..ac1d807c678 100644 --- a/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference +++ b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference @@ -1,30 +1,21 @@ MeiliSearch cluster clusterAllReplicas -cosn dictionary executable file format generateRandom -hdfs -hdfsCluster -hive input jdbc merge mongodb -mysql null numbers numbers_mt odbc -postgresql remote remoteSecure -s3 -s3Cluster -sqlite url values view diff --git a/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.sql b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.sql index 09a39bc3a27..5d43ec6f0c2 100644 --- a/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.sql +++ b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.sql @@ -1,3 +1,6 @@ -- This outputs the list of undocumented table functions. No new items in the list should appear. -- Please help shorten this list down to zero elements. -SELECT name FROM system.table_functions WHERE length(description) < 10 ORDER BY name; +SELECT name FROM system.table_functions WHERE length(description) < 10 +AND name NOT IN ( + 'cosn', 'hdfs', 'hdfsCluster', 'hive', 'mysql', 'postgresql', 's3', 's3Cluster', 'sqlite' -- these functions are not enabled in fast test +) ORDER BY name; From 5b57c91ad63047d567dde61581a478f127c93c5b Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 02:08:51 +0200 Subject: [PATCH 48/61] Rename table function MeiliSearch to meilisearch --- src/TableFunctions/TableFunctionMeiliSearch.h | 5 +- .../test_storage_meilisearch/test.py | 52 +++++++++---------- 2 files changed, 29 insertions(+), 28 deletions(-) diff --git a/src/TableFunctions/TableFunctionMeiliSearch.h b/src/TableFunctions/TableFunctionMeiliSearch.h index 9634322d0e5..86be944ab12 100644 --- a/src/TableFunctions/TableFunctionMeiliSearch.h +++ b/src/TableFunctions/TableFunctionMeiliSearch.h @@ -4,17 +4,18 @@ namespace DB { + class TableFunctionMeiliSearch : public ITableFunction { public: - static constexpr auto name = "MeiliSearch"; + static constexpr auto name = "meilisearch"; String getName() const override { return name; } private: StoragePtr executeImpl( const ASTPtr & ast_function, ContextPtr context, const String & table_name, ColumnsDescription cached_columns) const override; - const char * getStorageTypeName() const override { return "MeiliSearch"; } + const char * getStorageTypeName() const override { return "meilisearch"; } ColumnsDescription getActualTableStructure(ContextPtr context) const override; void parseArguments(const ASTPtr & ast_function, ContextPtr context) override; diff --git a/tests/integration/test_storage_meilisearch/test.py b/tests/integration/test_storage_meilisearch/test.py index b420c28a37e..fd11644cf31 100644 --- a/tests/integration/test_storage_meilisearch/test.py +++ b/tests/integration/test_storage_meilisearch/test.py @@ -651,19 +651,19 @@ def test_table_function(started_cluster): assert ( node.query( - "SELECT COUNT() FROM MeiliSearch('http://meili1:7700', 'new_table', '')" + "SELECT COUNT() FROM meilisearch('http://meili1:7700', 'new_table', '')" ) == "100\n" ) assert ( node.query( - "SELECT sum(id) FROM MeiliSearch('http://meili1:7700', 'new_table', '')" + "SELECT sum(id) FROM meilisearch('http://meili1:7700', 'new_table', '')" ) == str(sum(range(0, 100))) + "\n" ) assert ( node.query( - "SELECT data FROM MeiliSearch('http://meili1:7700', 'new_table', '') WHERE id = 42" + "SELECT data FROM meilisearch('http://meili1:7700', 'new_table', '') WHERE id = 42" ) == hex(42 * 42) + "\n" ) @@ -685,35 +685,35 @@ def test_table_function_secure(started_cluster): assert ( node.query( - "SELECT COUNT() FROM MeiliSearch('http://meili_secure:7700', 'new_table', 'password')" + "SELECT COUNT() FROM meilisearch('http://meili_secure:7700', 'new_table', 'password')" ) == "100\n" ) assert ( node.query( - "SELECT sum(id) FROM MeiliSearch('http://meili_secure:7700', 'new_table', 'password')" + "SELECT sum(id) FROM meilisearch('http://meili_secure:7700', 'new_table', 'password')" ) == str(sum(range(0, 100))) + "\n" ) assert ( node.query( - "SELECT data FROM MeiliSearch('http://meili_secure:7700', 'new_table', 'password') WHERE id = 42" + "SELECT data FROM meilisearch('http://meili_secure:7700', 'new_table', 'password') WHERE id = 42" ) == hex(42 * 42) + "\n" ) error = node.query_and_get_error( - "SELECT COUNT() FROM MeiliSearch('http://meili_secure:7700', 'new_table', 'wrong_password')" + "SELECT COUNT() FROM meilisearch('http://meili_secure:7700', 'new_table', 'wrong_password')" ) assert "MEILISEARCH_EXCEPTION" in error error = node.query_and_get_error( - "SELECT sum(id) FROM MeiliSearch('http://meili_secure:7700', 'new_table', 'wrong_password')" + "SELECT sum(id) FROM meilisearch('http://meili_secure:7700', 'new_table', 'wrong_password')" ) assert "MEILISEARCH_EXCEPTION" in error error = node.query_and_get_error( - "SELECT data FROM MeiliSearch('http://meili_secure:7700', 'new_table', 'wrong_password') WHERE id = 42" + "SELECT data FROM meilisearch('http://meili_secure:7700', 'new_table', 'wrong_password') WHERE id = 42" ) assert "MEILISEARCH_EXCEPTION" in error @@ -751,103 +751,103 @@ def test_types_in_table_function(started_cluster): assert ( node.query( - "SELECT id FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT id FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "1\n" ) assert ( node.query( - "SELECT UInt8_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT UInt8_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "128\n" ) assert ( node.query( - "SELECT UInt16_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT UInt16_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "32768\n" ) assert ( node.query( - "SELECT UInt32_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT UInt32_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "2147483648\n" ) assert ( node.query( - "SELECT Int8_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Int8_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "-128\n" ) assert ( node.query( - "SELECT Int16_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Int16_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "-32768\n" ) assert ( node.query( - "SELECT Int32_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Int32_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "-2147483648\n" ) assert ( node.query( - "SELECT Int64_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Int64_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "-9223372036854775808\n" ) assert ( node.query( - "SELECT String_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT String_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "abacaba\n" ) assert ( node.query( - "SELECT Float32_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Float32_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "42.42\n" ) assert ( node.query( - "SELECT Float32_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Float32_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "42.42\n" ) assert ( node.query( - "SELECT Array_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Array_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "[['aba','caba'],['2d','array']]\n" ) assert ( node.query( - "SELECT Null_test1 FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Null_test1 FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "value\n" ) assert ( node.query( - "SELECT Null_test2 FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Null_test2 FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "NULL\n" ) assert ( node.query( - "SELECT Bool_test1 FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Bool_test1 FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "1\n" ) assert ( node.query( - "SELECT Bool_test2 FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Bool_test2 FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == "0\n" ) assert ( node.query( - "SELECT Json_test FROM MeiliSearch('http://meili1:7700', 'types_table', '')" + "SELECT Json_test FROM meilisearch('http://meili1:7700', 'types_table', '')" ) == '{"a":1,"b":{"in_json":"qwerty"}}\n' ) From ccfce4f51a042895720cda09290541cad5127b82 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 02:10:04 +0200 Subject: [PATCH 49/61] Update test --- .../02414_all_new_table_functions_must_be_documented.reference | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference index ac1d807c678..bb8c8c2228a 100644 --- a/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference +++ b/tests/queries/0_stateless/02414_all_new_table_functions_must_be_documented.reference @@ -1,4 +1,3 @@ -MeiliSearch cluster clusterAllReplicas dictionary @@ -8,6 +7,7 @@ format generateRandom input jdbc +meilisearch merge mongodb null From 632867dbffe447761b898d9936cd79e052c2e8a4 Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 02:40:43 +0200 Subject: [PATCH 50/61] Fix error --- programs/server/config.d/nlp.xml | 23 ++++++++++++++++++++++- tests/config/config.d/nlp.xml | 6 +++--- 2 files changed, 25 insertions(+), 4 deletions(-) mode change 120000 => 100644 programs/server/config.d/nlp.xml diff --git a/programs/server/config.d/nlp.xml b/programs/server/config.d/nlp.xml deleted file mode 120000 index 577caf7bcc1..00000000000 --- a/programs/server/config.d/nlp.xml +++ /dev/null @@ -1 +0,0 @@ -../../../tests/config/config.d/nlp.xml \ No newline at end of file diff --git a/programs/server/config.d/nlp.xml b/programs/server/config.d/nlp.xml new file mode 100644 index 00000000000..17b11741fbd --- /dev/null +++ b/programs/server/config.d/nlp.xml @@ -0,0 +1,22 @@ + + + + + en + plain + config.d/ext-en.txt + + + ru + plain + config.d/ext-ru.txt + + + + + + en + config.d/lem-en.bin + + + diff --git a/tests/config/config.d/nlp.xml b/tests/config/config.d/nlp.xml index 17b11741fbd..740054674ba 100644 --- a/tests/config/config.d/nlp.xml +++ b/tests/config/config.d/nlp.xml @@ -4,19 +4,19 @@ en plain - config.d/ext-en.txt + /etc/clickhouse-server/config.d/ext-en.txt ru plain - config.d/ext-ru.txt + /etc/clickhouse-server/config.d/ext-ru.txt en - config.d/lem-en.bin + /etc/clickhouse-server/config.d/lem-en.bin From 18c56b722f0f8f005ba3c852fe2e6108446e85fa Mon Sep 17 00:00:00 2001 From: Alexey Milovidov Date: Sun, 28 Aug 2022 04:30:27 +0200 Subject: [PATCH 51/61] Fix integration test --- tests/integration/test_mysql_protocol/test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/test_mysql_protocol/test.py b/tests/integration/test_mysql_protocol/test.py index 6e61675563f..1338b0b2378 100644 --- a/tests/integration/test_mysql_protocol/test.py +++ b/tests/integration/test_mysql_protocol/test.py @@ -365,7 +365,7 @@ def test_mysql_replacement_query(started_cluster): demux=True, ) assert code == 0 - assert stdout.decode() == "DATABASE()\ndefault\n" + assert stdout.decode() == "currentDatabase()\ndefault\n" code, (stdout, stderr) = started_cluster.mysql_client_container.exec_run( """ @@ -377,7 +377,7 @@ def test_mysql_replacement_query(started_cluster): demux=True, ) assert code == 0 - assert stdout.decode() == "DATABASE()\ndefault\n" + assert stdout.decode() == "currentDatabase()\ndefault\n" def test_mysql_select_user(started_cluster): From d96f32d6557617c58288c5708ff6a5665da20474 Mon Sep 17 00:00:00 2001 From: Yakov Olkhovskiy <99031427+yakov-olkhovskiy@users.noreply.github.com> Date: Sat, 27 Aug 2022 23:46:09 -0400 Subject: [PATCH 52/61] Update developer-instruction.md --- docs/en/development/developer-instruction.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/en/development/developer-instruction.md b/docs/en/development/developer-instruction.md index 945d5a2f62f..7f8bf801a27 100644 --- a/docs/en/development/developer-instruction.md +++ b/docs/en/development/developer-instruction.md @@ -285,9 +285,4 @@ If you are not interested in functionality provided by third-party libraries, yo -DENABLE_LIBRARIES=0 -DENABLE_EMBEDDED_COMPILER=0 ``` -Compressing the binary at the end of the build may take a while, disable the self-extraction feature via -``` --DENABLE_CLICKHOUSE_SELF_EXTRACTING=0 -``` - In case of problems with any of the development options, you are on your own! From 7f65075dcb680d87b994c17069d80d8ce215b594 Mon Sep 17 00:00:00 2001 From: Azat Khuzhin Date: Sun, 28 Aug 2022 08:21:22 +0200 Subject: [PATCH 53/61] Fix usage of SHA1 for BuildID Signed-off-by: Azat Khuzhin --- CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aff5375663f..3412904a1ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -245,7 +245,8 @@ else () endif () # Create BuildID when using lld. For other linkers it is created by default. -if (LINKER_NAME MATCHES "lld$") +# (NOTE: LINKER_NAME can be either path or name, and in different variants) +if (LINKER_NAME MATCHES "lld") # SHA1 is not cryptographically secure but it is the best what lld is offering. set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--build-id=sha1") endif () From d6efbf039eb32a2aa9bef7a8f6d0c258b90613ff Mon Sep 17 00:00:00 2001 From: Kseniia Sumarokova <54203879+kssenii@users.noreply.github.com> Date: Sun, 28 Aug 2022 14:49:53 +0200 Subject: [PATCH 54/61] Update 02313_filesystem_cache_seeks.queries --- .../02313_filesystem_cache_seeks.queries | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/queries/0_stateless/filesystem_cache_queries/02313_filesystem_cache_seeks.queries b/tests/queries/0_stateless/filesystem_cache_queries/02313_filesystem_cache_seeks.queries index 389b9dfaa99..7f343fb83bd 100644 --- a/tests/queries/0_stateless/filesystem_cache_queries/02313_filesystem_cache_seeks.queries +++ b/tests/queries/0_stateless/filesystem_cache_queries/02313_filesystem_cache_seeks.queries @@ -1,4 +1,5 @@ SYSTEM DROP FILESYSTEM CACHE; +SET send_logs_level = 'fatal'; -- Ignore retriable errors like "AWSClient: Failed to make request" DROP TABLE IF EXISTS test_02313; CREATE TABLE test_02313 (id Int32, val String) From c4caa35cfd68a6f7d2bc40683ba3e5bb96aceb13 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Sun, 28 Aug 2022 09:53:52 -0400 Subject: [PATCH 55/61] add frontmatter dashes --- docs/en/development/integrating_rust_libraries.md | 2 ++ docs/en/operations/external-authenticators/kerberos.md | 2 ++ docs/en/operations/external-authenticators/ldap.md | 2 ++ docs/en/operations/external-authenticators/ssl-x509.md | 2 ++ docs/en/operations/settings/memory-overcommit.md | 2 ++ docs/en/operations/settings/merge-tree-settings.md | 2 ++ docs/en/operations/system-tables/asynchronous_metric_log.md | 2 ++ docs/en/operations/system-tables/asynchronous_metrics.md | 2 ++ docs/en/operations/system-tables/clusters.md | 2 ++ docs/en/operations/system-tables/columns.md | 2 ++ docs/en/operations/system-tables/contributors.md | 2 ++ docs/en/operations/system-tables/crash-log.md | 2 ++ docs/en/operations/system-tables/current-roles.md | 2 ++ docs/en/operations/system-tables/data_skipping_indices.md | 2 ++ docs/en/operations/system-tables/data_type_families.md | 2 ++ docs/en/operations/system-tables/databases.md | 2 ++ docs/en/operations/system-tables/detached_parts.md | 2 ++ docs/en/operations/system-tables/dictionaries.md | 2 ++ docs/en/operations/system-tables/disks.md | 2 ++ docs/en/operations/system-tables/distributed_ddl_queue.md | 2 ++ docs/en/operations/system-tables/distribution_queue.md | 2 ++ docs/en/operations/system-tables/enabled-roles.md | 2 ++ docs/en/operations/system-tables/errors.md | 2 ++ docs/en/operations/system-tables/events.md | 2 ++ docs/en/operations/system-tables/functions.md | 2 ++ docs/en/operations/system-tables/grants.md | 2 ++ docs/en/operations/system-tables/graphite_retentions.md | 2 ++ docs/en/operations/system-tables/information_schema.md | 2 ++ docs/en/operations/system-tables/licenses.md | 2 ++ docs/en/operations/system-tables/merge_tree_settings.md | 2 ++ docs/en/operations/system-tables/merges.md | 2 ++ docs/en/operations/system-tables/metric_log.md | 2 ++ docs/en/operations/system-tables/metrics.md | 2 ++ docs/en/operations/system-tables/mutations.md | 2 ++ docs/en/operations/system-tables/numbers.md | 2 ++ docs/en/operations/system-tables/numbers_mt.md | 2 ++ docs/en/operations/system-tables/one.md | 2 ++ docs/en/operations/system-tables/opentelemetry_span_log.md | 2 ++ docs/en/operations/system-tables/part_log.md | 2 ++ docs/en/operations/system-tables/parts.md | 2 ++ docs/en/operations/system-tables/parts_columns.md | 2 ++ docs/en/operations/system-tables/processes.md | 2 ++ docs/en/operations/system-tables/query_log.md | 2 ++ docs/en/operations/system-tables/query_thread_log.md | 2 ++ docs/en/operations/system-tables/query_views_log.md | 2 ++ docs/en/operations/system-tables/quota_limits.md | 2 ++ docs/en/operations/system-tables/quota_usage.md | 2 ++ docs/en/operations/system-tables/quotas.md | 2 ++ docs/en/operations/system-tables/quotas_usage.md | 2 ++ docs/en/operations/system-tables/replicas.md | 2 ++ docs/en/operations/system-tables/replicated_fetches.md | 2 ++ docs/en/operations/system-tables/replication_queue.md | 2 ++ docs/en/operations/system-tables/role-grants.md | 2 ++ docs/en/operations/system-tables/roles.md | 2 ++ docs/en/operations/system-tables/row_policies.md | 2 ++ docs/en/operations/system-tables/session_log.md | 2 ++ docs/en/operations/system-tables/settings.md | 2 ++ docs/en/operations/system-tables/settings_profile_elements.md | 2 ++ docs/en/operations/system-tables/settings_profiles.md | 2 ++ docs/en/operations/system-tables/stack_trace.md | 2 ++ docs/en/operations/system-tables/storage_policies.md | 2 ++ docs/en/operations/system-tables/table_engines.md | 2 ++ docs/en/operations/system-tables/tables.md | 2 ++ docs/en/operations/system-tables/text_log.md | 2 ++ docs/en/operations/system-tables/time_zones.md | 2 ++ docs/en/operations/system-tables/trace_log.md | 2 ++ docs/en/operations/system-tables/users.md | 2 ++ docs/en/operations/system-tables/zookeeper.md | 2 ++ docs/en/operations/system-tables/zookeeper_log.md | 2 ++ docs/en/operations/utilities/clickhouse-compressor.md | 2 ++ docs/en/operations/utilities/clickhouse-format.md | 2 ++ docs/en/operations/utilities/clickhouse-obfuscator.md | 2 ++ docs/en/operations/utilities/odbc-bridge.md | 2 ++ docs/en/sql-reference/data-types/simpleaggregatefunction.md | 2 ++ docs/en/sql-reference/functions/distance-functions.md | 2 ++ docs/en/sql-reference/operators/exists.md | 2 ++ docs/en/sql-reference/operators/in.md | 2 ++ 77 files changed, 154 insertions(+) diff --git a/docs/en/development/integrating_rust_libraries.md b/docs/en/development/integrating_rust_libraries.md index ccb703376cb..a29c46c2ade 100644 --- a/docs/en/development/integrating_rust_libraries.md +++ b/docs/en/development/integrating_rust_libraries.md @@ -1,3 +1,5 @@ +--- +--- # Integrating Rust libraries Rust library integration will be described based on BLAKE3 hash-function integration. diff --git a/docs/en/operations/external-authenticators/kerberos.md b/docs/en/operations/external-authenticators/kerberos.md index 8b47ec2c809..42fc8773e8d 100644 --- a/docs/en/operations/external-authenticators/kerberos.md +++ b/docs/en/operations/external-authenticators/kerberos.md @@ -1,3 +1,5 @@ +--- +--- # Kerberos Existing and properly configured ClickHouse users can be authenticated via Kerberos authentication protocol. diff --git a/docs/en/operations/external-authenticators/ldap.md b/docs/en/operations/external-authenticators/ldap.md index 0c79e2438ff..83318706fd4 100644 --- a/docs/en/operations/external-authenticators/ldap.md +++ b/docs/en/operations/external-authenticators/ldap.md @@ -1,3 +1,5 @@ +--- +--- # LDAP LDAP server can be used to authenticate ClickHouse users. There are two different approaches for doing this: diff --git a/docs/en/operations/external-authenticators/ssl-x509.md b/docs/en/operations/external-authenticators/ssl-x509.md index c0d83005a7e..65bdc3c678a 100644 --- a/docs/en/operations/external-authenticators/ssl-x509.md +++ b/docs/en/operations/external-authenticators/ssl-x509.md @@ -1,3 +1,5 @@ +--- +--- # SSL X.509 certificate authentication [SSL 'strict' option](../server-configuration-parameters/settings.md#server_configuration_parameters-openssl) enables mandatory certificate validation for the incoming connections. In this case, only connections with trusted certificates can be established. Connections with untrusted certificates will be rejected. Thus, certificate validation allows to uniquely authenticate an incoming connection. `Common Name` field of the certificate is used to identify connected user. This allows to associate multiple certificates with the same user. Additionally, reissuing and revoking of the certificates does not affect the ClickHouse configuration. diff --git a/docs/en/operations/settings/memory-overcommit.md b/docs/en/operations/settings/memory-overcommit.md index 74cbc4dbd03..9027022fa3f 100644 --- a/docs/en/operations/settings/memory-overcommit.md +++ b/docs/en/operations/settings/memory-overcommit.md @@ -1,3 +1,5 @@ +--- +--- # Memory overcommit Memory overcommit is an experimental technique intended to allow to set more flexible memory limits for queries. diff --git a/docs/en/operations/settings/merge-tree-settings.md b/docs/en/operations/settings/merge-tree-settings.md index c182eb50a01..5ae10b9b974 100644 --- a/docs/en/operations/settings/merge-tree-settings.md +++ b/docs/en/operations/settings/merge-tree-settings.md @@ -1,3 +1,5 @@ +--- +--- # MergeTree tables settings The values of `merge_tree` settings (for all MergeTree tables) can be viewed in the table `system.merge_tree_settings`, they can be overridden in `config.xml` in the `merge_tree` section, or set in the `SETTINGS` section of each table. diff --git a/docs/en/operations/system-tables/asynchronous_metric_log.md b/docs/en/operations/system-tables/asynchronous_metric_log.md index f40b1e500c2..3ebf08191fd 100644 --- a/docs/en/operations/system-tables/asynchronous_metric_log.md +++ b/docs/en/operations/system-tables/asynchronous_metric_log.md @@ -1,3 +1,5 @@ +--- +--- # asynchronous_metric_log Contains the historical values for `system.asynchronous_metrics`, which are saved once per minute. Enabled by default. diff --git a/docs/en/operations/system-tables/asynchronous_metrics.md b/docs/en/operations/system-tables/asynchronous_metrics.md index 17ee1b27e3d..f407e2916ea 100644 --- a/docs/en/operations/system-tables/asynchronous_metrics.md +++ b/docs/en/operations/system-tables/asynchronous_metrics.md @@ -1,3 +1,5 @@ +--- +--- # asynchronous_metrics Contains metrics that are calculated periodically in the background. For example, the amount of RAM in use. diff --git a/docs/en/operations/system-tables/clusters.md b/docs/en/operations/system-tables/clusters.md index 9e086ef7808..7c699135357 100644 --- a/docs/en/operations/system-tables/clusters.md +++ b/docs/en/operations/system-tables/clusters.md @@ -1,3 +1,5 @@ +--- +--- # clusters Contains information about clusters available in the config file and the servers in them. diff --git a/docs/en/operations/system-tables/columns.md b/docs/en/operations/system-tables/columns.md index 1945963352b..258aed02688 100644 --- a/docs/en/operations/system-tables/columns.md +++ b/docs/en/operations/system-tables/columns.md @@ -1,3 +1,5 @@ +--- +--- # columns Contains information about columns in all the tables. diff --git a/docs/en/operations/system-tables/contributors.md b/docs/en/operations/system-tables/contributors.md index 51a625bb844..2303cf86dea 100644 --- a/docs/en/operations/system-tables/contributors.md +++ b/docs/en/operations/system-tables/contributors.md @@ -1,3 +1,5 @@ +--- +--- # contributors Contains information about contributors. The order is random at query execution time. diff --git a/docs/en/operations/system-tables/crash-log.md b/docs/en/operations/system-tables/crash-log.md index 670ae7bc080..9c16aff42d1 100644 --- a/docs/en/operations/system-tables/crash-log.md +++ b/docs/en/operations/system-tables/crash-log.md @@ -1,3 +1,5 @@ +--- +--- # crash_log Contains information about stack traces for fatal errors. The table does not exist in the database by default, it is created only when fatal errors occur. diff --git a/docs/en/operations/system-tables/current-roles.md b/docs/en/operations/system-tables/current-roles.md index af4559ce6f7..c6d91c5f1e1 100644 --- a/docs/en/operations/system-tables/current-roles.md +++ b/docs/en/operations/system-tables/current-roles.md @@ -1,3 +1,5 @@ +--- +--- # current_roles Contains active roles of a current user. `SET ROLE` changes the contents of this table. diff --git a/docs/en/operations/system-tables/data_skipping_indices.md b/docs/en/operations/system-tables/data_skipping_indices.md index b3c7cbe2b23..bce33edbd70 100644 --- a/docs/en/operations/system-tables/data_skipping_indices.md +++ b/docs/en/operations/system-tables/data_skipping_indices.md @@ -1,3 +1,5 @@ +--- +--- # data_skipping_indices Contains information about existing data skipping indices in all the tables. diff --git a/docs/en/operations/system-tables/data_type_families.md b/docs/en/operations/system-tables/data_type_families.md index 0202ba78ffe..5442233efcf 100644 --- a/docs/en/operations/system-tables/data_type_families.md +++ b/docs/en/operations/system-tables/data_type_families.md @@ -1,3 +1,5 @@ +--- +--- # data_type_families Contains information about supported [data types](../../sql-reference/data-types/index.md). diff --git a/docs/en/operations/system-tables/databases.md b/docs/en/operations/system-tables/databases.md index 6dbe02ca706..75094c77e0a 100644 --- a/docs/en/operations/system-tables/databases.md +++ b/docs/en/operations/system-tables/databases.md @@ -1,3 +1,5 @@ +--- +--- # databases Contains information about the databases that are available to the current user. diff --git a/docs/en/operations/system-tables/detached_parts.md b/docs/en/operations/system-tables/detached_parts.md index 9c0717fb062..a1b06044efb 100644 --- a/docs/en/operations/system-tables/detached_parts.md +++ b/docs/en/operations/system-tables/detached_parts.md @@ -1,3 +1,5 @@ +--- +--- # detached_parts Contains information about detached parts of [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) tables. The `reason` column specifies why the part was detached. diff --git a/docs/en/operations/system-tables/dictionaries.md b/docs/en/operations/system-tables/dictionaries.md index e0f2a7baa03..65fb59642bf 100644 --- a/docs/en/operations/system-tables/dictionaries.md +++ b/docs/en/operations/system-tables/dictionaries.md @@ -1,3 +1,5 @@ +--- +--- # dictionaries Contains information about [external dictionaries](../../sql-reference/dictionaries/external-dictionaries/external-dicts.md). diff --git a/docs/en/operations/system-tables/disks.md b/docs/en/operations/system-tables/disks.md index 0fe557bf985..c793782a240 100644 --- a/docs/en/operations/system-tables/disks.md +++ b/docs/en/operations/system-tables/disks.md @@ -1,3 +1,5 @@ +--- +--- # disks Contains information about disks defined in the [server configuration](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-multiple-volumes_configure). diff --git a/docs/en/operations/system-tables/distributed_ddl_queue.md b/docs/en/operations/system-tables/distributed_ddl_queue.md index a35d4a2a5b7..2dc8583ecfe 100644 --- a/docs/en/operations/system-tables/distributed_ddl_queue.md +++ b/docs/en/operations/system-tables/distributed_ddl_queue.md @@ -1,3 +1,5 @@ +--- +--- # distributed_ddl_queue Contains information about [distributed ddl queries (ON CLUSTER clause)](../../sql-reference/distributed-ddl.md) that were executed on a cluster. diff --git a/docs/en/operations/system-tables/distribution_queue.md b/docs/en/operations/system-tables/distribution_queue.md index 896491a458b..874a721018d 100644 --- a/docs/en/operations/system-tables/distribution_queue.md +++ b/docs/en/operations/system-tables/distribution_queue.md @@ -1,3 +1,5 @@ +--- +--- # distribution_queue Contains information about local files that are in the queue to be sent to the shards. These local files contain new parts that are created by inserting new data into the Distributed table in asynchronous mode. diff --git a/docs/en/operations/system-tables/enabled-roles.md b/docs/en/operations/system-tables/enabled-roles.md index a1649df875a..f25252688ed 100644 --- a/docs/en/operations/system-tables/enabled-roles.md +++ b/docs/en/operations/system-tables/enabled-roles.md @@ -1,3 +1,5 @@ +--- +--- # enabled_roles Contains all active roles at the moment, including current role of the current user and granted roles for current role. diff --git a/docs/en/operations/system-tables/errors.md b/docs/en/operations/system-tables/errors.md index 3e40e898a78..e0ecd3c041d 100644 --- a/docs/en/operations/system-tables/errors.md +++ b/docs/en/operations/system-tables/errors.md @@ -1,3 +1,5 @@ +--- +--- # errors Contains error codes with the number of times they have been triggered. diff --git a/docs/en/operations/system-tables/events.md b/docs/en/operations/system-tables/events.md index 4525733a775..8be18453342 100644 --- a/docs/en/operations/system-tables/events.md +++ b/docs/en/operations/system-tables/events.md @@ -1,3 +1,5 @@ +--- +--- # events Contains information about the number of events that have occurred in the system. For example, in the table, you can find how many `SELECT` queries were processed since the ClickHouse server started. diff --git a/docs/en/operations/system-tables/functions.md b/docs/en/operations/system-tables/functions.md index 8dcad0b48a7..2767bfe1687 100644 --- a/docs/en/operations/system-tables/functions.md +++ b/docs/en/operations/system-tables/functions.md @@ -1,3 +1,5 @@ +--- +--- # functions Contains information about normal and aggregate functions. diff --git a/docs/en/operations/system-tables/grants.md b/docs/en/operations/system-tables/grants.md index d7cbc4ea556..915293c4d3e 100644 --- a/docs/en/operations/system-tables/grants.md +++ b/docs/en/operations/system-tables/grants.md @@ -1,3 +1,5 @@ +--- +--- # grants Privileges granted to ClickHouse user accounts. diff --git a/docs/en/operations/system-tables/graphite_retentions.md b/docs/en/operations/system-tables/graphite_retentions.md index 697e272e810..d1b803e8233 100644 --- a/docs/en/operations/system-tables/graphite_retentions.md +++ b/docs/en/operations/system-tables/graphite_retentions.md @@ -1,3 +1,5 @@ +--- +--- # graphite_retentions Contains information about parameters [graphite_rollup](../../operations/server-configuration-parameters/settings.md#server_configuration_parameters-graphite) which are used in tables with [\*GraphiteMergeTree](../../engines/table-engines/mergetree-family/graphitemergetree.md) engines. diff --git a/docs/en/operations/system-tables/information_schema.md b/docs/en/operations/system-tables/information_schema.md index 50c15dacd13..21787f1ae78 100644 --- a/docs/en/operations/system-tables/information_schema.md +++ b/docs/en/operations/system-tables/information_schema.md @@ -1,3 +1,5 @@ +--- +--- # INFORMATION_SCHEMA `INFORMATION_SCHEMA` (`information_schema`) is a system database that contains views. Using these views, you can get information about the metadata of database objects. These views read data from the columns of the [system.columns](../../operations/system-tables/columns.md), [system.databases](../../operations/system-tables/databases.md) and [system.tables](../../operations/system-tables/tables.md) system tables. diff --git a/docs/en/operations/system-tables/licenses.md b/docs/en/operations/system-tables/licenses.md index fad6e16fd8a..10e9fc1c840 100644 --- a/docs/en/operations/system-tables/licenses.md +++ b/docs/en/operations/system-tables/licenses.md @@ -1,3 +1,5 @@ +--- +--- # licenses Сontains licenses of third-party libraries that are located in the [contrib](https://github.com/ClickHouse/ClickHouse/tree/master/contrib) directory of ClickHouse sources. diff --git a/docs/en/operations/system-tables/merge_tree_settings.md b/docs/en/operations/system-tables/merge_tree_settings.md index 49c5b951352..932a3a30bf6 100644 --- a/docs/en/operations/system-tables/merge_tree_settings.md +++ b/docs/en/operations/system-tables/merge_tree_settings.md @@ -1,3 +1,5 @@ +--- +--- # merge_tree_settings Contains information about settings for `MergeTree` tables. diff --git a/docs/en/operations/system-tables/merges.md b/docs/en/operations/system-tables/merges.md index 829be3e3147..890c27aa8fb 100644 --- a/docs/en/operations/system-tables/merges.md +++ b/docs/en/operations/system-tables/merges.md @@ -1,3 +1,5 @@ +--- +--- # merges Contains information about merges and part mutations currently in process for tables in the MergeTree family. diff --git a/docs/en/operations/system-tables/metric_log.md b/docs/en/operations/system-tables/metric_log.md index bb637d006d4..81d82f72d4a 100644 --- a/docs/en/operations/system-tables/metric_log.md +++ b/docs/en/operations/system-tables/metric_log.md @@ -1,3 +1,5 @@ +--- +--- # metric_log Contains history of metrics values from tables `system.metrics` and `system.events`, periodically flushed to disk. diff --git a/docs/en/operations/system-tables/metrics.md b/docs/en/operations/system-tables/metrics.md index 66a56cf3618..f20012d0a34 100644 --- a/docs/en/operations/system-tables/metrics.md +++ b/docs/en/operations/system-tables/metrics.md @@ -1,3 +1,5 @@ +--- +--- # metrics Contains metrics which can be calculated instantly, or have a current value. For example, the number of simultaneously processed queries or the current replica delay. This table is always up to date. diff --git a/docs/en/operations/system-tables/mutations.md b/docs/en/operations/system-tables/mutations.md index 57fa3684c34..1954480747d 100644 --- a/docs/en/operations/system-tables/mutations.md +++ b/docs/en/operations/system-tables/mutations.md @@ -1,3 +1,5 @@ +--- +--- # mutations The table contains information about [mutations](../../sql-reference/statements/alter/index.md#mutations) of [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) tables and their progress. Each mutation command is represented by a single row. diff --git a/docs/en/operations/system-tables/numbers.md b/docs/en/operations/system-tables/numbers.md index 4b18e9177e0..86c590aa745 100644 --- a/docs/en/operations/system-tables/numbers.md +++ b/docs/en/operations/system-tables/numbers.md @@ -1,3 +1,5 @@ +--- +--- # numbers This table contains a single UInt64 column named `number` that contains almost all the natural numbers starting from zero. diff --git a/docs/en/operations/system-tables/numbers_mt.md b/docs/en/operations/system-tables/numbers_mt.md index d420186aec4..02f9400ac47 100644 --- a/docs/en/operations/system-tables/numbers_mt.md +++ b/docs/en/operations/system-tables/numbers_mt.md @@ -1,3 +1,5 @@ +--- +--- # numbers_mt The same as [system.numbers](../../operations/system-tables/numbers.md) but reads are parallelized. The numbers can be returned in any order. diff --git a/docs/en/operations/system-tables/one.md b/docs/en/operations/system-tables/one.md index 6a4991a5190..64b4b4f6eef 100644 --- a/docs/en/operations/system-tables/one.md +++ b/docs/en/operations/system-tables/one.md @@ -1,3 +1,5 @@ +--- +--- # one This table contains a single row with a single `dummy` UInt8 column containing the value 0. diff --git a/docs/en/operations/system-tables/opentelemetry_span_log.md b/docs/en/operations/system-tables/opentelemetry_span_log.md index a9ca32ae030..3ea7d1d395a 100644 --- a/docs/en/operations/system-tables/opentelemetry_span_log.md +++ b/docs/en/operations/system-tables/opentelemetry_span_log.md @@ -1,3 +1,5 @@ +--- +--- # opentelemetry_span_log Contains information about [trace spans](https://opentracing.io/docs/overview/spans/) for executed queries. diff --git a/docs/en/operations/system-tables/part_log.md b/docs/en/operations/system-tables/part_log.md index e1134f6baf6..7691a722efa 100644 --- a/docs/en/operations/system-tables/part_log.md +++ b/docs/en/operations/system-tables/part_log.md @@ -1,3 +1,5 @@ +--- +--- # part_log The `system.part_log` table is created only if the [part_log](../../operations/server-configuration-parameters/settings.md#server_configuration_parameters-part-log) server setting is specified. diff --git a/docs/en/operations/system-tables/parts.md b/docs/en/operations/system-tables/parts.md index 845c63e5626..c0c593c4881 100644 --- a/docs/en/operations/system-tables/parts.md +++ b/docs/en/operations/system-tables/parts.md @@ -1,3 +1,5 @@ +--- +--- # parts {#system_tables-parts} Contains information about parts of [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) tables. diff --git a/docs/en/operations/system-tables/parts_columns.md b/docs/en/operations/system-tables/parts_columns.md index 2f85b912f38..5db7ae5318b 100644 --- a/docs/en/operations/system-tables/parts_columns.md +++ b/docs/en/operations/system-tables/parts_columns.md @@ -1,3 +1,5 @@ +--- +--- # parts_columns Contains information about parts and columns of [MergeTree](../../engines/table-engines/mergetree-family/mergetree.md) tables. diff --git a/docs/en/operations/system-tables/processes.md b/docs/en/operations/system-tables/processes.md index b808e801819..48d5abf52d1 100644 --- a/docs/en/operations/system-tables/processes.md +++ b/docs/en/operations/system-tables/processes.md @@ -1,3 +1,5 @@ +--- +--- # processes This system table is used for implementing the `SHOW PROCESSLIST` query. diff --git a/docs/en/operations/system-tables/query_log.md b/docs/en/operations/system-tables/query_log.md index 80343a1cc2b..3015ec460fd 100644 --- a/docs/en/operations/system-tables/query_log.md +++ b/docs/en/operations/system-tables/query_log.md @@ -1,3 +1,5 @@ +--- +--- # query_log Contains information about executed queries, for example, start time, duration of processing, error messages. diff --git a/docs/en/operations/system-tables/query_thread_log.md b/docs/en/operations/system-tables/query_thread_log.md index 2b4c4bab841..6d9e8af8de9 100644 --- a/docs/en/operations/system-tables/query_thread_log.md +++ b/docs/en/operations/system-tables/query_thread_log.md @@ -1,3 +1,5 @@ +--- +--- # query_thread_log Contains information about threads that execute queries, for example, thread name, thread start time, duration of query processing. diff --git a/docs/en/operations/system-tables/query_views_log.md b/docs/en/operations/system-tables/query_views_log.md index 007128f5619..bb44f3f7362 100644 --- a/docs/en/operations/system-tables/query_views_log.md +++ b/docs/en/operations/system-tables/query_views_log.md @@ -1,3 +1,5 @@ +--- +--- # query_views_log Contains information about the dependent views executed when running a query, for example, the view type or the execution time. diff --git a/docs/en/operations/system-tables/quota_limits.md b/docs/en/operations/system-tables/quota_limits.md index e3fea42c009..ed289c5efae 100644 --- a/docs/en/operations/system-tables/quota_limits.md +++ b/docs/en/operations/system-tables/quota_limits.md @@ -1,3 +1,5 @@ +--- +--- # quota_limits Contains information about maximums for all intervals of all quotas. Any number of rows or zero can correspond to one quota. diff --git a/docs/en/operations/system-tables/quota_usage.md b/docs/en/operations/system-tables/quota_usage.md index 059c073babb..a83abcc5f4c 100644 --- a/docs/en/operations/system-tables/quota_usage.md +++ b/docs/en/operations/system-tables/quota_usage.md @@ -1,3 +1,5 @@ +--- +--- # quota_usage Quota usage by the current user: how much is used and how much is left. diff --git a/docs/en/operations/system-tables/quotas.md b/docs/en/operations/system-tables/quotas.md index 2ef89f6749c..15c420eea9d 100644 --- a/docs/en/operations/system-tables/quotas.md +++ b/docs/en/operations/system-tables/quotas.md @@ -1,3 +1,5 @@ +--- +--- # quotas Contains information about [quotas](../../operations/system-tables/quotas.md). diff --git a/docs/en/operations/system-tables/quotas_usage.md b/docs/en/operations/system-tables/quotas_usage.md index f295187f2ac..0ca08fbb881 100644 --- a/docs/en/operations/system-tables/quotas_usage.md +++ b/docs/en/operations/system-tables/quotas_usage.md @@ -1,3 +1,5 @@ +--- +--- # quotas_usage Quota usage by all users. diff --git a/docs/en/operations/system-tables/replicas.md b/docs/en/operations/system-tables/replicas.md index c32014b8f48..a982d2496cd 100644 --- a/docs/en/operations/system-tables/replicas.md +++ b/docs/en/operations/system-tables/replicas.md @@ -1,3 +1,5 @@ +--- +--- # replicas Contains information and status for replicated tables residing on the local server. diff --git a/docs/en/operations/system-tables/replicated_fetches.md b/docs/en/operations/system-tables/replicated_fetches.md index fd6d7b54778..e0a42228968 100644 --- a/docs/en/operations/system-tables/replicated_fetches.md +++ b/docs/en/operations/system-tables/replicated_fetches.md @@ -1,3 +1,5 @@ +--- +--- # replicated_fetches Contains information about currently running background fetches. diff --git a/docs/en/operations/system-tables/replication_queue.md b/docs/en/operations/system-tables/replication_queue.md index a7ac748ebbd..ac1c9a57ab2 100644 --- a/docs/en/operations/system-tables/replication_queue.md +++ b/docs/en/operations/system-tables/replication_queue.md @@ -1,3 +1,5 @@ +--- +--- # replication_queue Contains information about tasks from replication queues stored in ClickHouse Keeper, or ZooKeeper, for tables in the `ReplicatedMergeTree` family. diff --git a/docs/en/operations/system-tables/role-grants.md b/docs/en/operations/system-tables/role-grants.md index cb0c5bf0b0b..135efb133eb 100644 --- a/docs/en/operations/system-tables/role-grants.md +++ b/docs/en/operations/system-tables/role-grants.md @@ -1,3 +1,5 @@ +--- +--- # role_grants Contains the role grants for users and roles. To add entries to this table, use `GRANT role TO user`. diff --git a/docs/en/operations/system-tables/roles.md b/docs/en/operations/system-tables/roles.md index 6e1d112a6e5..65b18f5d4af 100644 --- a/docs/en/operations/system-tables/roles.md +++ b/docs/en/operations/system-tables/roles.md @@ -1,3 +1,5 @@ +--- +--- # roles Contains information about configured [roles](../../operations/access-rights.md#role-management). diff --git a/docs/en/operations/system-tables/row_policies.md b/docs/en/operations/system-tables/row_policies.md index d7869c62499..5d920c87727 100644 --- a/docs/en/operations/system-tables/row_policies.md +++ b/docs/en/operations/system-tables/row_policies.md @@ -1,3 +1,5 @@ +--- +--- # row_policies Contains filters for one particular table, as well as a list of roles and/or users which should use this row policy. diff --git a/docs/en/operations/system-tables/session_log.md b/docs/en/operations/system-tables/session_log.md index a42f0e79fe7..f422c2cfebe 100644 --- a/docs/en/operations/system-tables/session_log.md +++ b/docs/en/operations/system-tables/session_log.md @@ -1,3 +1,5 @@ +--- +--- # session_log Contains information about all successful and failed login and logout events. diff --git a/docs/en/operations/system-tables/settings.md b/docs/en/operations/system-tables/settings.md index 35af1e286d8..4ec4219df76 100644 --- a/docs/en/operations/system-tables/settings.md +++ b/docs/en/operations/system-tables/settings.md @@ -1,3 +1,5 @@ +--- +--- # settings Contains information about session settings for current user. diff --git a/docs/en/operations/system-tables/settings_profile_elements.md b/docs/en/operations/system-tables/settings_profile_elements.md index 9afde010d0f..e740712f3ca 100644 --- a/docs/en/operations/system-tables/settings_profile_elements.md +++ b/docs/en/operations/system-tables/settings_profile_elements.md @@ -1,3 +1,5 @@ +--- +--- # settings_profile_elements Describes the content of the settings profile: diff --git a/docs/en/operations/system-tables/settings_profiles.md b/docs/en/operations/system-tables/settings_profiles.md index f14f8077143..579b07444b3 100644 --- a/docs/en/operations/system-tables/settings_profiles.md +++ b/docs/en/operations/system-tables/settings_profiles.md @@ -1,3 +1,5 @@ +--- +--- # settings_profiles Contains properties of configured setting profiles. diff --git a/docs/en/operations/system-tables/stack_trace.md b/docs/en/operations/system-tables/stack_trace.md index 3cc3b4043e3..b05717a3993 100644 --- a/docs/en/operations/system-tables/stack_trace.md +++ b/docs/en/operations/system-tables/stack_trace.md @@ -1,3 +1,5 @@ +--- +--- # stack_trace Contains stack traces of all server threads. Allows developers to introspect the server state. diff --git a/docs/en/operations/system-tables/storage_policies.md b/docs/en/operations/system-tables/storage_policies.md index 85e745dd0f8..ea4eece6f0e 100644 --- a/docs/en/operations/system-tables/storage_policies.md +++ b/docs/en/operations/system-tables/storage_policies.md @@ -1,3 +1,5 @@ +--- +--- # storage_policies Contains information about storage policies and volumes defined in the [server configuration](../../engines/table-engines/mergetree-family/mergetree.md#table_engine-mergetree-multiple-volumes_configure). diff --git a/docs/en/operations/system-tables/table_engines.md b/docs/en/operations/system-tables/table_engines.md index f5da0777d7c..06d6c14a46c 100644 --- a/docs/en/operations/system-tables/table_engines.md +++ b/docs/en/operations/system-tables/table_engines.md @@ -1,3 +1,5 @@ +--- +--- # table_engines Contains description of table engines supported by server and their feature support information. diff --git a/docs/en/operations/system-tables/tables.md b/docs/en/operations/system-tables/tables.md index 804b5862b34..c44e99512f6 100644 --- a/docs/en/operations/system-tables/tables.md +++ b/docs/en/operations/system-tables/tables.md @@ -1,3 +1,5 @@ +--- +--- # tables Contains metadata of each table that the server knows about. diff --git a/docs/en/operations/system-tables/text_log.md b/docs/en/operations/system-tables/text_log.md index f2d2042f5da..7c68381e646 100644 --- a/docs/en/operations/system-tables/text_log.md +++ b/docs/en/operations/system-tables/text_log.md @@ -1,3 +1,5 @@ +--- +--- # text_log Contains logging entries. The logging level which goes to this table can be limited to the `text_log.level` server setting. diff --git a/docs/en/operations/system-tables/time_zones.md b/docs/en/operations/system-tables/time_zones.md index 78ce02ba3ae..1ded4d9f279 100644 --- a/docs/en/operations/system-tables/time_zones.md +++ b/docs/en/operations/system-tables/time_zones.md @@ -1,3 +1,5 @@ +--- +--- # time_zones Contains a list of time zones that are supported by the ClickHouse server. This list of timezones might vary depending on the version of ClickHouse. diff --git a/docs/en/operations/system-tables/trace_log.md b/docs/en/operations/system-tables/trace_log.md index 8d9936b5097..42fc12ad4c2 100644 --- a/docs/en/operations/system-tables/trace_log.md +++ b/docs/en/operations/system-tables/trace_log.md @@ -1,3 +1,5 @@ +--- +--- # trace_log Contains stack traces collected by the sampling query profiler. diff --git a/docs/en/operations/system-tables/users.md b/docs/en/operations/system-tables/users.md index 4543b35c0ff..8d93aafc4a9 100644 --- a/docs/en/operations/system-tables/users.md +++ b/docs/en/operations/system-tables/users.md @@ -1,3 +1,5 @@ +--- +--- # users Contains a list of [user accounts](../../operations/access-rights.md#user-account-management) configured at the server. diff --git a/docs/en/operations/system-tables/zookeeper.md b/docs/en/operations/system-tables/zookeeper.md index 923676b31e6..3da2926f465 100644 --- a/docs/en/operations/system-tables/zookeeper.md +++ b/docs/en/operations/system-tables/zookeeper.md @@ -1,3 +1,5 @@ +--- +--- # zookeeper The table does not exist unless ClickHouse Keeper or ZooKeeper is configured. The `system.zookeeper` table exposes data from the Keeper cluster defined in the config. diff --git a/docs/en/operations/system-tables/zookeeper_log.md b/docs/en/operations/system-tables/zookeeper_log.md index 2a5d7dbe8d2..4b02e32c118 100644 --- a/docs/en/operations/system-tables/zookeeper_log.md +++ b/docs/en/operations/system-tables/zookeeper_log.md @@ -1,3 +1,5 @@ +--- +--- # zookeeper_log This table contains information about the parameters of the request to the ZooKeeper server and the response from it. diff --git a/docs/en/operations/utilities/clickhouse-compressor.md b/docs/en/operations/utilities/clickhouse-compressor.md index 2f8f4794ba8..baa247da135 100644 --- a/docs/en/operations/utilities/clickhouse-compressor.md +++ b/docs/en/operations/utilities/clickhouse-compressor.md @@ -1,3 +1,5 @@ +--- +--- # clickhouse-compressor diff --git a/docs/en/operations/utilities/clickhouse-format.md b/docs/en/operations/utilities/clickhouse-format.md index 219a170fc23..9b472c3cb78 100644 --- a/docs/en/operations/utilities/clickhouse-format.md +++ b/docs/en/operations/utilities/clickhouse-format.md @@ -1,3 +1,5 @@ +--- +--- # clickhouse-format Allows formatting input queries. diff --git a/docs/en/operations/utilities/clickhouse-obfuscator.md b/docs/en/operations/utilities/clickhouse-obfuscator.md index 02d6fd225ec..e8f1b1d5b10 100644 --- a/docs/en/operations/utilities/clickhouse-obfuscator.md +++ b/docs/en/operations/utilities/clickhouse-obfuscator.md @@ -1,3 +1,5 @@ +--- +--- # clickhouse-obfuscator A simple tool for table data obfuscation. diff --git a/docs/en/operations/utilities/odbc-bridge.md b/docs/en/operations/utilities/odbc-bridge.md index e5967085c49..d22cb31029a 100644 --- a/docs/en/operations/utilities/odbc-bridge.md +++ b/docs/en/operations/utilities/odbc-bridge.md @@ -1,3 +1,5 @@ +--- +--- # clickhouse-odbc-bridge Simple HTTP-server which works like a proxy for ODBC driver. The main motivation diff --git a/docs/en/sql-reference/data-types/simpleaggregatefunction.md b/docs/en/sql-reference/data-types/simpleaggregatefunction.md index 069e2e68671..3de5e25b039 100644 --- a/docs/en/sql-reference/data-types/simpleaggregatefunction.md +++ b/docs/en/sql-reference/data-types/simpleaggregatefunction.md @@ -1,3 +1,5 @@ +--- +--- # SimpleAggregateFunction `SimpleAggregateFunction(name, types_of_arguments…)` data type stores current value of the aggregate function, and does not store its full state as [`AggregateFunction`](../../sql-reference/data-types/aggregatefunction.md) does. This optimization can be applied to functions for which the following property holds: the result of applying a function `f` to a row set `S1 UNION ALL S2` can be obtained by applying `f` to parts of the row set separately, and then again applying `f` to the results: `f(S1 UNION ALL S2) = f(f(S1) UNION ALL f(S2))`. This property guarantees that partial aggregation results are enough to compute the combined one, so we do not have to store and process any extra data. diff --git a/docs/en/sql-reference/functions/distance-functions.md b/docs/en/sql-reference/functions/distance-functions.md index 4af264f27ca..285f57b7afe 100644 --- a/docs/en/sql-reference/functions/distance-functions.md +++ b/docs/en/sql-reference/functions/distance-functions.md @@ -1,3 +1,5 @@ +--- +--- # Distance functions ## L1Norm diff --git a/docs/en/sql-reference/operators/exists.md b/docs/en/sql-reference/operators/exists.md index 2e9f6f58df5..3f8dcffa039 100644 --- a/docs/en/sql-reference/operators/exists.md +++ b/docs/en/sql-reference/operators/exists.md @@ -1,3 +1,5 @@ +--- +--- # EXISTS The `EXISTS` operator checks how many records are in the result of a subquery. If it is empty, then the operator returns `0`. Otherwise, it returns `1`. diff --git a/docs/en/sql-reference/operators/in.md b/docs/en/sql-reference/operators/in.md index 709570eac2d..958e5e346e5 100644 --- a/docs/en/sql-reference/operators/in.md +++ b/docs/en/sql-reference/operators/in.md @@ -1,3 +1,5 @@ +--- +--- # IN Operators The `IN`, `NOT IN`, `GLOBAL IN`, and `GLOBAL NOT IN` operators are covered separately, since their functionality is quite rich. From db1a3b717cc44cb653239619a76c5aa36c79dc43 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Sun, 28 Aug 2022 09:58:27 -0400 Subject: [PATCH 56/61] add slugs --- docs/en/development/integrating_rust_libraries.md | 1 + docs/en/operations/external-authenticators/kerberos.md | 1 + docs/en/operations/external-authenticators/ldap.md | 1 + docs/en/operations/external-authenticators/ssl-x509.md | 1 + docs/en/operations/settings/memory-overcommit.md | 1 + docs/en/operations/settings/merge-tree-settings.md | 1 + docs/en/operations/system-tables/asynchronous_metric_log.md | 1 + docs/en/operations/system-tables/asynchronous_metrics.md | 1 + docs/en/operations/system-tables/clusters.md | 1 + docs/en/operations/system-tables/columns.md | 1 + docs/en/operations/system-tables/contributors.md | 1 + docs/en/operations/system-tables/crash-log.md | 1 + docs/en/operations/system-tables/current-roles.md | 1 + docs/en/operations/system-tables/data_skipping_indices.md | 1 + docs/en/operations/system-tables/data_type_families.md | 1 + docs/en/operations/system-tables/databases.md | 1 + docs/en/operations/system-tables/detached_parts.md | 1 + docs/en/operations/system-tables/dictionaries.md | 1 + docs/en/operations/system-tables/disks.md | 1 + docs/en/operations/system-tables/distributed_ddl_queue.md | 1 + docs/en/operations/system-tables/distribution_queue.md | 1 + docs/en/operations/system-tables/enabled-roles.md | 1 + docs/en/operations/system-tables/errors.md | 1 + docs/en/operations/system-tables/events.md | 1 + docs/en/operations/system-tables/functions.md | 1 + docs/en/operations/system-tables/grants.md | 1 + docs/en/operations/system-tables/graphite_retentions.md | 1 + docs/en/operations/system-tables/information_schema.md | 1 + docs/en/operations/system-tables/licenses.md | 1 + docs/en/operations/system-tables/merge_tree_settings.md | 1 + docs/en/operations/system-tables/merges.md | 1 + docs/en/operations/system-tables/metric_log.md | 1 + docs/en/operations/system-tables/metrics.md | 1 + docs/en/operations/system-tables/mutations.md | 1 + docs/en/operations/system-tables/numbers.md | 1 + docs/en/operations/system-tables/numbers_mt.md | 1 + docs/en/operations/system-tables/one.md | 1 + docs/en/operations/system-tables/opentelemetry_span_log.md | 1 + docs/en/operations/system-tables/part_log.md | 1 + docs/en/operations/system-tables/parts.md | 1 + docs/en/operations/system-tables/parts_columns.md | 1 + docs/en/operations/system-tables/processes.md | 1 + docs/en/operations/system-tables/query_log.md | 1 + docs/en/operations/system-tables/query_thread_log.md | 1 + docs/en/operations/system-tables/query_views_log.md | 1 + docs/en/operations/system-tables/quota_limits.md | 1 + docs/en/operations/system-tables/quota_usage.md | 1 + docs/en/operations/system-tables/quotas.md | 1 + docs/en/operations/system-tables/quotas_usage.md | 1 + docs/en/operations/system-tables/replicas.md | 1 + docs/en/operations/system-tables/replicated_fetches.md | 1 + docs/en/operations/system-tables/replication_queue.md | 1 + docs/en/operations/system-tables/role-grants.md | 1 + docs/en/operations/system-tables/roles.md | 1 + docs/en/operations/system-tables/row_policies.md | 1 + docs/en/operations/system-tables/session_log.md | 1 + docs/en/operations/system-tables/settings.md | 1 + docs/en/operations/system-tables/settings_profile_elements.md | 1 + docs/en/operations/system-tables/settings_profiles.md | 1 + docs/en/operations/system-tables/stack_trace.md | 1 + docs/en/operations/system-tables/storage_policies.md | 1 + docs/en/operations/system-tables/table_engines.md | 1 + docs/en/operations/system-tables/tables.md | 1 + docs/en/operations/system-tables/text_log.md | 1 + docs/en/operations/system-tables/time_zones.md | 1 + docs/en/operations/system-tables/trace_log.md | 1 + docs/en/operations/system-tables/users.md | 1 + docs/en/operations/system-tables/zookeeper.md | 1 + docs/en/operations/system-tables/zookeeper_log.md | 1 + docs/en/operations/utilities/clickhouse-compressor.md | 1 + docs/en/operations/utilities/clickhouse-format.md | 1 + docs/en/operations/utilities/clickhouse-obfuscator.md | 1 + docs/en/operations/utilities/odbc-bridge.md | 1 + docs/en/sql-reference/data-types/simpleaggregatefunction.md | 1 + docs/en/sql-reference/functions/distance-functions.md | 1 + docs/en/sql-reference/operators/exists.md | 1 + docs/en/sql-reference/operators/in.md | 1 + 77 files changed, 77 insertions(+) diff --git a/docs/en/development/integrating_rust_libraries.md b/docs/en/development/integrating_rust_libraries.md index a29c46c2ade..ef0472bf4ac 100644 --- a/docs/en/development/integrating_rust_libraries.md +++ b/docs/en/development/integrating_rust_libraries.md @@ -1,4 +1,5 @@ --- +slug: /en/development/integrating_rust_libraries --- # Integrating Rust libraries diff --git a/docs/en/operations/external-authenticators/kerberos.md b/docs/en/operations/external-authenticators/kerberos.md index 42fc8773e8d..689c3f66e04 100644 --- a/docs/en/operations/external-authenticators/kerberos.md +++ b/docs/en/operations/external-authenticators/kerberos.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/external-authenticators/kerberos --- # Kerberos diff --git a/docs/en/operations/external-authenticators/ldap.md b/docs/en/operations/external-authenticators/ldap.md index 83318706fd4..cdc8cfaf5b0 100644 --- a/docs/en/operations/external-authenticators/ldap.md +++ b/docs/en/operations/external-authenticators/ldap.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/external-authenticators/ldap --- # LDAP diff --git a/docs/en/operations/external-authenticators/ssl-x509.md b/docs/en/operations/external-authenticators/ssl-x509.md index 65bdc3c678a..6482bb2bd12 100644 --- a/docs/en/operations/external-authenticators/ssl-x509.md +++ b/docs/en/operations/external-authenticators/ssl-x509.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/external-authenticators/ssl-x509 --- # SSL X.509 certificate authentication diff --git a/docs/en/operations/settings/memory-overcommit.md b/docs/en/operations/settings/memory-overcommit.md index 9027022fa3f..43a7784e1ed 100644 --- a/docs/en/operations/settings/memory-overcommit.md +++ b/docs/en/operations/settings/memory-overcommit.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/settings/memory-overcommit --- # Memory overcommit diff --git a/docs/en/operations/settings/merge-tree-settings.md b/docs/en/operations/settings/merge-tree-settings.md index 5ae10b9b974..0c33cdb7d43 100644 --- a/docs/en/operations/settings/merge-tree-settings.md +++ b/docs/en/operations/settings/merge-tree-settings.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/settings/merge-tree-settings --- # MergeTree tables settings diff --git a/docs/en/operations/system-tables/asynchronous_metric_log.md b/docs/en/operations/system-tables/asynchronous_metric_log.md index 3ebf08191fd..d047061baa3 100644 --- a/docs/en/operations/system-tables/asynchronous_metric_log.md +++ b/docs/en/operations/system-tables/asynchronous_metric_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/asynchronous_metric_log --- # asynchronous_metric_log diff --git a/docs/en/operations/system-tables/asynchronous_metrics.md b/docs/en/operations/system-tables/asynchronous_metrics.md index f407e2916ea..c452e7f7766 100644 --- a/docs/en/operations/system-tables/asynchronous_metrics.md +++ b/docs/en/operations/system-tables/asynchronous_metrics.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/asynchronous_metrics --- # asynchronous_metrics diff --git a/docs/en/operations/system-tables/clusters.md b/docs/en/operations/system-tables/clusters.md index 7c699135357..2f958e977db 100644 --- a/docs/en/operations/system-tables/clusters.md +++ b/docs/en/operations/system-tables/clusters.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/clusters --- # clusters diff --git a/docs/en/operations/system-tables/columns.md b/docs/en/operations/system-tables/columns.md index 258aed02688..a2b26c3684c 100644 --- a/docs/en/operations/system-tables/columns.md +++ b/docs/en/operations/system-tables/columns.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/columns --- # columns diff --git a/docs/en/operations/system-tables/contributors.md b/docs/en/operations/system-tables/contributors.md index 2303cf86dea..8ad2577fc34 100644 --- a/docs/en/operations/system-tables/contributors.md +++ b/docs/en/operations/system-tables/contributors.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/contributors --- # contributors diff --git a/docs/en/operations/system-tables/crash-log.md b/docs/en/operations/system-tables/crash-log.md index 9c16aff42d1..0c0a4cd967d 100644 --- a/docs/en/operations/system-tables/crash-log.md +++ b/docs/en/operations/system-tables/crash-log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/crash-log --- # crash_log diff --git a/docs/en/operations/system-tables/current-roles.md b/docs/en/operations/system-tables/current-roles.md index c6d91c5f1e1..35e789188ef 100644 --- a/docs/en/operations/system-tables/current-roles.md +++ b/docs/en/operations/system-tables/current-roles.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/current-roles --- # current_roles diff --git a/docs/en/operations/system-tables/data_skipping_indices.md b/docs/en/operations/system-tables/data_skipping_indices.md index bce33edbd70..338c6d02206 100644 --- a/docs/en/operations/system-tables/data_skipping_indices.md +++ b/docs/en/operations/system-tables/data_skipping_indices.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/data_skipping_indices --- # data_skipping_indices diff --git a/docs/en/operations/system-tables/data_type_families.md b/docs/en/operations/system-tables/data_type_families.md index 5442233efcf..0581c893337 100644 --- a/docs/en/operations/system-tables/data_type_families.md +++ b/docs/en/operations/system-tables/data_type_families.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/data_type_families --- # data_type_families diff --git a/docs/en/operations/system-tables/databases.md b/docs/en/operations/system-tables/databases.md index 75094c77e0a..cd90c94c480 100644 --- a/docs/en/operations/system-tables/databases.md +++ b/docs/en/operations/system-tables/databases.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/databases --- # databases diff --git a/docs/en/operations/system-tables/detached_parts.md b/docs/en/operations/system-tables/detached_parts.md index a1b06044efb..78ae382f396 100644 --- a/docs/en/operations/system-tables/detached_parts.md +++ b/docs/en/operations/system-tables/detached_parts.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/detached_parts --- # detached_parts diff --git a/docs/en/operations/system-tables/dictionaries.md b/docs/en/operations/system-tables/dictionaries.md index 65fb59642bf..112e2cc2cdf 100644 --- a/docs/en/operations/system-tables/dictionaries.md +++ b/docs/en/operations/system-tables/dictionaries.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/dictionaries --- # dictionaries diff --git a/docs/en/operations/system-tables/disks.md b/docs/en/operations/system-tables/disks.md index c793782a240..1106562da53 100644 --- a/docs/en/operations/system-tables/disks.md +++ b/docs/en/operations/system-tables/disks.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/disks --- # disks diff --git a/docs/en/operations/system-tables/distributed_ddl_queue.md b/docs/en/operations/system-tables/distributed_ddl_queue.md index 2dc8583ecfe..ef04df9751b 100644 --- a/docs/en/operations/system-tables/distributed_ddl_queue.md +++ b/docs/en/operations/system-tables/distributed_ddl_queue.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/distributed_ddl_queue --- # distributed_ddl_queue diff --git a/docs/en/operations/system-tables/distribution_queue.md b/docs/en/operations/system-tables/distribution_queue.md index 874a721018d..ac0798a933a 100644 --- a/docs/en/operations/system-tables/distribution_queue.md +++ b/docs/en/operations/system-tables/distribution_queue.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/distribution_queue --- # distribution_queue diff --git a/docs/en/operations/system-tables/enabled-roles.md b/docs/en/operations/system-tables/enabled-roles.md index f25252688ed..16d8329bc9b 100644 --- a/docs/en/operations/system-tables/enabled-roles.md +++ b/docs/en/operations/system-tables/enabled-roles.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/enabled-roles --- # enabled_roles diff --git a/docs/en/operations/system-tables/errors.md b/docs/en/operations/system-tables/errors.md index e0ecd3c041d..abd55d02aa2 100644 --- a/docs/en/operations/system-tables/errors.md +++ b/docs/en/operations/system-tables/errors.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/errors --- # errors diff --git a/docs/en/operations/system-tables/events.md b/docs/en/operations/system-tables/events.md index 8be18453342..9ce92681507 100644 --- a/docs/en/operations/system-tables/events.md +++ b/docs/en/operations/system-tables/events.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/events --- # events diff --git a/docs/en/operations/system-tables/functions.md b/docs/en/operations/system-tables/functions.md index 2767bfe1687..34553bed527 100644 --- a/docs/en/operations/system-tables/functions.md +++ b/docs/en/operations/system-tables/functions.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/functions --- # functions diff --git a/docs/en/operations/system-tables/grants.md b/docs/en/operations/system-tables/grants.md index 915293c4d3e..536a9a46e86 100644 --- a/docs/en/operations/system-tables/grants.md +++ b/docs/en/operations/system-tables/grants.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/grants --- # grants diff --git a/docs/en/operations/system-tables/graphite_retentions.md b/docs/en/operations/system-tables/graphite_retentions.md index d1b803e8233..9edc958c6df 100644 --- a/docs/en/operations/system-tables/graphite_retentions.md +++ b/docs/en/operations/system-tables/graphite_retentions.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/graphite_retentions --- # graphite_retentions diff --git a/docs/en/operations/system-tables/information_schema.md b/docs/en/operations/system-tables/information_schema.md index 21787f1ae78..a573491282a 100644 --- a/docs/en/operations/system-tables/information_schema.md +++ b/docs/en/operations/system-tables/information_schema.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/information_schema --- # INFORMATION_SCHEMA diff --git a/docs/en/operations/system-tables/licenses.md b/docs/en/operations/system-tables/licenses.md index 10e9fc1c840..7802cb9121b 100644 --- a/docs/en/operations/system-tables/licenses.md +++ b/docs/en/operations/system-tables/licenses.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/licenses --- # licenses diff --git a/docs/en/operations/system-tables/merge_tree_settings.md b/docs/en/operations/system-tables/merge_tree_settings.md index 932a3a30bf6..375d561986b 100644 --- a/docs/en/operations/system-tables/merge_tree_settings.md +++ b/docs/en/operations/system-tables/merge_tree_settings.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/merge_tree_settings --- # merge_tree_settings diff --git a/docs/en/operations/system-tables/merges.md b/docs/en/operations/system-tables/merges.md index 890c27aa8fb..5670d682b21 100644 --- a/docs/en/operations/system-tables/merges.md +++ b/docs/en/operations/system-tables/merges.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/merges --- # merges diff --git a/docs/en/operations/system-tables/metric_log.md b/docs/en/operations/system-tables/metric_log.md index 81d82f72d4a..503b6a22b2b 100644 --- a/docs/en/operations/system-tables/metric_log.md +++ b/docs/en/operations/system-tables/metric_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/metric_log --- # metric_log diff --git a/docs/en/operations/system-tables/metrics.md b/docs/en/operations/system-tables/metrics.md index f20012d0a34..f07578cd931 100644 --- a/docs/en/operations/system-tables/metrics.md +++ b/docs/en/operations/system-tables/metrics.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/metrics --- # metrics diff --git a/docs/en/operations/system-tables/mutations.md b/docs/en/operations/system-tables/mutations.md index 1954480747d..45447f3644e 100644 --- a/docs/en/operations/system-tables/mutations.md +++ b/docs/en/operations/system-tables/mutations.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/mutations --- # mutations diff --git a/docs/en/operations/system-tables/numbers.md b/docs/en/operations/system-tables/numbers.md index 86c590aa745..4e8a74050b6 100644 --- a/docs/en/operations/system-tables/numbers.md +++ b/docs/en/operations/system-tables/numbers.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/numbers --- # numbers diff --git a/docs/en/operations/system-tables/numbers_mt.md b/docs/en/operations/system-tables/numbers_mt.md index 02f9400ac47..d5a89985007 100644 --- a/docs/en/operations/system-tables/numbers_mt.md +++ b/docs/en/operations/system-tables/numbers_mt.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/numbers_mt --- # numbers_mt diff --git a/docs/en/operations/system-tables/one.md b/docs/en/operations/system-tables/one.md index 64b4b4f6eef..1667de25e01 100644 --- a/docs/en/operations/system-tables/one.md +++ b/docs/en/operations/system-tables/one.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/one --- # one diff --git a/docs/en/operations/system-tables/opentelemetry_span_log.md b/docs/en/operations/system-tables/opentelemetry_span_log.md index 3ea7d1d395a..71248447db2 100644 --- a/docs/en/operations/system-tables/opentelemetry_span_log.md +++ b/docs/en/operations/system-tables/opentelemetry_span_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/opentelemetry_span_log --- # opentelemetry_span_log diff --git a/docs/en/operations/system-tables/part_log.md b/docs/en/operations/system-tables/part_log.md index 7691a722efa..d5689b10fdd 100644 --- a/docs/en/operations/system-tables/part_log.md +++ b/docs/en/operations/system-tables/part_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/part_log --- # part_log diff --git a/docs/en/operations/system-tables/parts.md b/docs/en/operations/system-tables/parts.md index c0c593c4881..f1d60896a2e 100644 --- a/docs/en/operations/system-tables/parts.md +++ b/docs/en/operations/system-tables/parts.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/parts --- # parts {#system_tables-parts} diff --git a/docs/en/operations/system-tables/parts_columns.md b/docs/en/operations/system-tables/parts_columns.md index 5db7ae5318b..68757ddfbff 100644 --- a/docs/en/operations/system-tables/parts_columns.md +++ b/docs/en/operations/system-tables/parts_columns.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/parts_columns --- # parts_columns diff --git a/docs/en/operations/system-tables/processes.md b/docs/en/operations/system-tables/processes.md index 48d5abf52d1..f505bb93430 100644 --- a/docs/en/operations/system-tables/processes.md +++ b/docs/en/operations/system-tables/processes.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/processes --- # processes diff --git a/docs/en/operations/system-tables/query_log.md b/docs/en/operations/system-tables/query_log.md index 3015ec460fd..a04214f6488 100644 --- a/docs/en/operations/system-tables/query_log.md +++ b/docs/en/operations/system-tables/query_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/query_log --- # query_log diff --git a/docs/en/operations/system-tables/query_thread_log.md b/docs/en/operations/system-tables/query_thread_log.md index 6d9e8af8de9..97a7d0a83ed 100644 --- a/docs/en/operations/system-tables/query_thread_log.md +++ b/docs/en/operations/system-tables/query_thread_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/query_thread_log --- # query_thread_log diff --git a/docs/en/operations/system-tables/query_views_log.md b/docs/en/operations/system-tables/query_views_log.md index bb44f3f7362..1818dc261aa 100644 --- a/docs/en/operations/system-tables/query_views_log.md +++ b/docs/en/operations/system-tables/query_views_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/query_views_log --- # query_views_log diff --git a/docs/en/operations/system-tables/quota_limits.md b/docs/en/operations/system-tables/quota_limits.md index ed289c5efae..86c6231a3c8 100644 --- a/docs/en/operations/system-tables/quota_limits.md +++ b/docs/en/operations/system-tables/quota_limits.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/quota_limits --- # quota_limits diff --git a/docs/en/operations/system-tables/quota_usage.md b/docs/en/operations/system-tables/quota_usage.md index a83abcc5f4c..ac050b630be 100644 --- a/docs/en/operations/system-tables/quota_usage.md +++ b/docs/en/operations/system-tables/quota_usage.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/quota_usage --- # quota_usage diff --git a/docs/en/operations/system-tables/quotas.md b/docs/en/operations/system-tables/quotas.md index 15c420eea9d..4ef88aa38d6 100644 --- a/docs/en/operations/system-tables/quotas.md +++ b/docs/en/operations/system-tables/quotas.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/quotas --- # quotas diff --git a/docs/en/operations/system-tables/quotas_usage.md b/docs/en/operations/system-tables/quotas_usage.md index 0ca08fbb881..0cb4ebf38f0 100644 --- a/docs/en/operations/system-tables/quotas_usage.md +++ b/docs/en/operations/system-tables/quotas_usage.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/quotas_usage --- # quotas_usage diff --git a/docs/en/operations/system-tables/replicas.md b/docs/en/operations/system-tables/replicas.md index a982d2496cd..584736fe312 100644 --- a/docs/en/operations/system-tables/replicas.md +++ b/docs/en/operations/system-tables/replicas.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/replicas --- # replicas diff --git a/docs/en/operations/system-tables/replicated_fetches.md b/docs/en/operations/system-tables/replicated_fetches.md index e0a42228968..3536bbaff4d 100644 --- a/docs/en/operations/system-tables/replicated_fetches.md +++ b/docs/en/operations/system-tables/replicated_fetches.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/replicated_fetches --- # replicated_fetches diff --git a/docs/en/operations/system-tables/replication_queue.md b/docs/en/operations/system-tables/replication_queue.md index ac1c9a57ab2..ced20b0048a 100644 --- a/docs/en/operations/system-tables/replication_queue.md +++ b/docs/en/operations/system-tables/replication_queue.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/replication_queue --- # replication_queue diff --git a/docs/en/operations/system-tables/role-grants.md b/docs/en/operations/system-tables/role-grants.md index 135efb133eb..ce7ab4fd51e 100644 --- a/docs/en/operations/system-tables/role-grants.md +++ b/docs/en/operations/system-tables/role-grants.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/role-grants --- # role_grants diff --git a/docs/en/operations/system-tables/roles.md b/docs/en/operations/system-tables/roles.md index 65b18f5d4af..95d9c97e61c 100644 --- a/docs/en/operations/system-tables/roles.md +++ b/docs/en/operations/system-tables/roles.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/roles --- # roles diff --git a/docs/en/operations/system-tables/row_policies.md b/docs/en/operations/system-tables/row_policies.md index 5d920c87727..166c8a46f9a 100644 --- a/docs/en/operations/system-tables/row_policies.md +++ b/docs/en/operations/system-tables/row_policies.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/row_policies --- # row_policies diff --git a/docs/en/operations/system-tables/session_log.md b/docs/en/operations/system-tables/session_log.md index f422c2cfebe..79c8ea184ce 100644 --- a/docs/en/operations/system-tables/session_log.md +++ b/docs/en/operations/system-tables/session_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/session_log --- # session_log diff --git a/docs/en/operations/system-tables/settings.md b/docs/en/operations/system-tables/settings.md index 4ec4219df76..2b05cb9bc32 100644 --- a/docs/en/operations/system-tables/settings.md +++ b/docs/en/operations/system-tables/settings.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/settings --- # settings diff --git a/docs/en/operations/system-tables/settings_profile_elements.md b/docs/en/operations/system-tables/settings_profile_elements.md index e740712f3ca..d9fce8d035f 100644 --- a/docs/en/operations/system-tables/settings_profile_elements.md +++ b/docs/en/operations/system-tables/settings_profile_elements.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/settings_profile_elements --- # settings_profile_elements diff --git a/docs/en/operations/system-tables/settings_profiles.md b/docs/en/operations/system-tables/settings_profiles.md index 579b07444b3..ece13c80bea 100644 --- a/docs/en/operations/system-tables/settings_profiles.md +++ b/docs/en/operations/system-tables/settings_profiles.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/settings_profiles --- # settings_profiles diff --git a/docs/en/operations/system-tables/stack_trace.md b/docs/en/operations/system-tables/stack_trace.md index b05717a3993..c64cf067220 100644 --- a/docs/en/operations/system-tables/stack_trace.md +++ b/docs/en/operations/system-tables/stack_trace.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/stack_trace --- # stack_trace diff --git a/docs/en/operations/system-tables/storage_policies.md b/docs/en/operations/system-tables/storage_policies.md index ea4eece6f0e..103d95f65e4 100644 --- a/docs/en/operations/system-tables/storage_policies.md +++ b/docs/en/operations/system-tables/storage_policies.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/storage_policies --- # storage_policies diff --git a/docs/en/operations/system-tables/table_engines.md b/docs/en/operations/system-tables/table_engines.md index 06d6c14a46c..7a326d0015d 100644 --- a/docs/en/operations/system-tables/table_engines.md +++ b/docs/en/operations/system-tables/table_engines.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/table_engines --- # table_engines diff --git a/docs/en/operations/system-tables/tables.md b/docs/en/operations/system-tables/tables.md index c44e99512f6..497e23dd7ca 100644 --- a/docs/en/operations/system-tables/tables.md +++ b/docs/en/operations/system-tables/tables.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/tables --- # tables diff --git a/docs/en/operations/system-tables/text_log.md b/docs/en/operations/system-tables/text_log.md index 7c68381e646..4c45f6d81da 100644 --- a/docs/en/operations/system-tables/text_log.md +++ b/docs/en/operations/system-tables/text_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/text_log --- # text_log diff --git a/docs/en/operations/system-tables/time_zones.md b/docs/en/operations/system-tables/time_zones.md index 1ded4d9f279..b93da1c46e0 100644 --- a/docs/en/operations/system-tables/time_zones.md +++ b/docs/en/operations/system-tables/time_zones.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/time_zones --- # time_zones diff --git a/docs/en/operations/system-tables/trace_log.md b/docs/en/operations/system-tables/trace_log.md index 42fc12ad4c2..0effe085b80 100644 --- a/docs/en/operations/system-tables/trace_log.md +++ b/docs/en/operations/system-tables/trace_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/trace_log --- # trace_log diff --git a/docs/en/operations/system-tables/users.md b/docs/en/operations/system-tables/users.md index 8d93aafc4a9..eaeabab131b 100644 --- a/docs/en/operations/system-tables/users.md +++ b/docs/en/operations/system-tables/users.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/users --- # users diff --git a/docs/en/operations/system-tables/zookeeper.md b/docs/en/operations/system-tables/zookeeper.md index 3da2926f465..1522d6044e9 100644 --- a/docs/en/operations/system-tables/zookeeper.md +++ b/docs/en/operations/system-tables/zookeeper.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/zookeeper --- # zookeeper diff --git a/docs/en/operations/system-tables/zookeeper_log.md b/docs/en/operations/system-tables/zookeeper_log.md index 4b02e32c118..58c44325737 100644 --- a/docs/en/operations/system-tables/zookeeper_log.md +++ b/docs/en/operations/system-tables/zookeeper_log.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/zookeeper_log --- # zookeeper_log diff --git a/docs/en/operations/utilities/clickhouse-compressor.md b/docs/en/operations/utilities/clickhouse-compressor.md index baa247da135..d432e8114c0 100644 --- a/docs/en/operations/utilities/clickhouse-compressor.md +++ b/docs/en/operations/utilities/clickhouse-compressor.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/utilities/clickhouse-compressor --- # clickhouse-compressor diff --git a/docs/en/operations/utilities/clickhouse-format.md b/docs/en/operations/utilities/clickhouse-format.md index 9b472c3cb78..4a74901c980 100644 --- a/docs/en/operations/utilities/clickhouse-format.md +++ b/docs/en/operations/utilities/clickhouse-format.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/utilities/clickhouse-format --- # clickhouse-format diff --git a/docs/en/operations/utilities/clickhouse-obfuscator.md b/docs/en/operations/utilities/clickhouse-obfuscator.md index e8f1b1d5b10..8787f0b1bb3 100644 --- a/docs/en/operations/utilities/clickhouse-obfuscator.md +++ b/docs/en/operations/utilities/clickhouse-obfuscator.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/utilities/clickhouse-obfuscator --- # clickhouse-obfuscator diff --git a/docs/en/operations/utilities/odbc-bridge.md b/docs/en/operations/utilities/odbc-bridge.md index d22cb31029a..789f382fde8 100644 --- a/docs/en/operations/utilities/odbc-bridge.md +++ b/docs/en/operations/utilities/odbc-bridge.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/utilities/odbc-bridge --- # clickhouse-odbc-bridge diff --git a/docs/en/sql-reference/data-types/simpleaggregatefunction.md b/docs/en/sql-reference/data-types/simpleaggregatefunction.md index 3de5e25b039..1464b739224 100644 --- a/docs/en/sql-reference/data-types/simpleaggregatefunction.md +++ b/docs/en/sql-reference/data-types/simpleaggregatefunction.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/simpleaggregatefunction --- # SimpleAggregateFunction diff --git a/docs/en/sql-reference/functions/distance-functions.md b/docs/en/sql-reference/functions/distance-functions.md index 285f57b7afe..88d6c2f3e17 100644 --- a/docs/en/sql-reference/functions/distance-functions.md +++ b/docs/en/sql-reference/functions/distance-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/distance-functions --- # Distance functions diff --git a/docs/en/sql-reference/operators/exists.md b/docs/en/sql-reference/operators/exists.md index 3f8dcffa039..4bc29389c9c 100644 --- a/docs/en/sql-reference/operators/exists.md +++ b/docs/en/sql-reference/operators/exists.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/operators/exists --- # EXISTS diff --git a/docs/en/sql-reference/operators/in.md b/docs/en/sql-reference/operators/in.md index 958e5e346e5..58119cfc4f5 100644 --- a/docs/en/sql-reference/operators/in.md +++ b/docs/en/sql-reference/operators/in.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/operators/in --- # IN Operators From 5b5fcc56aab0297958df6cc110cb002ce3957dfa Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Sun, 28 Aug 2022 10:53:34 -0400 Subject: [PATCH 57/61] add slugs --- docs/en/development/adding_test_queries.md | 1 + docs/en/development/architecture.md | 1 + docs/en/development/browse-code.md | 1 + docs/en/development/build-cross-arm.md | 1 + docs/en/development/build-cross-osx.md | 1 + docs/en/development/build-cross-riscv.md | 1 + docs/en/development/build-osx.md | 1 + docs/en/development/build.md | 1 + docs/en/development/continuous-integration.md | 1 + docs/en/development/contrib.md | 1 + docs/en/development/developer-instruction.md | 1 + docs/en/development/index.md | 1 + docs/en/development/style.md | 1 + docs/en/development/tests.md | 1 + docs/en/engines/database-engines/atomic.md | 1 + docs/en/engines/database-engines/index.md | 1 + docs/en/engines/database-engines/lazy.md | 1 + docs/en/engines/database-engines/materialized-mysql.md | 1 + docs/en/engines/database-engines/materialized-postgresql.md | 1 + docs/en/engines/database-engines/mysql.md | 1 + docs/en/engines/database-engines/postgresql.md | 1 + docs/en/engines/database-engines/replicated.md | 1 + docs/en/engines/database-engines/sqlite.md | 1 + docs/en/engines/table-engines/index.md | 1 + .../en/engines/table-engines/integrations/ExternalDistributed.md | 1 + docs/en/engines/table-engines/integrations/embedded-rocksdb.md | 1 + docs/en/engines/table-engines/integrations/hdfs.md | 1 + docs/en/engines/table-engines/integrations/hive.md | 1 + docs/en/engines/table-engines/integrations/index.md | 1 + docs/en/engines/table-engines/integrations/jdbc.md | 1 + docs/en/engines/table-engines/integrations/kafka.md | 1 + .../table-engines/integrations/materialized-postgresql.md | 1 + docs/en/engines/table-engines/integrations/mongodb.md | 1 + docs/en/engines/table-engines/integrations/mysql.md | 1 + docs/en/engines/table-engines/integrations/nats.md | 1 + docs/en/engines/table-engines/integrations/odbc.md | 1 + docs/en/engines/table-engines/integrations/postgresql.md | 1 + docs/en/engines/table-engines/integrations/rabbitmq.md | 1 + docs/en/engines/table-engines/integrations/s3.md | 1 + docs/en/engines/table-engines/integrations/sqlite.md | 1 + docs/en/engines/table-engines/log-family/index.md | 1 + docs/en/engines/table-engines/log-family/log.md | 1 + docs/en/engines/table-engines/log-family/stripelog.md | 1 + docs/en/engines/table-engines/log-family/tinylog.md | 1 + .../table-engines/mergetree-family/aggregatingmergetree.md | 1 + .../table-engines/mergetree-family/collapsingmergetree.md | 1 + .../table-engines/mergetree-family/custom-partitioning-key.md | 1 + .../engines/table-engines/mergetree-family/graphitemergetree.md | 1 + docs/en/engines/table-engines/mergetree-family/index.md | 1 + docs/en/engines/table-engines/mergetree-family/mergetree.md | 1 + .../engines/table-engines/mergetree-family/replacingmergetree.md | 1 + docs/en/engines/table-engines/mergetree-family/replication.md | 1 + .../engines/table-engines/mergetree-family/summingmergetree.md | 1 + .../mergetree-family/versionedcollapsingmergetree.md | 1 + docs/en/engines/table-engines/special/buffer.md | 1 + docs/en/engines/table-engines/special/dictionary.md | 1 + docs/en/engines/table-engines/special/distributed.md | 1 + docs/en/engines/table-engines/special/external-data.md | 1 + docs/en/engines/table-engines/special/file.md | 1 + docs/en/engines/table-engines/special/generate.md | 1 + docs/en/engines/table-engines/special/index.md | 1 + docs/en/engines/table-engines/special/join.md | 1 + docs/en/engines/table-engines/special/materializedview.md | 1 + docs/en/engines/table-engines/special/memory.md | 1 + docs/en/engines/table-engines/special/merge.md | 1 + docs/en/engines/table-engines/special/null.md | 1 + docs/en/engines/table-engines/special/set.md | 1 + docs/en/engines/table-engines/special/url.md | 1 + docs/en/engines/table-engines/special/view.md | 1 + docs/en/getting-started/example-datasets/amplab-benchmark.md | 1 + docs/en/getting-started/example-datasets/brown-benchmark.md | 1 + docs/en/getting-started/example-datasets/cell-towers.md | 1 + docs/en/getting-started/example-datasets/criteo.md | 1 + docs/en/getting-started/example-datasets/github-events.md | 1 + docs/en/getting-started/example-datasets/menus.md | 1 + docs/en/getting-started/example-datasets/metrica.md | 1 + docs/en/getting-started/example-datasets/nyc-taxi.md | 1 + docs/en/getting-started/example-datasets/ontime.md | 1 + docs/en/getting-started/example-datasets/opensky.md | 1 + docs/en/getting-started/example-datasets/recipes.md | 1 + docs/en/getting-started/example-datasets/star-schema.md | 1 + docs/en/getting-started/example-datasets/uk-price-paid.md | 1 + docs/en/getting-started/example-datasets/wikistat.md | 1 + docs/en/interfaces/cli.md | 1 + docs/en/interfaces/cpp.md | 1 + docs/en/interfaces/formats.md | 1 + docs/en/interfaces/grpc.md | 1 + docs/en/interfaces/http.md | 1 + docs/en/interfaces/jdbc.md | 1 + docs/en/interfaces/mysql.md | 1 + docs/en/interfaces/odbc.md | 1 + docs/en/interfaces/overview.md | 1 + docs/en/interfaces/postgresql.md | 1 + docs/en/interfaces/tcp.md | 1 + docs/en/interfaces/third-party/client-libraries.md | 1 + docs/en/interfaces/third-party/gui.md | 1 + docs/en/interfaces/third-party/index.md | 1 + docs/en/interfaces/third-party/integrations.md | 1 + docs/en/interfaces/third-party/proxy.md | 1 + docs/en/operations/access-rights.md | 1 + docs/en/operations/backup.md | 1 + docs/en/operations/caches.md | 1 + docs/en/operations/clickhouse-keeper.md | 1 + docs/en/operations/configuration-files.md | 1 + docs/en/operations/external-authenticators/index.md | 1 + docs/en/operations/monitoring.md | 1 + docs/en/operations/named-collections.md | 1 + docs/en/operations/opentelemetry.md | 1 + docs/en/operations/optimizing-performance/index.md | 1 + .../operations/optimizing-performance/sampling-query-profiler.md | 1 + docs/en/operations/performance-test.md | 1 + docs/en/operations/quotas.md | 1 + docs/en/operations/requirements.md | 1 + docs/en/operations/server-configuration-parameters/index.md | 1 + docs/en/operations/server-configuration-parameters/settings.md | 1 + docs/en/operations/settings/constraints-on-settings.md | 1 + docs/en/operations/settings/permissions-for-queries.md | 1 + docs/en/operations/settings/query-complexity.md | 1 + docs/en/operations/settings/settings-profiles.md | 1 + docs/en/operations/settings/settings-users.md | 1 + docs/en/operations/ssl-zookeeper.md | 1 + docs/en/operations/storing-data.md | 1 + docs/en/operations/system-tables/index.md | 1 + docs/en/operations/tips.md | 1 + docs/en/operations/troubleshooting.md | 1 + docs/en/operations/update.md | 1 + docs/en/operations/utilities/clickhouse-benchmark.md | 1 + docs/en/operations/utilities/clickhouse-copier.md | 1 + docs/en/operations/utilities/clickhouse-local.md | 1 + docs/en/operations/utilities/index.md | 1 + docs/en/sql-reference/aggregate-functions/combinators.md | 1 + docs/en/sql-reference/aggregate-functions/grouping_function.md | 1 + docs/en/sql-reference/aggregate-functions/index.md | 1 + .../en/sql-reference/aggregate-functions/parametric-functions.md | 1 + docs/en/sql-reference/aggregate-functions/reference/any.md | 1 + docs/en/sql-reference/aggregate-functions/reference/anyheavy.md | 1 + docs/en/sql-reference/aggregate-functions/reference/anylast.md | 1 + docs/en/sql-reference/aggregate-functions/reference/argmax.md | 1 + docs/en/sql-reference/aggregate-functions/reference/argmin.md | 1 + docs/en/sql-reference/aggregate-functions/reference/avg.md | 1 + .../sql-reference/aggregate-functions/reference/avgweighted.md | 1 + .../aggregate-functions/reference/categoricalinformationvalue.md | 1 + docs/en/sql-reference/aggregate-functions/reference/corr.md | 1 + docs/en/sql-reference/aggregate-functions/reference/count.md | 1 + docs/en/sql-reference/aggregate-functions/reference/covarpop.md | 1 + docs/en/sql-reference/aggregate-functions/reference/covarsamp.md | 1 + docs/en/sql-reference/aggregate-functions/reference/deltasum.md | 1 + .../aggregate-functions/reference/deltasumtimestamp.md | 1 + docs/en/sql-reference/aggregate-functions/reference/entropy.md | 1 + .../aggregate-functions/reference/exponentialmovingaverage.md | 1 + .../en/sql-reference/aggregate-functions/reference/grouparray.md | 1 + .../aggregate-functions/reference/grouparrayinsertat.md | 1 + .../aggregate-functions/reference/grouparraymovingavg.md | 1 + .../aggregate-functions/reference/grouparraymovingsum.md | 1 + .../aggregate-functions/reference/grouparraysample.md | 1 + .../sql-reference/aggregate-functions/reference/groupbitand.md | 1 + .../sql-reference/aggregate-functions/reference/groupbitmap.md | 1 + .../aggregate-functions/reference/groupbitmapand.md | 1 + .../sql-reference/aggregate-functions/reference/groupbitmapor.md | 1 + .../aggregate-functions/reference/groupbitmapxor.md | 1 + .../en/sql-reference/aggregate-functions/reference/groupbitor.md | 1 + .../sql-reference/aggregate-functions/reference/groupbitxor.md | 1 + .../aggregate-functions/reference/groupuniqarray.md | 1 + docs/en/sql-reference/aggregate-functions/reference/index.md | 1 + .../aggregate-functions/reference/intervalLengthSum.md | 1 + docs/en/sql-reference/aggregate-functions/reference/kurtpop.md | 1 + docs/en/sql-reference/aggregate-functions/reference/kurtsamp.md | 1 + .../aggregate-functions/reference/mannwhitneyutest.md | 1 + docs/en/sql-reference/aggregate-functions/reference/max.md | 1 + docs/en/sql-reference/aggregate-functions/reference/maxmap.md | 1 + docs/en/sql-reference/aggregate-functions/reference/meanztest.md | 1 + docs/en/sql-reference/aggregate-functions/reference/median.md | 1 + docs/en/sql-reference/aggregate-functions/reference/min.md | 1 + docs/en/sql-reference/aggregate-functions/reference/minmap.md | 1 + docs/en/sql-reference/aggregate-functions/reference/quantile.md | 1 + .../aggregate-functions/reference/quantilebfloat16.md | 1 + .../aggregate-functions/reference/quantiledeterministic.md | 1 + .../sql-reference/aggregate-functions/reference/quantileexact.md | 1 + .../aggregate-functions/reference/quantileexactweighted.md | 1 + docs/en/sql-reference/aggregate-functions/reference/quantiles.md | 1 + .../aggregate-functions/reference/quantiletdigest.md | 1 + .../aggregate-functions/reference/quantiletdigestweighted.md | 1 + .../aggregate-functions/reference/quantiletiming.md | 1 + .../aggregate-functions/reference/quantiletimingweighted.md | 1 + docs/en/sql-reference/aggregate-functions/reference/rankCorr.md | 1 + .../aggregate-functions/reference/simplelinearregression.md | 1 + docs/en/sql-reference/aggregate-functions/reference/skewpop.md | 1 + docs/en/sql-reference/aggregate-functions/reference/skewsamp.md | 1 + docs/en/sql-reference/aggregate-functions/reference/sparkbar.md | 1 + docs/en/sql-reference/aggregate-functions/reference/stddevpop.md | 1 + .../en/sql-reference/aggregate-functions/reference/stddevsamp.md | 1 + .../aggregate-functions/reference/stochasticlinearregression.md | 1 + .../reference/stochasticlogisticregression.md | 1 + .../sql-reference/aggregate-functions/reference/studentttest.md | 1 + docs/en/sql-reference/aggregate-functions/reference/sum.md | 1 + docs/en/sql-reference/aggregate-functions/reference/sumcount.md | 1 + docs/en/sql-reference/aggregate-functions/reference/sumkahan.md | 1 + docs/en/sql-reference/aggregate-functions/reference/summap.md | 1 + .../aggregate-functions/reference/sumwithoverflow.md | 1 + docs/en/sql-reference/aggregate-functions/reference/topk.md | 1 + .../sql-reference/aggregate-functions/reference/topkweighted.md | 1 + docs/en/sql-reference/aggregate-functions/reference/uniq.md | 1 + .../sql-reference/aggregate-functions/reference/uniqcombined.md | 1 + .../aggregate-functions/reference/uniqcombined64.md | 1 + docs/en/sql-reference/aggregate-functions/reference/uniqexact.md | 1 + docs/en/sql-reference/aggregate-functions/reference/uniqhll12.md | 1 + .../aggregate-functions/reference/uniqthetasketch.md | 1 + docs/en/sql-reference/aggregate-functions/reference/varpop.md | 1 + docs/en/sql-reference/aggregate-functions/reference/varsamp.md | 1 + .../en/sql-reference/aggregate-functions/reference/welchttest.md | 1 + docs/en/sql-reference/ansi.md | 1 + docs/en/sql-reference/data-types/aggregatefunction.md | 1 + docs/en/sql-reference/data-types/array.md | 1 + docs/en/sql-reference/data-types/boolean.md | 1 + docs/en/sql-reference/data-types/date.md | 1 + docs/en/sql-reference/data-types/date32.md | 1 + docs/en/sql-reference/data-types/datetime.md | 1 + docs/en/sql-reference/data-types/datetime64.md | 1 + docs/en/sql-reference/data-types/decimal.md | 1 + docs/en/sql-reference/data-types/domains/index.md | 1 + docs/en/sql-reference/data-types/domains/ipv4.md | 1 + docs/en/sql-reference/data-types/domains/ipv6.md | 1 + docs/en/sql-reference/data-types/enum.md | 1 + docs/en/sql-reference/data-types/fixedstring.md | 1 + docs/en/sql-reference/data-types/float.md | 1 + docs/en/sql-reference/data-types/geo.md | 1 + docs/en/sql-reference/data-types/index.md | 1 + docs/en/sql-reference/data-types/int-uint.md | 1 + docs/en/sql-reference/data-types/json.md | 1 + docs/en/sql-reference/data-types/lowcardinality.md | 1 + docs/en/sql-reference/data-types/map.md | 1 + docs/en/sql-reference/data-types/multiword-types.md | 1 + docs/en/sql-reference/data-types/nested-data-structures/index.md | 1 + .../en/sql-reference/data-types/nested-data-structures/nested.md | 1 + docs/en/sql-reference/data-types/nullable.md | 1 + .../en/sql-reference/data-types/special-data-types/expression.md | 1 + docs/en/sql-reference/data-types/special-data-types/index.md | 1 + docs/en/sql-reference/data-types/special-data-types/interval.md | 1 + docs/en/sql-reference/data-types/special-data-types/nothing.md | 1 + docs/en/sql-reference/data-types/special-data-types/set.md | 1 + docs/en/sql-reference/data-types/string.md | 1 + docs/en/sql-reference/data-types/tuple.md | 1 + docs/en/sql-reference/data-types/uuid.md | 1 + .../external-dictionaries/external-dicts-dict-hierarchical.md | 1 + .../external-dictionaries/external-dicts-dict-layout.md | 1 + .../external-dictionaries/external-dicts-dict-lifetime.md | 1 + .../external-dictionaries/external-dicts-dict-polygon.md | 1 + .../external-dictionaries/external-dicts-dict-sources.md | 1 + .../external-dictionaries/external-dicts-dict-structure.md | 1 + .../dictionaries/external-dictionaries/external-dicts-dict.md | 1 + .../dictionaries/external-dictionaries/external-dicts.md | 1 + docs/en/sql-reference/dictionaries/index.md | 1 + docs/en/sql-reference/dictionaries/internal-dicts.md | 1 + docs/en/sql-reference/distributed-ddl.md | 1 + docs/en/sql-reference/functions/arithmetic-functions.md | 1 + docs/en/sql-reference/functions/array-functions.md | 1 + docs/en/sql-reference/functions/array-join.md | 1 + docs/en/sql-reference/functions/bit-functions.md | 1 + docs/en/sql-reference/functions/bitmap-functions.md | 1 + docs/en/sql-reference/functions/comparison-functions.md | 1 + docs/en/sql-reference/functions/conditional-functions.md | 1 + docs/en/sql-reference/functions/date-time-functions.md | 1 + docs/en/sql-reference/functions/encoding-functions.md | 1 + docs/en/sql-reference/functions/encryption-functions.md | 1 + docs/en/sql-reference/functions/ext-dict-functions.md | 1 + docs/en/sql-reference/functions/files.md | 1 + docs/en/sql-reference/functions/functions-for-nulls.md | 1 + docs/en/sql-reference/functions/geo/coordinates.md | 1 + docs/en/sql-reference/functions/geo/geohash.md | 1 + docs/en/sql-reference/functions/geo/h3.md | 1 + docs/en/sql-reference/functions/geo/index.md | 1 + docs/en/sql-reference/functions/geo/s2.md | 1 + docs/en/sql-reference/functions/hash-functions.md | 1 + docs/en/sql-reference/functions/in-functions.md | 1 + docs/en/sql-reference/functions/index.md | 1 + docs/en/sql-reference/functions/introspection.md | 1 + docs/en/sql-reference/functions/ip-address-functions.md | 1 + docs/en/sql-reference/functions/json-functions.md | 1 + docs/en/sql-reference/functions/logical-functions.md | 1 + docs/en/sql-reference/functions/machine-learning-functions.md | 1 + docs/en/sql-reference/functions/math-functions.md | 1 + docs/en/sql-reference/functions/nlp-functions.md | 1 + docs/en/sql-reference/functions/other-functions.md | 1 + docs/en/sql-reference/functions/random-functions.md | 1 + docs/en/sql-reference/functions/rounding-functions.md | 1 + docs/en/sql-reference/functions/splitting-merging-functions.md | 1 + docs/en/sql-reference/functions/string-functions.md | 1 + docs/en/sql-reference/functions/string-replace-functions.md | 1 + docs/en/sql-reference/functions/string-search-functions.md | 1 + docs/en/sql-reference/functions/time-window-functions.md | 1 + docs/en/sql-reference/functions/tuple-functions.md | 1 + docs/en/sql-reference/functions/tuple-map-functions.md | 1 + docs/en/sql-reference/functions/type-conversion-functions.md | 1 + docs/en/sql-reference/functions/url-functions.md | 1 + docs/en/sql-reference/functions/uuid-functions.md | 1 + docs/en/sql-reference/functions/ym-dict-functions.md | 1 + docs/en/sql-reference/operators/index.md | 1 + docs/en/sql-reference/statements/alter/column.md | 1 + docs/en/sql-reference/statements/alter/comment.md | 1 + docs/en/sql-reference/statements/alter/constraint.md | 1 + docs/en/sql-reference/statements/alter/delete.md | 1 + docs/en/sql-reference/statements/alter/index.md | 1 + docs/en/sql-reference/statements/alter/index/index.md | 1 + docs/en/sql-reference/statements/alter/order-by.md | 1 + docs/en/sql-reference/statements/alter/partition.md | 1 + docs/en/sql-reference/statements/alter/projection.md | 1 + docs/en/sql-reference/statements/alter/quota.md | 1 + docs/en/sql-reference/statements/alter/role.md | 1 + docs/en/sql-reference/statements/alter/row-policy.md | 1 + docs/en/sql-reference/statements/alter/sample-by.md | 1 + docs/en/sql-reference/statements/alter/setting.md | 1 + docs/en/sql-reference/statements/alter/settings-profile.md | 1 + docs/en/sql-reference/statements/alter/ttl.md | 1 + docs/en/sql-reference/statements/alter/update.md | 1 + docs/en/sql-reference/statements/alter/user.md | 1 + docs/en/sql-reference/statements/alter/view.md | 1 + docs/en/sql-reference/statements/attach.md | 1 + docs/en/sql-reference/statements/check-table.md | 1 + docs/en/sql-reference/statements/create/database.md | 1 + docs/en/sql-reference/statements/create/dictionary.md | 1 + docs/en/sql-reference/statements/create/function.md | 1 + docs/en/sql-reference/statements/create/index.md | 1 + docs/en/sql-reference/statements/create/quota.md | 1 + docs/en/sql-reference/statements/create/role.md | 1 + docs/en/sql-reference/statements/create/row-policy.md | 1 + docs/en/sql-reference/statements/create/settings-profile.md | 1 + docs/en/sql-reference/statements/create/table.md | 1 + docs/en/sql-reference/statements/create/user.md | 1 + docs/en/sql-reference/statements/create/view.md | 1 + docs/en/sql-reference/statements/describe-table.md | 1 + docs/en/sql-reference/statements/detach.md | 1 + docs/en/sql-reference/statements/drop.md | 1 + docs/en/sql-reference/statements/exchange.md | 1 + docs/en/sql-reference/statements/exists.md | 1 + docs/en/sql-reference/statements/explain.md | 1 + docs/en/sql-reference/statements/grant.md | 1 + docs/en/sql-reference/statements/index.md | 1 + docs/en/sql-reference/statements/insert-into.md | 1 + docs/en/sql-reference/statements/kill.md | 1 + docs/en/sql-reference/statements/misc.md | 1 + docs/en/sql-reference/statements/optimize.md | 1 + docs/en/sql-reference/statements/rename.md | 1 + docs/en/sql-reference/statements/revoke.md | 1 + docs/en/sql-reference/statements/select/all.md | 1 + docs/en/sql-reference/statements/select/array-join.md | 1 + docs/en/sql-reference/statements/select/distinct.md | 1 + docs/en/sql-reference/statements/select/except.md | 1 + docs/en/sql-reference/statements/select/format.md | 1 + docs/en/sql-reference/statements/select/from.md | 1 + docs/en/sql-reference/statements/select/group-by.md | 1 + docs/en/sql-reference/statements/select/having.md | 1 + docs/en/sql-reference/statements/select/index.md | 1 + docs/en/sql-reference/statements/select/intersect.md | 1 + docs/en/sql-reference/statements/select/into-outfile.md | 1 + docs/en/sql-reference/statements/select/join.md | 1 + docs/en/sql-reference/statements/select/limit-by.md | 1 + docs/en/sql-reference/statements/select/limit.md | 1 + docs/en/sql-reference/statements/select/offset.md | 1 + docs/en/sql-reference/statements/select/order-by.md | 1 + docs/en/sql-reference/statements/select/prewhere.md | 1 + docs/en/sql-reference/statements/select/sample.md | 1 + docs/en/sql-reference/statements/select/union.md | 1 + docs/en/sql-reference/statements/select/where.md | 1 + docs/en/sql-reference/statements/select/with.md | 1 + docs/en/sql-reference/statements/set-role.md | 1 + docs/en/sql-reference/statements/set.md | 1 + docs/en/sql-reference/statements/show.md | 1 + docs/en/sql-reference/statements/system.md | 1 + docs/en/sql-reference/statements/truncate.md | 1 + docs/en/sql-reference/statements/use.md | 1 + docs/en/sql-reference/statements/watch.md | 1 + docs/en/sql-reference/syntax.md | 1 + docs/en/sql-reference/table-functions/cluster.md | 1 + docs/en/sql-reference/table-functions/dictionary.md | 1 + docs/en/sql-reference/table-functions/file.md | 1 + docs/en/sql-reference/table-functions/generate.md | 1 + docs/en/sql-reference/table-functions/hdfs.md | 1 + docs/en/sql-reference/table-functions/hdfsCluster.md | 1 + docs/en/sql-reference/table-functions/index.md | 1 + docs/en/sql-reference/table-functions/input.md | 1 + docs/en/sql-reference/table-functions/jdbc.md | 1 + docs/en/sql-reference/table-functions/merge.md | 1 + docs/en/sql-reference/table-functions/mysql.md | 1 + docs/en/sql-reference/table-functions/null.md | 1 + docs/en/sql-reference/table-functions/numbers.md | 1 + docs/en/sql-reference/table-functions/odbc.md | 1 + docs/en/sql-reference/table-functions/postgresql.md | 1 + docs/en/sql-reference/table-functions/remote.md | 1 + docs/en/sql-reference/table-functions/s3.md | 1 + docs/en/sql-reference/table-functions/s3Cluster.md | 1 + docs/en/sql-reference/table-functions/sqlite.md | 1 + docs/en/sql-reference/table-functions/url.md | 1 + docs/en/sql-reference/table-functions/view.md | 1 + docs/en/sql-reference/window-functions/index.md | 1 + docs/ru/about-us/adopters.mdx | 1 + docs/ru/about-us/support.mdx | 1 + docs/ru/whats-new/changelog/2017.mdx | 1 + docs/ru/whats-new/changelog/2018.mdx | 1 + docs/ru/whats-new/changelog/2019.mdx | 1 + docs/ru/whats-new/changelog/2020.mdx | 1 + docs/ru/whats-new/changelog/2021.mdx | 1 + docs/ru/whats-new/roadmap.mdx | 1 + 402 files changed, 402 insertions(+) diff --git a/docs/en/development/adding_test_queries.md b/docs/en/development/adding_test_queries.md index 7ae50768eba..68adff5a623 100644 --- a/docs/en/development/adding_test_queries.md +++ b/docs/en/development/adding_test_queries.md @@ -1,4 +1,5 @@ --- +slug: /en/development/adding_test_queries sidebar_label: Adding Test Queries sidebar_position: 63 description: Instructions on how to add a test case to ClickHouse continuous integration diff --git a/docs/en/development/architecture.md b/docs/en/development/architecture.md index b2f1f2448f8..c13b2519b84 100644 --- a/docs/en/development/architecture.md +++ b/docs/en/development/architecture.md @@ -1,4 +1,5 @@ --- +slug: /en/development/architecture sidebar_label: Architecture Overview sidebar_position: 62 --- diff --git a/docs/en/development/browse-code.md b/docs/en/development/browse-code.md index da924c359ff..0d064cc9b0c 100644 --- a/docs/en/development/browse-code.md +++ b/docs/en/development/browse-code.md @@ -1,4 +1,5 @@ --- +slug: /en/development/browse-code sidebar_label: Source Code Browser sidebar_position: 72 description: Various ways to browse and edit the source code diff --git a/docs/en/development/build-cross-arm.md b/docs/en/development/build-cross-arm.md index 346fa909567..c33d83d4f0a 100644 --- a/docs/en/development/build-cross-arm.md +++ b/docs/en/development/build-cross-arm.md @@ -1,4 +1,5 @@ --- +slug: /en/development/build-cross-arm sidebar_position: 67 sidebar_label: Build on Linux for AARCH64 (ARM64) --- diff --git a/docs/en/development/build-cross-osx.md b/docs/en/development/build-cross-osx.md index 0072c3253cf..d6ca94b8ce6 100644 --- a/docs/en/development/build-cross-osx.md +++ b/docs/en/development/build-cross-osx.md @@ -1,4 +1,5 @@ --- +slug: /en/development/build-cross-osx sidebar_position: 66 sidebar_label: Build on Linux for Mac OS X --- diff --git a/docs/en/development/build-cross-riscv.md b/docs/en/development/build-cross-riscv.md index a0b31ff131a..342d29fe000 100644 --- a/docs/en/development/build-cross-riscv.md +++ b/docs/en/development/build-cross-riscv.md @@ -1,4 +1,5 @@ --- +slug: /en/development/build-cross-riscv sidebar_position: 68 sidebar_label: Build on Linux for RISC-V 64 --- diff --git a/docs/en/development/build-osx.md b/docs/en/development/build-osx.md index ce12f92c0b9..da34a315ba6 100644 --- a/docs/en/development/build-osx.md +++ b/docs/en/development/build-osx.md @@ -1,4 +1,5 @@ --- +slug: /en/development/build-osx sidebar_position: 65 sidebar_label: Build on Mac OS X description: How to build ClickHouse on Mac OS X diff --git a/docs/en/development/build.md b/docs/en/development/build.md index cea6354094b..8204dba0d2f 100644 --- a/docs/en/development/build.md +++ b/docs/en/development/build.md @@ -1,4 +1,5 @@ --- +slug: /en/development/build sidebar_position: 64 sidebar_label: Build on Linux description: How to build ClickHouse on Linux diff --git a/docs/en/development/continuous-integration.md b/docs/en/development/continuous-integration.md index 9b01c69eb78..2eec6a2c026 100644 --- a/docs/en/development/continuous-integration.md +++ b/docs/en/development/continuous-integration.md @@ -1,4 +1,5 @@ --- +slug: /en/development/continuous-integration sidebar_position: 62 sidebar_label: Continuous Integration Checks description: When you submit a pull request, some automated checks are ran for your code by the ClickHouse continuous integration (CI) system diff --git a/docs/en/development/contrib.md b/docs/en/development/contrib.md index 13af1be5097..04158a0c3f7 100644 --- a/docs/en/development/contrib.md +++ b/docs/en/development/contrib.md @@ -1,4 +1,5 @@ --- +slug: /en/development/contrib sidebar_position: 71 sidebar_label: Third-Party Libraries description: A list of third-party libraries used diff --git a/docs/en/development/developer-instruction.md b/docs/en/development/developer-instruction.md index 945d5a2f62f..d1b59f214a1 100644 --- a/docs/en/development/developer-instruction.md +++ b/docs/en/development/developer-instruction.md @@ -1,4 +1,5 @@ --- +slug: /en/development/developer-instruction sidebar_position: 61 sidebar_label: Getting Started description: Prerequisites and an overview of how to build ClickHouse diff --git a/docs/en/development/index.md b/docs/en/development/index.md index 7849c736229..7ad5f5de444 100644 --- a/docs/en/development/index.md +++ b/docs/en/development/index.md @@ -1,4 +1,5 @@ --- +slug: /en/development/ sidebar_label: Development sidebar_position: 58 --- diff --git a/docs/en/development/style.md b/docs/en/development/style.md index a543c7532f8..415312eece1 100644 --- a/docs/en/development/style.md +++ b/docs/en/development/style.md @@ -1,4 +1,5 @@ --- +slug: /en/development/style sidebar_position: 69 sidebar_label: C++ Guide description: A list of recommendations regarding coding style, naming convention, formatting and more diff --git a/docs/en/development/tests.md b/docs/en/development/tests.md index d4bf36b0026..d103eb3426c 100644 --- a/docs/en/development/tests.md +++ b/docs/en/development/tests.md @@ -1,4 +1,5 @@ --- +slug: /en/development/tests sidebar_position: 70 sidebar_label: Testing description: Most of ClickHouse features can be tested with functional tests and they are mandatory to use for every change in ClickHouse code that can be tested that way. diff --git a/docs/en/engines/database-engines/atomic.md b/docs/en/engines/database-engines/atomic.md index 878307121aa..3ea5008c80a 100644 --- a/docs/en/engines/database-engines/atomic.md +++ b/docs/en/engines/database-engines/atomic.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/database-engines/atomic sidebar_label: Atomic sidebar_position: 10 --- diff --git a/docs/en/engines/database-engines/index.md b/docs/en/engines/database-engines/index.md index 237112a5bee..835383f503f 100644 --- a/docs/en/engines/database-engines/index.md +++ b/docs/en/engines/database-engines/index.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/database-engines/ toc_folder_title: Database Engines toc_priority: 27 toc_title: Introduction diff --git a/docs/en/engines/database-engines/lazy.md b/docs/en/engines/database-engines/lazy.md index 170e101d387..79299e338ab 100644 --- a/docs/en/engines/database-engines/lazy.md +++ b/docs/en/engines/database-engines/lazy.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/database-engines/lazy sidebar_label: Lazy sidebar_position: 20 --- diff --git a/docs/en/engines/database-engines/materialized-mysql.md b/docs/en/engines/database-engines/materialized-mysql.md index 4b16d877210..c8aa65bdd91 100644 --- a/docs/en/engines/database-engines/materialized-mysql.md +++ b/docs/en/engines/database-engines/materialized-mysql.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/database-engines/materialized-mysql sidebar_label: MaterializedMySQL sidebar_position: 70 --- diff --git a/docs/en/engines/database-engines/materialized-postgresql.md b/docs/en/engines/database-engines/materialized-postgresql.md index dc05c58f092..180e7578441 100644 --- a/docs/en/engines/database-engines/materialized-postgresql.md +++ b/docs/en/engines/database-engines/materialized-postgresql.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/database-engines/materialized-postgresql sidebar_label: MaterializedPostgreSQL sidebar_position: 60 --- diff --git a/docs/en/engines/database-engines/mysql.md b/docs/en/engines/database-engines/mysql.md index 89a0786a9ec..aae87d90fbd 100644 --- a/docs/en/engines/database-engines/mysql.md +++ b/docs/en/engines/database-engines/mysql.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/database-engines/mysql sidebar_position: 50 sidebar_label: MySQL --- diff --git a/docs/en/engines/database-engines/postgresql.md b/docs/en/engines/database-engines/postgresql.md index 5a430565d54..ce28635a12a 100644 --- a/docs/en/engines/database-engines/postgresql.md +++ b/docs/en/engines/database-engines/postgresql.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/database-engines/postgresql sidebar_position: 40 sidebar_label: PostgreSQL --- diff --git a/docs/en/engines/database-engines/replicated.md b/docs/en/engines/database-engines/replicated.md index 110b799c6be..554345a3c15 100644 --- a/docs/en/engines/database-engines/replicated.md +++ b/docs/en/engines/database-engines/replicated.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/database-engines/replicated sidebar_position: 30 sidebar_label: Replicated --- diff --git a/docs/en/engines/database-engines/sqlite.md b/docs/en/engines/database-engines/sqlite.md index 555f3e0b12b..eef0bb84088 100644 --- a/docs/en/engines/database-engines/sqlite.md +++ b/docs/en/engines/database-engines/sqlite.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/database-engines/sqlite sidebar_position: 55 sidebar_label: SQLite --- diff --git a/docs/en/engines/table-engines/index.md b/docs/en/engines/table-engines/index.md index b6a97ebfbc9..e1c7a8dedc5 100644 --- a/docs/en/engines/table-engines/index.md +++ b/docs/en/engines/table-engines/index.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/ toc_folder_title: Table Engines toc_priority: 26 toc_title: Introduction diff --git a/docs/en/engines/table-engines/integrations/ExternalDistributed.md b/docs/en/engines/table-engines/integrations/ExternalDistributed.md index a318e8c3a35..430f53423a4 100644 --- a/docs/en/engines/table-engines/integrations/ExternalDistributed.md +++ b/docs/en/engines/table-engines/integrations/ExternalDistributed.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/ExternalDistributed sidebar_position: 12 sidebar_label: ExternalDistributed --- diff --git a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md index 5663b1ce834..0eb3331f471 100644 --- a/docs/en/engines/table-engines/integrations/embedded-rocksdb.md +++ b/docs/en/engines/table-engines/integrations/embedded-rocksdb.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/embedded-rocksdb sidebar_position: 9 sidebar_label: EmbeddedRocksDB --- diff --git a/docs/en/engines/table-engines/integrations/hdfs.md b/docs/en/engines/table-engines/integrations/hdfs.md index 7d6a45554f8..78eab7295dd 100644 --- a/docs/en/engines/table-engines/integrations/hdfs.md +++ b/docs/en/engines/table-engines/integrations/hdfs.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/hdfs sidebar_position: 6 sidebar_label: HDFS --- diff --git a/docs/en/engines/table-engines/integrations/hive.md b/docs/en/engines/table-engines/integrations/hive.md index 52250b17d7a..d4b209a285c 100644 --- a/docs/en/engines/table-engines/integrations/hive.md +++ b/docs/en/engines/table-engines/integrations/hive.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/hive sidebar_position: 4 sidebar_label: Hive --- diff --git a/docs/en/engines/table-engines/integrations/index.md b/docs/en/engines/table-engines/integrations/index.md index 8c8728c7f17..7e67bcb6249 100644 --- a/docs/en/engines/table-engines/integrations/index.md +++ b/docs/en/engines/table-engines/integrations/index.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/ sidebar_position: 40 sidebar_label: Integrations --- diff --git a/docs/en/engines/table-engines/integrations/jdbc.md b/docs/en/engines/table-engines/integrations/jdbc.md index f9907d53672..2b2b30567aa 100644 --- a/docs/en/engines/table-engines/integrations/jdbc.md +++ b/docs/en/engines/table-engines/integrations/jdbc.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/jdbc sidebar_position: 3 sidebar_label: JDBC --- diff --git a/docs/en/engines/table-engines/integrations/kafka.md b/docs/en/engines/table-engines/integrations/kafka.md index 47a0e022841..88a0d08ebbd 100644 --- a/docs/en/engines/table-engines/integrations/kafka.md +++ b/docs/en/engines/table-engines/integrations/kafka.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/kafka sidebar_position: 8 sidebar_label: Kafka --- diff --git a/docs/en/engines/table-engines/integrations/materialized-postgresql.md b/docs/en/engines/table-engines/integrations/materialized-postgresql.md index d3b70419290..2413b9c97b8 100644 --- a/docs/en/engines/table-engines/integrations/materialized-postgresql.md +++ b/docs/en/engines/table-engines/integrations/materialized-postgresql.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/materialized-postgresql sidebar_position: 12 sidebar_label: MaterializedPostgreSQL --- diff --git a/docs/en/engines/table-engines/integrations/mongodb.md b/docs/en/engines/table-engines/integrations/mongodb.md index 664e4722bbb..da626614425 100644 --- a/docs/en/engines/table-engines/integrations/mongodb.md +++ b/docs/en/engines/table-engines/integrations/mongodb.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/mongodb sidebar_position: 5 sidebar_label: MongoDB --- diff --git a/docs/en/engines/table-engines/integrations/mysql.md b/docs/en/engines/table-engines/integrations/mysql.md index 5cd43d8a6ba..7c9c4cfea53 100644 --- a/docs/en/engines/table-engines/integrations/mysql.md +++ b/docs/en/engines/table-engines/integrations/mysql.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/mysql sidebar_position: 4 sidebar_label: MySQL --- diff --git a/docs/en/engines/table-engines/integrations/nats.md b/docs/en/engines/table-engines/integrations/nats.md index 7c975653f0e..90b30dc8295 100644 --- a/docs/en/engines/table-engines/integrations/nats.md +++ b/docs/en/engines/table-engines/integrations/nats.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/nats sidebar_position: 14 sidebar_label: NATS --- diff --git a/docs/en/engines/table-engines/integrations/odbc.md b/docs/en/engines/table-engines/integrations/odbc.md index e82edc92fe9..043d5170654 100644 --- a/docs/en/engines/table-engines/integrations/odbc.md +++ b/docs/en/engines/table-engines/integrations/odbc.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/odbc sidebar_position: 2 sidebar_label: ODBC --- diff --git a/docs/en/engines/table-engines/integrations/postgresql.md b/docs/en/engines/table-engines/integrations/postgresql.md index d029aef240f..4bb8033de9c 100644 --- a/docs/en/engines/table-engines/integrations/postgresql.md +++ b/docs/en/engines/table-engines/integrations/postgresql.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/postgresql sidebar_position: 11 sidebar_label: PostgreSQL --- diff --git a/docs/en/engines/table-engines/integrations/rabbitmq.md b/docs/en/engines/table-engines/integrations/rabbitmq.md index b2b672fb1ef..9227e5cdbfd 100644 --- a/docs/en/engines/table-engines/integrations/rabbitmq.md +++ b/docs/en/engines/table-engines/integrations/rabbitmq.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/rabbitmq sidebar_position: 10 sidebar_label: RabbitMQ --- diff --git a/docs/en/engines/table-engines/integrations/s3.md b/docs/en/engines/table-engines/integrations/s3.md index 23c6e5365c0..986a29b8307 100644 --- a/docs/en/engines/table-engines/integrations/s3.md +++ b/docs/en/engines/table-engines/integrations/s3.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/s3 sidebar_position: 7 sidebar_label: S3 --- diff --git a/docs/en/engines/table-engines/integrations/sqlite.md b/docs/en/engines/table-engines/integrations/sqlite.md index 2676f912350..241b32826f3 100644 --- a/docs/en/engines/table-engines/integrations/sqlite.md +++ b/docs/en/engines/table-engines/integrations/sqlite.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/integrations/sqlite sidebar_position: 7 sidebar_label: SQLite --- diff --git a/docs/en/engines/table-engines/log-family/index.md b/docs/en/engines/table-engines/log-family/index.md index 4ea2294554a..98bc4dbad04 100644 --- a/docs/en/engines/table-engines/log-family/index.md +++ b/docs/en/engines/table-engines/log-family/index.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/log-family/ sidebar_position: 20 sidebar_label: Log Family --- diff --git a/docs/en/engines/table-engines/log-family/log.md b/docs/en/engines/table-engines/log-family/log.md index d8cabfd25cd..2c1518f0127 100644 --- a/docs/en/engines/table-engines/log-family/log.md +++ b/docs/en/engines/table-engines/log-family/log.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/log-family/log toc_priority: 33 toc_title: Log --- diff --git a/docs/en/engines/table-engines/log-family/stripelog.md b/docs/en/engines/table-engines/log-family/stripelog.md index 759cbe532aa..b9dc0fe514b 100644 --- a/docs/en/engines/table-engines/log-family/stripelog.md +++ b/docs/en/engines/table-engines/log-family/stripelog.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/log-family/stripelog toc_priority: 32 toc_title: StripeLog --- diff --git a/docs/en/engines/table-engines/log-family/tinylog.md b/docs/en/engines/table-engines/log-family/tinylog.md index b23ec3e1d81..adc7553d869 100644 --- a/docs/en/engines/table-engines/log-family/tinylog.md +++ b/docs/en/engines/table-engines/log-family/tinylog.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/log-family/tinylog toc_priority: 34 toc_title: TinyLog --- diff --git a/docs/en/engines/table-engines/mergetree-family/aggregatingmergetree.md b/docs/en/engines/table-engines/mergetree-family/aggregatingmergetree.md index b2eea820139..ba518f51657 100644 --- a/docs/en/engines/table-engines/mergetree-family/aggregatingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/aggregatingmergetree.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/aggregatingmergetree sidebar_position: 60 sidebar_label: AggregatingMergeTree --- diff --git a/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md b/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md index 1b37e20d0da..5e38fa28195 100644 --- a/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/collapsingmergetree.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/collapsingmergetree sidebar_position: 70 sidebar_label: CollapsingMergeTree --- diff --git a/docs/en/engines/table-engines/mergetree-family/custom-partitioning-key.md b/docs/en/engines/table-engines/mergetree-family/custom-partitioning-key.md index 1191becbb25..17135a88d5b 100644 --- a/docs/en/engines/table-engines/mergetree-family/custom-partitioning-key.md +++ b/docs/en/engines/table-engines/mergetree-family/custom-partitioning-key.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/custom-partitioning-key sidebar_position: 30 sidebar_label: Custom Partitioning Key --- diff --git a/docs/en/engines/table-engines/mergetree-family/graphitemergetree.md b/docs/en/engines/table-engines/mergetree-family/graphitemergetree.md index 9062dd3c423..b07f4a29396 100644 --- a/docs/en/engines/table-engines/mergetree-family/graphitemergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/graphitemergetree.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/graphitemergetree sidebar_position: 90 sidebar_label: GraphiteMergeTree --- diff --git a/docs/en/engines/table-engines/mergetree-family/index.md b/docs/en/engines/table-engines/mergetree-family/index.md index 45a671da76a..90892c1d6c9 100644 --- a/docs/en/engines/table-engines/mergetree-family/index.md +++ b/docs/en/engines/table-engines/mergetree-family/index.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/ sidebar_position: 10 sidebar_label: MergeTree Family --- diff --git a/docs/en/engines/table-engines/mergetree-family/mergetree.md b/docs/en/engines/table-engines/mergetree-family/mergetree.md index 0b4341eae07..0ebe3c99f35 100644 --- a/docs/en/engines/table-engines/mergetree-family/mergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/mergetree.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/mergetree sidebar_position: 11 sidebar_label: MergeTree --- diff --git a/docs/en/engines/table-engines/mergetree-family/replacingmergetree.md b/docs/en/engines/table-engines/mergetree-family/replacingmergetree.md index fc94baa47e5..f5d81182898 100644 --- a/docs/en/engines/table-engines/mergetree-family/replacingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/replacingmergetree.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/replacingmergetree sidebar_position: 40 sidebar_label: ReplacingMergeTree --- diff --git a/docs/en/engines/table-engines/mergetree-family/replication.md b/docs/en/engines/table-engines/mergetree-family/replication.md index 0dfcdccb029..06faceab8ec 100644 --- a/docs/en/engines/table-engines/mergetree-family/replication.md +++ b/docs/en/engines/table-engines/mergetree-family/replication.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/replication sidebar_position: 20 sidebar_label: Data Replication --- diff --git a/docs/en/engines/table-engines/mergetree-family/summingmergetree.md b/docs/en/engines/table-engines/mergetree-family/summingmergetree.md index 7afa7cf028e..5a2c0718610 100644 --- a/docs/en/engines/table-engines/mergetree-family/summingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/summingmergetree.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/summingmergetree sidebar_position: 50 sidebar_label: SummingMergeTree --- diff --git a/docs/en/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md b/docs/en/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md index 5642602f4a1..ab149a7dc3d 100644 --- a/docs/en/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md +++ b/docs/en/engines/table-engines/mergetree-family/versionedcollapsingmergetree.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/mergetree-family/versionedcollapsingmergetree sidebar_position: 80 sidebar_label: VersionedCollapsingMergeTree --- diff --git a/docs/en/engines/table-engines/special/buffer.md b/docs/en/engines/table-engines/special/buffer.md index bcd7c390eb1..ba2381d3c01 100644 --- a/docs/en/engines/table-engines/special/buffer.md +++ b/docs/en/engines/table-engines/special/buffer.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/buffer sidebar_position: 120 sidebar_label: Buffer --- diff --git a/docs/en/engines/table-engines/special/dictionary.md b/docs/en/engines/table-engines/special/dictionary.md index d73d3c65fb0..e19fbeef141 100644 --- a/docs/en/engines/table-engines/special/dictionary.md +++ b/docs/en/engines/table-engines/special/dictionary.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/dictionary sidebar_position: 20 sidebar_label: Dictionary --- diff --git a/docs/en/engines/table-engines/special/distributed.md b/docs/en/engines/table-engines/special/distributed.md index d643d4b3c68..b4b0b35d976 100644 --- a/docs/en/engines/table-engines/special/distributed.md +++ b/docs/en/engines/table-engines/special/distributed.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/distributed sidebar_position: 10 sidebar_label: Distributed --- diff --git a/docs/en/engines/table-engines/special/external-data.md b/docs/en/engines/table-engines/special/external-data.md index 2aa90be617f..beb025629fe 100644 --- a/docs/en/engines/table-engines/special/external-data.md +++ b/docs/en/engines/table-engines/special/external-data.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/external-data sidebar_position: 130 sidebar_label: External Data --- diff --git a/docs/en/engines/table-engines/special/file.md b/docs/en/engines/table-engines/special/file.md index 7a53670bebd..00f4b8ec0a9 100644 --- a/docs/en/engines/table-engines/special/file.md +++ b/docs/en/engines/table-engines/special/file.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/file sidebar_position: 40 sidebar_label: File --- diff --git a/docs/en/engines/table-engines/special/generate.md b/docs/en/engines/table-engines/special/generate.md index a217c240b1c..0395952d822 100644 --- a/docs/en/engines/table-engines/special/generate.md +++ b/docs/en/engines/table-engines/special/generate.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/generate sidebar_position: 140 sidebar_label: GenerateRandom --- diff --git a/docs/en/engines/table-engines/special/index.md b/docs/en/engines/table-engines/special/index.md index be5ec79caf2..2247aeae5af 100644 --- a/docs/en/engines/table-engines/special/index.md +++ b/docs/en/engines/table-engines/special/index.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/ sidebar_position: 50 sidebar_label: Special --- diff --git a/docs/en/engines/table-engines/special/join.md b/docs/en/engines/table-engines/special/join.md index 4e628b8b9b0..161896e5550 100644 --- a/docs/en/engines/table-engines/special/join.md +++ b/docs/en/engines/table-engines/special/join.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/join sidebar_position: 70 sidebar_label: Join --- diff --git a/docs/en/engines/table-engines/special/materializedview.md b/docs/en/engines/table-engines/special/materializedview.md index 8c77a9ce087..7b06560ec98 100644 --- a/docs/en/engines/table-engines/special/materializedview.md +++ b/docs/en/engines/table-engines/special/materializedview.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/materializedview sidebar_position: 100 sidebar_label: MaterializedView --- diff --git a/docs/en/engines/table-engines/special/memory.md b/docs/en/engines/table-engines/special/memory.md index 1f822d2f96d..b56dab3e369 100644 --- a/docs/en/engines/table-engines/special/memory.md +++ b/docs/en/engines/table-engines/special/memory.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/memory sidebar_position: 110 sidebar_label: Memory --- diff --git a/docs/en/engines/table-engines/special/merge.md b/docs/en/engines/table-engines/special/merge.md index d32547a300c..57762c21d7b 100644 --- a/docs/en/engines/table-engines/special/merge.md +++ b/docs/en/engines/table-engines/special/merge.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/merge sidebar_position: 30 sidebar_label: Merge --- diff --git a/docs/en/engines/table-engines/special/null.md b/docs/en/engines/table-engines/special/null.md index ca02d8e300b..8d3cce07e33 100644 --- a/docs/en/engines/table-engines/special/null.md +++ b/docs/en/engines/table-engines/special/null.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/null sidebar_position: 50 sidebar_label: 'Null' --- diff --git a/docs/en/engines/table-engines/special/set.md b/docs/en/engines/table-engines/special/set.md index f7114f04cea..3a3e7c4d5de 100644 --- a/docs/en/engines/table-engines/special/set.md +++ b/docs/en/engines/table-engines/special/set.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/set sidebar_position: 60 sidebar_label: Set --- diff --git a/docs/en/engines/table-engines/special/url.md b/docs/en/engines/table-engines/special/url.md index cd82d404960..e3cd7aa1dde 100644 --- a/docs/en/engines/table-engines/special/url.md +++ b/docs/en/engines/table-engines/special/url.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/url sidebar_position: 80 sidebar_label: URL --- diff --git a/docs/en/engines/table-engines/special/view.md b/docs/en/engines/table-engines/special/view.md index 5e646cf2fd3..3dd57651da9 100644 --- a/docs/en/engines/table-engines/special/view.md +++ b/docs/en/engines/table-engines/special/view.md @@ -1,4 +1,5 @@ --- +slug: /en/engines/table-engines/special/view sidebar_position: 90 sidebar_label: View --- diff --git a/docs/en/getting-started/example-datasets/amplab-benchmark.md b/docs/en/getting-started/example-datasets/amplab-benchmark.md index e50c71009bd..df8495bad9e 100644 --- a/docs/en/getting-started/example-datasets/amplab-benchmark.md +++ b/docs/en/getting-started/example-datasets/amplab-benchmark.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/amplab-benchmark sidebar_label: AMPLab Big Data Benchmark description: A benchmark dataset used for comparing the performance of data warehousing solutions. --- diff --git a/docs/en/getting-started/example-datasets/brown-benchmark.md b/docs/en/getting-started/example-datasets/brown-benchmark.md index cd4f5ae4a6b..7a0b2cd97ce 100644 --- a/docs/en/getting-started/example-datasets/brown-benchmark.md +++ b/docs/en/getting-started/example-datasets/brown-benchmark.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/brown-benchmark sidebar_label: Brown University Benchmark description: A new analytical benchmark for machine-generated log data --- diff --git a/docs/en/getting-started/example-datasets/cell-towers.md b/docs/en/getting-started/example-datasets/cell-towers.md index 8da7761eea4..2d90845127a 100644 --- a/docs/en/getting-started/example-datasets/cell-towers.md +++ b/docs/en/getting-started/example-datasets/cell-towers.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/cell-towers sidebar_label: Cell Towers --- diff --git a/docs/en/getting-started/example-datasets/criteo.md b/docs/en/getting-started/example-datasets/criteo.md index 2d1c700d15c..ab99333390e 100644 --- a/docs/en/getting-started/example-datasets/criteo.md +++ b/docs/en/getting-started/example-datasets/criteo.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/criteo sidebar_label: Terabyte Click Logs from Criteo --- diff --git a/docs/en/getting-started/example-datasets/github-events.md b/docs/en/getting-started/example-datasets/github-events.md index 3a0cbc3324d..27449b4c4ea 100644 --- a/docs/en/getting-started/example-datasets/github-events.md +++ b/docs/en/getting-started/example-datasets/github-events.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/github-events sidebar_label: GitHub Events --- diff --git a/docs/en/getting-started/example-datasets/menus.md b/docs/en/getting-started/example-datasets/menus.md index fd20c75f707..72ac17e5128 100644 --- a/docs/en/getting-started/example-datasets/menus.md +++ b/docs/en/getting-started/example-datasets/menus.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/menus sidebar_label: New York Public Library "What's on the Menu?" Dataset --- diff --git a/docs/en/getting-started/example-datasets/metrica.md b/docs/en/getting-started/example-datasets/metrica.md index 300bbe58d3f..e966f6c20d6 100644 --- a/docs/en/getting-started/example-datasets/metrica.md +++ b/docs/en/getting-started/example-datasets/metrica.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/metrica sidebar_label: Web Analytics Data description: Dataset consisting of two tables containing anonymized web analytics data with hits and visits --- diff --git a/docs/en/getting-started/example-datasets/nyc-taxi.md b/docs/en/getting-started/example-datasets/nyc-taxi.md index 360f9eed1c8..11621cfa5f5 100644 --- a/docs/en/getting-started/example-datasets/nyc-taxi.md +++ b/docs/en/getting-started/example-datasets/nyc-taxi.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/nyc-taxi sidebar_label: New York Taxi Data sidebar_position: 2 description: Data for billions of taxi and for-hire vehicle (Uber, Lyft, etc.) trips originating in New York City since 2009 diff --git a/docs/en/getting-started/example-datasets/ontime.md b/docs/en/getting-started/example-datasets/ontime.md index a3af800f038..98469c045b4 100644 --- a/docs/en/getting-started/example-datasets/ontime.md +++ b/docs/en/getting-started/example-datasets/ontime.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/ontime sidebar_label: OnTime Airline Flight Data description: Dataset containing the on-time performance of airline flights --- diff --git a/docs/en/getting-started/example-datasets/opensky.md b/docs/en/getting-started/example-datasets/opensky.md index b38021c34eb..c37e13e381a 100644 --- a/docs/en/getting-started/example-datasets/opensky.md +++ b/docs/en/getting-started/example-datasets/opensky.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/opensky sidebar_label: Air Traffic Data description: The data in this dataset is derived and cleaned from the full OpenSky dataset to illustrate the development of air traffic during the COVID-19 pandemic. --- diff --git a/docs/en/getting-started/example-datasets/recipes.md b/docs/en/getting-started/example-datasets/recipes.md index 37a6eeebea5..0945c97f9ea 100644 --- a/docs/en/getting-started/example-datasets/recipes.md +++ b/docs/en/getting-started/example-datasets/recipes.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/recipes sidebar_label: Recipes Dataset --- diff --git a/docs/en/getting-started/example-datasets/star-schema.md b/docs/en/getting-started/example-datasets/star-schema.md index 4756aedd08c..b3ff9b8c58f 100644 --- a/docs/en/getting-started/example-datasets/star-schema.md +++ b/docs/en/getting-started/example-datasets/star-schema.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/star-schema sidebar_label: Star Schema Benchmark description: "Dataset based on the TPC-H dbgen source. The coding style and architecture follows the TPCH dbgen." diff --git a/docs/en/getting-started/example-datasets/uk-price-paid.md b/docs/en/getting-started/example-datasets/uk-price-paid.md index 04e853275ed..27546120fef 100644 --- a/docs/en/getting-started/example-datasets/uk-price-paid.md +++ b/docs/en/getting-started/example-datasets/uk-price-paid.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/uk-price-paid sidebar_label: UK Property Price Paid sidebar_position: 1 --- diff --git a/docs/en/getting-started/example-datasets/wikistat.md b/docs/en/getting-started/example-datasets/wikistat.md index 1185338a1da..36feb21cd3b 100644 --- a/docs/en/getting-started/example-datasets/wikistat.md +++ b/docs/en/getting-started/example-datasets/wikistat.md @@ -1,4 +1,5 @@ --- +slug: /en/getting-started/example-datasets/wikistat sidebar_label: WikiStat --- diff --git a/docs/en/interfaces/cli.md b/docs/en/interfaces/cli.md index 4fbeb5088ee..1f45d1fa411 100644 --- a/docs/en/interfaces/cli.md +++ b/docs/en/interfaces/cli.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/cli sidebar_position: 17 sidebar_label: Command-Line Client --- diff --git a/docs/en/interfaces/cpp.md b/docs/en/interfaces/cpp.md index 364d77c21a4..850fdcceaa5 100644 --- a/docs/en/interfaces/cpp.md +++ b/docs/en/interfaces/cpp.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/cpp sidebar_position: 24 sidebar_label: C++ Client Library --- diff --git a/docs/en/interfaces/formats.md b/docs/en/interfaces/formats.md index 10a311d3aec..640c49377d0 100644 --- a/docs/en/interfaces/formats.md +++ b/docs/en/interfaces/formats.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/formats sidebar_position: 21 sidebar_label: Input and Output Formats --- diff --git a/docs/en/interfaces/grpc.md b/docs/en/interfaces/grpc.md index d5590d1cfb1..5ac2f5d5a60 100644 --- a/docs/en/interfaces/grpc.md +++ b/docs/en/interfaces/grpc.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/grpc sidebar_position: 19 sidebar_label: gRPC Interface --- diff --git a/docs/en/interfaces/http.md b/docs/en/interfaces/http.md index b1de6c2a105..036fcde6d7a 100644 --- a/docs/en/interfaces/http.md +++ b/docs/en/interfaces/http.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/http sidebar_position: 19 sidebar_label: HTTP Interface --- diff --git a/docs/en/interfaces/jdbc.md b/docs/en/interfaces/jdbc.md index c508b540eaf..339c55e0848 100644 --- a/docs/en/interfaces/jdbc.md +++ b/docs/en/interfaces/jdbc.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/jdbc sidebar_position: 22 sidebar_label: JDBC Driver --- diff --git a/docs/en/interfaces/mysql.md b/docs/en/interfaces/mysql.md index fbaa49a66aa..9eb34a2bf17 100644 --- a/docs/en/interfaces/mysql.md +++ b/docs/en/interfaces/mysql.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/mysql sidebar_position: 20 sidebar_label: MySQL Interface --- diff --git a/docs/en/interfaces/odbc.md b/docs/en/interfaces/odbc.md index 48410fcdbad..3f311ea3f35 100644 --- a/docs/en/interfaces/odbc.md +++ b/docs/en/interfaces/odbc.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/odbc sidebar_position: 23 sidebar_label: ODBC Driver --- diff --git a/docs/en/interfaces/overview.md b/docs/en/interfaces/overview.md index 0c7378bf075..1982f793a6d 100644 --- a/docs/en/interfaces/overview.md +++ b/docs/en/interfaces/overview.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/overview sidebar_label: Overview sidebar_position: 1 keywords: [clickhouse, network, interfaces, http, tcp, grpc, command-line, client, jdbc, odbc, driver] diff --git a/docs/en/interfaces/postgresql.md b/docs/en/interfaces/postgresql.md index d62b1e7dfee..9ff83559787 100644 --- a/docs/en/interfaces/postgresql.md +++ b/docs/en/interfaces/postgresql.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/postgresql sidebar_position: 20 sidebar_label: PostgreSQL Interface --- diff --git a/docs/en/interfaces/tcp.md b/docs/en/interfaces/tcp.md index 16189f11a12..614dc587b52 100644 --- a/docs/en/interfaces/tcp.md +++ b/docs/en/interfaces/tcp.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/tcp sidebar_position: 18 sidebar_label: Native Interface (TCP) --- diff --git a/docs/en/interfaces/third-party/client-libraries.md b/docs/en/interfaces/third-party/client-libraries.md index f585824f8cc..e085566aa7e 100644 --- a/docs/en/interfaces/third-party/client-libraries.md +++ b/docs/en/interfaces/third-party/client-libraries.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/third-party/client-libraries sidebar_position: 26 sidebar_label: Client Libraries --- diff --git a/docs/en/interfaces/third-party/gui.md b/docs/en/interfaces/third-party/gui.md index e6dd2a90ed0..dd1c278d7e6 100644 --- a/docs/en/interfaces/third-party/gui.md +++ b/docs/en/interfaces/third-party/gui.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/third-party/gui sidebar_position: 28 sidebar_label: Visual Interfaces --- diff --git a/docs/en/interfaces/third-party/index.md b/docs/en/interfaces/third-party/index.md index f2d2f39f7f8..ad5ed0650a5 100644 --- a/docs/en/interfaces/third-party/index.md +++ b/docs/en/interfaces/third-party/index.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/third-party/ toc_folder_title: Third-Party sidebar_position: 24 --- diff --git a/docs/en/interfaces/third-party/integrations.md b/docs/en/interfaces/third-party/integrations.md index 6708cd103bc..de496546cb4 100644 --- a/docs/en/interfaces/third-party/integrations.md +++ b/docs/en/interfaces/third-party/integrations.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/third-party/integrations sidebar_position: 27 sidebar_label: Integrations --- diff --git a/docs/en/interfaces/third-party/proxy.md b/docs/en/interfaces/third-party/proxy.md index 2e395355c7d..0919d8dcb42 100644 --- a/docs/en/interfaces/third-party/proxy.md +++ b/docs/en/interfaces/third-party/proxy.md @@ -1,4 +1,5 @@ --- +slug: /en/interfaces/third-party/proxy sidebar_position: 29 sidebar_label: Proxies --- diff --git a/docs/en/operations/access-rights.md b/docs/en/operations/access-rights.md index a431f10fbad..1919aa49ab9 100644 --- a/docs/en/operations/access-rights.md +++ b/docs/en/operations/access-rights.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/access-rights sidebar_position: 48 sidebar_label: Access Control and Account Management title: Access Control and Account Management diff --git a/docs/en/operations/backup.md b/docs/en/operations/backup.md index 76f63db9c2e..4cf205a88fa 100644 --- a/docs/en/operations/backup.md +++ b/docs/en/operations/backup.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/backup sidebar_position: 49 sidebar_label: Data Backup --- diff --git a/docs/en/operations/caches.md b/docs/en/operations/caches.md index f2eb1e3ce5c..57aa8691651 100644 --- a/docs/en/operations/caches.md +++ b/docs/en/operations/caches.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/caches sidebar_position: 65 sidebar_label: Caches --- diff --git a/docs/en/operations/clickhouse-keeper.md b/docs/en/operations/clickhouse-keeper.md index 0950568cc82..8bf64bca28f 100644 --- a/docs/en/operations/clickhouse-keeper.md +++ b/docs/en/operations/clickhouse-keeper.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/clickhouse-keeper sidebar_position: 66 sidebar_label: ClickHouse Keeper --- diff --git a/docs/en/operations/configuration-files.md b/docs/en/operations/configuration-files.md index b3e3ece74b0..439881a2f3e 100644 --- a/docs/en/operations/configuration-files.md +++ b/docs/en/operations/configuration-files.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/configuration-files sidebar_position: 50 sidebar_label: Configuration Files --- diff --git a/docs/en/operations/external-authenticators/index.md b/docs/en/operations/external-authenticators/index.md index d358267c4f0..7759701e5cb 100644 --- a/docs/en/operations/external-authenticators/index.md +++ b/docs/en/operations/external-authenticators/index.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/external-authenticators/ sidebar_position: 48 sidebar_label: External User Authenticators and Directories --- diff --git a/docs/en/operations/monitoring.md b/docs/en/operations/monitoring.md index 8a5358b146c..8c08080e331 100644 --- a/docs/en/operations/monitoring.md +++ b/docs/en/operations/monitoring.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/monitoring sidebar_position: 45 sidebar_label: Monitoring --- diff --git a/docs/en/operations/named-collections.md b/docs/en/operations/named-collections.md index 3dace93fa4b..f605045a0ad 100644 --- a/docs/en/operations/named-collections.md +++ b/docs/en/operations/named-collections.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/named-collections sidebar_position: 69 sidebar_label: "Named collections" --- diff --git a/docs/en/operations/opentelemetry.md b/docs/en/operations/opentelemetry.md index 740537d88bc..e51fad01ce2 100644 --- a/docs/en/operations/opentelemetry.md +++ b/docs/en/operations/opentelemetry.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/opentelemetry sidebar_position: 62 sidebar_label: OpenTelemetry Support --- diff --git a/docs/en/operations/optimizing-performance/index.md b/docs/en/operations/optimizing-performance/index.md index cde1ca9614b..e25f3b4adb7 100644 --- a/docs/en/operations/optimizing-performance/index.md +++ b/docs/en/operations/optimizing-performance/index.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/optimizing-performance/ sidebar_label: Optimizing Performance sidebar_position: 52 --- diff --git a/docs/en/operations/optimizing-performance/sampling-query-profiler.md b/docs/en/operations/optimizing-performance/sampling-query-profiler.md index 83bab2a3204..0178d5bcfa9 100644 --- a/docs/en/operations/optimizing-performance/sampling-query-profiler.md +++ b/docs/en/operations/optimizing-performance/sampling-query-profiler.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/optimizing-performance/sampling-query-profiler sidebar_position: 54 sidebar_label: Query Profiling --- diff --git a/docs/en/operations/performance-test.md b/docs/en/operations/performance-test.md index 09c5f5b023e..53fc07c4da0 100644 --- a/docs/en/operations/performance-test.md +++ b/docs/en/operations/performance-test.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/performance-test sidebar_position: 54 sidebar_label: Testing Hardware --- diff --git a/docs/en/operations/quotas.md b/docs/en/operations/quotas.md index 2aa1c09386d..f35bf44fcd0 100644 --- a/docs/en/operations/quotas.md +++ b/docs/en/operations/quotas.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/quotas sidebar_position: 51 sidebar_label: Quotas --- diff --git a/docs/en/operations/requirements.md b/docs/en/operations/requirements.md index 753b4ee2b94..dc05a7b4896 100644 --- a/docs/en/operations/requirements.md +++ b/docs/en/operations/requirements.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/requirements sidebar_position: 44 sidebar_label: Requirements --- diff --git a/docs/en/operations/server-configuration-parameters/index.md b/docs/en/operations/server-configuration-parameters/index.md index 1e4ddc6368e..0a6b1953a62 100644 --- a/docs/en/operations/server-configuration-parameters/index.md +++ b/docs/en/operations/server-configuration-parameters/index.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/server-configuration-parameters/ sidebar_position: 54 sidebar_label: Server Configuration Parameters --- diff --git a/docs/en/operations/server-configuration-parameters/settings.md b/docs/en/operations/server-configuration-parameters/settings.md index 9cefd9a9fed..24e08fe1fcd 100644 --- a/docs/en/operations/server-configuration-parameters/settings.md +++ b/docs/en/operations/server-configuration-parameters/settings.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/server-configuration-parameters/settings sidebar_position: 57 sidebar_label: Server Settings --- diff --git a/docs/en/operations/settings/constraints-on-settings.md b/docs/en/operations/settings/constraints-on-settings.md index d240fde8ff3..4bef197b6cb 100644 --- a/docs/en/operations/settings/constraints-on-settings.md +++ b/docs/en/operations/settings/constraints-on-settings.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/settings/constraints-on-settings sidebar_position: 62 sidebar_label: Constraints on Settings --- diff --git a/docs/en/operations/settings/permissions-for-queries.md b/docs/en/operations/settings/permissions-for-queries.md index 668cb9993eb..c183b159423 100644 --- a/docs/en/operations/settings/permissions-for-queries.md +++ b/docs/en/operations/settings/permissions-for-queries.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/settings/permissions-for-queries sidebar_position: 58 sidebar_label: Permissions for Queries --- diff --git a/docs/en/operations/settings/query-complexity.md b/docs/en/operations/settings/query-complexity.md index 342c8002572..597d524dd3f 100644 --- a/docs/en/operations/settings/query-complexity.md +++ b/docs/en/operations/settings/query-complexity.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/settings/query-complexity sidebar_position: 59 sidebar_label: Restrictions on Query Complexity --- diff --git a/docs/en/operations/settings/settings-profiles.md b/docs/en/operations/settings/settings-profiles.md index ea6c88a0f86..140c2bcb983 100644 --- a/docs/en/operations/settings/settings-profiles.md +++ b/docs/en/operations/settings/settings-profiles.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/settings/settings-profiles sidebar_position: 61 sidebar_label: Settings Profiles --- diff --git a/docs/en/operations/settings/settings-users.md b/docs/en/operations/settings/settings-users.md index 101ad46e55a..753eef1fb42 100644 --- a/docs/en/operations/settings/settings-users.md +++ b/docs/en/operations/settings/settings-users.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/settings/settings-users sidebar_position: 63 sidebar_label: User Settings --- diff --git a/docs/en/operations/ssl-zookeeper.md b/docs/en/operations/ssl-zookeeper.md index 79c65853d34..a38e9f81b41 100644 --- a/docs/en/operations/ssl-zookeeper.md +++ b/docs/en/operations/ssl-zookeeper.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/ssl-zookeeper sidebar_position: 45 sidebar_label: Secured Communication with Zookeeper --- diff --git a/docs/en/operations/storing-data.md b/docs/en/operations/storing-data.md index ac8abbbed28..fb30d36b1dc 100644 --- a/docs/en/operations/storing-data.md +++ b/docs/en/operations/storing-data.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/storing-data sidebar_position: 68 sidebar_label: External Disks for Storing Data --- diff --git a/docs/en/operations/system-tables/index.md b/docs/en/operations/system-tables/index.md index e33c7bde1e5..e08a727a62a 100644 --- a/docs/en/operations/system-tables/index.md +++ b/docs/en/operations/system-tables/index.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/system-tables/ sidebar_position: 52 sidebar_label: System Tables --- diff --git a/docs/en/operations/tips.md b/docs/en/operations/tips.md index 5325311a9e6..c2ea0ae4f16 100644 --- a/docs/en/operations/tips.md +++ b/docs/en/operations/tips.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/tips sidebar_position: 58 sidebar_label: Usage Recommendations --- diff --git a/docs/en/operations/troubleshooting.md b/docs/en/operations/troubleshooting.md index 510024eb468..5a61359a2c0 100644 --- a/docs/en/operations/troubleshooting.md +++ b/docs/en/operations/troubleshooting.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/troubleshooting sidebar_position: 46 sidebar_label: Troubleshooting --- diff --git a/docs/en/operations/update.md b/docs/en/operations/update.md index 95e9bed675b..24f7efecc7b 100644 --- a/docs/en/operations/update.md +++ b/docs/en/operations/update.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/update sidebar_position: 47 sidebar_label: ClickHouse Upgrade --- diff --git a/docs/en/operations/utilities/clickhouse-benchmark.md b/docs/en/operations/utilities/clickhouse-benchmark.md index 3a52ec92dc3..1a250ea5481 100644 --- a/docs/en/operations/utilities/clickhouse-benchmark.md +++ b/docs/en/operations/utilities/clickhouse-benchmark.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/utilities/clickhouse-benchmark sidebar_position: 61 sidebar_label: clickhouse-benchmark --- diff --git a/docs/en/operations/utilities/clickhouse-copier.md b/docs/en/operations/utilities/clickhouse-copier.md index f3806d1afbc..c6236a7f5fb 100644 --- a/docs/en/operations/utilities/clickhouse-copier.md +++ b/docs/en/operations/utilities/clickhouse-copier.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/utilities/clickhouse-copier sidebar_position: 59 sidebar_label: clickhouse-copier --- diff --git a/docs/en/operations/utilities/clickhouse-local.md b/docs/en/operations/utilities/clickhouse-local.md index a22b8ae0750..cb1b8b9a8e6 100644 --- a/docs/en/operations/utilities/clickhouse-local.md +++ b/docs/en/operations/utilities/clickhouse-local.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/utilities/clickhouse-local sidebar_position: 60 sidebar_label: clickhouse-local --- diff --git a/docs/en/operations/utilities/index.md b/docs/en/operations/utilities/index.md index 7fdc783f9c4..df4af30768c 100644 --- a/docs/en/operations/utilities/index.md +++ b/docs/en/operations/utilities/index.md @@ -1,4 +1,5 @@ --- +slug: /en/operations/utilities/ sidebar_position: 56 sidebar_label: Utilities --- diff --git a/docs/en/sql-reference/aggregate-functions/combinators.md b/docs/en/sql-reference/aggregate-functions/combinators.md index d89dad1b94d..9fa3f7d7803 100644 --- a/docs/en/sql-reference/aggregate-functions/combinators.md +++ b/docs/en/sql-reference/aggregate-functions/combinators.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/combinators sidebar_position: 37 sidebar_label: Combinators --- diff --git a/docs/en/sql-reference/aggregate-functions/grouping_function.md b/docs/en/sql-reference/aggregate-functions/grouping_function.md index 017a02ec584..d17279eca66 100644 --- a/docs/en/sql-reference/aggregate-functions/grouping_function.md +++ b/docs/en/sql-reference/aggregate-functions/grouping_function.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/grouping_function --- # GROUPING diff --git a/docs/en/sql-reference/aggregate-functions/index.md b/docs/en/sql-reference/aggregate-functions/index.md index 2a13e9a0bae..3d6475979b7 100644 --- a/docs/en/sql-reference/aggregate-functions/index.md +++ b/docs/en/sql-reference/aggregate-functions/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/ sidebar_label: Aggregate Functions sidebar_position: 33 --- diff --git a/docs/en/sql-reference/aggregate-functions/parametric-functions.md b/docs/en/sql-reference/aggregate-functions/parametric-functions.md index 112f94e9261..40184c0aa02 100644 --- a/docs/en/sql-reference/aggregate-functions/parametric-functions.md +++ b/docs/en/sql-reference/aggregate-functions/parametric-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/parametric-functions sidebar_position: 38 sidebar_label: Parametric --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/any.md b/docs/en/sql-reference/aggregate-functions/reference/any.md index c0af7a2a59e..db19f524b31 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/any.md +++ b/docs/en/sql-reference/aggregate-functions/reference/any.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/any sidebar_position: 6 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/anyheavy.md b/docs/en/sql-reference/aggregate-functions/reference/anyheavy.md index ab19b145ddc..4288b66bb2c 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/anyheavy.md +++ b/docs/en/sql-reference/aggregate-functions/reference/anyheavy.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/anyheavy sidebar_position: 103 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/anylast.md b/docs/en/sql-reference/aggregate-functions/reference/anylast.md index 44697359405..351c9fd8e2f 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/anylast.md +++ b/docs/en/sql-reference/aggregate-functions/reference/anylast.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/anylast sidebar_position: 104 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/argmax.md b/docs/en/sql-reference/aggregate-functions/reference/argmax.md index 42da27e320f..7b99c831010 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/argmax.md +++ b/docs/en/sql-reference/aggregate-functions/reference/argmax.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/argmax sidebar_position: 106 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/argmin.md b/docs/en/sql-reference/aggregate-functions/reference/argmin.md index 2d3ad337d3e..945dda5e46d 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/argmin.md +++ b/docs/en/sql-reference/aggregate-functions/reference/argmin.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/argmin sidebar_position: 105 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/avg.md b/docs/en/sql-reference/aggregate-functions/reference/avg.md index 63702d56111..f935f4548ed 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avg.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avg.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/avg sidebar_position: 5 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md index dbcfd3e3071..00dffdc33d2 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/avgweighted.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/avgweighted sidebar_position: 107 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/categoricalinformationvalue.md b/docs/en/sql-reference/aggregate-functions/reference/categoricalinformationvalue.md index e497d72b519..7adacd330c9 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/categoricalinformationvalue.md +++ b/docs/en/sql-reference/aggregate-functions/reference/categoricalinformationvalue.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/categoricalinformationvalue sidebar_position: 250 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/corr.md b/docs/en/sql-reference/aggregate-functions/reference/corr.md index df491968309..8fa493c9630 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/corr.md +++ b/docs/en/sql-reference/aggregate-functions/reference/corr.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/corr sidebar_position: 107 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/count.md b/docs/en/sql-reference/aggregate-functions/reference/count.md index 1d6080f683d..356f731ff16 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/count.md +++ b/docs/en/sql-reference/aggregate-functions/reference/count.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/count sidebar_position: 1 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/covarpop.md b/docs/en/sql-reference/aggregate-functions/reference/covarpop.md index 7858d53bbbd..579035b2fe1 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/covarpop.md +++ b/docs/en/sql-reference/aggregate-functions/reference/covarpop.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/covarpop sidebar_position: 36 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/covarsamp.md b/docs/en/sql-reference/aggregate-functions/reference/covarsamp.md index fb25aaa9602..4d29e6f1272 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/covarsamp.md +++ b/docs/en/sql-reference/aggregate-functions/reference/covarsamp.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/covarsamp sidebar_position: 37 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/deltasum.md b/docs/en/sql-reference/aggregate-functions/reference/deltasum.md index d1318c6d830..d5d9e9369a4 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/deltasum.md +++ b/docs/en/sql-reference/aggregate-functions/reference/deltasum.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/deltasum sidebar_position: 141 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/deltasumtimestamp.md b/docs/en/sql-reference/aggregate-functions/reference/deltasumtimestamp.md index f8283178c6e..6c62ee6b63f 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/deltasumtimestamp.md +++ b/docs/en/sql-reference/aggregate-functions/reference/deltasumtimestamp.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/deltasumtimestamp sidebar_position: 141 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/entropy.md b/docs/en/sql-reference/aggregate-functions/reference/entropy.md index b563dbb1b79..d86f4f4197a 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/entropy.md +++ b/docs/en/sql-reference/aggregate-functions/reference/entropy.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/entropy sidebar_position: 302 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/exponentialmovingaverage.md b/docs/en/sql-reference/aggregate-functions/reference/exponentialmovingaverage.md index 7db8f2b6ef2..7b1709e6d5c 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/exponentialmovingaverage.md +++ b/docs/en/sql-reference/aggregate-functions/reference/exponentialmovingaverage.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/exponentialmovingaverage sidebar_position: 108 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/grouparray.md b/docs/en/sql-reference/aggregate-functions/reference/grouparray.md index f1d9e60f778..18048fa4f71 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/grouparray.md +++ b/docs/en/sql-reference/aggregate-functions/reference/grouparray.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/grouparray sidebar_position: 110 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/grouparrayinsertat.md b/docs/en/sql-reference/aggregate-functions/reference/grouparrayinsertat.md index b5b3656860d..aafa643a972 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/grouparrayinsertat.md +++ b/docs/en/sql-reference/aggregate-functions/reference/grouparrayinsertat.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/grouparrayinsertat sidebar_position: 112 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingavg.md b/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingavg.md index 5c58c314577..8fa1939e7d3 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingavg.md +++ b/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingavg.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/grouparraymovingavg sidebar_position: 114 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingsum.md b/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingsum.md index 93dc4e5da47..a51857418c6 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingsum.md +++ b/docs/en/sql-reference/aggregate-functions/reference/grouparraymovingsum.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/grouparraymovingsum sidebar_position: 113 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/grouparraysample.md b/docs/en/sql-reference/aggregate-functions/reference/grouparraysample.md index ca54d49d827..26c41c6636b 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/grouparraysample.md +++ b/docs/en/sql-reference/aggregate-functions/reference/grouparraysample.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/grouparraysample sidebar_position: 114 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/groupbitand.md b/docs/en/sql-reference/aggregate-functions/reference/groupbitand.md index f3b89d530af..f89e3796aaa 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/groupbitand.md +++ b/docs/en/sql-reference/aggregate-functions/reference/groupbitand.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/groupbitand sidebar_position: 125 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/groupbitmap.md b/docs/en/sql-reference/aggregate-functions/reference/groupbitmap.md index 39373c59aba..02b9e0e8821 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/groupbitmap.md +++ b/docs/en/sql-reference/aggregate-functions/reference/groupbitmap.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/groupbitmap sidebar_position: 128 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/groupbitmapand.md b/docs/en/sql-reference/aggregate-functions/reference/groupbitmapand.md index 377b81c4ebf..0d59e62f554 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/groupbitmapand.md +++ b/docs/en/sql-reference/aggregate-functions/reference/groupbitmapand.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/groupbitmapand sidebar_position: 129 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/groupbitmapor.md b/docs/en/sql-reference/aggregate-functions/reference/groupbitmapor.md index 7e3973a00f0..c1eb101a022 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/groupbitmapor.md +++ b/docs/en/sql-reference/aggregate-functions/reference/groupbitmapor.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/groupbitmapor sidebar_position: 130 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/groupbitmapxor.md b/docs/en/sql-reference/aggregate-functions/reference/groupbitmapxor.md index 13548665c98..4e9f761fa10 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/groupbitmapxor.md +++ b/docs/en/sql-reference/aggregate-functions/reference/groupbitmapxor.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/groupbitmapxor sidebar_position: 131 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/groupbitor.md b/docs/en/sql-reference/aggregate-functions/reference/groupbitor.md index fc3569b3e98..75b34d9c5a3 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/groupbitor.md +++ b/docs/en/sql-reference/aggregate-functions/reference/groupbitor.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/groupbitor sidebar_position: 126 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/groupbitxor.md b/docs/en/sql-reference/aggregate-functions/reference/groupbitxor.md index 70f080827cc..ca6fb9f8352 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/groupbitxor.md +++ b/docs/en/sql-reference/aggregate-functions/reference/groupbitxor.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/groupbitxor sidebar_position: 127 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/groupuniqarray.md b/docs/en/sql-reference/aggregate-functions/reference/groupuniqarray.md index 65edbbdf3e9..fe5f714c307 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/groupuniqarray.md +++ b/docs/en/sql-reference/aggregate-functions/reference/groupuniqarray.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/groupuniqarray sidebar_position: 111 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/index.md b/docs/en/sql-reference/aggregate-functions/reference/index.md index 4854a19f475..ee17c37100c 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/index.md +++ b/docs/en/sql-reference/aggregate-functions/reference/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/ toc_folder_title: Reference sidebar_position: 36 toc_hidden: true diff --git a/docs/en/sql-reference/aggregate-functions/reference/intervalLengthSum.md b/docs/en/sql-reference/aggregate-functions/reference/intervalLengthSum.md index 54469f3b56d..444ec0aec97 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/intervalLengthSum.md +++ b/docs/en/sql-reference/aggregate-functions/reference/intervalLengthSum.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/intervalLengthSum sidebar_position: 146 sidebar_label: intervalLengthSum --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/kurtpop.md b/docs/en/sql-reference/aggregate-functions/reference/kurtpop.md index c21e780991c..e1a29973fcf 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/kurtpop.md +++ b/docs/en/sql-reference/aggregate-functions/reference/kurtpop.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/kurtpop sidebar_position: 153 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/kurtsamp.md b/docs/en/sql-reference/aggregate-functions/reference/kurtsamp.md index 601eebd6d9c..911c2bfbe74 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/kurtsamp.md +++ b/docs/en/sql-reference/aggregate-functions/reference/kurtsamp.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/kurtsamp sidebar_position: 154 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/mannwhitneyutest.md b/docs/en/sql-reference/aggregate-functions/reference/mannwhitneyutest.md index a9661fea8f9..452cf413857 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/mannwhitneyutest.md +++ b/docs/en/sql-reference/aggregate-functions/reference/mannwhitneyutest.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/mannwhitneyutest sidebar_position: 310 sidebar_label: mannWhitneyUTest --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/max.md b/docs/en/sql-reference/aggregate-functions/reference/max.md index 481e8a4a21b..9957091f159 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/max.md +++ b/docs/en/sql-reference/aggregate-functions/reference/max.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/max sidebar_position: 3 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/maxmap.md b/docs/en/sql-reference/aggregate-functions/reference/maxmap.md index 6f53d9f0ae0..ebb9d054476 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/maxmap.md +++ b/docs/en/sql-reference/aggregate-functions/reference/maxmap.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/maxmap sidebar_position: 143 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/meanztest.md b/docs/en/sql-reference/aggregate-functions/reference/meanztest.md index 0752df05818..6b43e2dfc2a 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/meanztest.md +++ b/docs/en/sql-reference/aggregate-functions/reference/meanztest.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/meanztest sidebar_position: 303 sidebar_label: meanZTest --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/median.md b/docs/en/sql-reference/aggregate-functions/reference/median.md index 1c798f7bbf9..5ac3c6ef721 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/median.md +++ b/docs/en/sql-reference/aggregate-functions/reference/median.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/median sidebar_position: 212 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/min.md b/docs/en/sql-reference/aggregate-functions/reference/min.md index 7252494f5ca..0b374f61941 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/min.md +++ b/docs/en/sql-reference/aggregate-functions/reference/min.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/min sidebar_position: 2 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/minmap.md b/docs/en/sql-reference/aggregate-functions/reference/minmap.md index 61c7f4358b6..5436e1fc6a6 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/minmap.md +++ b/docs/en/sql-reference/aggregate-functions/reference/minmap.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/minmap sidebar_position: 142 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantile.md b/docs/en/sql-reference/aggregate-functions/reference/quantile.md index 99346a50b33..414574e00e6 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantile.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantile.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantile sidebar_position: 200 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantilebfloat16.md b/docs/en/sql-reference/aggregate-functions/reference/quantilebfloat16.md index 01fd1ea8fb2..6ca8c45d14e 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantilebfloat16.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantilebfloat16.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantilebfloat16 sidebar_position: 209 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantiledeterministic.md b/docs/en/sql-reference/aggregate-functions/reference/quantiledeterministic.md index 50e0f089b72..26826afd126 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantiledeterministic.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantiledeterministic.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantiledeterministic sidebar_position: 206 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantileexact.md b/docs/en/sql-reference/aggregate-functions/reference/quantileexact.md index ba2fe5c1eaa..04fe597a34e 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantileexact.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantileexact.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantileexact sidebar_position: 202 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantileexactweighted.md b/docs/en/sql-reference/aggregate-functions/reference/quantileexactweighted.md index 593ad3a0e4c..16e6438a3bf 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantileexactweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantileexactweighted.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantileexactweighted sidebar_position: 203 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantiles.md b/docs/en/sql-reference/aggregate-functions/reference/quantiles.md index a38d3cb141e..5c9120fb8f4 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantiles.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantiles.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantiles sidebar_position: 201 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantiletdigest.md b/docs/en/sql-reference/aggregate-functions/reference/quantiletdigest.md index be06e562334..5da37a4832f 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantiletdigest.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantiletdigest.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantiletdigest sidebar_position: 207 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantiletdigestweighted.md b/docs/en/sql-reference/aggregate-functions/reference/quantiletdigestweighted.md index afde202dd15..e7abe08e39f 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantiletdigestweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantiletdigestweighted.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantiletdigestweighted sidebar_position: 208 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantiletiming.md b/docs/en/sql-reference/aggregate-functions/reference/quantiletiming.md index 8bcdbbc23aa..ead381b4497 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantiletiming.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantiletiming.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantiletiming sidebar_position: 204 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/quantiletimingweighted.md b/docs/en/sql-reference/aggregate-functions/reference/quantiletimingweighted.md index 4b56423c7d9..f65c6b1e6ec 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/quantiletimingweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/quantiletimingweighted.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/quantiletimingweighted sidebar_position: 205 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/rankCorr.md b/docs/en/sql-reference/aggregate-functions/reference/rankCorr.md index 3b8477340b6..231eb2b091b 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/rankCorr.md +++ b/docs/en/sql-reference/aggregate-functions/reference/rankCorr.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/rankCorr sidebar_position: 145 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/simplelinearregression.md b/docs/en/sql-reference/aggregate-functions/reference/simplelinearregression.md index b6f7a94acad..a6380b78a79 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/simplelinearregression.md +++ b/docs/en/sql-reference/aggregate-functions/reference/simplelinearregression.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/simplelinearregression sidebar_position: 220 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/skewpop.md b/docs/en/sql-reference/aggregate-functions/reference/skewpop.md index 87fa7e136f1..379fdcfa7c2 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/skewpop.md +++ b/docs/en/sql-reference/aggregate-functions/reference/skewpop.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/skewpop sidebar_position: 150 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/skewsamp.md b/docs/en/sql-reference/aggregate-functions/reference/skewsamp.md index cec74896deb..9e64b186db3 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/skewsamp.md +++ b/docs/en/sql-reference/aggregate-functions/reference/skewsamp.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/skewsamp sidebar_position: 151 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/sparkbar.md b/docs/en/sql-reference/aggregate-functions/reference/sparkbar.md index 16b3e2ddba0..2026d086375 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/sparkbar.md +++ b/docs/en/sql-reference/aggregate-functions/reference/sparkbar.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/sparkbar sidebar_position: 311 sidebar_label: sparkbar --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/stddevpop.md b/docs/en/sql-reference/aggregate-functions/reference/stddevpop.md index 015c0871dda..7ad7e37e5c2 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/stddevpop.md +++ b/docs/en/sql-reference/aggregate-functions/reference/stddevpop.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/stddevpop sidebar_position: 30 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/stddevsamp.md b/docs/en/sql-reference/aggregate-functions/reference/stddevsamp.md index 50dfa10a0d7..068725c4991 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/stddevsamp.md +++ b/docs/en/sql-reference/aggregate-functions/reference/stddevsamp.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/stddevsamp sidebar_position: 31 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/stochasticlinearregression.md b/docs/en/sql-reference/aggregate-functions/reference/stochasticlinearregression.md index f4a79fd588b..8126a80e25e 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/stochasticlinearregression.md +++ b/docs/en/sql-reference/aggregate-functions/reference/stochasticlinearregression.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/stochasticlinearregression sidebar_position: 221 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/stochasticlogisticregression.md b/docs/en/sql-reference/aggregate-functions/reference/stochasticlogisticregression.md index ea1cff0ddf8..41eeb70c04f 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/stochasticlogisticregression.md +++ b/docs/en/sql-reference/aggregate-functions/reference/stochasticlogisticregression.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/stochasticlogisticregression sidebar_position: 222 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/studentttest.md b/docs/en/sql-reference/aggregate-functions/reference/studentttest.md index b4a86d15597..aec0635ed73 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/studentttest.md +++ b/docs/en/sql-reference/aggregate-functions/reference/studentttest.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/studentttest sidebar_position: 300 sidebar_label: studentTTest --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/sum.md b/docs/en/sql-reference/aggregate-functions/reference/sum.md index 527dc15d5a7..320bb73f9ac 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/sum.md +++ b/docs/en/sql-reference/aggregate-functions/reference/sum.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/sum sidebar_position: 4 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/sumcount.md b/docs/en/sql-reference/aggregate-functions/reference/sumcount.md index c4a302b076a..c4c93a844b1 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/sumcount.md +++ b/docs/en/sql-reference/aggregate-functions/reference/sumcount.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/sumcount sidebar_position: 144 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/sumkahan.md b/docs/en/sql-reference/aggregate-functions/reference/sumkahan.md index cbcb3362b64..d58b0d89348 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/sumkahan.md +++ b/docs/en/sql-reference/aggregate-functions/reference/sumkahan.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/sumkahan sidebar_position: 145 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/summap.md b/docs/en/sql-reference/aggregate-functions/reference/summap.md index 88af347c88f..1acfde3783a 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/summap.md +++ b/docs/en/sql-reference/aggregate-functions/reference/summap.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/summap sidebar_position: 141 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/sumwithoverflow.md b/docs/en/sql-reference/aggregate-functions/reference/sumwithoverflow.md index 9f8b4b4f577..be66340285b 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/sumwithoverflow.md +++ b/docs/en/sql-reference/aggregate-functions/reference/sumwithoverflow.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/sumwithoverflow sidebar_position: 140 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/topk.md b/docs/en/sql-reference/aggregate-functions/reference/topk.md index d968ca22b16..658cddf1e6e 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/topk.md +++ b/docs/en/sql-reference/aggregate-functions/reference/topk.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/topk sidebar_position: 108 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/topkweighted.md b/docs/en/sql-reference/aggregate-functions/reference/topkweighted.md index daa5d05e99f..133de88a07e 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/topkweighted.md +++ b/docs/en/sql-reference/aggregate-functions/reference/topkweighted.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/topkweighted sidebar_position: 109 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/uniq.md b/docs/en/sql-reference/aggregate-functions/reference/uniq.md index 942ad73dfd9..d72311b3ede 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/uniq.md +++ b/docs/en/sql-reference/aggregate-functions/reference/uniq.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/uniq sidebar_position: 190 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/uniqcombined.md b/docs/en/sql-reference/aggregate-functions/reference/uniqcombined.md index 652032eb575..f1287c6ff9b 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/uniqcombined.md +++ b/docs/en/sql-reference/aggregate-functions/reference/uniqcombined.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/uniqcombined sidebar_position: 192 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/uniqcombined64.md b/docs/en/sql-reference/aggregate-functions/reference/uniqcombined64.md index d2aa51954fe..9f010da57f2 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/uniqcombined64.md +++ b/docs/en/sql-reference/aggregate-functions/reference/uniqcombined64.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/uniqcombined64 sidebar_position: 193 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/uniqexact.md b/docs/en/sql-reference/aggregate-functions/reference/uniqexact.md index 9b3da4e317a..901c631b756 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/uniqexact.md +++ b/docs/en/sql-reference/aggregate-functions/reference/uniqexact.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/uniqexact sidebar_position: 191 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/uniqhll12.md b/docs/en/sql-reference/aggregate-functions/reference/uniqhll12.md index 5514eb692b7..b598ad23df3 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/uniqhll12.md +++ b/docs/en/sql-reference/aggregate-functions/reference/uniqhll12.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/uniqhll12 sidebar_position: 194 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/uniqthetasketch.md b/docs/en/sql-reference/aggregate-functions/reference/uniqthetasketch.md index ab3661f07d9..50caefc0dae 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/uniqthetasketch.md +++ b/docs/en/sql-reference/aggregate-functions/reference/uniqthetasketch.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/uniqthetasketch sidebar_position: 195 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/varpop.md b/docs/en/sql-reference/aggregate-functions/reference/varpop.md index ec0d2b51185..0a665c83e74 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/varpop.md +++ b/docs/en/sql-reference/aggregate-functions/reference/varpop.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/varpop sidebar_position: 32 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/varsamp.md b/docs/en/sql-reference/aggregate-functions/reference/varsamp.md index 9c0636ad1b4..76639d2d7a0 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/varsamp.md +++ b/docs/en/sql-reference/aggregate-functions/reference/varsamp.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/varsamp sidebar_position: 33 --- diff --git a/docs/en/sql-reference/aggregate-functions/reference/welchttest.md b/docs/en/sql-reference/aggregate-functions/reference/welchttest.md index 0a0278f970e..34f875e2138 100644 --- a/docs/en/sql-reference/aggregate-functions/reference/welchttest.md +++ b/docs/en/sql-reference/aggregate-functions/reference/welchttest.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/aggregate-functions/reference/welchttest sidebar_position: 301 sidebar_label: welchTTest --- diff --git a/docs/en/sql-reference/ansi.md b/docs/en/sql-reference/ansi.md index 7b307b5d1be..c228b48fbf6 100644 --- a/docs/en/sql-reference/ansi.md +++ b/docs/en/sql-reference/ansi.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/ansi sidebar_position: 40 sidebar_label: ANSI Compatibility --- diff --git a/docs/en/sql-reference/data-types/aggregatefunction.md b/docs/en/sql-reference/data-types/aggregatefunction.md index 6220c6b2d6f..128a332fe13 100644 --- a/docs/en/sql-reference/data-types/aggregatefunction.md +++ b/docs/en/sql-reference/data-types/aggregatefunction.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/aggregatefunction sidebar_position: 53 sidebar_label: AggregateFunction --- diff --git a/docs/en/sql-reference/data-types/array.md b/docs/en/sql-reference/data-types/array.md index c0e9d217479..707acbda760 100644 --- a/docs/en/sql-reference/data-types/array.md +++ b/docs/en/sql-reference/data-types/array.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/array sidebar_position: 52 sidebar_label: Array(T) --- diff --git a/docs/en/sql-reference/data-types/boolean.md b/docs/en/sql-reference/data-types/boolean.md index 02e257bec43..7288f7cb993 100644 --- a/docs/en/sql-reference/data-types/boolean.md +++ b/docs/en/sql-reference/data-types/boolean.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/boolean sidebar_position: 43 sidebar_label: Boolean --- diff --git a/docs/en/sql-reference/data-types/date.md b/docs/en/sql-reference/data-types/date.md index e6aabb7aa79..d43a00312dd 100644 --- a/docs/en/sql-reference/data-types/date.md +++ b/docs/en/sql-reference/data-types/date.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/date sidebar_position: 47 sidebar_label: Date --- diff --git a/docs/en/sql-reference/data-types/date32.md b/docs/en/sql-reference/data-types/date32.md index b5a82128e69..ff1a745785b 100644 --- a/docs/en/sql-reference/data-types/date32.md +++ b/docs/en/sql-reference/data-types/date32.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/date32 sidebar_position: 48 sidebar_label: Date32 --- diff --git a/docs/en/sql-reference/data-types/datetime.md b/docs/en/sql-reference/data-types/datetime.md index cc58c33115d..85587882e01 100644 --- a/docs/en/sql-reference/data-types/datetime.md +++ b/docs/en/sql-reference/data-types/datetime.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/datetime sidebar_position: 48 sidebar_label: DateTime --- diff --git a/docs/en/sql-reference/data-types/datetime64.md b/docs/en/sql-reference/data-types/datetime64.md index ca0ad71a340..c7372e4b064 100644 --- a/docs/en/sql-reference/data-types/datetime64.md +++ b/docs/en/sql-reference/data-types/datetime64.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/datetime64 sidebar_position: 49 sidebar_label: DateTime64 --- diff --git a/docs/en/sql-reference/data-types/decimal.md b/docs/en/sql-reference/data-types/decimal.md index ddb1c091c7c..c11d5c879d7 100644 --- a/docs/en/sql-reference/data-types/decimal.md +++ b/docs/en/sql-reference/data-types/decimal.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/decimal sidebar_position: 42 sidebar_label: Decimal --- diff --git a/docs/en/sql-reference/data-types/domains/index.md b/docs/en/sql-reference/data-types/domains/index.md index 50599db2f47..4b705b3dcc2 100644 --- a/docs/en/sql-reference/data-types/domains/index.md +++ b/docs/en/sql-reference/data-types/domains/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/domains/ sidebar_position: 56 sidebar_label: Domains --- diff --git a/docs/en/sql-reference/data-types/domains/ipv4.md b/docs/en/sql-reference/data-types/domains/ipv4.md index 00d3a03ee29..25cc609f81c 100644 --- a/docs/en/sql-reference/data-types/domains/ipv4.md +++ b/docs/en/sql-reference/data-types/domains/ipv4.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/domains/ipv4 sidebar_position: 59 sidebar_label: IPv4 --- diff --git a/docs/en/sql-reference/data-types/domains/ipv6.md b/docs/en/sql-reference/data-types/domains/ipv6.md index 3863b085a14..5cea411f999 100644 --- a/docs/en/sql-reference/data-types/domains/ipv6.md +++ b/docs/en/sql-reference/data-types/domains/ipv6.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/domains/ipv6 sidebar_position: 60 sidebar_label: IPv6 --- diff --git a/docs/en/sql-reference/data-types/enum.md b/docs/en/sql-reference/data-types/enum.md index 5b975c83844..1aa641616fa 100644 --- a/docs/en/sql-reference/data-types/enum.md +++ b/docs/en/sql-reference/data-types/enum.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/enum sidebar_position: 50 sidebar_label: Enum --- diff --git a/docs/en/sql-reference/data-types/fixedstring.md b/docs/en/sql-reference/data-types/fixedstring.md index 444e6cbcd47..f7a01d5c6d4 100644 --- a/docs/en/sql-reference/data-types/fixedstring.md +++ b/docs/en/sql-reference/data-types/fixedstring.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/fixedstring sidebar_position: 45 sidebar_label: FixedString(N) --- diff --git a/docs/en/sql-reference/data-types/float.md b/docs/en/sql-reference/data-types/float.md index fbf1088b190..8bf2e4007da 100644 --- a/docs/en/sql-reference/data-types/float.md +++ b/docs/en/sql-reference/data-types/float.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/float sidebar_position: 41 sidebar_label: Float32, Float64 --- diff --git a/docs/en/sql-reference/data-types/geo.md b/docs/en/sql-reference/data-types/geo.md index 22fc56dbcf5..e5df01bab86 100644 --- a/docs/en/sql-reference/data-types/geo.md +++ b/docs/en/sql-reference/data-types/geo.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/geo sidebar_position: 62 sidebar_label: Geo --- diff --git a/docs/en/sql-reference/data-types/index.md b/docs/en/sql-reference/data-types/index.md index ca26b89ec87..7556481cf54 100644 --- a/docs/en/sql-reference/data-types/index.md +++ b/docs/en/sql-reference/data-types/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/ sidebar_label: Data Types sidebar_position: 37 --- diff --git a/docs/en/sql-reference/data-types/int-uint.md b/docs/en/sql-reference/data-types/int-uint.md index c63f6780154..030f749aa90 100644 --- a/docs/en/sql-reference/data-types/int-uint.md +++ b/docs/en/sql-reference/data-types/int-uint.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/int-uint sidebar_position: 40 sidebar_label: UInt8, UInt16, UInt32, UInt64, UInt128, UInt256, Int8, Int16, Int32, Int64, Int128, Int256 --- diff --git a/docs/en/sql-reference/data-types/json.md b/docs/en/sql-reference/data-types/json.md index 718e5279980..ab0f6115a41 100644 --- a/docs/en/sql-reference/data-types/json.md +++ b/docs/en/sql-reference/data-types/json.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/json sidebar_position: 54 sidebar_label: JSON --- diff --git a/docs/en/sql-reference/data-types/lowcardinality.md b/docs/en/sql-reference/data-types/lowcardinality.md index 3bfe7b8a14e..71f82fc2587 100644 --- a/docs/en/sql-reference/data-types/lowcardinality.md +++ b/docs/en/sql-reference/data-types/lowcardinality.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/lowcardinality sidebar_position: 51 sidebar_label: LowCardinality --- diff --git a/docs/en/sql-reference/data-types/map.md b/docs/en/sql-reference/data-types/map.md index 65a0f9cbc52..54f6374929d 100644 --- a/docs/en/sql-reference/data-types/map.md +++ b/docs/en/sql-reference/data-types/map.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/map sidebar_position: 65 sidebar_label: Map(key, value) --- diff --git a/docs/en/sql-reference/data-types/multiword-types.md b/docs/en/sql-reference/data-types/multiword-types.md index 913f5325e6f..728bbcc1d9b 100644 --- a/docs/en/sql-reference/data-types/multiword-types.md +++ b/docs/en/sql-reference/data-types/multiword-types.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/multiword-types sidebar_position: 61 sidebar_label: Multiword Type Names --- diff --git a/docs/en/sql-reference/data-types/nested-data-structures/index.md b/docs/en/sql-reference/data-types/nested-data-structures/index.md index 90150f3acc2..001702f7904 100644 --- a/docs/en/sql-reference/data-types/nested-data-structures/index.md +++ b/docs/en/sql-reference/data-types/nested-data-structures/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/nested-data-structures/ sidebar_label: Nested Data Structures sidebar_position: 54 --- diff --git a/docs/en/sql-reference/data-types/nested-data-structures/nested.md b/docs/en/sql-reference/data-types/nested-data-structures/nested.md index b14025cdfaf..c85aca3e956 100644 --- a/docs/en/sql-reference/data-types/nested-data-structures/nested.md +++ b/docs/en/sql-reference/data-types/nested-data-structures/nested.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/nested-data-structures/nested sidebar_position: 57 sidebar_label: Nested(Name1 Type1, Name2 Type2, ...) --- diff --git a/docs/en/sql-reference/data-types/nullable.md b/docs/en/sql-reference/data-types/nullable.md index b9a75274c08..b4e803c28e5 100644 --- a/docs/en/sql-reference/data-types/nullable.md +++ b/docs/en/sql-reference/data-types/nullable.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/nullable sidebar_position: 55 sidebar_label: Nullable --- diff --git a/docs/en/sql-reference/data-types/special-data-types/expression.md b/docs/en/sql-reference/data-types/special-data-types/expression.md index 0b9265eaa6e..64182d2c8ee 100644 --- a/docs/en/sql-reference/data-types/special-data-types/expression.md +++ b/docs/en/sql-reference/data-types/special-data-types/expression.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/special-data-types/expression sidebar_position: 58 sidebar_label: Expression --- diff --git a/docs/en/sql-reference/data-types/special-data-types/index.md b/docs/en/sql-reference/data-types/special-data-types/index.md index b2e5251d748..d30cd66da02 100644 --- a/docs/en/sql-reference/data-types/special-data-types/index.md +++ b/docs/en/sql-reference/data-types/special-data-types/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/special-data-types/ sidebar_label: Special Data Types sidebar_position: 55 --- diff --git a/docs/en/sql-reference/data-types/special-data-types/interval.md b/docs/en/sql-reference/data-types/special-data-types/interval.md index 6c2349d492c..5169bc646c9 100644 --- a/docs/en/sql-reference/data-types/special-data-types/interval.md +++ b/docs/en/sql-reference/data-types/special-data-types/interval.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/special-data-types/interval sidebar_position: 61 sidebar_label: Interval --- diff --git a/docs/en/sql-reference/data-types/special-data-types/nothing.md b/docs/en/sql-reference/data-types/special-data-types/nothing.md index d3164eab941..ada796f595c 100644 --- a/docs/en/sql-reference/data-types/special-data-types/nothing.md +++ b/docs/en/sql-reference/data-types/special-data-types/nothing.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/special-data-types/nothing sidebar_position: 60 sidebar_label: Nothing --- diff --git a/docs/en/sql-reference/data-types/special-data-types/set.md b/docs/en/sql-reference/data-types/special-data-types/set.md index 1490fd311ea..7ae41079a55 100644 --- a/docs/en/sql-reference/data-types/special-data-types/set.md +++ b/docs/en/sql-reference/data-types/special-data-types/set.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/special-data-types/set sidebar_position: 59 sidebar_label: Set --- diff --git a/docs/en/sql-reference/data-types/string.md b/docs/en/sql-reference/data-types/string.md index db8a399df9d..57de19334b8 100644 --- a/docs/en/sql-reference/data-types/string.md +++ b/docs/en/sql-reference/data-types/string.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/string sidebar_position: 44 sidebar_label: String --- diff --git a/docs/en/sql-reference/data-types/tuple.md b/docs/en/sql-reference/data-types/tuple.md index 159fe9b5ee4..97b26f42603 100644 --- a/docs/en/sql-reference/data-types/tuple.md +++ b/docs/en/sql-reference/data-types/tuple.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/tuple sidebar_position: 54 sidebar_label: Tuple(T1, T2, ...) --- diff --git a/docs/en/sql-reference/data-types/uuid.md b/docs/en/sql-reference/data-types/uuid.md index 75485561f96..e329c5d4443 100644 --- a/docs/en/sql-reference/data-types/uuid.md +++ b/docs/en/sql-reference/data-types/uuid.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/data-types/uuid sidebar_position: 46 sidebar_label: UUID --- diff --git a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-hierarchical.md b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-hierarchical.md index 6df7cf231b9..25eb05950b3 100644 --- a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-hierarchical.md +++ b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-hierarchical.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-hierarchical sidebar_position: 45 sidebar_label: Hierarchical dictionaries --- diff --git a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout.md b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout.md index 887d9ee4612..d1e87801c4a 100644 --- a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout.md +++ b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-layout sidebar_position: 41 sidebar_label: Storing Dictionaries in Memory --- diff --git a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime.md b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime.md index ab83017f263..433300eefa4 100644 --- a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime.md +++ b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-lifetime sidebar_position: 42 sidebar_label: Dictionary Updates --- diff --git a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-polygon.md b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-polygon.md index 7fcea84b55d..ef1cc63aaa4 100644 --- a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-polygon.md +++ b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-polygon.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-polygon sidebar_position: 46 sidebar_label: Polygon Dictionaries With Grids --- diff --git a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources.md b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources.md index 280dc1f54f4..d457f327e7a 100644 --- a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources.md +++ b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-sources sidebar_position: 43 sidebar_label: Sources of External Dictionaries --- diff --git a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure.md b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure.md index b159401ea45..895743c3b50 100644 --- a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure.md +++ b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict-structure sidebar_position: 44 sidebar_label: Dictionary Key and Fields --- diff --git a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict.md b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict.md index bb4fcdab51a..5c237eea8c7 100644 --- a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict.md +++ b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/external-dictionaries/external-dicts-dict sidebar_position: 40 sidebar_label: Configuring an External Dictionary --- diff --git a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts.md b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts.md index 92c73ca5978..095fb6360cd 100644 --- a/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts.md +++ b/docs/en/sql-reference/dictionaries/external-dictionaries/external-dicts.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/external-dictionaries/external-dicts sidebar_position: 39 sidebar_label: General Description --- diff --git a/docs/en/sql-reference/dictionaries/index.md b/docs/en/sql-reference/dictionaries/index.md index 2c96cc1916e..eccd1215e30 100644 --- a/docs/en/sql-reference/dictionaries/index.md +++ b/docs/en/sql-reference/dictionaries/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/ sidebar_label: Dictionaries sidebar_position: 35 --- diff --git a/docs/en/sql-reference/dictionaries/internal-dicts.md b/docs/en/sql-reference/dictionaries/internal-dicts.md index 3dd13631f08..dbc12a576f7 100644 --- a/docs/en/sql-reference/dictionaries/internal-dicts.md +++ b/docs/en/sql-reference/dictionaries/internal-dicts.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/dictionaries/internal-dicts sidebar_position: 39 sidebar_label: Internal Dictionaries --- diff --git a/docs/en/sql-reference/distributed-ddl.md b/docs/en/sql-reference/distributed-ddl.md index e12be4206a3..ff5155391be 100644 --- a/docs/en/sql-reference/distributed-ddl.md +++ b/docs/en/sql-reference/distributed-ddl.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/distributed-ddl sidebar_position: 3 sidebar_label: Distributed DDL --- diff --git a/docs/en/sql-reference/functions/arithmetic-functions.md b/docs/en/sql-reference/functions/arithmetic-functions.md index 45df5f7f227..9059facb0c6 100644 --- a/docs/en/sql-reference/functions/arithmetic-functions.md +++ b/docs/en/sql-reference/functions/arithmetic-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/arithmetic-functions sidebar_position: 34 sidebar_label: Arithmetic --- diff --git a/docs/en/sql-reference/functions/array-functions.md b/docs/en/sql-reference/functions/array-functions.md index e76317b9e47..c044b972754 100644 --- a/docs/en/sql-reference/functions/array-functions.md +++ b/docs/en/sql-reference/functions/array-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/array-functions sidebar_position: 35 sidebar_label: Arrays --- diff --git a/docs/en/sql-reference/functions/array-join.md b/docs/en/sql-reference/functions/array-join.md index 0eb1d1b431e..d6256ba2dc5 100644 --- a/docs/en/sql-reference/functions/array-join.md +++ b/docs/en/sql-reference/functions/array-join.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/array-join sidebar_position: 61 sidebar_label: arrayJoin --- diff --git a/docs/en/sql-reference/functions/bit-functions.md b/docs/en/sql-reference/functions/bit-functions.md index 1fde738476d..1648ce35056 100644 --- a/docs/en/sql-reference/functions/bit-functions.md +++ b/docs/en/sql-reference/functions/bit-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/bit-functions sidebar_position: 48 sidebar_label: Bit --- diff --git a/docs/en/sql-reference/functions/bitmap-functions.md b/docs/en/sql-reference/functions/bitmap-functions.md index 3250c10ff84..b760108402b 100644 --- a/docs/en/sql-reference/functions/bitmap-functions.md +++ b/docs/en/sql-reference/functions/bitmap-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/bitmap-functions sidebar_position: 49 sidebar_label: Bitmap --- diff --git a/docs/en/sql-reference/functions/comparison-functions.md b/docs/en/sql-reference/functions/comparison-functions.md index f3315fb08d9..5da010cdb84 100644 --- a/docs/en/sql-reference/functions/comparison-functions.md +++ b/docs/en/sql-reference/functions/comparison-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/comparison-functions sidebar_position: 36 sidebar_label: Comparison --- diff --git a/docs/en/sql-reference/functions/conditional-functions.md b/docs/en/sql-reference/functions/conditional-functions.md index 0e81a2159a3..ff1ac237025 100644 --- a/docs/en/sql-reference/functions/conditional-functions.md +++ b/docs/en/sql-reference/functions/conditional-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/conditional-functions sidebar_position: 43 sidebar_label: 'Conditional ' --- diff --git a/docs/en/sql-reference/functions/date-time-functions.md b/docs/en/sql-reference/functions/date-time-functions.md index 2c1fcd05bf7..3601208bb63 100644 --- a/docs/en/sql-reference/functions/date-time-functions.md +++ b/docs/en/sql-reference/functions/date-time-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/date-time-functions sidebar_position: 39 sidebar_label: Dates and Times --- diff --git a/docs/en/sql-reference/functions/encoding-functions.md b/docs/en/sql-reference/functions/encoding-functions.md index 4ee71267a09..eb357df19db 100644 --- a/docs/en/sql-reference/functions/encoding-functions.md +++ b/docs/en/sql-reference/functions/encoding-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/encoding-functions sidebar_position: 52 sidebar_label: Encoding --- diff --git a/docs/en/sql-reference/functions/encryption-functions.md b/docs/en/sql-reference/functions/encryption-functions.md index 75f6cf18766..64e2a9128dc 100644 --- a/docs/en/sql-reference/functions/encryption-functions.md +++ b/docs/en/sql-reference/functions/encryption-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/encryption-functions sidebar_position: 67 sidebar_label: Encryption --- diff --git a/docs/en/sql-reference/functions/ext-dict-functions.md b/docs/en/sql-reference/functions/ext-dict-functions.md index a62445f82d1..728e26d6958 100644 --- a/docs/en/sql-reference/functions/ext-dict-functions.md +++ b/docs/en/sql-reference/functions/ext-dict-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/ext-dict-functions sidebar_position: 58 sidebar_label: External Dictionaries --- diff --git a/docs/en/sql-reference/functions/files.md b/docs/en/sql-reference/functions/files.md index b17981ed0e0..598dce86044 100644 --- a/docs/en/sql-reference/functions/files.md +++ b/docs/en/sql-reference/functions/files.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/files sidebar_position: 43 sidebar_label: Files --- diff --git a/docs/en/sql-reference/functions/functions-for-nulls.md b/docs/en/sql-reference/functions/functions-for-nulls.md index 2c86aa403cd..1338806705f 100644 --- a/docs/en/sql-reference/functions/functions-for-nulls.md +++ b/docs/en/sql-reference/functions/functions-for-nulls.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/functions-for-nulls sidebar_position: 63 sidebar_label: Nullable --- diff --git a/docs/en/sql-reference/functions/geo/coordinates.md b/docs/en/sql-reference/functions/geo/coordinates.md index 6cc8137a2ff..9c68549283e 100644 --- a/docs/en/sql-reference/functions/geo/coordinates.md +++ b/docs/en/sql-reference/functions/geo/coordinates.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/geo/coordinates sidebar_label: Geographical Coordinates sidebar_position: 62 --- diff --git a/docs/en/sql-reference/functions/geo/geohash.md b/docs/en/sql-reference/functions/geo/geohash.md index a4f0328d0d0..d2a722cf5ab 100644 --- a/docs/en/sql-reference/functions/geo/geohash.md +++ b/docs/en/sql-reference/functions/geo/geohash.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/geo/geohash sidebar_label: Geohash --- diff --git a/docs/en/sql-reference/functions/geo/h3.md b/docs/en/sql-reference/functions/geo/h3.md index 37a1a5857ea..d3b078cf05f 100644 --- a/docs/en/sql-reference/functions/geo/h3.md +++ b/docs/en/sql-reference/functions/geo/h3.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/geo/h3 sidebar_label: H3 Indexes --- diff --git a/docs/en/sql-reference/functions/geo/index.md b/docs/en/sql-reference/functions/geo/index.md index c0162cb5b63..be4071be1ee 100644 --- a/docs/en/sql-reference/functions/geo/index.md +++ b/docs/en/sql-reference/functions/geo/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/geo/ sidebar_label: Geo sidebar_position: 62 --- diff --git a/docs/en/sql-reference/functions/geo/s2.md b/docs/en/sql-reference/functions/geo/s2.md index 00b75ad42a7..ed3c66a0f6f 100644 --- a/docs/en/sql-reference/functions/geo/s2.md +++ b/docs/en/sql-reference/functions/geo/s2.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/geo/s2 sidebar_label: S2 Geometry --- diff --git a/docs/en/sql-reference/functions/hash-functions.md b/docs/en/sql-reference/functions/hash-functions.md index ed48a590cd7..ad66047a92e 100644 --- a/docs/en/sql-reference/functions/hash-functions.md +++ b/docs/en/sql-reference/functions/hash-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/hash-functions sidebar_position: 50 sidebar_label: Hash --- diff --git a/docs/en/sql-reference/functions/in-functions.md b/docs/en/sql-reference/functions/in-functions.md index ffddf2c9009..67b6a13991e 100644 --- a/docs/en/sql-reference/functions/in-functions.md +++ b/docs/en/sql-reference/functions/in-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/in-functions sidebar_position: 60 sidebar_label: IN Operator --- diff --git a/docs/en/sql-reference/functions/index.md b/docs/en/sql-reference/functions/index.md index 2dadf91e069..840bcd583e4 100644 --- a/docs/en/sql-reference/functions/index.md +++ b/docs/en/sql-reference/functions/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/ sidebar_position: 32 sidebar_label: Functions --- diff --git a/docs/en/sql-reference/functions/introspection.md b/docs/en/sql-reference/functions/introspection.md index b885b50ce22..2fac1a1d693 100644 --- a/docs/en/sql-reference/functions/introspection.md +++ b/docs/en/sql-reference/functions/introspection.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/introspection sidebar_position: 65 sidebar_label: Introspection --- diff --git a/docs/en/sql-reference/functions/ip-address-functions.md b/docs/en/sql-reference/functions/ip-address-functions.md index 9b34a4db440..532bd9e47cf 100644 --- a/docs/en/sql-reference/functions/ip-address-functions.md +++ b/docs/en/sql-reference/functions/ip-address-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/ip-address-functions sidebar_position: 55 sidebar_label: IP Addresses --- diff --git a/docs/en/sql-reference/functions/json-functions.md b/docs/en/sql-reference/functions/json-functions.md index b71926f7b56..71483896189 100644 --- a/docs/en/sql-reference/functions/json-functions.md +++ b/docs/en/sql-reference/functions/json-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/json-functions sidebar_position: 56 sidebar_label: JSON --- diff --git a/docs/en/sql-reference/functions/logical-functions.md b/docs/en/sql-reference/functions/logical-functions.md index 0dd0c8af146..137753d12c9 100644 --- a/docs/en/sql-reference/functions/logical-functions.md +++ b/docs/en/sql-reference/functions/logical-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/logical-functions sidebar_position: 37 sidebar_label: Logical --- diff --git a/docs/en/sql-reference/functions/machine-learning-functions.md b/docs/en/sql-reference/functions/machine-learning-functions.md index 92765a65849..98408ef459c 100644 --- a/docs/en/sql-reference/functions/machine-learning-functions.md +++ b/docs/en/sql-reference/functions/machine-learning-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/machine-learning-functions sidebar_position: 64 sidebar_label: Machine Learning --- diff --git a/docs/en/sql-reference/functions/math-functions.md b/docs/en/sql-reference/functions/math-functions.md index 8ea2935ed5d..430762a1885 100644 --- a/docs/en/sql-reference/functions/math-functions.md +++ b/docs/en/sql-reference/functions/math-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/math-functions sidebar_position: 44 sidebar_label: Mathematical --- diff --git a/docs/en/sql-reference/functions/nlp-functions.md b/docs/en/sql-reference/functions/nlp-functions.md index 6d1e894a456..073d79519ac 100644 --- a/docs/en/sql-reference/functions/nlp-functions.md +++ b/docs/en/sql-reference/functions/nlp-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/nlp-functions sidebar_position: 67 sidebar_label: NLP --- diff --git a/docs/en/sql-reference/functions/other-functions.md b/docs/en/sql-reference/functions/other-functions.md index 6597cd2d6bf..d86eb6b45ae 100644 --- a/docs/en/sql-reference/functions/other-functions.md +++ b/docs/en/sql-reference/functions/other-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/other-functions sidebar_position: 67 sidebar_label: Other --- diff --git a/docs/en/sql-reference/functions/random-functions.md b/docs/en/sql-reference/functions/random-functions.md index 452be8a17b2..d77cc55e5eb 100644 --- a/docs/en/sql-reference/functions/random-functions.md +++ b/docs/en/sql-reference/functions/random-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/random-functions sidebar_position: 51 sidebar_label: Pseudo-Random Numbers --- diff --git a/docs/en/sql-reference/functions/rounding-functions.md b/docs/en/sql-reference/functions/rounding-functions.md index 37f1c35aa7e..4f90171119a 100644 --- a/docs/en/sql-reference/functions/rounding-functions.md +++ b/docs/en/sql-reference/functions/rounding-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/rounding-functions sidebar_position: 45 sidebar_label: Rounding --- diff --git a/docs/en/sql-reference/functions/splitting-merging-functions.md b/docs/en/sql-reference/functions/splitting-merging-functions.md index 3c6db8cc19e..70a1f10083b 100644 --- a/docs/en/sql-reference/functions/splitting-merging-functions.md +++ b/docs/en/sql-reference/functions/splitting-merging-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/splitting-merging-functions sidebar_position: 47 sidebar_label: Splitting and Merging Strings and Arrays --- diff --git a/docs/en/sql-reference/functions/string-functions.md b/docs/en/sql-reference/functions/string-functions.md index 55ab11763d5..6ce654496e4 100644 --- a/docs/en/sql-reference/functions/string-functions.md +++ b/docs/en/sql-reference/functions/string-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/string-functions sidebar_position: 40 sidebar_label: Strings --- diff --git a/docs/en/sql-reference/functions/string-replace-functions.md b/docs/en/sql-reference/functions/string-replace-functions.md index 294a7b49db5..adf2a07b732 100644 --- a/docs/en/sql-reference/functions/string-replace-functions.md +++ b/docs/en/sql-reference/functions/string-replace-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/string-replace-functions sidebar_position: 42 sidebar_label: For Replacing in Strings --- diff --git a/docs/en/sql-reference/functions/string-search-functions.md b/docs/en/sql-reference/functions/string-search-functions.md index 86408d8fc93..048d0864863 100644 --- a/docs/en/sql-reference/functions/string-search-functions.md +++ b/docs/en/sql-reference/functions/string-search-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/string-search-functions sidebar_position: 41 sidebar_label: For Searching in Strings --- diff --git a/docs/en/sql-reference/functions/time-window-functions.md b/docs/en/sql-reference/functions/time-window-functions.md index eea785e783e..f03a206da07 100644 --- a/docs/en/sql-reference/functions/time-window-functions.md +++ b/docs/en/sql-reference/functions/time-window-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/time-window-functions sidebar_position: 68 sidebar_label: Time Window --- diff --git a/docs/en/sql-reference/functions/tuple-functions.md b/docs/en/sql-reference/functions/tuple-functions.md index d3aac635841..006c0455dc0 100644 --- a/docs/en/sql-reference/functions/tuple-functions.md +++ b/docs/en/sql-reference/functions/tuple-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/tuple-functions sidebar_position: 66 sidebar_label: Tuples --- diff --git a/docs/en/sql-reference/functions/tuple-map-functions.md b/docs/en/sql-reference/functions/tuple-map-functions.md index b6b7a057894..48e492caaff 100644 --- a/docs/en/sql-reference/functions/tuple-map-functions.md +++ b/docs/en/sql-reference/functions/tuple-map-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/tuple-map-functions sidebar_position: 46 sidebar_label: Working with maps --- diff --git a/docs/en/sql-reference/functions/type-conversion-functions.md b/docs/en/sql-reference/functions/type-conversion-functions.md index ecdf34bf7ee..d82728b9721 100644 --- a/docs/en/sql-reference/functions/type-conversion-functions.md +++ b/docs/en/sql-reference/functions/type-conversion-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/type-conversion-functions sidebar_position: 38 sidebar_label: Type Conversion --- diff --git a/docs/en/sql-reference/functions/url-functions.md b/docs/en/sql-reference/functions/url-functions.md index a46dda8269c..b03ca88fc61 100644 --- a/docs/en/sql-reference/functions/url-functions.md +++ b/docs/en/sql-reference/functions/url-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/url-functions sidebar_position: 54 sidebar_label: URLs --- diff --git a/docs/en/sql-reference/functions/uuid-functions.md b/docs/en/sql-reference/functions/uuid-functions.md index 78a5ffa36a1..b8f222c2e4e 100644 --- a/docs/en/sql-reference/functions/uuid-functions.md +++ b/docs/en/sql-reference/functions/uuid-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/uuid-functions sidebar_position: 53 sidebar_label: UUID --- diff --git a/docs/en/sql-reference/functions/ym-dict-functions.md b/docs/en/sql-reference/functions/ym-dict-functions.md index 06f278c6abc..04df3db571e 100644 --- a/docs/en/sql-reference/functions/ym-dict-functions.md +++ b/docs/en/sql-reference/functions/ym-dict-functions.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/functions/ym-dict-functions sidebar_position: 59 sidebar_label: Embedded Dictionaries --- diff --git a/docs/en/sql-reference/operators/index.md b/docs/en/sql-reference/operators/index.md index 17b8f014366..0fe7ebbf4b6 100644 --- a/docs/en/sql-reference/operators/index.md +++ b/docs/en/sql-reference/operators/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/operators/ sidebar_position: 38 sidebar_label: Operators --- diff --git a/docs/en/sql-reference/statements/alter/column.md b/docs/en/sql-reference/statements/alter/column.md index 9387b442944..210d4898c67 100644 --- a/docs/en/sql-reference/statements/alter/column.md +++ b/docs/en/sql-reference/statements/alter/column.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/column sidebar_position: 37 sidebar_label: COLUMN --- diff --git a/docs/en/sql-reference/statements/alter/comment.md b/docs/en/sql-reference/statements/alter/comment.md index a6ec72221ff..f8742765619 100644 --- a/docs/en/sql-reference/statements/alter/comment.md +++ b/docs/en/sql-reference/statements/alter/comment.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/comment sidebar_position: 51 sidebar_label: COMMENT --- diff --git a/docs/en/sql-reference/statements/alter/constraint.md b/docs/en/sql-reference/statements/alter/constraint.md index 9f89a010a44..15bd27e1a95 100644 --- a/docs/en/sql-reference/statements/alter/constraint.md +++ b/docs/en/sql-reference/statements/alter/constraint.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/constraint sidebar_position: 43 sidebar_label: CONSTRAINT --- diff --git a/docs/en/sql-reference/statements/alter/delete.md b/docs/en/sql-reference/statements/alter/delete.md index 88ecf26961c..809715b5423 100644 --- a/docs/en/sql-reference/statements/alter/delete.md +++ b/docs/en/sql-reference/statements/alter/delete.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/delete sidebar_position: 39 sidebar_label: DELETE --- diff --git a/docs/en/sql-reference/statements/alter/index.md b/docs/en/sql-reference/statements/alter/index.md index e18e9e21a31..eeee5e03c8b 100644 --- a/docs/en/sql-reference/statements/alter/index.md +++ b/docs/en/sql-reference/statements/alter/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/ sidebar_position: 35 sidebar_label: ALTER --- diff --git a/docs/en/sql-reference/statements/alter/index/index.md b/docs/en/sql-reference/statements/alter/index/index.md index c9e7de22076..03d4bd47e71 100644 --- a/docs/en/sql-reference/statements/alter/index/index.md +++ b/docs/en/sql-reference/statements/alter/index/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/index toc_hidden_folder: true sidebar_position: 42 sidebar_label: INDEX diff --git a/docs/en/sql-reference/statements/alter/order-by.md b/docs/en/sql-reference/statements/alter/order-by.md index 1ffb6a3bbb3..8b51a868ace 100644 --- a/docs/en/sql-reference/statements/alter/order-by.md +++ b/docs/en/sql-reference/statements/alter/order-by.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/order-by sidebar_position: 41 sidebar_label: ORDER BY --- diff --git a/docs/en/sql-reference/statements/alter/partition.md b/docs/en/sql-reference/statements/alter/partition.md index b7787fbef92..ec5285eaaad 100644 --- a/docs/en/sql-reference/statements/alter/partition.md +++ b/docs/en/sql-reference/statements/alter/partition.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/partition sidebar_position: 38 sidebar_label: PARTITION --- diff --git a/docs/en/sql-reference/statements/alter/projection.md b/docs/en/sql-reference/statements/alter/projection.md index 72a4b792fa4..7aacdb628e1 100644 --- a/docs/en/sql-reference/statements/alter/projection.md +++ b/docs/en/sql-reference/statements/alter/projection.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/projection sidebar_position: 49 sidebar_label: PROJECTION --- diff --git a/docs/en/sql-reference/statements/alter/quota.md b/docs/en/sql-reference/statements/alter/quota.md index c5f1bac0666..37e866a0b3e 100644 --- a/docs/en/sql-reference/statements/alter/quota.md +++ b/docs/en/sql-reference/statements/alter/quota.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/quota sidebar_position: 46 sidebar_label: QUOTA --- diff --git a/docs/en/sql-reference/statements/alter/role.md b/docs/en/sql-reference/statements/alter/role.md index 62a80ccaf50..2bee9fd0dc6 100644 --- a/docs/en/sql-reference/statements/alter/role.md +++ b/docs/en/sql-reference/statements/alter/role.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/role sidebar_position: 46 sidebar_label: ROLE --- diff --git a/docs/en/sql-reference/statements/alter/row-policy.md b/docs/en/sql-reference/statements/alter/row-policy.md index 0851c5b052d..ec0390e766e 100644 --- a/docs/en/sql-reference/statements/alter/row-policy.md +++ b/docs/en/sql-reference/statements/alter/row-policy.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/row-policy sidebar_position: 47 sidebar_label: ROW POLICY --- diff --git a/docs/en/sql-reference/statements/alter/sample-by.md b/docs/en/sql-reference/statements/alter/sample-by.md index d3490916b26..d824bdf7644 100644 --- a/docs/en/sql-reference/statements/alter/sample-by.md +++ b/docs/en/sql-reference/statements/alter/sample-by.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/sample-by sidebar_position: 41 sidebar_label: SAMPLE BY --- diff --git a/docs/en/sql-reference/statements/alter/setting.md b/docs/en/sql-reference/statements/alter/setting.md index da31da0cf53..f68f035146a 100644 --- a/docs/en/sql-reference/statements/alter/setting.md +++ b/docs/en/sql-reference/statements/alter/setting.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/setting sidebar_position: 38 sidebar_label: SETTING --- diff --git a/docs/en/sql-reference/statements/alter/settings-profile.md b/docs/en/sql-reference/statements/alter/settings-profile.md index 902f3854a12..234bb22ae14 100644 --- a/docs/en/sql-reference/statements/alter/settings-profile.md +++ b/docs/en/sql-reference/statements/alter/settings-profile.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/settings-profile sidebar_position: 48 sidebar_label: SETTINGS PROFILE --- diff --git a/docs/en/sql-reference/statements/alter/ttl.md b/docs/en/sql-reference/statements/alter/ttl.md index 2682279d1f7..3e9846ba1ab 100644 --- a/docs/en/sql-reference/statements/alter/ttl.md +++ b/docs/en/sql-reference/statements/alter/ttl.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/ttl sidebar_position: 44 sidebar_label: TTL --- diff --git a/docs/en/sql-reference/statements/alter/update.md b/docs/en/sql-reference/statements/alter/update.md index 26a2d57f050..e4fb872ae24 100644 --- a/docs/en/sql-reference/statements/alter/update.md +++ b/docs/en/sql-reference/statements/alter/update.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/update sidebar_position: 40 sidebar_label: UPDATE --- diff --git a/docs/en/sql-reference/statements/alter/user.md b/docs/en/sql-reference/statements/alter/user.md index 30b024227be..3a98955e439 100644 --- a/docs/en/sql-reference/statements/alter/user.md +++ b/docs/en/sql-reference/statements/alter/user.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/user sidebar_position: 45 sidebar_label: USER --- diff --git a/docs/en/sql-reference/statements/alter/view.md b/docs/en/sql-reference/statements/alter/view.md index 45bc2ab155a..e382cdace30 100644 --- a/docs/en/sql-reference/statements/alter/view.md +++ b/docs/en/sql-reference/statements/alter/view.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/alter/view sidebar_position: 50 sidebar_label: VIEW --- diff --git a/docs/en/sql-reference/statements/attach.md b/docs/en/sql-reference/statements/attach.md index e298df52409..36b62ba3109 100644 --- a/docs/en/sql-reference/statements/attach.md +++ b/docs/en/sql-reference/statements/attach.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/attach sidebar_position: 40 sidebar_label: ATTACH --- diff --git a/docs/en/sql-reference/statements/check-table.md b/docs/en/sql-reference/statements/check-table.md index 2e1a6c5b366..e2547d88b67 100644 --- a/docs/en/sql-reference/statements/check-table.md +++ b/docs/en/sql-reference/statements/check-table.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/check-table sidebar_position: 41 sidebar_label: CHECK --- diff --git a/docs/en/sql-reference/statements/create/database.md b/docs/en/sql-reference/statements/create/database.md index 5ce9d55a6b1..432f5975cc8 100644 --- a/docs/en/sql-reference/statements/create/database.md +++ b/docs/en/sql-reference/statements/create/database.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/database sidebar_position: 35 sidebar_label: DATABASE --- diff --git a/docs/en/sql-reference/statements/create/dictionary.md b/docs/en/sql-reference/statements/create/dictionary.md index 442d7bd8afd..7bf32b265f3 100644 --- a/docs/en/sql-reference/statements/create/dictionary.md +++ b/docs/en/sql-reference/statements/create/dictionary.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/dictionary sidebar_position: 38 sidebar_label: DICTIONARY --- diff --git a/docs/en/sql-reference/statements/create/function.md b/docs/en/sql-reference/statements/create/function.md index 0a452b6c4d2..63c006b1e3e 100644 --- a/docs/en/sql-reference/statements/create/function.md +++ b/docs/en/sql-reference/statements/create/function.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/function sidebar_position: 38 sidebar_label: FUNCTION --- diff --git a/docs/en/sql-reference/statements/create/index.md b/docs/en/sql-reference/statements/create/index.md index 666a2c66d2f..22d97545aa6 100644 --- a/docs/en/sql-reference/statements/create/index.md +++ b/docs/en/sql-reference/statements/create/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/ sidebar_position: 34 sidebar_label: CREATE --- diff --git a/docs/en/sql-reference/statements/create/quota.md b/docs/en/sql-reference/statements/create/quota.md index da6ce01aafd..04d6cdda6bf 100644 --- a/docs/en/sql-reference/statements/create/quota.md +++ b/docs/en/sql-reference/statements/create/quota.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/quota sidebar_position: 42 sidebar_label: QUOTA --- diff --git a/docs/en/sql-reference/statements/create/role.md b/docs/en/sql-reference/statements/create/role.md index d69aeb0976c..aba455030c2 100644 --- a/docs/en/sql-reference/statements/create/role.md +++ b/docs/en/sql-reference/statements/create/role.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/role sidebar_position: 40 sidebar_label: ROLE --- diff --git a/docs/en/sql-reference/statements/create/row-policy.md b/docs/en/sql-reference/statements/create/row-policy.md index c84c67f97f6..32f75c5a594 100644 --- a/docs/en/sql-reference/statements/create/row-policy.md +++ b/docs/en/sql-reference/statements/create/row-policy.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/row-policy sidebar_position: 41 sidebar_label: ROW POLICY --- diff --git a/docs/en/sql-reference/statements/create/settings-profile.md b/docs/en/sql-reference/statements/create/settings-profile.md index 0a3e1c0daf1..3086e076fba 100644 --- a/docs/en/sql-reference/statements/create/settings-profile.md +++ b/docs/en/sql-reference/statements/create/settings-profile.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/settings-profile sidebar_position: 43 sidebar_label: SETTINGS PROFILE --- diff --git a/docs/en/sql-reference/statements/create/table.md b/docs/en/sql-reference/statements/create/table.md index 0e033456998..6bc2aa66080 100644 --- a/docs/en/sql-reference/statements/create/table.md +++ b/docs/en/sql-reference/statements/create/table.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/table sidebar_position: 36 sidebar_label: TABLE --- diff --git a/docs/en/sql-reference/statements/create/user.md b/docs/en/sql-reference/statements/create/user.md index 3837c60deb1..143099bbd4a 100644 --- a/docs/en/sql-reference/statements/create/user.md +++ b/docs/en/sql-reference/statements/create/user.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/user sidebar_position: 39 sidebar_label: USER tags: diff --git a/docs/en/sql-reference/statements/create/view.md b/docs/en/sql-reference/statements/create/view.md index b29b5be9b29..da68ca05bbb 100644 --- a/docs/en/sql-reference/statements/create/view.md +++ b/docs/en/sql-reference/statements/create/view.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/create/view sidebar_position: 37 sidebar_label: VIEW --- diff --git a/docs/en/sql-reference/statements/describe-table.md b/docs/en/sql-reference/statements/describe-table.md index bc15e0e3062..344335f4907 100644 --- a/docs/en/sql-reference/statements/describe-table.md +++ b/docs/en/sql-reference/statements/describe-table.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/describe-table sidebar_position: 42 sidebar_label: DESCRIBE --- diff --git a/docs/en/sql-reference/statements/detach.md b/docs/en/sql-reference/statements/detach.md index 0265cb49f7e..1278c230794 100644 --- a/docs/en/sql-reference/statements/detach.md +++ b/docs/en/sql-reference/statements/detach.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/detach sidebar_position: 43 sidebar_label: DETACH --- diff --git a/docs/en/sql-reference/statements/drop.md b/docs/en/sql-reference/statements/drop.md index 9621cd4944f..28d379421f1 100644 --- a/docs/en/sql-reference/statements/drop.md +++ b/docs/en/sql-reference/statements/drop.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/drop sidebar_position: 44 sidebar_label: DROP --- diff --git a/docs/en/sql-reference/statements/exchange.md b/docs/en/sql-reference/statements/exchange.md index 8bfb142e8e3..33f3e08d547 100644 --- a/docs/en/sql-reference/statements/exchange.md +++ b/docs/en/sql-reference/statements/exchange.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/exchange sidebar_position: 49 sidebar_label: EXCHANGE --- diff --git a/docs/en/sql-reference/statements/exists.md b/docs/en/sql-reference/statements/exists.md index 044bfb9a4b3..8195b34d71f 100644 --- a/docs/en/sql-reference/statements/exists.md +++ b/docs/en/sql-reference/statements/exists.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/exists sidebar_position: 45 sidebar_label: EXISTS --- diff --git a/docs/en/sql-reference/statements/explain.md b/docs/en/sql-reference/statements/explain.md index bc6d967e71a..e89c811ce30 100644 --- a/docs/en/sql-reference/statements/explain.md +++ b/docs/en/sql-reference/statements/explain.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/explain sidebar_position: 39 sidebar_label: EXPLAIN --- diff --git a/docs/en/sql-reference/statements/grant.md b/docs/en/sql-reference/statements/grant.md index c2395e83b7f..56bb4cd4b65 100644 --- a/docs/en/sql-reference/statements/grant.md +++ b/docs/en/sql-reference/statements/grant.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/grant sidebar_position: 38 sidebar_label: GRANT --- diff --git a/docs/en/sql-reference/statements/index.md b/docs/en/sql-reference/statements/index.md index e0c080c13fd..bfb90f4a89f 100644 --- a/docs/en/sql-reference/statements/index.md +++ b/docs/en/sql-reference/statements/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/ sidebar_position: 1 sidebar_label: Statements --- diff --git a/docs/en/sql-reference/statements/insert-into.md b/docs/en/sql-reference/statements/insert-into.md index 194e5f1ea91..764ea9b0292 100644 --- a/docs/en/sql-reference/statements/insert-into.md +++ b/docs/en/sql-reference/statements/insert-into.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/insert-into sidebar_position: 33 sidebar_label: INSERT INTO --- diff --git a/docs/en/sql-reference/statements/kill.md b/docs/en/sql-reference/statements/kill.md index d7b32680abf..37fa821e369 100644 --- a/docs/en/sql-reference/statements/kill.md +++ b/docs/en/sql-reference/statements/kill.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/kill sidebar_position: 46 sidebar_label: KILL --- diff --git a/docs/en/sql-reference/statements/misc.md b/docs/en/sql-reference/statements/misc.md index 6b239fff75f..d812dd2008a 100644 --- a/docs/en/sql-reference/statements/misc.md +++ b/docs/en/sql-reference/statements/misc.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/misc toc_hidden: true sidebar_position: 70 --- diff --git a/docs/en/sql-reference/statements/optimize.md b/docs/en/sql-reference/statements/optimize.md index 969289b8070..f40fe2cfd0a 100644 --- a/docs/en/sql-reference/statements/optimize.md +++ b/docs/en/sql-reference/statements/optimize.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/optimize sidebar_position: 47 sidebar_label: OPTIMIZE --- diff --git a/docs/en/sql-reference/statements/rename.md b/docs/en/sql-reference/statements/rename.md index a7f766efb08..cc33a7c41d4 100644 --- a/docs/en/sql-reference/statements/rename.md +++ b/docs/en/sql-reference/statements/rename.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/rename sidebar_position: 48 sidebar_label: RENAME --- diff --git a/docs/en/sql-reference/statements/revoke.md b/docs/en/sql-reference/statements/revoke.md index f3b13c2664a..7d63d1df445 100644 --- a/docs/en/sql-reference/statements/revoke.md +++ b/docs/en/sql-reference/statements/revoke.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/revoke sidebar_position: 39 sidebar_label: REVOKE --- diff --git a/docs/en/sql-reference/statements/select/all.md b/docs/en/sql-reference/statements/select/all.md index 06a7bbff16a..bb6c77a25c5 100644 --- a/docs/en/sql-reference/statements/select/all.md +++ b/docs/en/sql-reference/statements/select/all.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/all sidebar_label: ALL --- diff --git a/docs/en/sql-reference/statements/select/array-join.md b/docs/en/sql-reference/statements/select/array-join.md index d168f421609..4bed43a3301 100644 --- a/docs/en/sql-reference/statements/select/array-join.md +++ b/docs/en/sql-reference/statements/select/array-join.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/array-join sidebar_label: ARRAY JOIN --- diff --git a/docs/en/sql-reference/statements/select/distinct.md b/docs/en/sql-reference/statements/select/distinct.md index bb429dfbf4b..b2d940af3bb 100644 --- a/docs/en/sql-reference/statements/select/distinct.md +++ b/docs/en/sql-reference/statements/select/distinct.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/distinct sidebar_label: DISTINCT --- diff --git a/docs/en/sql-reference/statements/select/except.md b/docs/en/sql-reference/statements/select/except.md index e8cf4283b47..83bf0879213 100644 --- a/docs/en/sql-reference/statements/select/except.md +++ b/docs/en/sql-reference/statements/select/except.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/except sidebar_label: EXCEPT --- diff --git a/docs/en/sql-reference/statements/select/format.md b/docs/en/sql-reference/statements/select/format.md index d32770f04ce..29ff731af14 100644 --- a/docs/en/sql-reference/statements/select/format.md +++ b/docs/en/sql-reference/statements/select/format.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/format sidebar_label: FORMAT --- diff --git a/docs/en/sql-reference/statements/select/from.md b/docs/en/sql-reference/statements/select/from.md index f1fb04f6818..3013a173c16 100644 --- a/docs/en/sql-reference/statements/select/from.md +++ b/docs/en/sql-reference/statements/select/from.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/from sidebar_label: FROM --- diff --git a/docs/en/sql-reference/statements/select/group-by.md b/docs/en/sql-reference/statements/select/group-by.md index 1d6edc5fa3d..b5e194343ca 100644 --- a/docs/en/sql-reference/statements/select/group-by.md +++ b/docs/en/sql-reference/statements/select/group-by.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/group-by sidebar_label: GROUP BY --- diff --git a/docs/en/sql-reference/statements/select/having.md b/docs/en/sql-reference/statements/select/having.md index a5226d6ccab..85033096a5c 100644 --- a/docs/en/sql-reference/statements/select/having.md +++ b/docs/en/sql-reference/statements/select/having.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/having sidebar_label: HAVING --- diff --git a/docs/en/sql-reference/statements/select/index.md b/docs/en/sql-reference/statements/select/index.md index e039548e50a..c1692bd9b29 100644 --- a/docs/en/sql-reference/statements/select/index.md +++ b/docs/en/sql-reference/statements/select/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/ sidebar_position: 32 sidebar_label: SELECT --- diff --git a/docs/en/sql-reference/statements/select/intersect.md b/docs/en/sql-reference/statements/select/intersect.md index 55204b7b0d8..d3b2b51b6be 100644 --- a/docs/en/sql-reference/statements/select/intersect.md +++ b/docs/en/sql-reference/statements/select/intersect.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/intersect sidebar_label: INTERSECT --- diff --git a/docs/en/sql-reference/statements/select/into-outfile.md b/docs/en/sql-reference/statements/select/into-outfile.md index 6e33673a3c0..a14b23f6689 100644 --- a/docs/en/sql-reference/statements/select/into-outfile.md +++ b/docs/en/sql-reference/statements/select/into-outfile.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/into-outfile sidebar_label: INTO OUTFILE --- diff --git a/docs/en/sql-reference/statements/select/join.md b/docs/en/sql-reference/statements/select/join.md index a36004566a5..1890ff081d8 100644 --- a/docs/en/sql-reference/statements/select/join.md +++ b/docs/en/sql-reference/statements/select/join.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/join sidebar_label: JOIN --- diff --git a/docs/en/sql-reference/statements/select/limit-by.md b/docs/en/sql-reference/statements/select/limit-by.md index 0433ea946cc..28f3d7e86d7 100644 --- a/docs/en/sql-reference/statements/select/limit-by.md +++ b/docs/en/sql-reference/statements/select/limit-by.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/limit-by sidebar_label: LIMIT BY --- diff --git a/docs/en/sql-reference/statements/select/limit.md b/docs/en/sql-reference/statements/select/limit.md index d7eb97c23f2..d61a5a44b58 100644 --- a/docs/en/sql-reference/statements/select/limit.md +++ b/docs/en/sql-reference/statements/select/limit.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/limit sidebar_label: LIMIT --- diff --git a/docs/en/sql-reference/statements/select/offset.md b/docs/en/sql-reference/statements/select/offset.md index ca9a438ec1f..109b29344f2 100644 --- a/docs/en/sql-reference/statements/select/offset.md +++ b/docs/en/sql-reference/statements/select/offset.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/offset sidebar_label: OFFSET --- diff --git a/docs/en/sql-reference/statements/select/order-by.md b/docs/en/sql-reference/statements/select/order-by.md index 0411147f18c..f69612f17fb 100644 --- a/docs/en/sql-reference/statements/select/order-by.md +++ b/docs/en/sql-reference/statements/select/order-by.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/order-by sidebar_label: ORDER BY --- diff --git a/docs/en/sql-reference/statements/select/prewhere.md b/docs/en/sql-reference/statements/select/prewhere.md index 49aa6ea894e..d0248790bfd 100644 --- a/docs/en/sql-reference/statements/select/prewhere.md +++ b/docs/en/sql-reference/statements/select/prewhere.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/prewhere sidebar_label: PREWHERE --- diff --git a/docs/en/sql-reference/statements/select/sample.md b/docs/en/sql-reference/statements/select/sample.md index 85c21f5e271..fb44d7c5a44 100644 --- a/docs/en/sql-reference/statements/select/sample.md +++ b/docs/en/sql-reference/statements/select/sample.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/sample sidebar_label: SAMPLE --- diff --git a/docs/en/sql-reference/statements/select/union.md b/docs/en/sql-reference/statements/select/union.md index ea8c8bcb1e6..002aeaa4488 100644 --- a/docs/en/sql-reference/statements/select/union.md +++ b/docs/en/sql-reference/statements/select/union.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/union sidebar_label: UNION --- diff --git a/docs/en/sql-reference/statements/select/where.md b/docs/en/sql-reference/statements/select/where.md index e010c2dc913..a585942f07f 100644 --- a/docs/en/sql-reference/statements/select/where.md +++ b/docs/en/sql-reference/statements/select/where.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/where sidebar_label: WHERE --- diff --git a/docs/en/sql-reference/statements/select/with.md b/docs/en/sql-reference/statements/select/with.md index 4630e46cdec..689ae74f009 100644 --- a/docs/en/sql-reference/statements/select/with.md +++ b/docs/en/sql-reference/statements/select/with.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/select/with sidebar_label: WITH --- diff --git a/docs/en/sql-reference/statements/set-role.md b/docs/en/sql-reference/statements/set-role.md index 67b85fee9a2..0005ada3f8a 100644 --- a/docs/en/sql-reference/statements/set-role.md +++ b/docs/en/sql-reference/statements/set-role.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/set-role sidebar_position: 51 sidebar_label: SET ROLE --- diff --git a/docs/en/sql-reference/statements/set.md b/docs/en/sql-reference/statements/set.md index aa95eacd071..14f523adc3b 100644 --- a/docs/en/sql-reference/statements/set.md +++ b/docs/en/sql-reference/statements/set.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/set sidebar_position: 50 sidebar_label: SET --- diff --git a/docs/en/sql-reference/statements/show.md b/docs/en/sql-reference/statements/show.md index 6071c129c97..0721f17e9e2 100644 --- a/docs/en/sql-reference/statements/show.md +++ b/docs/en/sql-reference/statements/show.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/show sidebar_position: 37 sidebar_label: SHOW --- diff --git a/docs/en/sql-reference/statements/system.md b/docs/en/sql-reference/statements/system.md index 189c247f9fb..9b7527caaa9 100644 --- a/docs/en/sql-reference/statements/system.md +++ b/docs/en/sql-reference/statements/system.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/system sidebar_position: 36 sidebar_label: SYSTEM --- diff --git a/docs/en/sql-reference/statements/truncate.md b/docs/en/sql-reference/statements/truncate.md index 7aff5f392bf..2fd004c8d60 100644 --- a/docs/en/sql-reference/statements/truncate.md +++ b/docs/en/sql-reference/statements/truncate.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/truncate sidebar_position: 52 sidebar_label: TRUNCATE --- diff --git a/docs/en/sql-reference/statements/use.md b/docs/en/sql-reference/statements/use.md index 508e1269537..5cc052268d4 100644 --- a/docs/en/sql-reference/statements/use.md +++ b/docs/en/sql-reference/statements/use.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/use sidebar_position: 53 sidebar_label: USE --- diff --git a/docs/en/sql-reference/statements/watch.md b/docs/en/sql-reference/statements/watch.md index 2db2c019f18..90d19e6be0e 100644 --- a/docs/en/sql-reference/statements/watch.md +++ b/docs/en/sql-reference/statements/watch.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/statements/watch sidebar_position: 53 sidebar_label: WATCH --- diff --git a/docs/en/sql-reference/syntax.md b/docs/en/sql-reference/syntax.md index 0b403ae2789..837022a424f 100644 --- a/docs/en/sql-reference/syntax.md +++ b/docs/en/sql-reference/syntax.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/syntax sidebar_position: 2 sidebar_label: Syntax --- diff --git a/docs/en/sql-reference/table-functions/cluster.md b/docs/en/sql-reference/table-functions/cluster.md index 11dd63e7f65..9da7a233e82 100644 --- a/docs/en/sql-reference/table-functions/cluster.md +++ b/docs/en/sql-reference/table-functions/cluster.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/cluster sidebar_position: 50 sidebar_label: cluster --- diff --git a/docs/en/sql-reference/table-functions/dictionary.md b/docs/en/sql-reference/table-functions/dictionary.md index b192498af66..2bdc2e580cd 100644 --- a/docs/en/sql-reference/table-functions/dictionary.md +++ b/docs/en/sql-reference/table-functions/dictionary.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/dictionary sidebar_position: 54 sidebar_label: dictionary function --- diff --git a/docs/en/sql-reference/table-functions/file.md b/docs/en/sql-reference/table-functions/file.md index e1d9eb73b73..a110bfbd15c 100644 --- a/docs/en/sql-reference/table-functions/file.md +++ b/docs/en/sql-reference/table-functions/file.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/file sidebar_position: 37 sidebar_label: file --- diff --git a/docs/en/sql-reference/table-functions/generate.md b/docs/en/sql-reference/table-functions/generate.md index 8459d47899b..854d42480e9 100644 --- a/docs/en/sql-reference/table-functions/generate.md +++ b/docs/en/sql-reference/table-functions/generate.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/generate sidebar_position: 47 sidebar_label: generateRandom --- diff --git a/docs/en/sql-reference/table-functions/hdfs.md b/docs/en/sql-reference/table-functions/hdfs.md index 49cc65cb87a..94d0b16b4f3 100644 --- a/docs/en/sql-reference/table-functions/hdfs.md +++ b/docs/en/sql-reference/table-functions/hdfs.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/hdfs sidebar_position: 45 sidebar_label: hdfs --- diff --git a/docs/en/sql-reference/table-functions/hdfsCluster.md b/docs/en/sql-reference/table-functions/hdfsCluster.md index f8511d74bff..231c552610f 100644 --- a/docs/en/sql-reference/table-functions/hdfsCluster.md +++ b/docs/en/sql-reference/table-functions/hdfsCluster.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/hdfsCluster sidebar_position: 55 sidebar_label: hdfsCluster --- diff --git a/docs/en/sql-reference/table-functions/index.md b/docs/en/sql-reference/table-functions/index.md index 95c0d2f8494..d09adcd13d6 100644 --- a/docs/en/sql-reference/table-functions/index.md +++ b/docs/en/sql-reference/table-functions/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/ sidebar_label: Table Functions sidebar_position: 34 --- diff --git a/docs/en/sql-reference/table-functions/input.md b/docs/en/sql-reference/table-functions/input.md index bf9da0091a3..2640d108083 100644 --- a/docs/en/sql-reference/table-functions/input.md +++ b/docs/en/sql-reference/table-functions/input.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/input sidebar_position: 46 sidebar_label: input --- diff --git a/docs/en/sql-reference/table-functions/jdbc.md b/docs/en/sql-reference/table-functions/jdbc.md index d0111246d96..168df08fbd7 100644 --- a/docs/en/sql-reference/table-functions/jdbc.md +++ b/docs/en/sql-reference/table-functions/jdbc.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/jdbc sidebar_position: 43 sidebar_label: jdbc --- diff --git a/docs/en/sql-reference/table-functions/merge.md b/docs/en/sql-reference/table-functions/merge.md index 1597b7be98f..d83e088a613 100644 --- a/docs/en/sql-reference/table-functions/merge.md +++ b/docs/en/sql-reference/table-functions/merge.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/merge sidebar_position: 38 sidebar_label: merge --- diff --git a/docs/en/sql-reference/table-functions/mysql.md b/docs/en/sql-reference/table-functions/mysql.md index 60d95b17c4c..f867cda45bd 100644 --- a/docs/en/sql-reference/table-functions/mysql.md +++ b/docs/en/sql-reference/table-functions/mysql.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/mysql sidebar_position: 42 sidebar_label: mysql --- diff --git a/docs/en/sql-reference/table-functions/null.md b/docs/en/sql-reference/table-functions/null.md index 57a885afc54..cbe8480fbd8 100644 --- a/docs/en/sql-reference/table-functions/null.md +++ b/docs/en/sql-reference/table-functions/null.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/null sidebar_position: 53 sidebar_label: null function --- diff --git a/docs/en/sql-reference/table-functions/numbers.md b/docs/en/sql-reference/table-functions/numbers.md index a069afc3b58..f8598d10afb 100644 --- a/docs/en/sql-reference/table-functions/numbers.md +++ b/docs/en/sql-reference/table-functions/numbers.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/numbers sidebar_position: 39 sidebar_label: numbers --- diff --git a/docs/en/sql-reference/table-functions/odbc.md b/docs/en/sql-reference/table-functions/odbc.md index 71f36a3da1a..f8c46fe44d8 100644 --- a/docs/en/sql-reference/table-functions/odbc.md +++ b/docs/en/sql-reference/table-functions/odbc.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/odbc sidebar_position: 44 sidebar_label: odbc --- diff --git a/docs/en/sql-reference/table-functions/postgresql.md b/docs/en/sql-reference/table-functions/postgresql.md index b955b946d4e..367edbe9a00 100644 --- a/docs/en/sql-reference/table-functions/postgresql.md +++ b/docs/en/sql-reference/table-functions/postgresql.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/postgresql sidebar_position: 42 sidebar_label: postgresql --- diff --git a/docs/en/sql-reference/table-functions/remote.md b/docs/en/sql-reference/table-functions/remote.md index 61018a3d5a7..ccaf9565144 100644 --- a/docs/en/sql-reference/table-functions/remote.md +++ b/docs/en/sql-reference/table-functions/remote.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/remote sidebar_position: 40 sidebar_label: remote --- diff --git a/docs/en/sql-reference/table-functions/s3.md b/docs/en/sql-reference/table-functions/s3.md index 39446dbd512..2df7d6e46b3 100644 --- a/docs/en/sql-reference/table-functions/s3.md +++ b/docs/en/sql-reference/table-functions/s3.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/s3 sidebar_position: 45 sidebar_label: s3 --- diff --git a/docs/en/sql-reference/table-functions/s3Cluster.md b/docs/en/sql-reference/table-functions/s3Cluster.md index 939aface0d7..ec6a73e4cbb 100644 --- a/docs/en/sql-reference/table-functions/s3Cluster.md +++ b/docs/en/sql-reference/table-functions/s3Cluster.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/s3Cluster sidebar_position: 55 sidebar_label: s3Cluster --- diff --git a/docs/en/sql-reference/table-functions/sqlite.md b/docs/en/sql-reference/table-functions/sqlite.md index ff6ac64b382..789ab97c3c3 100644 --- a/docs/en/sql-reference/table-functions/sqlite.md +++ b/docs/en/sql-reference/table-functions/sqlite.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/sqlite sidebar_position: 55 sidebar_label: sqlite --- diff --git a/docs/en/sql-reference/table-functions/url.md b/docs/en/sql-reference/table-functions/url.md index ebd793a5f3e..f1ed7b4dfe4 100644 --- a/docs/en/sql-reference/table-functions/url.md +++ b/docs/en/sql-reference/table-functions/url.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/url sidebar_position: 41 sidebar_label: url --- diff --git a/docs/en/sql-reference/table-functions/view.md b/docs/en/sql-reference/table-functions/view.md index e3b63cf5588..ee8da8209d1 100644 --- a/docs/en/sql-reference/table-functions/view.md +++ b/docs/en/sql-reference/table-functions/view.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/table-functions/view sidebar_position: 51 sidebar_label: view --- diff --git a/docs/en/sql-reference/window-functions/index.md b/docs/en/sql-reference/window-functions/index.md index cfbeb781711..51a671f85e8 100644 --- a/docs/en/sql-reference/window-functions/index.md +++ b/docs/en/sql-reference/window-functions/index.md @@ -1,4 +1,5 @@ --- +slug: /en/sql-reference/window-functions/ sidebar_position: 62 sidebar_label: Window Functions --- diff --git a/docs/ru/about-us/adopters.mdx b/docs/ru/about-us/adopters.mdx index 7c0b9e030b7..9e59d9edd70 100644 --- a/docs/ru/about-us/adopters.mdx +++ b/docs/ru/about-us/adopters.mdx @@ -1,4 +1,5 @@ --- +slug: /ru/about-us/adopters sidebar_label: Adopters title: ClickHouse Adopters --- diff --git a/docs/ru/about-us/support.mdx b/docs/ru/about-us/support.mdx index 85e1a5675dd..f1c94f15ef6 100644 --- a/docs/ru/about-us/support.mdx +++ b/docs/ru/about-us/support.mdx @@ -1,4 +1,5 @@ --- +slug: /ru/about-us/support sidebar_label: Commercial Support title: ClickHouse Commercial Support Service --- diff --git a/docs/ru/whats-new/changelog/2017.mdx b/docs/ru/whats-new/changelog/2017.mdx index e91bdf0e908..9d1c7220f3d 100644 --- a/docs/ru/whats-new/changelog/2017.mdx +++ b/docs/ru/whats-new/changelog/2017.mdx @@ -1,4 +1,5 @@ --- +slug: /ru/whats-new/changelog/2017 sidebar_position: 6 sidebar_label: 2017 title: 2017 Changelog diff --git a/docs/ru/whats-new/changelog/2018.mdx b/docs/ru/whats-new/changelog/2018.mdx index 40270b0d314..fb804afa293 100644 --- a/docs/ru/whats-new/changelog/2018.mdx +++ b/docs/ru/whats-new/changelog/2018.mdx @@ -1,4 +1,5 @@ --- +slug: /ru/whats-new/changelog/2018 sidebar_position: 5 sidebar_label: 2018 title: 2018 Changelog diff --git a/docs/ru/whats-new/changelog/2019.mdx b/docs/ru/whats-new/changelog/2019.mdx index bad312817f4..caea40f6077 100644 --- a/docs/ru/whats-new/changelog/2019.mdx +++ b/docs/ru/whats-new/changelog/2019.mdx @@ -1,4 +1,5 @@ --- +slug: /ru/whats-new/changelog/2019 sidebar_position: 4 sidebar_label: 2019 title: 2019 Changelog diff --git a/docs/ru/whats-new/changelog/2020.mdx b/docs/ru/whats-new/changelog/2020.mdx index 6488d1b6ce5..51943785a4a 100644 --- a/docs/ru/whats-new/changelog/2020.mdx +++ b/docs/ru/whats-new/changelog/2020.mdx @@ -1,4 +1,5 @@ --- +slug: /ru/whats-new/changelog/2020 sidebar_position: 3 sidebar_label: 2020 title: 2020 Changelog diff --git a/docs/ru/whats-new/changelog/2021.mdx b/docs/ru/whats-new/changelog/2021.mdx index 4cc1390a10e..d517bad19e6 100644 --- a/docs/ru/whats-new/changelog/2021.mdx +++ b/docs/ru/whats-new/changelog/2021.mdx @@ -1,4 +1,5 @@ --- +slug: /ru/whats-new/changelog/2021 sidebar_position: 2 sidebar_label: 2021 title: 2021 Changelog diff --git a/docs/ru/whats-new/roadmap.mdx b/docs/ru/whats-new/roadmap.mdx index 6b7565cd28c..a5f3538caf1 100644 --- a/docs/ru/whats-new/roadmap.mdx +++ b/docs/ru/whats-new/roadmap.mdx @@ -1,4 +1,5 @@ --- +slug: /ru/whats-new/roadmap sidebar_label: Roadmap title: Roadmap --- From 5d1e3ee4d8f24ec465ff80b3f15156f81f5d4fb1 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Sun, 28 Aug 2022 11:04:51 -0400 Subject: [PATCH 58/61] remove duplicate --- docs/en/development/index.md | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 docs/en/development/index.md diff --git a/docs/en/development/index.md b/docs/en/development/index.md deleted file mode 100644 index 7ad5f5de444..00000000000 --- a/docs/en/development/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -slug: /en/development/ -sidebar_label: Development -sidebar_position: 58 ---- - -# ClickHouse Development - -[Original article](https://clickhouse.com/docs/en/development/) From 37127c683cc96a9dc2af8fda3ffbd182c87b4117 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Sun, 28 Aug 2022 11:35:03 -0400 Subject: [PATCH 59/61] remove symlinks --- docs/ru/development/adding_test_queries.md | 1 - docs/ru/development/adding_test_queries.mdx | 10 ++++++++++ docs/ru/development/build-cross-arm.md | 1 - docs/ru/development/build-cross-arm.mdx | 10 ++++++++++ docs/ru/development/build-cross-osx.md | 1 - docs/ru/development/build-cross-osx.mdx | 10 ++++++++++ docs/ru/development/build-cross-riscv.md | 1 - docs/ru/development/build-cross-riscv.mdx | 10 ++++++++++ docs/ru/development/build.md | 1 - docs/ru/development/build.mdx | 10 ++++++++++ docs/ru/development/continuous-integration.md | 1 - docs/ru/development/continuous-integration.mdx | 10 ++++++++++ docs/ru/development/index.md | 1 - docs/ru/development/tests.md | 1 - docs/ru/development/tests.mdx | 9 +++++++++ 15 files changed, 69 insertions(+), 8 deletions(-) delete mode 120000 docs/ru/development/adding_test_queries.md create mode 100644 docs/ru/development/adding_test_queries.mdx delete mode 120000 docs/ru/development/build-cross-arm.md create mode 100644 docs/ru/development/build-cross-arm.mdx delete mode 120000 docs/ru/development/build-cross-osx.md create mode 100644 docs/ru/development/build-cross-osx.mdx delete mode 120000 docs/ru/development/build-cross-riscv.md create mode 100644 docs/ru/development/build-cross-riscv.mdx delete mode 120000 docs/ru/development/build.md create mode 100644 docs/ru/development/build.mdx delete mode 120000 docs/ru/development/continuous-integration.md create mode 100644 docs/ru/development/continuous-integration.mdx delete mode 120000 docs/ru/development/index.md delete mode 120000 docs/ru/development/tests.md create mode 100644 docs/ru/development/tests.mdx diff --git a/docs/ru/development/adding_test_queries.md b/docs/ru/development/adding_test_queries.md deleted file mode 120000 index def9c4077be..00000000000 --- a/docs/ru/development/adding_test_queries.md +++ /dev/null @@ -1 +0,0 @@ -../../en/development/adding_test_queries.md \ No newline at end of file diff --git a/docs/ru/development/adding_test_queries.mdx b/docs/ru/development/adding_test_queries.mdx new file mode 100644 index 00000000000..24149984724 --- /dev/null +++ b/docs/ru/development/adding_test_queries.mdx @@ -0,0 +1,10 @@ +--- +slug: /ru/development/adding_test_queries +sidebar_label: Adding Test Queries +sidebar_position: 63 +title: How to add test queries to ClickHouse CI +--- + +import Content from '@site/docs/en/development/adding_test_queries.md'; + + diff --git a/docs/ru/development/build-cross-arm.md b/docs/ru/development/build-cross-arm.md deleted file mode 120000 index 134f128a40c..00000000000 --- a/docs/ru/development/build-cross-arm.md +++ /dev/null @@ -1 +0,0 @@ -../../en/development/build-cross-arm.md \ No newline at end of file diff --git a/docs/ru/development/build-cross-arm.mdx b/docs/ru/development/build-cross-arm.mdx new file mode 100644 index 00000000000..62c99c7dcd0 --- /dev/null +++ b/docs/ru/development/build-cross-arm.mdx @@ -0,0 +1,10 @@ +--- +slug: /ru/development/build-cross-arm +sidebar_position: 68 +sidebar_label: Build on Linux for RISC-V 64 +title: Build on Linux for RISC-V 64 +--- + +import Content from '@site/docs/en/development/build-cross-arm.md'; + + diff --git a/docs/ru/development/build-cross-osx.md b/docs/ru/development/build-cross-osx.md deleted file mode 120000 index bcc10df574c..00000000000 --- a/docs/ru/development/build-cross-osx.md +++ /dev/null @@ -1 +0,0 @@ -../../en/development/build-cross-osx.md \ No newline at end of file diff --git a/docs/ru/development/build-cross-osx.mdx b/docs/ru/development/build-cross-osx.mdx new file mode 100644 index 00000000000..19d9501b1bf --- /dev/null +++ b/docs/ru/development/build-cross-osx.mdx @@ -0,0 +1,10 @@ +--- +slug: /ru/development/build-cross-osx +sidebar_position: 66 +sidebar_label: Build on Linux for Mac OS X +title: How to Build ClickHouse on Linux for Mac OS X +--- + +import Content from '@site/docs/en/development/build-cross-osx.md'; + + diff --git a/docs/ru/development/build-cross-riscv.md b/docs/ru/development/build-cross-riscv.md deleted file mode 120000 index 7d1e8c46ed8..00000000000 --- a/docs/ru/development/build-cross-riscv.md +++ /dev/null @@ -1 +0,0 @@ -../../en/development/build-cross-riscv.md \ No newline at end of file diff --git a/docs/ru/development/build-cross-riscv.mdx b/docs/ru/development/build-cross-riscv.mdx new file mode 100644 index 00000000000..847717dacf3 --- /dev/null +++ b/docs/ru/development/build-cross-riscv.mdx @@ -0,0 +1,10 @@ +--- +slug: /ru/development/build-cross-riscv +sidebar_position: 68 +sidebar_label: Build on Linux for RISC-V 64 +title: Build on Linux for RISC-V 64 +--- + +import Content from '@site/docs/en/development/build-cross-riscv.md'; + + diff --git a/docs/ru/development/build.md b/docs/ru/development/build.md deleted file mode 120000 index 480dbc2e9f5..00000000000 --- a/docs/ru/development/build.md +++ /dev/null @@ -1 +0,0 @@ -../../en/development/build.md \ No newline at end of file diff --git a/docs/ru/development/build.mdx b/docs/ru/development/build.mdx new file mode 100644 index 00000000000..6f7186d4c11 --- /dev/null +++ b/docs/ru/development/build.mdx @@ -0,0 +1,10 @@ +--- +slug: /ru/development/build +sidebar_position: 66 +sidebar_label: Build on Linux +title: How to Build ClickHouse on Linux +--- + +import Content from '@site/docs/en/development/build.md'; + + diff --git a/docs/ru/development/continuous-integration.md b/docs/ru/development/continuous-integration.md deleted file mode 120000 index f68058a436e..00000000000 --- a/docs/ru/development/continuous-integration.md +++ /dev/null @@ -1 +0,0 @@ -../../en/development/continuous-integration.md \ No newline at end of file diff --git a/docs/ru/development/continuous-integration.mdx b/docs/ru/development/continuous-integration.mdx new file mode 100644 index 00000000000..c15fd3fc54d --- /dev/null +++ b/docs/ru/development/continuous-integration.mdx @@ -0,0 +1,10 @@ +--- +slug: /ru/development/continuous-integration +sidebar_position: 62 +sidebar_label: Continuous Integration Checks +title: Continuous Integration Checks +--- + +import Content from '@site/docs/en/development/continuous-integration.md'; + + diff --git a/docs/ru/development/index.md b/docs/ru/development/index.md deleted file mode 120000 index 1e2ad97dcc5..00000000000 --- a/docs/ru/development/index.md +++ /dev/null @@ -1 +0,0 @@ -../../en/development/index.md \ No newline at end of file diff --git a/docs/ru/development/tests.md b/docs/ru/development/tests.md deleted file mode 120000 index c03d36c3916..00000000000 --- a/docs/ru/development/tests.md +++ /dev/null @@ -1 +0,0 @@ -../../en/development/tests.md \ No newline at end of file diff --git a/docs/ru/development/tests.mdx b/docs/ru/development/tests.mdx new file mode 100644 index 00000000000..8cec2c2bdef --- /dev/null +++ b/docs/ru/development/tests.mdx @@ -0,0 +1,9 @@ +--- +slug: /ru/development/tests +sidebar_label: Testing +title: ClickHouse Testing +--- + +import Content from '@site/docs/en/development/tests.md'; + + From fad2e071eb09b68bf82fbb2a7569d0d07e26ba41 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Sun, 28 Aug 2022 11:58:59 -0400 Subject: [PATCH 60/61] replace symlinks with includes --- docs/en/development/adding_test_queries.md | 2 +- docs/en/development/build-cross-arm.md | 3 +-- docs/en/development/build-cross-osx.md | 2 +- docs/en/development/build-cross-riscv.md | 3 +-- docs/en/development/build-osx.md | 3 +-- docs/en/development/build.md | 2 +- docs/en/development/continuous-integration.md | 3 +-- docs/en/development/tests.md | 3 +-- docs/ru/development/build-cross-arm.mdx | 6 +++--- docs/ru/development/build-cross-osx.mdx | 2 +- docs/ru/development/build-osx.md | 2 +- docs/ru/development/build.mdx | 2 +- docs/ru/development/integrating_rust_libraries.md | 1 + docs/ru/development/tests.mdx | 1 + 14 files changed, 16 insertions(+), 19 deletions(-) diff --git a/docs/en/development/adding_test_queries.md b/docs/en/development/adding_test_queries.md index 68adff5a623..5c3dd7d85eb 100644 --- a/docs/en/development/adding_test_queries.md +++ b/docs/en/development/adding_test_queries.md @@ -2,10 +2,10 @@ slug: /en/development/adding_test_queries sidebar_label: Adding Test Queries sidebar_position: 63 +title: How to add test queries to ClickHouse CI description: Instructions on how to add a test case to ClickHouse continuous integration --- -# How to add test queries to ClickHouse CI ClickHouse has hundreds (or even thousands) of features. Every commit gets checked by a complex set of tests containing many thousands of test cases. diff --git a/docs/en/development/build-cross-arm.md b/docs/en/development/build-cross-arm.md index c33d83d4f0a..c40ed1d7e86 100644 --- a/docs/en/development/build-cross-arm.md +++ b/docs/en/development/build-cross-arm.md @@ -1,11 +1,10 @@ --- slug: /en/development/build-cross-arm sidebar_position: 67 +title: How to Build ClickHouse on Linux for AARCH64 (ARM64) Architecture sidebar_label: Build on Linux for AARCH64 (ARM64) --- -# How to Build ClickHouse on Linux for AARCH64 (ARM64) Architecture - If you use AArch64 machine and want to build ClickHouse for AArch64, build as usual. If you use x86_64 machine and want cross-compile for AArch64, add the following flag to `cmake`: `-DCMAKE_TOOLCHAIN_FILE=cmake/linux/toolchain-aarch64.cmake` diff --git a/docs/en/development/build-cross-osx.md b/docs/en/development/build-cross-osx.md index d6ca94b8ce6..7b151d087df 100644 --- a/docs/en/development/build-cross-osx.md +++ b/docs/en/development/build-cross-osx.md @@ -1,10 +1,10 @@ --- slug: /en/development/build-cross-osx sidebar_position: 66 +title: How to Build ClickHouse on Linux for Mac OS X sidebar_label: Build on Linux for Mac OS X --- -# How to Build ClickHouse on Linux for Mac OS X This is for the case when you have a Linux machine and want to use it to build `clickhouse` binary that will run on OS X. This is intended for continuous integration checks that run on Linux servers. If you want to build ClickHouse directly on Mac OS X, then proceed with [another instruction](../development/build-osx.md). diff --git a/docs/en/development/build-cross-riscv.md b/docs/en/development/build-cross-riscv.md index 342d29fe000..a20913e7a32 100644 --- a/docs/en/development/build-cross-riscv.md +++ b/docs/en/development/build-cross-riscv.md @@ -1,11 +1,10 @@ --- slug: /en/development/build-cross-riscv sidebar_position: 68 +title: How to Build ClickHouse on Linux for RISC-V 64 Architecture sidebar_label: Build on Linux for RISC-V 64 --- -# How to Build ClickHouse on Linux for RISC-V 64 Architecture - As of writing (11.11.2021) building for risc-v considered to be highly experimental. Not all features can be enabled. This is for the case when you have Linux machine and want to use it to build `clickhouse` binary that will run on another Linux machine with RISC-V 64 CPU architecture. This is intended for continuous integration checks that run on Linux servers. diff --git a/docs/en/development/build-osx.md b/docs/en/development/build-osx.md index da34a315ba6..97e4e4ddde1 100644 --- a/docs/en/development/build-osx.md +++ b/docs/en/development/build-osx.md @@ -2,11 +2,10 @@ slug: /en/development/build-osx sidebar_position: 65 sidebar_label: Build on Mac OS X +title: How to Build ClickHouse on Mac OS X description: How to build ClickHouse on Mac OS X --- -# How to Build ClickHouse on Mac OS X - :::info You don't have to build ClickHouse yourself! You can install pre-built ClickHouse as described in [Quick Start](https://clickhouse.com/#quick-start). Follow **macOS (Intel)** or **macOS (Apple silicon)** installation instructions. ::: diff --git a/docs/en/development/build.md b/docs/en/development/build.md index 8204dba0d2f..fa04fbf2680 100644 --- a/docs/en/development/build.md +++ b/docs/en/development/build.md @@ -2,10 +2,10 @@ slug: /en/development/build sidebar_position: 64 sidebar_label: Build on Linux +title: How to Build ClickHouse on Linux description: How to build ClickHouse on Linux --- -# How to Build ClickHouse on Linux Supported platforms: diff --git a/docs/en/development/continuous-integration.md b/docs/en/development/continuous-integration.md index 2eec6a2c026..677fb81efdd 100644 --- a/docs/en/development/continuous-integration.md +++ b/docs/en/development/continuous-integration.md @@ -2,11 +2,10 @@ slug: /en/development/continuous-integration sidebar_position: 62 sidebar_label: Continuous Integration Checks +title: Continuous Integration Checks description: When you submit a pull request, some automated checks are ran for your code by the ClickHouse continuous integration (CI) system --- -# Continuous Integration Checks - When you submit a pull request, some automated checks are ran for your code by the ClickHouse [continuous integration (CI) system](tests.md#test-automation). This happens after a repository maintainer (someone from ClickHouse team) has diff --git a/docs/en/development/tests.md b/docs/en/development/tests.md index d103eb3426c..e6d5cf66de9 100644 --- a/docs/en/development/tests.md +++ b/docs/en/development/tests.md @@ -2,11 +2,10 @@ slug: /en/development/tests sidebar_position: 70 sidebar_label: Testing +title: ClickHouse Testing description: Most of ClickHouse features can be tested with functional tests and they are mandatory to use for every change in ClickHouse code that can be tested that way. --- -# ClickHouse Testing - ## Functional Tests Functional tests are the most simple and convenient to use. Most of ClickHouse features can be tested with functional tests and they are mandatory to use for every change in ClickHouse code that can be tested that way. diff --git a/docs/ru/development/build-cross-arm.mdx b/docs/ru/development/build-cross-arm.mdx index 62c99c7dcd0..fd510716174 100644 --- a/docs/ru/development/build-cross-arm.mdx +++ b/docs/ru/development/build-cross-arm.mdx @@ -1,8 +1,8 @@ --- slug: /ru/development/build-cross-arm -sidebar_position: 68 -sidebar_label: Build on Linux for RISC-V 64 -title: Build on Linux for RISC-V 64 +sidebar_position: 67 +title: How to Build ClickHouse on Linux for AARCH64 (ARM64) Architecture +sidebar_label: Build on Linux for AARCH64 (ARM64) --- import Content from '@site/docs/en/development/build-cross-arm.md'; diff --git a/docs/ru/development/build-cross-osx.mdx b/docs/ru/development/build-cross-osx.mdx index 19d9501b1bf..9a64c4abccd 100644 --- a/docs/ru/development/build-cross-osx.mdx +++ b/docs/ru/development/build-cross-osx.mdx @@ -1,6 +1,6 @@ --- slug: /ru/development/build-cross-osx -sidebar_position: 66 +sidebar_position: 67 sidebar_label: Build on Linux for Mac OS X title: How to Build ClickHouse on Linux for Mac OS X --- diff --git a/docs/ru/development/build-osx.md b/docs/ru/development/build-osx.md index 89eb2297f9e..82668a1ea55 100644 --- a/docs/ru/development/build-osx.md +++ b/docs/ru/development/build-osx.md @@ -1,6 +1,6 @@ --- slug: /ru/development/build-osx -sidebar_position: 65 +sidebar_position: 66 sidebar_label: Сборка на Mac OS X --- diff --git a/docs/ru/development/build.mdx b/docs/ru/development/build.mdx index 6f7186d4c11..5939429e610 100644 --- a/docs/ru/development/build.mdx +++ b/docs/ru/development/build.mdx @@ -1,6 +1,6 @@ --- slug: /ru/development/build -sidebar_position: 66 +sidebar_position: 65 sidebar_label: Build on Linux title: How to Build ClickHouse on Linux --- diff --git a/docs/ru/development/integrating_rust_libraries.md b/docs/ru/development/integrating_rust_libraries.md index 2db1652900d..aad83f61c14 100644 --- a/docs/ru/development/integrating_rust_libraries.md +++ b/docs/ru/development/integrating_rust_libraries.md @@ -1,4 +1,5 @@ --- +sidebar_position: 98 slug: /ru/development/integrating_rust_libraries --- # Интеграция библиотек на языке Rust в ClickHouse. diff --git a/docs/ru/development/tests.mdx b/docs/ru/development/tests.mdx index 8cec2c2bdef..3f44771d754 100644 --- a/docs/ru/development/tests.mdx +++ b/docs/ru/development/tests.mdx @@ -1,4 +1,5 @@ --- +sidebar_position: 99 slug: /ru/development/tests sidebar_label: Testing title: ClickHouse Testing From 71891938ae65dcf74f0ce57aa7b57185bd543b31 Mon Sep 17 00:00:00 2001 From: DanRoscigno Date: Sun, 28 Aug 2022 14:08:07 -0400 Subject: [PATCH 61/61] replace symlinks with includes --- docs/ru/faq/operations/production.md | 2 +- docs/ru/getting-started/install.md | 2 +- docs/ru/operations/settings/settings.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ru/faq/operations/production.md b/docs/ru/faq/operations/production.md index 1984a464edb..6a8b7bc5fb6 100644 --- a/docs/ru/faq/operations/production.md +++ b/docs/ru/faq/operations/production.md @@ -33,7 +33,7 @@ sidebar_position: 10 Второе направление — **автоматизированное тестирование**. Не думайте, что если какой-то запрос отработал успешно один раз, так будет всегда. Считается приемлемым выполнять некоторые юнит-тесты, используя "заглушки" вместо запросов к СУБД. Но вы должны проводить достаточное количество автотестов, где запросы выполняются в реальном ClickHouse, чтобы убедиться, что все важные задачи отрабатывают должным образом. -В продолжение этой темы, вы можете поделиться вашими автотестами и передать их [в открытую тестовую среду ClickHouse](https://github.com/ClickHouse/ClickHouse/tree/master/tests), которая используется для постоянного развития нашей СУБД. Вам придётся потратить немного времени и сил, чтобы научиться [составлять и выполнять тесты](../../development/tests.md), а также чтобы перенести ваши тесты на эту платформу. Наградой за это станет уверенность в том, что новые стабильные релизы ClickHouse будут корректно работать на ваших задачах. Это гораздо лучше, чем тратить время на то, чтобы вновь отлавливать прежние ошибки в новых версиях, а затем ждать, пока их исправят и включат эти исправления в очередной релиз. Некоторые компании уже включили в корпоративные регламенты необходимость передачи своих тестов в ClickHouse, прежде всего стоит упомянуть [правило Beyonce](https://www.oreilly.com/library/view/software-engineering-at/9781492082781/ch01.html#policies_that_scale_well), действующее в Google. +В продолжение этой темы, вы можете поделиться вашими автотестами и передать их [в открытую тестовую среду ClickHouse](https://github.com/ClickHouse/ClickHouse/tree/master/tests), которая используется для постоянного развития нашей СУБД. Вам придётся потратить немного времени и сил, чтобы научиться [составлять и выполнять тесты](../../development/tests.mdx), а также чтобы перенести ваши тесты на эту платформу. Наградой за это станет уверенность в том, что новые стабильные релизы ClickHouse будут корректно работать на ваших задачах. Это гораздо лучше, чем тратить время на то, чтобы вновь отлавливать прежние ошибки в новых версиях, а затем ждать, пока их исправят и включат эти исправления в очередной релиз. Некоторые компании уже включили в корпоративные регламенты необходимость передачи своих тестов в ClickHouse, прежде всего стоит упомянуть [правило Beyonce](https://www.oreilly.com/library/view/software-engineering-at/9781492082781/ch01.html#policies_that_scale_well), действующее в Google. После того, как вы подготовили тестовую среду и инфраструктуру, выбор версии ClickHouse упрощается: diff --git a/docs/ru/getting-started/install.md b/docs/ru/getting-started/install.md index 534ab511b25..02d8c62669d 100644 --- a/docs/ru/getting-started/install.md +++ b/docs/ru/getting-started/install.md @@ -214,7 +214,7 @@ sudo ./clickhouse install ### Из исходного кода {#from-sources} -Для компиляции ClickHouse вручную, используйте инструкцию для [Linux](../development/build.md) или [Mac OS X](../development/build-osx.md). +Для компиляции ClickHouse вручную, используйте инструкцию для [Linux](../development/build.mdx) или [Mac OS X](../development/build-osx.md). Можно скомпилировать пакеты и установить их, либо использовать программы без установки пакетов. Также при ручой сборке можно отключить необходимость поддержки набора инструкций SSE 4.2 или собрать под процессоры архитектуры AArch64. diff --git a/docs/ru/operations/settings/settings.md b/docs/ru/operations/settings/settings.md index abaa05639c6..5ddc684ce2a 100644 --- a/docs/ru/operations/settings/settings.md +++ b/docs/ru/operations/settings/settings.md @@ -999,7 +999,7 @@ log_query_threads=1 Задаёт значение поля `log_comment` таблицы [system.query_log](../system-tables/query_log.md) и текст комментария в логе сервера. -Может быть использована для улучшения читабельности логов сервера. Кроме того, помогает быстро выделить связанные с тестом запросы из `system.query_log` после запуска [clickhouse-test](../../development/tests.md). +Может быть использована для улучшения читабельности логов сервера. Кроме того, помогает быстро выделить связанные с тестом запросы из `system.query_log` после запуска [clickhouse-test](../../development/tests.mdx). Возможные значения: