Project: ClickHouse (App Definition and Development / Database)
File: v23.5.1.3174-stable.md

sidebar_position: 1 sidebar_label: 2023 Make local object storage work consistently with s3 object storage, fix problem with append (closes ), make it configurable as independent storage. The change is backward incompatible because cache on top of local object storage is not incompatible to previous versions. (). Date_trunc function to always return datetime type. (). Remove the experimental feature "in-memory data parts". The data format is still supported, but the settings are no-op, and compact or wide parts will be used instead. This closes . (). Changed default values of settings parallelizeoutputfromstorages and inputformatparquetpreserveorder. This allows ClickHouse to reorder rows when reading from files (e.g. CSV or Parquet), greatly improving performance in many cases. To restore the old behavior of preserving order, use `parallelizeoutputfromstorages = 0`, `inputformatparquetpreserveorder = 1`. (). Make projections production-ready. Add the `optimizeuseprojections` setting to control whether the projections will be selected for SELECT queries. The setting `allowexperimentalprojection_optimization` is obsolete and does nothing. (). Mark joinGet() as non deterministic (so as dictGet). (). Revert "`groupArray` returns cannot be nullable" (due to binary compatibility breakage for `groupArray`/`groupArrayLast`/`groupArraySample` over `Nullable` types, which likely will lead to `TOOLARGEARRAYSIZE` or `CANNOTREADALLDATA`). (). Password type in queries like `CREATE USER u IDENTIFIED BY 'p'` will be automatically set according to the setting `defaultpasswordtype` in the `config.xml` on the server. Closes . (). Add bcrypt password authentication type. Closes . (). Added `system.zookeeper_connection` table that shows information about ZooKeeper connections. (). Add urlCluster table function. Refactor all Cluster table functions to reduce code duplication. Make schema inference work for all possible *Cluster function signatures and for named collections. Closes . (). Extend `firstvalue` and `lastvalue` to accept null. (). Add server and format settings `displaysecretsinshowand_select` for displaying secrets of tables, databases, table functions, and dictionaries. Add privilege `displaySecretsInShowAndSelect` controlling which users can view secrets. (). Add new function `generateRandomStructure` that generates random table structure. It can be used in combination with table function `generateRandom`. (). Added native ClickHouse Keeper CLI Client. (). The query cache can now be used for production workloads. (). Fix a bug that prevented the use of `CASE` without an `ELSE` branch and extended `transform` to deal with more types. Also fix some bugs that made transform() return incorrect results when decimal types were mixed with other numeric types. (). Added with S3 tables, and the `header` setting with S3 disks. Closes . (). Add MemoryTracker for the background tasks (merges and mutation). Introduces `mergesmutationsmemoryusagesoftlimit` and `mergesmutationsmemoryusagetoram_ratio` settings that represent the soft memory limit for merges and mutations. If this limit is reached ClickHouse won't schedule new merge or mutation tasks. Also `MergesMutationsMemoryTracking` metric is introduced to allow observing current memory usage of background tasks. Resubmit . Closes . (). Function `dotProduct` work for array. (). Support statement `SHOW INDEX` to improve compatibility with MySQL. (). Add virtual column `file` and `path` support to table function `url`. - Impove error message for table function `url`. - resolves - resolves . (). Adding the `grants` field in the users.xml file, which allows specifying grants for users. (). Add alias `strtomap` and `mapfromstring` for `extractkeyvaluepairs`. closes . (). Support full/right join by using grace hash join algorithm. (). `WITH FILL` modifier groups filling by sorting prefix. Controlled by `usewithfillbysorting_prefix` setting (enabled by default). Related to #issuecomment-1418736794. (). Add SQL functions for entropy-learned hashing.

