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

sidebar_position: 1 sidebar_label: 2023 Relax symbols that are allowed in URL authority in domain*RFC()/netloc(). (). Prohibit create tables based on KafkaEngine with DEFAULT/EPHEMERAL/ALIAS/MATERIALIZED statements for columns. (). An "asynchronous connection drain" feature is removed. Related settings and metrics are removed as well. It was an internal feature, so the removal should not affect users who had never heard about that feature. (). Support 256-bit Decimal data type (more than 38 digits) in `arraySum`/`Min`/`Max`/`Avg`/`Product`, `arrayCumSum`/`CumSumNonNegative`, `arrayDifference`, array construction, IN operator, query parameters, `groupArrayMovingSum`, statistical functions, `min`/`max`/`any`/`argMin`/`argMax`, PostgreSQL wire protocol, MySQL table engine and function, `sumMap`, `mapAdd`, `mapSubtract`, `arrayIntersect`. Add support for big integers in `arrayIntersect`. Statistical aggregate functions involving moments (such as `corr` or various `TTest`s) will use `Float64` as their internal representation (they were using `Decimal128` before this change, but it was pointless), and these functions can return `nan` instead of `inf` in case of infinite variance. Some functions were allowed on `Decimal256` data types but returned `Decimal128` in previous versions - now it is fixed. This closes . This closes . This closes . (). Make backupthreads/restorethreads server settings. (). Fix the isIPv6String function which could have outputted a false positive result in the case of an incorrect IPv6 address. For example `1234::1234:` was considered a valid IPv6 address. (). Add new mode for splitting the work on replicas using settings `parallelreplicascustomkey` and `parallelreplicascustomkeyfiltertype`. If the cluster consists of a single shard with multiple replicas, up to `maxparallelreplicas` will be randomly picked and turned into shards. For each shard, a corresponding filter is added to the query on the initiator before being sent to the shard. If the cluster consists of multiple shards, it will behave the same as `sample_key` but with the possibility to define an arbitrary key. (). Added query setting `partialresultonfirstcancel` allowing the canceled query (e.g. due to Ctrl-C) to return a partial result. (). Added support of arbitrary tables engines for temporary tables except for Replicated and KeeperMap engines. Partially close . (). Add replication of user-defined SQL functions using ZooKeeper. (). Implement `system.server_settings` (similar to `system.settings`), which will contain server configurations. (). Intruduce a function `WIDTH_BUCKET`. . (). Add new function parseDateTime/parseDateTimeInJodaSyntax according to specified format string. parseDateTime parses string to datetime in MySQL syntax, parseDateTimeInJodaSyntax parses in Joda syntax. (). Use `dummy UInt8` for default structure of table function `null`. Closes . (). Dec 15, 2021 support for parseDateTimeBestEffort function. closes . (). Add function ULIDStringToDateTime(). Closes . (). Add settings `httpwaitendofquery` and `httpresponsebuffersize` that corresponds to URL params `waitendofquery` and `buffer_size` for HTTP interface. (). Support for `UNDROP TABLE` query. Closes . (). Add `system.markeddroppedtables` table that shows tables that were dropped from `Atomic` databases but were not completely removed yet. (). Add `INSTR` as alias of `positionCaseInsensitive` for MySQL compatibility. Closes . (). Added `toDecimalString` function allowing to convert numbers to string with fixed precision. (). Added operator "REGEXP" (similar to operators "LIKE", "IN", "MOD" etc.) for better compatibility with MySQL. (). Allow executing reading pipeline for DIRECT dictionary with CLICKHOUSE source in multiple threads. To enable set `dictionaryuseasync_executor=1` in `SETTINGS` section for source in `CREATE DICTIONARY` statement. (). Add merge tree setting `maxnumberofmutatuinsfor_replica`. It limit the number of part mutations per replica to the specified amount. Zero means no limit on the number of mutations per replica (the execution can still be constrained by other settings). (). Optimize one nullable key aggregate performance.

