Skip to content

Commit 85b13c1

Browse files
authored
Merge branch 'ClickHouse:master' into array_functions_part_2
2 parents 1e098c1 + 68f91aa commit 85b13c1

File tree

116 files changed

+2689
-730
lines changed

Some content is hidden

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

116 files changed

+2689
-730
lines changed

ci/jobs/scripts/check_style/check-settings-style

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ done
6969
# previous releases, which is more important than consistency
7070
for setting in $(
7171
awk '{ gsub(/^.*Settings/, "", $2); print $1 " " $2}' "${SETTINGS_FILE}" | \
72-
sort | uniq | awk '{ print $1 }' | uniq -d | grep -v "connect_timeout" | grep -v "max_connections"
72+
sort | uniq | awk '{ print $1 }' | uniq -d | grep -v "connect_timeout" | grep -v "max_connections" | grep -v "max_block_size"
7373
);
7474
do
7575
echo "# Found multiple definitions of setting ${setting} with different types: "

ci/praktika/json.html

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1257,10 +1257,6 @@
12571257
return { data: jsonData, lastModifiedTime: newLastModifiedTime, eTag: newETag, updated: true };
12581258
} catch (error) {
12591259
console.error('Error loading Results:', error);
1260-
if (infoElement) {
1261-
infoElement.textContent = 'Error loading data';
1262-
infoElement.style.display = 'block';
1263-
}
12641260
return { data: null, lastModifiedTime: null, eTag: null, updated: true };
12651261
}
12661262
}

ci/praktika/result.py

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -545,21 +545,14 @@ def copy_result_to_s3(cls, result, clean=False):
545545
s3_path = f"{Settings.HTML_S3_PATH}/{env.get_s3_prefix()}/{Path(result_file_path).name}"
546546
if clean:
547547
S3.delete(s3_path)
548-
archive_file = Utils.compress_file(result_file_path, no_strict=True)
549-
archive_type = archive_file.split(".")[-1]
550-
content_encoding = ""
551-
if archive_type == "gz":
548+
# gzip is supported by most browsers
549+
archive_file = Utils.compress_file_gz(result_file_path)
550+
if archive_file:
551+
assert archive_file.endswith(".gz")
552552
content_encoding = "gzip"
553-
elif archive_type == "zst":
554-
content_encoding = "zstd"
555-
elif archive_type == "br":
556-
content_encoding = "br"
557553
else:
558-
if archive_type:
559-
print(
560-
f"WARNING: Not supported compress codec: [{archive_type}] - skip compress"
561-
)
562-
archive_file = result_file_path
554+
content_encoding = ""
555+
archive_file = result_file_path
563556

564557
url = S3.copy_file_to_s3(
565558
s3_path=s3_path,

ci/praktika/runner.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,8 @@ def _run(self, workflow, job, docker="", no_docker=False, param=None, test=""):
250250
docker = docker or f"{docker_name}:{docker_tag}"
251251
current_dir = os.getcwd()
252252
Shell.check(
253-
"docker ps -a --format '{{.Names}}' | grep -q praktika && docker rm -f praktika", verbose=True
253+
"docker ps -a --format '{{.Names}}' | grep -q praktika && docker rm -f praktika",
254+
verbose=True,
254255
)
255256
cmd = f"docker run --rm --name praktika {'--user $(id -u):$(id -g)' if not from_root else ''} -e PYTHONPATH='.:./ci' --volume ./:{current_dir} --workdir={current_dir} {' '.join(settings)} {docker} {job.command}"
256257
else:

ci/praktika/utils.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -626,6 +626,18 @@ def compress_file_zst(cls, path):
626626
)
627627
return path_out
628628

629+
@classmethod
630+
def compress_file_gz(cls, path):
631+
path_out = ""
632+
if Shell.check("which gzip"):
633+
path_out = f"{path}.gz"
634+
Shell.check(
635+
f"rm -f {path_out} && gzip < {path} > {path_out}",
636+
verbose=True,
637+
strict=True,
638+
)
639+
return path_out
640+
629641
@classmethod
630642
def compress_file(cls, path, no_strict=False):
631643
if Shell.check("which zstd"):
@@ -638,12 +650,7 @@ def compress_file(cls, path, no_strict=False):
638650
strict=True,
639651
)
640652
elif Shell.check("which gzip"):
641-
path_out = f"{path}.gz"
642-
Shell.check(
643-
f"rm -f {path_out} && gzip < {path} > {path_out}",
644-
verbose=True,
645-
strict=True,
646-
)
653+
return cls.compress_file_gz(path)
647654
else:
648655
path_out = path
649656
if not no_strict:

docs/en/engines/table-engines/integrations/iceberg.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ To read a table where the schema has changed after its creation with dynamic sch
8585

8686
## Partition Pruning {#partition-pruning}
8787

