{{ message }}
Open
Conversation
Add 28 new stateless tests (04113..04140) targeting modules with the largest uncovered-line counts from master coverage data: - KQL: make-series parser, string operators - Parsers: ParserSnapshotQuery, ParserSystemQuery extras, ParserAlterQuery variants - Functions: parseDateTime format specifiers, JSONExtract type tree, conversion OrZero/OrNull/accurateCast, bitmap integer type dispatch, arrayLevenshtein/Weighted/Similarity, higher-order lambdas, timeSlots, time window (tumble/hop), formatDateTime edge cases - AggregateFunctions: flameGraph arity/merge paths, sequenceNextNode direction/base combos, distinctJSONPaths, groupArray family, SingleValueData complex types, state/merge lifecycle - Columns: Variant operations, sparse serialization, aggregate-function column - Formats: BSONEachRow type soup + coercion, Parquet type soup + codecs + row groups + pruning - Transforms: window function frame bounds - DataTypes: SerializationTime64 across TSV/CSV/JSON/Values/TSKV - Storages: Prometheus/PromQL parser via prometheusQuery table function
Contributor
- 04117, 04124: add no-parallel tag (SYSTEM DROP in the file trips the style check), and drop the bare `SYSTEM STOP MERGES` / `SYSTEM FLUSH LOGS` lines that the style check rejects wherever they appear. - 04131: add no-fasttest tag (ANTLR4 is disabled in the fast-test build). - 04132: add `database = currentDatabase()` to the `system.parts_columns` query. - 04140: add no-fasttest tag (fast-test build lacks some Parquet codecs). See #103456
The 'system\s*flush\s*logs\s*(;|$|")' grep rule also matched the literal 'SYSTEM FLUSH LOGS;' inside comments I added in the previous commit, so the style check flagged those comment lines.
Stateless tests randomize `--session_timezone` (Africa/Juba, Mexico/BajaSur, etc.). 04118, 04120 and 04137 rendered zero/epoch DateTime values and bucketed datetimes whose output changed with timezone, which tripped reference diff in the flaky and parallel jobs. Adding `SET session_timezone = 'UTC'` at the top makes the output independent of the CI override. See #103456
- 04127: wrap bitmapSubsetInRange/Limit output in arraySort (roaring bitmap iteration order is not guaranteed). - 04133: sort groupArrayArray result (UNION ALL block order is not stable). - 04134: replace any()/anyLast() over tuples with ORDER BY + LIMIT 1 since any*() are documented as returning an unspecified row. - 04136: add a rowNumberInAllBlocks() tiebreaker so row_number() over ties has a deterministic assignment. - 04139: feed topKState() a weighted distribution instead of unique values so the top-3 is unambiguous. See #103456
Those aggregators intentionally return an unspecified row and remain non-deterministic under parallel execution, so they can't be asserted on in a reference test. Keep min/max/count on the Nullable branch, which are still exercising SingleValueDataGenericWithColumn paths. See #103456
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Add 28 new stateless functional tests (
04113..04140) targeting modules with the largest uncovered-line counts in master coverage data. All tests pass locally.The targets are SQL-reachable code paths with significant gaps — parsers, aggregate functions, column types, formats, and functions. Integration-heavy modules (Kafka, Hive, Iceberg, Kubernetes, LDAP, Keeper) are excluded because they need running external services.
Coverage highlights by test:
04113timeSlotsvector/constant combinations forDateTimeandDateTime6404114flameGrapharity, merge, empty trace, error paths04115tumble/hop/windowIDerror and type paths04116formatDateTime/formatDateTimeInJodaSyntax/fromUnixTimestampedges04117+04124ParserSystemQueryandASTSystemQueryformatters04118KQLmake-seriesparser (ParserKQLMakeSeries.cpp, was 0%)04119ParserSnapshotQueryround-trip04120parseDateTimemysql and Joda format specifiers + error paths04121JSONExtractTreeacrossNumericNode/BoolNode/StringNode/DecimalNode/DateNode/UUIDNode/IPv4Node/EnumNode/LowCardinalityNode/NullableNode/ArrayNode/TupleNode/MapNode/VariantNode/DynamicNode/ObjectNode04122SerializationTime64acrossTSV/CSV/JSONEachRow/Values/TSKV04123KQL string operators (contains/startswith/endswith/has/has_any/has_all/=~/!~/in~)04125arrayLevenshteinDistance/arrayLevenshteinDistanceWeighted/arraySimilaritytype dispatch04126ParserAlterQueryvariants not covered by existing tests04127bitmap functions across integer element types04128sequenceNextNodedirection × base combos, merge, type dispatch04129distinctJSONPaths/distinctJSONPathsAndTypes04130Variantcolumn operations (variantType/variantElement,MergeTreeround-trip)04131PrometheusQueryParsingUtilvia theprometheusQuerytable function04132ColumnSparseaggregate / filter / sort /JOIN/ mutation04133groupArray/groupArrayLast/groupArraySample/groupArrayMoving*/groupArrayInsertAt04134SingleValueDataGenericWithColumnoverTuple/Array/Map/Decimal/IPv4/IPv604135BSONEachRowinput type soup, numeric coercion, nullable, schema inference04136window function frame bounds (ROWS/RANGE,PRECEDING/FOLLOWING, rank / ntile / nth_value)04137conversion edges:toXxxOrZero/toXxxOrNull/toXxxOrDefault/accurateCastacross numeric /Decimal/Date*/UUID/IPv4/IPv6/FixedString/ big-integer04138higher-order array lambdas (arrayMap/arrayFilter/arrayFold/arraySortwith captures)04139aggregate-function state round-trip viaAggregatingMergeTreeand-State/-Merge04140Parquettype soup, compression codecs, multiple row groups, filter pushdown, column pruning, nullable, schema inferenceChangelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes into CHANGELOG.md):
Not for changelog (changelog entry is not required)
Documentation entry for user-facing changes