Clickhouse-client now accepts queries after "--multiquery" when "--query" (or "-q") is absent. example: clickhouse-client --multiquery "select 1; select 2;". (). Add separate `handshake_timeout` for receiving Hello packet from replica. Closes . (). New setting s3maxinflightpartsforonefile sets the limit of concurrently loaded parts with multipart upload request in scope of one file. (). Geographical data types (`Point`, `Ring`, `Polygon`, and `MultiPolygon`) are production-ready. (). Added a function "space()" which repeats a space as many times as specified. (). Added --inputformatcsvtrimwhitespaces option. (). Added the dictGetAll function for regexp tree dictionaries to return values from multiple matches as arrays. Closes . (). Added toLastDayOfWeek() function to round a date or a date with time up to the nearest Saturday or Sunday. (). Ability to ignore a skip index by specifying `ignoredataskipping_indices`. (). Revert 'Add SQL functions for entropy-learned hashing'. (). Add `system.user_processes` table and `SHOW USER PROCESSES` query to show memory info and ProfileEvents on user level. (). Added storage engine `AzureBlobStorage` and `azureblobstorage` table function. The supported set of features is very similar to storage/table function `S3`. Implements . (). Compress marks and primary key by default. It significantly reduces the cold query time. Upgrade notes: the support for compressed marks and primary key has been added in version 22.9. If you turned on compressed marks or primary key or installed version 23.5 or newer, which has compressed marks or primary key on by default, you will not be able to downgrade to version 22.8 or earlier. You can also explicitly disable compressed marks or primary keys by specifying the `compress_marks` and `compress_primary_key` settings in the `<merge_tree>` section of the server configuration file. Upgrade notes:* If you upgrade from versions prior to 22.9, you should either upgrade all replicas at once or disable the compression before upgrade, or upgrade through an intermediate version, where the compressed marks are supported but not enabled by default, such as 23.3. (). When reading from multiple files reduce parallel parsing threads for each file resolves . (). Do not store blocks in `ANY` hash join if nothing is inserted. (). Fixes aggregate combinator `-If` when JIT compiled. Closes . (). For reading from remote tables we use smaller tasks (instead of reading the whole part) to make tasks stealing work task size is determined by size of columns to read always use 1mb buffers for reading from s3 boundaries of cache segments aligned to 1mb so they have decent size even with small tasks. it also should prevent fragmentation. (). Default size of a read buffer for reading from local filesystem changed to a slightly better value. Also two new settings are introduced: `maxreadbuffersizelocalfs` and `maxreadbuffersizeremotefs`. (). Improve memory usage and speed of `SPARSEHASHED`/`HASHED` dictionaries (e.g. `SPARSEHASHED` now eats 2.6x less memory, and is ~2x faster). (). Use aggregate projection only if it reads fewer granules than normal reading. It should help in case if query hits the PK of the table, but not the projection. Fixes . (). Optimize PODArray::resize_fill() callers. (). Optimize the system.querylog and system.querythread_log tables by applying LowCardinality when appropriate. The queries over these tables will be faster. (). Better performance when reading local Parquet files (through parallel reading). (). Improve the performance of `RIGHT/FULL JOIN` by up to 2 times in certain scenarios, especially when joining a small left table with a large right table.

Improve performance of BLAKE3 by 11% by enabling LTO for Rust. (). Optimize the structure of the `system.opentelemetryspanlog`. Use `LowCardinality` where appropriate. Although this table is generally stupid (it is using the Map data type even for common attributes), it will be slightly better. (). Try to reserve hash table's size in `grace_hash` join. (). As is addresed in issue , the predicates with date converters, such as toYear, toYYYYMM, could be rewritten with the equivalent date (YYYY-MM-DD) comparisons at the AST level. And this transformation could bring performance improvement as it is free from the expensive date converter and the comparison between dates (or integers in the low level representation) is quite low-cost. The shows that, with all identified date converters optimized, the overall QPS of the 13 queries is enhanced by ~11%* on the ICX server (Intel Xeon Platinum 8380 CPU, 80 cores, 160 threads). (). Parallel merge of `uniqExactIf` states. Closes . (). As is addresed in issue , the predicates with date converters, such as toYear, toYYYYMM, could be rewritten with the equivalent date (YYYY-MM-DD) comparisons at the AST level. And this transformation could bring performance improvement as it is free from the expensive date converter and the comparison between dates (or integers in the low level representation) is quite low-cost. (). Parallel merging supported for `uniqExact` with modifiers `-Array`, `-Merge`, `-OrNull`, `-State`. (). Enable LZ4FASTDEC_LOOP for Arm LZ4 to get 5% of decompression speed. (). Add support for CGroup version 2 for asynchronous metrics about the memory usage and availability. This closes . (). Cluster table functions should always skip unavailable shards. close . (). When your csv file contains empty columns, like ```. (). ROW POLICY for all tables that belong to a DATABASE. (). Add Google Cloud Storage S3 compatible table function `gcs`. Like the `oss` and `cosn` functions, it is just an alias over the `s3` table function, and it does not bring any new features. (). Add ability to use strict parts size for S3 (compatibility with CloudFlare R2 S3 Storage). (). Added new columns with info about `Replicated` database replicas to `system.clusters`: `databaseshardname`, `databasereplicaname`, `is_active`. Added an optional `FROM SHARD` clause to `SYSTEM DROP DATABASE REPLICA` query. (). Add a new column `zookeeper_name` in system.replicas, to indicate on which (auxiliary) zookeeper cluster the replicated table's metadata is stored. (). `IN` operator support compare `Date` and `Date32`. Closes . (). Support for erasure codes in HDFS, author: @M1eyu2018, @tomscut. (). The query cache can now supports queries with totals and extremes modifier. (). Introduces new keyword `INTO OUTFILE 'file.txt' APPEND`. (). The `BACKUP` command will not decrypt data from encrypted disks while making a backup. Instead the data will be stored in a backup in encrypted form. Such backups can be restored only to an encrypted disk with the same (or extended) list of encryption keys. (). Keeper improvement: add `CheckNotExists` request to Keeper. (). Implement SYSTEM DROP REPLICA from auxillary ZooKeeper clusters, may be close . (). Add Array data type to MongoDB. Closes . (). Keeper performance improvements: avoid serializing same request twice while processing. Cache deserialization results of large requests. Controlled by new coordination setting `minrequestsizeforcache`. (). Support storing `Interval` data types in tables. (). Add support for size suffixes in quota creation statement parameters.