88-
ClickHouse supports partition pruning during SELECT queries for Iceberg tables, which helps optimize query performance by skipping irrelevant data files. Now it works with only identity transforms and time-based transforms (hour, day, month, year). To enable partition pruning, set `use_iceberg_partition_pruning = 1`.
88+
ClickHouse supports partition pruning during SELECT queries for Iceberg tables, which helps optimize query performance by skipping irrelevant data files. To enable partition pruning, set `use_iceberg_partition_pruning = 1`. For more information about iceberg partition pruning address https://iceberg.apache.org/spec/#partitioning
8989

9090

9191
## Time Travel {#time-travel}

docs/en/engines/table-engines/integrations/mysql.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ The table structure can differ from the original MySQL table structure:
3838
- Column types may differ from those in the original MySQL table. ClickHouse tries to [cast](../../../engines/database-engines/mysql.md#data_types-support) values to the ClickHouse data types.
3939
- The [external_table_functions_use_nulls](/operations/settings/settings#external_table_functions_use_nulls) setting defines how to handle Nullable columns. Default value: 1. If 0, the table function does not make Nullable columns and inserts default values instead of nulls. This is also applicable for NULL values inside arrays.
4040

41-
:::note
42-
The MySQL Table Engine is currently not available on the ClickHouse builds for MacOS ([issue](https://github.com/ClickHouse/ClickHouse/issues/21191))
43-
:::
44-
4541
**Engine Parameters**
4642

4743
- `host:port` — MySQL server address.

docs/en/engines/table-engines/mergetree-family/annindexes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,8 @@ ORDER BY cosineDistance(book_vector, getEmbedding('Books on ancient Asian empire
290290
LIMIT 10
291291
```
292292

293-
Assuming that only a very small number of books cost less than $2, post-filtering may return zero rows because the top 10 matches returned by the vector index could all be priced above $2.
294-
By forcing pre-filtering (add `SETTINGS vector_search_filter_strategy = 'prefilter'` to the query), ClickHouse first finds all books with a price of less than $2 and then executes a brute-force vector search for the found books.
293+
Assuming that only a very small number of books cost less than 2 dollar, post-filtering may return zero rows because the top 10 matches returned by the vector index could all be priced above 2 dollar.
294+
By forcing pre-filtering (add `SETTINGS vector_search_filter_strategy = 'prefilter'` to the query), ClickHouse first finds all books with a price of less than 2 dollar and then executes a brute-force vector search for the found books.
295295

296296
As an alternative approach to resolve above issue, setting [vector_search_postfilter_multiplier](../../../operations/settings/settings#vector_search_postfilter_multiplier) (default: `1.0`) may be configured to a value > `1.0` (for example, `2.0`).
297297
The number of nearest neighbors fetched from the vector index is multiplied by the setting value and then the additional filter to be applied on those rows to return LIMIT-many rows.

docs/en/interfaces/third-party/gui.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,21 @@ Features:
4343

4444
[ChartDB Source Code](https://github.com/chartdb/chartdb).
4545

46+
### ClickHouse Schema Flow Visualizer {#clickhouse-schemaflow-visualizer}
47+
48+
A powerful web application for visualizing ClickHouse table relationships using Mermaid.js diagrams.
49+
50+
Features:
51+
52+
- Browse ClickHouse databases and tables with an intuitive interface
53+
- Visualize table relationships with Mermaid.js diagrams
54+
- View direction of data flow between tables
55+
- Export diagrams as standalone HTML files
56+
- Secure connection to ClickHouse with TLS support
57+
- Responsive web interface for all devices
58+
59+
[ClickHouse Schema Flow Visualizer - source code](https://github.com/FulgerX2007/clickhouse-schemaflow-visualizer)
60+
4661
### Tabix {#tabix}
4762

4863
Web interface for ClickHouse in the [Tabix](https://github.com/tabixio/tabix) project.

docs/en/operations/settings/settings-users.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,9 @@ Password can be specified in plaintext or in SHA256 (hex format).
8080

8181
Example of how to generate a password from shell:
8282

83-
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
83+
```bash
84+
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
85+
```
8486

8587
The first line of the result is the password. The second line is the corresponding SHA256 hash.
8688

@@ -92,7 +94,9 @@ Password can be specified in plaintext or in SHA256 (hex format).
9294

9395
Example of how to generate a password from shell:
9496

95-
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
97+
```bash
98+
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
99+
```
96100

97101
The first line of the result is the password. The second line is the corresponding double SHA1 hash.
98102

@@ -101,6 +105,7 @@ Password can be specified in plaintext or in SHA256 (hex format).
101105
This setting allows authenticating with SSH keys.
102106

103107
Given a SSH key (as generated by `ssh-keygen`) like
108+
104109
```text
105110
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDNf0r6vRl24Ix3tv2IgPmNPO2ATa2krvt80DdcTatLj [email protected]
106111
```

0 commit comments

Comments
 (0)