== Physical Plan ==
* HashAggregate (102)
+- Exchange (101)
+- * HashAggregate (100)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- ObjectHashAggregate (99)
+- Exchange (98)
+- ObjectHashAggregate (97)
+- Project (96)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- Project (95)
+- SortMergeJoin LeftOuter (94)
:- Sort (67)
: +- Exchange (66)
: +- Project (65)
: +- Project (64)
: +- ObjectHashAggregate (63)
: +- Exchange (62)
: +- ObjectHashAggregate (61)
: +- ObjectHashAggregate (60)
: +- Exchange (59)
: +- ObjectHashAggregate (58)
: +- Project (57)
: +- Project (56)
: +- Project (55)
: +- * Project (54)
: +- * Filter (53)
: +- InMemoryTableScan (5)
: +- InMemoryRelation (6)
: +- * Project (52)
: +- * SortMergeJoin LeftOuter (51)
: :- * Project (43)
: : +- * SortMergeJoin LeftOuter (42)
: : :- * Project (34)
: : : +- * SortMergeJoin LeftOuter (33)
: : : :- * Sort (27)
: : : : +- Exchange (26)
: : : : +- * Project (25)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (24)
: : : : :- * Project (16)
: : : : : +- * Generate (15)
: : : : : +- * Filter (14)
: : : : : +- InMemoryTableScan (7)
: : : : : +- InMemoryRelation (8)
: : : : : +- * Filter (13)
: : : : : +- InMemoryTableScan (9)
: : : : : +- InMemoryRelation (10)
: : : : : +- * Filter (12)
: : : : : +- * Scan ExistingRDD (11)
: : : : +- BroadcastExchange (23)
: : : : +- * Project (22)
: : : : +- Exchange (21)
: : : : +- * Project (20)
: : : : +- * Filter (19)
: : : : +- * ColumnarToRow (18)
: : : : +- Scan parquet (17)
: : : +- * Sort (32)
: : : +- Exchange (31)
: : : +- * Project (30)
: : : +- * Filter (29)
: : : +- * Scan ExistingRDD (28)
: : +- * Sort (41)
: : +- ObjectHashAggregate (40)
: : +- Exchange (39)
: : +- ObjectHashAggregate (38)
: : +- * Project (37)
: : +- * Filter (36)
: : +- * Scan ExistingRDD (35)
: +- * Sort (50)
: +- ObjectHashAggregate (49)
: +- Exchange (48)
: +- ObjectHashAggregate (47)
: +- * Project (46)
: +- * Filter (45)
: +- * Scan ExistingRDD (44)
+- * Sort (93)
+- Exchange (92)
+- Project (91)
+- * BroadcastHashJoin Inner BuildLeft (90)
:- BroadcastExchange (71)
: +- * Filter (70)
: +- InMemoryTableScan (68)
: +- InMemoryRelation (69)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * HashAggregate (89)
+- Exchange (88)
+- * HashAggregate (87)
+- * Project (86)
+- * BroadcastHashJoin Inner BuildLeft (85)
:- BroadcastExchange (78)
: +- * Project (77)
: +- * Generate (76)
: +- * Project (75)
: +- * Filter (74)
: +- InMemoryTableScan (72)
: +- InMemoryRelation (73)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * Project (84)
+- Exchange (83)
+- * Project (82)
+- * Filter (81)
+- * ColumnarToRow (80)
+- Scan parquet (79)
(1) InMemoryTableScan
Output: []
(2) InMemoryRelation
Arguments: [shardId#662288, resultSeparationId#667309L, orderProposals#667313], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [2]: [orderProposal#665547, shardId#662288]
Arguments: [orderProposal#665547, shardId#662288]
(4) InMemoryRelation
Arguments: [shardId#662288, orderProposal#665547], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [39]: [availabilityDateTime#663038, channelStreamSpecificKpis#664401, constraintLabels#663050, constraintOperators#663051, constraintValues#663053, deliveryDateTime#663037, isFallbackOrderOnly#663040, logisticUnits#663055, measurements#663048, minimumOrderQuantity#663049, netPriceAmount#663046, netPriceCurrencyCode#663047, netPriceQuantity#663043, netPriceQuantityUom#663044, netPriceQuantityUomUuid#663045, nextAvailabilityDateTime#663039, optimizationGroups#663056, orderDateTime#663036, orderProposalId#663018L, orderProposalItemGroupId#663020, orderProposalItemId#663019, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, originalReplenishmentRunId#663021L, plant#663032, previousOrderProposal#663024L, prodLocSpecificKpis#664386, product#663031, productGroup#663060, qty#662861, quantityAfterProdPlantOptimization#662860, quantityKpis#664414, shardId#662288, sourceOfSupplyUuid#663027, splitIndicator#663023L, subrange#663030, supplier#663029, supplierGroup#663028, supplyingPlant#663059]
Arguments: [availabilityDateTime#663038, channelStreamSpecificKpis#664401, constraintLabels#663050, constraintOperators#663051, constraintValues#663053, deliveryDateTime#663037, isFallbackOrderOnly#663040, logisticUnits#663055, measurements#663048, minimumOrderQuantity#663049, netPriceAmount#663046, netPriceCurrencyCode#663047, netPriceQuantity#663043, netPriceQuantityUom#663044, netPriceQuantityUomUuid#663045, nextAvailabilityDateTime#663039, optimizationGroups#663056, orderDateTime#663036, orderProposalId#663018L, orderProposalItemGroupId#663020, orderProposalItemId#663019, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, originalReplenishmentRunId#663021L, plant#663032, ... 14 more fields], [NOT (isFallbackOrderOnly#663040 <=> true)]
(6) InMemoryRelation
Arguments: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663018L, originalReplenishmentRunId#663021L, supplierGroup#663028, supplier#663029, supplyingPlant#663059, productGroup#663060, product#663031, plant#663032, subrange#663030, orderDateTime#663036, deliveryDateTime#663037, availabilityDateTime#663038, nextAvailabilityDateTime#663039, constraintValues#663053, constraintOperators#663051, constraintLabels#663050, logisticUnits#663055, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, splitIndicator#663023L, netPriceAmount#663046, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [2]: [shardId#662288, items#662290]
Arguments: [shardId#662288, items#662290], [(size(items#662290, true) > 0), isnotnull(items#662290)]
(8) InMemoryRelation
Arguments: [shardId#662288, orderProposalId#662289L, items#662290, optimizationGroups#662291, isOptimal#662292, optimizationInsights#662294], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [6]: [shardId#662288, orderProposalId#662289L, items#662290, optimizationGroups#662291, isOptimal#662292, optimizationInsights#662294]
Arguments: [shardId#662288, orderProposalId#662289L, items#662290, optimizationGroups#662291, isOptimal#662292, optimizationInsights#662294], [isnotnull(shardId#662288), (shardId#662288 = 0_1_10000002107)]
(10) InMemoryRelation
Arguments: [shardId#662288, orderProposalId#662289L, items#662290, optimizationGroups#662291, isOptimal#662292, lastModified#662293, optimizationInsights#662294], StorageLevel(disk, memory, 2 replicas)
(11) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#662288, orderProposalId#662289L, items#662290, optimizationGroups#662291, isOptimal#662292, lastModified#662293, optimizationInsights#662294]
Arguments: [shardId#662288, orderProposalId#662289L, items#662290, optimizationGroups#662291, isOptimal#662292, lastModified#662293, optimizationInsights#662294], MapPartitionsRDD[31662] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(12) Filter [codegen id : 1]
Input [7]: [shardId#662288, orderProposalId#662289L, items#662290, optimizationGroups#662291, isOptimal#662292, lastModified#662293, optimizationInsights#662294]
Condition : (isnotnull(shardId#662288) AND (shardId#662288 = 0_1_10000002107))
(13) Filter [codegen id : 1]
Input [6]: [shardId#662288, orderProposalId#662289L, items#662290, optimizationGroups#662291, isOptimal#662292, optimizationInsights#662294]
Condition : (isnotnull(shardId#662288) AND (shardId#662288 = 0_1_10000002107))
(14) Filter [codegen id : 3]
Input [2]: [shardId#662288, items#662290]
Condition : ((size(items#662290, true) > 0) AND isnotnull(items#662290))
(15) Generate [codegen id : 3]
Input [2]: [shardId#662288, items#662290]
Arguments: explode(items#662290), [shardId#662288], false, [item#662858]
(16) Project [codegen id : 3]
Output [4]: [shardId#662288, item#662858.worklistShardItemId AS worklistShardItemId#662859L, item#662858.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#662860, item#662858.qty AS qty#662861]
Input [2]: [shardId#662288, item#662858]
(17) Scan parquet
Output [38]: [orderProposalId#663133L, orderProposalItemId#663134, supplierGroup#663135, supplier#663136, plant#663137, deliveryDateTime#663138, subrange#663139, supplyingPlant#663140, productGroup#663141, product#663142, orderDateTime#663143, availabilityDateTime#663144, nextAvailabilityDateTime#663145, sourceOfSupplyUuid#663147, isFallbackOrderOnly#663150, splitIndicator#663152L, previousOrderProposal#663153L, worklistShardItemId#663156L, orderProposalItemGroupId#663157, externalProductId#663158, externalPlantId#663159, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, measurements#663174, originalReplenishmentRunId#663175L, optimizationGroups#663176, shardId#663177, sequenceId#663155]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/internal/prod-plant-snapshot/10000002107]
PartitionFilters: [isnotnull(shardId#663177), isnotnull(sequenceId#663155), (shardId#663177 = 0_1_10000002107), (sequenceId#663155 = 4)]
PushedFilters: [IsNotNull(worklistShardItemId)]
ReadSchema: struct<orderProposalId:bigint,orderProposalItemId:string,supplierGroup:string,supplier:string,plant:string,deliveryDateTime:timestamp,subrange:string,supplyingPlant:string,productGroup:string,product:string,orderDateTime:timestamp,availabilityDateTime:timestamp,nextAvailabilityDateTime:timestamp,sourceOfSupplyUuid:string,isFallbackOrderOnly:boolean,splitIndicator:bigint,previousOrderProposal:bigint,worklistShardItemId:bigint,orderProposalItemGroupId:string,externalProductId:string,externalPlantId:string,logisticUnits:array<struct<uom:string,uomUuid:string,numerator:int,denominator:int,isOrderUnit:boolean,isPreferred:boolean>>,orderQuantityBaseUom:string,orderQuantityBaseUomUuid:string,minimumOrderQuantity:double,constraintLabels:array<string>,constraintOperators:array<string>,constraintValues:array<double>,netPriceAmount:double,netPriceCurrencyCode:string,netPriceQuantity:double,netPriceQuantityUom:string,netPriceQuantityUomUuid:string,measurements:array<struct<value:double,dimensionType:int,dimensionCode:string,dimensionCodeUuid:string,isoCode:string>>,originalReplenishmentRunId:bigint,optimizationGroups:array<string>>
(18) ColumnarToRow [codegen id : 1]
Input [38]: [orderProposalId#663133L, orderProposalItemId#663134, supplierGroup#663135, supplier#663136, plant#663137, deliveryDateTime#663138, subrange#663139, supplyingPlant#663140, productGroup#663141, product#663142, orderDateTime#663143, availabilityDateTime#663144, nextAvailabilityDateTime#663145, sourceOfSupplyUuid#663147, isFallbackOrderOnly#663150, splitIndicator#663152L, previousOrderProposal#663153L, worklistShardItemId#663156L, orderProposalItemGroupId#663157, externalProductId#663158, externalPlantId#663159, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, measurements#663174, originalReplenishmentRunId#663175L, optimizationGroups#663176, shardId#663177, sequenceId#663155]
(19) Filter [codegen id : 1]
Input [38]: [orderProposalId#663133L, orderProposalItemId#663134, supplierGroup#663135, supplier#663136, plant#663137, deliveryDateTime#663138, subrange#663139, supplyingPlant#663140, productGroup#663141, product#663142, orderDateTime#663143, availabilityDateTime#663144, nextAvailabilityDateTime#663145, sourceOfSupplyUuid#663147, isFallbackOrderOnly#663150, splitIndicator#663152L, previousOrderProposal#663153L, worklistShardItemId#663156L, orderProposalItemGroupId#663157, externalProductId#663158, externalPlantId#663159, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, measurements#663174, originalReplenishmentRunId#663175L, optimizationGroups#663176, shardId#663177, sequenceId#663155]
Condition : isnotnull(worklistShardItemId#663156L)
(20) Project [codegen id : 1]
Output [36]: [orderProposalId#663133L, orderProposalItemId#663134, supplierGroup#663135, supplier#663136, plant#663137, deliveryDateTime#663138, subrange#663139, supplyingPlant#663140, productGroup#663141, product#663142, orderDateTime#663143, availabilityDateTime#663144, nextAvailabilityDateTime#663145, sourceOfSupplyUuid#663147, isFallbackOrderOnly#663150, splitIndicator#663152L, previousOrderProposal#663153L, worklistShardItemId#663156L, orderProposalItemGroupId#663157, externalProductId#663158, externalPlantId#663159, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, measurements#663174, originalReplenishmentRunId#663175L, optimizationGroups#663176]
Input [38]: [orderProposalId#663133L, orderProposalItemId#663134, supplierGroup#663135, supplier#663136, plant#663137, deliveryDateTime#663138, subrange#663139, supplyingPlant#663140, productGroup#663141, product#663142, orderDateTime#663143, availabilityDateTime#663144, nextAvailabilityDateTime#663145, sourceOfSupplyUuid#663147, isFallbackOrderOnly#663150, splitIndicator#663152L, previousOrderProposal#663153L, worklistShardItemId#663156L, orderProposalItemGroupId#663157, externalProductId#663158, externalPlantId#663159, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, measurements#663174, originalReplenishmentRunId#663175L, optimizationGroups#663176, shardId#663177, sequenceId#663155]
(21) Exchange
Input [36]: [orderProposalId#663133L, orderProposalItemId#663134, supplierGroup#663135, supplier#663136, plant#663137, deliveryDateTime#663138, subrange#663139, supplyingPlant#663140, productGroup#663141, product#663142, orderDateTime#663143, availabilityDateTime#663144, nextAvailabilityDateTime#663145, sourceOfSupplyUuid#663147, isFallbackOrderOnly#663150, splitIndicator#663152L, previousOrderProposal#663153L, worklistShardItemId#663156L, orderProposalItemGroupId#663157, externalProductId#663158, externalPlantId#663159, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, measurements#663174, originalReplenishmentRunId#663175L, optimizationGroups#663176]
Arguments: hashpartitioning(worklistShardItemId#663156L, 20), REPARTITION_BY_NUM, [plan_id=272757]
(22) Project [codegen id : 2]
Output [36]: [worklistShardItemId#663156L, orderProposalId#663133L, orderProposalItemId#663134, orderProposalItemGroupId#663157, originalReplenishmentRunId#663175L, splitIndicator#663152L, previousOrderProposal#663153L, sourceOfSupplyUuid#663147, supplierGroup#663135, supplier#663136, subrange#663139, product#663142, plant#663137, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, isFallbackOrderOnly#663150, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, netPriceAmount#663169, netPriceCurrencyCode#663170, measurements#663174, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, logisticUnits#663160, optimizationGroups#663176, externalProductId#663158, externalPlantId#663159, supplyingPlant#663140, productGroup#663141]
Input [36]: [orderProposalId#663133L, orderProposalItemId#663134, supplierGroup#663135, supplier#663136, plant#663137, deliveryDateTime#663138, subrange#663139, supplyingPlant#663140, productGroup#663141, product#663142, orderDateTime#663143, availabilityDateTime#663144, nextAvailabilityDateTime#663145, sourceOfSupplyUuid#663147, isFallbackOrderOnly#663150, splitIndicator#663152L, previousOrderProposal#663153L, worklistShardItemId#663156L, orderProposalItemGroupId#663157, externalProductId#663158, externalPlantId#663159, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, measurements#663174, originalReplenishmentRunId#663175L, optimizationGroups#663176]
(23) BroadcastExchange
Input [36]: [worklistShardItemId#663156L, orderProposalId#663133L, orderProposalItemId#663134, orderProposalItemGroupId#663157, originalReplenishmentRunId#663175L, splitIndicator#663152L, previousOrderProposal#663153L, sourceOfSupplyUuid#663147, supplierGroup#663135, supplier#663136, subrange#663139, product#663142, plant#663137, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, isFallbackOrderOnly#663150, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, netPriceAmount#663169, netPriceCurrencyCode#663170, measurements#663174, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, logisticUnits#663160, optimizationGroups#663176, externalProductId#663158, externalPlantId#663159, supplyingPlant#663140, productGroup#663141]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=272761]
(24) BroadcastHashJoin [codegen id : 3]
Left keys [1]: [worklistShardItemId#662859L]
Right keys [1]: [worklistShardItemId#663156L]
Join type: LeftOuter
Join condition: (shardId#662288 = 0_1_10000002107)
(25) Project [codegen id : 3]
Output [39]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663133L, originalReplenishmentRunId#663175L, supplierGroup#663135, supplier#663136, supplyingPlant#663140, productGroup#663141, product#663142, plant#663137, subrange#663139, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, constraintValues#663166, constraintOperators#663165, constraintLabels#663164, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, splitIndicator#663152L, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, sourceOfSupplyUuid#663147, minimumOrderQuantity#663163, orderProposalItemId#663134, orderProposalItemGroupId#663157, optimizationGroups#663176, measurements#663174, externalProductId#663158, externalPlantId#663159, previousOrderProposal#663153L, isFallbackOrderOnly#663150]
Input [40]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, worklistShardItemId#663156L, orderProposalId#663133L, orderProposalItemId#663134, orderProposalItemGroupId#663157, originalReplenishmentRunId#663175L, splitIndicator#663152L, previousOrderProposal#663153L, sourceOfSupplyUuid#663147, supplierGroup#663135, supplier#663136, subrange#663139, product#663142, plant#663137, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, isFallbackOrderOnly#663150, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, netPriceAmount#663169, netPriceCurrencyCode#663170, measurements#663174, minimumOrderQuantity#663163, constraintLabels#663164, constraintOperators#663165, constraintValues#663166, logisticUnits#663160, optimizationGroups#663176, externalProductId#663158, externalPlantId#663159, supplyingPlant#663140, productGroup#663141]
(26) Exchange
Input [39]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663133L, originalReplenishmentRunId#663175L, supplierGroup#663135, supplier#663136, supplyingPlant#663140, productGroup#663141, product#663142, plant#663137, subrange#663139, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, constraintValues#663166, constraintOperators#663165, constraintLabels#663164, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, splitIndicator#663152L, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, sourceOfSupplyUuid#663147, minimumOrderQuantity#663163, orderProposalItemId#663134, orderProposalItemGroupId#663157, optimizationGroups#663176, measurements#663174, externalProductId#663158, externalPlantId#663159, previousOrderProposal#663153L, isFallbackOrderOnly#663150]
Arguments: hashpartitioning(shardId#662288, worklistShardItemId#662859L, 20), ENSURE_REQUIREMENTS, [plan_id=272766]
(27) Sort [codegen id : 4]
Input [39]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663133L, originalReplenishmentRunId#663175L, supplierGroup#663135, supplier#663136, supplyingPlant#663140, productGroup#663141, product#663142, plant#663137, subrange#663139, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, constraintValues#663166, constraintOperators#663165, constraintLabels#663164, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, splitIndicator#663152L, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, sourceOfSupplyUuid#663147, minimumOrderQuantity#663163, orderProposalItemId#663134, orderProposalItemGroupId#663157, optimizationGroups#663176, measurements#663174, externalProductId#663158, externalPlantId#663159, previousOrderProposal#663153L, isFallbackOrderOnly#663150]
Arguments: [shardId#662288 ASC NULLS FIRST, worklistShardItemId#662859L ASC NULLS FIRST], false, 0
(28) Scan ExistingRDD [codegen id : 5]
Output [6]: [shardId#664379, worklistShardItemId#664380L, qty#664381, demandChannel#664382, demandStream#664383, kpis#664384]
Arguments: [shardId#664379, worklistShardItemId#664380L, qty#664381, demandChannel#664382, demandStream#664383, kpis#664384], MapPartitionsRDD[31897] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(29) Filter [codegen id : 5]
Input [6]: [shardId#664379, worklistShardItemId#664380L, qty#664381, demandChannel#664382, demandStream#664383, kpis#664384]
Condition : (((isnull(qty#664381) AND isnull(demandChannel#664382)) AND isnull(demandStream#664383)) AND (isnotnull(shardId#664379) AND isnotnull(worklistShardItemId#664380L)))
(30) Project [codegen id : 5]
Output [3]: [shardId#664379, worklistShardItemId#664380L, coalesce(kpis#664384, []) AS prodLocSpecificKpis#664385]
Input [6]: [shardId#664379, worklistShardItemId#664380L, qty#664381, demandChannel#664382, demandStream#664383, kpis#664384]
(31) Exchange
Input [3]: [shardId#664379, worklistShardItemId#664380L, prodLocSpecificKpis#664385]
Arguments: hashpartitioning(shardId#664379, worklistShardItemId#664380L, 20), ENSURE_REQUIREMENTS, [plan_id=272772]
(32) Sort [codegen id : 6]
Input [3]: [shardId#664379, worklistShardItemId#664380L, prodLocSpecificKpis#664385]
Arguments: [shardId#664379 ASC NULLS FIRST, worklistShardItemId#664380L ASC NULLS FIRST], false, 0
(33) SortMergeJoin [codegen id : 7]
Left keys [2]: [shardId#662288, worklistShardItemId#662859L]
Right keys [2]: [shardId#664379, worklistShardItemId#664380L]
Join type: LeftOuter
Join condition: None
(34) Project [codegen id : 7]
Output [40]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663133L, originalReplenishmentRunId#663175L, supplierGroup#663135, supplier#663136, supplyingPlant#663140, productGroup#663141, product#663142, plant#663137, subrange#663139, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, constraintValues#663166, constraintOperators#663165, constraintLabels#663164, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, splitIndicator#663152L, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, sourceOfSupplyUuid#663147, minimumOrderQuantity#663163, orderProposalItemId#663134, orderProposalItemGroupId#663157, optimizationGroups#663176, measurements#663174, externalProductId#663158, externalPlantId#663159, previousOrderProposal#663153L, isFallbackOrderOnly#663150, coalesce(prodLocSpecificKpis#664385, []) AS prodLocSpecificKpis#664386]
Input [42]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663133L, originalReplenishmentRunId#663175L, supplierGroup#663135, supplier#663136, supplyingPlant#663140, productGroup#663141, product#663142, plant#663137, subrange#663139, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, constraintValues#663166, constraintOperators#663165, constraintLabels#663164, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, splitIndicator#663152L, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, sourceOfSupplyUuid#663147, minimumOrderQuantity#663163, orderProposalItemId#663134, orderProposalItemGroupId#663157, optimizationGroups#663176, measurements#663174, externalProductId#663158, externalPlantId#663159, previousOrderProposal#663153L, isFallbackOrderOnly#663150, shardId#664379, worklistShardItemId#664380L, prodLocSpecificKpis#664385]
(35) Scan ExistingRDD [codegen id : 8]
Output [6]: [shardId#664395, worklistShardItemId#664396L, qty#664397, demandChannel#664398, demandStream#664399, kpis#664400]
Arguments: [shardId#664395, worklistShardItemId#664396L, qty#664397, demandChannel#664398, demandStream#664399, kpis#664400], MapPartitionsRDD[31897] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(36) Filter [codegen id : 8]
Input [6]: [shardId#664395, worklistShardItemId#664396L, qty#664397, demandChannel#664398, demandStream#664399, kpis#664400]
Condition : ((((isnull(qty#664397) AND isnotnull(demandChannel#664398)) AND isnotnull(demandStream#664399)) AND (size(kpis#664400, true) > 0)) AND (isnotnull(shardId#664395) AND isnotnull(worklistShardItemId#664396L)))
(37) Project [codegen id : 8]
Output [5]: [shardId#664395, worklistShardItemId#664396L, demandChannel#664398, demandStream#664399, kpis#664400]
Input [6]: [shardId#664395, worklistShardItemId#664396L, qty#664397, demandChannel#664398, demandStream#664399, kpis#664400]
(38) ObjectHashAggregate
Input [5]: [shardId#664395, worklistShardItemId#664396L, demandChannel#664398, demandStream#664399, kpis#664400]
Keys [2]: [shardId#664395, worklistShardItemId#664396L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#664398, demandStream, demandStream#664399, kpis, kpis#664400), 0, 0)]
Aggregate Attributes [1]: [buf#664814]
Results [3]: [shardId#664395, worklistShardItemId#664396L, buf#664815]
(39) Exchange
Input [3]: [shardId#664395, worklistShardItemId#664396L, buf#664815]
Arguments: hashpartitioning(shardId#664395, worklistShardItemId#664396L, 20), ENSURE_REQUIREMENTS, [plan_id=272783]
(40) ObjectHashAggregate
Input [3]: [shardId#664395, worklistShardItemId#664396L, buf#664815]
Keys [2]: [shardId#664395, worklistShardItemId#664396L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#664398, demandStream, demandStream#664399, kpis, kpis#664400), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#664398, demandStream, demandStream#664399, kpis, kpis#664400), 0, 0)#664394]
Results [3]: [shardId#664395, worklistShardItemId#664396L, collect_list(struct(demandChannel, demandChannel#664398, demandStream, demandStream#664399, kpis, kpis#664400), 0, 0)#664394 AS channelStreamSpecificKpis#664387]
(41) Sort [codegen id : 9]
Input [3]: [shardId#664395, worklistShardItemId#664396L, channelStreamSpecificKpis#664387]
Arguments: [shardId#664395 ASC NULLS FIRST, worklistShardItemId#664396L ASC NULLS FIRST], false, 0
(42) SortMergeJoin [codegen id : 10]
Left keys [2]: [shardId#662288, worklistShardItemId#662859L]
Right keys [2]: [shardId#664395, worklistShardItemId#664396L]
Join type: LeftOuter
Join condition: None
(43) Project [codegen id : 10]
Output [41]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663133L, originalReplenishmentRunId#663175L, supplierGroup#663135, supplier#663136, supplyingPlant#663140, productGroup#663141, product#663142, plant#663137, subrange#663139, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, constraintValues#663166, constraintOperators#663165, constraintLabels#663164, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, splitIndicator#663152L, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, sourceOfSupplyUuid#663147, minimumOrderQuantity#663163, orderProposalItemId#663134, orderProposalItemGroupId#663157, optimizationGroups#663176, measurements#663174, externalProductId#663158, externalPlantId#663159, previousOrderProposal#663153L, isFallbackOrderOnly#663150, prodLocSpecificKpis#664386, coalesce(channelStreamSpecificKpis#664387, []) AS channelStreamSpecificKpis#664401]
Input [43]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663133L, originalReplenishmentRunId#663175L, supplierGroup#663135, supplier#663136, supplyingPlant#663140, productGroup#663141, product#663142, plant#663137, subrange#663139, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, constraintValues#663166, constraintOperators#663165, constraintLabels#663164, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, splitIndicator#663152L, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, sourceOfSupplyUuid#663147, minimumOrderQuantity#663163, orderProposalItemId#663134, orderProposalItemGroupId#663157, optimizationGroups#663176, measurements#663174, externalProductId#663158, externalPlantId#663159, previousOrderProposal#663153L, isFallbackOrderOnly#663150, prodLocSpecificKpis#664386, shardId#664395, worklistShardItemId#664396L, channelStreamSpecificKpis#664387]
(44) Scan ExistingRDD [codegen id : 11]
Output [6]: [shardId#664408, worklistShardItemId#664409L, qty#664410, demandChannel#664411, demandStream#664412, kpis#664413]
Arguments: [shardId#664408, worklistShardItemId#664409L, qty#664410, demandChannel#664411, demandStream#664412, kpis#664413], MapPartitionsRDD[31897] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(45) Filter [codegen id : 11]
Input [6]: [shardId#664408, worklistShardItemId#664409L, qty#664410, demandChannel#664411, demandStream#664412, kpis#664413]
Condition : ((isnotnull(qty#664410) AND isnotnull(kpis#664413)) AND (isnotnull(shardId#664408) AND isnotnull(worklistShardItemId#664409L)))
(46) Project [codegen id : 11]
Output [4]: [shardId#664408, worklistShardItemId#664409L, qty#664410, kpis#664413]
Input [6]: [shardId#664408, worklistShardItemId#664409L, qty#664410, demandChannel#664411, demandStream#664412, kpis#664413]
(47) ObjectHashAggregate
Input [4]: [shardId#664408, worklistShardItemId#664409L, qty#664410, kpis#664413]
Keys [2]: [shardId#664408, worklistShardItemId#664409L]
Functions [1]: [partial_collect_list(struct(qty, qty#664410, kpis, kpis#664413), 0, 0)]
Aggregate Attributes [1]: [buf#664816]
Results [3]: [shardId#664408, worklistShardItemId#664409L, buf#664817]
(48) Exchange
Input [3]: [shardId#664408, worklistShardItemId#664409L, buf#664817]
Arguments: hashpartitioning(shardId#664408, worklistShardItemId#664409L, 20), ENSURE_REQUIREMENTS, [plan_id=272795]
(49) ObjectHashAggregate
Input [3]: [shardId#664408, worklistShardItemId#664409L, buf#664817]
Keys [2]: [shardId#664408, worklistShardItemId#664409L]
Functions [1]: [collect_list(struct(qty, qty#664410, kpis, kpis#664413), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#664410, kpis, kpis#664413), 0, 0)#664407]
Results [3]: [shardId#664408, worklistShardItemId#664409L, map_from_entries(collect_list(struct(qty, qty#664410, kpis, kpis#664413), 0, 0)#664407) AS quantityKpis#664402]
(50) Sort [codegen id : 12]
Input [3]: [shardId#664408, worklistShardItemId#664409L, quantityKpis#664402]
Arguments: [shardId#664408 ASC NULLS FIRST, worklistShardItemId#664409L ASC NULLS FIRST], false, 0
(51) SortMergeJoin [codegen id : 13]
Left keys [2]: [shardId#662288, worklistShardItemId#662859L]
Right keys [2]: [shardId#664408, worklistShardItemId#664409L]
Join type: LeftOuter
Join condition: None
(52) Project [codegen id : 13]
Output [42]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663133L, originalReplenishmentRunId#663175L, supplierGroup#663135, supplier#663136, supplyingPlant#663140, productGroup#663141, product#663142, plant#663137, subrange#663139, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, constraintValues#663166, constraintOperators#663165, constraintLabels#663164, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, splitIndicator#663152L, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, sourceOfSupplyUuid#663147, minimumOrderQuantity#663163, orderProposalItemId#663134, orderProposalItemGroupId#663157, optimizationGroups#663176, measurements#663174, externalProductId#663158, externalPlantId#663159, previousOrderProposal#663153L, isFallbackOrderOnly#663150, prodLocSpecificKpis#664386, channelStreamSpecificKpis#664401, coalesce(quantityKpis#664402, map(keys: [], values: [])) AS quantityKpis#664414]
Input [44]: [shardId#662288, worklistShardItemId#662859L, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663133L, originalReplenishmentRunId#663175L, supplierGroup#663135, supplier#663136, supplyingPlant#663140, productGroup#663141, product#663142, plant#663137, subrange#663139, orderDateTime#663143, deliveryDateTime#663138, availabilityDateTime#663144, nextAvailabilityDateTime#663145, constraintValues#663166, constraintOperators#663165, constraintLabels#663164, logisticUnits#663160, orderQuantityBaseUom#663161, orderQuantityBaseUomUuid#663162, splitIndicator#663152L, netPriceAmount#663169, netPriceCurrencyCode#663170, netPriceQuantity#663171, netPriceQuantityUom#663172, netPriceQuantityUomUuid#663173, sourceOfSupplyUuid#663147, minimumOrderQuantity#663163, orderProposalItemId#663134, orderProposalItemGroupId#663157, optimizationGroups#663176, measurements#663174, externalProductId#663158, externalPlantId#663159, previousOrderProposal#663153L, isFallbackOrderOnly#663150, prodLocSpecificKpis#664386, channelStreamSpecificKpis#664401, shardId#664408, worklistShardItemId#664409L, quantityKpis#664402]
(53) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#663038, channelStreamSpecificKpis#664401, constraintLabels#663050, constraintOperators#663051, constraintValues#663053, deliveryDateTime#663037, isFallbackOrderOnly#663040, logisticUnits#663055, measurements#663048, minimumOrderQuantity#663049, netPriceAmount#663046, netPriceCurrencyCode#663047, netPriceQuantity#663043, netPriceQuantityUom#663044, netPriceQuantityUomUuid#663045, nextAvailabilityDateTime#663039, optimizationGroups#663056, orderDateTime#663036, orderProposalId#663018L, orderProposalItemGroupId#663020, orderProposalItemId#663019, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, originalReplenishmentRunId#663021L, plant#663032, previousOrderProposal#663024L, prodLocSpecificKpis#664386, product#663031, productGroup#663060, qty#662861, quantityAfterProdPlantOptimization#662860, quantityKpis#664414, shardId#662288, sourceOfSupplyUuid#663027, splitIndicator#663023L, subrange#663030, supplier#663029, supplierGroup#663028, supplyingPlant#663059]
Condition : NOT (isFallbackOrderOnly#663040 <=> true)
(54) Project [codegen id : 1]
Output [36]: [shardId#662288, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663018L, originalReplenishmentRunId#663021L, supplierGroup#663028, supplier#663029, supplyingPlant#663059, productGroup#663060, product#663031, plant#663032, subrange#663030, orderDateTime#663036, deliveryDateTime#663037, availabilityDateTime#663038, nextAvailabilityDateTime#663039, logisticUnits#663055, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, splitIndicator#663023L, netPriceAmount#663046, netPriceCurrencyCode#663047, netPriceQuantity#663043, netPriceQuantityUom#663044, netPriceQuantityUomUuid#663045, sourceOfSupplyUuid#663027, minimumOrderQuantity#663049, orderProposalItemId#663019, orderProposalItemGroupId#663020, optimizationGroups#663056, measurements#663048, previousOrderProposal#663024L, prodLocSpecificKpis#664386, channelStreamSpecificKpis#664401, quantityKpis#664414, arrays_zip(constraintLabels#663050, constraintOperators#663051, constraintValues#663053, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#665067]
Input [39]: [availabilityDateTime#663038, channelStreamSpecificKpis#664401, constraintLabels#663050, constraintOperators#663051, constraintValues#663053, deliveryDateTime#663037, isFallbackOrderOnly#663040, logisticUnits#663055, measurements#663048, minimumOrderQuantity#663049, netPriceAmount#663046, netPriceCurrencyCode#663047, netPriceQuantity#663043, netPriceQuantityUom#663044, netPriceQuantityUomUuid#663045, nextAvailabilityDateTime#663039, optimizationGroups#663056, orderDateTime#663036, orderProposalId#663018L, orderProposalItemGroupId#663020, orderProposalItemId#663019, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, originalReplenishmentRunId#663021L, plant#663032, previousOrderProposal#663024L, prodLocSpecificKpis#664386, product#663031, productGroup#663060, qty#662861, quantityAfterProdPlantOptimization#662860, quantityKpis#664414, shardId#662288, sourceOfSupplyUuid#663027, splitIndicator#663023L, subrange#663030, supplier#663029, supplierGroup#663028, supplyingPlant#663059]
(55) Project
Output [37]: [shardId#662288, qty#662861, orderProposalId#663018L, originalReplenishmentRunId#663021L, supplierGroup#663028, supplier#663029, supplyingPlant#663059, productGroup#663060, product#663031, plant#663032, subrange#663030, orderDateTime#663036, deliveryDateTime#663037, availabilityDateTime#663038, nextAvailabilityDateTime#663039, logisticUnits#663055, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, splitIndicator#663023L, netPriceAmount#663046, netPriceCurrencyCode#663047, netPriceQuantity#663043, netPriceQuantityUom#663044, netPriceQuantityUomUuid#663045, sourceOfSupplyUuid#663027, orderProposalItemId#663019, orderProposalItemGroupId#663020, optimizationGroups#663056, measurements#663048, previousOrderProposal#663024L, prodLocSpecificKpis#664386, channelStreamSpecificKpis#664401, quantityKpis#664414, struct(minServiceLevel, array_min(filter(constraintStructArray#665067, lambdafunction((lambda x_1722#665074.constraintLabels = ServiceLevel), lambda x_1722#665074, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#665067, lambdafunction((lambda x_1723#665075.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_1723#665075, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#665067, lambdafunction((lambda x_1724#665076.constraintLabels = RangeOfCoverage), lambda x_1724#665076, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#663049, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#664386, lambdafunction((lambda x_1725#665077.label = NonListingStartTimestamp), lambda x_1725#665077, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#665073, CASE WHEN (qty#662861 <=> quantityAfterProdPlantOptimization#662860) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#662861 * (cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1726#665145.isOrderUnit, lambda x_1726#665145, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1726#665146.isOrderUnit, lambda x_1726#665146, false)), 1, None, false).numerator as double))), qty#662861), orderQuantityUom, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1726#665147.isOrderUnit, lambda x_1726#665147, false)), 1, None, false).uom, orderQuantityBaseUom#663041), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1726#665148.isOrderUnit, lambda x_1726#665148, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#663042), candidateOrderQuantityInBaseUnit, qty#662861, orderQuantityBaseUom, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#663042, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#663055, lambdafunction((lambda x_1728#665149.isPreferred AND (((qty#662861 * cast(lambda x_1728#665149.denominator as double)) % cast(lambda x_1728#665149.numerator as double)) = 0.0)), lambda x_1728#665149, false)), lambdafunction(struct(inPreferredQuantity, ((qty#662861 * cast(lambda x_1729#665187.denominator as double)) / cast(lambda x_1729#665187.numerator as double)), uom, lambda x_1729#665187.uom, uomUuid, lambda x_1729#665187.uomUuid), lambda x_1729#665187, false))).inPreferredQuantity, coalesce((qty#662861 * (cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1727#665150.isOrderUnit, lambda x_1727#665150, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1727#665151.isOrderUnit, lambda x_1727#665151, false)), 1, None, false).numerator as double))), qty#662861)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#663055, lambdafunction((lambda x_1728#665152.isPreferred AND (((qty#662861 * cast(lambda x_1728#665152.denominator as double)) % cast(lambda x_1728#665152.numerator as double)) = 0.0)), lambda x_1728#665152, false)), lambdafunction(struct(inPreferredQuantity, ((qty#662861 * cast(lambda x_1729#665188.denominator as double)) / cast(lambda x_1729#665188.numerator as double)), uom, lambda x_1729#665188.uom, uomUuid, lambda x_1729#665188.uomUuid), lambda x_1729#665188, false))).uom, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1727#665153.isOrderUnit, lambda x_1727#665153, false)), 1, None, false).uom, orderQuantityBaseUom#663041)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#663055, lambdafunction((lambda x_1728#665154.isPreferred AND (((qty#662861 * cast(lambda x_1728#665154.denominator as double)) % cast(lambda x_1728#665154.numerator as double)) = 0.0)), lambda x_1728#665154, false)), lambdafunction(struct(inPreferredQuantity, ((qty#662861 * cast(lambda x_1729#665189.denominator as double)) / cast(lambda x_1729#665189.numerator as double)), uom, lambda x_1729#665189.uom, uomUuid, lambda x_1729#665189.uomUuid), lambda x_1729#665189, false))).uomUuid, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1727#665155.isOrderUnit, lambda x_1727#665155, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#663042)), serviceLevel, coalesce(filter(element_at(quantityKpis#664414, qty#662861, None, false), lambdafunction((lambda x_1734#665156.label = ServiceLevel), lambda x_1734#665156, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#662861 * (cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1726#665159.isOrderUnit, lambda x_1726#665159, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1726#665160.isOrderUnit, lambda x_1726#665160, false)), 1, None, false).numerator as double))), qty#662861), orderQuantityUom, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1726#665161.isOrderUnit, lambda x_1726#665161, false)), 1, None, false).uom, orderQuantityBaseUom#663041), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1726#665162.isOrderUnit, lambda x_1726#665162, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#663042), candidateOrderQuantityInBaseUnit, qty#662861, orderQuantityBaseUom, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#663042, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#663055, lambdafunction((lambda x_1728#665163.isPreferred AND (((qty#662861 * cast(lambda x_1728#665163.denominator as double)) % cast(lambda x_1728#665163.numerator as double)) = 0.0)), lambda x_1728#665163, false)), lambdafunction(struct(inPreferredQuantity, ((qty#662861 * cast(lambda x_1729#665190.denominator as double)) / cast(lambda x_1729#665190.numerator as double)), uom, lambda x_1729#665190.uom, uomUuid, lambda x_1729#665190.uomUuid), lambda x_1729#665190, false))).inPreferredQuantity, coalesce((qty#662861 * (cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1727#665164.isOrderUnit, lambda x_1727#665164, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1727#665165.isOrderUnit, lambda x_1727#665165, false)), 1, None, false).numerator as double))), qty#662861)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#663055, lambdafunction((lambda x_1728#665166.isPreferred AND (((qty#662861 * cast(lambda x_1728#665166.denominator as double)) % cast(lambda x_1728#665166.numerator as double)) = 0.0)), lambda x_1728#665166, false)), lambdafunction(struct(inPreferredQuantity, ((qty#662861 * cast(lambda x_1729#665191.denominator as double)) / cast(lambda x_1729#665191.numerator as double)), uom, lambda x_1729#665191.uom, uomUuid, lambda x_1729#665191.uomUuid), lambda x_1729#665191, false))).uom, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1727#665167.isOrderUnit, lambda x_1727#665167, false)), 1, None, false).uom, orderQuantityBaseUom#663041)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#663055, lambdafunction((lambda x_1728#665168.isPreferred AND (((qty#662861 * cast(lambda x_1728#665168.denominator as double)) % cast(lambda x_1728#665168.numerator as double)) = 0.0)), lambda x_1728#665168, false)), lambdafunction(struct(inPreferredQuantity, ((qty#662861 * cast(lambda x_1729#665192.denominator as double)) / cast(lambda x_1729#665192.numerator as double)), uom, lambda x_1729#665192.uom, uomUuid, lambda x_1729#665192.uomUuid), lambda x_1729#665192, false))).uomUuid, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1727#665169.isOrderUnit, lambda x_1727#665169, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#663042)), serviceLevel, coalesce(filter(element_at(quantityKpis#664414, qty#662861, None, false), lambdafunction((lambda x_1737#665170.label = ServiceLevel), lambda x_1737#665170, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#662860 * (cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1730#665173.isOrderUnit, lambda x_1730#665173, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1730#665174.isOrderUnit, lambda x_1730#665174, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#662860), orderQuantityUom, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1730#665175.isOrderUnit, lambda x_1730#665175, false)), 1, None, false).uom, orderQuantityBaseUom#663041), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1730#665176.isOrderUnit, lambda x_1730#665176, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#663042), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#662860, orderQuantityBaseUom, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#663042, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#663055, lambdafunction((lambda x_1732#665177.isPreferred AND (((quantityAfterProdPlantOptimization#662860 * cast(lambda x_1732#665177.denominator as double)) % cast(lambda x_1732#665177.numerator as double)) = 0.0)), lambda x_1732#665177, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#662860 * cast(lambda x_1733#665193.denominator as double)) / cast(lambda x_1733#665193.numerator as double)), uom, lambda x_1733#665193.uom, uomUuid, lambda x_1733#665193.uomUuid), lambda x_1733#665193, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#662860 * (cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1731#665178.isOrderUnit, lambda x_1731#665178, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1731#665179.isOrderUnit, lambda x_1731#665179, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#662860)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#663055, lambdafunction((lambda x_1732#665180.isPreferred AND (((quantityAfterProdPlantOptimization#662860 * cast(lambda x_1732#665180.denominator as double)) % cast(lambda x_1732#665180.numerator as double)) = 0.0)), lambda x_1732#665180, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#662860 * cast(lambda x_1733#665194.denominator as double)) / cast(lambda x_1733#665194.numerator as double)), uom, lambda x_1733#665194.uom, uomUuid, lambda x_1733#665194.uomUuid), lambda x_1733#665194, false))).uom, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1731#665181.isOrderUnit, lambda x_1731#665181, false)), 1, None, false).uom, orderQuantityBaseUom#663041)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#663055, lambdafunction((lambda x_1732#665182.isPreferred AND (((quantityAfterProdPlantOptimization#662860 * cast(lambda x_1732#665182.denominator as double)) % cast(lambda x_1732#665182.numerator as double)) = 0.0)), lambda x_1732#665182, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#662860 * cast(lambda x_1733#665195.denominator as double)) / cast(lambda x_1733#665195.numerator as double)), uom, lambda x_1733#665195.uom, uomUuid, lambda x_1733#665195.uomUuid), lambda x_1733#665195, false))).uomUuid, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1731#665183.isOrderUnit, lambda x_1731#665183, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#663042)), serviceLevel, coalesce(filter(element_at(quantityKpis#664414, quantityAfterProdPlantOptimization#662860, None, false), lambdafunction((lambda x_1740#665184.label = ServiceLevel), lambda x_1740#665184, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#665144, coalesce(filter(prodLocSpecificKpis#664386, lambdafunction((lambda x_1743#665197.label = InitialStockQty), lambda x_1743#665197, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#665196, coalesce(filter(prodLocSpecificKpis#664386, lambdafunction((lambda x_1744#665199.label = DemandPeriodEndTimestamp), lambda x_1744#665199, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#665198]
Input [36]: [shardId#662288, quantityAfterProdPlantOptimization#662860, qty#662861, orderProposalId#663018L, originalReplenishmentRunId#663021L, supplierGroup#663028, supplier#663029, supplyingPlant#663059, productGroup#663060, product#663031, plant#663032, subrange#663030, orderDateTime#663036, deliveryDateTime#663037, availabilityDateTime#663038, nextAvailabilityDateTime#663039, logisticUnits#663055, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, splitIndicator#663023L, netPriceAmount#663046, netPriceCurrencyCode#663047, netPriceQuantity#663043, netPriceQuantityUom#663044, netPriceQuantityUomUuid#663045, sourceOfSupplyUuid#663027, minimumOrderQuantity#663049, orderProposalItemId#663019, orderProposalItemGroupId#663020, optimizationGroups#663056, measurements#663048, previousOrderProposal#663024L, prodLocSpecificKpis#664386, channelStreamSpecificKpis#664401, quantityKpis#664414, constraintStructArray#665067]
(56) Project
Output [21]: [shardId#662288, qty#662861, orderProposalId#663018L, originalReplenishmentRunId#663021L, supplierGroup#663028, supplier#663029, supplyingPlant#663059, productGroup#663060, product#663031, plant#663032, subrange#663030, orderDateTime#663036, deliveryDateTime#663037, logisticUnits#663055, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, splitIndicator#663023L, orderProposalItemId#663019, orderProposalItemGroupId#663020, previousOrderProposal#663024L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#663029, supplyingPlant, supplyingPlant#663059, productGroup, productGroup#663060, product, product#663031, plant, plant#663032, supplierSubRange, subrange#663030, sourceOfSupplyUuid, sourceOfSupplyUuid#663027, deliveryDateTime, deliveryDateTime#663037, unitPrice, netPriceAmount#663046, unitPriceCurrency, netPriceCurrencyCode#663047, unitPriceQuantity, ... 37 more fields) AS parentItem#665278]
Input [37]: [shardId#662288, qty#662861, orderProposalId#663018L, originalReplenishmentRunId#663021L, supplierGroup#663028, supplier#663029, supplyingPlant#663059, productGroup#663060, product#663031, plant#663032, subrange#663030, orderDateTime#663036, deliveryDateTime#663037, availabilityDateTime#663038, nextAvailabilityDateTime#663039, logisticUnits#663055, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, splitIndicator#663023L, netPriceAmount#663046, netPriceCurrencyCode#663047, netPriceQuantity#663043, netPriceQuantityUom#663044, netPriceQuantityUomUuid#663045, sourceOfSupplyUuid#663027, orderProposalItemId#663019, orderProposalItemGroupId#663020, optimizationGroups#663056, measurements#663048, previousOrderProposal#663024L, prodLocSpecificKpis#664386, channelStreamSpecificKpis#664401, quantityKpis#664414, constraintBenchmark#665073, calculationAnalysis#665144, inventoryDateTime#665196, demandPeriodEndDateTime#665198]
(57) Project
Output [12]: [shardId#662288, orderProposalId#663018L, originalReplenishmentRunId#663021L, supplierGroup#663028, supplier#663029, supplyingPlant#663059, orderDateTime#663036, splitIndicator#663023L, orderProposalItemGroupId#663020, previousOrderProposal#663024L, parentItem#665278, struct(itemId, orderProposalItemId#663019, supplier, supplier#663029, supplyingPlant, supplyingPlant#663059, productGroup, productGroup#663060, product, product#663031, plant, plant#663032, supplierSubRange, subrange#663030, deliveryDateTime, deliveryDateTime#663037, orderQuantity, coalesce((qty#662861 * (cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1768#665312.isOrderUnit, lambda x_1768#665312, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1768#665313.isOrderUnit, lambda x_1768#665313, false)), 1, None, false).numerator as double))), qty#662861), orderQuantityUom, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1768#665314.isOrderUnit, lambda x_1768#665314, false)), 1, None, false).uom, orderQuantityBaseUom#663041), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#663055, lambdafunction(lambda x_1768#665315.isOrderUnit, lambda x_1768#665315, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#663042), orderQuantityInBaseUnit, qty#662861, orderQuantityBaseUom, ... 13 more fields) AS item#665309]
Input [21]: [shardId#662288, qty#662861, orderProposalId#663018L, originalReplenishmentRunId#663021L, supplierGroup#663028, supplier#663029, supplyingPlant#663059, productGroup#663060, product#663031, plant#663032, subrange#663030, orderDateTime#663036, deliveryDateTime#663037, logisticUnits#663055, orderQuantityBaseUom#663041, orderQuantityBaseUomUuid#663042, splitIndicator#663023L, orderProposalItemId#663019, orderProposalItemGroupId#663020, previousOrderProposal#663024L, parentItem#665278]
(58) ObjectHashAggregate
Input [12]: [shardId#662288, orderProposalId#663018L, originalReplenishmentRunId#663021L, supplierGroup#663028, supplier#663029, supplyingPlant#663059, orderDateTime#663036, splitIndicator#663023L, orderProposalItemGroupId#663020, previousOrderProposal#663024L, parentItem#665278, item#665309]
Keys [4]: [shardId#662288, orderProposalId#663018L, splitIndicator#663023L, orderProposalItemGroupId#663020]
Functions [8]: [partial_max(originalReplenishmentRunId#663021L), partial_max(supplierGroup#663028), partial_max(supplier#663029), partial_max(supplyingPlant#663059), partial_max(orderDateTime#663036), partial_collect_list(parentItem#665278, 0, 0), partial_collect_set(previousOrderProposal#663024L, 0, 0), partial_collect_list(item#665309, 0, 0)]
Aggregate Attributes [8]: [max#666580L, max#666581, max#666582, max#666583, max#666584, buf#666585, buf#666586, buf#666587]
Results [12]: [shardId#662288, orderProposalId#663018L, splitIndicator#663023L, orderProposalItemGroupId#663020, max#666588L, max#666589, max#666590, max#666591, max#666592, buf#666593, buf#666594, buf#666595]
(59) Exchange
Input [12]: [shardId#662288, orderProposalId#663018L, splitIndicator#663023L, orderProposalItemGroupId#663020, max#666588L, max#666589, max#666590, max#666591, max#666592, buf#666593, buf#666594, buf#666595]
Arguments: hashpartitioning(shardId#662288, orderProposalId#663018L, splitIndicator#663023L, orderProposalItemGroupId#663020, 20), ENSURE_REQUIREMENTS, [plan_id=273038]
(60) ObjectHashAggregate
Input [12]: [shardId#662288, orderProposalId#663018L, splitIndicator#663023L, orderProposalItemGroupId#663020, max#666588L, max#666589, max#666590, max#666591, max#666592, buf#666593, buf#666594, buf#666595]
Keys [4]: [shardId#662288, orderProposalId#663018L, splitIndicator#663023L, orderProposalItemGroupId#663020]
Functions [8]: [max(originalReplenishmentRunId#663021L), max(supplierGroup#663028), max(supplier#663029), max(supplyingPlant#663059), max(orderDateTime#663036), collect_list(parentItem#665278, 0, 0), collect_set(previousOrderProposal#663024L, 0, 0), collect_list(item#665309, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#663021L)#665378L, max(supplierGroup#663028)#665379, max(supplier#663029)#665380, max(supplyingPlant#663059)#665381, max(orderDateTime#663036)#665382, collect_list(parentItem#665278, 0, 0)#665383, collect_set(previousOrderProposal#663024L, 0, 0)#665385, collect_list(item#665309, 0, 0)#665384]
Results [10]: [shardId#662288, orderProposalId#663018L, max(originalReplenishmentRunId#663021L)#665378L AS originalReplenishmentRunId#665326L, max(supplierGroup#663028)#665379 AS supplierGroup#665327, max(supplier#663029)#665380 AS supplier#665328, max(supplyingPlant#663059)#665381 AS supplyingPlant#665329, max(orderDateTime#663036)#665382 AS orderDateTime#665330, collect_list(parentItem#665278, 0, 0)#665383 AS parentItems#665331, collect_set(previousOrderProposal#663024L, 0, 0)#665385 AS previousOrderProposals#665333, struct(itemGroupId, coalesce(orderProposalItemGroupId#663020, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#665309, 0, 0)#665384) AS itemGroup#665387]
(61) ObjectHashAggregate
Input [10]: [shardId#662288, orderProposalId#663018L, originalReplenishmentRunId#665326L, supplierGroup#665327, supplier#665328, supplyingPlant#665329, orderDateTime#665330, parentItems#665331, previousOrderProposals#665333, itemGroup#665387]
Keys [2]: [shardId#662288, orderProposalId#663018L]
Functions [8]: [partial_max(originalReplenishmentRunId#665326L), partial_max(supplierGroup#665327), partial_max(supplier#665328), partial_max(supplyingPlant#665329), partial_max(orderDateTime#665330), partial_collect_list(itemGroup#665387, 0, 0), partial_collect_list(parentItems#665331, 0, 0), partial_collect_set(previousOrderProposals#665333, 0, 0)]
Aggregate Attributes [8]: [max#666564L, max#666565, max#666566, max#666567, max#666568, buf#666569, buf#666570, buf#666571]
Results [10]: [shardId#662288, orderProposalId#663018L, max#666572L, max#666573, max#666574, max#666575, max#666576, buf#666577, buf#666578, buf#666579]
(62) Exchange
Input [10]: [shardId#662288, orderProposalId#663018L, max#666572L, max#666573, max#666574, max#666575, max#666576, buf#666577, buf#666578, buf#666579]
Arguments: hashpartitioning(shardId#662288, orderProposalId#663018L, 20), ENSURE_REQUIREMENTS, [plan_id=273041]
(63) ObjectHashAggregate
Input [10]: [shardId#662288, orderProposalId#663018L, max#666572L, max#666573, max#666574, max#666575, max#666576, buf#666577, buf#666578, buf#666579]
Keys [2]: [shardId#662288, orderProposalId#663018L]
Functions [8]: [max(originalReplenishmentRunId#665326L), max(supplierGroup#665327), max(supplier#665328), max(supplyingPlant#665329), max(orderDateTime#665330), collect_list(itemGroup#665387, 0, 0), collect_list(parentItems#665331, 0, 0), collect_set(previousOrderProposals#665333, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#665326L)#665409L, max(supplierGroup#665327)#665410, max(supplier#665328)#665411, max(supplyingPlant#665329)#665412, max(orderDateTime#665330)#665413, collect_list(itemGroup#665387, 0, 0)#665414, collect_list(parentItems#665331, 0, 0)#665415, collect_set(previousOrderProposals#665333, 0, 0)#665416]
Results [10]: [shardId#662288, orderProposalId#663018L, max(originalReplenishmentRunId#665326L)#665409L AS originalReplenishmentRunId#665388L, max(supplierGroup#665327)#665410 AS supplierGroup#665389, max(supplier#665328)#665411 AS supplier#665390, max(supplyingPlant#665329)#665412 AS supplyingPlant#665391, max(orderDateTime#665330)#665413 AS orderDateTime#665392, collect_list(itemGroup#665387, 0, 0)#665414 AS itemGroups#665393, flatten(collect_list(parentItems#665331, 0, 0)#665415) AS parentItems#665394, flatten(collect_set(previousOrderProposals#665333, 0, 0)#665416) AS previousOrderProposals#665395]
(64) Project
Output [2]: [shardId#662288, struct(orderProposalId, orderProposalId#663018L, originalReplenishmentRunId, originalReplenishmentRunId#665388L, supplierGroup, supplierGroup#665389, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#665389) THEN supplier#665390 END, supplyingPlant, supplyingPlant#665391, orderDateTime, orderDateTime#665392, itemGroups, itemGroups#665393, previousOrderProposals, array_distinct(previousOrderProposals#665395), parentItems, parentItems#665394) AS orderProposal#665420]
Input [10]: [shardId#662288, orderProposalId#663018L, originalReplenishmentRunId#665388L, supplierGroup#665389, supplier#665390, supplyingPlant#665391, orderDateTime#665392, itemGroups#665393, parentItems#665394, previousOrderProposals#665395]
(65) Project
Output [11]: [shardId#662288, orderProposal#665420.orderProposalId AS _extract_orderProposalId#666196L, orderProposal#665420.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#666197L, orderProposal#665420.supplierGroup AS _extract_supplierGroup#666198, orderProposal#665420.supplier AS _extract_supplier#666199, orderProposal#665420.supplyingPlant AS _extract_supplyingPlant#666200, orderProposal#665420.orderDateTime AS _extract_orderDateTime#666201, orderProposal#665420.itemGroups AS _extract_itemGroups#666202, orderProposal#665420.previousOrderProposals AS _extract_previousOrderProposals#666203, orderProposal#665420.parentItems AS _extract_parentItems#666204, orderProposal#665420.orderProposalId AS _extract_orderProposalId#666205L]
Input [2]: [shardId#662288, orderProposal#665420]
(66) Exchange
Input [11]: [shardId#662288, _extract_orderProposalId#666196L, _extract_originalReplenishmentRunId#666197L, _extract_supplierGroup#666198, _extract_supplier#666199, _extract_supplyingPlant#666200, _extract_orderDateTime#666201, _extract_itemGroups#666202, _extract_previousOrderProposals#666203, _extract_parentItems#666204, _extract_orderProposalId#666205L]
Arguments: hashpartitioning(coalesce(shardId#662288, ), isnull(shardId#662288), coalesce(_extract_orderProposalId#666205L, 0), isnull(_extract_orderProposalId#666205L), 20), ENSURE_REQUIREMENTS, [plan_id=273045]
(67) Sort
Input [11]: [shardId#662288, _extract_orderProposalId#666196L, _extract_originalReplenishmentRunId#666197L, _extract_supplierGroup#666198, _extract_supplier#666199, _extract_supplyingPlant#666200, _extract_orderDateTime#666201, _extract_itemGroups#666202, _extract_previousOrderProposals#666203, _extract_parentItems#666204, _extract_orderProposalId#666205L]
Arguments: [coalesce(shardId#662288, ) ASC NULLS FIRST, isnull(shardId#662288) ASC NULLS FIRST, coalesce(_extract_orderProposalId#666205L, 0) ASC NULLS FIRST, isnull(_extract_orderProposalId#666205L) ASC NULLS FIRST], false, 0
(68) InMemoryTableScan
Output [3]: [shardId#665443, orderProposalId#665444L, optimizationGroups#665446]
Arguments: [shardId#665443, orderProposalId#665444L, optimizationGroups#665446], [isnotnull(orderProposalId#665444L)]
(69) InMemoryRelation
Arguments: [shardId#665443, orderProposalId#665444L, items#665445, optimizationGroups#665446, isOptimal#665447, optimizationInsights#665449], StorageLevel(disk, memory, 2 replicas)
(70) Filter [codegen id : 2]
Input [3]: [shardId#665443, orderProposalId#665444L, optimizationGroups#665446]
Condition : isnotnull(orderProposalId#665444L)
(71) BroadcastExchange
Input [3]: [shardId#665443, orderProposalId#665444L, optimizationGroups#665446]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=273050]
(72) InMemoryTableScan
Output [2]: [items#665062, shardId#665060]
Arguments: [items#665062, shardId#665060], [(size(items#665062.worklistShardItemId, true) > 0), isnotnull(items#665062.worklistShardItemId), (shardId#665060 = 0_1_10000002107)]
(73) InMemoryRelation
Arguments: [shardId#665060, orderProposalId#665061L, items#665062, optimizationGroups#665063, isOptimal#665064, optimizationInsights#665066], StorageLevel(disk, memory, 2 replicas)
(74) Filter [codegen id : 3]
Input [2]: [items#665062, shardId#665060]
Condition : (((size(items#665062.worklistShardItemId, true) > 0) AND isnotnull(items#665062.worklistShardItemId)) AND (shardId#665060 = 0_1_10000002107))
(75) Project [codegen id : 3]
Output [1]: [items#665062.worklistShardItemId AS _extract_worklistShardItemId#666091]
Input [2]: [items#665062, shardId#665060]
(76) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#666091]
Arguments: explode(_extract_worklistShardItemId#666091), false, [item#665450L]
(77) Project [codegen id : 3]
Output [1]: [item#665450L AS worklistShardItemId#665451L]
Input [1]: [item#665450L]
(78) BroadcastExchange
Input [1]: [worklistShardItemId#665451L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=273058]
(79) Scan parquet
Output [5]: [orderProposalId#665499L, isFallbackOrderOnly#665516, worklistShardItemId#665522L, shardId#665543, sequenceId#665521]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/internal/prod-plant-snapshot/10000002107]
PartitionFilters: [isnotnull(shardId#665543), isnotnull(sequenceId#665521), (shardId#665543 = 0_1_10000002107), (sequenceId#665521 = 4)]
PushedFilters: [IsNotNull(worklistShardItemId), Not(EqualNullSafe(isFallbackOrderOnly,true)), IsNotNull(orderProposalId)]
ReadSchema: struct<orderProposalId:bigint,isFallbackOrderOnly:boolean,worklistShardItemId:bigint>
(80) ColumnarToRow [codegen id : 4]
Input [5]: [orderProposalId#665499L, isFallbackOrderOnly#665516, worklistShardItemId#665522L, shardId#665543, sequenceId#665521]
(81) Filter [codegen id : 4]
Input [5]: [orderProposalId#665499L, isFallbackOrderOnly#665516, worklistShardItemId#665522L, shardId#665543, sequenceId#665521]
Condition : ((isnotnull(worklistShardItemId#665522L) AND NOT (isFallbackOrderOnly#665516 <=> true)) AND isnotnull(orderProposalId#665499L))
(82) Project [codegen id : 4]
Output [2]: [orderProposalId#665499L, worklistShardItemId#665522L]
Input [5]: [orderProposalId#665499L, isFallbackOrderOnly#665516, worklistShardItemId#665522L, shardId#665543, sequenceId#665521]
(83) Exchange
Input [2]: [orderProposalId#665499L, worklistShardItemId#665522L]
Arguments: hashpartitioning(worklistShardItemId#665522L, 20), REPARTITION_BY_NUM, [plan_id=273065]
(84) Project
Output [2]: [worklistShardItemId#665522L, orderProposalId#665499L]
Input [2]: [orderProposalId#665499L, worklistShardItemId#665522L]
(85) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#665451L]
Right keys [1]: [worklistShardItemId#665522L]
Join type: Inner
Join condition: None
(86) Project [codegen id : 5]
Output [1]: [orderProposalId#665499L]
Input [3]: [worklistShardItemId#665451L, worklistShardItemId#665522L, orderProposalId#665499L]
(87) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#665499L]
Keys [1]: [orderProposalId#665499L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#665499L]
(88) Exchange
Input [1]: [orderProposalId#665499L]
Arguments: hashpartitioning(orderProposalId#665499L, 20), ENSURE_REQUIREMENTS, [plan_id=273072]
(89) HashAggregate
Input [1]: [orderProposalId#665499L]
Keys [1]: [orderProposalId#665499L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#665499L]
(90) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#665444L]
Right keys [1]: [orderProposalId#665499L]
Join type: Inner
Join condition: None
(91) Project
Output [3]: [orderProposalId#665444L, shardId#665443, coalesce(transform(optimizationGroups#665446, lambdafunction(struct(optGroupId, lambda x_1772#665441.optGroupId, minOrderProfile, lambda x_1772#665441.minOrderProfile, assignmentDetails, lambda x_1772#665441.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_1772#665441.minOrderGoal.dimensionType, unit, lambda x_1772#665441.minOrderGoal.unit, unitUuid, lambda x_1772#665441.minOrderGoal.unitUuid, goalValue, lambda x_1772#665441.minOrderGoal.minOrderValue, calcValue, lambda x_1772#665441.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_1772#665441, false)), []) AS optimizationGroups#665440]
Input [4]: [shardId#665443, orderProposalId#665444L, optimizationGroups#665446, orderProposalId#665499L]
(92) Exchange
Input [3]: [orderProposalId#665444L, shardId#665443, optimizationGroups#665440]
Arguments: hashpartitioning(coalesce(shardId#665443, ), isnull(shardId#665443), coalesce(orderProposalId#665444L, 0), isnull(orderProposalId#665444L), 20), ENSURE_REQUIREMENTS, [plan_id=273078]
(93) Sort [codegen id : 7]
Input [3]: [orderProposalId#665444L, shardId#665443, optimizationGroups#665440]
Arguments: [coalesce(shardId#665443, ) ASC NULLS FIRST, isnull(shardId#665443) ASC NULLS FIRST, coalesce(orderProposalId#665444L, 0) ASC NULLS FIRST, isnull(orderProposalId#665444L) ASC NULLS FIRST], false, 0
(94) SortMergeJoin
Left keys [4]: [coalesce(shardId#662288, ), isnull(shardId#662288), coalesce(_extract_orderProposalId#666205L, 0), isnull(_extract_orderProposalId#666205L)]
Right keys [4]: [coalesce(shardId#665443, ), isnull(shardId#665443), coalesce(orderProposalId#665444L, 0), isnull(orderProposalId#665444L)]
Join type: LeftOuter
Join condition: None
(95) Project
Output [2]: [shardId#662288, named_struct(orderProposalId, _extract_orderProposalId#666205L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#666197L, supplierGroup, _extract_supplierGroup#666198, optimizationGroups, coalesce(optimizationGroups#665440, []), supplier, _extract_supplier#666199, supplyingPlant, _extract_supplyingPlant#666200, orderDateTime, _extract_orderDateTime#666201, itemGroups, _extract_itemGroups#666202, previousOrderProposals, _extract_previousOrderProposals#666203, parentItems, _extract_parentItems#666204) AS orderProposal#665547]
Input [14]: [shardId#662288, _extract_orderProposalId#666196L, _extract_originalReplenishmentRunId#666197L, _extract_supplierGroup#666198, _extract_supplier#666199, _extract_supplyingPlant#666200, _extract_orderDateTime#666201, _extract_itemGroups#666202, _extract_previousOrderProposals#666203, _extract_parentItems#666204, _extract_orderProposalId#666205L, orderProposalId#665444L, shardId#665443, optimizationGroups#665440]
(96) Project
Output [3]: [shardId#662288, orderProposal#665547, CASE WHEN (size(orderProposal#665547.parentItems, true) > 2000) THEN xxhash64(orderProposal#665547.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#665547.orderProposalId as decimal(20,0)), 0), 42) END AS resultSeparationId#667309L]
Input [2]: [orderProposal#665547, shardId#662288]
(97) ObjectHashAggregate
Input [3]: [shardId#662288, orderProposal#665547, resultSeparationId#667309L]
Keys [2]: [shardId#662288, resultSeparationId#667309L]
Functions [1]: [partial_collect_list(orderProposal#665547, 0, 0)]
Aggregate Attributes [1]: [buf#667348]
Results [3]: [shardId#662288, resultSeparationId#667309L, buf#667349]
(98) Exchange
Input [3]: [shardId#662288, resultSeparationId#667309L, buf#667349]
Arguments: hashpartitioning(shardId#662288, resultSeparationId#667309L, 20), ENSURE_REQUIREMENTS, [plan_id=273225]
(99) ObjectHashAggregate
Input [3]: [shardId#662288, resultSeparationId#667309L, buf#667349]
Keys [2]: [shardId#662288, resultSeparationId#667309L]
Functions [1]: [collect_list(orderProposal#665547, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#665547, 0, 0)#667317]
Results [3]: [shardId#662288, resultSeparationId#667309L, collect_list(orderProposal#665547, 0, 0)#667317 AS orderProposals#667313]
(100) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#667426L]
Results [1]: [count#667427L]
(101) Exchange
Input [1]: [count#667427L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=273249]
(102) HashAggregate [codegen id : 2]
Input [1]: [count#667427L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#667380L]
Results [1]: [count(1)#667380L AS count#667376L]