== Physical Plan ==
AppendData (14)
+- AdaptiveSparkPlan (13)
+- == Final Plan ==
ResultQueryStage (9), Statistics(sizeInBytes=8.0 EiB)
+- * Project (8)
+- * BroadcastNestedLoopJoin Cross BuildRight (7)
:- * Project (2)
: +- * Range (1)
+- BroadcastQueryStage (6), Statistics(sizeInBytes=0.0 B, rowCount=1.00E+3)
+- BroadcastExchange (5)
+- * Project (4)
+- * Range (3)
+- == Initial Plan ==
Project (12)
+- BroadcastNestedLoopJoin Cross BuildRight (11)
:- Project (2)
: +- Range (1)
+- BroadcastExchange (10)
+- Project (4)
+- Range (3)
(1) Range [codegen id : 2]
Output [1]: [id#49L]
Arguments: Range (0, 1000, step=1)
(2) Project [codegen id : 2]
Output [4]: [id#49L AS raw_id#50L, uuid(Some(-4168481760394325204)) AS session_id#51, cast((rand(-8142686381654846546) * 10000.0) as int) AS category_id#52, CASE WHEN (rand(5177025415320653990) > 0.5) THEN ACTIVE ELSE INACTIVE END AS status#53]
Input [1]: [id#49L]
(3) Range [codegen id : 1]
Output [1]: [id#55L]
Arguments: Range (0, 1000, step=1)
(4) Project [codegen id : 1]
Output: []
Input [1]: [id#55L]
(5) BroadcastExchange
Input: []
Arguments: IdentityBroadcastMode, [plan_id=56]
(6) BroadcastQueryStage
Output: []
Arguments: 0
(7) BroadcastNestedLoopJoin [codegen id : 2]
Join type: Cross
Join condition: None
(8) Project [codegen id : 2]
Output [8]: [raw_id#50L, session_id#51, sha2(cast(concat(cast(raw_id#50L as string), session_id#51) as binary), 256) AS record_hash#12, sha2(cast(reverse(session_id#51) as binary), 512) AS security_token#13, category_id#52, status#53, 2026-05-11 04:22:55.093983 AS ts#26, repeat(sha2(cast(cast(raw_id#50L as string) as binary), 256), 5) AS padding_data#14]
Input [4]: [raw_id#50L, session_id#51, category_id#52, status#53]
(9) ResultQueryStage
Output [8]: [raw_id#50L, session_id#51, record_hash#12, security_token#13, category_id#52, status#53, ts#26, padding_data#14]
Arguments: 1
(10) BroadcastExchange
Input: []
Arguments: IdentityBroadcastMode, [plan_id=48]
(11) BroadcastNestedLoopJoin
Join type: Cross
Join condition: None
(12) Project
Output [8]: [raw_id#50L, session_id#51, sha2(cast(concat(cast(raw_id#50L as string), session_id#51) as binary), 256) AS record_hash#12, sha2(cast(reverse(session_id#51) as binary), 512) AS security_token#13, category_id#52, status#53, 2026-05-11 04:22:55.093983 AS ts#26, repeat(sha2(cast(cast(raw_id#50L as string) as binary), 256), 5) AS padding_data#14]
Input [4]: [raw_id#50L, session_id#51, category_id#52, status#53]
(13) AdaptiveSparkPlan
Output [8]: [raw_id#50L, session_id#51, record_hash#12, security_token#13, category_id#52, status#53, ts#26, padding_data#14]
Arguments: isFinalPlan=true
(14) AppendData
Input [8]: [raw_id#50L, session_id#51, record_hash#12, security_token#13, category_id#52, status#53, ts#26, padding_data#14]