Allow using `ntile` window function without explicit window frame definition: `ntile(3) OVER (ORDER BY a)`, close . (). Added settings (`numberofmutationstodelay`, `numberofmutationstothrow`) to delay or throw `ALTER` queries that create mutations (`ALTER UPDATE`, `ALTER DELETE`, `ALTER MODIFY COLUMN`, ...) in case when table already has a lot of unfinished mutations. (). Added setting `asyncinsert` for `MergeTables`. It has the same meaning as query-level setting `asyncinsert` and enables asynchronous inserts for specific table. Note: it doesn't take effect for insert queries from `clickhouse-client`, use query-level setting in that case. (). Catch exception from `create_directories` in filesystem cache. (). Copies embedded examples to a new field `example` in `system.functions` to supplement the field `description`. (). Enable connection options for the MongoDB dictionary. Example: ``` xml <source> <mongodb> <host>localhost</host> <port>27017</port> <user></user> <password></password> <db>test</db> <collection>dictionary_source</collection> <options>ssl=true</options> </mongodb> </source> ``` ### Documentation entry for user-facing changes. (). Added an alias `asymptotic` for `asymp` computational method for `kolmogorovSmirnovTest`. Improved documentation. (). Aggregation function groupBitAnd/Or/Xor now work on signed integer data. This makes them consistent with the behavior of scalar functions bitAnd/Or/Xor. (). Split function-documentation into more fine-granular fields. (). Introduced settings: - `mergemaxblocksizebytes` to limit the amount of memory used for background operations. - `verticalmergealgorithmminbytestoactivate` to add another condition to activate vertical merges. (). Use multiple threads shared between all tables within a server to load outdated data parts. The the size of the pool and its queue is controlled by `maxoutdatedpartsloadingthreadpoolsize` and `outdatedpartloadingthreadpoolqueuesize` settings. (). Don't overestimate the size of processed data for `LowCardinality` columns when they share dictionaries between blocks. This closes . See also . (). Parquet writer now uses reasonable row group size when invoked through OUTFILE. (). Allow restricted keywords like `ARRAY` as an alias if the alias is quoted. Closes . (). Added possibility to use temporary tables in FROM part of ATTACH PARTITION FROM and REPLACE PARTITION FROM. (). Data parts loading and deletion jobs were moved to shared server-wide pools instead of per-table pools. Pools sizes are controlled via settings `maxactivepartsloadingthreadpoolsize`, `maxoutdatedpartsloadingthreadpoolsize` and `maxpartscleaningthreadpoolsize` in top-level config. Table-level settings `maxpartloadingthreads` and `maxpartremoval_threads` became obsolete. (). Allow `?password=pass` in URL. Password is replaced in browser history. (). Allow zero objects in ReadBufferFromRemoteFSGather (because empty files are not backuped, so we might end up with zero blobs in metadata file). Closes . (). Attach thread MemoryTracker to `totalmemorytracker` after `ThreadGroup` detached. (). Make `Pretty` formats prettier: squash blocks if not much time passed since the output of the previous block. This is controlled by a new setting `outputformatprettysquashms` (100ms by default). This closes . (). Add initial support to do JOINs with pure parallel replicas. (). Fix parameterized views when query parameter used multiple times in the query. (). Release memory allocated for the last sent ProfileEvents snapshot in the context of a query. Followup . (). Function "makeDate" now provides a MySQL-compatible overload (year & day of the year argument). (). More parallelism on `Outdated` parts removal with "zero-copy replication". (). Reduced number of `List` ZooKeeper requests when selecting parts to merge and a lot of partitions do not have anything to merge. (). Support `dictionary` table function for `RegExpTreeDictionary`. (). Added weighted fair IO scheduling policy. Added dynamic resource manager, which allows IO scheduling hierarchy to be updated in runtime w/o server restarts. (). Add compose request after multipart upload to GCS. This enables the usage of copy operation on objects uploaded with the multipart

