== Physical Plan ==
* HashAggregate (107)
+- * HashAggregate (106)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- Project (105)
+- Exchange (104)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- ObjectHashAggregate (103)
+- Exchange (102)
+- ObjectHashAggregate (101)
+- Project (100)
+- InMemoryTableScan (5)
+- InMemoryRelation (6)
+- Project (99)
+- SortMergeJoin LeftOuter (98)
:- Sort (71)
: +- Exchange (70)
: +- Project (69)
: +- Project (68)
: +- ObjectHashAggregate (67)
: +- Exchange (66)
: +- ObjectHashAggregate (65)
: +- ObjectHashAggregate (64)
: +- Exchange (63)
: +- ObjectHashAggregate (62)
: +- Project (61)
: +- Project (60)
: +- Project (59)
: +- * Project (58)
: +- * Filter (57)
: +- InMemoryTableScan (7)
: +- InMemoryRelation (8)
: +- * Project (56)
: +- * SortMergeJoin LeftOuter (55)
: :- * Project (47)
: : +- * SortMergeJoin LeftOuter (46)
: : :- * Project (38)
: : : +- * SortMergeJoin LeftOuter (37)
: : : :- * Sort (31)
: : : : +- Exchange (30)
: : : : +- * Project (29)
: : : : +- * SortMergeJoin LeftOuter (28)
: : : : :- * Sort (20)
: : : : : +- Exchange (19)
: : : : : +- * Project (18)
: : : : : +- * Generate (17)
: : : : : +- * Filter (16)
: : : : : +- InMemoryTableScan (9)
: : : : : +- InMemoryRelation (10)
: : : : : +- * Filter (15)
: : : : : +- InMemoryTableScan (11)
: : : : : +- InMemoryRelation (12)
: : : : : +- * Filter (14)
: : : : : +- * Scan ExistingRDD (13)
: : : : +- * Sort (27)
: : : : +- * Project (26)
: : : : +- Exchange (25)
: : : : +- * Project (24)
: : : : +- * Filter (23)
: : : : +- * ColumnarToRow (22)
: : : : +- Scan parquet (21)
: : : +- * Sort (36)
: : : +- Exchange (35)
: : : +- * Project (34)
: : : +- * Filter (33)
: : : +- * Scan ExistingRDD (32)
: : +- * Sort (45)
: : +- ObjectHashAggregate (44)
: : +- Exchange (43)
: : +- ObjectHashAggregate (42)
: : +- * Project (41)
: : +- * Filter (40)
: : +- * Scan ExistingRDD (39)
: +- * Sort (54)
: +- ObjectHashAggregate (53)
: +- Exchange (52)
: +- ObjectHashAggregate (51)
: +- * Project (50)
: +- * Filter (49)
: +- * Scan ExistingRDD (48)
+- * Sort (97)
+- Exchange (96)
+- Project (95)
+- * BroadcastHashJoin Inner BuildLeft (94)
:- BroadcastExchange (75)
: +- * Filter (74)
: +- InMemoryTableScan (72)
: +- InMemoryRelation (73)
: +- * Filter (15)
: +- InMemoryTableScan (11)
: +- InMemoryRelation (12)
: +- * Filter (14)
: +- * Scan ExistingRDD (13)
+- * HashAggregate (93)
+- Exchange (92)
+- * HashAggregate (91)
+- * Project (90)
+- * BroadcastHashJoin Inner BuildLeft (89)
:- BroadcastExchange (82)
: +- * Project (81)
: +- * Generate (80)
: +- * Project (79)
: +- * Filter (78)
: +- InMemoryTableScan (76)
: +- InMemoryRelation (77)
: +- * Filter (15)
: +- InMemoryTableScan (11)
: +- InMemoryRelation (12)
: +- * Filter (14)
: +- * Scan ExistingRDD (13)
+- * Project (88)
+- Exchange (87)
+- * Project (86)
+- * Filter (85)
+- * ColumnarToRow (84)
+- Scan parquet (83)
(1) InMemoryTableScan
Output [1]: [shardId#584004]
Arguments: [shardId#584004]
(2) InMemoryRelation
Arguments: [shardId#584004, orderProposals#590519], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [3]: [shardId#584004, resultSeparationId#590515L, orderProposals#590519]
Arguments: [shardId#584004, resultSeparationId#590515L, orderProposals#590519]
(4) InMemoryRelation
Arguments: [shardId#584004, resultSeparationId#590515L, orderProposals#590519], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [2]: [orderProposal#587489, shardId#584004]
Arguments: [orderProposal#587489, shardId#584004]
(6) InMemoryRelation
Arguments: [shardId#584004, orderProposal#587489], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [39]: [availabilityDateTime#584694, channelStreamSpecificKpis#586406, constraintLabels#584706, constraintOperators#584707, constraintValues#584709, deliveryDateTime#584693, isFallbackOrderOnly#584696, logisticUnits#584711, measurements#584704, minimumOrderQuantity#584705, netPriceAmount#584702, netPriceCurrencyCode#584703, netPriceQuantity#584699, netPriceQuantityUom#584700, netPriceQuantityUomUuid#584701, nextAvailabilityDateTime#584695, optimizationGroups#584712, orderDateTime#584692, orderProposalId#584674L, orderProposalItemGroupId#584676, orderProposalItemId#584675, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, originalReplenishmentRunId#584677L, plant#584688, previousOrderProposal#584680L, prodLocSpecificKpis#586391, product#584687, productGroup#584716, qty#584518, quantityAfterProdPlantOptimization#584517, quantityKpis#586419, shardId#584004, sourceOfSupplyUuid#584683, splitIndicator#584679L, subrange#584686, supplier#584685, supplierGroup#584684, supplyingPlant#584715]
Arguments: [availabilityDateTime#584694, channelStreamSpecificKpis#586406, constraintLabels#584706, constraintOperators#584707, constraintValues#584709, deliveryDateTime#584693, isFallbackOrderOnly#584696, logisticUnits#584711, measurements#584704, minimumOrderQuantity#584705, netPriceAmount#584702, netPriceCurrencyCode#584703, netPriceQuantity#584699, netPriceQuantityUom#584700, netPriceQuantityUomUuid#584701, nextAvailabilityDateTime#584695, optimizationGroups#584712, orderDateTime#584692, orderProposalId#584674L, orderProposalItemGroupId#584676, orderProposalItemId#584675, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, originalReplenishmentRunId#584677L, plant#584688, ... 14 more fields], [NOT (isFallbackOrderOnly#584696 <=> true)]
(8) InMemoryRelation
Arguments: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584674L, originalReplenishmentRunId#584677L, supplierGroup#584684, supplier#584685, supplyingPlant#584715, productGroup#584716, product#584687, plant#584688, subrange#584686, orderDateTime#584692, deliveryDateTime#584693, availabilityDateTime#584694, nextAvailabilityDateTime#584695, constraintValues#584709, constraintOperators#584707, constraintLabels#584706, logisticUnits#584711, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, splitIndicator#584679L, netPriceAmount#584702, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [2]: [shardId#584004, items#584006]
Arguments: [shardId#584004, items#584006], [(size(items#584006, true) > 0), isnotnull(items#584006)]
(10) InMemoryRelation
Arguments: [shardId#584004, orderProposalId#584005L, items#584006, optimizationGroups#584007, isOptimal#584008, optimizationInsights#584010], StorageLevel(disk, memory, 2 replicas)
(11) InMemoryTableScan
Output [6]: [shardId#584004, orderProposalId#584005L, items#584006, optimizationGroups#584007, isOptimal#584008, optimizationInsights#584010]
Arguments: [shardId#584004, orderProposalId#584005L, items#584006, optimizationGroups#584007, isOptimal#584008, optimizationInsights#584010], [isnotnull(shardId#584004), (shardId#584004 = 0_1_10000002106)]
(12) InMemoryRelation
Arguments: [shardId#584004, orderProposalId#584005L, items#584006, optimizationGroups#584007, isOptimal#584008, lastModified#584009, optimizationInsights#584010], StorageLevel(disk, memory, 2 replicas)
(13) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#584004, orderProposalId#584005L, items#584006, optimizationGroups#584007, isOptimal#584008, lastModified#584009, optimizationInsights#584010]
Arguments: [shardId#584004, orderProposalId#584005L, items#584006, optimizationGroups#584007, isOptimal#584008, lastModified#584009, optimizationInsights#584010], MapPartitionsRDD[28047] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(14) Filter [codegen id : 1]
Input [7]: [shardId#584004, orderProposalId#584005L, items#584006, optimizationGroups#584007, isOptimal#584008, lastModified#584009, optimizationInsights#584010]
Condition : (isnotnull(shardId#584004) AND (shardId#584004 = 0_1_10000002106))
(15) Filter [codegen id : 1]
Input [6]: [shardId#584004, orderProposalId#584005L, items#584006, optimizationGroups#584007, isOptimal#584008, optimizationInsights#584010]
Condition : (isnotnull(shardId#584004) AND (shardId#584004 = 0_1_10000002106))
(16) Filter [codegen id : 1]
Input [2]: [shardId#584004, items#584006]
Condition : ((size(items#584006, true) > 0) AND isnotnull(items#584006))
(17) Generate [codegen id : 1]
Input [2]: [shardId#584004, items#584006]
Arguments: explode(items#584006), [shardId#584004], false, [item#584515]
(18) Project [codegen id : 1]
Output [4]: [shardId#584004, item#584515.worklistShardItemId AS worklistShardItemId#584516L, item#584515.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#584517, item#584515.qty AS qty#584518]
Input [2]: [shardId#584004, item#584515]
(19) Exchange
Input [4]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518]
Arguments: hashpartitioning(worklistShardItemId#584516L, 20), ENSURE_REQUIREMENTS, [plan_id=248634]
(20) Sort [codegen id : 2]
Input [4]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518]
Arguments: [worklistShardItemId#584516L ASC NULLS FIRST], false, 0
(21) Scan parquet
Output [38]: [orderProposalId#584717L, orderProposalItemId#584718, supplierGroup#584719, supplier#584720, plant#584721, deliveryDateTime#584722, subrange#584723, supplyingPlant#584724, productGroup#584725, product#584726, orderDateTime#584727, availabilityDateTime#584728, nextAvailabilityDateTime#584729, sourceOfSupplyUuid#584731, isFallbackOrderOnly#584734, splitIndicator#584736L, previousOrderProposal#584737L, worklistShardItemId#584740L, orderProposalItemGroupId#584741, externalProductId#584742, externalPlantId#584743, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, measurements#584758, originalReplenishmentRunId#584759L, optimizationGroups#584760, shardId#584761, sequenceId#584739]
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/10000002106]
PartitionFilters: [isnotnull(shardId#584761), isnotnull(sequenceId#584739), (shardId#584761 = 0_1_10000002106), (sequenceId#584739 = 1)]
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>>
(22) ColumnarToRow [codegen id : 3]
Input [38]: [orderProposalId#584717L, orderProposalItemId#584718, supplierGroup#584719, supplier#584720, plant#584721, deliveryDateTime#584722, subrange#584723, supplyingPlant#584724, productGroup#584725, product#584726, orderDateTime#584727, availabilityDateTime#584728, nextAvailabilityDateTime#584729, sourceOfSupplyUuid#584731, isFallbackOrderOnly#584734, splitIndicator#584736L, previousOrderProposal#584737L, worklistShardItemId#584740L, orderProposalItemGroupId#584741, externalProductId#584742, externalPlantId#584743, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, measurements#584758, originalReplenishmentRunId#584759L, optimizationGroups#584760, shardId#584761, sequenceId#584739]
(23) Filter [codegen id : 3]
Input [38]: [orderProposalId#584717L, orderProposalItemId#584718, supplierGroup#584719, supplier#584720, plant#584721, deliveryDateTime#584722, subrange#584723, supplyingPlant#584724, productGroup#584725, product#584726, orderDateTime#584727, availabilityDateTime#584728, nextAvailabilityDateTime#584729, sourceOfSupplyUuid#584731, isFallbackOrderOnly#584734, splitIndicator#584736L, previousOrderProposal#584737L, worklistShardItemId#584740L, orderProposalItemGroupId#584741, externalProductId#584742, externalPlantId#584743, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, measurements#584758, originalReplenishmentRunId#584759L, optimizationGroups#584760, shardId#584761, sequenceId#584739]
Condition : isnotnull(worklistShardItemId#584740L)
(24) Project [codegen id : 3]
Output [36]: [orderProposalId#584717L, orderProposalItemId#584718, supplierGroup#584719, supplier#584720, plant#584721, deliveryDateTime#584722, subrange#584723, supplyingPlant#584724, productGroup#584725, product#584726, orderDateTime#584727, availabilityDateTime#584728, nextAvailabilityDateTime#584729, sourceOfSupplyUuid#584731, isFallbackOrderOnly#584734, splitIndicator#584736L, previousOrderProposal#584737L, worklistShardItemId#584740L, orderProposalItemGroupId#584741, externalProductId#584742, externalPlantId#584743, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, measurements#584758, originalReplenishmentRunId#584759L, optimizationGroups#584760]
Input [38]: [orderProposalId#584717L, orderProposalItemId#584718, supplierGroup#584719, supplier#584720, plant#584721, deliveryDateTime#584722, subrange#584723, supplyingPlant#584724, productGroup#584725, product#584726, orderDateTime#584727, availabilityDateTime#584728, nextAvailabilityDateTime#584729, sourceOfSupplyUuid#584731, isFallbackOrderOnly#584734, splitIndicator#584736L, previousOrderProposal#584737L, worklistShardItemId#584740L, orderProposalItemGroupId#584741, externalProductId#584742, externalPlantId#584743, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, measurements#584758, originalReplenishmentRunId#584759L, optimizationGroups#584760, shardId#584761, sequenceId#584739]
(25) Exchange
Input [36]: [orderProposalId#584717L, orderProposalItemId#584718, supplierGroup#584719, supplier#584720, plant#584721, deliveryDateTime#584722, subrange#584723, supplyingPlant#584724, productGroup#584725, product#584726, orderDateTime#584727, availabilityDateTime#584728, nextAvailabilityDateTime#584729, sourceOfSupplyUuid#584731, isFallbackOrderOnly#584734, splitIndicator#584736L, previousOrderProposal#584737L, worklistShardItemId#584740L, orderProposalItemGroupId#584741, externalProductId#584742, externalPlantId#584743, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, measurements#584758, originalReplenishmentRunId#584759L, optimizationGroups#584760]
Arguments: hashpartitioning(worklistShardItemId#584740L, 20), REPARTITION_BY_NUM, [plan_id=248644]
(26) Project [codegen id : 4]
Output [36]: [worklistShardItemId#584740L, orderProposalId#584717L, orderProposalItemId#584718, orderProposalItemGroupId#584741, originalReplenishmentRunId#584759L, splitIndicator#584736L, previousOrderProposal#584737L, sourceOfSupplyUuid#584731, supplierGroup#584719, supplier#584720, subrange#584723, product#584726, plant#584721, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, isFallbackOrderOnly#584734, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, netPriceAmount#584753, netPriceCurrencyCode#584754, measurements#584758, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, logisticUnits#584744, optimizationGroups#584760, externalProductId#584742, externalPlantId#584743, supplyingPlant#584724, productGroup#584725]
Input [36]: [orderProposalId#584717L, orderProposalItemId#584718, supplierGroup#584719, supplier#584720, plant#584721, deliveryDateTime#584722, subrange#584723, supplyingPlant#584724, productGroup#584725, product#584726, orderDateTime#584727, availabilityDateTime#584728, nextAvailabilityDateTime#584729, sourceOfSupplyUuid#584731, isFallbackOrderOnly#584734, splitIndicator#584736L, previousOrderProposal#584737L, worklistShardItemId#584740L, orderProposalItemGroupId#584741, externalProductId#584742, externalPlantId#584743, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, measurements#584758, originalReplenishmentRunId#584759L, optimizationGroups#584760]
(27) Sort [codegen id : 4]
Input [36]: [worklistShardItemId#584740L, orderProposalId#584717L, orderProposalItemId#584718, orderProposalItemGroupId#584741, originalReplenishmentRunId#584759L, splitIndicator#584736L, previousOrderProposal#584737L, sourceOfSupplyUuid#584731, supplierGroup#584719, supplier#584720, subrange#584723, product#584726, plant#584721, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, isFallbackOrderOnly#584734, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, netPriceAmount#584753, netPriceCurrencyCode#584754, measurements#584758, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, logisticUnits#584744, optimizationGroups#584760, externalProductId#584742, externalPlantId#584743, supplyingPlant#584724, productGroup#584725]
Arguments: [worklistShardItemId#584740L ASC NULLS FIRST], false, 0
(28) SortMergeJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#584516L]
Right keys [1]: [worklistShardItemId#584740L]
Join type: LeftOuter
Join condition: (shardId#584004 = 0_1_10000002106)
(29) Project [codegen id : 5]
Output [39]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584717L, originalReplenishmentRunId#584759L, supplierGroup#584719, supplier#584720, supplyingPlant#584724, productGroup#584725, product#584726, plant#584721, subrange#584723, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, constraintValues#584750, constraintOperators#584749, constraintLabels#584748, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, splitIndicator#584736L, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, sourceOfSupplyUuid#584731, minimumOrderQuantity#584747, orderProposalItemId#584718, orderProposalItemGroupId#584741, optimizationGroups#584760, measurements#584758, externalProductId#584742, externalPlantId#584743, previousOrderProposal#584737L, isFallbackOrderOnly#584734]
Input [40]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, worklistShardItemId#584740L, orderProposalId#584717L, orderProposalItemId#584718, orderProposalItemGroupId#584741, originalReplenishmentRunId#584759L, splitIndicator#584736L, previousOrderProposal#584737L, sourceOfSupplyUuid#584731, supplierGroup#584719, supplier#584720, subrange#584723, product#584726, plant#584721, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, isFallbackOrderOnly#584734, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, netPriceAmount#584753, netPriceCurrencyCode#584754, measurements#584758, minimumOrderQuantity#584747, constraintLabels#584748, constraintOperators#584749, constraintValues#584750, logisticUnits#584744, optimizationGroups#584760, externalProductId#584742, externalPlantId#584743, supplyingPlant#584724, productGroup#584725]
(30) Exchange
Input [39]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584717L, originalReplenishmentRunId#584759L, supplierGroup#584719, supplier#584720, supplyingPlant#584724, productGroup#584725, product#584726, plant#584721, subrange#584723, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, constraintValues#584750, constraintOperators#584749, constraintLabels#584748, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, splitIndicator#584736L, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, sourceOfSupplyUuid#584731, minimumOrderQuantity#584747, orderProposalItemId#584718, orderProposalItemGroupId#584741, optimizationGroups#584760, measurements#584758, externalProductId#584742, externalPlantId#584743, previousOrderProposal#584737L, isFallbackOrderOnly#584734]
Arguments: hashpartitioning(shardId#584004, worklistShardItemId#584516L, 20), ENSURE_REQUIREMENTS, [plan_id=248653]
(31) Sort [codegen id : 6]
Input [39]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584717L, originalReplenishmentRunId#584759L, supplierGroup#584719, supplier#584720, supplyingPlant#584724, productGroup#584725, product#584726, plant#584721, subrange#584723, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, constraintValues#584750, constraintOperators#584749, constraintLabels#584748, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, splitIndicator#584736L, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, sourceOfSupplyUuid#584731, minimumOrderQuantity#584747, orderProposalItemId#584718, orderProposalItemGroupId#584741, optimizationGroups#584760, measurements#584758, externalProductId#584742, externalPlantId#584743, previousOrderProposal#584737L, isFallbackOrderOnly#584734]
Arguments: [shardId#584004 ASC NULLS FIRST, worklistShardItemId#584516L ASC NULLS FIRST], false, 0
(32) Scan ExistingRDD [codegen id : 7]
Output [6]: [shardId#586384, worklistShardItemId#586385L, qty#586386, demandChannel#586387, demandStream#586388, kpis#586389]
Arguments: [shardId#586384, worklistShardItemId#586385L, qty#586386, demandChannel#586387, demandStream#586388, kpis#586389], MapPartitionsRDD[28220] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(33) Filter [codegen id : 7]
Input [6]: [shardId#586384, worklistShardItemId#586385L, qty#586386, demandChannel#586387, demandStream#586388, kpis#586389]
Condition : (((isnull(qty#586386) AND isnull(demandChannel#586387)) AND isnull(demandStream#586388)) AND (isnotnull(shardId#586384) AND isnotnull(worklistShardItemId#586385L)))
(34) Project [codegen id : 7]
Output [3]: [shardId#586384, worklistShardItemId#586385L, coalesce(kpis#586389, []) AS prodLocSpecificKpis#586390]
Input [6]: [shardId#586384, worklistShardItemId#586385L, qty#586386, demandChannel#586387, demandStream#586388, kpis#586389]
(35) Exchange
Input [3]: [shardId#586384, worklistShardItemId#586385L, prodLocSpecificKpis#586390]
Arguments: hashpartitioning(shardId#586384, worklistShardItemId#586385L, 20), ENSURE_REQUIREMENTS, [plan_id=248659]
(36) Sort [codegen id : 8]
Input [3]: [shardId#586384, worklistShardItemId#586385L, prodLocSpecificKpis#586390]
Arguments: [shardId#586384 ASC NULLS FIRST, worklistShardItemId#586385L ASC NULLS FIRST], false, 0
(37) SortMergeJoin [codegen id : 9]
Left keys [2]: [shardId#584004, worklistShardItemId#584516L]
Right keys [2]: [shardId#586384, worklistShardItemId#586385L]
Join type: LeftOuter
Join condition: None
(38) Project [codegen id : 9]
Output [40]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584717L, originalReplenishmentRunId#584759L, supplierGroup#584719, supplier#584720, supplyingPlant#584724, productGroup#584725, product#584726, plant#584721, subrange#584723, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, constraintValues#584750, constraintOperators#584749, constraintLabels#584748, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, splitIndicator#584736L, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, sourceOfSupplyUuid#584731, minimumOrderQuantity#584747, orderProposalItemId#584718, orderProposalItemGroupId#584741, optimizationGroups#584760, measurements#584758, externalProductId#584742, externalPlantId#584743, previousOrderProposal#584737L, isFallbackOrderOnly#584734, coalesce(prodLocSpecificKpis#586390, []) AS prodLocSpecificKpis#586391]
Input [42]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584717L, originalReplenishmentRunId#584759L, supplierGroup#584719, supplier#584720, supplyingPlant#584724, productGroup#584725, product#584726, plant#584721, subrange#584723, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, constraintValues#584750, constraintOperators#584749, constraintLabels#584748, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, splitIndicator#584736L, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, sourceOfSupplyUuid#584731, minimumOrderQuantity#584747, orderProposalItemId#584718, orderProposalItemGroupId#584741, optimizationGroups#584760, measurements#584758, externalProductId#584742, externalPlantId#584743, previousOrderProposal#584737L, isFallbackOrderOnly#584734, shardId#586384, worklistShardItemId#586385L, prodLocSpecificKpis#586390]
(39) Scan ExistingRDD [codegen id : 10]
Output [6]: [shardId#586400, worklistShardItemId#586401L, qty#586402, demandChannel#586403, demandStream#586404, kpis#586405]
Arguments: [shardId#586400, worklistShardItemId#586401L, qty#586402, demandChannel#586403, demandStream#586404, kpis#586405], MapPartitionsRDD[28220] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(40) Filter [codegen id : 10]
Input [6]: [shardId#586400, worklistShardItemId#586401L, qty#586402, demandChannel#586403, demandStream#586404, kpis#586405]
Condition : ((((isnull(qty#586402) AND isnotnull(demandChannel#586403)) AND isnotnull(demandStream#586404)) AND (size(kpis#586405, true) > 0)) AND (isnotnull(shardId#586400) AND isnotnull(worklistShardItemId#586401L)))
(41) Project [codegen id : 10]
Output [5]: [shardId#586400, worklistShardItemId#586401L, demandChannel#586403, demandStream#586404, kpis#586405]
Input [6]: [shardId#586400, worklistShardItemId#586401L, qty#586402, demandChannel#586403, demandStream#586404, kpis#586405]
(42) ObjectHashAggregate
Input [5]: [shardId#586400, worklistShardItemId#586401L, demandChannel#586403, demandStream#586404, kpis#586405]
Keys [2]: [shardId#586400, worklistShardItemId#586401L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#586403, demandStream, demandStream#586404, kpis, kpis#586405), 0, 0)]
Aggregate Attributes [1]: [buf#586756]
Results [3]: [shardId#586400, worklistShardItemId#586401L, buf#586757]
(43) Exchange
Input [3]: [shardId#586400, worklistShardItemId#586401L, buf#586757]
Arguments: hashpartitioning(shardId#586400, worklistShardItemId#586401L, 20), ENSURE_REQUIREMENTS, [plan_id=248670]
(44) ObjectHashAggregate
Input [3]: [shardId#586400, worklistShardItemId#586401L, buf#586757]
Keys [2]: [shardId#586400, worklistShardItemId#586401L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#586403, demandStream, demandStream#586404, kpis, kpis#586405), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#586403, demandStream, demandStream#586404, kpis, kpis#586405), 0, 0)#586399]
Results [3]: [shardId#586400, worklistShardItemId#586401L, collect_list(struct(demandChannel, demandChannel#586403, demandStream, demandStream#586404, kpis, kpis#586405), 0, 0)#586399 AS channelStreamSpecificKpis#586392]
(45) Sort [codegen id : 11]
Input [3]: [shardId#586400, worklistShardItemId#586401L, channelStreamSpecificKpis#586392]
Arguments: [shardId#586400 ASC NULLS FIRST, worklistShardItemId#586401L ASC NULLS FIRST], false, 0
(46) SortMergeJoin [codegen id : 12]
Left keys [2]: [shardId#584004, worklistShardItemId#584516L]
Right keys [2]: [shardId#586400, worklistShardItemId#586401L]
Join type: LeftOuter
Join condition: None
(47) Project [codegen id : 12]
Output [41]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584717L, originalReplenishmentRunId#584759L, supplierGroup#584719, supplier#584720, supplyingPlant#584724, productGroup#584725, product#584726, plant#584721, subrange#584723, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, constraintValues#584750, constraintOperators#584749, constraintLabels#584748, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, splitIndicator#584736L, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, sourceOfSupplyUuid#584731, minimumOrderQuantity#584747, orderProposalItemId#584718, orderProposalItemGroupId#584741, optimizationGroups#584760, measurements#584758, externalProductId#584742, externalPlantId#584743, previousOrderProposal#584737L, isFallbackOrderOnly#584734, prodLocSpecificKpis#586391, coalesce(channelStreamSpecificKpis#586392, []) AS channelStreamSpecificKpis#586406]
Input [43]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584717L, originalReplenishmentRunId#584759L, supplierGroup#584719, supplier#584720, supplyingPlant#584724, productGroup#584725, product#584726, plant#584721, subrange#584723, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, constraintValues#584750, constraintOperators#584749, constraintLabels#584748, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, splitIndicator#584736L, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, sourceOfSupplyUuid#584731, minimumOrderQuantity#584747, orderProposalItemId#584718, orderProposalItemGroupId#584741, optimizationGroups#584760, measurements#584758, externalProductId#584742, externalPlantId#584743, previousOrderProposal#584737L, isFallbackOrderOnly#584734, prodLocSpecificKpis#586391, shardId#586400, worklistShardItemId#586401L, channelStreamSpecificKpis#586392]
(48) Scan ExistingRDD [codegen id : 13]
Output [6]: [shardId#586413, worklistShardItemId#586414L, qty#586415, demandChannel#586416, demandStream#586417, kpis#586418]
Arguments: [shardId#586413, worklistShardItemId#586414L, qty#586415, demandChannel#586416, demandStream#586417, kpis#586418], MapPartitionsRDD[28220] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(49) Filter [codegen id : 13]
Input [6]: [shardId#586413, worklistShardItemId#586414L, qty#586415, demandChannel#586416, demandStream#586417, kpis#586418]
Condition : ((isnotnull(qty#586415) AND isnotnull(kpis#586418)) AND (isnotnull(shardId#586413) AND isnotnull(worklistShardItemId#586414L)))
(50) Project [codegen id : 13]
Output [4]: [shardId#586413, worklistShardItemId#586414L, qty#586415, kpis#586418]
Input [6]: [shardId#586413, worklistShardItemId#586414L, qty#586415, demandChannel#586416, demandStream#586417, kpis#586418]
(51) ObjectHashAggregate
Input [4]: [shardId#586413, worklistShardItemId#586414L, qty#586415, kpis#586418]
Keys [2]: [shardId#586413, worklistShardItemId#586414L]
Functions [1]: [partial_collect_list(struct(qty, qty#586415, kpis, kpis#586418), 0, 0)]
Aggregate Attributes [1]: [buf#586758]
Results [3]: [shardId#586413, worklistShardItemId#586414L, buf#586759]
(52) Exchange
Input [3]: [shardId#586413, worklistShardItemId#586414L, buf#586759]
Arguments: hashpartitioning(shardId#586413, worklistShardItemId#586414L, 20), ENSURE_REQUIREMENTS, [plan_id=248682]
(53) ObjectHashAggregate
Input [3]: [shardId#586413, worklistShardItemId#586414L, buf#586759]
Keys [2]: [shardId#586413, worklistShardItemId#586414L]
Functions [1]: [collect_list(struct(qty, qty#586415, kpis, kpis#586418), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#586415, kpis, kpis#586418), 0, 0)#586412]
Results [3]: [shardId#586413, worklistShardItemId#586414L, map_from_entries(collect_list(struct(qty, qty#586415, kpis, kpis#586418), 0, 0)#586412) AS quantityKpis#586407]
(54) Sort [codegen id : 14]
Input [3]: [shardId#586413, worklistShardItemId#586414L, quantityKpis#586407]
Arguments: [shardId#586413 ASC NULLS FIRST, worklistShardItemId#586414L ASC NULLS FIRST], false, 0
(55) SortMergeJoin [codegen id : 15]
Left keys [2]: [shardId#584004, worklistShardItemId#584516L]
Right keys [2]: [shardId#586413, worklistShardItemId#586414L]
Join type: LeftOuter
Join condition: None
(56) Project [codegen id : 15]
Output [42]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584717L, originalReplenishmentRunId#584759L, supplierGroup#584719, supplier#584720, supplyingPlant#584724, productGroup#584725, product#584726, plant#584721, subrange#584723, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, constraintValues#584750, constraintOperators#584749, constraintLabels#584748, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, splitIndicator#584736L, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, sourceOfSupplyUuid#584731, minimumOrderQuantity#584747, orderProposalItemId#584718, orderProposalItemGroupId#584741, optimizationGroups#584760, measurements#584758, externalProductId#584742, externalPlantId#584743, previousOrderProposal#584737L, isFallbackOrderOnly#584734, prodLocSpecificKpis#586391, channelStreamSpecificKpis#586406, coalesce(quantityKpis#586407, map(keys: [], values: [])) AS quantityKpis#586419]
Input [44]: [shardId#584004, worklistShardItemId#584516L, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584717L, originalReplenishmentRunId#584759L, supplierGroup#584719, supplier#584720, supplyingPlant#584724, productGroup#584725, product#584726, plant#584721, subrange#584723, orderDateTime#584727, deliveryDateTime#584722, availabilityDateTime#584728, nextAvailabilityDateTime#584729, constraintValues#584750, constraintOperators#584749, constraintLabels#584748, logisticUnits#584744, orderQuantityBaseUom#584745, orderQuantityBaseUomUuid#584746, splitIndicator#584736L, netPriceAmount#584753, netPriceCurrencyCode#584754, netPriceQuantity#584755, netPriceQuantityUom#584756, netPriceQuantityUomUuid#584757, sourceOfSupplyUuid#584731, minimumOrderQuantity#584747, orderProposalItemId#584718, orderProposalItemGroupId#584741, optimizationGroups#584760, measurements#584758, externalProductId#584742, externalPlantId#584743, previousOrderProposal#584737L, isFallbackOrderOnly#584734, prodLocSpecificKpis#586391, channelStreamSpecificKpis#586406, shardId#586413, worklistShardItemId#586414L, quantityKpis#586407]
(57) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#584694, channelStreamSpecificKpis#586406, constraintLabels#584706, constraintOperators#584707, constraintValues#584709, deliveryDateTime#584693, isFallbackOrderOnly#584696, logisticUnits#584711, measurements#584704, minimumOrderQuantity#584705, netPriceAmount#584702, netPriceCurrencyCode#584703, netPriceQuantity#584699, netPriceQuantityUom#584700, netPriceQuantityUomUuid#584701, nextAvailabilityDateTime#584695, optimizationGroups#584712, orderDateTime#584692, orderProposalId#584674L, orderProposalItemGroupId#584676, orderProposalItemId#584675, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, originalReplenishmentRunId#584677L, plant#584688, previousOrderProposal#584680L, prodLocSpecificKpis#586391, product#584687, productGroup#584716, qty#584518, quantityAfterProdPlantOptimization#584517, quantityKpis#586419, shardId#584004, sourceOfSupplyUuid#584683, splitIndicator#584679L, subrange#584686, supplier#584685, supplierGroup#584684, supplyingPlant#584715]
Condition : NOT (isFallbackOrderOnly#584696 <=> true)
(58) Project [codegen id : 1]
Output [36]: [shardId#584004, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584674L, originalReplenishmentRunId#584677L, supplierGroup#584684, supplier#584685, supplyingPlant#584715, productGroup#584716, product#584687, plant#584688, subrange#584686, orderDateTime#584692, deliveryDateTime#584693, availabilityDateTime#584694, nextAvailabilityDateTime#584695, logisticUnits#584711, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, splitIndicator#584679L, netPriceAmount#584702, netPriceCurrencyCode#584703, netPriceQuantity#584699, netPriceQuantityUom#584700, netPriceQuantityUomUuid#584701, sourceOfSupplyUuid#584683, minimumOrderQuantity#584705, orderProposalItemId#584675, orderProposalItemGroupId#584676, optimizationGroups#584712, measurements#584704, previousOrderProposal#584680L, prodLocSpecificKpis#586391, channelStreamSpecificKpis#586406, quantityKpis#586419, arrays_zip(constraintLabels#584706, constraintOperators#584707, constraintValues#584709, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#587009]
Input [39]: [availabilityDateTime#584694, channelStreamSpecificKpis#586406, constraintLabels#584706, constraintOperators#584707, constraintValues#584709, deliveryDateTime#584693, isFallbackOrderOnly#584696, logisticUnits#584711, measurements#584704, minimumOrderQuantity#584705, netPriceAmount#584702, netPriceCurrencyCode#584703, netPriceQuantity#584699, netPriceQuantityUom#584700, netPriceQuantityUomUuid#584701, nextAvailabilityDateTime#584695, optimizationGroups#584712, orderDateTime#584692, orderProposalId#584674L, orderProposalItemGroupId#584676, orderProposalItemId#584675, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, originalReplenishmentRunId#584677L, plant#584688, previousOrderProposal#584680L, prodLocSpecificKpis#586391, product#584687, productGroup#584716, qty#584518, quantityAfterProdPlantOptimization#584517, quantityKpis#586419, shardId#584004, sourceOfSupplyUuid#584683, splitIndicator#584679L, subrange#584686, supplier#584685, supplierGroup#584684, supplyingPlant#584715]
(59) Project
Output [37]: [shardId#584004, qty#584518, orderProposalId#584674L, originalReplenishmentRunId#584677L, supplierGroup#584684, supplier#584685, supplyingPlant#584715, productGroup#584716, product#584687, plant#584688, subrange#584686, orderDateTime#584692, deliveryDateTime#584693, availabilityDateTime#584694, nextAvailabilityDateTime#584695, logisticUnits#584711, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, splitIndicator#584679L, netPriceAmount#584702, netPriceCurrencyCode#584703, netPriceQuantity#584699, netPriceQuantityUom#584700, netPriceQuantityUomUuid#584701, sourceOfSupplyUuid#584683, orderProposalItemId#584675, orderProposalItemGroupId#584676, optimizationGroups#584712, measurements#584704, previousOrderProposal#584680L, prodLocSpecificKpis#586391, channelStreamSpecificKpis#586406, quantityKpis#586419, struct(minServiceLevel, array_min(filter(constraintStructArray#587009, lambdafunction((lambda x_1458#587016.constraintLabels = ServiceLevel), lambda x_1458#587016, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#587009, lambdafunction((lambda x_1459#587017.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_1459#587017, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#587009, lambdafunction((lambda x_1460#587018.constraintLabels = RangeOfCoverage), lambda x_1460#587018, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#584705, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#586391, lambdafunction((lambda x_1461#587019.label = NonListingStartTimestamp), lambda x_1461#587019, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#587015, CASE WHEN (qty#584518 <=> quantityAfterProdPlantOptimization#584517) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#584518 * (cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1462#587087.isOrderUnit, lambda x_1462#587087, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1462#587088.isOrderUnit, lambda x_1462#587088, false)), 1, None, false).numerator as double))), qty#584518), orderQuantityUom, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1462#587089.isOrderUnit, lambda x_1462#587089, false)), 1, None, false).uom, orderQuantityBaseUom#584697), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1462#587090.isOrderUnit, lambda x_1462#587090, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#584698), candidateOrderQuantityInBaseUnit, qty#584518, orderQuantityBaseUom, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#584698, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#584711, lambdafunction((lambda x_1464#587091.isPreferred AND (((qty#584518 * cast(lambda x_1464#587091.denominator as double)) % cast(lambda x_1464#587091.numerator as double)) = 0.0)), lambda x_1464#587091, false)), lambdafunction(struct(inPreferredQuantity, ((qty#584518 * cast(lambda x_1465#587129.denominator as double)) / cast(lambda x_1465#587129.numerator as double)), uom, lambda x_1465#587129.uom, uomUuid, lambda x_1465#587129.uomUuid), lambda x_1465#587129, false))).inPreferredQuantity, coalesce((qty#584518 * (cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1463#587092.isOrderUnit, lambda x_1463#587092, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1463#587093.isOrderUnit, lambda x_1463#587093, false)), 1, None, false).numerator as double))), qty#584518)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#584711, lambdafunction((lambda x_1464#587094.isPreferred AND (((qty#584518 * cast(lambda x_1464#587094.denominator as double)) % cast(lambda x_1464#587094.numerator as double)) = 0.0)), lambda x_1464#587094, false)), lambdafunction(struct(inPreferredQuantity, ((qty#584518 * cast(lambda x_1465#587130.denominator as double)) / cast(lambda x_1465#587130.numerator as double)), uom, lambda x_1465#587130.uom, uomUuid, lambda x_1465#587130.uomUuid), lambda x_1465#587130, false))).uom, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1463#587095.isOrderUnit, lambda x_1463#587095, false)), 1, None, false).uom, orderQuantityBaseUom#584697)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#584711, lambdafunction((lambda x_1464#587096.isPreferred AND (((qty#584518 * cast(lambda x_1464#587096.denominator as double)) % cast(lambda x_1464#587096.numerator as double)) = 0.0)), lambda x_1464#587096, false)), lambdafunction(struct(inPreferredQuantity, ((qty#584518 * cast(lambda x_1465#587131.denominator as double)) / cast(lambda x_1465#587131.numerator as double)), uom, lambda x_1465#587131.uom, uomUuid, lambda x_1465#587131.uomUuid), lambda x_1465#587131, false))).uomUuid, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1463#587097.isOrderUnit, lambda x_1463#587097, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#584698)), serviceLevel, coalesce(filter(element_at(quantityKpis#586419, qty#584518, None, false), lambdafunction((lambda x_1470#587098.label = ServiceLevel), lambda x_1470#587098, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#584518 * (cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1462#587101.isOrderUnit, lambda x_1462#587101, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1462#587102.isOrderUnit, lambda x_1462#587102, false)), 1, None, false).numerator as double))), qty#584518), orderQuantityUom, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1462#587103.isOrderUnit, lambda x_1462#587103, false)), 1, None, false).uom, orderQuantityBaseUom#584697), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1462#587104.isOrderUnit, lambda x_1462#587104, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#584698), candidateOrderQuantityInBaseUnit, qty#584518, orderQuantityBaseUom, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#584698, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#584711, lambdafunction((lambda x_1464#587105.isPreferred AND (((qty#584518 * cast(lambda x_1464#587105.denominator as double)) % cast(lambda x_1464#587105.numerator as double)) = 0.0)), lambda x_1464#587105, false)), lambdafunction(struct(inPreferredQuantity, ((qty#584518 * cast(lambda x_1465#587132.denominator as double)) / cast(lambda x_1465#587132.numerator as double)), uom, lambda x_1465#587132.uom, uomUuid, lambda x_1465#587132.uomUuid), lambda x_1465#587132, false))).inPreferredQuantity, coalesce((qty#584518 * (cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1463#587106.isOrderUnit, lambda x_1463#587106, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1463#587107.isOrderUnit, lambda x_1463#587107, false)), 1, None, false).numerator as double))), qty#584518)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#584711, lambdafunction((lambda x_1464#587108.isPreferred AND (((qty#584518 * cast(lambda x_1464#587108.denominator as double)) % cast(lambda x_1464#587108.numerator as double)) = 0.0)), lambda x_1464#587108, false)), lambdafunction(struct(inPreferredQuantity, ((qty#584518 * cast(lambda x_1465#587133.denominator as double)) / cast(lambda x_1465#587133.numerator as double)), uom, lambda x_1465#587133.uom, uomUuid, lambda x_1465#587133.uomUuid), lambda x_1465#587133, false))).uom, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1463#587109.isOrderUnit, lambda x_1463#587109, false)), 1, None, false).uom, orderQuantityBaseUom#584697)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#584711, lambdafunction((lambda x_1464#587110.isPreferred AND (((qty#584518 * cast(lambda x_1464#587110.denominator as double)) % cast(lambda x_1464#587110.numerator as double)) = 0.0)), lambda x_1464#587110, false)), lambdafunction(struct(inPreferredQuantity, ((qty#584518 * cast(lambda x_1465#587134.denominator as double)) / cast(lambda x_1465#587134.numerator as double)), uom, lambda x_1465#587134.uom, uomUuid, lambda x_1465#587134.uomUuid), lambda x_1465#587134, false))).uomUuid, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1463#587111.isOrderUnit, lambda x_1463#587111, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#584698)), serviceLevel, coalesce(filter(element_at(quantityKpis#586419, qty#584518, None, false), lambdafunction((lambda x_1473#587112.label = ServiceLevel), lambda x_1473#587112, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#584517 * (cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1466#587115.isOrderUnit, lambda x_1466#587115, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1466#587116.isOrderUnit, lambda x_1466#587116, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#584517), orderQuantityUom, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1466#587117.isOrderUnit, lambda x_1466#587117, false)), 1, None, false).uom, orderQuantityBaseUom#584697), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1466#587118.isOrderUnit, lambda x_1466#587118, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#584698), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#584517, orderQuantityBaseUom, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#584698, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#584711, lambdafunction((lambda x_1468#587119.isPreferred AND (((quantityAfterProdPlantOptimization#584517 * cast(lambda x_1468#587119.denominator as double)) % cast(lambda x_1468#587119.numerator as double)) = 0.0)), lambda x_1468#587119, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#584517 * cast(lambda x_1469#587135.denominator as double)) / cast(lambda x_1469#587135.numerator as double)), uom, lambda x_1469#587135.uom, uomUuid, lambda x_1469#587135.uomUuid), lambda x_1469#587135, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#584517 * (cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1467#587120.isOrderUnit, lambda x_1467#587120, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1467#587121.isOrderUnit, lambda x_1467#587121, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#584517)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#584711, lambdafunction((lambda x_1468#587122.isPreferred AND (((quantityAfterProdPlantOptimization#584517 * cast(lambda x_1468#587122.denominator as double)) % cast(lambda x_1468#587122.numerator as double)) = 0.0)), lambda x_1468#587122, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#584517 * cast(lambda x_1469#587136.denominator as double)) / cast(lambda x_1469#587136.numerator as double)), uom, lambda x_1469#587136.uom, uomUuid, lambda x_1469#587136.uomUuid), lambda x_1469#587136, false))).uom, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1467#587123.isOrderUnit, lambda x_1467#587123, false)), 1, None, false).uom, orderQuantityBaseUom#584697)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#584711, lambdafunction((lambda x_1468#587124.isPreferred AND (((quantityAfterProdPlantOptimization#584517 * cast(lambda x_1468#587124.denominator as double)) % cast(lambda x_1468#587124.numerator as double)) = 0.0)), lambda x_1468#587124, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#584517 * cast(lambda x_1469#587137.denominator as double)) / cast(lambda x_1469#587137.numerator as double)), uom, lambda x_1469#587137.uom, uomUuid, lambda x_1469#587137.uomUuid), lambda x_1469#587137, false))).uomUuid, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1467#587125.isOrderUnit, lambda x_1467#587125, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#584698)), serviceLevel, coalesce(filter(element_at(quantityKpis#586419, quantityAfterProdPlantOptimization#584517, None, false), lambdafunction((lambda x_1476#587126.label = ServiceLevel), lambda x_1476#587126, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#587086, coalesce(filter(prodLocSpecificKpis#586391, lambdafunction((lambda x_1479#587139.label = InitialStockQty), lambda x_1479#587139, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#587138, coalesce(filter(prodLocSpecificKpis#586391, lambdafunction((lambda x_1480#587141.label = DemandPeriodEndTimestamp), lambda x_1480#587141, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#587140]
Input [36]: [shardId#584004, quantityAfterProdPlantOptimization#584517, qty#584518, orderProposalId#584674L, originalReplenishmentRunId#584677L, supplierGroup#584684, supplier#584685, supplyingPlant#584715, productGroup#584716, product#584687, plant#584688, subrange#584686, orderDateTime#584692, deliveryDateTime#584693, availabilityDateTime#584694, nextAvailabilityDateTime#584695, logisticUnits#584711, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, splitIndicator#584679L, netPriceAmount#584702, netPriceCurrencyCode#584703, netPriceQuantity#584699, netPriceQuantityUom#584700, netPriceQuantityUomUuid#584701, sourceOfSupplyUuid#584683, minimumOrderQuantity#584705, orderProposalItemId#584675, orderProposalItemGroupId#584676, optimizationGroups#584712, measurements#584704, previousOrderProposal#584680L, prodLocSpecificKpis#586391, channelStreamSpecificKpis#586406, quantityKpis#586419, constraintStructArray#587009]
(60) Project
Output [21]: [shardId#584004, qty#584518, orderProposalId#584674L, originalReplenishmentRunId#584677L, supplierGroup#584684, supplier#584685, supplyingPlant#584715, productGroup#584716, product#584687, plant#584688, subrange#584686, orderDateTime#584692, deliveryDateTime#584693, logisticUnits#584711, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, splitIndicator#584679L, orderProposalItemId#584675, orderProposalItemGroupId#584676, previousOrderProposal#584680L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#584685, supplyingPlant, supplyingPlant#584715, productGroup, productGroup#584716, product, product#584687, plant, plant#584688, supplierSubRange, subrange#584686, sourceOfSupplyUuid, sourceOfSupplyUuid#584683, deliveryDateTime, deliveryDateTime#584693, unitPrice, netPriceAmount#584702, unitPriceCurrency, netPriceCurrencyCode#584703, unitPriceQuantity, ... 37 more fields) AS parentItem#587220]
Input [37]: [shardId#584004, qty#584518, orderProposalId#584674L, originalReplenishmentRunId#584677L, supplierGroup#584684, supplier#584685, supplyingPlant#584715, productGroup#584716, product#584687, plant#584688, subrange#584686, orderDateTime#584692, deliveryDateTime#584693, availabilityDateTime#584694, nextAvailabilityDateTime#584695, logisticUnits#584711, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, splitIndicator#584679L, netPriceAmount#584702, netPriceCurrencyCode#584703, netPriceQuantity#584699, netPriceQuantityUom#584700, netPriceQuantityUomUuid#584701, sourceOfSupplyUuid#584683, orderProposalItemId#584675, orderProposalItemGroupId#584676, optimizationGroups#584712, measurements#584704, previousOrderProposal#584680L, prodLocSpecificKpis#586391, channelStreamSpecificKpis#586406, quantityKpis#586419, constraintBenchmark#587015, calculationAnalysis#587086, inventoryDateTime#587138, demandPeriodEndDateTime#587140]
(61) Project
Output [12]: [shardId#584004, orderProposalId#584674L, originalReplenishmentRunId#584677L, supplierGroup#584684, supplier#584685, supplyingPlant#584715, orderDateTime#584692, splitIndicator#584679L, orderProposalItemGroupId#584676, previousOrderProposal#584680L, parentItem#587220, struct(itemId, orderProposalItemId#584675, supplier, supplier#584685, supplyingPlant, supplyingPlant#584715, productGroup, productGroup#584716, product, product#584687, plant, plant#584688, supplierSubRange, subrange#584686, deliveryDateTime, deliveryDateTime#584693, orderQuantity, coalesce((qty#584518 * (cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1504#587254.isOrderUnit, lambda x_1504#587254, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1504#587255.isOrderUnit, lambda x_1504#587255, false)), 1, None, false).numerator as double))), qty#584518), orderQuantityUom, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1504#587256.isOrderUnit, lambda x_1504#587256, false)), 1, None, false).uom, orderQuantityBaseUom#584697), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#584711, lambdafunction(lambda x_1504#587257.isOrderUnit, lambda x_1504#587257, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#584698), orderQuantityInBaseUnit, qty#584518, orderQuantityBaseUom, ... 13 more fields) AS item#587251]
Input [21]: [shardId#584004, qty#584518, orderProposalId#584674L, originalReplenishmentRunId#584677L, supplierGroup#584684, supplier#584685, supplyingPlant#584715, productGroup#584716, product#584687, plant#584688, subrange#584686, orderDateTime#584692, deliveryDateTime#584693, logisticUnits#584711, orderQuantityBaseUom#584697, orderQuantityBaseUomUuid#584698, splitIndicator#584679L, orderProposalItemId#584675, orderProposalItemGroupId#584676, previousOrderProposal#584680L, parentItem#587220]
(62) ObjectHashAggregate
Input [12]: [shardId#584004, orderProposalId#584674L, originalReplenishmentRunId#584677L, supplierGroup#584684, supplier#584685, supplyingPlant#584715, orderDateTime#584692, splitIndicator#584679L, orderProposalItemGroupId#584676, previousOrderProposal#584680L, parentItem#587220, item#587251]
Keys [4]: [shardId#584004, orderProposalId#584674L, splitIndicator#584679L, orderProposalItemGroupId#584676]
Functions [8]: [partial_max(originalReplenishmentRunId#584677L), partial_max(supplierGroup#584684), partial_max(supplier#584685), partial_max(supplyingPlant#584715), partial_max(orderDateTime#584692), partial_collect_list(parentItem#587220, 0, 0), partial_collect_set(previousOrderProposal#584680L, 0, 0), partial_collect_list(item#587251, 0, 0)]
Aggregate Attributes [8]: [max#588760L, max#588761, max#588762, max#588763, max#588764, buf#588765, buf#588766, buf#588767]
Results [12]: [shardId#584004, orderProposalId#584674L, splitIndicator#584679L, orderProposalItemGroupId#584676, max#588768L, max#588769, max#588770, max#588771, max#588772, buf#588773, buf#588774, buf#588775]
(63) Exchange
Input [12]: [shardId#584004, orderProposalId#584674L, splitIndicator#584679L, orderProposalItemGroupId#584676, max#588768L, max#588769, max#588770, max#588771, max#588772, buf#588773, buf#588774, buf#588775]
Arguments: hashpartitioning(shardId#584004, orderProposalId#584674L, splitIndicator#584679L, orderProposalItemGroupId#584676, 20), ENSURE_REQUIREMENTS, [plan_id=249317]
(64) ObjectHashAggregate
Input [12]: [shardId#584004, orderProposalId#584674L, splitIndicator#584679L, orderProposalItemGroupId#584676, max#588768L, max#588769, max#588770, max#588771, max#588772, buf#588773, buf#588774, buf#588775]
Keys [4]: [shardId#584004, orderProposalId#584674L, splitIndicator#584679L, orderProposalItemGroupId#584676]
Functions [8]: [max(originalReplenishmentRunId#584677L), max(supplierGroup#584684), max(supplier#584685), max(supplyingPlant#584715), max(orderDateTime#584692), collect_list(parentItem#587220, 0, 0), collect_set(previousOrderProposal#584680L, 0, 0), collect_list(item#587251, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#584677L)#587320L, max(supplierGroup#584684)#587321, max(supplier#584685)#587322, max(supplyingPlant#584715)#587323, max(orderDateTime#584692)#587324, collect_list(parentItem#587220, 0, 0)#587325, collect_set(previousOrderProposal#584680L, 0, 0)#587327, collect_list(item#587251, 0, 0)#587326]
Results [10]: [shardId#584004, orderProposalId#584674L, max(originalReplenishmentRunId#584677L)#587320L AS originalReplenishmentRunId#587268L, max(supplierGroup#584684)#587321 AS supplierGroup#587269, max(supplier#584685)#587322 AS supplier#587270, max(supplyingPlant#584715)#587323 AS supplyingPlant#587271, max(orderDateTime#584692)#587324 AS orderDateTime#587272, collect_list(parentItem#587220, 0, 0)#587325 AS parentItems#587273, collect_set(previousOrderProposal#584680L, 0, 0)#587327 AS previousOrderProposals#587275, struct(itemGroupId, coalesce(orderProposalItemGroupId#584676, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#587251, 0, 0)#587326) AS itemGroup#587329]
(65) ObjectHashAggregate
Input [10]: [shardId#584004, orderProposalId#584674L, originalReplenishmentRunId#587268L, supplierGroup#587269, supplier#587270, supplyingPlant#587271, orderDateTime#587272, parentItems#587273, previousOrderProposals#587275, itemGroup#587329]
Keys [2]: [shardId#584004, orderProposalId#584674L]
Functions [8]: [partial_max(originalReplenishmentRunId#587268L), partial_max(supplierGroup#587269), partial_max(supplier#587270), partial_max(supplyingPlant#587271), partial_max(orderDateTime#587272), partial_collect_list(itemGroup#587329, 0, 0), partial_collect_list(parentItems#587273, 0, 0), partial_collect_set(previousOrderProposals#587275, 0, 0)]
Aggregate Attributes [8]: [max#588744L, max#588745, max#588746, max#588747, max#588748, buf#588749, buf#588750, buf#588751]
Results [10]: [shardId#584004, orderProposalId#584674L, max#588752L, max#588753, max#588754, max#588755, max#588756, buf#588757, buf#588758, buf#588759]
(66) Exchange
Input [10]: [shardId#584004, orderProposalId#584674L, max#588752L, max#588753, max#588754, max#588755, max#588756, buf#588757, buf#588758, buf#588759]
Arguments: hashpartitioning(shardId#584004, orderProposalId#584674L, 20), ENSURE_REQUIREMENTS, [plan_id=249320]
(67) ObjectHashAggregate
Input [10]: [shardId#584004, orderProposalId#584674L, max#588752L, max#588753, max#588754, max#588755, max#588756, buf#588757, buf#588758, buf#588759]
Keys [2]: [shardId#584004, orderProposalId#584674L]
Functions [8]: [max(originalReplenishmentRunId#587268L), max(supplierGroup#587269), max(supplier#587270), max(supplyingPlant#587271), max(orderDateTime#587272), collect_list(itemGroup#587329, 0, 0), collect_list(parentItems#587273, 0, 0), collect_set(previousOrderProposals#587275, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#587268L)#587351L, max(supplierGroup#587269)#587352, max(supplier#587270)#587353, max(supplyingPlant#587271)#587354, max(orderDateTime#587272)#587355, collect_list(itemGroup#587329, 0, 0)#587356, collect_list(parentItems#587273, 0, 0)#587357, collect_set(previousOrderProposals#587275, 0, 0)#587358]
Results [10]: [shardId#584004, orderProposalId#584674L, max(originalReplenishmentRunId#587268L)#587351L AS originalReplenishmentRunId#587330L, max(supplierGroup#587269)#587352 AS supplierGroup#587331, max(supplier#587270)#587353 AS supplier#587332, max(supplyingPlant#587271)#587354 AS supplyingPlant#587333, max(orderDateTime#587272)#587355 AS orderDateTime#587334, collect_list(itemGroup#587329, 0, 0)#587356 AS itemGroups#587335, flatten(collect_list(parentItems#587273, 0, 0)#587357) AS parentItems#587336, flatten(collect_set(previousOrderProposals#587275, 0, 0)#587358) AS previousOrderProposals#587337]
(68) Project
Output [2]: [shardId#584004, struct(orderProposalId, orderProposalId#584674L, originalReplenishmentRunId, originalReplenishmentRunId#587330L, supplierGroup, supplierGroup#587331, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#587331) THEN supplier#587332 END, supplyingPlant, supplyingPlant#587333, orderDateTime, orderDateTime#587334, itemGroups, itemGroups#587335, previousOrderProposals, array_distinct(previousOrderProposals#587337), parentItems, parentItems#587336) AS orderProposal#587362]
Input [10]: [shardId#584004, orderProposalId#584674L, originalReplenishmentRunId#587330L, supplierGroup#587331, supplier#587332, supplyingPlant#587333, orderDateTime#587334, itemGroups#587335, parentItems#587336, previousOrderProposals#587337]
(69) Project
Output [11]: [shardId#584004, orderProposal#587362.orderProposalId AS _extract_orderProposalId#588376L, orderProposal#587362.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#588377L, orderProposal#587362.supplierGroup AS _extract_supplierGroup#588378, orderProposal#587362.supplier AS _extract_supplier#588379, orderProposal#587362.supplyingPlant AS _extract_supplyingPlant#588380, orderProposal#587362.orderDateTime AS _extract_orderDateTime#588381, orderProposal#587362.itemGroups AS _extract_itemGroups#588382, orderProposal#587362.previousOrderProposals AS _extract_previousOrderProposals#588383, orderProposal#587362.parentItems AS _extract_parentItems#588384, orderProposal#587362.orderProposalId AS _extract_orderProposalId#588385L]
Input [2]: [shardId#584004, orderProposal#587362]
(70) Exchange
Input [11]: [shardId#584004, _extract_orderProposalId#588376L, _extract_originalReplenishmentRunId#588377L, _extract_supplierGroup#588378, _extract_supplier#588379, _extract_supplyingPlant#588380, _extract_orderDateTime#588381, _extract_itemGroups#588382, _extract_previousOrderProposals#588383, _extract_parentItems#588384, _extract_orderProposalId#588385L]
Arguments: hashpartitioning(coalesce(shardId#584004, ), isnull(shardId#584004), coalesce(_extract_orderProposalId#588385L, 0), isnull(_extract_orderProposalId#588385L), 20), ENSURE_REQUIREMENTS, [plan_id=249324]
(71) Sort
Input [11]: [shardId#584004, _extract_orderProposalId#588376L, _extract_originalReplenishmentRunId#588377L, _extract_supplierGroup#588378, _extract_supplier#588379, _extract_supplyingPlant#588380, _extract_orderDateTime#588381, _extract_itemGroups#588382, _extract_previousOrderProposals#588383, _extract_parentItems#588384, _extract_orderProposalId#588385L]
Arguments: [coalesce(shardId#584004, ) ASC NULLS FIRST, isnull(shardId#584004) ASC NULLS FIRST, coalesce(_extract_orderProposalId#588385L, 0) ASC NULLS FIRST, isnull(_extract_orderProposalId#588385L) ASC NULLS FIRST], false, 0
(72) InMemoryTableScan
Output [3]: [shardId#587385, orderProposalId#587386L, optimizationGroups#587388]
Arguments: [shardId#587385, orderProposalId#587386L, optimizationGroups#587388], [isnotnull(orderProposalId#587386L)]
(73) InMemoryRelation
Arguments: [shardId#587385, orderProposalId#587386L, items#587387, optimizationGroups#587388, isOptimal#587389, optimizationInsights#587391], StorageLevel(disk, memory, 2 replicas)
(74) Filter [codegen id : 2]
Input [3]: [shardId#587385, orderProposalId#587386L, optimizationGroups#587388]
Condition : isnotnull(orderProposalId#587386L)
(75) BroadcastExchange
Input [3]: [shardId#587385, orderProposalId#587386L, optimizationGroups#587388]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=249329]
(76) InMemoryTableScan
Output [2]: [items#587004, shardId#587002]
Arguments: [items#587004, shardId#587002], [(size(items#587004.worklistShardItemId, true) > 0), isnotnull(items#587004.worklistShardItemId), (shardId#587002 = 0_1_10000002106)]
(77) InMemoryRelation
Arguments: [shardId#587002, orderProposalId#587003L, items#587004, optimizationGroups#587005, isOptimal#587006, optimizationInsights#587008], StorageLevel(disk, memory, 2 replicas)
(78) Filter [codegen id : 3]
Input [2]: [items#587004, shardId#587002]
Condition : (((size(items#587004.worklistShardItemId, true) > 0) AND isnotnull(items#587004.worklistShardItemId)) AND (shardId#587002 = 0_1_10000002106))
(79) Project [codegen id : 3]
Output [1]: [items#587004.worklistShardItemId AS _extract_worklistShardItemId#588033]
Input [2]: [items#587004, shardId#587002]
(80) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#588033]
Arguments: explode(_extract_worklistShardItemId#588033), false, [item#587392L]
(81) Project [codegen id : 3]
Output [1]: [item#587392L AS worklistShardItemId#587393L]
Input [1]: [item#587392L]
(82) BroadcastExchange
Input [1]: [worklistShardItemId#587393L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=249337]
(83) Scan parquet
Output [5]: [orderProposalId#587441L, isFallbackOrderOnly#587458, worklistShardItemId#587464L, shardId#587485, sequenceId#587463]
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/10000002106]
PartitionFilters: [isnotnull(shardId#587485), isnotnull(sequenceId#587463), (shardId#587485 = 0_1_10000002106), (sequenceId#587463 = 1)]
PushedFilters: [IsNotNull(worklistShardItemId), Not(EqualNullSafe(isFallbackOrderOnly,true)), IsNotNull(orderProposalId)]
ReadSchema: struct<orderProposalId:bigint,isFallbackOrderOnly:boolean,worklistShardItemId:bigint>
(84) ColumnarToRow [codegen id : 4]
Input [5]: [orderProposalId#587441L, isFallbackOrderOnly#587458, worklistShardItemId#587464L, shardId#587485, sequenceId#587463]
(85) Filter [codegen id : 4]
Input [5]: [orderProposalId#587441L, isFallbackOrderOnly#587458, worklistShardItemId#587464L, shardId#587485, sequenceId#587463]
Condition : ((isnotnull(worklistShardItemId#587464L) AND NOT (isFallbackOrderOnly#587458 <=> true)) AND isnotnull(orderProposalId#587441L))
(86) Project [codegen id : 4]
Output [2]: [orderProposalId#587441L, worklistShardItemId#587464L]
Input [5]: [orderProposalId#587441L, isFallbackOrderOnly#587458, worklistShardItemId#587464L, shardId#587485, sequenceId#587463]
(87) Exchange
Input [2]: [orderProposalId#587441L, worklistShardItemId#587464L]
Arguments: hashpartitioning(worklistShardItemId#587464L, 20), REPARTITION_BY_NUM, [plan_id=249344]
(88) Project
Output [2]: [worklistShardItemId#587464L, orderProposalId#587441L]
Input [2]: [orderProposalId#587441L, worklistShardItemId#587464L]
(89) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#587393L]
Right keys [1]: [worklistShardItemId#587464L]
Join type: Inner
Join condition: None
(90) Project [codegen id : 5]
Output [1]: [orderProposalId#587441L]
Input [3]: [worklistShardItemId#587393L, worklistShardItemId#587464L, orderProposalId#587441L]
(91) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#587441L]
Keys [1]: [orderProposalId#587441L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#587441L]
(92) Exchange
Input [1]: [orderProposalId#587441L]
Arguments: hashpartitioning(orderProposalId#587441L, 20), ENSURE_REQUIREMENTS, [plan_id=249351]
(93) HashAggregate
Input [1]: [orderProposalId#587441L]
Keys [1]: [orderProposalId#587441L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#587441L]
(94) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#587386L]
Right keys [1]: [orderProposalId#587441L]
Join type: Inner
Join condition: None
(95) Project
Output [3]: [orderProposalId#587386L, shardId#587385, coalesce(transform(optimizationGroups#587388, lambdafunction(struct(optGroupId, lambda x_1508#587383.optGroupId, minOrderProfile, lambda x_1508#587383.minOrderProfile, assignmentDetails, lambda x_1508#587383.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_1508#587383.minOrderGoal.dimensionType, unit, lambda x_1508#587383.minOrderGoal.unit, unitUuid, lambda x_1508#587383.minOrderGoal.unitUuid, goalValue, lambda x_1508#587383.minOrderGoal.minOrderValue, calcValue, lambda x_1508#587383.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_1508#587383, false)), []) AS optimizationGroups#587382]
Input [4]: [shardId#587385, orderProposalId#587386L, optimizationGroups#587388, orderProposalId#587441L]
(96) Exchange
Input [3]: [orderProposalId#587386L, shardId#587385, optimizationGroups#587382]
Arguments: hashpartitioning(coalesce(shardId#587385, ), isnull(shardId#587385), coalesce(orderProposalId#587386L, 0), isnull(orderProposalId#587386L), 20), ENSURE_REQUIREMENTS, [plan_id=249357]
(97) Sort [codegen id : 7]
Input [3]: [orderProposalId#587386L, shardId#587385, optimizationGroups#587382]
Arguments: [coalesce(shardId#587385, ) ASC NULLS FIRST, isnull(shardId#587385) ASC NULLS FIRST, coalesce(orderProposalId#587386L, 0) ASC NULLS FIRST, isnull(orderProposalId#587386L) ASC NULLS FIRST], false, 0
(98) SortMergeJoin
Left keys [4]: [coalesce(shardId#584004, ), isnull(shardId#584004), coalesce(_extract_orderProposalId#588385L, 0), isnull(_extract_orderProposalId#588385L)]
Right keys [4]: [coalesce(shardId#587385, ), isnull(shardId#587385), coalesce(orderProposalId#587386L, 0), isnull(orderProposalId#587386L)]
Join type: LeftOuter
Join condition: None
(99) Project
Output [2]: [shardId#584004, named_struct(orderProposalId, _extract_orderProposalId#588385L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#588377L, supplierGroup, _extract_supplierGroup#588378, optimizationGroups, coalesce(optimizationGroups#587382, []), supplier, _extract_supplier#588379, supplyingPlant, _extract_supplyingPlant#588380, orderDateTime, _extract_orderDateTime#588381, itemGroups, _extract_itemGroups#588382, previousOrderProposals, _extract_previousOrderProposals#588383, parentItems, _extract_parentItems#588384) AS orderProposal#587489]
Input [14]: [shardId#584004, _extract_orderProposalId#588376L, _extract_originalReplenishmentRunId#588377L, _extract_supplierGroup#588378, _extract_supplier#588379, _extract_supplyingPlant#588380, _extract_orderDateTime#588381, _extract_itemGroups#588382, _extract_previousOrderProposals#588383, _extract_parentItems#588384, _extract_orderProposalId#588385L, orderProposalId#587386L, shardId#587385, optimizationGroups#587382]
(100) Project
Output [3]: [shardId#584004, orderProposal#587489, CASE WHEN (size(orderProposal#587489.parentItems, true) > 2000) THEN xxhash64(orderProposal#587489.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#587489.orderProposalId as decimal(20,0)), 1), 42) END AS resultSeparationId#590515L]
Input [2]: [orderProposal#587489, shardId#584004]
(101) ObjectHashAggregate
Input [3]: [shardId#584004, orderProposal#587489, resultSeparationId#590515L]
Keys [2]: [shardId#584004, resultSeparationId#590515L]
Functions [1]: [partial_collect_list(orderProposal#587489, 0, 0)]
Aggregate Attributes [1]: [buf#590554]
Results [3]: [shardId#584004, resultSeparationId#590515L, buf#590555]
(102) Exchange
Input [3]: [shardId#584004, resultSeparationId#590515L, buf#590555]
Arguments: hashpartitioning(shardId#584004, resultSeparationId#590515L, 20), ENSURE_REQUIREMENTS, [plan_id=249878]
(103) ObjectHashAggregate
Input [3]: [shardId#584004, resultSeparationId#590515L, buf#590555]
Keys [2]: [shardId#584004, resultSeparationId#590515L]
Functions [1]: [collect_list(orderProposal#587489, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#587489, 0, 0)#590523]
Results [3]: [shardId#584004, resultSeparationId#590515L, collect_list(orderProposal#587489, 0, 0)#590523 AS orderProposals#590519]
(104) Exchange
Input [3]: [shardId#584004, resultSeparationId#590515L, orderProposals#590519]
Arguments: SinglePartition, REPARTITION_BY_NUM, [plan_id=250016]
(105) Project
Output [2]: [shardId#584004, orderProposals#590519]
Input [3]: [shardId#584004, resultSeparationId#590515L, orderProposals#590519]
(106) HashAggregate [codegen id : 1]
Input [1]: [shardId#584004]
Keys [1]: [shardId#584004]
Functions: []
Aggregate Attributes: []
Results [1]: [shardId#584004]
(107) HashAggregate [codegen id : 1]
Input [1]: [shardId#584004]
Keys [1]: [shardId#584004]
Functions: []
Aggregate Attributes: []
Results [1]: [shardId#584004]