Implemented lowercase tokenbf_v1 index utilization for hasTokenOrNull, hasTokenCaseInsensitive and hasTokenCaseInsensitiveOrNull. (). Optimize the generic SIMD StringSearcher by searching first two chars. (). System.detached_parts could be significant large. - added several sources with respects block size limitation - in each block iothread pool is used to calculate part size, ie to make syscalls in parallel. (). Increase the default value of `maxreplicatedmergesinqueue` for ReplicatedMergeTree tables from 16 to 1000. It allows faster background merge operation on clusters with a very large number of replicas, such as clusters with shared storage in ClickHouse Cloud. (). Backups for large numbers of files were unbelievably slow in previous versions. (). Support filter push down to left table for JOIN with StorageJoin, StorageDictionary, StorageEmbeddedRocksDB. (). Marks in memory are now compressed, using 3-6x less memory. (). Updated copier to use group by instead of distinct to get list of partitions. For large tables this reduced the select time from over 500s to under 1s. (). Address https://github.com/clickhouse/clickhouse/issues/46453. bisect marked https://github.com/clickhouse/clickhouse/pull/35525 as the bad changed. this pr looks to reverse the changes in that pr. (). Fixed excessive reading in queries with `FINAL`. (). Setting `maxfinalthreads` would be set to number of cores at server startup (by the same algorithm as we use for `max_threads`). This improves concurrency of `final` execution on servers with high number of CPUs. (). Avoid breaking batches on read requests to improve performance. (). Add map related functions: mapFromArrays, which allows us to create map from a pair of arrays. (). Rewrite distributed sends to avoid using filesystem as a queue, use in-memory queue instead. (). Allow separate grants for named collections (e.g. to be able to give `SHOW/CREATE/ALTER/DROP named collection` access only to certain collections, instead of all at once). Closes . Add new access type `NAMEDCOLLECTIONCONTROL` which is not given to default user unless explicitly added to user config (is required to be able to do `GRANT ALL`), also `shownamedcollections` is no longer obligatory to be manually specified for default user to be able to have full access rights as was in 23.2. (). Now `X-ClickHouse-Query-Id` and `X-ClickHouse-Timezone` headers are added to response in all queries via http protocol. Previously it was done only for `SELECT` queries. (). Support for connection to a replica set via a URI with a host:port enum and support for the readPreference option in MongoDB dictionaries. Example URI: mongodb://db0.example.com:27017,db1.example.com:27017,db2.example.com:27017/?replicaSet=myRepl&readPreference=primary. (). Re-implement projection analysis on top of query plan. Added setting `queryplanoptimize_projection=1` to switch between old and new version. Fixes . (). Use parquet format v2 instead of v1 in output format by default. Add setting `outputformatparquetversion` to control parquet version, possible values `v10`, `v24`, `v26`, `v2_latest` (default). (). Not for changelog - part of . (). Allow to ignore errors while pushing to MATERILIZED VIEW (add new setting `materialized_views_ignore_errors`, by default to `false`, but it is set to `true` for flushing logs to `system._log` tables unconditionally). (). Enable inputformatjsonignoreunknownkeysinnamedtuple by default. (). It is now possible using new configuration syntax to configure Kafka topics with periods in their name. (). Fix heuristics that check hyperscan patterns for problematic repeats. (). Don't report ZK node exists to system.errors when a block was created concurrently by a different replica. (). Allow PREWHERE for Merge with different DEFAULT expression for column. (). Increase the limit for opened files in `clickhouse-local`. It will be able to read from `web` tables on servers with a huge number of CPU