It's recommended to set `s3strictuploadpartsize` to some value because compose request can fail on objects created with parts of different sizes. (). Improve the "best-effort" parsing logic to accept `keyvaluedelimiter` as a valid part of the value. This also simplifies branching and might even speed up things a bit. (). Facilitate profile data association and aggregation for the same query. (). System log tables can now have custom sorting keys. (). A new field 'partitions' is used to indicate which partitions are participating in the calculation. (). Added `enabletheendpointidwithzookeepername_prefix` setting for `ReplicatedMergeTree` (disabled by default). When enabled, it adds ZooKeeper cluster name to table's interserver communication endpoint. It avoids `Duplicate interserver IO endpoint` errors when having replicated tables with the same path, but different auxiliary ZooKeepers. (). Add query parameters to clickhouse-local. Closes . (). Qpl_deflate codec lower the minimum simd version to sse 4.2. - intel qpl relies on a run-time kernels dispatcher and cpuid check to choose the best available implementation(sse/avx2/avx512) - restructured cmakefile for qpl build in clickhouse to align with latest upstream qpl. (). Allow loading dictionaries and functions from YAML by default. In previous versions, it required editing the `dictionaries_config` or `user_defined_executable_functions_config` in the configuration file, as they expected `.xml` files. (). The Kafka table engine now allows to use alias columns. (). Add setting to limit the max number of pairs produced by extractKeyValuePairs, safeguard to avoid using way too much memory. (). Add support for (an unusual) case where the arguments in the `IN` operator are single-element tuples. (). `bitHammingDistance` function support `String` and `FixedString` data type. Closes . (). Fix timeout resetting errors in the client on OS X. (). Add support for big integers, such as UInt128, Int128, UInt256, and Int256 in the function `bitCount`. This enables Hamming distance over large bit masks for AI applications. (). This PR makes fingerprints to be used instead of key IDs in encrypted disks. (). Add UUID data type to PostgreSQL. Closes . (). Make `allowexperimentalquery_cache` setting as obsolete for backward-compatibility. It was removed in https://github.com/ClickHouse/ClickHouse/pull/47977. (). Function toUnixTimestamp() now accepts Date and Date32 arguments. (). Charge only server memory for dictionaries. (). Add schema inference to PostgreSQL, MySQL, MeiliSearch, and SQLite table engines. Closes . (). The server will allow using the `SQL_` settings such as `SQLAUTOIS_NULL` as no-ops for MySQL compatibility. This closes . (). Preserve initialqueryid for ON CLUSTER queries, which is useful for introspection (under `distributedddlentryformatversion=5`). (). Preserve backward incompatibility for renamed settings by using aliases (`allowexperimentalprojectionoptimization` for `optimizeuseprojections`, `allowexperimentallightweightdelete` for `enablelightweightdelete`). (). Support cross-replication in distributed queries using the new infrastructure. (). Support passing fqdn through setting my_hostname to register cluster node in keeper. Add setting of invisible to support multi compute groups. A compute group as a cluster, is invisible to other compute groups. (). Fix PostgreSQL reading all the data even though `LIMIT n` could be specified. (). 1) Fixed an error `NOTFOUNDCOLUMNINBLOCK` in case of using parallel replicas with non-replicated storage with disabled setting `parallelreplicasfornonreplicatedmergetree` 2) Now `allowexperimentalparallelreadingfromreplicas` have 3 possible values - 0, 1 and 2. 0 - disabled, 1 - enabled, silently disable them in case of failure (in case of FINAL or JOIN), 2 - enabled, throw an expection in case of

3) If FINAL modifier is used in SELECT query and parallel replicas are enabled, ClickHouse will try to disable them if `allowexperimentalparallelreadingfromreplicas` is set to 1 and throw an exception otherwise. (). Don't send head request for all keys in Iceberg schema inference, only for keys that are used for reaing data. (). Add new profile events for queries with subqueries (`QueriesWithSubqueries`/`SelectQueriesWithSubqueries`/`InsertQueriesWithSubqueries`). (). Adding the roles field in the users.xml file, which allows specifying roles with grants via a config file. (). When parallel replicas are enabled they will always skip unavailable servers (the behavior is controlled by the setting `skipunavailableshards`, enabled by default and can be only disabled). This closes: . (). Fix a typo. (). Setting `enablememoryboundmergingofaggregationresults` is enabled by default. If you update from version prior to 22.12, we recommend to set this flag to `false` until update is finished. (). Report `CGroupCpuCfsPeriod` and `CGroupCpuCfsQuota` in AsynchronousMetrics. - Respect cgroup v2 memory limits during server startup. (). Bump internal protobuf to v3.18 (fixes CVE-2022-1941). (). Bump internal libxml2 to v2.10.4 (fixes CVE-2023-28484 and CVE-2023-29469). (). Bump c-ares to v1.19.1 (CVE-2023-32067, CVE-2023-31130, CVE-2023-31147). (). Fix CVE-2022-2469 in libgsasl. (). Make filter push down through cross join. (). Add a signal handler for SIGQUIT to work the same way as SIGINT. Closes . (). In case JSON parse fails due to the large size of the object output the last position to allow debugging. (). Support decimals with not fixed size. Closes . (). Disable pure parallel replicas if trivial count optimization is possible. (). Added support of TRUNCATE db.table additional to TRUNCATE TABLE db.table in MaterializedMySQL. (). Disable parallel replicas automatically when the estimated number of granules is less than threshold. The behavior is controlled by a setting `parallelreplicasminnumberofgranulesto_enable`. (). When creating skipping indexes via "ALTER TABLE table ADD INDEX", the "GRANULARITY" clause can now be omitted. In that case, GRANULARITY is assumed to be 1. (). Fix slow cache in presence of big inserts. (). Set default max_elements limit in filesystem cache to 10000000. (). SHOW INDICES is now an alias of statement SHOW INDEX/INDEXES/KEYS. (). New and improved keeper-bench. Everything can be customized from yaml/XML file: - request generator - each type of request generator can have a specific set of fields - multi requests can be generated just by doing the same under `multi` key - for each request or subrequest in multi a `weight` field can be defined to control distribution - define trees that need to be setup for a test run - hosts can be defined with all timeouts customizable and it's possible to control how many sessions to generate for each host - integers defined with `minvalue` and `maxvalue` fields are random number generators. (). ... Add a test to check maxrowstoreadleaf behaviour. (). Io_uring is not supported on macos, don't choose it when running tests on local to avoid occassional failures. (). Support named fault injection for testing. (). Fix the 01193metadataloading test to match the query execution time specific to s390x. (). Use the RapidJSONParser library to parse the JSON float values in case of s390x. (). Allow running ClickHouse in the OS where the `prctl` (process control) syscall is not available, such as AWS Lambda. (). Improve CI check with an enabled analyzer. Now it should be green if only tests from `tests/broken_tests.txt` are broken. (). Fixed the issue of build conflict between contrib/isa-l and isa-l in qpl .

