[Bug] Complex queries when placed into views fail to return correct results, sometimes no results
- Dominant language
- Java
- Stars
- 15.9k
- Forks
- 3.9k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 520
Description
### Search before asking
- [x] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues.
### Version
4.0.5 and 4.1
### What's Wrong?
Similar to closed issue [#47404](https://github.com/apache/doris/issues/47405)
I have a complex query that works fine inline. Take it, add a filter at the end, run it, correct results.
When you wrap this into a view (or an MV) it fails to return results. Something goes wrong in the optimization or folding of the view into the outer query and breaks an otherwise fine SQL SELECT.
There appears to be NO WORKAROUND when this happens. Turning off/on NEREIDS does not change it, runtime_filter_mode does not change it, CBO rule changes does not change the outcome.
I have a bunch of similar views that ALL break.
### What You Expected?
Query direct SQL statement, get results.
Query same SQL as a view, get same results.
### How to Reproduce?
this CTE:
```
WITH daily AS (
SELECT DATE_TRUNC(event_at, 'DAY') AS event_day,
MINUTE_FLOOR(event_at, 5) AS window_start_at,
* FROM events
WHERE event_type = 'watch_time'
AND (event_sub_type IS NULL OR event_sub_type = '')
AND event_version = '1'
AND possible_bot_user_agent <> true
AND possible_bot_cidr <> true
AND event_time_classification NOT IN ('FUTURE_UNREASONABLE', 'PAST_UNREASONABLE', 'PAST_LAGGING', 'PAST_SUSPECT')
AND array_size(experiments) <= 8
), extractFields AS (
SELECT event_day,
window_start_at,
event_at,
event_key,
landed_at,
COALESCE(user_id,0) AS viewing_user_id,
CAST(user_connect_info.user_client AS VARCHAR) AS viewing_user_client,
CAST(user_connect_info.user_client_version AS VARCHAR) AS viewing_user_client_version,
CAST(event_value.video_id AS LARGEINT) AS video_id,
COALESCE(TRY_CAST(event_value.start AS INTEGER),0) AS watch_start_offset_ms,
TRY_CAST(event_value.duration AS INTEGER) AS watch_duration_ms,
TRY_CAST((TRY_CAST(event_value.start AS LARGEINT) +
TRY_CAST(event_value.duration AS LARGEINT)
) AS INTEGER) AS watch_end_offset_ms,
COALESCE( -- variants not protected in events need size checks
LEFT(CAST(event_value.correlator AS STRING),36),
LEFT(CAST(event_value.search_correlator AS STRING),36)
) AS correlation_search_correlator,
COALESCE(CAST(event_value.autoplay AS BOOLEAN),false) AS watch_is_autoplay,
COALESCE(CAST(event_value.is_placeholder AS BOOLEAN), false) AS video_is_placeholder,
LEFT(CAST(event_value.paywall_type AS STRING),15) AS video_paywall_type,
TRY_CAST(event_value.paywall_type_id AS INTEGER) AS video_paywall_type_id,
user_session_correlation_id AS correlation_user_session_id,
CAST(user_connect_info.user_ip_ipv6 AS VARCHAR) AS viewing_user_ip_ipv6,
LEFT(CAST(user_connect_info.user_agent AS STRING),250) AS viewing_user_user_agent,
LEFT(CAST(user_connect_info.user_location_iso2 AS STRING),2) AS viewing_user_location_iso2,
COALESCE(user_is_premium, false) AS viewing_user_is_premium,
COALESCE(CAST(content_attribution.creator_id AS LARGEINT),
CAST(content_attribution.creator_user_id AS LARGEINT)) AS video_creator_id,
CAST(content_attribution.channel_id AS LARGEINT) AS video_channel_id,
LEFT(CAST(event_value.session_segment_id AS STRING),36) AS viewing_session_segment_id,
array_map(x -> LEFT(TRY_CAST(x AS VARCHAR(40)),40), experiments) AS experiments
FROM daily
), filterDeadRows AS (
SELECT *
FROM extractFields
WHERE watch_duration_ms > 0
AND watch_duration_ms <> 86400000
AND video_id IS NOT NULL
AND video_id > 0
AND watch_start_offset_ms IS NOT NULL
AND watch_end_offset_ms IS NOT NULL
AND watch_duration_ms IS NOT NULL
AND viewing_user_client IS NOT NULL
), withMD5 AS (
SELECT *,
MD5(viewing_user_client) AS viewing_user_client_md5,
MD5SUM(viewing_user_id, COALESCE(correlation_search_correlator,'-none-')) AS correlation_search_correlator_md5,
MD5(CAST(ARRAY_SORT(COALESCE(experiments,[])) AS VARCHAR)) AS experiments_md5,
MD5SUM(coalesce(viewing_user_id, 0),
coalesce(viewing_user_ip_ipv6, ''),
coalesce(viewing_user_client, ''),
coalesce(viewing_user_client_version, ''),
coalesce(viewing_user_user_agent, '')) AS viewing_anon_md5
FROM filterDeadRows
), withPossibleKeys AS (
SELECT *,
(CAST(CONV(SUBSTRING(viewing_user_client_md5, 1, 16), 16, 10) AS LARGEINT) * 18446744073709551616)
+ CAST(CONV(SUBSTRING(viewing_user_client_md5, 17, 16), 16, 10) AS LARGEINT) AS viewing_user_client_key,
(CAST(CONV(SUBSTRING(correlation_search_correlator_md5, 1, 16), 16, 10) AS LARGEINT) * 18446744073709551616)
+ CAST(CONV(SUBSTRING(correlation_search_correlator_md5, 17, 16), 16, 10) AS LARGEINT) AS correlation_search_correlator_key,
(CAST(CONV(SUBSTRING(experiments_md5, 1, 16), 16, 10) AS LARGEINT) * 18446744073709551616)
+ CAST(CONV(SUBSTRING(experiments_md5, 17, 16), 16, 10) AS LARGEINT) AS experiments_key,
(CAST(CONV(SUBSTRING(viewing_anon_md5, 1, 16), 16, 10) AS LARGEINT) * 18446744073709551616)
+ CAST(CONV(SUBSTRING(viewing_anon_md5, 17, 16), 16, 10) AS LARGEINT) AS viewing_anon_key
FROM withMD5
), addRollupType AS (
SELECT *,
CAST(MILLISECONDS_ADD(CAST(event_at AS DATETIMEV2(3)), watch_duration_ms) AS DATETIMEV2(3)) AS watch_segment_ended_at,
CASE
WHEN viewing_user_id > 0 THEN 'U'
ELSE 'A'
END AS watch_rollup_type,
CASE
WHEN viewing_user_id > 0 THEN viewing_user_id
ELSE viewing_anon_key
END AS watch_rollup_key
FROM withPossibleKeys
), joinVideo AS (
SELECT e.*,
v.effective_duration_s AS video_duration_s,
(v.effective_duration_s+10)*1000 AS _max_watch_offset_ms,
COALESCE(v.is_short, false) AS video_is_short,
COALESCE(v.is_livestream, false) AS video_is_livestream,
IF(v.is_livestream AND
v.livestream_start IS NOT NULL AND
v.livestream_end IS NOT NULL AND
e.event_at < v.livestream_end AND
e.watch_segment_ended_at > v.livestream_start,
true,
false
) AS watch_is_live
FROM addRollupType e
JOIN video_metadata v ON e.video_id = v.fid
), geometryTaints AS (
SELECT *,
IF(watch_start_offset_ms < 0 OR
watch_end_offset_ms < watch_start_offset_ms OR
watch_duration_ms <= 0 OR
(
video_duration_s IS NOT NULL AND
(
watch_start_offset_ms > _max_watch_offset_ms OR
watch_end_offset_ms > _max_watch_offset_ms OR
watch_start_offset_ms + watch_duration_ms > _max_watch_offset_ms
)
), 1, 0) AS taint_bad_segment_geometry,
IF(watch_duration_ms >= 4*60*60*1000 OR
(video_is_short AND watch_duration_ms >= 30*60*1000),
1, 0) AS taint_excessive_segment_duration
FROM joinVideo
), sumTaints AS (
SELECT *,
CAST(GREATEST(taint_bad_segment_geometry, taint_excessive_segment_duration) AS BOOLEAN) AS taint_bad_segment
FROM geometryTaints g
), finalProjection AS (
SELECT -- rollup
watch_rollup_type,
watch_rollup_key,
viewing_user_client_key,
correlation_search_correlator_key,
video_id,
watch_is_autoplay,
video_is_placeholder,
video_paywall_type_id,
experiments_key,
window_start_at,
-- join by
event_day,
MIN_BY(event_key, event_at) AS event_key,
-- calc
MIN(watch_start_offset_ms) AS watch_start_offset_ms,
SUM(watch_duration_ms) AS watch_duration_ms,
MAX(watch_end_offset_ms) AS watch_end_offset_ms,
MAX(watch_segment_ended_at) AS window_end_at,
COUNT(*) AS watch_segment_count,
SUM(taint_bad_segment) AS taint_segment_count,
-- carry forward non-hashed versions
MIN_BY(viewing_user_id, event_at) AS viewing_user_id,
MIN_BY(viewing_user_client, event_at) AS viewing_user_client,
MIN_BY(correlation_search_correlator, event_at) AS correlation_search_correlator,
ANY_VALUE(experiments) AS experiments,
-- wide
MIN_BY(video_creator_id, event_at) AS video_creator_id,
MIN_BY(video_channel_id, event_at) AS video_channel_id,
MAX(viewing_user_is_premium) AS viewing_user_is_premium,
MIN_BY(viewing_user_location_iso2, event_at) AS viewing_user_location_iso2,
MIN_BY(correlation_user_session_id, event_at) AS correlation_user_session_id,
MIN_BY(viewing_session_segment_id, event_at) AS viewing_session_segment_id,
MIN_BY(video_paywall_type, event_at) AS video_paywall_type,
MIN_BY(viewing_user_client_version, event_at) AS viewing_user_client_version,
MAX(video_is_short) AS video_is_short,
MAX(video_is_livestream) AS video_is_livestream,
MAX(watch_is_live) AS watch_is_live,
MIN_BY(video_duration_s, event_at) AS video_duration_s
FROM sumTaints
GROUP BY 1,2,3,4,5,6,7,8,9,10,11
)
SELECT /*+SET_VAR(enable_local_shuffle=true)*/ *
FROM finalProjection
where event_day >= '2026-04-19' LIMIT 1000;
```
works fine
make it a view:
```
CREATE VIEW foo AS
...same CTE minus the WHERE clause
```
then
```
SELECT * FROM foo
WHERE event_day >= '2026-04-19' LIMIT 1000;
```
0 results.
underlaying table is:
```
CREATE TABLE events (
event_key LARGEINT NOT NULL,
event_at datetime NOT NULL,
landed_at datetime NOT NULL,
created_at datetime NOT NULL,
event_type VARCHAR(20) NOT NULL,
event_sub_type VARCHAR(20),
event_version VARCHAR(4),
user_id LARGEINT,
user_is_premium boolean,
user_session_correlation_id VARCHAR(36),
event_value variant<
'video_id':largeint,
'start':bigint,
'duration':bigint,
'autoplay':boolean,
'search_correlator':text,
'correlator':text,
'session_segment_id':text,
'first_ordinal':bigint
>,
content_attribution variant<
'creator_id':largeint,
'creator_user_id':largeint,
'channel_id':largeint,
'video_id':largeint
>,
experiments array,
tags array,
referer_info variant,
user_connect_info variant<
'user_client':text,
'user_location_iso2':text,
'user_ip_ipv4':ipv4,
'user_ip_ipv6':ipv6
>,
ingest_info variant<
'source_server':text,
'source_file':text,
'ingested_at':datetimev2(0),
'landed_at':datetimev2(0)
>,
closet variant,
event_time_classification VARCHAR(20) NOT NULL,
possible_bot_user_agent boolean NOT NULL,
possible_bot_cidr boolean NOT NULL
)
UNIQUE KEY(event_key, event_at)
CLUSTER BY (event_type, event_at)
PARTITION BY RANGE(date_trunc(event_at, 'day')) ()
DISTRIBUTED BY HASH(event_key) BUCKETS 16
PROPERTIES (
'replication_num' = '1',
'storage_format' = 'V3',
'function_column.sequence_col' = 'landed_at'
);
```
but other variations of this with thinner columns still shows the same issue. CASE statements in the CTE seem to cause more issues, but not sure is the cause.
You can add a few rows to the table and have same problem.
### Anything Else?
plan for querying the CTE directly:
```
PLAN FRAGMENT 0
OUTPUT EXPRS:
watch_rollup_type[#790]
watch_rollup_key[#791]
viewing_user_client_key[#792]
correlation_search_correlator_key[#793]
video_id[#794]
watch_is_autoplay[#795]
video_is_placeholder[#796]
video_paywall_type_id[#797]
experiments_key[#798]
window_start_at[#799]
event_day[#800]
event_key[#801]
watch_start_offset_ms[#802]
watch_duration_ms[#803]
watch_end_offset_ms[#804]
window_end_at[#805]
watch_segment_count[#806]
taint_segment_count[#807]
viewing_user_id[#808]
viewing_user_client[#809]
correlation_search_correlator[#810]
experiments[#811]
video_creator_id[#812]
video_channel_id[#813]
viewing_user_is_premium[#814]
viewing_user_location_iso2[#815]
correlation_user_session_id[#816]
viewing_session_segment_id[#817]
video_paywall_type[#818]
viewing_user_client_version[#819]
video_is_short[#820]
video_is_livestream[#821]
watch_is_live[#822]
video_duration_s[#823]
PARTITION: UNPARTITIONED
""
HAS_COLO_PLAN_NODE: false
""
VRESULT SINK
MYSQL_PROTOCOL
""
7:VMERGING-EXCHANGE
offset: 0
limit: 1000
final projections: watch_rollup_type[#756], watch_rollup_key[#757], viewing_user_client_key[#758], correlation_search_correlator_key[#759], video_id[#760], watch_is_autoplay[#761], video_is_placeholder[#762], video_paywall_type_id[#763], experiments_key[#764], window_start_at[#765], event_day[#766], event_key[#767], watch_start_offset_ms[#768], watch_duration_ms[#769], watch_end_offset_ms[#770], window_end_at[#771], watch_segment_count[#772], taint_segment_count[#773], viewing_user_id[#774], viewing_user_client[#775], correlation_search_correlator[#776], experiments[#777], video_creator_id[#778], video_channel_id[#779], viewing_user_is_premium[#780], viewing_user_location_iso2[#781], correlation_user_session_id[#782], viewing_session_segment_id[#783], video_paywall_type[#784], viewing_user_client_version[#785], video_is_short[#786], video_is_livestream[#787], watch_is_live[#788], video_duration_s[#789]
final project output tuple id: 19
distribute expr lists:
""
PLAN FRAGMENT 1
""
PARTITION: HASH_PARTITIONED: fid[#572]
""
HAS_COLO_PLAN_NODE: true
""
STREAM DATA SINK
EXCHANGE ID: 07
UNPARTITIONED
IS_MERGE: true
""
6:VTOP-N(1652)
| order by: watch_rollup_type[#756] ASC, watch_rollup_key[#757] ASC, viewing_user_client_key[#758] ASC, correlation_search_correlator_key[#759] ASC, video_id[#760] ASC, watch_is_autoplay[#761] ASC, video_is_placeholder[#762] ASC, video_paywall_type_id[#763] ASC, experiments_key[#764] ASC, window_start_at[#765] ASC, event_day[#766] ASC
| algorithm: heap sort
| local merge sort
| merge by exchange
| offset: 0
| limit: 1000
| distribute expr lists: video_id[#726]
|
5:VAGGREGATE (merge finalize)(1648)
| output: min_by(event_key[#708], event_at[#706])[#733], min(watch_start_offset_ms[#715])[#734], sum(watch_duration_ms[#717])[#735], max(watch_end_offset_ms[#718])[#736], max(watch_segment_ended_at[#707])[#737], count(*)[#738], sum(CAST(taint_bad_segment[#719] AS tinyint))[#739], min_by(viewing_user_id[#709], event_at[#706])[#740], min_by(viewing_user_client[#711], event_at[#706])[#741], min_by(correlation_search_correlator[#720], event_at[#706])[#742], any_value(experiments[#705])[#743], min_by(video_creator_id[#702], event_at[#706])[#744], min_by(video_channel_id[#703], event_at[#706])[#745], max(viewing_user_is_premium[#701])[#746], min_by(viewing_user_location_iso2[#700], event_at[#706])[#747], min_by(correlation_user_session_id[#699], event_at[#706])[#748], min_by(viewing_session_segment_id[#704], event_at[#706])[#749], min_by(video_paywall_type[#721], event_at[#706])[#750], min_by(viewing_user_client_version[#712], event_at[#706])[#751], max(video_is_short[#713])[#752], max(video_is_livestream[#714])[#753], max(watch_is_live[#716])[#754], min_by(video_duration_s[#710], event_at[#706])[#755]
| group by: watch_rollup_type[#688], watch_rollup_key[#689], viewing_user_client_key[#690], correlation_search_correlator_key[#691], video_id[#692], watch_is_autoplay[#693], video_is_placeholder[#694], video_paywall_type_id[#695], experiments_key[#696], window_start_at[#697], event_day[#698]
| sortByGroupKey:true
| cardinality=22,779,281
| limit: 1000
| distribute expr lists: video_id[#692]
|
4:VHASH JOIN(1640)
| join op: INNER JOIN(PARTITIONED)[]
| equal join conjunct: (fid[#572] = video_id[#499])
| cardinality=68,337,843
| vec output tuple id: 16
| output tuple id: 16
| vIntermediate tuple ids: 13
| hash output slot ids: 576 512 577 513 514 515 516 517 518 519 520 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 573 510 574 575 511
| runtime filters: RF000[min_max] <- video_id[#499](9656316/8388608/8388608), RF001[in_or_bloom] <- video_id[#499](9656316/8388608/8388608)
| final projections: watch_rollup_type[#650], watch_rollup_key[#651], viewing_user_client_key[#652], correlation_search_correlator_key[#653], video_id[#654], watch_is_autoplay[#655], video_is_placeholder[#656], video_paywall_type_id[#657], experiments_key[#658], window_start_at[#659], event_day[#660], correlation_user_session_id[#661], viewing_user_location_iso2[#662], viewing_user_is_premium[#663], video_creator_id[#664], video_channel_id[#665], viewing_session_segment_id[#666], experiments[#667], event_at[#668], watch_segment_ended_at[#669], event_key[#670], viewing_user_id[#671], effective_duration_s[#672], viewing_user_client[#673], viewing_user_client_version[#674], coalesce(is_short, FALSE)[#686], coalesce(is_livestream[#676], FALSE), watch_start_offset_ms[#677], ((((is_livestream[#676] <=> TRUE) AND livestream_start[#678] IS NOT NULL) AND livestream_end[#679] IS NOT NULL) AND ((event_at[#668] < livestream_end[#679]) AND ((watch_segment_ended_at[#669] > CAST(livestream_start[#678] AS datetimev2(3))) <=> TRUE))), watch_duration_ms[#680], watch_end_offset_ms[#681], CAST(greatest(if((((watch_start_offset_ms[#677] < 0) OR (watch_end_offset_ms[#681] < watch_start_offset_ms[#677])) OR ((watch_duration_ms[#680] <= 0) OR (effective_duration_s[#672] IS NOT NULL AND (((cast(watch_start_offset_ms as BIGINT)[#685] > ((effective_duration_s + 10) * 1000)[#687]) OR (CAST(watch_end_offset_ms[#681] AS bigint) > ((effective_duration_s + 10) * 1000)[#687])) OR ((cast(watch_start_offset_ms as BIGINT)[#685] + CAST(watch_duration_ms[#680] AS bigint)) > ((effective_duration_s + 10) * 1000)[#687]))))), 1, 0), if(((watch_duration_ms[#680] >= 14400000) OR (coalesce(is_short, FALSE)[#686] AND (watch_duration_ms[#680] >= 1800000))), 1, 0)) AS boolean), correlation_search_correlator[#682], video_paywall_type[#683]
| final project output tuple id: 16
| intermediate projections: watch_rollup_type[#613], watch_rollup_key[#614], viewing_user_client_key[#615], correlation_search_correlator_key[#616], video_id[#617], watch_is_autoplay[#618], video_is_placeholder[#619], video_paywall_type_id[#620], experiments_key[#621], window_start_at[#622], event_day[#623], correlation_user_session_id[#624], viewing_user_location_iso2[#625], viewing_user_is_premium[#626], video_creator_id[#627], video_channel_id[#628], viewing_session_segment_id[#629], experiments[#630], event_at[#631], watch_segment_ended_at[#632], event_key[#633], viewing_user_id[#634], effective_duration_s[#635], viewing_user_client[#636], viewing_user_client_version[#637], is_short[#638], is_livestream[#639], watch_start_offset_ms[#640], livestream_start[#641], livestream_end[#642], watch_duration_ms[#643], watch_end_offset_ms[#644], correlation_search_correlator[#645], video_paywall_type[#646], (effective_duration_s + 10)[#647], cast(watch_start_offset_ms as BIGINT)[#648], coalesce(is_short, FALSE)[#649], ((effective_duration_s + 10)[#647] * 1000)
| intermediate tuple id: 15
| intermediate projections: watch_rollup_type[#611], watch_rollup_key[#612], viewing_user_client_key[#607], correlation_search_correlator_key[#608], video_id[#591], watch_is_autoplay[#596], video_is_placeholder[#597], video_paywall_type_id[#599], experiments_key[#609], window_start_at[#585], event_day[#584], correlation_user_session_id[#600], viewing_user_location_iso2[#601], viewing_user_is_premium[#602], video_creator_id[#603], video_channel_id[#604], viewing_session_segment_id[#605], experiments[#606], event_at[#586], watch_segment_ended_at[#610], event_key[#587], viewing_user_id[#588], effective_duration_s[#583], viewing_user_client[#589], viewing_user_client_version[#590], is_short[#582], is_livestream[#579], watch_start_offset_ms[#592], livestream_start[#580], livestream_end[#581], watch_duration_ms[#593], watch_end_offset_ms[#594], correlation_search_correlator[#595], video_paywall_type[#598], (effective_duration_s[#583] + 10), CAST(watch_start_offset_ms[#592] AS bigint), coalesce(is_short[#582], FALSE)
| intermediate tuple id: 14
| distribute expr lists: fid[#572]
| distribute expr lists: video_id[#499]
|
|----1:VEXCHANGE
| offset: 0
| distribute expr lists:
|
3:VEXCHANGE
offset: 0
distribute expr lists: fid[#572]
""
PLAN FRAGMENT 2
""
PARTITION: HASH_PARTITIONED: fid[#521]
""
HAS_COLO_PLAN_NODE: false
""
STREAM DATA SINK
EXCHANGE ID: 03
HASH_PARTITIONED: fid[#572]
""
2:VOlapScanNode(1611)
TABLE: video_metadata(video_metadata), PREAGGREGATION: ON
PREDICATES: ((fid[#521] > 0) AND (__DORIS_DELETE_SIGN__[#569] = 0))
partitions=1/1 (video_metadata)
tablets=32/32, tabletList=1776129913941,1776129913943,1776129913945 ...
cardinality=68337843, avgRowSize=3587.096, numNodes=4
pushAggOp=NONE
runtime filters: RF000[min_max] -> fid[#521], RF001[in_or_bloom] -> fid[#521]
final projections: fid[#521], is_livestream[#537], livestream_start[#541], livestream_end[#542], is_short[#565], effective_duration_s[#568]
final project output tuple id: 12
""
PLAN FRAGMENT 3
""
PARTITION: RANDOM
""
HAS_COLO_PLAN_NODE: false
""
STREAM DATA SINK
EXCHANGE ID: 01
HASH_PARTITIONED: video_id[#499]
""
0:VOlapScanNode(1624)
TABLE: events(events), PREAGGREGATION: ON
PREDICATES: ((((((date_trunc(event_at[#1], 'DAY') >= '2026-04-19 00:00:00') AND (TRY_CAST(event_value[#17] AS int) > 0)) AND ((TRY_CAST(event_value[#17] AS int) != 86400000) AND TRY_CAST(event_value[#17] AS int) IS NOT NULL)) AND (((CAST(event_value[#19] AS largeint) > 0) AND CAST(event_value[#19] AS largeint) IS NOT NULL) AND (coalesce(TRY_CAST(event_value[#18] AS int), 0) IS NOT NULL AND TRY_CAST((TRY_CAST(event_value[#18] AS largeint) + TRY_CAST(event_value[#17] AS largeint)) AS int) IS NOT NULL))) AND (((CAST(user_connect_info[#29] AS varchar(65533)) IS NOT NULL AND (event_type[#4] = 'watch_time')) AND (((event_sub_type[#5] = '') OR event_sub_type[#5] IS NULL) AND (event_version[#6] = '1'))) AND (((possible_bot_user_agent[#37] != TRUE) AND (possible_bot_cidr[#38] != TRUE)) AND (event_time_classification[#36] NOT IN ('FUTURE_UNREASONABLE', 'PAST_UNREASONABLE', 'PAST_LAGGING', 'PAST_SUSPECT') AND (cardinality(experiments[#25]) <= 8))))) AND (__DORIS_DELETE_SIGN__[#39] = 0))
partitions=3/118 (p20260419000000,p20260418000000,p20260420000000)
tablets=48/48, tabletList=1776290375409,1776290375411,1776290375413 ...
cardinality=410907142, avgRowSize=524.95105, numNodes=4
pushAggOp=NONE
nested columns:
event_value:
origin type: variant
all access paths: [event_value.correlator]
event_value:
origin type: variant
all access paths: [event_value.search_correlator]
event_value:
origin type: variant
all access paths: [event_value.paywall_type_id]
event_value:
origin type: variant
all access paths: [event_value.paywall_type]
event_value:
origin type: variant
all access paths: [event_value.session_segment_id]
event_value:
origin type: variant
all access paths: [event_value.is_placeholder]
event_value:
origin type: variant
all access paths: [event_value.duration]
predicate access paths: [event_value.duration]
event_value:
origin type: variant
all access paths: [event_value.start]
predicate access paths: [event_value.start]
event_value:
origin type: variant
all access paths: [event_value.video_id]
predicate access paths: [event_value.video_id]
event_value:
origin type: variant
all access paths: [event_value.autoplay]
content_attribution:
origin type: variant
all access paths: [content_attribution.creator_user_id]
content_attribution:
origin type: variant
all access paths: [content_attribution.creator_id]
content_attribution:
origin type: variant
all access paths: [content_attribution.channel_id]
experiments:
origin type: array
all access paths: [experiments]
predicate access paths: [experiments]
user_connect_info:
origin type: variant
all access paths: [user_connect_info.user_client]
predicate access paths: [user_connect_info.user_client]
user_connect_info:
origin type: variant
all access paths: [user_connect_info.user_client_version]
user_connect_info:
origin type: variant
all access paths: [user_connect_info.user_ip_ipv6]
user_connect_info:
origin type: variant
all access paths: [user_connect_info.user_location_iso2]
user_connect_info:
origin type: variant
all access paths: [user_connect_info.user_agent]
final projections: date_trunc(event_at[#434], 'DAY'), minute_floor(event_at[#434], 5), event_at[#434], event_key[#435], coalesce(user_id, 0)[#459], cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#466], cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533))[#472], CAST(event_value[#439] AS largeint), coalesce(TRY_CAST(event_value[#440] AS int), 0), tryCast(event_value.duration['duration'] as INT)[#470], TRY_CAST((TRY_CAST(event_value[#440] AS largeint) + TRY_CAST(event_value[#441] AS largeint)) AS int), coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36))[#482], coalesce(CAST(event_value[#444] AS boolean), FALSE), coalesce(CAST(event_value[#445] AS boolean), FALSE), left(CAST(event_value[#446] AS text), 15), TRY_CAST(event_value[#447] AS int), user_session_correlation_id[#448], left(CAST(user_connect_info[#449] AS text), 2), coalesce(user_is_premium[#450], FALSE), coalesce(CAST(content_attribution[#451] AS largeint), CAST(content_attribution[#452] AS largeint)), CAST(content_attribution[#453] AS largeint), left(CAST(event_value[#454] AS text), 36), array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments)[#485], ((CAST(conv(substring(md5(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)))[#475], 1, 16), 16, 10) AS largeint) * 18446744073709551616) + CAST(conv(substring(md5(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)))[#475], 17, 16), 16, 10) AS largeint)), ((CAST(conv(substring(md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-'))[#487], 1, 16), 16, 10) AS largeint) * 18446744073709551616) + CAST(conv(substring(md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-'))[#487], 17, 16), 16, 10) AS largeint)), ((CAST(conv(substring(md5(cast(array_sort(coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), [])) as VARCHAR(65533)))[#491], 1, 16), 16, 10) AS largeint) * 18446744073709551616) + CAST(conv(substring(md5(cast(array_sort(coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), [])) as VARCHAR(65533)))[#491], 17, 16), 16, 10) AS largeint)), CAST(milliseconds_add(CAST(event_at[#434] AS datetimev2(3)), CAST(tryCast(event_value.duration['duration'] as INT)[#470] AS bigint)) AS datetimev2(3)), if((coalesce(user_id, 0) > 0)[#471], 'U', 'A'), if((coalesce(user_id, 0) > 0)[#471], coalesce(user_id, 0)[#459], ((CAST(conv(substring(md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), ''), coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), ''))[#486], 1, 16), 16, 10) AS largeint) * 18446744073709551616) + CAST(conv(substring(md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), ''), coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), ''))[#486], 17, 16), 16, 10) AS largeint)))
final project output tuple id: 10
intermediate projections: event_at[#377], event_key[#378], user_id[#379], user_connect_info[#380], user_connect_info[#381], event_value[#382], event_value[#383], event_value[#384], event_value[#385], event_value[#386], event_value[#387], event_value[#388], event_value[#389], event_value[#390], user_session_correlation_id[#391], user_connect_info[#392], user_is_premium[#393], content_attribution[#394], content_attribution[#395], content_attribution[#396], event_value[#397], experiments[#398], user_connect_info[#399], user_connect_info[#400], user_connect_info.user_client[#401], coalesce(user_id, 0)[#402], event_value.correlator[#403], event_value.search_correlator[#404], event_value.duration[#405], user_connect_info.user_client_version[#406], user_connect_info.user_ip_ipv6[#407], user_connect_info.user_agent[#408], cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#409], cast(event_value.correlator['correlator'] as TEXT)[#410], cast(event_value.search_correlator['search_correlator'] as TEXT)[#411], cast(coalesce(user_id, 0) as VARCHAR(65533))[#412], tryCast(event_value.duration['duration'] as INT)[#413], (coalesce(user_id, 0) > 0)[#414], cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533))[#415], cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533))[#416], cast(user_connect_info.user_agent['user_agent'] as TEXT)[#417], md5(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)))[#418], left(cast(event_value.correlator['correlator'] as TEXT), 36)[#419], left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)[#420], coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), '')[#421], coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), '')[#422], coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), '')[#423], left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250)[#424], coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36))[#425], coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), '')[#426], coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-')[#427], array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments)[#428], md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), ''), coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), ''))[#429], md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-'))[#430], coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), [])[#431], array_sort(coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), []))[#432], cast(array_sort(coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), [])) as VARCHAR(65533))[#433], md5(cast(array_sort(coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), [])) as VARCHAR(65533))[#433])
intermediate tuple id: 9
intermediate projections: event_at[#321], event_key[#322], user_id[#323], user_connect_info[#324], user_connect_info[#325], event_value[#326], event_value[#327], event_value[#328], event_value[#329], event_value[#330], event_value[#331], event_value[#332], event_value[#333], event_value[#334], user_session_correlation_id[#335], user_connect_info[#336], user_is_premium[#337], content_attribution[#338], content_attribution[#339], content_attribution[#340], event_value[#341], experiments[#342], user_connect_info[#343], user_connect_info[#344], user_connect_info.user_client[#345], coalesce(user_id, 0)[#346], event_value.correlator[#347], event_value.search_correlator[#348], event_value.duration[#349], user_connect_info.user_client_version[#350], user_connect_info.user_ip_ipv6[#351], user_connect_info.user_agent[#352], cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#353], cast(event_value.correlator['correlator'] as TEXT)[#354], cast(event_value.search_correlator['search_correlator'] as TEXT)[#355], cast(coalesce(user_id, 0) as VARCHAR(65533))[#356], tryCast(event_value.duration['duration'] as INT)[#357], (coalesce(user_id, 0) > 0)[#358], cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533))[#359], cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533))[#360], cast(user_connect_info.user_agent['user_agent'] as TEXT)[#361], md5(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)))[#362], left(cast(event_value.correlator['correlator'] as TEXT), 36)[#363], left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)[#364], coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), '')[#365], coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), '')[#366], coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), '')[#367], left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250)[#368], coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36))[#369], coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), '')[#370], coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-')[#371], array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments)[#372], md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), ''), coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), ''))[#373], md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-'))[#374], coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), [])[#375], array_sort(coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), []))[#376], CAST(array_sort(coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), []))[#376] AS varchar(65533))
intermediate tuple id: 8
intermediate projections: event_at[#266], event_key[#267], user_id[#268], user_connect_info[#269], user_connect_info[#270], event_value[#271], event_value[#272], event_value[#273], event_value[#274], event_value[#275], event_value[#276], event_value[#277], event_value[#278], event_value[#279], user_session_correlation_id[#280], user_connect_info[#281], user_is_premium[#282], content_attribution[#283], content_attribution[#284], content_attribution[#285], event_value[#286], experiments[#287], user_connect_info[#288], user_connect_info[#289], user_connect_info.user_client[#290], coalesce(user_id, 0)[#291], event_value.correlator[#292], event_value.search_correlator[#293], event_value.duration[#294], user_connect_info.user_client_version[#295], user_connect_info.user_ip_ipv6[#296], user_connect_info.user_agent[#297], cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#298], cast(event_value.correlator['correlator'] as TEXT)[#299], cast(event_value.search_correlator['search_correlator'] as TEXT)[#300], cast(coalesce(user_id, 0) as VARCHAR(65533))[#301], tryCast(event_value.duration['duration'] as INT)[#302], (coalesce(user_id, 0) > 0)[#303], cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533))[#304], cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533))[#305], cast(user_connect_info.user_agent['user_agent'] as TEXT)[#306], md5(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)))[#307], left(cast(event_value.correlator['correlator'] as TEXT), 36)[#308], left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)[#309], coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), '')[#310], coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), '')[#311], coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), '')[#312], left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250)[#313], coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36))[#314], coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), '')[#315], coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-')[#316], array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments)[#317], md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), ''), coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), ''))[#318], md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-'))[#319], coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), [])[#320], array_sort(coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments), [])[#320])
intermediate tuple id: 7
intermediate projections: event_at[#213], event_key[#214], user_id[#215], user_connect_info[#216], user_connect_info[#217], event_value[#218], event_value[#219], event_value[#220], event_value[#221], event_value[#222], event_value[#223], event_value[#224], event_value[#225], event_value[#226], user_session_correlation_id[#227], user_connect_info[#228], user_is_premium[#229], content_attribution[#230], content_attribution[#231], content_attribution[#232], event_value[#233], experiments[#234], user_connect_info[#235], user_connect_info[#236], user_connect_info.user_client[#237], coalesce(user_id, 0)[#238], event_value.correlator[#239], event_value.search_correlator[#240], event_value.duration[#241], user_connect_info.user_client_version[#242], user_connect_info.user_ip_ipv6[#243], user_connect_info.user_agent[#244], cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#245], cast(event_value.correlator['correlator'] as TEXT)[#246], cast(event_value.search_correlator['search_correlator'] as TEXT)[#247], cast(coalesce(user_id, 0) as VARCHAR(65533))[#248], tryCast(event_value.duration['duration'] as INT)[#249], (coalesce(user_id, 0) > 0)[#250], cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533))[#251], cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533))[#252], cast(user_connect_info.user_agent['user_agent'] as TEXT)[#253], md5(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)))[#254], left(cast(event_value.correlator['correlator'] as TEXT), 36)[#255], left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)[#256], coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), '')[#257], coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), '')[#258], coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), '')[#259], left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250)[#260], coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36))[#261], coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), '')[#262], coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-')[#263], array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments)[#264], md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533)), coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), ''), coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), ''), coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), ''))[#265], md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533))[#248], coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)), '-none-')[#263]), coalesce(array_map(x -> left(substring(cast(x as VARCHAR(40)), 1, 40), 40), experiments)[#264], [])
intermediate tuple id: 6
intermediate projections: event_at[#163], event_key[#164], user_id[#165], user_connect_info[#166], user_connect_info[#167], event_value[#168], event_value[#169], event_value[#170], event_value[#171], event_value[#172], event_value[#173], event_value[#174], event_value[#175], event_value[#176], user_session_correlation_id[#177], user_connect_info[#178], user_is_premium[#179], content_attribution[#180], content_attribution[#181], content_attribution[#182], event_value[#183], experiments[#184], user_connect_info[#185], user_connect_info[#186], user_connect_info.user_client[#187], coalesce(user_id, 0)[#188], event_value.correlator[#189], event_value.search_correlator[#190], event_value.duration[#191], user_connect_info.user_client_version[#192], user_connect_info.user_ip_ipv6[#193], user_connect_info.user_agent[#194], cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#195], cast(event_value.correlator['correlator'] as TEXT)[#196], cast(event_value.search_correlator['search_correlator'] as TEXT)[#197], cast(coalesce(user_id, 0) as VARCHAR(65533))[#198], tryCast(event_value.duration['duration'] as INT)[#199], (coalesce(user_id, 0) > 0)[#200], cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533))[#201], cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533))[#202], cast(user_connect_info.user_agent['user_agent'] as TEXT)[#203], md5(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)))[#204], left(cast(event_value.correlator['correlator'] as TEXT), 36)[#205], left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)[#206], coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), '')[#207], coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), '')[#208], coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), '')[#209], left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250)[#210], coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36))[#211], coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), '')[#212], coalesce(coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36))[#211], '-none-'), array_map(x -> left(substring(CAST(x AS varchar(40)), 1, 40), 40), experiments[#184]), md5sum(cast(coalesce(user_id, 0) as VARCHAR(65533))[#198], coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), '')[#207], coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), '')[#208], coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), '')[#209], coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250), '')[#212])
intermediate tuple id: 5
intermediate projections: event_at[#115], event_key[#116], user_id[#117], user_connect_info[#118], user_connect_info[#119], event_value[#120], event_value[#121], event_value[#122], event_value[#123], event_value[#124], event_value[#125], event_value[#126], event_value[#127], event_value[#128], user_session_correlation_id[#129], user_connect_info[#130], user_is_premium[#131], content_attribution[#132], content_attribution[#133], content_attribution[#134], event_value[#135], experiments[#136], user_connect_info[#137], user_connect_info[#138], user_connect_info.user_client[#139], coalesce(user_id, 0)[#140], event_value.correlator[#141], event_value.search_correlator[#142], event_value.duration[#143], user_connect_info.user_client_version[#144], user_connect_info.user_ip_ipv6[#145], user_connect_info.user_agent[#146], cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#147], cast(event_value.correlator['correlator'] as TEXT)[#148], cast(event_value.search_correlator['search_correlator'] as TEXT)[#149], cast(coalesce(user_id, 0) as VARCHAR(65533))[#150], tryCast(event_value.duration['duration'] as INT)[#151], (coalesce(user_id, 0) > 0)[#152], cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533))[#153], cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533))[#154], cast(user_connect_info.user_agent['user_agent'] as TEXT)[#155], md5(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)))[#156], left(cast(event_value.correlator['correlator'] as TEXT), 36)[#157], left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)[#158], coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533)), '')[#159], coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533)), '')[#160], coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533)), '')[#161], left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250)[#162], coalesce(left(cast(event_value.correlator['correlator'] as TEXT), 36)[#157], left(cast(event_value.search_correlator['search_correlator'] as TEXT), 36)[#158]), coalesce(left(cast(user_connect_info.user_agent['user_agent'] as TEXT), 250)[#162], '')
intermediate tuple id: 4
intermediate projections: event_at[#74], event_key[#75], user_id[#76], user_connect_info[#77], user_connect_info[#78], event_value[#79], event_value[#80], event_value[#81], event_value[#82], event_value[#83], event_value[#84], event_value[#85], event_value[#86], event_value[#87], user_session_correlation_id[#88], user_connect_info[#89], user_is_premium[#90], content_attribution[#91], content_attribution[#92], content_attribution[#93], event_value[#94], experiments[#95], user_connect_info[#96], user_connect_info[#97], user_connect_info.user_client[#98], coalesce(user_id, 0)[#99], event_value.correlator[#100], event_value.search_correlator[#101], event_value.duration[#102], user_connect_info.user_client_version[#103], user_connect_info.user_ip_ipv6[#104], user_connect_info.user_agent[#105], cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#106], cast(event_value.correlator['correlator'] as TEXT)[#107], cast(event_value.search_correlator['search_correlator'] as TEXT)[#108], cast(coalesce(user_id, 0) as VARCHAR(65533))[#109], tryCast(event_value.duration['duration'] as INT)[#110], (coalesce(user_id, 0) > 0)[#111], cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533))[#112], cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533))[#113], cast(user_connect_info.user_agent['user_agent'] as TEXT)[#114], md5(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#106]), left(cast(event_value.correlator['correlator'] as TEXT)[#107], 36), left(cast(event_value.search_correlator['search_correlator'] as TEXT)[#108], 36), coalesce(cast(user_connect_info.user_ip_ipv6['user_ip_ipv6'] as VARCHAR(65533))[#113], ''), coalesce(cast(user_connect_info.user_client['user_client'] as VARCHAR(65533))[#106], ''), coalesce(cast(user_connect_info.user_client_version['user_client_version'] as VARCHAR(65533))[#112], ''), left(cast(user_connect_info.user_agent['user_agent'] as TEXT)[#114], 250)
intermediate tuple id: 3
intermediate projections: event_at[#42], event_key[#43], user_id[#44], user_connect_info[#45], user_connect_info[#46], event_value[#47], event_value[#48], event_value[#49], event_value[#50], event_value[#51], event_value[#52], event_value[#53], event_value[#54], event_value[#55], user_session_correlation_id[#56], user_connect_info[#57], user_is_premium[#58], content_attribution[#59], content_attribution[#60], content_attribution[#61], event_value[#62], experiments[#63], user_connect_info[#64], user_connect_info[#65], user_connect_info.user_client[#66], coalesce(user_id, 0)[#67], event_value.correlator[#68], event_value.search_correlator[#69], event_value.duration[#70], user_connect_info.user_client_version[#71], user_connect_info.user_ip_ipv6[#72], user_connect_info.user_agent[#73], CAST(user_connect_info.user_client[#66] AS varchar(65533)), CAST(event_value.correlator[#68] AS text), CAST(event_value.search_correlator[#69] AS text), CAST(coalesce(user_id, 0)[#67] AS varchar(65533)), TRY_CAST(event_value.duration[#70] AS int), (coalesce(user_id, 0)[#67] > 0), CAST(user_connect_info.user_client_version[#71] AS varchar(65533)), CAST(user_connect_info.user_ip_ipv6[#72] AS varchar(65533)), CAST(user_connect_info.user_agent[#73] AS text)
intermediate tuple id: 2
intermediate projections: event_at[#1], event_key[#0], user_id[#7], user_connect_info[#29], user_connect_info[#30], event_value[#19], event_value[#18], event_value[#17], event_value[#11], event_value[#12], event_value[#20], event_value[#16], event_value[#14], event_value[#13], user_session_correlation_id[#9], user_connect_info[#32], user_is_premium[#8], content_attribution[#23], content_attribution[#22], content_attribution[#24], event_value[#15], experiments[#25], user_connect_info[#31], user_connect_info[#33], user_connect_info[#29], coalesce(user_id[#7], 0), event_value[#11], event_value[#12], event_value[#17], user_connect_info[#30], user_connect_info[#31], user_connect_info[#33]
intermediate tuple id: 1
""
""
========== MATERIALIZATIONS ==========
""
MaterializedView
MaterializedViewRewriteSuccessAndChose:
""
MaterializedViewRewriteSuccessButNotChose:
""
MaterializedViewRewriteFail:
CBO.internal.events_watch_time_mv fail
FailInfo: View struct info is invalid, Materialized view rule exec fail
""
""
========== STATISTICS ==========
planned with unknown column statistics
```
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
### Code of Conduct
- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)
Contributor guide
Assessment
This issue has not been assessed yet.