Do not back off reading from the URL table engine in case of too many opened files. This closes . (). Exceptions thrown when numbers cannot be parsed now have an easier-to-read exception message. (). Added update `system.backups` after every processed task. (). Allow types conversion in Native input format. Add settings `inputformatnativeallowtypes_conversion` that controls it (enabled by default). (). Allow IPv4 in the `range` function to generate IP ranges. (). Role change was not promoted sometimes before https://github.com/ClickHouse/ClickHouse/pull/46772 This PR just adds tests. (). Improve exception message when it's impossible to make part move from one volume/disk to another. (). Support `Bool` type in `JSONType` function. Previously `Null` type was mistakenly returned for bool values. (). Use requestbody parameter to configure predefined http queries. (). Removing logging of custom disk structure. (). Allow nested custom disks. Previously custom disks supported only flat disk structure. (). Automatic indentation in the built-in UI SQL editor when Enter is pressed. (). Allow control compression in Parquet/ORC/Arrow output formats, support more compression for input formats. This closes . (). Self-extraction with 'sudo' will attempt to set uid and gid of extracted files to running user. (). Currently the funtion repeat's second argument must be unsigned integer type, which can not accept a integer value like -1. And this is different from the spark function, so I fix this here to make it same as spark. And it tested as below. (). Remove `::1` part from stacktraces. Display `std::basic_string<char, ...` as `String` in stacktraces. (). Introduced a separate thread pool for backup IO operations. This will allow to scale it independently from other pool and increase performance. (). Reimplement interserver mode to avoid replay attacks (note, that change is backward compatible with older servers). (). Make function `optimizeregularexpression` recognize re groups and refine regexp tree dictionary. (). Use MultiRead request and retries for collecting metadata at final stage of backup processing. (). Keeper improvement: Add new 4LW `clrs` to clean resources used by Keeper (e.g. release unused memory). (). Add optional arguments to codecs `DoubleDelta(bytessize)`, `Gorilla(bytessize)`, `FPC(level, float_size)`, it will allow using this codecs without column type in `clickhouse-compressor`. Fix possible abrots and arithmetic errors in `clickhouse-compressor` with these codecs. Fixes: https://github.com/ClickHouse/ClickHouse/discussions/47262. (). Add support for big int types to runningDifference() function. Closes . (). PostgreSQL replication has been adjusted to use "FROM ONLY" clause while performing initial synchronization. This prevents double-fetching the same data in case the target PostgreSQL database uses table inheritance. (). Add an expiration window for S3 credentials that have an expiration time to avoid `ExpiredToken` errors in some edge cases. It can be controlled with `expirationwindowseconds` config, the default is 120 seconds. (). Support Decimals and Date32 in Avro format. (). Do not start the server if an interrupted conversion from `Ordinary` to `Atomic` was detected, print a better error message with troubleshooting instructions. (). Add a new column `kind` to system.opentelemetryspanlog. This column holds the value of defined in OpenTelemtry. (). If a backup and restoring data are both in S3 then server-side copy should be used from now on. (). Add SSL User Certificate authentication to the native protocol. Closes . (). Allow reading/writing nested arrays in Protobuf with only root field name as column name. Previously column name should've contain all nested field names (like `a.b.c Array(Array(Array(UInt32)))`, now you can use just `a Array(Array(Array(UInt32)))`.