Utilities are now only build if explicitly requested ("-DENABLE_UTILS=1") instead of by default, this reduces link times in typical development builds. (). Pull build description of idxd-config into a separate CMake file to avoid accidental removal in future. (). Add CI check with an enabled analyzer in the master. Followup . (). Switch to LLVM/clang 16. (). Fixed DefaultHash64 for non-64 bit integers on s390x. (). Allow building ClickHouse with clang-17. (). ClickHouse is now easier to be integrated into other cmake projects. (). Link `boost::context` library to `clickhousecommonio`. This closes: . (). Add support for building with clang-17. (). Fix strange additional QEMU logging after , see https://s3.amazonaws.com/clickhouse-test-reports/50078/a4743996ee4f3583884d07bcd6501df0cfdaa346/statelesstestsreleasedatabasereplicated_ (). ClickHouse can work on Linux RISC-V 6.1.22. This closes . (). ActionsDAG: fix wrong optimization (). Correctly handle concurrent snapshots in Keeper (). MergeTreeMarksLoader holds DataPart instead of DataPartStorage (). sequence state fix (). Back/Restore concurrency check on previous fails (). Fix Attaching a table with non-existent ZK path does not increase the ReadonlyReplica metric (). Fix possible terminate called for uncaught exception in some places (). Fix key not found error for queries with multiple StorageJoin (). Fix wrong query result when using nullable primary key (). Revert "Fix GCS native copy ()" (). Fix reinterpretAs() on big endian machines (). Lock zero copy parts more atomically (). Fix race on Outdated parts loading (). Fix all key value is null and group use rollup return wrong answer (). Fix calculating load_factor for HASHED dictionaries with SHARDS (). Disallow configuring compression CODECs for alias columns (). Fix bug in removal of existing part directory (). Properly fix GCS when HMAC is used (). Fix fuzz bug when subquery set is not built when reading from remote() (). Invert `shutdownwaitunfinished_queries` (). Fix another zero copy bug (). Fix postgres database setting (). Correctly handle s3Cluster arguments (). Fix bug in TraceCollector destructor. (). Fix AsynchronousReadIndirectBufferFromRemoteFS breaking on short seeks (). Fix dictionaries loading order (). Forbid the change of data type of Object('json') column (). Fix stress test (Logical error: Expected 7134 >= 11030) (). Fix bug in DISTINCT (). Fix: DISTINCT in order with zero values in non-sorted columns (). Fix one-off error in big integers found by UBSan with fuzzer (). Fix reading from sparse columns after restart (). Fix assert in SpanHolder::finish() with fibers (). Fix short circuit functions and mutations with sparse arguments (). Fix writing appended files to incremental backups (). Ignore LWD column in checkPartDynamicColumns (). Fix msan issue in randomStringUTF8(<uneven number>) (). Fix aggregate function kolmogorovSmirnovTest (). Fix settings aliases in native protocol (). Fix `arrayMap` with array of tuples with single argument (). Fix per-query IO/BACKUPs throttling settings (). Fix setting NULL in profile definition (). Fix a bug with projections and the aggregatefunctionsnullforempty setting (for queryplanoptimize_projection) (). Fix processing pending batch for Distributed async INSERT after restart (). Fix assertion in CacheMetadata::doCleanup (). fix `is_prefix` in OptimizeRegularExpression (). Fix metrics `WriteBufferFromS3Bytes`, `WriteBufferFromS3Microseconds` and `WriteBufferFromS3RequestsErrors` (). Fix IPv6 encoding in protobuf (). Fix possible Logical error on bad Nullable parsing for text formats (). Add setting outputformatparquetcompliantnested_types to produce more compatible Parquet files (). Fix logical error in stress test "Not enough space to add ..." (). Avoid deadlock when starting table in attach thread of `ReplicatedMergeTree` (). Fix assert in SpanHolder::finish() with fibers attempt 2 (). Add proper escaping for DDL OpenTelemetry context serialization

