Skip to content

Commit b422228

Browse files
Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into add_bech32_enc_dec
2 parents cae88a7 + 07e3405 commit b422228

File tree

148 files changed

+1268
-927
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+1268
-927
lines changed

CHANGELOG.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,7 @@
2626
* If reading from an `URL` involves multiple redirects, setting `enable_url_encoding` is correctly applied across all redirects in the chain. [#79563](https://github.com/ClickHouse/ClickHouse/pull/79563) ([Shankar Iyer](https://github.com/shankar-iyer)). Setting `enble_url_encoding` default value is now set to `false`. [#80088](https://github.com/ClickHouse/ClickHouse/pull/80088) ([Shankar Iyer](https://github.com/shankar-iyer)).
2727

2828
#### New Feature
29-
* New `Time`/`Time64` data types: `Time` (HHH:MM:SS) and `Time64` (HHH:MM:SS.`<fractional>`) and some basic cast functions and functions to interact with other data types. Also, changed the existing function's name toTime to toTimeWithFixedDate because the function toTime is required for the cast function. [#75735](https://github.com/ClickHouse/ClickHouse/pull/75735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
30-
72459). [#76078](https://github.com/ClickHouse/ClickHouse/pull/76078) ([Dmitry Novik](https://github.com/novikd)).
31-
* Support scalar correlated subqueries in the WHERE clause. Closes [#6697](https://github.com/ClickHouse/ClickHouse/issues/6697). [#79600](https://github.com/ClickHouse/ClickHouse/pull/79600) ([Dmitry Novik](https://github.com/novikd)). Support correlated subqueries in the projection list in simple cases. [#79925](https://github.com/ClickHouse/ClickHouse/pull/79925) ([Dmitry Novik](https://github.com/novikd)). Now it covers 100% of TPC-H test suite.
29+
* Support scalar correlated subqueries in the WHERE clause. Closes [#6697](https://github.com/ClickHouse/ClickHouse/issues/6697). [#79600](https://github.com/ClickHouse/ClickHouse/pull/79600) ([Dmitry Novik](https://github.com/novikd)). Support correlated subqueries in the projection list in simple cases. [#79925](https://github.com/ClickHouse/ClickHouse/pull/79925) ([Dmitry Novik](https://github.com/novikd)). [#76078](https://github.com/ClickHouse/ClickHouse/pull/76078) ([Dmitry Novik](https://github.com/novikd)). Now it covers 100% of TPC-H test suite.
3230
* Vector search using the vector similarity index is now beta (from previously experimental). [#80164](https://github.com/ClickHouse/ClickHouse/pull/80164) ([Robert Schulze](https://github.com/rschu1ze)).
3331
* Support geo types in `Parquet` format. This closes [#75317](https://github.com/ClickHouse/ClickHouse/issues/75317). [#79777](https://github.com/ClickHouse/ClickHouse/pull/79777) ([scanhex12](https://github.com/scanhex12)).
3432
* New functions `sparseGrams`, `sparseGramsHashes`, `sparseGramsHashesUTF8`, `sparseGramsUTF8` for calculating "sparse-ngrams" - a robust algorithm for extracting substrings for indexing and search. [#79517](https://github.com/ClickHouse/ClickHouse/pull/79517) ([scanhex12](https://github.com/scanhex12)).
@@ -44,6 +42,8 @@
4442
* Add [`icebergHash`](https://iceberg.apache.org/spec/#appendix-b-32-bit-hash-requirements) and [`icebergBucketTransform`](https://iceberg.apache.org/spec/#bucket-transform-details) functions. Support data files pruning in `Iceberg` tables partitioned with [`bucket transfom`](https://iceberg.apache.org/spec/#partitioning). [#79262](https://github.com/ClickHouse/ClickHouse/pull/79262) ([Daniil Ivanik](https://github.com/divanik)).
4543

4644
#### Experimental Feature
45+
* New `Time`/`Time64` data types: `Time` (HHH:MM:SS) and `Time64` (HHH:MM:SS.`<fractional>`) and some basic cast functions and functions to interact with other data types. Also, changed the existing function's name toTime to toTimeWithFixedDate because the function toTime is required for the cast function. [#75735](https://github.com/ClickHouse/ClickHouse/pull/75735) ([Yarik Briukhovetskyi](https://github.com/yariks5s)).
46+
72459).
4747
* Hive metastore catalog for Iceberg datalake. [#77677](https://github.com/ClickHouse/ClickHouse/pull/77677) ([scanhex12](https://github.com/scanhex12)).
4848
* Indexes of type `full_text` were renamed to `gin`. This follows the more familiar terminology of PostgreSQL and other databases. Existing indexes of type `full_text` remain loadable but they will throw an exception (suggesting `gin` indexes instead) when one tries to use them in searches. [#79024](https://github.com/ClickHouse/ClickHouse/pull/79024) ([Robert Schulze](https://github.com/rschu1ze)).
4949

@@ -60,7 +60,6 @@
6060
* Allow parallel merging of `uniqExact` states during the final stage of distributed aggregation. [#78703](https://github.com/ClickHouse/ClickHouse/pull/78703) ([Nikita Taranov](https://github.com/nickitat)).
6161
* Fix possible performance degradation of the parallel merging of `uniqExact` states for aggregation with key. [#78724](https://github.com/ClickHouse/ClickHouse/pull/78724) ([Nikita Taranov](https://github.com/nickitat)).
6262
* Reduce the number of List Blobs API calls to Azure storage. [#78860](https://github.com/ClickHouse/ClickHouse/pull/78860) ([Julia Kartseva](https://github.com/jkartseva)).
63-
* Merge equality conditions from filter query plan step into JOIN condition if possible to allow using them as hash table keys. [#78877](https://github.com/ClickHouse/ClickHouse/pull/78877) ([Dmitry Novik](https://github.com/novikd)).
6463
* Fix performance of the distributed INSERT SELECT with parallel replicas. [#79441](https://github.com/ClickHouse/ClickHouse/pull/79441) ([Azat Khuzhin](https://github.com/azat)).
6564
* Prevent `LogSeriesLimiter` from doing cleanup on every construction, avoiding lock contention and performance regressions in high-concurrency scenarios. [#79864](https://github.com/ClickHouse/ClickHouse/pull/79864) ([filimonov](https://github.com/filimonov)).
6665
* Speedup queries with trivial count optimization. [#79945](https://github.com/ClickHouse/ClickHouse/pull/79945) ([Raúl Marín](https://github.com/Algunenano)).
@@ -73,7 +72,6 @@
7372
* Lazy Materialization with parallel replicas. [#79401](https://github.com/ClickHouse/ClickHouse/pull/79401) ([Igor Nikonov](https://github.com/devcrafter)).
7473

7574
#### Improvement
76-
* Add table settings for `SASL` configuration and credentials to the `Kafka` table engine. This allows configuring SASL-based authentication to Kafka and Kafka-compatible systems directly in the CREATE TABLE statement rather than having to use configuration files or named collections. [#78810](https://github.com/ClickHouse/ClickHouse/pull/78810) ([Christoph Wurm](https://github.com/cwurm)).
7775
* Added an ability to apply lightweight deletes on the fly (with settings `lightweight_deletes_sync = 0`, `apply_mutations_on_fly = 1`. [#79281](https://github.com/ClickHouse/ClickHouse/pull/79281) ([Anton Popov](https://github.com/CurtizJ)).
7876
* If data in the pretty format is displayed in the terminal, and a subsequent block has the same column widths, it can continue from the previous block, glue it to the previous block by moving the cursor up. This closes [#79333](https://github.com/ClickHouse/ClickHouse/issues/79333). The feature is controlled by the new setting, `output_format_pretty_glue_chunks`. [#79339](https://github.com/ClickHouse/ClickHouse/pull/79339) ([Alexey Milovidov](https://github.com/alexey-milovidov)).
7977
* Extend the `isIPAddressInRange` function to `String`, `IPv4`, `IPv6`, `Nullable(String)`, `Nullable(IPv4)`, and `Nullable(IPv6)` data types. [#78364](https://github.com/ClickHouse/ClickHouse/pull/78364) ([YjyJeff](https://github.com/YjyJeff)).

ci/docker/integration/integration-test/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ pycurl==7.45.3
1818
PyJWT==2.3.0
1919
pyparsing==2.4.7
2020
SecretStorage==3.3.1
21-
setuptools==59.6.0
21+
setuptools==78.1.1
2222
six==1.16.0
2323
wadllib==1.3.6
24-
wheel==0.37.1
24+
wheel==0.46.1
2525
zipp==1.0.0

ci/jobs/performance_tests.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ def run_test(
165165
--profile-seconds 10 \
166166
{test_file}",
167167
verbose=True,
168+
strip=False,
168169
)
169170
duration = sw.duration
170171
if res != 0:

ci/jobs/scripts/check_style/aspell-ignore/en/aspell-dict.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1437,6 +1437,7 @@ bitmaskToArray
14371437
bitmaskToList
14381438
bitov
14391439
blake
1440+
blobpath
14401441
blockNumber
14411442
blockSerializedSize
14421443
blockSize

ci/jobs/scripts/check_style/check_cpp.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,3 +341,32 @@ find $ROOT_PATH/{src,base,programs,utils} -name '*.h' -or -name '*.cpp' | grep -
341341
do
342342
echo "Found the usage of std::format in '${file}'. Please use fmt::format instead"
343343
done
344+
345+
# Context.h (and a few similar headers) is included in many parts of the
346+
# codebase, so any modifications to it trigger a large-scale recompilation.
347+
# Therefore, it is crucial to avoid unnecessary inclusion of Context.h in
348+
# headers.
349+
#
350+
# In most cases, we can include Context_fwd.h instead, as we usually do not
351+
# need the full definition of the Context structure in headers - only declaration.
352+
CONTEXT_H_EXCLUDES=(
353+
# For now we have few exceptions (somewhere due to templated code, in other
354+
# places just because for now it does not worth it, i.e. the header is not
355+
# too generic):
356+
--exclude "$ROOT_PATH/src/BridgeHelper/XDBCBridgeHelper.h"
357+
--exclude "$ROOT_PATH/src/Interpreters/AddDefaultDatabaseVisitor.h"
358+
--exclude "$ROOT_PATH/src/TableFunctions/ITableFunctionCluster.h"
359+
--exclude "$ROOT_PATH/src/Core/PostgreSQLProtocol.h"
360+
--exclude "$ROOT_PATH/src/Client/ClientBase.h"
361+
--exclude "$ROOT_PATH/src/Common/tests/gtest_global_context.h"
362+
--exclude "$ROOT_PATH/src/Analyzer/InDepthQueryTreeVisitor.h"
363+
364+
# For functions we allow it for regular functions (due to lots of
365+
# templates), but forbid it in interface (IFunction) part.
366+
--exclude "$ROOT_PATH/src/Functions/*"
367+
--include "$ROOT_PATH/src/Functions/IFunction*"
368+
)
369+
find $ROOT_PATH/src -name '*.h' -print0 | xargs -0 grep -P '#include[\s]*(<|")Interpreters/Context.h(>|")' "${CONTEXT_H_EXCLUDES[@]}" | \
370+
grep . && echo '^ Too broad Context.h usage. Consider using Context_fwd.h and Context.h out from .h into .cpp'
371+
372+
exit 0

ci/jobs/scripts/workflow_hooks/trusted.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
e.lower()
88
for e in [
99
"amosbird",
10-
"azat",
1110
"den-crane", # Documentation contributor
1211
"taiyang-li",
1312
"ucasFL", # Amos Bird's friend

ci/praktika/utils.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ def get_output(cls, command, strict=False, verbose=False):
182182
return res.stdout.strip()
183183

184184
@classmethod
185-
def get_res_stdout_stderr(cls, command, verbose=True):
185+
def get_res_stdout_stderr(cls, command, verbose=True, strip=True):
186186
if verbose:
187187
print(f"Run command [{command}]")
188188
res = subprocess.run(
@@ -192,7 +192,10 @@ def get_res_stdout_stderr(cls, command, verbose=True):
192192
stderr=subprocess.PIPE,
193193
text=True,
194194
)
195-
return res.returncode, res.stdout.strip(), res.stderr.strip()
195+
if strip:
196+
return res.returncode, res.stdout.strip(), res.stderr.strip()
197+
else:
198+
return res.returncode, res.stdout, res.stderr
196199

197200
@classmethod
198201
def check(

docker/test/fuzzer/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ pipdeptree==2.23.0
1919
PyJWT==2.3.0
2020
pyparsing==2.4.7
2121
SecretStorage==3.3.1
22-
setuptools==59.6.0
22+
setuptools==78.1.1
2323
six==1.16.0
2424
wadllib==1.3.6
25-
wheel==0.37.1
25+
wheel==0.46.1
2626
zipp==1.0.0

docker/test/fuzzer/run-fuzzer.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ function configure
101101
mkdir db ||:
102102
cp -av --dereference "$repo_dir"/programs/server/config* db
103103
cp -av --dereference "$repo_dir"/programs/server/user* db
104+
# for log export
105+
cp -av --dereference "$repo_dir"/tests/config/users.d/ci_logs_sender.yaml db/users.d/
104106
# TODO figure out which ones are needed
105107
cp -av --dereference "$repo_dir"/tests/config/config.d/listen.xml db/config.d
106108
cp -av --dereference "$script_dir"/query-fuzzer-tweaks-users.xml db/users.d

docker/test/integration/base/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ pycurl==7.45.3
1818
PyJWT==2.3.0
1919
pyparsing==2.4.7
2020
SecretStorage==3.3.1
21-
setuptools==59.6.0
21+
setuptools==78.1.1
2222
six==1.16.0
2323
wadllib==1.3.6
24-
wheel==0.37.1
24+
wheel==0.46.1
2525
zipp==1.0.0

0 commit comments

Comments
 (0)