Skip to content
Merged
4 changes: 4 additions & 0 deletions tests/clickhouse-test
Original file line number Diff line number Diff line change
Expand Up @@ -966,6 +966,7 @@ class FailureReason(enum.Enum):
NO_STATEFUL = "no-stateful"
NO_OPENSSL_FIPS = "no-openssl-fips"
ENCRYPTED_STORAGE = "encrypted-storage"
OLD_ANALYZER = "old-analyzer"

# UNKNOWN reasons
NO_REFERENCE = "no reference file"
Expand Down Expand Up @@ -1548,6 +1549,9 @@ class TestCase:
if "no-parallel-replicas" in tags and args.no_parallel_replicas:
return FailureReason.NO_PARALLEL_REPLICAS

if "no-old-analyzer" in tags and is_old_analyzer_used(args):
return FailureReason.OLD_ANALYZER

if "no-async-insert" in tags and args.no_async_insert:
return FailureReason.NO_ASYNC_INSERT

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env bash
# Tags: no-fasttest
# Tags: no-fasttest, no-ubsan
# no-fasttest: needs pyarrow to write the GeoParquet file.
# no-ubsan: memory tracking isn't reliably enforced in the standalone UBSan build (jemalloc off), so the oversized reserve isn't rejected. See Altinity/ClickHouse#2049.

# Regression test for an untracked-allocation DoS in the Parquet V3 GeoParquet (WKB) reader.
# The WKB reader took an element count straight off the wire and `reserve`d a std::vector of that
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ PYEOF

# allow_experimental_delta_kernel_rs=0 selects the C++ metadata parser (the Rust kernel has its own
# recursion limit). The deep schema must be rejected with a JSON exception, not crash the process.
$CLICKHOUSE_LOCAL --query "DESCRIBE TABLE deltaLakeLocal('$TMP_DIR/dl') SETTINGS allow_experimental_delta_kernel_rs=0 FORMAT Null" 2>&1 \
# allow_local_data_lakes=1 lifts the Altinity guard that otherwise disables the *Local table functions.
$CLICKHOUSE_LOCAL --query "DESCRIBE TABLE deltaLakeLocal('$TMP_DIR/dl') SETTINGS allow_experimental_delta_kernel_rs=0, allow_local_data_lakes=1 FORMAT Null" 2>&1 \
| expect_contains delta_depth JSONException

# Iceberg parses the whole metadata JSON with Poco before any field validation, so a deeply nested
Expand All @@ -58,5 +59,5 @@ N = 2000
open('$TMP_DIR/ice/metadata/v1.metadata.json', 'wb').write(b'{' + b'\"a\":{' * N + b'\"x\":1' + b'}' * N + b'}')
open('$TMP_DIR/ice/metadata/version-hint.text', 'w').write('1')
"
$CLICKHOUSE_LOCAL --query "DESCRIBE TABLE icebergLocal('$TMP_DIR/ice') FORMAT Null" 2>&1 \
$CLICKHOUSE_LOCAL --query "DESCRIBE TABLE icebergLocal('$TMP_DIR/ice') SETTINGS allow_local_data_lakes=1 FORMAT Null" 2>&1 \
| expect_contains iceberg_depth JSONException
Loading