diff --git a/CMakeLists.txt b/CMakeLists.txt
index aff5375663f..36ba4c12a5b 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 ()
@@ -600,6 +601,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)
diff --git a/docs/en/development/adding_test_queries.md b/docs/en/development/adding_test_queries.md
index 7ae50768eba..5c3dd7d85eb 100644
--- a/docs/en/development/adding_test_queries.md
+++ b/docs/en/development/adding_test_queries.md
@@ -1,10 +1,11 @@
---
+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/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..c40ed1d7e86 100644
--- a/docs/en/development/build-cross-arm.md
+++ b/docs/en/development/build-cross-arm.md
@@ -1,10 +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 0072c3253cf..7b151d087df 100644
--- a/docs/en/development/build-cross-osx.md
+++ b/docs/en/development/build-cross-osx.md
@@ -1,9 +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 a0b31ff131a..a20913e7a32 100644
--- a/docs/en/development/build-cross-riscv.md
+++ b/docs/en/development/build-cross-riscv.md
@@ -1,10 +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 ce12f92c0b9..97e4e4ddde1 100644
--- a/docs/en/development/build-osx.md
+++ b/docs/en/development/build-osx.md
@@ -1,11 +1,11 @@
---
+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 cea6354094b..fa04fbf2680 100644
--- a/docs/en/development/build.md
+++ b/docs/en/development/build.md
@@ -1,10 +1,11 @@
---
+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 9b01c69eb78..677fb81efdd 100644
--- a/docs/en/development/continuous-integration.md
+++ b/docs/en/development/continuous-integration.md
@@ -1,11 +1,11 @@
---
+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/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..82cb4018625 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
@@ -285,9 +286,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!
diff --git a/docs/en/development/index.md b/docs/en/development/index.md
deleted file mode 100644
index 7849c736229..00000000000
--- a/docs/en/development/index.md
+++ /dev/null
@@ -1,8 +0,0 @@
----
-sidebar_label: Development
-sidebar_position: 58
----
-
-# ClickHouse Development
-
-[Original article](https://clickhouse.com/docs/en/development/)
diff --git a/docs/en/development/integrating_rust_libraries.md b/docs/en/development/integrating_rust_libraries.md
index ccb703376cb..ef0472bf4ac 100644
--- a/docs/en/development/integrating_rust_libraries.md
+++ b/docs/en/development/integrating_rust_libraries.md
@@ -1,3 +1,6 @@
+---
+slug: /en/development/integrating_rust_libraries
+---
# Integrating Rust libraries
Rust library integration will be described based on BLAKE3 hash-function integration.
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..e6d5cf66de9 100644
--- a/docs/en/development/tests.md
+++ b/docs/en/development/tests.md
@@ -1,11 +1,11 @@
---
+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/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/external-authenticators/kerberos.md b/docs/en/operations/external-authenticators/kerberos.md
index 8b47ec2c809..689c3f66e04 100644
--- a/docs/en/operations/external-authenticators/kerberos.md
+++ b/docs/en/operations/external-authenticators/kerberos.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/external-authenticators/kerberos
+---
# 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..cdc8cfaf5b0 100644
--- a/docs/en/operations/external-authenticators/ldap.md
+++ b/docs/en/operations/external-authenticators/ldap.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/external-authenticators/ldap
+---
# 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..6482bb2bd12 100644
--- a/docs/en/operations/external-authenticators/ssl-x509.md
+++ b/docs/en/operations/external-authenticators/ssl-x509.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/external-authenticators/ssl-x509
+---
# 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/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/memory-overcommit.md b/docs/en/operations/settings/memory-overcommit.md
index 74cbc4dbd03..43a7784e1ed 100644
--- a/docs/en/operations/settings/memory-overcommit.md
+++ b/docs/en/operations/settings/memory-overcommit.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/settings/memory-overcommit
+---
# 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..0c33cdb7d43 100644
--- a/docs/en/operations/settings/merge-tree-settings.md
+++ b/docs/en/operations/settings/merge-tree-settings.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/settings/merge-tree-settings
+---
# 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/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/asynchronous_metric_log.md b/docs/en/operations/system-tables/asynchronous_metric_log.md
index f40b1e500c2..d047061baa3 100644
--- a/docs/en/operations/system-tables/asynchronous_metric_log.md
+++ b/docs/en/operations/system-tables/asynchronous_metric_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/asynchronous_metric_log
+---
# 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..c452e7f7766 100644
--- a/docs/en/operations/system-tables/asynchronous_metrics.md
+++ b/docs/en/operations/system-tables/asynchronous_metrics.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/asynchronous_metrics
+---
# 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..2f958e977db 100644
--- a/docs/en/operations/system-tables/clusters.md
+++ b/docs/en/operations/system-tables/clusters.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/clusters
+---
# 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..a2b26c3684c 100644
--- a/docs/en/operations/system-tables/columns.md
+++ b/docs/en/operations/system-tables/columns.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/columns
+---
# 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..8ad2577fc34 100644
--- a/docs/en/operations/system-tables/contributors.md
+++ b/docs/en/operations/system-tables/contributors.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/contributors
+---
# 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..0c0a4cd967d 100644
--- a/docs/en/operations/system-tables/crash-log.md
+++ b/docs/en/operations/system-tables/crash-log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/crash-log
+---
# 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..35e789188ef 100644
--- a/docs/en/operations/system-tables/current-roles.md
+++ b/docs/en/operations/system-tables/current-roles.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/current-roles
+---
# 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..338c6d02206 100644
--- a/docs/en/operations/system-tables/data_skipping_indices.md
+++ b/docs/en/operations/system-tables/data_skipping_indices.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/data_skipping_indices
+---
# 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..0581c893337 100644
--- a/docs/en/operations/system-tables/data_type_families.md
+++ b/docs/en/operations/system-tables/data_type_families.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/data_type_families
+---
# 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..cd90c94c480 100644
--- a/docs/en/operations/system-tables/databases.md
+++ b/docs/en/operations/system-tables/databases.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/databases
+---
# 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..78ae382f396 100644
--- a/docs/en/operations/system-tables/detached_parts.md
+++ b/docs/en/operations/system-tables/detached_parts.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/detached_parts
+---
# 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..112e2cc2cdf 100644
--- a/docs/en/operations/system-tables/dictionaries.md
+++ b/docs/en/operations/system-tables/dictionaries.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/dictionaries
+---
# 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..1106562da53 100644
--- a/docs/en/operations/system-tables/disks.md
+++ b/docs/en/operations/system-tables/disks.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/disks
+---
# 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..ef04df9751b 100644
--- a/docs/en/operations/system-tables/distributed_ddl_queue.md
+++ b/docs/en/operations/system-tables/distributed_ddl_queue.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/distributed_ddl_queue
+---
# 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..ac0798a933a 100644
--- a/docs/en/operations/system-tables/distribution_queue.md
+++ b/docs/en/operations/system-tables/distribution_queue.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/distribution_queue
+---
# 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..16d8329bc9b 100644
--- a/docs/en/operations/system-tables/enabled-roles.md
+++ b/docs/en/operations/system-tables/enabled-roles.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/enabled-roles
+---
# 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..abd55d02aa2 100644
--- a/docs/en/operations/system-tables/errors.md
+++ b/docs/en/operations/system-tables/errors.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/errors
+---
# 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..9ce92681507 100644
--- a/docs/en/operations/system-tables/events.md
+++ b/docs/en/operations/system-tables/events.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/events
+---
# 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..34553bed527 100644
--- a/docs/en/operations/system-tables/functions.md
+++ b/docs/en/operations/system-tables/functions.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/functions
+---
# 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..536a9a46e86 100644
--- a/docs/en/operations/system-tables/grants.md
+++ b/docs/en/operations/system-tables/grants.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/grants
+---
# 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..9edc958c6df 100644
--- a/docs/en/operations/system-tables/graphite_retentions.md
+++ b/docs/en/operations/system-tables/graphite_retentions.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/graphite_retentions
+---
# 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/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/system-tables/information_schema.md b/docs/en/operations/system-tables/information_schema.md
index 50c15dacd13..a573491282a 100644
--- a/docs/en/operations/system-tables/information_schema.md
+++ b/docs/en/operations/system-tables/information_schema.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/information_schema
+---
# 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..7802cb9121b 100644
--- a/docs/en/operations/system-tables/licenses.md
+++ b/docs/en/operations/system-tables/licenses.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/licenses
+---
# 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..375d561986b 100644
--- a/docs/en/operations/system-tables/merge_tree_settings.md
+++ b/docs/en/operations/system-tables/merge_tree_settings.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/merge_tree_settings
+---
# 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..5670d682b21 100644
--- a/docs/en/operations/system-tables/merges.md
+++ b/docs/en/operations/system-tables/merges.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/merges
+---
# 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..503b6a22b2b 100644
--- a/docs/en/operations/system-tables/metric_log.md
+++ b/docs/en/operations/system-tables/metric_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/metric_log
+---
# 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..f07578cd931 100644
--- a/docs/en/operations/system-tables/metrics.md
+++ b/docs/en/operations/system-tables/metrics.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/metrics
+---
# 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..45447f3644e 100644
--- a/docs/en/operations/system-tables/mutations.md
+++ b/docs/en/operations/system-tables/mutations.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/mutations
+---
# 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..4e8a74050b6 100644
--- a/docs/en/operations/system-tables/numbers.md
+++ b/docs/en/operations/system-tables/numbers.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/numbers
+---
# 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..d5a89985007 100644
--- a/docs/en/operations/system-tables/numbers_mt.md
+++ b/docs/en/operations/system-tables/numbers_mt.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/numbers_mt
+---
# 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..1667de25e01 100644
--- a/docs/en/operations/system-tables/one.md
+++ b/docs/en/operations/system-tables/one.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/one
+---
# 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..71248447db2 100644
--- a/docs/en/operations/system-tables/opentelemetry_span_log.md
+++ b/docs/en/operations/system-tables/opentelemetry_span_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/opentelemetry_span_log
+---
# 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..d5689b10fdd 100644
--- a/docs/en/operations/system-tables/part_log.md
+++ b/docs/en/operations/system-tables/part_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/part_log
+---
# 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..f1d60896a2e 100644
--- a/docs/en/operations/system-tables/parts.md
+++ b/docs/en/operations/system-tables/parts.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/parts
+---
# 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..68757ddfbff 100644
--- a/docs/en/operations/system-tables/parts_columns.md
+++ b/docs/en/operations/system-tables/parts_columns.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/parts_columns
+---
# 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..f505bb93430 100644
--- a/docs/en/operations/system-tables/processes.md
+++ b/docs/en/operations/system-tables/processes.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/processes
+---
# 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..a04214f6488 100644
--- a/docs/en/operations/system-tables/query_log.md
+++ b/docs/en/operations/system-tables/query_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/query_log
+---
# 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..97a7d0a83ed 100644
--- a/docs/en/operations/system-tables/query_thread_log.md
+++ b/docs/en/operations/system-tables/query_thread_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/query_thread_log
+---
# 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..1818dc261aa 100644
--- a/docs/en/operations/system-tables/query_views_log.md
+++ b/docs/en/operations/system-tables/query_views_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/query_views_log
+---
# 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..86c6231a3c8 100644
--- a/docs/en/operations/system-tables/quota_limits.md
+++ b/docs/en/operations/system-tables/quota_limits.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/quota_limits
+---
# 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..ac050b630be 100644
--- a/docs/en/operations/system-tables/quota_usage.md
+++ b/docs/en/operations/system-tables/quota_usage.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/quota_usage
+---
# 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..4ef88aa38d6 100644
--- a/docs/en/operations/system-tables/quotas.md
+++ b/docs/en/operations/system-tables/quotas.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/quotas
+---
# 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..0cb4ebf38f0 100644
--- a/docs/en/operations/system-tables/quotas_usage.md
+++ b/docs/en/operations/system-tables/quotas_usage.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/quotas_usage
+---
# 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..584736fe312 100644
--- a/docs/en/operations/system-tables/replicas.md
+++ b/docs/en/operations/system-tables/replicas.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/replicas
+---
# 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..3536bbaff4d 100644
--- a/docs/en/operations/system-tables/replicated_fetches.md
+++ b/docs/en/operations/system-tables/replicated_fetches.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/replicated_fetches
+---
# 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..ced20b0048a 100644
--- a/docs/en/operations/system-tables/replication_queue.md
+++ b/docs/en/operations/system-tables/replication_queue.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/replication_queue
+---
# 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..ce7ab4fd51e 100644
--- a/docs/en/operations/system-tables/role-grants.md
+++ b/docs/en/operations/system-tables/role-grants.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/role-grants
+---
# 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..95d9c97e61c 100644
--- a/docs/en/operations/system-tables/roles.md
+++ b/docs/en/operations/system-tables/roles.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/roles
+---
# 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..166c8a46f9a 100644
--- a/docs/en/operations/system-tables/row_policies.md
+++ b/docs/en/operations/system-tables/row_policies.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/row_policies
+---
# 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..79c8ea184ce 100644
--- a/docs/en/operations/system-tables/session_log.md
+++ b/docs/en/operations/system-tables/session_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/session_log
+---
# 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..2b05cb9bc32 100644
--- a/docs/en/operations/system-tables/settings.md
+++ b/docs/en/operations/system-tables/settings.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/settings
+---
# 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..d9fce8d035f 100644
--- a/docs/en/operations/system-tables/settings_profile_elements.md
+++ b/docs/en/operations/system-tables/settings_profile_elements.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/settings_profile_elements
+---
# 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..ece13c80bea 100644
--- a/docs/en/operations/system-tables/settings_profiles.md
+++ b/docs/en/operations/system-tables/settings_profiles.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/settings_profiles
+---
# 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..c64cf067220 100644
--- a/docs/en/operations/system-tables/stack_trace.md
+++ b/docs/en/operations/system-tables/stack_trace.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/stack_trace
+---
# 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..103d95f65e4 100644
--- a/docs/en/operations/system-tables/storage_policies.md
+++ b/docs/en/operations/system-tables/storage_policies.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/storage_policies
+---
# 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..7a326d0015d 100644
--- a/docs/en/operations/system-tables/table_engines.md
+++ b/docs/en/operations/system-tables/table_engines.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/table_engines
+---
# 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..497e23dd7ca 100644
--- a/docs/en/operations/system-tables/tables.md
+++ b/docs/en/operations/system-tables/tables.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/tables
+---
# 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..4c45f6d81da 100644
--- a/docs/en/operations/system-tables/text_log.md
+++ b/docs/en/operations/system-tables/text_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/text_log
+---
# 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..b93da1c46e0 100644
--- a/docs/en/operations/system-tables/time_zones.md
+++ b/docs/en/operations/system-tables/time_zones.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/time_zones
+---
# 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..0effe085b80 100644
--- a/docs/en/operations/system-tables/trace_log.md
+++ b/docs/en/operations/system-tables/trace_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/trace_log
+---
# 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..eaeabab131b 100644
--- a/docs/en/operations/system-tables/users.md
+++ b/docs/en/operations/system-tables/users.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/users
+---
# 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..1522d6044e9 100644
--- a/docs/en/operations/system-tables/zookeeper.md
+++ b/docs/en/operations/system-tables/zookeeper.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/zookeeper
+---
# 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..58c44325737 100644
--- a/docs/en/operations/system-tables/zookeeper_log.md
+++ b/docs/en/operations/system-tables/zookeeper_log.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/system-tables/zookeeper_log
+---
# 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/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-compressor.md b/docs/en/operations/utilities/clickhouse-compressor.md
index 2f8f4794ba8..d432e8114c0 100644
--- a/docs/en/operations/utilities/clickhouse-compressor.md
+++ b/docs/en/operations/utilities/clickhouse-compressor.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/utilities/clickhouse-compressor
+---
# clickhouse-compressor
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-format.md b/docs/en/operations/utilities/clickhouse-format.md
index 219a170fc23..4a74901c980 100644
--- a/docs/en/operations/utilities/clickhouse-format.md
+++ b/docs/en/operations/utilities/clickhouse-format.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/utilities/clickhouse-format
+---
# clickhouse-format
Allows formatting input queries.
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/clickhouse-obfuscator.md b/docs/en/operations/utilities/clickhouse-obfuscator.md
index 02d6fd225ec..8787f0b1bb3 100644
--- a/docs/en/operations/utilities/clickhouse-obfuscator.md
+++ b/docs/en/operations/utilities/clickhouse-obfuscator.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/utilities/clickhouse-obfuscator
+---
# clickhouse-obfuscator
A simple tool for table data obfuscation.
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/operations/utilities/odbc-bridge.md b/docs/en/operations/utilities/odbc-bridge.md
index e5967085c49..789f382fde8 100644
--- a/docs/en/operations/utilities/odbc-bridge.md
+++ b/docs/en/operations/utilities/odbc-bridge.md
@@ -1,3 +1,6 @@
+---
+slug: /en/operations/utilities/odbc-bridge
+---
# clickhouse-odbc-bridge
Simple HTTP-server which works like a proxy for ODBC driver. The main motivation
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/simpleaggregatefunction.md b/docs/en/sql-reference/data-types/simpleaggregatefunction.md
index 069e2e68671..1464b739224 100644
--- a/docs/en/sql-reference/data-types/simpleaggregatefunction.md
+++ b/docs/en/sql-reference/data-types/simpleaggregatefunction.md
@@ -1,3 +1,6 @@
+---
+slug: /en/sql-reference/data-types/simpleaggregatefunction
+---
# 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/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 d54028582c5..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
---
@@ -266,8 +267,14 @@ 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 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.
+ * 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.
+ * 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
@@ -291,20 +298,23 @@ 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
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
@@ -1039,7 +1049,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/en/sql-reference/functions/distance-functions.md b/docs/en/sql-reference/functions/distance-functions.md
index 4af264f27ca..88d6c2f3e17 100644
--- a/docs/en/sql-reference/functions/distance-functions.md
+++ b/docs/en/sql-reference/functions/distance-functions.md
@@ -1,3 +1,6 @@
+---
+slug: /en/sql-reference/functions/distance-functions
+---
# Distance functions
## L1Norm
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/exists.md b/docs/en/sql-reference/operators/exists.md
index 2e9f6f58df5..4bc29389c9c 100644
--- a/docs/en/sql-reference/operators/exists.md
+++ b/docs/en/sql-reference/operators/exists.md
@@ -1,3 +1,6 @@
+---
+slug: /en/sql-reference/operators/exists
+---
# 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..58119cfc4f5 100644
--- a/docs/en/sql-reference/operators/in.md
+++ b/docs/en/sql-reference/operators/in.md
@@ -1,3 +1,6 @@
+---
+slug: /en/sql-reference/operators/in
+---
# IN Operators
The `IN`, `NOT IN`, `GLOBAL IN`, and `GLOBAL NOT IN` operators are covered separately, since their functionality is quite rich.
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/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..fd510716174
--- /dev/null
+++ b/docs/ru/development/build-cross-arm.mdx
@@ -0,0 +1,10 @@
+---
+slug: /ru/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)
+---
+
+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..9a64c4abccd
--- /dev/null
+++ b/docs/ru/development/build-cross-osx.mdx
@@ -0,0 +1,10 @@
+---
+slug: /ru/development/build-cross-osx
+sidebar_position: 67
+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-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.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..5939429e610
--- /dev/null
+++ b/docs/ru/development/build.mdx
@@ -0,0 +1,10 @@
+---
+slug: /ru/development/build
+sidebar_position: 65
+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/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.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..3f44771d754
--- /dev/null
+++ b/docs/ru/development/tests.mdx
@@ -0,0 +1,10 @@
+---
+sidebar_position: 99
+slug: /ru/development/tests
+sidebar_label: Testing
+title: ClickHouse Testing
+---
+
+import Content from '@site/docs/en/development/tests.md';
+
+
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).
Возможные значения:
diff --git a/docs/ru/sql-reference/data-types/date.md b/docs/ru/sql-reference/data-types/date.md
index 185fe28d567..7254b82f461 100644
--- a/docs/ru/sql-reference/data-types/date.md
+++ b/docs/ru/sql-reference/data-types/date.md
@@ -6,7 +6,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/docs/ru/sql-reference/functions/date-time-functions.md b/docs/ru/sql-reference/functions/date-time-functions.md
index a8dc8d49698..cfffcfb6021 100644
--- a/docs/ru/sql-reference/functions/date-time-functions.md
+++ b/docs/ru/sql-reference/functions/date-time-functions.md
@@ -267,10 +267,25 @@ SELECT toUnixTimestamp('2017-11-05 08:07:47', 'Asia/Tokyo') AS unix_timestamp;
└────────────────┘
```
-:::note "Attention"
- `Date` или `DateTime` это возвращаемый тип функций `toStartOf*`, который описан ниже. Несмотря на то, что эти функции могут принимать `DateTime64` в качестве аргумента, если переданное значение типа `DateTime64` выходит за пределы нормального диапазона (с 1900 по 2299 год), то это даст неверный результат.
+:::Attention
+Тип возвращаемого описанными далее функциями `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-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}
Округляет дату или дату-с-временем вниз до первого дня года.
@@ -304,20 +319,23 @@ SELECT toStartOfISOYear(toDate('2017-01-01')) AS ISOYear20170101;
Округляет дату или дату-с-временем вниз до первого дня месяца.
Возвращается дата.
-:::note "Attention"
- Возвращаемое значение для некорректных дат зависит от реализации. ClickHouse может вернуть нулевую дату, выбросить исключение, или выполнить «естественное» перетекание дат между месяцами.
-:::
-
+## toLastDayOfMonth
+
+Округляет дату или дату-с-временем до последнего числа месяца.
+Возвращается дата.
+
## 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}
@@ -958,7 +976,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’ --- результат будет иметь наибольший масштаб среди всех данных аргументов.
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
---
diff --git a/docs/zh/sql-reference/data-types/date.md b/docs/zh/sql-reference/data-types/date.md
index a8874151e75..9b1acdbe939 100644
--- a/docs/zh/sql-reference/data-types/date.md
+++ b/docs/zh/sql-reference/data-types/date.md
@@ -3,7 +3,7 @@ slug: /zh/sql-reference/data-types/date
---
# 日期 {#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/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/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/tests/integration/test_nlp/configs/dicts_config.xml b/programs/server/config.d/nlp.xml
similarity index 65%
rename from tests/integration/test_nlp/configs/dicts_config.xml
rename to programs/server/config.d/nlp.xml
index 8c05ea67e49..17b11741fbd 100644
--- a/tests/integration/test_nlp/configs/dicts_config.xml
+++ b/programs/server/config.d/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/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/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/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/CustomWeekTransforms.h b/src/Functions/CustomWeekTransforms.h
index c296c8228b1..3378aec02d5 100644
--- a/src/Functions/CustomWeekTransforms.h
+++ b/src/Functions/CustomWeekTransforms.h
@@ -62,7 +62,10 @@ 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;
+
+ 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)
{
@@ -70,7 +73,10 @@ 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(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 065f08296d0..66d57f2463f 100644
--- a/src/Functions/DateTimeTransforms.h
+++ b/src/Functions/DateTimeTransforms.h
@@ -61,15 +61,15 @@ struct ToDateImpl
static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone)
{
- return UInt16(time_zone.toDayNum(t));
+ 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)
{
- return UInt16(time_zone.toDayNum(t));
+ return time_zone.toDayNum(t);
}
- static inline UInt16 execute(Int32, const DateLUTImpl &)
+ static inline UInt16 execute(Int32 t, const DateLUTImpl &)
{
- return dateIsNotSupported(name);
+ return t < 0 ? 0 : std::min(t, Int32(DATE_LUT_MAX_DAY_NUM));
}
static inline UInt16 execute(UInt16 d, const DateLUTImpl &)
{
@@ -111,7 +111,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 || (t.whole >= 0 && t.fractional < 0))
+ return 0;
+
+ return time_zone.toDate(std::min(t.whole, Int64(0xffffffff)));
}
static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone)
{
@@ -119,11 +122,19 @@ struct ToStartOfDayImpl
}
static inline UInt32 execute(Int32 d, const DateLUTImpl & time_zone)
{
- return time_zone.toDate(ExtendedDayNum(d));
+ if (d < 0)
+ return 0;
+
+ auto 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));
+ auto date_time = time_zone.fromDayNum(ExtendedDayNum(d));
+ return date_time < 0xffffffff ? date_time : time_zone.toDate(0xffffffff);
}
using FactorTransform = ZeroTransform;
@@ -135,17 +146,16 @@ struct ToMondayImpl
static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone)
{
- //return time_zone.toFirstDayNumOfWeek(time_zone.toDayNum(t));
- return time_zone.toFirstDayNumOfWeek(t);
+ return t < 0 ? 0 : time_zone.toFirstDayNumOfWeek(ExtendedDayNum(
+ std::min(Int32(time_zone.toDayNum(t)), Int32(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)
{
- return time_zone.toFirstDayNumOfWeek(ExtendedDayNum(d));
+ 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)
{
@@ -161,15 +171,15 @@ struct ToStartOfMonthImpl
static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone)
{
- return time_zone.toFirstDayNumOfMonth(time_zone.toDayNum(t));
+ 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)
{
- 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)
{
- return time_zone.toFirstDayNumOfMonth(ExtendedDayNum(d));
+ 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)
{
@@ -185,7 +195,11 @@ 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;
+
+ /// 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(Int32(time_zone.toDayNum(t)), Int32(0xFFF9))));
}
static inline UInt16 execute(UInt32 t, const DateLUTImpl & time_zone)
{
@@ -193,11 +207,16 @@ struct ToLastDayOfMonthImpl
}
static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone)
{
- return time_zone.toLastDayNumOfMonth(ExtendedDayNum(d));
+ 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, Int32(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;
@@ -209,7 +228,7 @@ struct ToStartOfQuarterImpl
static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone)
{
- return time_zone.toFirstDayNumOfQuarter(time_zone.toDayNum(t));
+ 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)
{
@@ -217,7 +236,7 @@ struct ToStartOfQuarterImpl
}
static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone)
{
- return time_zone.toFirstDayNumOfQuarter(ExtendedDayNum(d));
+ 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)
{
@@ -233,7 +252,7 @@ struct ToStartOfYearImpl
static inline UInt16 execute(Int64 t, const DateLUTImpl & time_zone)
{
- return time_zone.toFirstDayNumOfYear(time_zone.toDayNum(t));
+ 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)
{
@@ -241,7 +260,7 @@ struct ToStartOfYearImpl
}
static inline UInt16 execute(Int32 d, const DateLUTImpl & time_zone)
{
- return time_zone.toFirstDayNumOfYear(ExtendedDayNum(d));
+ 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)
{
@@ -283,7 +302,10 @@ struct ToStartOfMinuteImpl
static inline UInt32 execute(const DecimalUtils::DecimalComponents & t, const DateLUTImpl & time_zone)
{
- return time_zone.toStartOfMinute(t.whole);
+ if (t.whole < 0 || (t.whole >= 0 && t.fractional < 0))
+ return 0;
+
+ return time_zone.toStartOfMinute(std::min(t.whole, Int64(0xffffffff)));
}
static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone)
{
@@ -574,7 +596,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, Int64(0xffffffff)));
}
static inline UInt32 execute(UInt32 t, const DateLUTImpl & time_zone)
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/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/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..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.registerFunction("DATE", 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/Functions/FunctionsConversion.h b/src/Functions/FunctionsConversion.h
index 231ec188ade..96c28b21ef0 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,12 +324,17 @@ struct ToDateTimeImpl
static inline UInt32 execute(UInt16 d, const DateLUTImpl & time_zone)
{
- return time_zone.fromDayNum(DayNum(d));
+ auto date_time = time_zone.fromDayNum(ExtendedDayNum(d));
+ return date_time <= 0xffffffff ? UInt32(date_time) : UInt32(0xffffffff);
}
- 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;
+
+ auto date_time = time_zone.fromDayNum(ExtendedDayNum(d));
+ return date_time <= 0xffffffff ? date_time : 0xffffffff;
}
static inline UInt32 execute(UInt32 dt, const DateLUTImpl & /*time_zone*/)
@@ -332,10 +342,21 @@ struct ToDateTimeImpl
return dt;
}
- // TODO: return UInt32 ???
- static inline Int64 execute(Int64 dt64, const DateLUTImpl & /*time_zone*/)
+ static inline UInt32 execute(Int64 d, const DateLUTImpl & time_zone)
{
- return dt64;
+ 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))
+ return 0;
+
+ return std::min(t.whole, Int64(0xFFFFFFFF));
}
};
@@ -355,9 +376,12 @@ 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 0;
+
return (from < DATE_LUT_MAX_DAY_NUM)
? from
- : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF)));
+ : std::min(Int32(time_zone.toDayNum(from)), Int32(DATE_LUT_MAX_DAY_NUM));
}
};
@@ -372,9 +396,14 @@ struct ToDateTransform32Or64Signed
/// The function should be monotonic (better for query optimizations), so we saturate instead of overflow.
if (from < 0)
return 0;
+
+ 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
- : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF)));
+ : std::min(Int32(time_zone.toDayNum(from)), Int32(0xFFFFFFFF));
+
}
};
@@ -405,7 +434,7 @@ struct ToDate32Transform32Or64
{
return (from < DATE_LUT_MAX_EXTEND_DAY_NUM)
? from
- : time_zone.toDayNum(std::min(time_t(from), time_t(0xFFFFFFFF)));
+ : std::min(Int32(time_zone.toDayNum(from)), Int32(DATE_LUT_MAX_EXTEND_DAY_NUM));
}
};
@@ -421,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)));
}
};
@@ -447,35 +476,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> {};
@@ -487,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));
}
};
@@ -509,11 +552,12 @@ 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));
+
+ return std::min(Int64(from), Int64(0xFFFFFFFF));
}
};
@@ -634,8 +678,6 @@ struct FromDateTime64Transform
}
};
-/** Conversion of DateTime64 to Date or DateTime: discards fractional part.
- */
template struct ConvertImpl
: DateTimeTransformImpl> {};
template struct ConvertImpl
@@ -659,7 +701,7 @@ 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);
}
@@ -1806,7 +1848,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)
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..7a64c24fd6b 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..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 14523f8b0f3..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/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..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/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..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/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/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");
}
}
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..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/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