{"payload":{"allShortcutsEnabled":false,"fileTree":{"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59.sf100":{"items":[{"name":"explain.txt","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59.sf100/explain.txt","contentType":"file"},{"name":"simplified.txt","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59.sf100/simplified.txt","contentType":"file"}],"totalCount":2},"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified":{"items":[{"name":"q10.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q10.sf100","contentType":"directory"},{"name":"q10","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q10","contentType":"directory"},{"name":"q19.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q19.sf100","contentType":"directory"},{"name":"q19","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q19","contentType":"directory"},{"name":"q27.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q27.sf100","contentType":"directory"},{"name":"q27","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q27","contentType":"directory"},{"name":"q3.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q3.sf100","contentType":"directory"},{"name":"q3","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q3","contentType":"directory"},{"name":"q34.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q34.sf100","contentType":"directory"},{"name":"q34","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q34","contentType":"directory"},{"name":"q42.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q42.sf100","contentType":"directory"},{"name":"q42","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q42","contentType":"directory"},{"name":"q43.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q43.sf100","contentType":"directory"},{"name":"q43","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q43","contentType":"directory"},{"name":"q46.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q46.sf100","contentType":"directory"},{"name":"q46","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q46","contentType":"directory"},{"name":"q52.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q52.sf100","contentType":"directory"},{"name":"q52","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q52","contentType":"directory"},{"name":"q53.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q53.sf100","contentType":"directory"},{"name":"q53","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q53","contentType":"directory"},{"name":"q55.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q55.sf100","contentType":"directory"},{"name":"q55","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q55","contentType":"directory"},{"name":"q59.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59.sf100","contentType":"directory"},{"name":"q59","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59","contentType":"directory"},{"name":"q63.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q63.sf100","contentType":"directory"},{"name":"q63","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q63","contentType":"directory"},{"name":"q65.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q65.sf100","contentType":"directory"},{"name":"q65","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q65","contentType":"directory"},{"name":"q68.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q68.sf100","contentType":"directory"},{"name":"q68","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q68","contentType":"directory"},{"name":"q7.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q7.sf100","contentType":"directory"},{"name":"q7","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q7","contentType":"directory"},{"name":"q73.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q73.sf100","contentType":"directory"},{"name":"q73","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q73","contentType":"directory"},{"name":"q79.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q79.sf100","contentType":"directory"},{"name":"q79","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q79","contentType":"directory"},{"name":"q89.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q89.sf100","contentType":"directory"},{"name":"q89","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q89","contentType":"directory"},{"name":"q98.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q98.sf100","contentType":"directory"},{"name":"q98","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q98","contentType":"directory"},{"name":"ss_max.sf100","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/ss_max.sf100","contentType":"directory"},{"name":"ss_max","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/ss_max","contentType":"directory"}],"totalCount":42},"sql/core/src/test/resources/tpcds-plan-stability":{"items":[{"name":"approved-plans-modified","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified","contentType":"directory"},{"name":"approved-plans-v1_4","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-v1_4","contentType":"directory"},{"name":"approved-plans-v2_7","path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-v2_7","contentType":"directory"}],"totalCount":3},"sql/core/src/test/resources":{"items":[{"name":"META-INF","path":"sql/core/src/test/resources/META-INF","contentType":"directory"},{"name":"spark-events","path":"sql/core/src/test/resources/spark-events","contentType":"directory"},{"name":"sql-functions","path":"sql/core/src/test/resources/sql-functions","contentType":"directory"},{"name":"sql-tests","path":"sql/core/src/test/resources/sql-tests","contentType":"directory"},{"name":"ssb","path":"sql/core/src/test/resources/ssb","contentType":"directory"},{"name":"structured-streaming","path":"sql/core/src/test/resources/structured-streaming","contentType":"directory"},{"name":"test-data","path":"sql/core/src/test/resources/test-data","contentType":"directory"},{"name":"tpcds-modifiedQueries","path":"sql/core/src/test/resources/tpcds-modifiedQueries","contentType":"directory"},{"name":"tpcds-plan-stability","path":"sql/core/src/test/resources/tpcds-plan-stability","contentType":"directory"},{"name":"tpcds-v2.7.0","path":"sql/core/src/test/resources/tpcds-v2.7.0","contentType":"directory"},{"name":"tpcds","path":"sql/core/src/test/resources/tpcds","contentType":"directory"},{"name":"tpch","path":"sql/core/src/test/resources/tpch","contentType":"directory"},{"name":"SPARK-33084.jar","path":"sql/core/src/test/resources/SPARK-33084.jar","contentType":"file"},{"name":"hive-site.xml","path":"sql/core/src/test/resources/hive-site.xml","contentType":"file"},{"name":"log4j.properties","path":"sql/core/src/test/resources/log4j.properties","contentType":"file"},{"name":"sample.json","path":"sql/core/src/test/resources/sample.json","contentType":"file"},{"name":"test_script.py","path":"sql/core/src/test/resources/test_script.py","contentType":"file"}],"totalCount":17},"sql/core/src/test":{"items":[{"name":"avro","path":"sql/core/src/test/avro","contentType":"directory"},{"name":"gen-java","path":"sql/core/src/test/gen-java","contentType":"directory"},{"name":"java","path":"sql/core/src/test/java","contentType":"directory"},{"name":"resources","path":"sql/core/src/test/resources","contentType":"directory"},{"name":"scala","path":"sql/core/src/test/scala","contentType":"directory"},{"name":"scripts","path":"sql/core/src/test/scripts","contentType":"directory"},{"name":"thrift","path":"sql/core/src/test/thrift","contentType":"directory"},{"name":"README.md","path":"sql/core/src/test/README.md","contentType":"file"}],"totalCount":8},"sql/core/src":{"items":[{"name":"main","path":"sql/core/src/main","contentType":"directory"},{"name":"test","path":"sql/core/src/test","contentType":"directory"}],"totalCount":2},"sql/core":{"items":[{"name":"benchmarks","path":"sql/core/benchmarks","contentType":"directory"},{"name":"src","path":"sql/core/src","contentType":"directory"},{"name":"pom.xml","path":"sql/core/pom.xml","contentType":"file"}],"totalCount":3},"sql":{"items":[{"name":"catalyst","path":"sql/catalyst","contentType":"directory"},{"name":"core","path":"sql/core","contentType":"directory"},{"name":"hive-thriftserver","path":"sql/hive-thriftserver","contentType":"directory"},{"name":"hive","path":"sql/hive","contentType":"directory"},{"name":"README.md","path":"sql/README.md","contentType":"file"},{"name":"create-docs.sh","path":"sql/create-docs.sh","contentType":"file"},{"name":"gen-sql-api-docs.py","path":"sql/gen-sql-api-docs.py","contentType":"file"},{"name":"gen-sql-config-docs.py","path":"sql/gen-sql-config-docs.py","contentType":"file"},{"name":"gen-sql-functions-docs.py","path":"sql/gen-sql-functions-docs.py","contentType":"file"},{"name":"mkdocs.yml","path":"sql/mkdocs.yml","contentType":"file"}],"totalCount":10},"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"R","path":"R","contentType":"directory"},{"name":"assembly","path":"assembly","contentType":"directory"},{"name":"bin","path":"bin","contentType":"directory"},{"name":"binder","path":"binder","contentType":"directory"},{"name":"build","path":"build","contentType":"directory"},{"name":"common","path":"common","contentType":"directory"},{"name":"conf","path":"conf","contentType":"directory"},{"name":"core","path":"core","contentType":"directory"},{"name":"data","path":"data","contentType":"directory"},{"name":"dev","path":"dev","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"examples","path":"examples","contentType":"directory"},{"name":"external","path":"external","contentType":"directory"},{"name":"graphx","path":"graphx","contentType":"directory"},{"name":"hadoop-cloud","path":"hadoop-cloud","contentType":"directory"},{"name":"launcher","path":"launcher","contentType":"directory"},{"name":"licenses-binary","path":"licenses-binary","contentType":"directory"},{"name":"licenses","path":"licenses","contentType":"directory"},{"name":"mllib-local","path":"mllib-local","contentType":"directory"},{"name":"mllib","path":"mllib","contentType":"directory"},{"name":"project","path":"project","contentType":"directory"},{"name":"python","path":"python","contentType":"directory"},{"name":"repl","path":"repl","contentType":"directory"},{"name":"resource-managers","path":"resource-managers","contentType":"directory"},{"name":"sbin","path":"sbin","contentType":"directory"},{"name":"sql","path":"sql","contentType":"directory"},{"name":"streaming","path":"streaming","contentType":"directory"},{"name":"tools","path":"tools","contentType":"directory"},{"name":".asf.yaml","path":".asf.yaml","contentType":"file"},{"name":".gitattributes","path":".gitattributes","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".sbtopts","path":".sbtopts","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"LICENSE-binary","path":"LICENSE-binary","contentType":"file"},{"name":"NOTICE","path":"NOTICE","contentType":"file"},{"name":"NOTICE-binary","path":"NOTICE-binary","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"appveyor.yml","path":"appveyor.yml","contentType":"file"},{"name":"pom.xml","path":"pom.xml","contentType":"file"},{"name":"scalastyle-config.xml","path":"scalastyle-config.xml","contentType":"file"}],"totalCount":42}},"fileTreeProcessingTime":37.316212,"foldersToFetch":[],"repo":{"id":17165658,"defaultBranch":"master","name":"spark","ownerLogin":"apache","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-02-25T08:00:08.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/47359?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"a235c3b2544aead2b1e3034aacfd361d49ad79b1","listCacheKey":"v0:1709628414.0","canEdit":false,"refType":"tree","currentOid":"a235c3b2544aead2b1e3034aacfd361d49ad79b1"},"path":"sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59.sf100/explain.txt","currentUser":null,"blob":{"rawLines":["== Physical Plan ==","TakeOrderedAndProject (51)","+- * Project (50)"," +- * BroadcastHashJoin Inner BuildRight (49)"," :- * Project (25)"," : +- * BroadcastHashJoin Inner BuildRight (24)"," : :- * Project (18)"," : : +- * BroadcastHashJoin Inner BuildRight (17)"," : : :- * HashAggregate (12)"," : : : +- Exchange (11)"," : : : +- * HashAggregate (10)"," : : : +- * Project (9)"," : : : +- * BroadcastHashJoin Inner BuildRight (8)"," : : : :- * Filter (3)"," : : : : +- * ColumnarToRow (2)"," : : : : +- Scan parquet default.store_sales (1)"," : : : +- BroadcastExchange (7)"," : : : +- * Filter (6)"," : : : +- * ColumnarToRow (5)"," : : : +- Scan parquet default.date_dim (4)"," : : +- BroadcastExchange (16)"," : : +- * Filter (15)"," : : +- * ColumnarToRow (14)"," : : +- Scan parquet default.store (13)"," : +- BroadcastExchange (23)"," : +- * Project (22)"," : +- * Filter (21)"," : +- * ColumnarToRow (20)"," : +- Scan parquet default.date_dim (19)"," +- BroadcastExchange (48)"," +- * Project (47)"," +- * BroadcastHashJoin Inner BuildRight (46)"," :- * Project (40)"," : +- * BroadcastHashJoin Inner BuildRight (39)"," : :- * HashAggregate (34)"," : : +- Exchange (33)"," : : +- * HashAggregate (32)"," : : +- * Project (31)"," : : +- * BroadcastHashJoin Inner BuildRight (30)"," : : :- * Filter (28)"," : : : +- * ColumnarToRow (27)"," : : : +- Scan parquet default.store_sales (26)"," : : +- ReusedExchange (29)"," : +- BroadcastExchange (38)"," : +- * Filter (37)"," : +- * ColumnarToRow (36)"," : +- Scan parquet default.store (35)"," +- BroadcastExchange (45)"," +- * Project (44)"," +- * Filter (43)"," +- * ColumnarToRow (42)"," +- Scan parquet default.date_dim (41)","","","(1) Scan parquet default.store_sales","Output [3]: [ss_sold_date_sk#1, ss_store_sk#2, ss_sales_price#3]","Batched: true","Location [not included in comparison]/{warehouse_dir}/store_sales]","PushedFilters: [IsNotNull(ss_sold_date_sk), IsNotNull(ss_store_sk)]","ReadSchema: struct","","(2) ColumnarToRow [codegen id : 2]","Input [3]: [ss_sold_date_sk#1, ss_store_sk#2, ss_sales_price#3]","","(3) Filter [codegen id : 2]","Input [3]: [ss_sold_date_sk#1, ss_store_sk#2, ss_sales_price#3]","Condition : (isnotnull(ss_sold_date_sk#1) AND isnotnull(ss_store_sk#2))","","(4) Scan parquet default.date_dim","Output [3]: [d_date_sk#4, d_week_seq#5, d_day_name#6]","Batched: true","Location [not included in comparison]/{warehouse_dir}/date_dim]","PushedFilters: [IsNotNull(d_date_sk), IsNotNull(d_week_seq)]","ReadSchema: struct","","(5) ColumnarToRow [codegen id : 1]","Input [3]: [d_date_sk#4, d_week_seq#5, d_day_name#6]","","(6) Filter [codegen id : 1]","Input [3]: [d_date_sk#4, d_week_seq#5, d_day_name#6]","Condition : (isnotnull(d_date_sk#4) AND isnotnull(d_week_seq#5))","","(7) BroadcastExchange","Input [3]: [d_date_sk#4, d_week_seq#5, d_day_name#6]","Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [id=#7]","","(8) BroadcastHashJoin [codegen id : 2]","Left keys [1]: [ss_sold_date_sk#1]","Right keys [1]: [d_date_sk#4]","Join condition: None","","(9) Project [codegen id : 2]","Output [4]: [ss_store_sk#2, ss_sales_price#3, d_week_seq#5, d_day_name#6]","Input [6]: [ss_sold_date_sk#1, ss_store_sk#2, ss_sales_price#3, d_date_sk#4, d_week_seq#5, d_day_name#6]","","(10) HashAggregate [codegen id : 2]","Input [4]: [ss_store_sk#2, ss_sales_price#3, d_week_seq#5, d_day_name#6]","Keys [2]: [d_week_seq#5, ss_store_sk#2]","Functions [7]: [partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Tuesday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 ELSE null END))]","Aggregate Attributes [7]: [sum#8, sum#9, sum#10, sum#11, sum#12, sum#13, sum#14]","Results [9]: [d_week_seq#5, ss_store_sk#2, sum#15, sum#16, sum#17, sum#18, sum#19, sum#20, sum#21]","","(11) Exchange","Input [9]: [d_week_seq#5, ss_store_sk#2, sum#15, sum#16, sum#17, sum#18, sum#19, sum#20, sum#21]","Arguments: hashpartitioning(d_week_seq#5, ss_store_sk#2, 5), ENSURE_REQUIREMENTS, [id=#22]","","(12) HashAggregate [codegen id : 10]","Input [9]: [d_week_seq#5, ss_store_sk#2, sum#15, sum#16, sum#17, sum#18, sum#19, sum#20, sum#21]","Keys [2]: [d_week_seq#5, ss_store_sk#2]","Functions [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Tuesday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 ELSE null END))]","Aggregate Attributes [7]: [sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 ELSE null END))#23, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 ELSE null END))#24, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Tuesday) THEN ss_sales_price#3 ELSE null END))#25, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 ELSE null END))#26, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 ELSE null END))#27, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 ELSE null END))#28, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 ELSE null END))#29]","Results [9]: [d_week_seq#5, ss_store_sk#2, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 ELSE null END))#23,17,2) AS sun_sales#30, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 ELSE null END))#24,17,2) AS mon_sales#31, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Tuesday) THEN ss_sales_price#3 ELSE null END))#25,17,2) AS tue_sales#32, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 ELSE null END))#26,17,2) AS wed_sales#33, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 ELSE null END))#27,17,2) AS thu_sales#34, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 ELSE null END))#28,17,2) AS fri_sales#35, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 ELSE null END))#29,17,2) AS sat_sales#36]","","(13) Scan parquet default.store","Output [3]: [s_store_sk#37, s_store_id#38, s_store_name#39]","Batched: true","Location [not included in comparison]/{warehouse_dir}/store]","PushedFilters: [IsNotNull(s_store_sk), IsNotNull(s_store_id)]","ReadSchema: struct","","(14) ColumnarToRow [codegen id : 3]","Input [3]: [s_store_sk#37, s_store_id#38, s_store_name#39]","","(15) Filter [codegen id : 3]","Input [3]: [s_store_sk#37, s_store_id#38, s_store_name#39]","Condition : (isnotnull(s_store_sk#37) AND isnotnull(s_store_id#38))","","(16) BroadcastExchange","Input [3]: [s_store_sk#37, s_store_id#38, s_store_name#39]","Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [id=#40]","","(17) BroadcastHashJoin [codegen id : 10]","Left keys [1]: [ss_store_sk#2]","Right keys [1]: [s_store_sk#37]","Join condition: None","","(18) Project [codegen id : 10]","Output [10]: [d_week_seq#5, sun_sales#30, mon_sales#31, tue_sales#32, wed_sales#33, thu_sales#34, fri_sales#35, sat_sales#36, s_store_id#38, s_store_name#39]","Input [12]: [d_week_seq#5, ss_store_sk#2, sun_sales#30, mon_sales#31, tue_sales#32, wed_sales#33, thu_sales#34, fri_sales#35, sat_sales#36, s_store_sk#37, s_store_id#38, s_store_name#39]","","(19) Scan parquet default.date_dim","Output [2]: [d_month_seq#41, d_week_seq#42]","Batched: true","Location [not included in comparison]/{warehouse_dir}/date_dim]","PushedFilters: [IsNotNull(d_month_seq), GreaterThanOrEqual(d_month_seq,1185), LessThanOrEqual(d_month_seq,1196), IsNotNull(d_week_seq)]","ReadSchema: struct","","(20) ColumnarToRow [codegen id : 4]","Input [2]: [d_month_seq#41, d_week_seq#42]","","(21) Filter [codegen id : 4]","Input [2]: [d_month_seq#41, d_week_seq#42]","Condition : (((isnotnull(d_month_seq#41) AND (d_month_seq#41 >= 1185)) AND (d_month_seq#41 <= 1196)) AND isnotnull(d_week_seq#42))","","(22) Project [codegen id : 4]","Output [1]: [d_week_seq#42]","Input [2]: [d_month_seq#41, d_week_seq#42]","","(23) BroadcastExchange","Input [1]: [d_week_seq#42]","Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [id=#43]","","(24) BroadcastHashJoin [codegen id : 10]","Left keys [1]: [d_week_seq#5]","Right keys [1]: [d_week_seq#42]","Join condition: None","","(25) Project [codegen id : 10]","Output [10]: [s_store_name#39 AS s_store_name1#44, d_week_seq#5 AS d_week_seq1#45, s_store_id#38 AS s_store_id1#46, sun_sales#30 AS sun_sales1#47, mon_sales#31 AS mon_sales1#48, tue_sales#32 AS tue_sales1#49, wed_sales#33 AS wed_sales1#50, thu_sales#34 AS thu_sales1#51, fri_sales#35 AS fri_sales1#52, sat_sales#36 AS sat_sales1#53]","Input [11]: [d_week_seq#5, sun_sales#30, mon_sales#31, tue_sales#32, wed_sales#33, thu_sales#34, fri_sales#35, sat_sales#36, s_store_id#38, s_store_name#39, d_week_seq#42]","","(26) Scan parquet default.store_sales","Output [3]: [ss_sold_date_sk#1, ss_store_sk#2, ss_sales_price#3]","Batched: true","Location [not included in comparison]/{warehouse_dir}/store_sales]","PushedFilters: [IsNotNull(ss_sold_date_sk), IsNotNull(ss_store_sk)]","ReadSchema: struct","","(27) ColumnarToRow [codegen id : 6]","Input [3]: [ss_sold_date_sk#1, ss_store_sk#2, ss_sales_price#3]","","(28) Filter [codegen id : 6]","Input [3]: [ss_sold_date_sk#1, ss_store_sk#2, ss_sales_price#3]","Condition : (isnotnull(ss_sold_date_sk#1) AND isnotnull(ss_store_sk#2))","","(29) ReusedExchange [Reuses operator id: 7]","Output [3]: [d_date_sk#4, d_week_seq#5, d_day_name#6]","","(30) BroadcastHashJoin [codegen id : 6]","Left keys [1]: [ss_sold_date_sk#1]","Right keys [1]: [d_date_sk#4]","Join condition: None","","(31) Project [codegen id : 6]","Output [4]: [ss_store_sk#2, ss_sales_price#3, d_week_seq#5, d_day_name#6]","Input [6]: [ss_sold_date_sk#1, ss_store_sk#2, ss_sales_price#3, d_date_sk#4, d_week_seq#5, d_day_name#6]","","(32) HashAggregate [codegen id : 6]","Input [4]: [ss_store_sk#2, ss_sales_price#3, d_week_seq#5, d_day_name#6]","Keys [2]: [d_week_seq#5, ss_store_sk#2]","Functions [6]: [partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 ELSE null END)), partial_sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 ELSE null END))]","Aggregate Attributes [6]: [sum#54, sum#55, sum#56, sum#57, sum#58, sum#59]","Results [8]: [d_week_seq#5, ss_store_sk#2, sum#60, sum#61, sum#62, sum#63, sum#64, sum#65]","","(33) Exchange","Input [8]: [d_week_seq#5, ss_store_sk#2, sum#60, sum#61, sum#62, sum#63, sum#64, sum#65]","Arguments: hashpartitioning(d_week_seq#5, ss_store_sk#2, 5), ENSURE_REQUIREMENTS, [id=#66]","","(34) HashAggregate [codegen id : 9]","Input [8]: [d_week_seq#5, ss_store_sk#2, sum#60, sum#61, sum#62, sum#63, sum#64, sum#65]","Keys [2]: [d_week_seq#5, ss_store_sk#2]","Functions [6]: [sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 ELSE null END)), sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 ELSE null END))]","Aggregate Attributes [6]: [sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 ELSE null END))#67, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 ELSE null END))#68, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 ELSE null END))#69, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 ELSE null END))#70, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 ELSE null END))#71, sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 ELSE null END))#72]","Results [8]: [d_week_seq#5, ss_store_sk#2, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Sunday) THEN ss_sales_price#3 ELSE null END))#67,17,2) AS sun_sales#30, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Monday) THEN ss_sales_price#3 ELSE null END))#68,17,2) AS mon_sales#31, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Wednesday) THEN ss_sales_price#3 ELSE null END))#69,17,2) AS wed_sales#33, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Thursday) THEN ss_sales_price#3 ELSE null END))#70,17,2) AS thu_sales#34, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Friday) THEN ss_sales_price#3 ELSE null END))#71,17,2) AS fri_sales#35, MakeDecimal(sum(UnscaledValue(CASE WHEN (d_day_name#6 = Saturday) THEN ss_sales_price#3 ELSE null END))#72,17,2) AS sat_sales#36]","","(35) Scan parquet default.store","Output [2]: [s_store_sk#37, s_store_id#38]","Batched: true","Location [not included in comparison]/{warehouse_dir}/store]","PushedFilters: [IsNotNull(s_store_sk), IsNotNull(s_store_id)]","ReadSchema: struct","","(36) ColumnarToRow [codegen id : 7]","Input [2]: [s_store_sk#37, s_store_id#38]","","(37) Filter [codegen id : 7]","Input [2]: [s_store_sk#37, s_store_id#38]","Condition : (isnotnull(s_store_sk#37) AND isnotnull(s_store_id#38))","","(38) BroadcastExchange","Input [2]: [s_store_sk#37, s_store_id#38]","Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, false] as bigint)),false), [id=#73]","","(39) BroadcastHashJoin [codegen id : 9]","Left keys [1]: [ss_store_sk#2]","Right keys [1]: [s_store_sk#37]","Join condition: None","","(40) Project [codegen id : 9]","Output [8]: [d_week_seq#5, sun_sales#30, mon_sales#31, wed_sales#33, thu_sales#34, fri_sales#35, sat_sales#36, s_store_id#38]","Input [10]: [d_week_seq#5, ss_store_sk#2, sun_sales#30, mon_sales#31, wed_sales#33, thu_sales#34, fri_sales#35, sat_sales#36, s_store_sk#37, s_store_id#38]","","(41) Scan parquet default.date_dim","Output [2]: [d_month_seq#74, d_week_seq#75]","Batched: true","Location [not included in comparison]/{warehouse_dir}/date_dim]","PushedFilters: [IsNotNull(d_month_seq), GreaterThanOrEqual(d_month_seq,1197), LessThanOrEqual(d_month_seq,1208), IsNotNull(d_week_seq)]","ReadSchema: struct","","(42) ColumnarToRow [codegen id : 8]","Input [2]: [d_month_seq#74, d_week_seq#75]","","(43) Filter [codegen id : 8]","Input [2]: [d_month_seq#74, d_week_seq#75]","Condition : (((isnotnull(d_month_seq#74) AND (d_month_seq#74 >= 1197)) AND (d_month_seq#74 <= 1208)) AND isnotnull(d_week_seq#75))","","(44) Project [codegen id : 8]","Output [1]: [d_week_seq#75]","Input [2]: [d_month_seq#74, d_week_seq#75]","","(45) BroadcastExchange","Input [1]: [d_week_seq#75]","Arguments: HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint)),false), [id=#76]","","(46) BroadcastHashJoin [codegen id : 9]","Left keys [1]: [d_week_seq#5]","Right keys [1]: [d_week_seq#75]","Join condition: None","","(47) Project [codegen id : 9]","Output [8]: [d_week_seq#5 AS d_week_seq2#77, s_store_id#38 AS s_store_id2#78, sun_sales#30 AS sun_sales2#79, mon_sales#31 AS mon_sales2#80, wed_sales#33 AS wed_sales2#81, thu_sales#34 AS thu_sales2#82, fri_sales#35 AS fri_sales2#83, sat_sales#36 AS sat_sales2#84]","Input [9]: [d_week_seq#5, sun_sales#30, mon_sales#31, wed_sales#33, thu_sales#34, fri_sales#35, sat_sales#36, s_store_id#38, d_week_seq#75]","","(48) BroadcastExchange","Input [8]: [d_week_seq2#77, s_store_id2#78, sun_sales2#79, mon_sales2#80, wed_sales2#81, thu_sales2#82, fri_sales2#83, sat_sales2#84]","Arguments: HashedRelationBroadcastMode(List(input[1, string, true], (input[0, int, true] - 52)),false), [id=#85]","","(49) BroadcastHashJoin [codegen id : 10]","Left keys [2]: [s_store_id1#46, d_week_seq1#45]","Right keys [2]: [s_store_id2#78, (d_week_seq2#77 - 52)]","Join condition: None","","(50) Project [codegen id : 10]","Output [10]: [s_store_name1#44, s_store_id1#46, d_week_seq1#45, CheckOverflow((promote_precision(sun_sales1#47) / promote_precision(sun_sales2#79)), DecimalType(37,20), true) AS (sun_sales1 / sun_sales2)#86, CheckOverflow((promote_precision(mon_sales1#48) / promote_precision(mon_sales2#80)), DecimalType(37,20), true) AS (mon_sales1 / mon_sales2)#87, CheckOverflow((promote_precision(tue_sales1#49) / promote_precision(tue_sales1#49)), DecimalType(37,20), true) AS (tue_sales1 / tue_sales1)#88, CheckOverflow((promote_precision(wed_sales1#50) / promote_precision(wed_sales2#81)), DecimalType(37,20), true) AS (wed_sales1 / wed_sales2)#89, CheckOverflow((promote_precision(thu_sales1#51) / promote_precision(thu_sales2#82)), DecimalType(37,20), true) AS (thu_sales1 / thu_sales2)#90, CheckOverflow((promote_precision(fri_sales1#52) / promote_precision(fri_sales2#83)), DecimalType(37,20), true) AS (fri_sales1 / fri_sales2)#91, CheckOverflow((promote_precision(sat_sales1#53) / promote_precision(sat_sales2#84)), DecimalType(37,20), true) AS (sat_sales1 / sat_sales2)#92]","Input [18]: [s_store_name1#44, d_week_seq1#45, s_store_id1#46, sun_sales1#47, mon_sales1#48, tue_sales1#49, wed_sales1#50, thu_sales1#51, fri_sales1#52, sat_sales1#53, d_week_seq2#77, s_store_id2#78, sun_sales2#79, mon_sales2#80, wed_sales2#81, thu_sales2#82, fri_sales2#83, sat_sales2#84]","","(51) TakeOrderedAndProject","Input [10]: [s_store_name1#44, s_store_id1#46, d_week_seq1#45, (sun_sales1 / sun_sales2)#86, (mon_sales1 / mon_sales2)#87, (tue_sales1 / tue_sales1)#88, (wed_sales1 / wed_sales2)#89, (thu_sales1 / thu_sales2)#90, (fri_sales1 / fri_sales2)#91, (sat_sales1 / sat_sales2)#92]","Arguments: 100, [s_store_name1#44 ASC NULLS FIRST, s_store_id1#46 ASC NULLS FIRST, d_week_seq1#45 ASC NULLS FIRST], [s_store_name1#44, s_store_id1#46, d_week_seq1#45, (sun_sales1 / sun_sales2)#86, (mon_sales1 / mon_sales2)#87, (tue_sales1 / tue_sales1)#88, (wed_sales1 / wed_sales2)#89, (thu_sales1 / thu_sales2)#90, (fri_sales1 / fri_sales2)#91, (sat_sales1 / sat_sales2)#92]"],"stylingDirectives":[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/apache/spark/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"explain.txt","displayUrl":"https://github.com/apache/spark/blob/a235c3b2544aead2b1e3034aacfd361d49ad79b1/sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59.sf100/explain.txt?raw=true","headerInfo":{"blobSize":"19.6 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":null,"isGitLfs":false,"onBranch":false,"shortPath":"6b5a14a","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fapache%2Fspark%2Fblob%2Fa235c3b2544aead2b1e3034aacfd361d49ad79b1%2Fsql%2Fcore%2Fsrc%2Ftest%2Fresources%2Ftpcds-plan-stability%2Fapproved-plans-modified%2Fq59.sf100%2Fexplain.txt","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"290","truncatedSloc":"237"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"Text","languageID":372,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/apache/spark/blob/a235c3b2544aead2b1e3034aacfd361d49ad79b1/sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59.sf100/explain.txt","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/apache/spark/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/apache/spark/raw/a235c3b2544aead2b1e3034aacfd361d49ad79b1/sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59.sf100/explain.txt","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":true,"symbols":[]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/apache/spark/branches":{"post":"-lFcJM-cIi8DDmzTFvzL931MmVt-_WJU8asvZ7Mktkgh6HQaDWmTkv65TWseX1M7p8JCZJcd0H80DDO2PxxQHg"},"/repos/preferences":{"post":"jARVMwUvL9oXlvKJpS0RBiVhehA_8efaGKPn8xoPBlxmCK8n5gffaDGS0D8txkvfi7--KloHEE-xFLLfFn-C2A"}}},"title":"spark/sql/core/src/test/resources/tpcds-plan-stability/approved-plans-modified/q59.sf100/explain.txt at a235c3b2544aead2b1e3034aacfd361d49ad79b1 ยท apache/spark"}