Skip to content

Commit 4676bc8

Browse files
EDsCODEgithub-actions[bot]pauldambra
authored
fix: argmax null handling (#36990)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pauldambra <[email protected]>
1 parent 37a4959 commit 4676bc8

File tree

86 files changed

+5764
-4821
lines changed

Some content is hidden

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

86 files changed

+5764
-4821
lines changed

ee/clickhouse/models/test/__snapshots__/test_cohort.ambr

Lines changed: 23 additions & 23 deletions
Large diffs are not rendered by default.

ee/clickhouse/queries/test/__snapshots__/test_cohort_query.ambr

Lines changed: 92 additions & 92 deletions
Large diffs are not rendered by default.

ee/clickhouse/queries/test/test_cohort_query.py

Lines changed: 212 additions & 210 deletions
Large diffs are not rendered by default.

ee/clickhouse/views/test/__snapshots__/test_clickhouse_stickiness.ambr

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,12 @@
165165
toStartOfInterval(toTimeZone(e.timestamp, 'UTC'), toIntervalDay(1)) AS start_of_interval
166166
FROM events AS e SAMPLE 1
167167
LEFT OUTER JOIN
168-
(SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id,
168+
(SELECT tupleElement(argMax(tuple(person_distinct_id_overrides.person_id), person_distinct_id_overrides.version), 1) AS person_id,
169169
person_distinct_id_overrides.distinct_id AS distinct_id
170170
FROM person_distinct_id_overrides
171171
WHERE equals(person_distinct_id_overrides.team_id, 99999)
172172
GROUP BY person_distinct_id_overrides.distinct_id
173-
HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
173+
HAVING ifNull(equals(tupleElement(argMax(tuple(person_distinct_id_overrides.is_deleted), person_distinct_id_overrides.version), 1), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
174174
WHERE and(equals(e.team_id, 99999), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfInterval(assumeNotNull(toDateTime('2020-01-01 00:00:00', 'UTC')), toIntervalDay(1))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(toDateTime('2020-01-08 23:59:59', 'UTC'))), equals(e.event, 'watched movie'))
175175
GROUP BY aggregation_target,
176176
start_of_interval
@@ -214,12 +214,12 @@
214214
toStartOfInterval(toTimeZone(e.timestamp, 'UTC'), toIntervalDay(1)) AS start_of_interval
215215
FROM events AS e SAMPLE 1
216216
LEFT OUTER JOIN
217-
(SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id,
217+
(SELECT tupleElement(argMax(tuple(person_distinct_id_overrides.person_id), person_distinct_id_overrides.version), 1) AS person_id,
218218
person_distinct_id_overrides.distinct_id AS distinct_id
219219
FROM person_distinct_id_overrides
220220
WHERE equals(person_distinct_id_overrides.team_id, 99999)
221221
GROUP BY person_distinct_id_overrides.distinct_id
222-
HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
222+
HAVING ifNull(equals(tupleElement(argMax(tuple(person_distinct_id_overrides.is_deleted), person_distinct_id_overrides.version), 1), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
223223
WHERE and(equals(e.team_id, 99999), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfInterval(assumeNotNull(toDateTime('2019-12-24 00:00:00', 'UTC')), toIntervalDay(1))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(toDateTime('2019-12-31 23:59:59', 'UTC'))), equals(e.event, 'watched movie'))
224224
GROUP BY aggregation_target,
225225
start_of_interval
@@ -263,14 +263,14 @@
263263
toStartOfWeek(toTimeZone(e.timestamp, 'UTC'), 0) AS start_of_interval
264264
FROM events AS e SAMPLE 1
265265
LEFT OUTER JOIN
266-
(SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id,
266+
(SELECT tupleElement(argMax(tuple(person_distinct_id_overrides.person_id), person_distinct_id_overrides.version), 1) AS person_id,
267267
person_distinct_id_overrides.distinct_id AS distinct_id
268268
FROM person_distinct_id_overrides
269269
WHERE equals(person_distinct_id_overrides.team_id, 99999)
270270
GROUP BY person_distinct_id_overrides.distinct_id
271-
HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
271+
HAVING ifNull(equals(tupleElement(argMax(tuple(person_distinct_id_overrides.is_deleted), person_distinct_id_overrides.version), 1), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
272272
LEFT JOIN
273-
(SELECT argMax(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(groups.group_properties, 'industry'), ''), 'null'), '^"|"$', ''), toTimeZone(groups._timestamp, 'UTC')) AS properties___industry,
273+
(SELECT tupleElement(argMax(tuple(replaceRegexpAll(nullIf(nullIf(JSONExtractRaw(groups.group_properties, 'industry'), ''), 'null'), '^"|"$', '')), toTimeZone(groups._timestamp, 'UTC')), 1) AS properties___industry,
274274
groups.group_type_index AS index,
275275
groups.group_key AS key
276276
FROM groups
@@ -451,12 +451,12 @@
451451
toStartOfInterval(toTimeZone(e.timestamp, 'UTC'), toIntervalDay(1)) AS start_of_interval
452452
FROM events AS e SAMPLE 1
453453
LEFT OUTER JOIN
454-
(SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id,
454+
(SELECT tupleElement(argMax(tuple(person_distinct_id_overrides.person_id), person_distinct_id_overrides.version), 1) AS person_id,
455455
person_distinct_id_overrides.distinct_id AS distinct_id
456456
FROM person_distinct_id_overrides
457457
WHERE equals(person_distinct_id_overrides.team_id, 99999)
458458
GROUP BY person_distinct_id_overrides.distinct_id
459-
HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
459+
HAVING ifNull(equals(tupleElement(argMax(tuple(person_distinct_id_overrides.is_deleted), person_distinct_id_overrides.version), 1), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
460460
WHERE and(equals(e.team_id, 99999), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfInterval(assumeNotNull(toDateTime('2020-01-01 12:00:00', 'UTC')), toIntervalDay(1))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(toDateTime('2020-01-08 23:59:59', 'UTC'))), equals(e.event, 'watched movie'))
461461
GROUP BY aggregation_target,
462462
start_of_interval
@@ -522,12 +522,12 @@
522522
toStartOfInterval(toTimeZone(e.timestamp, 'UTC'), toIntervalDay(1)) AS start_of_interval
523523
FROM events AS e SAMPLE 1.0
524524
LEFT OUTER JOIN
525-
(SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id,
525+
(SELECT tupleElement(argMax(tuple(person_distinct_id_overrides.person_id), person_distinct_id_overrides.version), 1) AS person_id,
526526
person_distinct_id_overrides.distinct_id AS distinct_id
527527
FROM person_distinct_id_overrides
528528
WHERE equals(person_distinct_id_overrides.team_id, 99999)
529529
GROUP BY person_distinct_id_overrides.distinct_id
530-
HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
530+
HAVING ifNull(equals(tupleElement(argMax(tuple(person_distinct_id_overrides.is_deleted), person_distinct_id_overrides.version), 1), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
531531
WHERE and(equals(e.team_id, 99999), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfInterval(assumeNotNull(toDateTime('2020-01-01 12:00:00', 'UTC')), toIntervalDay(1))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(toDateTime('2020-01-08 23:59:59', 'UTC'))), equals(e.event, 'watched movie'))
532532
GROUP BY aggregation_target,
533533
start_of_interval
@@ -582,12 +582,12 @@
582582
toStartOfInterval(toTimeZone(e.timestamp, 'UTC'), toIntervalHour(1)) AS start_of_interval
583583
FROM events AS e SAMPLE 1
584584
LEFT OUTER JOIN
585-
(SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id,
585+
(SELECT tupleElement(argMax(tuple(person_distinct_id_overrides.person_id), person_distinct_id_overrides.version), 1) AS person_id,
586586
person_distinct_id_overrides.distinct_id AS distinct_id
587587
FROM person_distinct_id_overrides
588588
WHERE equals(person_distinct_id_overrides.team_id, 99999)
589589
GROUP BY person_distinct_id_overrides.distinct_id
590-
HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
590+
HAVING ifNull(equals(tupleElement(argMax(tuple(person_distinct_id_overrides.is_deleted), person_distinct_id_overrides.version), 1), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
591591
WHERE and(equals(e.team_id, 99999), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfInterval(assumeNotNull(toDateTime('2020-01-01 12:00:00', 'UTC')), toIntervalHour(1))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(toDateTime('2020-01-01 20:00:00', 'UTC'))), equals(e.event, 'watched movie'))
592592
GROUP BY aggregation_target,
593593
start_of_interval
@@ -736,12 +736,12 @@
736736
toStartOfInterval(toTimeZone(e.timestamp, 'UTC'), toIntervalDay(1)) AS start_of_interval
737737
FROM events AS e SAMPLE 1
738738
LEFT OUTER JOIN
739-
(SELECT argMax(person_distinct_id_overrides.person_id, person_distinct_id_overrides.version) AS person_id,
739+
(SELECT tupleElement(argMax(tuple(person_distinct_id_overrides.person_id), person_distinct_id_overrides.version), 1) AS person_id,
740740
person_distinct_id_overrides.distinct_id AS distinct_id
741741
FROM person_distinct_id_overrides
742742
WHERE equals(person_distinct_id_overrides.team_id, 99999)
743743
GROUP BY person_distinct_id_overrides.distinct_id
744-
HAVING ifNull(equals(argMax(person_distinct_id_overrides.is_deleted, person_distinct_id_overrides.version), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
744+
HAVING ifNull(equals(tupleElement(argMax(tuple(person_distinct_id_overrides.is_deleted), person_distinct_id_overrides.version), 1), 0), 0) SETTINGS optimize_aggregation_in_order=1) AS e__override ON equals(e.distinct_id, e__override.distinct_id)
745745
WHERE and(equals(e.team_id, 99999), greaterOrEquals(toTimeZone(e.timestamp, 'UTC'), toStartOfInterval(assumeNotNull(toDateTime('2020-01-01 00:00:00', 'UTC')), toIntervalDay(1))), lessOrEquals(toTimeZone(e.timestamp, 'UTC'), assumeNotNull(toDateTime('2020-01-08 23:59:59', 'UTC'))), equals(e.event, 'watched movie'))
746746
GROUP BY aggregation_target,
747747
start_of_interval

0 commit comments

Comments
 (0)