Fix reporting broken projection parts (). JIT compilation not equals NaN fix (). Fix crashing in case of Replicated database without arguments (). Fix crash with `multiIf` and constant condition and nullable arguments (). Fix invalid index analysis for date related keys (). do not allow modify order by when there are no order by cols (). Fix broken index analysis when binary operator contains a null constant argument (). clickhouse-client: disallow usage of `--query` and `--queries-file` at the same time (). Fix UB for INTO OUTFILE extensions (APPEND / AND STDOUT) and WATCH EVENTS (). Fix skipping spaces at end of row in CustomSeparatedIgnoreSpaces format (). Fix iceberg metadata parsing (). Fix nested distributed SELECT in WITH clause (). Fix reconnecting of HTTPS session when target host IP was changed (). Fix msan issue in keyed siphash (). Fix bugs in Poco sockets in non-blocking mode, use true non-blocking sockets (). Fix checksum calculation for backup entries (). Fixed type conversion from Date/Date32 to DateTime64 when querying with DateTime64 index (). Comparison functions NaN fix (). JIT aggregation nullable key fix (). Fix clickhouse-local crashing when writing empty Arrow or Parquet output (). Fix crash when Pool::Entry::disconnect() is called (). Improved fetch part by holding directory lock longer (). Fix bitShift functions with both constant arguments (). Fix Keeper deadlock on exception when preprocessing requests. (). Fix hashing of const integer values (). Fix excessive memory usage for FINAL (due to too much streams usage) (). Fix mergetreeminrowsforseek/mergetreeminbytesforseek for data skipping indexes (). Limit the number of in-flight tasks for loading outdated parts (). Keeper fix: apply uncommitted state after snapshot install (). Fix incorrect constant folding (). Fix logical error in stress test (Not enough space to add ...) (). Fix converting Null to LowCardinality(Nullable) in values table function (). Fix crash in anti/semi join (). Revert invalid RegExpTreeDictionary optimization (). Correctly disable async insert with deduplication when it's not needed (). Fixed Functional Test 00870t64codec, 00871t64codecsigned, 00872t64bitcodec. (). NO CL ENTRY: 'Fix user MemoryTracker counter in async inserts'. (). NO CL ENTRY: 'Revert "Make `Pretty` formats even prettier."'. (). NO CL ENTRY: 'Update first_value.md:remove redundant 's''. (). NO CL ENTRY: 'Revert "less logs in WriteBufferFromS3"'. (). Attempt to fix the "system.stack_trace" test (). rework WriteBufferFromS3, add tests, add abortion (). Rework locking in fs cache (). Update ubuntuamifor_ci.sh (). Implement status comment (). Update curl to 8.0.1 (for CVEs) (). Fix some tests (). Bug Fix for 02432s3parallelpartscleanup.sql with zero copy replication (). Add AsyncLoader with dependency tracking and runtime prioritization (). Fix incorrect createColumn call on join clause (). Try fix flaky 01346alterenumpartitionkeyreplicatedzookeeper_long (). Fix possible logical error "Cannot cancel. Either no query sent or already cancelled" (). Refactor ColumnLowCardinality::cutAndCompact (). Fix tests with enabled analyzer (). Use `SharedMutex` instead of `UpgradableMutex` (). Don't add metadata_version file if it doesn't exist (). clearing s3 between tests in a robust way (). Align connect timeout with aws sdk default (). Fix testencrypteddisk_replication (). Allow using function `concat` with `Map` type (). Slight improvements to coordinator logging (). Fix some typos in conversion functions (). CMake: Remove some GCC-specific code (). Fix oss-fuzz build errors (). Update version after release (). Update version_date.tsv and changelogs after v23.4.1.1943-stable (). Merge (). Add file name to exception raised during decompression (). Disable ISA-L on aarch64 architectures