Added an optional `STRICT` modifier for `SYSTEM SYNC REPLICA` which makes the query wait for replication queue to become empty (just like it worked before https://github.com/ClickHouse/ClickHouse/pull/45648). (). Improvement name of some span logs. (). Now ReplicatedMergeTree with zero copy replication has less load to ZooKeeper. (). Prevent using too long chains of aggregate function combinators (they can lead to slow queries in the analysis stage). This closes . (). Support for subquery in parameterized views resolves Implementation: Updated to pass the parameter iscreateparameterized_view to subquery processing. Testing: * Added test case with subquery for parameterized view. (). Fix memory leak in MySQL integration (reproduces with `connectionautoclose=1`). (). AST Fuzzer support fuzz `EXPLAIN` query. (). Fixed error print message while Decimal parameters is incorrect. (). Add `X-ClickHouse-Query-Id` to HTTP response when queries fails to execute. (). AST fuzzer support fuzzing `SELECT` query to `EXPLAIN` query randomly. (). Improved the overall performance by better utilizing local replica. And forbid reading with parallel replicas from non-replicated MergeTree by default. (). More accurate CPU usage indication for client: account for usage in some long-living server threads (Segmentator) and do regular CPU accounting for every thread. (). The parameter `exactrowsbeforelimit` is used to make `rowsbeforelimitat_least` is designed to accurately reflect the number of rows returned before the limit is reached. This pull request addresses issues encountered when the query involves distributed processing across multiple shards or sorting operations. Prior to this update, these scenarios were not functioning as intended. (). ThreadPool metrics introspection. (). Add `WriteBufferFromS3Microseconds` and `WriteBufferFromS3RequestsErrors` profile events. (). Add `--link` and `--noninteractive` (`-y`) options to clickhouse install. Closes . (). Fix decimal-256 text output issue on s390x. (). Fixed `UNKNOWN_TABLE` exception when attaching to a materialized view that has dependent tables that are not available. This might be useful when trying to restore state from a backup. (). Fix case when (optional) path is not added to encrypted disk configuration. (). Add OrNull() and *OrZero() variants for parseDateTime(), add alias "strtodate" for MySQL parity. (). Improve the code around `background...pool_size` settings reading. It should be configured via the main server configuration file. (). Support for cte in parameterized views Implementation: Updated to allow query parameters while evaluating scalar subqueries. Testing: * Added test case with cte for parameterized view. (). Add `NOSIGN` keyword for S3 table function and storage engine to avoid signing requests with provided credentials. Add `nosignrequest` config for all functionalities using S3. (). Support bin integers `(U)Int128/(U)Int256`, `Map` with any key type and `DateTime64` with any precision (not only 3 and 6). (). Support more ClickHouse types in MsgPack format: (U)Int128/(U)Int256, Enum8(16), Date32, Decimal(32|64|128|256), Tuples. (). The output of some SHOW ... statements is now sorted. (). Allow skipping errors related to unknown enum values in row input formats. (). Add `allowdistributedddl_queries` option to disallow distributed DDL queries for the cluster in the config. (). Determine the hosts' order in `SHOW CLUSTER` query, a followup for and . (). Split stress test and backward compatibility check (now Upgrade check). (). Use sccache as a replacement for ccache and using S3 as cache backend. (). Updated Ubuntu Image. (). Adds a prompt to allow the removal of an existing `cickhouse` download when using "curl | sh" download of ClickHouse. Prompt is "ClickHouse binary clickhouse already exists. Overwrite? (). Fix error during server startup on old distros (e.g. Amazon Linux 2) and on ARM that glibc 2.28 symbols are not found.

Clang 16 is set to release in the next few days, making it an opportune time to update. (). Added a CI check which ensures ClickHouse can run with an old glibc on ARM. (). ClickHouse now builds with C++23. (). Fixed issue with starting `clickhouse-test` against custom clickhouse binary with `-b`. ... (). Add a style check to prevent incorrect usage of the `NDEBUG` macro. (). Speed up the build a little. (). Bump vectorscan to 5.4.9. (). Add a unit test to assert arrow fatal logging does not abort. It covers the changes in https://github.com/ClickHouse/arrow/pull/16. (). Restore ability of native macos debug server build to start (this time for real). (). Functional tests will trigger JIT compilation more frequently, in a randomized fashion. See . (). The `clickhouse/clickhouse-keeper` image used to be pushed only with tags `-alpine`, e.g. `latest-alpine`. As it was suggested in https://github.com/ClickHouse/examples/pull/2, now it will be pushed as suffixless too. (). Fix create materialized view with MaterializedPostgreSQL (). Fix formats parser resetting, test processing bad messages in kafka (). Fix several `RENAME COLUMN` bugs. (). Fix data size calculation in Keeper (). Fixes for 993 (). Fix incorrect alias recursion in QueryNormalizer (). Fix IPv4/IPv6 serialization/deserialization in binary formats (). ActionsDAG: do not change result of and() during optimization (). Fix queries cancellation when a client dies (). Fix arithmetic operations in aggregate optimization (). Fix possible clickhouse-local abort on JSONEachRow schema inference (). Fix changing an expired role (). Fix combined PREWHERE column accumulated from multiple steps (). Use initial range for fetching file size in HTTP read buffer (). Fix progress bar with URL (). Do not allow const and non-deterministic secondary indexes (). Fix MSan report in `maxIntersections` function (). Fix a bug in `Map` data type (). Fix wrong results of some LIKE searches when the LIKE pattern contains quoted non-quotable characters (). Fix - WITH FILL would produce abort when FillingTransform processing empty block (). Fix date and int inference from string in JSON (). Fix bug in zero-copy replication disk choice during fetch (). Fix typo in systemd service definition (). Fix NOT_IMPLEMENTED error with CROSS JOIN and algorithm = auto (). Fix the problem that the 'ReplicatedMergeTree' table failed to insert two similar data when the 'part_type' is configured as 'InMemory' mode. (). External dictionaries / library-bridge: Fix error "unknown library method 'extDict_libClone'" (). Fix race in grace hash join with limit (). Fix concrete columns PREWHERE support (). Fix possible deadlock in QueryStatus (). BackupRestoreconcurrencychecknode (). Forbid insert select for the same StorageJoin (). Skip merged partitions for `minagetoforcemerge_seconds` merges (). Modify findfirstsymbols so it works as expected for findfirstnot_symbols (). Fix big numbers inference in CSV (). Disable logical expression optimizer for expression with aliases. (). Remove a feature (). Fix error in `decodeURLComponent` (). Fix explain graph with projection (). Fix query parameters (). Parameterized view bug fix 47287 47247 (). Fuzzer of data formats (). Fix monotonicity check for DateTime64 (). Fix block structure mismatch for nullable LowCardinality column (). Proper fix for bug in parquet, revert reverted (). Fix BSONEachRow parallel parsing when document size is invalid (). Preserve error in system.distribution_queue on SYSTEM FLUSH DISTRIBUTED (). Revert "Revert "BackupRestoreconcurrencychecknode"" (). Check for duplicate column in BSONEachRow format (). Fix wait for zero copy lock during move (). Fix aggregation by partitions (). Fix bug in tuple as array serialization in BSONEachRow format (). Fix crash in polygonsSymDifferenceCartesian

Fix reading from storage `File` compressed files with `zlib` and `gzip` compression (). Improve empty query detection for PostgreSQL (for pgx golang driver) (). Fix DateTime monotonicity check for LowCardinality (). Use restorethreads (not backupthreads) for RESTORE ASYNC (). Fix DROP COLUMN with ReplicatedMergeTree containing projections (). Fix for Replicated database recovery (). Hotfix for too verbose warnings in HTTP (). Fix "Field value too long" in catboostEvaluate() (). Fix : Watchdog: exit with non-zero code if child process exits (). Fix for index file cidx is unexpectedly long (). fix MaterializedPostgreSQL query to get attributes (replica-identity) (). parseDateTime(): Fix UB (signed integer overflow) (). Use uniq names for Records in Avro to avoid reusing its schema (). Fix crash in explain graph with StorageMerge (). Correctly set TCP/HTTP socket timeouts in Keeper (). Fix possible member call on null pointer in Avro format (). Update krb5 to 1.20.1-final to mitigate CVE-2022-42898. (). Fixed random crash issues caused by bad pointers in libunwind for s390x. (). Fixed http xz compression issue for s390x. (). Fixed murmurhash function for s390x. (). Fixed halfMD5 and broken cityHash function for s390x. (). Fixed farmhash functions for s390x. (). Fixed endian issue in hashing tuples for s390x. (). Fixed SipHash integer hashing issue and byte order issue in random integer data from GenerateRandom storage engine for s390x. (). NO CL ENTRY: 'Revert "Fix several `RENAME COLUMN` bugs."'. (). NO CL ENTRY: 'Revert "Add joinalgorithm='gracehash' to stress tests"'. (). NO CL ENTRY: 'Revert "Give users option of overwriting"'. (). NO CL ENTRY: 'Revert "standardize admonitions"'. (). NO CL ENTRY: 'Revert "BackupRestoreconcurrencychecknode"'. (). NO CL ENTRY: 'Update storing-data.md'. (). NO CL ENTRY: 'Revert "Fix BSONEachRow parallel parsing when document size is invalid"'. (). NO CL ENTRY: 'Revert "New navigation"'. (). NO CL ENTRY: 'Revert "Analyzer planner fixes before enable by default"'. (). NO CL ENTRY: 'Revert "Revert "Analyzer planner fixes before enable by default""'. (). NO CL ENTRY: 'Revert "Add sanity checks for writing number in variable length format"'. (). NO CL ENTRY: 'Revert "Revert "Revert "BackupRestoreconcurrencychecknode"""'. (). Test differences between using materializettlrecalculate_only=1/0 (). Fix query in stress script (). Add joinalgorithm='gracehash' to stress tests (). Support `groupbyuse_nulls` setting in new analyzer (). Randomize setting `ratioofdefaultsforsparse_serialization` (). Add CrossToInnerJoinPass (). Fix flakiness of testbackuprestoreoncluster/testdisallowconcurrency (). Map field to string fix (). Enable perf tests added in (). Logical expression optimizer in new analyzer (). Named collections: finish replacing old code for storages (). Make tiny improvements (). Fix openssl/s390x build (setenv + link order) (). Analyzer AutoFinalOnQueryPass fix (). Mark failed build reports as pending on reruns (). Do not reanalyze expressions from aggregation in projection (). Update CHANGELOG.md (). Poco: Remove some dead code (). More concise logging at trace level for PREWHERE steps (). Follow-up to (). Fix timeout for all expect tests (wrong usage of expect_after timeout) (). Reduce updates of Mergeable Check (). Updated Slack invite link (). Print all stacktraces in hung check (). Quick temporary fix for stress tests (). Update version after release (). Update version_date.tsv and changelogs after v23.2.1.2537-stable (). Remove ZSTD version from CMake output (). Update version_date.tsv and changelogs after v22.11.6.44-stable (). CMake: Add best effort checks that the build machine isn't too old (). Fix async reading pipeline when small limit is present (). Cleanup string search code (). Stateless cmake version (). refine regexp tree dictionary (). Non-significant change

Add a trap (). Better handling of fatal errors (). Add a test for (). Fix wrong function name (). Add a test for (). Final fixes for expect tests (). Small optimization of LIKE patterns with > 1 trailing % (). Add new metrics to system.asynchronous_metrics (). Fix flaky `testconcurrentqueriesrestrictionbyquerykind` (). Fix test testasyncbackupstosame_destination. (). Make ASTSelectQuery::formatImpl() more robust (). tests: fix 02116interactivehello for "official build" (). Fix some expect tests leftovers and enable them in fasttest (). Increase ddl timeout for DROP statement in backup restore tests (). A better alternative to (). Code review from @tavplubix (). Planner: trivial count optimization (). Typo: SIZESOFARRAYSDOESNTMATCH --> SIZESOFARRAYSDONTMATCH (). Another fix for clone() for ASTColumnMatchers (). Un-inline likePatternToRegexp() (). Fix missing format_description (). ARM: Activate LDAPR with -march flag instead via -XClang (). Preset description on the tweak reset (). Update version_date.tsv and changelogs after v22.3.19.6-lts (). Update version_date.tsv and changelogs after v22.8.14.53-lts (). Better exception messages when schemainferencehints is ill-formatted (). Decrease log level in "disks" (). Change the cherry-pick PR body (). Rename recent stateless tests to fix order (). Pass headers from StorageURL to WriteBufferFromHTTP (). Change level log in executeQuery (). Add thevar1able to trusted contributors (). Use /etc/default/clickhouse in systemd too (). Fix tmppathtemplate in HTTPHandler::processQuery (). Fix flaky azure test (). Temporary enable force_sync for keeper in CI (). ActionsDAG: do not change result of and() during optimization - part 2 (). Add upgrade check to stateful dependent field (). Disable path check in SQLite storage for clickhouse-local (). Terminate long-running offline non-busy runners in EC2 (). Fix Keeper with `force_sync = false` (). Update version_date.tsv and changelogs after v23.2.2.20-stable (). Update version_date.tsv and changelogs after v23.1.4.58-stable (). Update version_date.tsv and changelogs after v22.12.4.76-stable (). Fix empty result when selection from only one side of join in analyzer (). Suppress "Cannot flush" for Distributed tables in upgrade check (). Make stacktraces in hung check more readable (). release lambda resources before detaching thread group (). Analyzer Planner fixes before enable by default (). do flushUntrackedMemory when context switches (). fix: keeper systemd service file include invalid inline comment (). Add code for autoscaling lambda (). Enable lightweight delete support by default (). Update typing for a new PyGithub version (). Shorten some code with CTAD (). Make 01710_projections more stable. (). fixJSONsearchField (). Mark 01771bloomfilternothas as no-parallel and long (). Use unique names and paths in `testreplicateddatabase` (). Add stupid retries in clickhouse-test health check. (). 02346fulltext_search.sql: Add result separators to simplify analysis (). More correct handling of fatal errors (). Update read in StorageMemory (). Doc update for mapFromArrays() (). Fix failure context for Upgrade check (). Add support for different expected errors (). Fix ip coding on s390x (). Add real client (initiator server) address into the logs for interserver mode (). Fix 01019altermaterializedviewconsistent (). Fix RewriteArrayExistsToHasPass (). Release shared ptrs after finishing a transaction (). Add default constructor for `MultiReadResponse` (). Join threads if exception happened in `ZooKeeperImpl` constructor (). use std::lerp, constexpr hex.h (). Update version_date.tsv and changelogs after v23.2.3.17-stable (). Fix bug in zero copy replica which can lead to dataloss (). Fix typo (). Follow-up to (). Fix test 02566ipv4ipv6binaryformats (). Set fixed index_granularity for test 00636 (). Add a manual trigger for release workflow (). Fix 02570fallbackfromasyncinsert (). Catch exceptions in LiveViewPeriodicRefreshTask (). Fix MergeTreeTransaction::isReadOnly (). Fix an assertion with implicit transactions in interserver mode

Fix `File exists` error in Upgrade check (). Support transformQueryForExternalDatabase for analyzer (). Disable parallel format in health check (). Analyzer - fix combine logic for limit expression and limit setting (). Suppress expected errors from test 01111 in Upgrade check (). Fix GROUPING function initialization for grouping sets (). Add joinalgorithm='gracehash' to stress tests (). Fix 02343groupbyusenulls test in new analyzer (). Disable 02368cancelwriteintohdfs in stress tests (). Analyzer planner fixes before enable by default (). Fix `ALTER CLEAR COLUMN` with sparse columns (). Fix: apply reading in order for distinct (). add checks for ptr (). Remove distinct on top of MergingAggregatedStep (). Update LRUFileCachePriority.cpp (). Make test 02473optimizeold_parts less flaky (). Add test to prevent regressions when using bitmapHasAny (). Update README.md (). Refactor query cache (make use of CacheBase) (). Suppress Hung Check with UBsan (). (). Apply settings for EXPLAIN earlier (in the same way we do for SELECT). (). Update version_date.tsv and changelogs after v23.2.4.12-stable (). Fix aggregation-in-order with aliases. (). Fix 01429joinonerrormessages (). Update version_date.tsv and changelogs after v23.1.5.24-stable (). Update version_date.tsv and changelogs after v22.12.5.34-stable (). Better error messages in ReplicatedMergeTreeAttachThread (). Update version_date.tsv and changelogs after v22.8.15.23-lts (). Disable grace hash join in upgrade check (). Revert (testasyncinsert_memory) (). Fix `00933testfixextraseekoncompressed_cache` in releases. (). Fix long test `02371selectprojectionnormalagg.sql` (). Revert and add a test (). Planner JOIN TREE build fix (). Better support of identifiers from compound expressions in analyzer (). Adapt some tests to pass with and without the analyzer (). Small enhancements (). Support constants in INTERPOLATE clause (new analyzer) (). Remove TOTALS handling in FillingTransform (). Hide too noisy log messages, fix some tests (). Fix some flaky tests (). remove counters for threads, fix negative counters (). Fix typo (). Fixes for upgrade check (). Change error code in case of columns definitions was empty in ODBC (). Add missing SYSTEM FLUSH LOGS for log messages statistics (). Fix performance regression in aggregation (). ReadFromMergeTree explain prewhere and row policy actions (). Fix possible failures of 01300clientsavehistorywhenterminatedlong (). checksum: do not check inverted index files (). Add sanity checks for writing number in variable length format (). Analyzer planner fixes before enable by default (). Fix exception message in clickhouse-test (). FillingTransform: remove unnecessary indirection when accessing columns (). fix typo in HashJoin insertion that enables debug code in release build (). clang-tidy >= 15: write CheckOptions in dictionary format (). CMake: Build ClickHouse w/o GNU extensions (). Faster fasttest (). Add background pools size metrics (). Improve ThreadPool (). cmake: remove support for gold linker (). Updated events and recordings (). Follow-up to : Further removal of gold linker support (). Enable parallel execution for two tests (). Restore native macos build (). CMake: Remove further cruft from build (). fix test / remove hardcoded database (). Apply logqueriescuttolength in MergeTreeWhereOptimizer (). Fix logical error in evaluate constant expression (). Try making `testkeepermntrdatasize` less flaky (). Fix limit offset (). Fix startup on older systemd versions (). More random query id in tests (). Add a style check for unsafe code (). Make the code in Join less disgusting (). Fixup git reference to LLVM (). Preparation for libcxx(abi), llvm, clang-tidy 16 (). Rename cfg parameter querycache.size to querycache.max_size (). Add optimization for MemoryStorageStep (). Fix aggregation with constant key in planner (). Disable setting in 02343groupbyusenulls_distributed (for new analyzer)

Add a test for (). Add a test for (). Add a test for (). Add a test for (). Add a test for (). remove unused code (). Fix broken cross-compiled macos builds (). Randomize query cache settings (). Clarify steps for reopened cherry-pick PRs (). Fix ZK exception error message (). Add ComparisonTupleEliminationVisitor (). Add a fuse for backport branches w/o a created PR (). Fix partition ID byte order for s390x (). Stop `wait for quorum` retries on shutdown (). More preparation for upgrade to libcxx(abi), llvm, clang-tidy 16 (). Only valid Reviews.STATES overwrite existing reviews (). Apply black formatter to all python scripts (). Try fix window view test (). Update test for nested lambdas (). Decrease scale_down ratio for faster deflation (). Fix 993 and two other tests (). Fix flaky test 02417opentelemetryinsertondistributed_table (). Make 01086odbcroundtrip less flaky (). Place short return before big block, improve logging (). (). Fix test testreplicatedmergetreeencryption_codec (). Allow injecting timeout errors on Keeper (). Comment stale cherry-pick PRs once a day to remind for resolving conflicts (). Followup to (). Slightly better error message (). Make testserverreload non-parallel (). aspell-dict.txt: keep sorted things sorted (). throw exception when all retries exhausted (). Fix GRANT query formatting (). Fix exception type in arrayElement function (). Fix logical error in DistributedSink (). Fix terminate in parts check thread (). Limit keeper request batching by size in bytes (). Improve replicated user defined functions (). Update 01072windowviewmultiplecolumns_groupby.sh (). Added test. Closes (). Disallow concurrent backup restore test - removed SYSTEM SYNC (). Artifacts s3 prefix (). Set content-length for empty POST requests (). Fix test `02050clientprofile_events` (). Fix tsan error lock-order-inversion (). Update docs for parseDateTime() (follow-up to ) (). Docs: Update secondary index example (). Fix compilation on MacOS (). (). Stabilize tests for new function parseDateTimeInJodaSyntax (). Docs: Fix links (). Try fix rabbitmq test (). Better type check in arrayElement function (). Fix incorrect code indentation (). CMake: Remove configuration of CMAKESHAREDLINKER_FLAGS (). Remove the old changelog script (). Fix automatic indentation in the built-in UI SQL editor (). Rename `system.markeddroppedtables` to `dropped_tables` (). Automatically correct some mistakes in the changelog (). Docs: Document (). Fix stateless tests numbers (). Docs: Update syntax of some SHOW queries (). Simplify backup coordination for file infos (). materialized pg small fix (). Update SQLite to 3.41.2 (). Fix test numbers again and enforce it with style (). s390x reinterpret as float64 (). Remove slow outdated test (). Cosmetic follow-up to (). Merging "Support undrop table" (). Fix double whitespace in exception message (). Improve script for updating clickhouse-docs (). Fix stdlib compatibility issues (). Make test testdisallowconcurrency less flaky (). Remove unused mockSystemDatabase from gtesttransformqueryforexter (). Update environmental-sensors.md (). Correctly handle NULL constants in logical optimizer for new analyzer (). Try making KeeperMap test more stable (). Deprecate EXPLAIN QUERY TREE with disabled analyzer. (). Use uniq file names in 02149_ tests to avoid SIGBUS in stress tests (). Update style in ParserKQLSort.cpp (). Remove support for std::unary/binary_function (removed in C++17) (). Remove unused setting (). Remove wrong assert from LogicalExpressionOptimizerPass (). MySQL compatibility: Make strtodate alias case-insensitive (). Disable AST optimizations for projection analysis. (). Fix Too big of a difference between test numbers (). Stabilize 02477_age (). Rename setting stopreadingonfirstcancel (). Address flaky 02346fulltext_search (). Fix incorrect ThreadPool usage after ThreadPool introspection (). fix test numbers again (). Fixed functional test 02534keyedsiphash and 02552siphash128reference for s390x. ().