== 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#632615, resultSeparationId#636705L, orderProposals#636709], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [2]: [orderProposal#634953, shardId#632615]
Arguments: [orderProposal#634953, shardId#632615]
(4) InMemoryRelation
Arguments: [shardId#632615, orderProposal#634953], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [39]: [availabilityDateTime#633305, channelStreamSpecificKpis#634046, constraintLabels#633317, constraintOperators#633318, constraintValues#633320, deliveryDateTime#633304, isFallbackOrderOnly#633307, logisticUnits#633322, measurements#633315, minimumOrderQuantity#633316, netPriceAmount#633313, netPriceCurrencyCode#633314, netPriceQuantity#633310, netPriceQuantityUom#633311, netPriceQuantityUomUuid#633312, nextAvailabilityDateTime#633306, optimizationGroups#633323, orderDateTime#633303, orderProposalId#633285L, orderProposalItemGroupId#633287, orderProposalItemId#633286, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, originalReplenishmentRunId#633288L, plant#633299, previousOrderProposal#633291L, prodLocSpecificKpis#634031, product#633298, productGroup#633327, qty#633129, quantityAfterProdPlantOptimization#633128, quantityKpis#634059, shardId#632615, sourceOfSupplyUuid#633294, splitIndicator#633290L, subrange#633297, supplier#633296, supplierGroup#633295, supplyingPlant#633326]
Arguments: [availabilityDateTime#633305, channelStreamSpecificKpis#634046, constraintLabels#633317, constraintOperators#633318, constraintValues#633320, deliveryDateTime#633304, isFallbackOrderOnly#633307, logisticUnits#633322, measurements#633315, minimumOrderQuantity#633316, netPriceAmount#633313, netPriceCurrencyCode#633314, netPriceQuantity#633310, netPriceQuantityUom#633311, netPriceQuantityUomUuid#633312, nextAvailabilityDateTime#633306, optimizationGroups#633323, orderDateTime#633303, orderProposalId#633285L, orderProposalItemGroupId#633287, orderProposalItemId#633286, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, originalReplenishmentRunId#633288L, plant#633299, ... 14 more fields], [NOT (isFallbackOrderOnly#633307 <=> true)]
(6) InMemoryRelation
Arguments: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633285L, originalReplenishmentRunId#633288L, supplierGroup#633295, supplier#633296, supplyingPlant#633326, productGroup#633327, product#633298, plant#633299, subrange#633297, orderDateTime#633303, deliveryDateTime#633304, availabilityDateTime#633305, nextAvailabilityDateTime#633306, constraintValues#633320, constraintOperators#633318, constraintLabels#633317, logisticUnits#633322, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, splitIndicator#633290L, netPriceAmount#633313, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [2]: [shardId#632615, items#632617]
Arguments: [shardId#632615, items#632617], [(size(items#632617, true) > 0), isnotnull(items#632617)]
(8) InMemoryRelation
Arguments: [shardId#632615, orderProposalId#632616L, items#632617, optimizationGroups#632618, isOptimal#632619, optimizationInsights#632621], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [6]: [shardId#632615, orderProposalId#632616L, items#632617, optimizationGroups#632618, isOptimal#632619, optimizationInsights#632621]
Arguments: [shardId#632615, orderProposalId#632616L, items#632617, optimizationGroups#632618, isOptimal#632619, optimizationInsights#632621], [isnotnull(shardId#632615), (shardId#632615 = 0_1_10000002107)]
(10) InMemoryRelation
Arguments: [shardId#632615, orderProposalId#632616L, items#632617, optimizationGroups#632618, isOptimal#632619, lastModified#632620, optimizationInsights#632621], StorageLevel(disk, memory, 2 replicas)
(11) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#632615, orderProposalId#632616L, items#632617, optimizationGroups#632618, isOptimal#632619, lastModified#632620, optimizationInsights#632621]
Arguments: [shardId#632615, orderProposalId#632616L, items#632617, optimizationGroups#632618, isOptimal#632619, lastModified#632620, optimizationInsights#632621], MapPartitionsRDD[30129] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(12) Filter [codegen id : 1]
Input [7]: [shardId#632615, orderProposalId#632616L, items#632617, optimizationGroups#632618, isOptimal#632619, lastModified#632620, optimizationInsights#632621]
Condition : (isnotnull(shardId#632615) AND (shardId#632615 = 0_1_10000002107))
(13) Filter [codegen id : 1]
Input [6]: [shardId#632615, orderProposalId#632616L, items#632617, optimizationGroups#632618, isOptimal#632619, optimizationInsights#632621]
Condition : (isnotnull(shardId#632615) AND (shardId#632615 = 0_1_10000002107))
(14) Filter [codegen id : 3]
Input [2]: [shardId#632615, items#632617]
Condition : ((size(items#632617, true) > 0) AND isnotnull(items#632617))
(15) Generate [codegen id : 3]
Input [2]: [shardId#632615, items#632617]
Arguments: explode(items#632617), [shardId#632615], false, [item#633126]
(16) Project [codegen id : 3]
Output [4]: [shardId#632615, item#633126.worklistShardItemId AS worklistShardItemId#633127L, item#633126.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#633128, item#633126.qty AS qty#633129]
Input [2]: [shardId#632615, item#633126]
(17) Scan parquet
Output [38]: [orderProposalId#633328L, orderProposalItemId#633329, supplierGroup#633330, supplier#633331, plant#633332, deliveryDateTime#633333, subrange#633334, supplyingPlant#633335, productGroup#633336, product#633337, orderDateTime#633338, availabilityDateTime#633339, nextAvailabilityDateTime#633340, sourceOfSupplyUuid#633342, isFallbackOrderOnly#633345, splitIndicator#633347L, previousOrderProposal#633348L, worklistShardItemId#633351L, orderProposalItemGroupId#633352, externalProductId#633353, externalPlantId#633354, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, measurements#633369, originalReplenishmentRunId#633370L, optimizationGroups#633371, shardId#633372, sequenceId#633350]
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#633372), isnotnull(sequenceId#633350), (shardId#633372 = 0_1_10000002107), (sequenceId#633350 = 3)]
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#633328L, orderProposalItemId#633329, supplierGroup#633330, supplier#633331, plant#633332, deliveryDateTime#633333, subrange#633334, supplyingPlant#633335, productGroup#633336, product#633337, orderDateTime#633338, availabilityDateTime#633339, nextAvailabilityDateTime#633340, sourceOfSupplyUuid#633342, isFallbackOrderOnly#633345, splitIndicator#633347L, previousOrderProposal#633348L, worklistShardItemId#633351L, orderProposalItemGroupId#633352, externalProductId#633353, externalPlantId#633354, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, measurements#633369, originalReplenishmentRunId#633370L, optimizationGroups#633371, shardId#633372, sequenceId#633350]
(19) Filter [codegen id : 1]
Input [38]: [orderProposalId#633328L, orderProposalItemId#633329, supplierGroup#633330, supplier#633331, plant#633332, deliveryDateTime#633333, subrange#633334, supplyingPlant#633335, productGroup#633336, product#633337, orderDateTime#633338, availabilityDateTime#633339, nextAvailabilityDateTime#633340, sourceOfSupplyUuid#633342, isFallbackOrderOnly#633345, splitIndicator#633347L, previousOrderProposal#633348L, worklistShardItemId#633351L, orderProposalItemGroupId#633352, externalProductId#633353, externalPlantId#633354, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, measurements#633369, originalReplenishmentRunId#633370L, optimizationGroups#633371, shardId#633372, sequenceId#633350]
Condition : isnotnull(worklistShardItemId#633351L)
(20) Project [codegen id : 1]
Output [36]: [orderProposalId#633328L, orderProposalItemId#633329, supplierGroup#633330, supplier#633331, plant#633332, deliveryDateTime#633333, subrange#633334, supplyingPlant#633335, productGroup#633336, product#633337, orderDateTime#633338, availabilityDateTime#633339, nextAvailabilityDateTime#633340, sourceOfSupplyUuid#633342, isFallbackOrderOnly#633345, splitIndicator#633347L, previousOrderProposal#633348L, worklistShardItemId#633351L, orderProposalItemGroupId#633352, externalProductId#633353, externalPlantId#633354, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, measurements#633369, originalReplenishmentRunId#633370L, optimizationGroups#633371]
Input [38]: [orderProposalId#633328L, orderProposalItemId#633329, supplierGroup#633330, supplier#633331, plant#633332, deliveryDateTime#633333, subrange#633334, supplyingPlant#633335, productGroup#633336, product#633337, orderDateTime#633338, availabilityDateTime#633339, nextAvailabilityDateTime#633340, sourceOfSupplyUuid#633342, isFallbackOrderOnly#633345, splitIndicator#633347L, previousOrderProposal#633348L, worklistShardItemId#633351L, orderProposalItemGroupId#633352, externalProductId#633353, externalPlantId#633354, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, measurements#633369, originalReplenishmentRunId#633370L, optimizationGroups#633371, shardId#633372, sequenceId#633350]
(21) Exchange
Input [36]: [orderProposalId#633328L, orderProposalItemId#633329, supplierGroup#633330, supplier#633331, plant#633332, deliveryDateTime#633333, subrange#633334, supplyingPlant#633335, productGroup#633336, product#633337, orderDateTime#633338, availabilityDateTime#633339, nextAvailabilityDateTime#633340, sourceOfSupplyUuid#633342, isFallbackOrderOnly#633345, splitIndicator#633347L, previousOrderProposal#633348L, worklistShardItemId#633351L, orderProposalItemGroupId#633352, externalProductId#633353, externalPlantId#633354, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, measurements#633369, originalReplenishmentRunId#633370L, optimizationGroups#633371]
Arguments: hashpartitioning(worklistShardItemId#633351L, 20), REPARTITION_BY_NUM, [plan_id=261340]
(22) Project [codegen id : 2]
Output [36]: [worklistShardItemId#633351L, orderProposalId#633328L, orderProposalItemId#633329, orderProposalItemGroupId#633352, originalReplenishmentRunId#633370L, splitIndicator#633347L, previousOrderProposal#633348L, sourceOfSupplyUuid#633342, supplierGroup#633330, supplier#633331, subrange#633334, product#633337, plant#633332, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, isFallbackOrderOnly#633345, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, netPriceAmount#633364, netPriceCurrencyCode#633365, measurements#633369, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, logisticUnits#633355, optimizationGroups#633371, externalProductId#633353, externalPlantId#633354, supplyingPlant#633335, productGroup#633336]
Input [36]: [orderProposalId#633328L, orderProposalItemId#633329, supplierGroup#633330, supplier#633331, plant#633332, deliveryDateTime#633333, subrange#633334, supplyingPlant#633335, productGroup#633336, product#633337, orderDateTime#633338, availabilityDateTime#633339, nextAvailabilityDateTime#633340, sourceOfSupplyUuid#633342, isFallbackOrderOnly#633345, splitIndicator#633347L, previousOrderProposal#633348L, worklistShardItemId#633351L, orderProposalItemGroupId#633352, externalProductId#633353, externalPlantId#633354, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, measurements#633369, originalReplenishmentRunId#633370L, optimizationGroups#633371]
(23) BroadcastExchange
Input [36]: [worklistShardItemId#633351L, orderProposalId#633328L, orderProposalItemId#633329, orderProposalItemGroupId#633352, originalReplenishmentRunId#633370L, splitIndicator#633347L, previousOrderProposal#633348L, sourceOfSupplyUuid#633342, supplierGroup#633330, supplier#633331, subrange#633334, product#633337, plant#633332, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, isFallbackOrderOnly#633345, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, netPriceAmount#633364, netPriceCurrencyCode#633365, measurements#633369, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, logisticUnits#633355, optimizationGroups#633371, externalProductId#633353, externalPlantId#633354, supplyingPlant#633335, productGroup#633336]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=261344]
(24) BroadcastHashJoin [codegen id : 3]
Left keys [1]: [worklistShardItemId#633127L]
Right keys [1]: [worklistShardItemId#633351L]
Join type: LeftOuter
Join condition: (shardId#632615 = 0_1_10000002107)
(25) Project [codegen id : 3]
Output [39]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633328L, originalReplenishmentRunId#633370L, supplierGroup#633330, supplier#633331, supplyingPlant#633335, productGroup#633336, product#633337, plant#633332, subrange#633334, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, constraintValues#633361, constraintOperators#633360, constraintLabels#633359, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, splitIndicator#633347L, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, sourceOfSupplyUuid#633342, minimumOrderQuantity#633358, orderProposalItemId#633329, orderProposalItemGroupId#633352, optimizationGroups#633371, measurements#633369, externalProductId#633353, externalPlantId#633354, previousOrderProposal#633348L, isFallbackOrderOnly#633345]
Input [40]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, worklistShardItemId#633351L, orderProposalId#633328L, orderProposalItemId#633329, orderProposalItemGroupId#633352, originalReplenishmentRunId#633370L, splitIndicator#633347L, previousOrderProposal#633348L, sourceOfSupplyUuid#633342, supplierGroup#633330, supplier#633331, subrange#633334, product#633337, plant#633332, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, isFallbackOrderOnly#633345, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, netPriceAmount#633364, netPriceCurrencyCode#633365, measurements#633369, minimumOrderQuantity#633358, constraintLabels#633359, constraintOperators#633360, constraintValues#633361, logisticUnits#633355, optimizationGroups#633371, externalProductId#633353, externalPlantId#633354, supplyingPlant#633335, productGroup#633336]
(26) Exchange
Input [39]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633328L, originalReplenishmentRunId#633370L, supplierGroup#633330, supplier#633331, supplyingPlant#633335, productGroup#633336, product#633337, plant#633332, subrange#633334, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, constraintValues#633361, constraintOperators#633360, constraintLabels#633359, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, splitIndicator#633347L, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, sourceOfSupplyUuid#633342, minimumOrderQuantity#633358, orderProposalItemId#633329, orderProposalItemGroupId#633352, optimizationGroups#633371, measurements#633369, externalProductId#633353, externalPlantId#633354, previousOrderProposal#633348L, isFallbackOrderOnly#633345]
Arguments: hashpartitioning(shardId#632615, worklistShardItemId#633127L, 20), ENSURE_REQUIREMENTS, [plan_id=261349]
(27) Sort [codegen id : 4]
Input [39]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633328L, originalReplenishmentRunId#633370L, supplierGroup#633330, supplier#633331, supplyingPlant#633335, productGroup#633336, product#633337, plant#633332, subrange#633334, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, constraintValues#633361, constraintOperators#633360, constraintLabels#633359, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, splitIndicator#633347L, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, sourceOfSupplyUuid#633342, minimumOrderQuantity#633358, orderProposalItemId#633329, orderProposalItemGroupId#633352, optimizationGroups#633371, measurements#633369, externalProductId#633353, externalPlantId#633354, previousOrderProposal#633348L, isFallbackOrderOnly#633345]
Arguments: [shardId#632615 ASC NULLS FIRST, worklistShardItemId#633127L ASC NULLS FIRST], false, 0
(28) Scan ExistingRDD [codegen id : 5]
Output [6]: [shardId#634024, worklistShardItemId#634025L, qty#634026, demandChannel#634027, demandStream#634028, kpis#634029]
Arguments: [shardId#634024, worklistShardItemId#634025L, qty#634026, demandChannel#634027, demandStream#634028, kpis#634029], MapPartitionsRDD[30203] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(29) Filter [codegen id : 5]
Input [6]: [shardId#634024, worklistShardItemId#634025L, qty#634026, demandChannel#634027, demandStream#634028, kpis#634029]
Condition : (((isnull(qty#634026) AND isnull(demandChannel#634027)) AND isnull(demandStream#634028)) AND (isnotnull(shardId#634024) AND isnotnull(worklistShardItemId#634025L)))
(30) Project [codegen id : 5]
Output [3]: [shardId#634024, worklistShardItemId#634025L, coalesce(kpis#634029, []) AS prodLocSpecificKpis#634030]
Input [6]: [shardId#634024, worklistShardItemId#634025L, qty#634026, demandChannel#634027, demandStream#634028, kpis#634029]
(31) Exchange
Input [3]: [shardId#634024, worklistShardItemId#634025L, prodLocSpecificKpis#634030]
Arguments: hashpartitioning(shardId#634024, worklistShardItemId#634025L, 20), ENSURE_REQUIREMENTS, [plan_id=261355]
(32) Sort [codegen id : 6]
Input [3]: [shardId#634024, worklistShardItemId#634025L, prodLocSpecificKpis#634030]
Arguments: [shardId#634024 ASC NULLS FIRST, worklistShardItemId#634025L ASC NULLS FIRST], false, 0
(33) SortMergeJoin [codegen id : 7]
Left keys [2]: [shardId#632615, worklistShardItemId#633127L]
Right keys [2]: [shardId#634024, worklistShardItemId#634025L]
Join type: LeftOuter
Join condition: None
(34) Project [codegen id : 7]
Output [40]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633328L, originalReplenishmentRunId#633370L, supplierGroup#633330, supplier#633331, supplyingPlant#633335, productGroup#633336, product#633337, plant#633332, subrange#633334, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, constraintValues#633361, constraintOperators#633360, constraintLabels#633359, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, splitIndicator#633347L, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, sourceOfSupplyUuid#633342, minimumOrderQuantity#633358, orderProposalItemId#633329, orderProposalItemGroupId#633352, optimizationGroups#633371, measurements#633369, externalProductId#633353, externalPlantId#633354, previousOrderProposal#633348L, isFallbackOrderOnly#633345, coalesce(prodLocSpecificKpis#634030, []) AS prodLocSpecificKpis#634031]
Input [42]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633328L, originalReplenishmentRunId#633370L, supplierGroup#633330, supplier#633331, supplyingPlant#633335, productGroup#633336, product#633337, plant#633332, subrange#633334, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, constraintValues#633361, constraintOperators#633360, constraintLabels#633359, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, splitIndicator#633347L, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, sourceOfSupplyUuid#633342, minimumOrderQuantity#633358, orderProposalItemId#633329, orderProposalItemGroupId#633352, optimizationGroups#633371, measurements#633369, externalProductId#633353, externalPlantId#633354, previousOrderProposal#633348L, isFallbackOrderOnly#633345, shardId#634024, worklistShardItemId#634025L, prodLocSpecificKpis#634030]
(35) Scan ExistingRDD [codegen id : 8]
Output [6]: [shardId#634040, worklistShardItemId#634041L, qty#634042, demandChannel#634043, demandStream#634044, kpis#634045]
Arguments: [shardId#634040, worklistShardItemId#634041L, qty#634042, demandChannel#634043, demandStream#634044, kpis#634045], MapPartitionsRDD[30203] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(36) Filter [codegen id : 8]
Input [6]: [shardId#634040, worklistShardItemId#634041L, qty#634042, demandChannel#634043, demandStream#634044, kpis#634045]
Condition : ((((isnull(qty#634042) AND isnotnull(demandChannel#634043)) AND isnotnull(demandStream#634044)) AND (size(kpis#634045, true) > 0)) AND (isnotnull(shardId#634040) AND isnotnull(worklistShardItemId#634041L)))
(37) Project [codegen id : 8]
Output [5]: [shardId#634040, worklistShardItemId#634041L, demandChannel#634043, demandStream#634044, kpis#634045]
Input [6]: [shardId#634040, worklistShardItemId#634041L, qty#634042, demandChannel#634043, demandStream#634044, kpis#634045]
(38) ObjectHashAggregate
Input [5]: [shardId#634040, worklistShardItemId#634041L, demandChannel#634043, demandStream#634044, kpis#634045]
Keys [2]: [shardId#634040, worklistShardItemId#634041L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#634043, demandStream, demandStream#634044, kpis, kpis#634045), 0, 0)]
Aggregate Attributes [1]: [buf#634220]
Results [3]: [shardId#634040, worklistShardItemId#634041L, buf#634221]
(39) Exchange
Input [3]: [shardId#634040, worklistShardItemId#634041L, buf#634221]
Arguments: hashpartitioning(shardId#634040, worklistShardItemId#634041L, 20), ENSURE_REQUIREMENTS, [plan_id=261366]
(40) ObjectHashAggregate
Input [3]: [shardId#634040, worklistShardItemId#634041L, buf#634221]
Keys [2]: [shardId#634040, worklistShardItemId#634041L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#634043, demandStream, demandStream#634044, kpis, kpis#634045), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#634043, demandStream, demandStream#634044, kpis, kpis#634045), 0, 0)#634039]
Results [3]: [shardId#634040, worklistShardItemId#634041L, collect_list(struct(demandChannel, demandChannel#634043, demandStream, demandStream#634044, kpis, kpis#634045), 0, 0)#634039 AS channelStreamSpecificKpis#634032]
(41) Sort [codegen id : 9]
Input [3]: [shardId#634040, worklistShardItemId#634041L, channelStreamSpecificKpis#634032]
Arguments: [shardId#634040 ASC NULLS FIRST, worklistShardItemId#634041L ASC NULLS FIRST], false, 0
(42) SortMergeJoin [codegen id : 10]
Left keys [2]: [shardId#632615, worklistShardItemId#633127L]
Right keys [2]: [shardId#634040, worklistShardItemId#634041L]
Join type: LeftOuter
Join condition: None
(43) Project [codegen id : 10]
Output [41]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633328L, originalReplenishmentRunId#633370L, supplierGroup#633330, supplier#633331, supplyingPlant#633335, productGroup#633336, product#633337, plant#633332, subrange#633334, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, constraintValues#633361, constraintOperators#633360, constraintLabels#633359, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, splitIndicator#633347L, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, sourceOfSupplyUuid#633342, minimumOrderQuantity#633358, orderProposalItemId#633329, orderProposalItemGroupId#633352, optimizationGroups#633371, measurements#633369, externalProductId#633353, externalPlantId#633354, previousOrderProposal#633348L, isFallbackOrderOnly#633345, prodLocSpecificKpis#634031, coalesce(channelStreamSpecificKpis#634032, []) AS channelStreamSpecificKpis#634046]
Input [43]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633328L, originalReplenishmentRunId#633370L, supplierGroup#633330, supplier#633331, supplyingPlant#633335, productGroup#633336, product#633337, plant#633332, subrange#633334, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, constraintValues#633361, constraintOperators#633360, constraintLabels#633359, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, splitIndicator#633347L, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, sourceOfSupplyUuid#633342, minimumOrderQuantity#633358, orderProposalItemId#633329, orderProposalItemGroupId#633352, optimizationGroups#633371, measurements#633369, externalProductId#633353, externalPlantId#633354, previousOrderProposal#633348L, isFallbackOrderOnly#633345, prodLocSpecificKpis#634031, shardId#634040, worklistShardItemId#634041L, channelStreamSpecificKpis#634032]
(44) Scan ExistingRDD [codegen id : 11]
Output [6]: [shardId#634053, worklistShardItemId#634054L, qty#634055, demandChannel#634056, demandStream#634057, kpis#634058]
Arguments: [shardId#634053, worklistShardItemId#634054L, qty#634055, demandChannel#634056, demandStream#634057, kpis#634058], MapPartitionsRDD[30203] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(45) Filter [codegen id : 11]
Input [6]: [shardId#634053, worklistShardItemId#634054L, qty#634055, demandChannel#634056, demandStream#634057, kpis#634058]
Condition : ((isnotnull(qty#634055) AND isnotnull(kpis#634058)) AND (isnotnull(shardId#634053) AND isnotnull(worklistShardItemId#634054L)))
(46) Project [codegen id : 11]
Output [4]: [shardId#634053, worklistShardItemId#634054L, qty#634055, kpis#634058]
Input [6]: [shardId#634053, worklistShardItemId#634054L, qty#634055, demandChannel#634056, demandStream#634057, kpis#634058]
(47) ObjectHashAggregate
Input [4]: [shardId#634053, worklistShardItemId#634054L, qty#634055, kpis#634058]
Keys [2]: [shardId#634053, worklistShardItemId#634054L]
Functions [1]: [partial_collect_list(struct(qty, qty#634055, kpis, kpis#634058), 0, 0)]
Aggregate Attributes [1]: [buf#634222]
Results [3]: [shardId#634053, worklistShardItemId#634054L, buf#634223]
(48) Exchange
Input [3]: [shardId#634053, worklistShardItemId#634054L, buf#634223]
Arguments: hashpartitioning(shardId#634053, worklistShardItemId#634054L, 20), ENSURE_REQUIREMENTS, [plan_id=261378]
(49) ObjectHashAggregate
Input [3]: [shardId#634053, worklistShardItemId#634054L, buf#634223]
Keys [2]: [shardId#634053, worklistShardItemId#634054L]
Functions [1]: [collect_list(struct(qty, qty#634055, kpis, kpis#634058), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#634055, kpis, kpis#634058), 0, 0)#634052]
Results [3]: [shardId#634053, worklistShardItemId#634054L, map_from_entries(collect_list(struct(qty, qty#634055, kpis, kpis#634058), 0, 0)#634052) AS quantityKpis#634047]
(50) Sort [codegen id : 12]
Input [3]: [shardId#634053, worklistShardItemId#634054L, quantityKpis#634047]
Arguments: [shardId#634053 ASC NULLS FIRST, worklistShardItemId#634054L ASC NULLS FIRST], false, 0
(51) SortMergeJoin [codegen id : 13]
Left keys [2]: [shardId#632615, worklistShardItemId#633127L]
Right keys [2]: [shardId#634053, worklistShardItemId#634054L]
Join type: LeftOuter
Join condition: None
(52) Project [codegen id : 13]
Output [42]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633328L, originalReplenishmentRunId#633370L, supplierGroup#633330, supplier#633331, supplyingPlant#633335, productGroup#633336, product#633337, plant#633332, subrange#633334, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, constraintValues#633361, constraintOperators#633360, constraintLabels#633359, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, splitIndicator#633347L, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, sourceOfSupplyUuid#633342, minimumOrderQuantity#633358, orderProposalItemId#633329, orderProposalItemGroupId#633352, optimizationGroups#633371, measurements#633369, externalProductId#633353, externalPlantId#633354, previousOrderProposal#633348L, isFallbackOrderOnly#633345, prodLocSpecificKpis#634031, channelStreamSpecificKpis#634046, coalesce(quantityKpis#634047, map(keys: [], values: [])) AS quantityKpis#634059]
Input [44]: [shardId#632615, worklistShardItemId#633127L, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633328L, originalReplenishmentRunId#633370L, supplierGroup#633330, supplier#633331, supplyingPlant#633335, productGroup#633336, product#633337, plant#633332, subrange#633334, orderDateTime#633338, deliveryDateTime#633333, availabilityDateTime#633339, nextAvailabilityDateTime#633340, constraintValues#633361, constraintOperators#633360, constraintLabels#633359, logisticUnits#633355, orderQuantityBaseUom#633356, orderQuantityBaseUomUuid#633357, splitIndicator#633347L, netPriceAmount#633364, netPriceCurrencyCode#633365, netPriceQuantity#633366, netPriceQuantityUom#633367, netPriceQuantityUomUuid#633368, sourceOfSupplyUuid#633342, minimumOrderQuantity#633358, orderProposalItemId#633329, orderProposalItemGroupId#633352, optimizationGroups#633371, measurements#633369, externalProductId#633353, externalPlantId#633354, previousOrderProposal#633348L, isFallbackOrderOnly#633345, prodLocSpecificKpis#634031, channelStreamSpecificKpis#634046, shardId#634053, worklistShardItemId#634054L, quantityKpis#634047]
(53) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#633305, channelStreamSpecificKpis#634046, constraintLabels#633317, constraintOperators#633318, constraintValues#633320, deliveryDateTime#633304, isFallbackOrderOnly#633307, logisticUnits#633322, measurements#633315, minimumOrderQuantity#633316, netPriceAmount#633313, netPriceCurrencyCode#633314, netPriceQuantity#633310, netPriceQuantityUom#633311, netPriceQuantityUomUuid#633312, nextAvailabilityDateTime#633306, optimizationGroups#633323, orderDateTime#633303, orderProposalId#633285L, orderProposalItemGroupId#633287, orderProposalItemId#633286, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, originalReplenishmentRunId#633288L, plant#633299, previousOrderProposal#633291L, prodLocSpecificKpis#634031, product#633298, productGroup#633327, qty#633129, quantityAfterProdPlantOptimization#633128, quantityKpis#634059, shardId#632615, sourceOfSupplyUuid#633294, splitIndicator#633290L, subrange#633297, supplier#633296, supplierGroup#633295, supplyingPlant#633326]
Condition : NOT (isFallbackOrderOnly#633307 <=> true)
(54) Project [codegen id : 1]
Output [36]: [shardId#632615, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633285L, originalReplenishmentRunId#633288L, supplierGroup#633295, supplier#633296, supplyingPlant#633326, productGroup#633327, product#633298, plant#633299, subrange#633297, orderDateTime#633303, deliveryDateTime#633304, availabilityDateTime#633305, nextAvailabilityDateTime#633306, logisticUnits#633322, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, splitIndicator#633290L, netPriceAmount#633313, netPriceCurrencyCode#633314, netPriceQuantity#633310, netPriceQuantityUom#633311, netPriceQuantityUomUuid#633312, sourceOfSupplyUuid#633294, minimumOrderQuantity#633316, orderProposalItemId#633286, orderProposalItemGroupId#633287, optimizationGroups#633323, measurements#633315, previousOrderProposal#633291L, prodLocSpecificKpis#634031, channelStreamSpecificKpis#634046, quantityKpis#634059, arrays_zip(constraintLabels#633317, constraintOperators#633318, constraintValues#633320, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#634473]
Input [39]: [availabilityDateTime#633305, channelStreamSpecificKpis#634046, constraintLabels#633317, constraintOperators#633318, constraintValues#633320, deliveryDateTime#633304, isFallbackOrderOnly#633307, logisticUnits#633322, measurements#633315, minimumOrderQuantity#633316, netPriceAmount#633313, netPriceCurrencyCode#633314, netPriceQuantity#633310, netPriceQuantityUom#633311, netPriceQuantityUomUuid#633312, nextAvailabilityDateTime#633306, optimizationGroups#633323, orderDateTime#633303, orderProposalId#633285L, orderProposalItemGroupId#633287, orderProposalItemId#633286, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, originalReplenishmentRunId#633288L, plant#633299, previousOrderProposal#633291L, prodLocSpecificKpis#634031, product#633298, productGroup#633327, qty#633129, quantityAfterProdPlantOptimization#633128, quantityKpis#634059, shardId#632615, sourceOfSupplyUuid#633294, splitIndicator#633290L, subrange#633297, supplier#633296, supplierGroup#633295, supplyingPlant#633326]
(55) Project
Output [37]: [shardId#632615, qty#633129, orderProposalId#633285L, originalReplenishmentRunId#633288L, supplierGroup#633295, supplier#633296, supplyingPlant#633326, productGroup#633327, product#633298, plant#633299, subrange#633297, orderDateTime#633303, deliveryDateTime#633304, availabilityDateTime#633305, nextAvailabilityDateTime#633306, logisticUnits#633322, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, splitIndicator#633290L, netPriceAmount#633313, netPriceCurrencyCode#633314, netPriceQuantity#633310, netPriceQuantityUom#633311, netPriceQuantityUomUuid#633312, sourceOfSupplyUuid#633294, orderProposalItemId#633286, orderProposalItemGroupId#633287, optimizationGroups#633323, measurements#633315, previousOrderProposal#633291L, prodLocSpecificKpis#634031, channelStreamSpecificKpis#634046, quantityKpis#634059, struct(minServiceLevel, array_min(filter(constraintStructArray#634473, lambdafunction((lambda x_1591#634480.constraintLabels = ServiceLevel), lambda x_1591#634480, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#634473, lambdafunction((lambda x_1592#634481.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_1592#634481, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#634473, lambdafunction((lambda x_1593#634482.constraintLabels = RangeOfCoverage), lambda x_1593#634482, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#633316, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#634031, lambdafunction((lambda x_1594#634483.label = NonListingStartTimestamp), lambda x_1594#634483, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#634479, CASE WHEN (qty#633129 <=> quantityAfterProdPlantOptimization#633128) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#633129 * (cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1595#634551.isOrderUnit, lambda x_1595#634551, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1595#634552.isOrderUnit, lambda x_1595#634552, false)), 1, None, false).numerator as double))), qty#633129), orderQuantityUom, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1595#634553.isOrderUnit, lambda x_1595#634553, false)), 1, None, false).uom, orderQuantityBaseUom#633308), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1595#634554.isOrderUnit, lambda x_1595#634554, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#633309), candidateOrderQuantityInBaseUnit, qty#633129, orderQuantityBaseUom, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#633309, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#633322, lambdafunction((lambda x_1597#634555.isPreferred AND (((qty#633129 * cast(lambda x_1597#634555.denominator as double)) % cast(lambda x_1597#634555.numerator as double)) = 0.0)), lambda x_1597#634555, false)), lambdafunction(struct(inPreferredQuantity, ((qty#633129 * cast(lambda x_1598#634593.denominator as double)) / cast(lambda x_1598#634593.numerator as double)), uom, lambda x_1598#634593.uom, uomUuid, lambda x_1598#634593.uomUuid), lambda x_1598#634593, false))).inPreferredQuantity, coalesce((qty#633129 * (cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1596#634556.isOrderUnit, lambda x_1596#634556, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1596#634557.isOrderUnit, lambda x_1596#634557, false)), 1, None, false).numerator as double))), qty#633129)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#633322, lambdafunction((lambda x_1597#634558.isPreferred AND (((qty#633129 * cast(lambda x_1597#634558.denominator as double)) % cast(lambda x_1597#634558.numerator as double)) = 0.0)), lambda x_1597#634558, false)), lambdafunction(struct(inPreferredQuantity, ((qty#633129 * cast(lambda x_1598#634594.denominator as double)) / cast(lambda x_1598#634594.numerator as double)), uom, lambda x_1598#634594.uom, uomUuid, lambda x_1598#634594.uomUuid), lambda x_1598#634594, false))).uom, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1596#634559.isOrderUnit, lambda x_1596#634559, false)), 1, None, false).uom, orderQuantityBaseUom#633308)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#633322, lambdafunction((lambda x_1597#634560.isPreferred AND (((qty#633129 * cast(lambda x_1597#634560.denominator as double)) % cast(lambda x_1597#634560.numerator as double)) = 0.0)), lambda x_1597#634560, false)), lambdafunction(struct(inPreferredQuantity, ((qty#633129 * cast(lambda x_1598#634595.denominator as double)) / cast(lambda x_1598#634595.numerator as double)), uom, lambda x_1598#634595.uom, uomUuid, lambda x_1598#634595.uomUuid), lambda x_1598#634595, false))).uomUuid, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1596#634561.isOrderUnit, lambda x_1596#634561, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#633309)), serviceLevel, coalesce(filter(element_at(quantityKpis#634059, qty#633129, None, false), lambdafunction((lambda x_1603#634562.label = ServiceLevel), lambda x_1603#634562, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#633129 * (cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1595#634565.isOrderUnit, lambda x_1595#634565, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1595#634566.isOrderUnit, lambda x_1595#634566, false)), 1, None, false).numerator as double))), qty#633129), orderQuantityUom, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1595#634567.isOrderUnit, lambda x_1595#634567, false)), 1, None, false).uom, orderQuantityBaseUom#633308), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1595#634568.isOrderUnit, lambda x_1595#634568, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#633309), candidateOrderQuantityInBaseUnit, qty#633129, orderQuantityBaseUom, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#633309, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#633322, lambdafunction((lambda x_1597#634569.isPreferred AND (((qty#633129 * cast(lambda x_1597#634569.denominator as double)) % cast(lambda x_1597#634569.numerator as double)) = 0.0)), lambda x_1597#634569, false)), lambdafunction(struct(inPreferredQuantity, ((qty#633129 * cast(lambda x_1598#634596.denominator as double)) / cast(lambda x_1598#634596.numerator as double)), uom, lambda x_1598#634596.uom, uomUuid, lambda x_1598#634596.uomUuid), lambda x_1598#634596, false))).inPreferredQuantity, coalesce((qty#633129 * (cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1596#634570.isOrderUnit, lambda x_1596#634570, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1596#634571.isOrderUnit, lambda x_1596#634571, false)), 1, None, false).numerator as double))), qty#633129)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#633322, lambdafunction((lambda x_1597#634572.isPreferred AND (((qty#633129 * cast(lambda x_1597#634572.denominator as double)) % cast(lambda x_1597#634572.numerator as double)) = 0.0)), lambda x_1597#634572, false)), lambdafunction(struct(inPreferredQuantity, ((qty#633129 * cast(lambda x_1598#634597.denominator as double)) / cast(lambda x_1598#634597.numerator as double)), uom, lambda x_1598#634597.uom, uomUuid, lambda x_1598#634597.uomUuid), lambda x_1598#634597, false))).uom, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1596#634573.isOrderUnit, lambda x_1596#634573, false)), 1, None, false).uom, orderQuantityBaseUom#633308)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#633322, lambdafunction((lambda x_1597#634574.isPreferred AND (((qty#633129 * cast(lambda x_1597#634574.denominator as double)) % cast(lambda x_1597#634574.numerator as double)) = 0.0)), lambda x_1597#634574, false)), lambdafunction(struct(inPreferredQuantity, ((qty#633129 * cast(lambda x_1598#634598.denominator as double)) / cast(lambda x_1598#634598.numerator as double)), uom, lambda x_1598#634598.uom, uomUuid, lambda x_1598#634598.uomUuid), lambda x_1598#634598, false))).uomUuid, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1596#634575.isOrderUnit, lambda x_1596#634575, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#633309)), serviceLevel, coalesce(filter(element_at(quantityKpis#634059, qty#633129, None, false), lambdafunction((lambda x_1606#634576.label = ServiceLevel), lambda x_1606#634576, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#633128 * (cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1599#634579.isOrderUnit, lambda x_1599#634579, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1599#634580.isOrderUnit, lambda x_1599#634580, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#633128), orderQuantityUom, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1599#634581.isOrderUnit, lambda x_1599#634581, false)), 1, None, false).uom, orderQuantityBaseUom#633308), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1599#634582.isOrderUnit, lambda x_1599#634582, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#633309), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#633128, orderQuantityBaseUom, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#633309, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#633322, lambdafunction((lambda x_1601#634583.isPreferred AND (((quantityAfterProdPlantOptimization#633128 * cast(lambda x_1601#634583.denominator as double)) % cast(lambda x_1601#634583.numerator as double)) = 0.0)), lambda x_1601#634583, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#633128 * cast(lambda x_1602#634599.denominator as double)) / cast(lambda x_1602#634599.numerator as double)), uom, lambda x_1602#634599.uom, uomUuid, lambda x_1602#634599.uomUuid), lambda x_1602#634599, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#633128 * (cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1600#634584.isOrderUnit, lambda x_1600#634584, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1600#634585.isOrderUnit, lambda x_1600#634585, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#633128)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#633322, lambdafunction((lambda x_1601#634586.isPreferred AND (((quantityAfterProdPlantOptimization#633128 * cast(lambda x_1601#634586.denominator as double)) % cast(lambda x_1601#634586.numerator as double)) = 0.0)), lambda x_1601#634586, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#633128 * cast(lambda x_1602#634600.denominator as double)) / cast(lambda x_1602#634600.numerator as double)), uom, lambda x_1602#634600.uom, uomUuid, lambda x_1602#634600.uomUuid), lambda x_1602#634600, false))).uom, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1600#634587.isOrderUnit, lambda x_1600#634587, false)), 1, None, false).uom, orderQuantityBaseUom#633308)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#633322, lambdafunction((lambda x_1601#634588.isPreferred AND (((quantityAfterProdPlantOptimization#633128 * cast(lambda x_1601#634588.denominator as double)) % cast(lambda x_1601#634588.numerator as double)) = 0.0)), lambda x_1601#634588, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#633128 * cast(lambda x_1602#634601.denominator as double)) / cast(lambda x_1602#634601.numerator as double)), uom, lambda x_1602#634601.uom, uomUuid, lambda x_1602#634601.uomUuid), lambda x_1602#634601, false))).uomUuid, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1600#634589.isOrderUnit, lambda x_1600#634589, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#633309)), serviceLevel, coalesce(filter(element_at(quantityKpis#634059, quantityAfterProdPlantOptimization#633128, None, false), lambdafunction((lambda x_1609#634590.label = ServiceLevel), lambda x_1609#634590, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#634550, coalesce(filter(prodLocSpecificKpis#634031, lambdafunction((lambda x_1612#634603.label = InitialStockQty), lambda x_1612#634603, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#634602, coalesce(filter(prodLocSpecificKpis#634031, lambdafunction((lambda x_1613#634605.label = DemandPeriodEndTimestamp), lambda x_1613#634605, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#634604]
Input [36]: [shardId#632615, quantityAfterProdPlantOptimization#633128, qty#633129, orderProposalId#633285L, originalReplenishmentRunId#633288L, supplierGroup#633295, supplier#633296, supplyingPlant#633326, productGroup#633327, product#633298, plant#633299, subrange#633297, orderDateTime#633303, deliveryDateTime#633304, availabilityDateTime#633305, nextAvailabilityDateTime#633306, logisticUnits#633322, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, splitIndicator#633290L, netPriceAmount#633313, netPriceCurrencyCode#633314, netPriceQuantity#633310, netPriceQuantityUom#633311, netPriceQuantityUomUuid#633312, sourceOfSupplyUuid#633294, minimumOrderQuantity#633316, orderProposalItemId#633286, orderProposalItemGroupId#633287, optimizationGroups#633323, measurements#633315, previousOrderProposal#633291L, prodLocSpecificKpis#634031, channelStreamSpecificKpis#634046, quantityKpis#634059, constraintStructArray#634473]
(56) Project
Output [21]: [shardId#632615, qty#633129, orderProposalId#633285L, originalReplenishmentRunId#633288L, supplierGroup#633295, supplier#633296, supplyingPlant#633326, productGroup#633327, product#633298, plant#633299, subrange#633297, orderDateTime#633303, deliveryDateTime#633304, logisticUnits#633322, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, splitIndicator#633290L, orderProposalItemId#633286, orderProposalItemGroupId#633287, previousOrderProposal#633291L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#633296, supplyingPlant, supplyingPlant#633326, productGroup, productGroup#633327, product, product#633298, plant, plant#633299, supplierSubRange, subrange#633297, sourceOfSupplyUuid, sourceOfSupplyUuid#633294, deliveryDateTime, deliveryDateTime#633304, unitPrice, netPriceAmount#633313, unitPriceCurrency, netPriceCurrencyCode#633314, unitPriceQuantity, ... 37 more fields) AS parentItem#634684]
Input [37]: [shardId#632615, qty#633129, orderProposalId#633285L, originalReplenishmentRunId#633288L, supplierGroup#633295, supplier#633296, supplyingPlant#633326, productGroup#633327, product#633298, plant#633299, subrange#633297, orderDateTime#633303, deliveryDateTime#633304, availabilityDateTime#633305, nextAvailabilityDateTime#633306, logisticUnits#633322, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, splitIndicator#633290L, netPriceAmount#633313, netPriceCurrencyCode#633314, netPriceQuantity#633310, netPriceQuantityUom#633311, netPriceQuantityUomUuid#633312, sourceOfSupplyUuid#633294, orderProposalItemId#633286, orderProposalItemGroupId#633287, optimizationGroups#633323, measurements#633315, previousOrderProposal#633291L, prodLocSpecificKpis#634031, channelStreamSpecificKpis#634046, quantityKpis#634059, constraintBenchmark#634479, calculationAnalysis#634550, inventoryDateTime#634602, demandPeriodEndDateTime#634604]
(57) Project
Output [12]: [shardId#632615, orderProposalId#633285L, originalReplenishmentRunId#633288L, supplierGroup#633295, supplier#633296, supplyingPlant#633326, orderDateTime#633303, splitIndicator#633290L, orderProposalItemGroupId#633287, previousOrderProposal#633291L, parentItem#634684, struct(itemId, orderProposalItemId#633286, supplier, supplier#633296, supplyingPlant, supplyingPlant#633326, productGroup, productGroup#633327, product, product#633298, plant, plant#633299, supplierSubRange, subrange#633297, deliveryDateTime, deliveryDateTime#633304, orderQuantity, coalesce((qty#633129 * (cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1637#634718.isOrderUnit, lambda x_1637#634718, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1637#634719.isOrderUnit, lambda x_1637#634719, false)), 1, None, false).numerator as double))), qty#633129), orderQuantityUom, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1637#634720.isOrderUnit, lambda x_1637#634720, false)), 1, None, false).uom, orderQuantityBaseUom#633308), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#633322, lambdafunction(lambda x_1637#634721.isOrderUnit, lambda x_1637#634721, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#633309), orderQuantityInBaseUnit, qty#633129, orderQuantityBaseUom, ... 13 more fields) AS item#634715]
Input [21]: [shardId#632615, qty#633129, orderProposalId#633285L, originalReplenishmentRunId#633288L, supplierGroup#633295, supplier#633296, supplyingPlant#633326, productGroup#633327, product#633298, plant#633299, subrange#633297, orderDateTime#633303, deliveryDateTime#633304, logisticUnits#633322, orderQuantityBaseUom#633308, orderQuantityBaseUomUuid#633309, splitIndicator#633290L, orderProposalItemId#633286, orderProposalItemGroupId#633287, previousOrderProposal#633291L, parentItem#634684]
(58) ObjectHashAggregate
Input [12]: [shardId#632615, orderProposalId#633285L, originalReplenishmentRunId#633288L, supplierGroup#633295, supplier#633296, supplyingPlant#633326, orderDateTime#633303, splitIndicator#633290L, orderProposalItemGroupId#633287, previousOrderProposal#633291L, parentItem#634684, item#634715]
Keys [4]: [shardId#632615, orderProposalId#633285L, splitIndicator#633290L, orderProposalItemGroupId#633287]
Functions [8]: [partial_max(originalReplenishmentRunId#633288L), partial_max(supplierGroup#633295), partial_max(supplier#633296), partial_max(supplyingPlant#633326), partial_max(orderDateTime#633303), partial_collect_list(parentItem#634684, 0, 0), partial_collect_set(previousOrderProposal#633291L, 0, 0), partial_collect_list(item#634715, 0, 0)]
Aggregate Attributes [8]: [max#635976L, max#635977, max#635978, max#635979, max#635980, buf#635981, buf#635982, buf#635983]
Results [12]: [shardId#632615, orderProposalId#633285L, splitIndicator#633290L, orderProposalItemGroupId#633287, max#635984L, max#635985, max#635986, max#635987, max#635988, buf#635989, buf#635990, buf#635991]
(59) Exchange
Input [12]: [shardId#632615, orderProposalId#633285L, splitIndicator#633290L, orderProposalItemGroupId#633287, max#635984L, max#635985, max#635986, max#635987, max#635988, buf#635989, buf#635990, buf#635991]
Arguments: hashpartitioning(shardId#632615, orderProposalId#633285L, splitIndicator#633290L, orderProposalItemGroupId#633287, 20), ENSURE_REQUIREMENTS, [plan_id=261621]
(60) ObjectHashAggregate
Input [12]: [shardId#632615, orderProposalId#633285L, splitIndicator#633290L, orderProposalItemGroupId#633287, max#635984L, max#635985, max#635986, max#635987, max#635988, buf#635989, buf#635990, buf#635991]
Keys [4]: [shardId#632615, orderProposalId#633285L, splitIndicator#633290L, orderProposalItemGroupId#633287]
Functions [8]: [max(originalReplenishmentRunId#633288L), max(supplierGroup#633295), max(supplier#633296), max(supplyingPlant#633326), max(orderDateTime#633303), collect_list(parentItem#634684, 0, 0), collect_set(previousOrderProposal#633291L, 0, 0), collect_list(item#634715, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#633288L)#634784L, max(supplierGroup#633295)#634785, max(supplier#633296)#634786, max(supplyingPlant#633326)#634787, max(orderDateTime#633303)#634788, collect_list(parentItem#634684, 0, 0)#634789, collect_set(previousOrderProposal#633291L, 0, 0)#634791, collect_list(item#634715, 0, 0)#634790]
Results [10]: [shardId#632615, orderProposalId#633285L, max(originalReplenishmentRunId#633288L)#634784L AS originalReplenishmentRunId#634732L, max(supplierGroup#633295)#634785 AS supplierGroup#634733, max(supplier#633296)#634786 AS supplier#634734, max(supplyingPlant#633326)#634787 AS supplyingPlant#634735, max(orderDateTime#633303)#634788 AS orderDateTime#634736, collect_list(parentItem#634684, 0, 0)#634789 AS parentItems#634737, collect_set(previousOrderProposal#633291L, 0, 0)#634791 AS previousOrderProposals#634739, struct(itemGroupId, coalesce(orderProposalItemGroupId#633287, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#634715, 0, 0)#634790) AS itemGroup#634793]
(61) ObjectHashAggregate
Input [10]: [shardId#632615, orderProposalId#633285L, originalReplenishmentRunId#634732L, supplierGroup#634733, supplier#634734, supplyingPlant#634735, orderDateTime#634736, parentItems#634737, previousOrderProposals#634739, itemGroup#634793]
Keys [2]: [shardId#632615, orderProposalId#633285L]
Functions [8]: [partial_max(originalReplenishmentRunId#634732L), partial_max(supplierGroup#634733), partial_max(supplier#634734), partial_max(supplyingPlant#634735), partial_max(orderDateTime#634736), partial_collect_list(itemGroup#634793, 0, 0), partial_collect_list(parentItems#634737, 0, 0), partial_collect_set(previousOrderProposals#634739, 0, 0)]
Aggregate Attributes [8]: [max#635960L, max#635961, max#635962, max#635963, max#635964, buf#635965, buf#635966, buf#635967]
Results [10]: [shardId#632615, orderProposalId#633285L, max#635968L, max#635969, max#635970, max#635971, max#635972, buf#635973, buf#635974, buf#635975]
(62) Exchange
Input [10]: [shardId#632615, orderProposalId#633285L, max#635968L, max#635969, max#635970, max#635971, max#635972, buf#635973, buf#635974, buf#635975]
Arguments: hashpartitioning(shardId#632615, orderProposalId#633285L, 20), ENSURE_REQUIREMENTS, [plan_id=261624]
(63) ObjectHashAggregate
Input [10]: [shardId#632615, orderProposalId#633285L, max#635968L, max#635969, max#635970, max#635971, max#635972, buf#635973, buf#635974, buf#635975]
Keys [2]: [shardId#632615, orderProposalId#633285L]
Functions [8]: [max(originalReplenishmentRunId#634732L), max(supplierGroup#634733), max(supplier#634734), max(supplyingPlant#634735), max(orderDateTime#634736), collect_list(itemGroup#634793, 0, 0), collect_list(parentItems#634737, 0, 0), collect_set(previousOrderProposals#634739, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#634732L)#634815L, max(supplierGroup#634733)#634816, max(supplier#634734)#634817, max(supplyingPlant#634735)#634818, max(orderDateTime#634736)#634819, collect_list(itemGroup#634793, 0, 0)#634820, collect_list(parentItems#634737, 0, 0)#634821, collect_set(previousOrderProposals#634739, 0, 0)#634822]
Results [10]: [shardId#632615, orderProposalId#633285L, max(originalReplenishmentRunId#634732L)#634815L AS originalReplenishmentRunId#634794L, max(supplierGroup#634733)#634816 AS supplierGroup#634795, max(supplier#634734)#634817 AS supplier#634796, max(supplyingPlant#634735)#634818 AS supplyingPlant#634797, max(orderDateTime#634736)#634819 AS orderDateTime#634798, collect_list(itemGroup#634793, 0, 0)#634820 AS itemGroups#634799, flatten(collect_list(parentItems#634737, 0, 0)#634821) AS parentItems#634800, flatten(collect_set(previousOrderProposals#634739, 0, 0)#634822) AS previousOrderProposals#634801]
(64) Project
Output [2]: [shardId#632615, struct(orderProposalId, orderProposalId#633285L, originalReplenishmentRunId, originalReplenishmentRunId#634794L, supplierGroup, supplierGroup#634795, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#634795) THEN supplier#634796 END, supplyingPlant, supplyingPlant#634797, orderDateTime, orderDateTime#634798, itemGroups, itemGroups#634799, previousOrderProposals, array_distinct(previousOrderProposals#634801), parentItems, parentItems#634800) AS orderProposal#634826]
Input [10]: [shardId#632615, orderProposalId#633285L, originalReplenishmentRunId#634794L, supplierGroup#634795, supplier#634796, supplyingPlant#634797, orderDateTime#634798, itemGroups#634799, parentItems#634800, previousOrderProposals#634801]
(65) Project
Output [11]: [shardId#632615, orderProposal#634826.orderProposalId AS _extract_orderProposalId#635592L, orderProposal#634826.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#635593L, orderProposal#634826.supplierGroup AS _extract_supplierGroup#635594, orderProposal#634826.supplier AS _extract_supplier#635595, orderProposal#634826.supplyingPlant AS _extract_supplyingPlant#635596, orderProposal#634826.orderDateTime AS _extract_orderDateTime#635597, orderProposal#634826.itemGroups AS _extract_itemGroups#635598, orderProposal#634826.previousOrderProposals AS _extract_previousOrderProposals#635599, orderProposal#634826.parentItems AS _extract_parentItems#635600, orderProposal#634826.orderProposalId AS _extract_orderProposalId#635601L]
Input [2]: [shardId#632615, orderProposal#634826]
(66) Exchange
Input [11]: [shardId#632615, _extract_orderProposalId#635592L, _extract_originalReplenishmentRunId#635593L, _extract_supplierGroup#635594, _extract_supplier#635595, _extract_supplyingPlant#635596, _extract_orderDateTime#635597, _extract_itemGroups#635598, _extract_previousOrderProposals#635599, _extract_parentItems#635600, _extract_orderProposalId#635601L]
Arguments: hashpartitioning(coalesce(shardId#632615, ), isnull(shardId#632615), coalesce(_extract_orderProposalId#635601L, 0), isnull(_extract_orderProposalId#635601L), 20), ENSURE_REQUIREMENTS, [plan_id=261628]
(67) Sort
Input [11]: [shardId#632615, _extract_orderProposalId#635592L, _extract_originalReplenishmentRunId#635593L, _extract_supplierGroup#635594, _extract_supplier#635595, _extract_supplyingPlant#635596, _extract_orderDateTime#635597, _extract_itemGroups#635598, _extract_previousOrderProposals#635599, _extract_parentItems#635600, _extract_orderProposalId#635601L]
Arguments: [coalesce(shardId#632615, ) ASC NULLS FIRST, isnull(shardId#632615) ASC NULLS FIRST, coalesce(_extract_orderProposalId#635601L, 0) ASC NULLS FIRST, isnull(_extract_orderProposalId#635601L) ASC NULLS FIRST], false, 0
(68) InMemoryTableScan
Output [3]: [shardId#634849, orderProposalId#634850L, optimizationGroups#634852]
Arguments: [shardId#634849, orderProposalId#634850L, optimizationGroups#634852], [isnotnull(orderProposalId#634850L)]
(69) InMemoryRelation
Arguments: [shardId#634849, orderProposalId#634850L, items#634851, optimizationGroups#634852, isOptimal#634853, optimizationInsights#634855], StorageLevel(disk, memory, 2 replicas)
(70) Filter [codegen id : 2]
Input [3]: [shardId#634849, orderProposalId#634850L, optimizationGroups#634852]
Condition : isnotnull(orderProposalId#634850L)
(71) BroadcastExchange
Input [3]: [shardId#634849, orderProposalId#634850L, optimizationGroups#634852]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=261633]
(72) InMemoryTableScan
Output [2]: [items#634468, shardId#634466]
Arguments: [items#634468, shardId#634466], [(size(items#634468.worklistShardItemId, true) > 0), isnotnull(items#634468.worklistShardItemId), (shardId#634466 = 0_1_10000002107)]
(73) InMemoryRelation
Arguments: [shardId#634466, orderProposalId#634467L, items#634468, optimizationGroups#634469, isOptimal#634470, optimizationInsights#634472], StorageLevel(disk, memory, 2 replicas)
(74) Filter [codegen id : 3]
Input [2]: [items#634468, shardId#634466]
Condition : (((size(items#634468.worklistShardItemId, true) > 0) AND isnotnull(items#634468.worklistShardItemId)) AND (shardId#634466 = 0_1_10000002107))
(75) Project [codegen id : 3]
Output [1]: [items#634468.worklistShardItemId AS _extract_worklistShardItemId#635497]
Input [2]: [items#634468, shardId#634466]
(76) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#635497]
Arguments: explode(_extract_worklistShardItemId#635497), false, [item#634856L]
(77) Project [codegen id : 3]
Output [1]: [item#634856L AS worklistShardItemId#634857L]
Input [1]: [item#634856L]
(78) BroadcastExchange
Input [1]: [worklistShardItemId#634857L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=261641]
(79) Scan parquet
Output [5]: [orderProposalId#634905L, isFallbackOrderOnly#634922, worklistShardItemId#634928L, shardId#634949, sequenceId#634927]
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#634949), isnotnull(sequenceId#634927), (shardId#634949 = 0_1_10000002107), (sequenceId#634927 = 3)]
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#634905L, isFallbackOrderOnly#634922, worklistShardItemId#634928L, shardId#634949, sequenceId#634927]
(81) Filter [codegen id : 4]
Input [5]: [orderProposalId#634905L, isFallbackOrderOnly#634922, worklistShardItemId#634928L, shardId#634949, sequenceId#634927]
Condition : ((isnotnull(worklistShardItemId#634928L) AND NOT (isFallbackOrderOnly#634922 <=> true)) AND isnotnull(orderProposalId#634905L))
(82) Project [codegen id : 4]
Output [2]: [orderProposalId#634905L, worklistShardItemId#634928L]
Input [5]: [orderProposalId#634905L, isFallbackOrderOnly#634922, worklistShardItemId#634928L, shardId#634949, sequenceId#634927]
(83) Exchange
Input [2]: [orderProposalId#634905L, worklistShardItemId#634928L]
Arguments: hashpartitioning(worklistShardItemId#634928L, 20), REPARTITION_BY_NUM, [plan_id=261648]
(84) Project
Output [2]: [worklistShardItemId#634928L, orderProposalId#634905L]
Input [2]: [orderProposalId#634905L, worklistShardItemId#634928L]
(85) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#634857L]
Right keys [1]: [worklistShardItemId#634928L]
Join type: Inner
Join condition: None
(86) Project [codegen id : 5]
Output [1]: [orderProposalId#634905L]
Input [3]: [worklistShardItemId#634857L, worklistShardItemId#634928L, orderProposalId#634905L]
(87) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#634905L]
Keys [1]: [orderProposalId#634905L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#634905L]
(88) Exchange
Input [1]: [orderProposalId#634905L]
Arguments: hashpartitioning(orderProposalId#634905L, 20), ENSURE_REQUIREMENTS, [plan_id=261655]
(89) HashAggregate
Input [1]: [orderProposalId#634905L]
Keys [1]: [orderProposalId#634905L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#634905L]
(90) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#634850L]
Right keys [1]: [orderProposalId#634905L]
Join type: Inner
Join condition: None
(91) Project
Output [3]: [orderProposalId#634850L, shardId#634849, coalesce(transform(optimizationGroups#634852, lambdafunction(struct(optGroupId, lambda x_1641#634847.optGroupId, minOrderProfile, lambda x_1641#634847.minOrderProfile, assignmentDetails, lambda x_1641#634847.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_1641#634847.minOrderGoal.dimensionType, unit, lambda x_1641#634847.minOrderGoal.unit, unitUuid, lambda x_1641#634847.minOrderGoal.unitUuid, goalValue, lambda x_1641#634847.minOrderGoal.minOrderValue, calcValue, lambda x_1641#634847.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_1641#634847, false)), []) AS optimizationGroups#634846]
Input [4]: [shardId#634849, orderProposalId#634850L, optimizationGroups#634852, orderProposalId#634905L]
(92) Exchange
Input [3]: [orderProposalId#634850L, shardId#634849, optimizationGroups#634846]
Arguments: hashpartitioning(coalesce(shardId#634849, ), isnull(shardId#634849), coalesce(orderProposalId#634850L, 0), isnull(orderProposalId#634850L), 20), ENSURE_REQUIREMENTS, [plan_id=261661]
(93) Sort [codegen id : 7]
Input [3]: [orderProposalId#634850L, shardId#634849, optimizationGroups#634846]
Arguments: [coalesce(shardId#634849, ) ASC NULLS FIRST, isnull(shardId#634849) ASC NULLS FIRST, coalesce(orderProposalId#634850L, 0) ASC NULLS FIRST, isnull(orderProposalId#634850L) ASC NULLS FIRST], false, 0
(94) SortMergeJoin
Left keys [4]: [coalesce(shardId#632615, ), isnull(shardId#632615), coalesce(_extract_orderProposalId#635601L, 0), isnull(_extract_orderProposalId#635601L)]
Right keys [4]: [coalesce(shardId#634849, ), isnull(shardId#634849), coalesce(orderProposalId#634850L, 0), isnull(orderProposalId#634850L)]
Join type: LeftOuter
Join condition: None
(95) Project
Output [2]: [shardId#632615, named_struct(orderProposalId, _extract_orderProposalId#635601L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#635593L, supplierGroup, _extract_supplierGroup#635594, optimizationGroups, coalesce(optimizationGroups#634846, []), supplier, _extract_supplier#635595, supplyingPlant, _extract_supplyingPlant#635596, orderDateTime, _extract_orderDateTime#635597, itemGroups, _extract_itemGroups#635598, previousOrderProposals, _extract_previousOrderProposals#635599, parentItems, _extract_parentItems#635600) AS orderProposal#634953]
Input [14]: [shardId#632615, _extract_orderProposalId#635592L, _extract_originalReplenishmentRunId#635593L, _extract_supplierGroup#635594, _extract_supplier#635595, _extract_supplyingPlant#635596, _extract_orderDateTime#635597, _extract_itemGroups#635598, _extract_previousOrderProposals#635599, _extract_parentItems#635600, _extract_orderProposalId#635601L, orderProposalId#634850L, shardId#634849, optimizationGroups#634846]
(96) Project
Output [3]: [shardId#632615, orderProposal#634953, CASE WHEN (size(orderProposal#634953.parentItems, true) > 2000) THEN xxhash64(orderProposal#634953.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#634953.orderProposalId as decimal(20,0)), 0), 42) END AS resultSeparationId#636705L]
Input [2]: [orderProposal#634953, shardId#632615]
(97) ObjectHashAggregate
Input [3]: [shardId#632615, orderProposal#634953, resultSeparationId#636705L]
Keys [2]: [shardId#632615, resultSeparationId#636705L]
Functions [1]: [partial_collect_list(orderProposal#634953, 0, 0)]
Aggregate Attributes [1]: [buf#636744]
Results [3]: [shardId#632615, resultSeparationId#636705L, buf#636745]
(98) Exchange
Input [3]: [shardId#632615, resultSeparationId#636705L, buf#636745]
Arguments: hashpartitioning(shardId#632615, resultSeparationId#636705L, 20), ENSURE_REQUIREMENTS, [plan_id=261808]
(99) ObjectHashAggregate
Input [3]: [shardId#632615, resultSeparationId#636705L, buf#636745]
Keys [2]: [shardId#632615, resultSeparationId#636705L]
Functions [1]: [collect_list(orderProposal#634953, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#634953, 0, 0)#636713]
Results [3]: [shardId#632615, resultSeparationId#636705L, collect_list(orderProposal#634953, 0, 0)#636713 AS orderProposals#636709]
(100) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#636822L]
Results [1]: [count#636823L]
(101) Exchange
Input [1]: [count#636823L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=261832]
(102) HashAggregate [codegen id : 2]
Input [1]: [count#636823L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#636776L]
Results [1]: [count(1)#636776L AS count#636772L]