Add a comment in FileCache.cpp (). Fix garbage (). Update build for nasm (). Fix race in `waitForProcessingQueue` (). Fix stress test (). Fix 02516joinwithtotalsandsubquerybug with new analyzer (). Fallback auth gh api (). Unpoison stack frame ptrs from libunwind for msan (). Respect projections in 01600_parts (). move pipe compute into initializePipeline (). Fix compiling average example (suppress -Wframe-larger-than) (). Fix joinusenulls in analyzer (). Fix 02680mysqlastlogicalerr in analyzer (). Remove wrong assertion in cache (). A better way of excluding ISA-L on non-x86 (). Fix decimal aggregates test for s390x (). Move logging one line higher (). Improve CI: status commit, auth for getghapi (). Fix printing hung queries in clickhouse-test. (). Correctly stop CNF convert for too many atomics in new analyzer (). Remove 02707complexqueryfailsanalyzer test (). Update FileSegment.cpp (). Switch Block::NameMap to google::densehashmap over HashMap (). Slightly reduce inter-header dependencies (). Update WithFileName.cpp (). Fix some assertions failing in stress test (). Correctly cleanup sequential node in ZooKeeperWithFaultInjection (). Throw an exception for non-parametric functions in new analyzer (). Fix some bad error messages (). Update version_date.tsv and changelogs after v23.4.2.11-stable (). Remove trash (). Whitespaces (). Remove dependency from DB::Context in remote/cache readers (). Merging (Better error handling during loading of parts) (). all s3-blobs removed when merge aborted, remove part from failed fetch without unlock keper (). Make INSERT do more things in parallel to avoid getting bottlenecked on one thread (). Make 'exceptions shorter than 30' test less noisy (). Build fixes for ENABLE_LIBRARIES=OFF (). Add image for docker-server jepsen (). Follow-up to (). Add method `getCurrentAvailabilityZone` to `AWSEC2MetadataClient` (). Add an integration test for `shutdownwaitunfinished_queries` (). Replace `NO DELAY` with `SYNC` in tests (). Check the PRs body directly in lambda, without rerun. Fix RCE in the CI (). Minor changes for setThreadName (). Static cast std::atomic<sizet> to uint64t to serialize. (). Fix logical error in stress test, add some logging (). Fixes in server jepsen image (). Fix UserTimeMicroseconds and SystemTimeMicroseconds descriptions (). Remove garbage from HDFS (). Split ReadWriteBufferFromHTTP.h into .h and .cpp file (). Remove garbage from Pretty format (). Make inputformatparquetpreserveorder imply !parallelizeoutputfrom_storages (). Remove extra semicolons (). Fix 00597pushdownpredicatelong for analyzer (). Fix stress test (assertion 'key_metadata.lock()') (). Fix writeAnyEscapedString if quote_character is a meta character (). Add CMake option for BOOSTUSEUCONTEXT (). Fix 01655planoptimizationsoptimizereadinwindow_order for analyzer (). Fix `ThreadPool::wait` (). Query cache: disable for internal queries (). Remove `testmergetrees3restore` (). Fix bad test (). Remove obsolete test about deprecated feature (). Avoid error found by AST Fuzzer (). Fix wrong assert (). Flaky test 02723zookeepername.sql (). Query Cache: Safeguard against empty chunks (). 02723zookeepername: Force a deterministic result order (). Remove dangerous code (stringstream) (). Remove some code (). Remove "locale" (). CMake: Cleanup utils build (). Follow-up for (). Fix typo (). Fix bad test 01660systemparts_smoke (). Minor changes (). Follow-up for (). Fix error in (). Fix typo: "as much slots" -> "as many slots" (). Better concurrent parts removal with zero copy (). CMake: Remove legacy switch for ccache (). Try to fix integration test 'testsslcert_authentication' (). Unflake 01660systemparts_smoke (). Add trash (). Remove commented code (). Add flaky test (). Fix race in `Context::createCopy` (). Disable 01710projectionaggregationinorder.sql (). Fix flaky 02684_bson.sql (). Some cache cleanup after rework locking (). Correctly update log pointer during database replica recovery

Enable distinct in order after fix (). Build fixes for RISCV64 (). Add some logging (). Fix a wrong built generator removal, use `depth=1` (). Fix member call on null pointer in AST fuzzer (). Improve woboq codebrowser pipeline (). Enable `donotevictindexandmarkfiles` by default (). Backport fix for UBSan error in musl/logf.c (). Fix flaky test for `kolmogorovSmirnovTest` function (). Update clickhouse-test (). IBM s390x: ip encoding fix (). Remove not used ErrorCodes (). Disable mmap for StorageFile in clickhouse-server (). Fix typo (). Do not launch workflows for PRs w/o "can be tested" (). Move assertions after logging (). Docs: Fix sidebar label for dictionary table function (). Do not allocate own buffer in CachedOnDiskReadBufferFromFile when `useexternalbuffer == true` (). fix convertation (). fix flaky test 02504regexpdictionaryuaparser (). Fix unit test `ExceptionFromWait` (). Add forgotten lock (addition to ) (). Fix typo (). Fix build of `libfiu` on clang-16 (). Update README.md (). Analyzer: fix column not found for optimized prewhere with sample by (). Typo: demange.cpp --> demangle.cpp (). Analyzer: apply _CAST to constants only once (). Use CLOCKMONOTONICRAW over CLOCK_MONOTONIC on Linux (fixes non monotonic clock) (). README.md: 4 --> 5 (). Allow ASOF JOIN over nullable right column (). Make 01533multiplenested test more reliable (). What happens if I remove everything in msan_suppressions? (). Update README.md (). Randomize enablemultipleprewherereadsteps setting (). Analyzer: do not optimize GROUP BY keys with ROLLUP and CUBE (). Clearable hash table and zero values (). Reset vectorscan reference to an "official" repo (). Enable few slow clang-tidy checks for clangd (). Update QPL docs (). Small-ish .clang-tidy update (). Follow-up for clang-tidy (). Fix "reference to local binding" after fixes for clang-17 (). fix typo (). Log with warning if the server was terminated forcefully (). Fix some tests (). use chassert in MergeTreeDeduplicationLog to have better log info (). Multiple pools support for AsyncLoader (). Fix stack-use-after-scope in resource manager test (). Retry connection expired in testrenamecolumn/test.py (). Try to fix flaky testdistributedload_balancing tests (). Remove unused code (). Fix flakiness of testdistributedload_balancing test (). Add some logging (). Support hardlinking parts transactionally (). Fix for analyzer: 02377 optimizesortingbyinputstreamproperties_e (). Follow up to (). Fix flaky testsslcert_authentication to use urllib3 (). Fix woboq codebrowser build with -Wno-poison-system-directories (). test for (). Fix testinsertsamepartitionand_merge failing if one Azure request attempt fails (). Check return value of `ftruncate` in Keeper (). Add some assertions (). Update 02441alterdeleteanddrop_column.sql (). Move some common code to common (). Add method getCredentials() to S3::Client (). Update query_log.md (). Get rid of indirect write buffer in object storages (). Load balancing bugfixes (). Update S3 sdk to v1.11.61 (). Fix 02735systemzookeeper_connection for DatabaseReplicated (). Add more profile events for distributed connections (). FileCache: simple tryReserve() cleanup (). Fix hashed/sparsehashed dictionaries maxload_factor upper range (). Clearer coordinator log (). Analyzer: Do not execute table functions multiple times (). Update default settings for Replicated database (). Make async prefetched buffer work with arbitrary impl (). Update github.com/distribution/distribution (). Docs: Update clickhouse-local arguments (). Change fields destruction order in AsyncTaskExecutor (). Follow-up to (). Clarification comment on retries controller behavior (). Switch to upstream repository of vectorscan (). Refactor lambdas, prepare to prio runners (). Speed-up the shellcheck with parallel xargs (). Update an exception message (). Upgrade boost submodule

Implement a uniform way to query processor core IDs (). Don't replicate delete through DDL worker if there is just 1 shard (). Fix codebrowser by using clang-15 image (). Add comments to build reports (). Automatic backports of important fixes to cloud-release (). Unify priorities: lower value means higher priority (). Use transactions for encrypted disks (). Get detailed error instead of unknown error for function test (). README.md: Remove Berlin Meetup from upcoming events (). Minor adjustment of clickhouse-client/local parameter docs (). Unify priorities: rework IO scheduling subsystem (). Add new metrics BrokenDistributedBytesToInsert/DistributedBytesToInsert (). Fix URL in backport comment (). Fix `02535maxparallelreplicascustom_key` (). Fixes for MergeTree with readonly disks (). Yet another refactoring (). Unify priorities: rework AsyncLoader (). buffers d-tor finalize free (). Fix 02767intooutfileextensionsmsan under analyzer (). QPL: Add a comment about isal (). Avoid clang 15 crash (). Cleanup Annoy index (). Fix flaky `AsyncLoader.StaticPriorities` unit test (). Update gtestasyncloader.cpp (). Fix IS (NOT) NULL operator priority (). Update README.md (). do not fix the event list in test (). less logs in WriteBufferFromS3 (). Remove legacy install scripts superseded by universal.sh (). Fail perf tests when too many queries slowed down (). Fix after (). Fix log message (). Compare functions NaN update test (). Add re-creation for cherry-pick PRs (). Without applying `prepareRightBlock` will cause mismatch block structrue (). fix hung in unit tests (). Fix poll timeout in MaterializedMySQL (). Compile aggregate expressions enable by default (). Update app.py (). reuse s3mocks, rewrite test testparanoidcheckin_logs (). test for (). Remove something (). Mark the builds without results as pending (). Revert "Fix msan issue in keyed siphash" (). Revert "Revert "less logs in WriteBufferFromS3" ()" (). Paranoid fix for removing parts from ZooKeeper (). Add timeout for unit tests (). Changes related to an internal feature (). Don't crash if config doesn't have logger section (). Update function docs (). Revert "make filter push down through cross join" (). Add some assertions (). CI: Enable aspell on nested docs (). Try fix flaky test testasyncquery_sending (). Disable 00534functionsbad_arguments with msan (). Typos: Follow-up to (). Remove unneeded Keeper test (). Fix KeyError in cherry-pick (). Make typeid_cast for pointers noexcept (). less traces in logs (). Implement endianness-independent serialization for UUID (). Remove strange object storage methods (). Fix low quality code around metadata in RocksDB (experimental feature never used in production) (). Function if constant folding (). Add profile events for fs cache eviction (). QueryNode small fix (). Control memory usage in generateRandom (). Disable skim (Rust library) under memory sanitizer (). MSan support for Rust (). Make 01565queryloopafterclient_error slightly more robust (). Resize BufferFromVector underlying vector only pos_offset == vector.size() (). Add async iteration to object storage (). skip extracting darwin toolchain in builder when unncessary (). Remove flaky test (). Revert "Disable skim (Rust library) under memory sanitizer" (). Analyzer: fix 01487distributedinnotdefault_db (). Fix commit for DiskObjectStorage (). Fix Jepsen runs in PRs (). Revert incorrect optimizations (). Disable 01676clickhouseclient_autocomplete under UBSan (). Merging (). Revert "date_trunc function to always return DateTime type" (). Fix flaky test 02461prewhererowlevelpolicylightweightdelete (). Fix asan issue with analyzer and prewhere (). Catch issues with dockerd during the build (). Temporarily disable annoy index tests (flaky for analyzer) (). Fix assertion from stress test (). Fix flaky unit test (). Show correct sharing state in system.query_cache ().