== Physical Plan ==
* HashAggregate (99)
+- Exchange (98)
+- * HashAggregate (97)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- ObjectHashAggregate (96)
+- Exchange (95)
+- ObjectHashAggregate (94)
+- Project (93)
+- InMemoryTableScan (3)
+- InMemoryRelation (4)
+- Project (92)
+- BroadcastHashJoin LeftOuter BuildRight (91)
:- 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)
+- BroadcastExchange (90)
+- Project (89)
+- * BroadcastHashJoin Inner BuildLeft (88)
:- BroadcastExchange (69)
: +- * Filter (68)
: +- InMemoryTableScan (66)
: +- InMemoryRelation (67)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * HashAggregate (87)
+- Exchange (86)
+- * HashAggregate (85)
+- * Project (84)
+- * BroadcastHashJoin Inner BuildLeft (83)
:- BroadcastExchange (76)
: +- * Project (75)
: +- * Generate (74)
: +- * Project (73)
: +- * Filter (72)
: +- InMemoryTableScan (70)
: +- InMemoryRelation (71)
: +- * Filter (13)
: +- InMemoryTableScan (9)
: +- InMemoryRelation (10)
: +- * Filter (12)
: +- * Scan ExistingRDD (11)
+- * Project (82)
+- Exchange (81)
+- * Project (80)
+- * Filter (79)
+- * ColumnarToRow (78)
+- Scan parquet (77)
(1) InMemoryTableScan
Output: []
(2) InMemoryRelation
Arguments: [shardId#981205, resultSeparationId#985102L, orderProposals#985106], StorageLevel(disk, memory, 2 replicas)
(3) InMemoryTableScan
Output [2]: [orderProposal#983366, shardId#981205]
Arguments: [orderProposal#983366, shardId#981205]
(4) InMemoryRelation
Arguments: [shardId#981205, orderProposal#983366], StorageLevel(disk, memory, 2 replicas)
(5) InMemoryTableScan
Output [39]: [availabilityDateTime#981895, channelStreamSpecificKpis#982459, constraintLabels#981907, constraintOperators#981908, constraintValues#981910, deliveryDateTime#981894, isFallbackOrderOnly#981897, logisticUnits#981912, measurements#981905, minimumOrderQuantity#981906, netPriceAmount#981903, netPriceCurrencyCode#981904, netPriceQuantity#981900, netPriceQuantityUom#981901, netPriceQuantityUomUuid#981902, nextAvailabilityDateTime#981896, optimizationGroups#981913, orderDateTime#981893, orderProposalId#981875L, orderProposalItemGroupId#981877, orderProposalItemId#981876, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, originalReplenishmentRunId#981878L, plant#981889, previousOrderProposal#981881L, prodLocSpecificKpis#982444, product#981888, productGroup#981917, qty#981719, quantityAfterProdPlantOptimization#981718, quantityKpis#982472, shardId#981205, sourceOfSupplyUuid#981884, splitIndicator#981880L, subrange#981887, supplier#981886, supplierGroup#981885, supplyingPlant#981916]
Arguments: [availabilityDateTime#981895, channelStreamSpecificKpis#982459, constraintLabels#981907, constraintOperators#981908, constraintValues#981910, deliveryDateTime#981894, isFallbackOrderOnly#981897, logisticUnits#981912, measurements#981905, minimumOrderQuantity#981906, netPriceAmount#981903, netPriceCurrencyCode#981904, netPriceQuantity#981900, netPriceQuantityUom#981901, netPriceQuantityUomUuid#981902, nextAvailabilityDateTime#981896, optimizationGroups#981913, orderDateTime#981893, orderProposalId#981875L, orderProposalItemGroupId#981877, orderProposalItemId#981876, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, originalReplenishmentRunId#981878L, plant#981889, ... 14 more fields], [NOT (isFallbackOrderOnly#981897 <=> true)]
(6) InMemoryRelation
Arguments: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981875L, originalReplenishmentRunId#981878L, supplierGroup#981885, supplier#981886, supplyingPlant#981916, productGroup#981917, product#981888, plant#981889, subrange#981887, orderDateTime#981893, deliveryDateTime#981894, availabilityDateTime#981895, nextAvailabilityDateTime#981896, constraintValues#981910, constraintOperators#981908, constraintLabels#981907, logisticUnits#981912, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, splitIndicator#981880L, netPriceAmount#981903, ... 17 more fields], StorageLevel(disk, memory, 2 replicas)
(7) InMemoryTableScan
Output [2]: [shardId#981205, items#981207]
Arguments: [shardId#981205, items#981207], [(size(items#981207, true) > 0), isnotnull(items#981207)]
(8) InMemoryRelation
Arguments: [shardId#981205, orderProposalId#981206L, items#981207, optimizationGroups#981208, isOptimal#981209, optimizationInsights#981211], StorageLevel(disk, memory, 2 replicas)
(9) InMemoryTableScan
Output [6]: [shardId#981205, orderProposalId#981206L, items#981207, optimizationGroups#981208, isOptimal#981209, optimizationInsights#981211]
Arguments: [shardId#981205, orderProposalId#981206L, items#981207, optimizationGroups#981208, isOptimal#981209, optimizationInsights#981211], [isnotnull(shardId#981205), (shardId#981205 = 0_1_10000002110)]
(10) InMemoryRelation
Arguments: [shardId#981205, orderProposalId#981206L, items#981207, optimizationGroups#981208, isOptimal#981209, lastModified#981210, optimizationInsights#981211], StorageLevel(disk, memory, 2 replicas)
(11) Scan ExistingRDD [codegen id : 1]
Output [7]: [shardId#981205, orderProposalId#981206L, items#981207, optimizationGroups#981208, isOptimal#981209, lastModified#981210, optimizationInsights#981211]
Arguments: [shardId#981205, orderProposalId#981206L, items#981207, optimizationGroups#981208, isOptimal#981209, lastModified#981210, optimizationInsights#981211], MapPartitionsRDD[46018] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(12) Filter [codegen id : 1]
Input [7]: [shardId#981205, orderProposalId#981206L, items#981207, optimizationGroups#981208, isOptimal#981209, lastModified#981210, optimizationInsights#981211]
Condition : (isnotnull(shardId#981205) AND (shardId#981205 = 0_1_10000002110))
(13) Filter [codegen id : 1]
Input [6]: [shardId#981205, orderProposalId#981206L, items#981207, optimizationGroups#981208, isOptimal#981209, optimizationInsights#981211]
Condition : (isnotnull(shardId#981205) AND (shardId#981205 = 0_1_10000002110))
(14) Filter [codegen id : 3]
Input [2]: [shardId#981205, items#981207]
Condition : ((size(items#981207, true) > 0) AND isnotnull(items#981207))
(15) Generate [codegen id : 3]
Input [2]: [shardId#981205, items#981207]
Arguments: explode(items#981207), [shardId#981205], false, [item#981716]
(16) Project [codegen id : 3]
Output [4]: [shardId#981205, item#981716.worklistShardItemId AS worklistShardItemId#981717L, item#981716.quantityAfterProdPlantOptimization AS quantityAfterProdPlantOptimization#981718, item#981716.qty AS qty#981719]
Input [2]: [shardId#981205, item#981716]
(17) Scan parquet
Output [38]: [orderProposalId#981918L, orderProposalItemId#981919, supplierGroup#981920, supplier#981921, plant#981922, deliveryDateTime#981923, subrange#981924, supplyingPlant#981925, productGroup#981926, product#981927, orderDateTime#981928, availabilityDateTime#981929, nextAvailabilityDateTime#981930, sourceOfSupplyUuid#981932, isFallbackOrderOnly#981935, splitIndicator#981937L, previousOrderProposal#981938L, worklistShardItemId#981941L, orderProposalItemGroupId#981942, externalProductId#981943, externalPlantId#981944, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, measurements#981959, originalReplenishmentRunId#981960L, optimizationGroups#981961, shardId#981962, sequenceId#981940]
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/10000002110]
PartitionFilters: [isnotnull(shardId#981962), isnotnull(sequenceId#981940), (shardId#981962 = 0_1_10000002110), (sequenceId#981940 = 2)]
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#981918L, orderProposalItemId#981919, supplierGroup#981920, supplier#981921, plant#981922, deliveryDateTime#981923, subrange#981924, supplyingPlant#981925, productGroup#981926, product#981927, orderDateTime#981928, availabilityDateTime#981929, nextAvailabilityDateTime#981930, sourceOfSupplyUuid#981932, isFallbackOrderOnly#981935, splitIndicator#981937L, previousOrderProposal#981938L, worklistShardItemId#981941L, orderProposalItemGroupId#981942, externalProductId#981943, externalPlantId#981944, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, measurements#981959, originalReplenishmentRunId#981960L, optimizationGroups#981961, shardId#981962, sequenceId#981940]
(19) Filter [codegen id : 1]
Input [38]: [orderProposalId#981918L, orderProposalItemId#981919, supplierGroup#981920, supplier#981921, plant#981922, deliveryDateTime#981923, subrange#981924, supplyingPlant#981925, productGroup#981926, product#981927, orderDateTime#981928, availabilityDateTime#981929, nextAvailabilityDateTime#981930, sourceOfSupplyUuid#981932, isFallbackOrderOnly#981935, splitIndicator#981937L, previousOrderProposal#981938L, worklistShardItemId#981941L, orderProposalItemGroupId#981942, externalProductId#981943, externalPlantId#981944, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, measurements#981959, originalReplenishmentRunId#981960L, optimizationGroups#981961, shardId#981962, sequenceId#981940]
Condition : isnotnull(worklistShardItemId#981941L)
(20) Project [codegen id : 1]
Output [36]: [orderProposalId#981918L, orderProposalItemId#981919, supplierGroup#981920, supplier#981921, plant#981922, deliveryDateTime#981923, subrange#981924, supplyingPlant#981925, productGroup#981926, product#981927, orderDateTime#981928, availabilityDateTime#981929, nextAvailabilityDateTime#981930, sourceOfSupplyUuid#981932, isFallbackOrderOnly#981935, splitIndicator#981937L, previousOrderProposal#981938L, worklistShardItemId#981941L, orderProposalItemGroupId#981942, externalProductId#981943, externalPlantId#981944, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, measurements#981959, originalReplenishmentRunId#981960L, optimizationGroups#981961]
Input [38]: [orderProposalId#981918L, orderProposalItemId#981919, supplierGroup#981920, supplier#981921, plant#981922, deliveryDateTime#981923, subrange#981924, supplyingPlant#981925, productGroup#981926, product#981927, orderDateTime#981928, availabilityDateTime#981929, nextAvailabilityDateTime#981930, sourceOfSupplyUuid#981932, isFallbackOrderOnly#981935, splitIndicator#981937L, previousOrderProposal#981938L, worklistShardItemId#981941L, orderProposalItemGroupId#981942, externalProductId#981943, externalPlantId#981944, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, measurements#981959, originalReplenishmentRunId#981960L, optimizationGroups#981961, shardId#981962, sequenceId#981940]
(21) Exchange
Input [36]: [orderProposalId#981918L, orderProposalItemId#981919, supplierGroup#981920, supplier#981921, plant#981922, deliveryDateTime#981923, subrange#981924, supplyingPlant#981925, productGroup#981926, product#981927, orderDateTime#981928, availabilityDateTime#981929, nextAvailabilityDateTime#981930, sourceOfSupplyUuid#981932, isFallbackOrderOnly#981935, splitIndicator#981937L, previousOrderProposal#981938L, worklistShardItemId#981941L, orderProposalItemGroupId#981942, externalProductId#981943, externalPlantId#981944, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, measurements#981959, originalReplenishmentRunId#981960L, optimizationGroups#981961]
Arguments: hashpartitioning(worklistShardItemId#981941L, 20), REPARTITION_BY_NUM, [plan_id=381895]
(22) Project [codegen id : 2]
Output [36]: [worklistShardItemId#981941L, orderProposalId#981918L, orderProposalItemId#981919, orderProposalItemGroupId#981942, originalReplenishmentRunId#981960L, splitIndicator#981937L, previousOrderProposal#981938L, sourceOfSupplyUuid#981932, supplierGroup#981920, supplier#981921, subrange#981924, product#981927, plant#981922, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, isFallbackOrderOnly#981935, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, netPriceAmount#981954, netPriceCurrencyCode#981955, measurements#981959, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, logisticUnits#981945, optimizationGroups#981961, externalProductId#981943, externalPlantId#981944, supplyingPlant#981925, productGroup#981926]
Input [36]: [orderProposalId#981918L, orderProposalItemId#981919, supplierGroup#981920, supplier#981921, plant#981922, deliveryDateTime#981923, subrange#981924, supplyingPlant#981925, productGroup#981926, product#981927, orderDateTime#981928, availabilityDateTime#981929, nextAvailabilityDateTime#981930, sourceOfSupplyUuid#981932, isFallbackOrderOnly#981935, splitIndicator#981937L, previousOrderProposal#981938L, worklistShardItemId#981941L, orderProposalItemGroupId#981942, externalProductId#981943, externalPlantId#981944, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, measurements#981959, originalReplenishmentRunId#981960L, optimizationGroups#981961]
(23) BroadcastExchange
Input [36]: [worklistShardItemId#981941L, orderProposalId#981918L, orderProposalItemId#981919, orderProposalItemGroupId#981942, originalReplenishmentRunId#981960L, splitIndicator#981937L, previousOrderProposal#981938L, sourceOfSupplyUuid#981932, supplierGroup#981920, supplier#981921, subrange#981924, product#981927, plant#981922, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, isFallbackOrderOnly#981935, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, netPriceAmount#981954, netPriceCurrencyCode#981955, measurements#981959, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, logisticUnits#981945, optimizationGroups#981961, externalProductId#981943, externalPlantId#981944, supplyingPlant#981925, productGroup#981926]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=381899]
(24) BroadcastHashJoin [codegen id : 3]
Left keys [1]: [worklistShardItemId#981717L]
Right keys [1]: [worklistShardItemId#981941L]
Join type: LeftOuter
Join condition: (shardId#981205 = 0_1_10000002110)
(25) Project [codegen id : 3]
Output [39]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981918L, originalReplenishmentRunId#981960L, supplierGroup#981920, supplier#981921, supplyingPlant#981925, productGroup#981926, product#981927, plant#981922, subrange#981924, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, constraintValues#981951, constraintOperators#981950, constraintLabels#981949, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, splitIndicator#981937L, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, sourceOfSupplyUuid#981932, minimumOrderQuantity#981948, orderProposalItemId#981919, orderProposalItemGroupId#981942, optimizationGroups#981961, measurements#981959, externalProductId#981943, externalPlantId#981944, previousOrderProposal#981938L, isFallbackOrderOnly#981935]
Input [40]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, worklistShardItemId#981941L, orderProposalId#981918L, orderProposalItemId#981919, orderProposalItemGroupId#981942, originalReplenishmentRunId#981960L, splitIndicator#981937L, previousOrderProposal#981938L, sourceOfSupplyUuid#981932, supplierGroup#981920, supplier#981921, subrange#981924, product#981927, plant#981922, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, isFallbackOrderOnly#981935, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, netPriceAmount#981954, netPriceCurrencyCode#981955, measurements#981959, minimumOrderQuantity#981948, constraintLabels#981949, constraintOperators#981950, constraintValues#981951, logisticUnits#981945, optimizationGroups#981961, externalProductId#981943, externalPlantId#981944, supplyingPlant#981925, productGroup#981926]
(26) Exchange
Input [39]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981918L, originalReplenishmentRunId#981960L, supplierGroup#981920, supplier#981921, supplyingPlant#981925, productGroup#981926, product#981927, plant#981922, subrange#981924, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, constraintValues#981951, constraintOperators#981950, constraintLabels#981949, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, splitIndicator#981937L, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, sourceOfSupplyUuid#981932, minimumOrderQuantity#981948, orderProposalItemId#981919, orderProposalItemGroupId#981942, optimizationGroups#981961, measurements#981959, externalProductId#981943, externalPlantId#981944, previousOrderProposal#981938L, isFallbackOrderOnly#981935]
Arguments: hashpartitioning(shardId#981205, worklistShardItemId#981717L, 20), ENSURE_REQUIREMENTS, [plan_id=381904]
(27) Sort [codegen id : 4]
Input [39]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981918L, originalReplenishmentRunId#981960L, supplierGroup#981920, supplier#981921, supplyingPlant#981925, productGroup#981926, product#981927, plant#981922, subrange#981924, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, constraintValues#981951, constraintOperators#981950, constraintLabels#981949, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, splitIndicator#981937L, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, sourceOfSupplyUuid#981932, minimumOrderQuantity#981948, orderProposalItemId#981919, orderProposalItemGroupId#981942, optimizationGroups#981961, measurements#981959, externalProductId#981943, externalPlantId#981944, previousOrderProposal#981938L, isFallbackOrderOnly#981935]
Arguments: [shardId#981205 ASC NULLS FIRST, worklistShardItemId#981717L ASC NULLS FIRST], false, 0
(28) Scan ExistingRDD [codegen id : 5]
Output [6]: [shardId#982437, worklistShardItemId#982438L, qty#982439, demandChannel#982440, demandStream#982441, kpis#982442]
Arguments: [shardId#982437, worklistShardItemId#982438L, qty#982439, demandChannel#982440, demandStream#982441, kpis#982442], MapPartitionsRDD[46078] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(29) Filter [codegen id : 5]
Input [6]: [shardId#982437, worklistShardItemId#982438L, qty#982439, demandChannel#982440, demandStream#982441, kpis#982442]
Condition : (((isnull(qty#982439) AND isnull(demandChannel#982440)) AND isnull(demandStream#982441)) AND (isnotnull(shardId#982437) AND isnotnull(worklistShardItemId#982438L)))
(30) Project [codegen id : 5]
Output [3]: [shardId#982437, worklistShardItemId#982438L, coalesce(kpis#982442, []) AS prodLocSpecificKpis#982443]
Input [6]: [shardId#982437, worklistShardItemId#982438L, qty#982439, demandChannel#982440, demandStream#982441, kpis#982442]
(31) Exchange
Input [3]: [shardId#982437, worklistShardItemId#982438L, prodLocSpecificKpis#982443]
Arguments: hashpartitioning(shardId#982437, worklistShardItemId#982438L, 20), ENSURE_REQUIREMENTS, [plan_id=381910]
(32) Sort [codegen id : 6]
Input [3]: [shardId#982437, worklistShardItemId#982438L, prodLocSpecificKpis#982443]
Arguments: [shardId#982437 ASC NULLS FIRST, worklistShardItemId#982438L ASC NULLS FIRST], false, 0
(33) SortMergeJoin [codegen id : 7]
Left keys [2]: [shardId#981205, worklistShardItemId#981717L]
Right keys [2]: [shardId#982437, worklistShardItemId#982438L]
Join type: LeftOuter
Join condition: None
(34) Project [codegen id : 7]
Output [40]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981918L, originalReplenishmentRunId#981960L, supplierGroup#981920, supplier#981921, supplyingPlant#981925, productGroup#981926, product#981927, plant#981922, subrange#981924, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, constraintValues#981951, constraintOperators#981950, constraintLabels#981949, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, splitIndicator#981937L, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, sourceOfSupplyUuid#981932, minimumOrderQuantity#981948, orderProposalItemId#981919, orderProposalItemGroupId#981942, optimizationGroups#981961, measurements#981959, externalProductId#981943, externalPlantId#981944, previousOrderProposal#981938L, isFallbackOrderOnly#981935, coalesce(prodLocSpecificKpis#982443, []) AS prodLocSpecificKpis#982444]
Input [42]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981918L, originalReplenishmentRunId#981960L, supplierGroup#981920, supplier#981921, supplyingPlant#981925, productGroup#981926, product#981927, plant#981922, subrange#981924, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, constraintValues#981951, constraintOperators#981950, constraintLabels#981949, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, splitIndicator#981937L, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, sourceOfSupplyUuid#981932, minimumOrderQuantity#981948, orderProposalItemId#981919, orderProposalItemGroupId#981942, optimizationGroups#981961, measurements#981959, externalProductId#981943, externalPlantId#981944, previousOrderProposal#981938L, isFallbackOrderOnly#981935, shardId#982437, worklistShardItemId#982438L, prodLocSpecificKpis#982443]
(35) Scan ExistingRDD [codegen id : 8]
Output [6]: [shardId#982453, worklistShardItemId#982454L, qty#982455, demandChannel#982456, demandStream#982457, kpis#982458]
Arguments: [shardId#982453, worklistShardItemId#982454L, qty#982455, demandChannel#982456, demandStream#982457, kpis#982458], MapPartitionsRDD[46078] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(36) Filter [codegen id : 8]
Input [6]: [shardId#982453, worklistShardItemId#982454L, qty#982455, demandChannel#982456, demandStream#982457, kpis#982458]
Condition : ((((isnull(qty#982455) AND isnotnull(demandChannel#982456)) AND isnotnull(demandStream#982457)) AND (size(kpis#982458, true) > 0)) AND (isnotnull(shardId#982453) AND isnotnull(worklistShardItemId#982454L)))
(37) Project [codegen id : 8]
Output [5]: [shardId#982453, worklistShardItemId#982454L, demandChannel#982456, demandStream#982457, kpis#982458]
Input [6]: [shardId#982453, worklistShardItemId#982454L, qty#982455, demandChannel#982456, demandStream#982457, kpis#982458]
(38) ObjectHashAggregate
Input [5]: [shardId#982453, worklistShardItemId#982454L, demandChannel#982456, demandStream#982457, kpis#982458]
Keys [2]: [shardId#982453, worklistShardItemId#982454L]
Functions [1]: [partial_collect_list(struct(demandChannel, demandChannel#982456, demandStream, demandStream#982457, kpis, kpis#982458), 0, 0)]
Aggregate Attributes [1]: [buf#982633]
Results [3]: [shardId#982453, worklistShardItemId#982454L, buf#982634]
(39) Exchange
Input [3]: [shardId#982453, worklistShardItemId#982454L, buf#982634]
Arguments: hashpartitioning(shardId#982453, worklistShardItemId#982454L, 20), ENSURE_REQUIREMENTS, [plan_id=381921]
(40) ObjectHashAggregate
Input [3]: [shardId#982453, worklistShardItemId#982454L, buf#982634]
Keys [2]: [shardId#982453, worklistShardItemId#982454L]
Functions [1]: [collect_list(struct(demandChannel, demandChannel#982456, demandStream, demandStream#982457, kpis, kpis#982458), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(demandChannel, demandChannel#982456, demandStream, demandStream#982457, kpis, kpis#982458), 0, 0)#982452]
Results [3]: [shardId#982453, worklistShardItemId#982454L, collect_list(struct(demandChannel, demandChannel#982456, demandStream, demandStream#982457, kpis, kpis#982458), 0, 0)#982452 AS channelStreamSpecificKpis#982445]
(41) Sort [codegen id : 9]
Input [3]: [shardId#982453, worklistShardItemId#982454L, channelStreamSpecificKpis#982445]
Arguments: [shardId#982453 ASC NULLS FIRST, worklistShardItemId#982454L ASC NULLS FIRST], false, 0
(42) SortMergeJoin [codegen id : 10]
Left keys [2]: [shardId#981205, worklistShardItemId#981717L]
Right keys [2]: [shardId#982453, worklistShardItemId#982454L]
Join type: LeftOuter
Join condition: None
(43) Project [codegen id : 10]
Output [41]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981918L, originalReplenishmentRunId#981960L, supplierGroup#981920, supplier#981921, supplyingPlant#981925, productGroup#981926, product#981927, plant#981922, subrange#981924, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, constraintValues#981951, constraintOperators#981950, constraintLabels#981949, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, splitIndicator#981937L, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, sourceOfSupplyUuid#981932, minimumOrderQuantity#981948, orderProposalItemId#981919, orderProposalItemGroupId#981942, optimizationGroups#981961, measurements#981959, externalProductId#981943, externalPlantId#981944, previousOrderProposal#981938L, isFallbackOrderOnly#981935, prodLocSpecificKpis#982444, coalesce(channelStreamSpecificKpis#982445, []) AS channelStreamSpecificKpis#982459]
Input [43]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981918L, originalReplenishmentRunId#981960L, supplierGroup#981920, supplier#981921, supplyingPlant#981925, productGroup#981926, product#981927, plant#981922, subrange#981924, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, constraintValues#981951, constraintOperators#981950, constraintLabels#981949, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, splitIndicator#981937L, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, sourceOfSupplyUuid#981932, minimumOrderQuantity#981948, orderProposalItemId#981919, orderProposalItemGroupId#981942, optimizationGroups#981961, measurements#981959, externalProductId#981943, externalPlantId#981944, previousOrderProposal#981938L, isFallbackOrderOnly#981935, prodLocSpecificKpis#982444, shardId#982453, worklistShardItemId#982454L, channelStreamSpecificKpis#982445]
(44) Scan ExistingRDD [codegen id : 11]
Output [6]: [shardId#982466, worklistShardItemId#982467L, qty#982468, demandChannel#982469, demandStream#982470, kpis#982471]
Arguments: [shardId#982466, worklistShardItemId#982467L, qty#982468, demandChannel#982469, demandStream#982470, kpis#982471], MapPartitionsRDD[46078] at start at FileStorageAdapterImpl.java:592, ExistingRDD, UnknownPartitioning(0)
(45) Filter [codegen id : 11]
Input [6]: [shardId#982466, worklistShardItemId#982467L, qty#982468, demandChannel#982469, demandStream#982470, kpis#982471]
Condition : ((isnotnull(qty#982468) AND isnotnull(kpis#982471)) AND (isnotnull(shardId#982466) AND isnotnull(worklistShardItemId#982467L)))
(46) Project [codegen id : 11]
Output [4]: [shardId#982466, worklistShardItemId#982467L, qty#982468, kpis#982471]
Input [6]: [shardId#982466, worklistShardItemId#982467L, qty#982468, demandChannel#982469, demandStream#982470, kpis#982471]
(47) ObjectHashAggregate
Input [4]: [shardId#982466, worklistShardItemId#982467L, qty#982468, kpis#982471]
Keys [2]: [shardId#982466, worklistShardItemId#982467L]
Functions [1]: [partial_collect_list(struct(qty, qty#982468, kpis, kpis#982471), 0, 0)]
Aggregate Attributes [1]: [buf#982635]
Results [3]: [shardId#982466, worklistShardItemId#982467L, buf#982636]
(48) Exchange
Input [3]: [shardId#982466, worklistShardItemId#982467L, buf#982636]
Arguments: hashpartitioning(shardId#982466, worklistShardItemId#982467L, 20), ENSURE_REQUIREMENTS, [plan_id=381933]
(49) ObjectHashAggregate
Input [3]: [shardId#982466, worklistShardItemId#982467L, buf#982636]
Keys [2]: [shardId#982466, worklistShardItemId#982467L]
Functions [1]: [collect_list(struct(qty, qty#982468, kpis, kpis#982471), 0, 0)]
Aggregate Attributes [1]: [collect_list(struct(qty, qty#982468, kpis, kpis#982471), 0, 0)#982465]
Results [3]: [shardId#982466, worklistShardItemId#982467L, map_from_entries(collect_list(struct(qty, qty#982468, kpis, kpis#982471), 0, 0)#982465) AS quantityKpis#982460]
(50) Sort [codegen id : 12]
Input [3]: [shardId#982466, worklistShardItemId#982467L, quantityKpis#982460]
Arguments: [shardId#982466 ASC NULLS FIRST, worklistShardItemId#982467L ASC NULLS FIRST], false, 0
(51) SortMergeJoin [codegen id : 13]
Left keys [2]: [shardId#981205, worklistShardItemId#981717L]
Right keys [2]: [shardId#982466, worklistShardItemId#982467L]
Join type: LeftOuter
Join condition: None
(52) Project [codegen id : 13]
Output [42]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981918L, originalReplenishmentRunId#981960L, supplierGroup#981920, supplier#981921, supplyingPlant#981925, productGroup#981926, product#981927, plant#981922, subrange#981924, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, constraintValues#981951, constraintOperators#981950, constraintLabels#981949, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, splitIndicator#981937L, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, sourceOfSupplyUuid#981932, minimumOrderQuantity#981948, orderProposalItemId#981919, orderProposalItemGroupId#981942, optimizationGroups#981961, measurements#981959, externalProductId#981943, externalPlantId#981944, previousOrderProposal#981938L, isFallbackOrderOnly#981935, prodLocSpecificKpis#982444, channelStreamSpecificKpis#982459, coalesce(quantityKpis#982460, map(keys: [], values: [])) AS quantityKpis#982472]
Input [44]: [shardId#981205, worklistShardItemId#981717L, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981918L, originalReplenishmentRunId#981960L, supplierGroup#981920, supplier#981921, supplyingPlant#981925, productGroup#981926, product#981927, plant#981922, subrange#981924, orderDateTime#981928, deliveryDateTime#981923, availabilityDateTime#981929, nextAvailabilityDateTime#981930, constraintValues#981951, constraintOperators#981950, constraintLabels#981949, logisticUnits#981945, orderQuantityBaseUom#981946, orderQuantityBaseUomUuid#981947, splitIndicator#981937L, netPriceAmount#981954, netPriceCurrencyCode#981955, netPriceQuantity#981956, netPriceQuantityUom#981957, netPriceQuantityUomUuid#981958, sourceOfSupplyUuid#981932, minimumOrderQuantity#981948, orderProposalItemId#981919, orderProposalItemGroupId#981942, optimizationGroups#981961, measurements#981959, externalProductId#981943, externalPlantId#981944, previousOrderProposal#981938L, isFallbackOrderOnly#981935, prodLocSpecificKpis#982444, channelStreamSpecificKpis#982459, shardId#982466, worklistShardItemId#982467L, quantityKpis#982460]
(53) Filter [codegen id : 1]
Input [39]: [availabilityDateTime#981895, channelStreamSpecificKpis#982459, constraintLabels#981907, constraintOperators#981908, constraintValues#981910, deliveryDateTime#981894, isFallbackOrderOnly#981897, logisticUnits#981912, measurements#981905, minimumOrderQuantity#981906, netPriceAmount#981903, netPriceCurrencyCode#981904, netPriceQuantity#981900, netPriceQuantityUom#981901, netPriceQuantityUomUuid#981902, nextAvailabilityDateTime#981896, optimizationGroups#981913, orderDateTime#981893, orderProposalId#981875L, orderProposalItemGroupId#981877, orderProposalItemId#981876, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, originalReplenishmentRunId#981878L, plant#981889, previousOrderProposal#981881L, prodLocSpecificKpis#982444, product#981888, productGroup#981917, qty#981719, quantityAfterProdPlantOptimization#981718, quantityKpis#982472, shardId#981205, sourceOfSupplyUuid#981884, splitIndicator#981880L, subrange#981887, supplier#981886, supplierGroup#981885, supplyingPlant#981916]
Condition : NOT (isFallbackOrderOnly#981897 <=> true)
(54) Project [codegen id : 1]
Output [36]: [shardId#981205, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981875L, originalReplenishmentRunId#981878L, supplierGroup#981885, supplier#981886, supplyingPlant#981916, productGroup#981917, product#981888, plant#981889, subrange#981887, orderDateTime#981893, deliveryDateTime#981894, availabilityDateTime#981895, nextAvailabilityDateTime#981896, logisticUnits#981912, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, splitIndicator#981880L, netPriceAmount#981903, netPriceCurrencyCode#981904, netPriceQuantity#981900, netPriceQuantityUom#981901, netPriceQuantityUomUuid#981902, sourceOfSupplyUuid#981884, minimumOrderQuantity#981906, orderProposalItemId#981876, orderProposalItemGroupId#981877, optimizationGroups#981913, measurements#981905, previousOrderProposal#981881L, prodLocSpecificKpis#982444, channelStreamSpecificKpis#982459, quantityKpis#982472, arrays_zip(constraintLabels#981907, constraintOperators#981908, constraintValues#981910, constraintLabels, constraintOperators, constraintValues) AS constraintStructArray#982886]
Input [39]: [availabilityDateTime#981895, channelStreamSpecificKpis#982459, constraintLabels#981907, constraintOperators#981908, constraintValues#981910, deliveryDateTime#981894, isFallbackOrderOnly#981897, logisticUnits#981912, measurements#981905, minimumOrderQuantity#981906, netPriceAmount#981903, netPriceCurrencyCode#981904, netPriceQuantity#981900, netPriceQuantityUom#981901, netPriceQuantityUomUuid#981902, nextAvailabilityDateTime#981896, optimizationGroups#981913, orderDateTime#981893, orderProposalId#981875L, orderProposalItemGroupId#981877, orderProposalItemId#981876, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, originalReplenishmentRunId#981878L, plant#981889, previousOrderProposal#981881L, prodLocSpecificKpis#982444, product#981888, productGroup#981917, qty#981719, quantityAfterProdPlantOptimization#981718, quantityKpis#982472, shardId#981205, sourceOfSupplyUuid#981884, splitIndicator#981880L, subrange#981887, supplier#981886, supplierGroup#981885, supplyingPlant#981916]
(55) Project
Output [37]: [shardId#981205, qty#981719, orderProposalId#981875L, originalReplenishmentRunId#981878L, supplierGroup#981885, supplier#981886, supplyingPlant#981916, productGroup#981917, product#981888, plant#981889, subrange#981887, orderDateTime#981893, deliveryDateTime#981894, availabilityDateTime#981895, nextAvailabilityDateTime#981896, logisticUnits#981912, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, splitIndicator#981880L, netPriceAmount#981903, netPriceCurrencyCode#981904, netPriceQuantity#981900, netPriceQuantityUom#981901, netPriceQuantityUomUuid#981902, sourceOfSupplyUuid#981884, orderProposalItemId#981876, orderProposalItemGroupId#981877, optimizationGroups#981913, measurements#981905, previousOrderProposal#981881L, prodLocSpecificKpis#982444, channelStreamSpecificKpis#982459, quantityKpis#982472, struct(minServiceLevel, array_min(filter(constraintStructArray#982886, lambdafunction((lambda x_2536#982893.constraintLabels = ServiceLevel), lambda x_2536#982893, false)).constraintValues), minServiceLevelMinStock, null, maxServiceLevelEndOfListing, array_min(filter(constraintStructArray#982886, lambdafunction((lambda x_2537#982894.constraintLabels = ServiceLevelAtStartOfDelisting), lambda x_2537#982894, false)).constraintValues), maxRoc, array_min(filter(constraintStructArray#982886, lambdafunction((lambda x_2538#982895.constraintLabels = RangeOfCoverage), lambda x_2538#982895, false)).constraintValues), minimumOrderQuantity, minimumOrderQuantity#981906, endOfListingDateTime, coalesce(filter(prodLocSpecificKpis#982444, lambdafunction((lambda x_2539#982896.label = NonListingStartTimestamp), lambda x_2539#982896, false))[0].dateTime, 1970-01-01 00:00:00)) AS constraintBenchmark#982892, CASE WHEN (qty#981719 <=> quantityAfterProdPlantOptimization#981718) THEN array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((qty#981719 * (cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2540#982964.isOrderUnit, lambda x_2540#982964, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2540#982965.isOrderUnit, lambda x_2540#982965, false)), 1, None, false).numerator as double))), qty#981719), orderQuantityUom, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2540#982966.isOrderUnit, lambda x_2540#982966, false)), 1, None, false).uom, orderQuantityBaseUom#981898), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2540#982967.isOrderUnit, lambda x_2540#982967, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#981899), candidateOrderQuantityInBaseUnit, qty#981719, orderQuantityBaseUom, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#981899, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#981912, lambdafunction((lambda x_2542#982968.isPreferred AND (((qty#981719 * cast(lambda x_2542#982968.denominator as double)) % cast(lambda x_2542#982968.numerator as double)) = 0.0)), lambda x_2542#982968, false)), lambdafunction(struct(inPreferredQuantity, ((qty#981719 * cast(lambda x_2543#983006.denominator as double)) / cast(lambda x_2543#983006.numerator as double)), uom, lambda x_2543#983006.uom, uomUuid, lambda x_2543#983006.uomUuid), lambda x_2543#983006, false))).inPreferredQuantity, coalesce((qty#981719 * (cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2541#982969.isOrderUnit, lambda x_2541#982969, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2541#982970.isOrderUnit, lambda x_2541#982970, false)), 1, None, false).numerator as double))), qty#981719)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#981912, lambdafunction((lambda x_2542#982971.isPreferred AND (((qty#981719 * cast(lambda x_2542#982971.denominator as double)) % cast(lambda x_2542#982971.numerator as double)) = 0.0)), lambda x_2542#982971, false)), lambdafunction(struct(inPreferredQuantity, ((qty#981719 * cast(lambda x_2543#983007.denominator as double)) / cast(lambda x_2543#983007.numerator as double)), uom, lambda x_2543#983007.uom, uomUuid, lambda x_2543#983007.uomUuid), lambda x_2543#983007, false))).uom, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2541#982972.isOrderUnit, lambda x_2541#982972, false)), 1, None, false).uom, orderQuantityBaseUom#981898)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#981912, lambdafunction((lambda x_2542#982973.isPreferred AND (((qty#981719 * cast(lambda x_2542#982973.denominator as double)) % cast(lambda x_2542#982973.numerator as double)) = 0.0)), lambda x_2542#982973, false)), lambdafunction(struct(inPreferredQuantity, ((qty#981719 * cast(lambda x_2543#983008.denominator as double)) / cast(lambda x_2543#983008.numerator as double)), uom, lambda x_2543#983008.uom, uomUuid, lambda x_2543#983008.uomUuid), lambda x_2543#983008, false))).uomUuid, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2541#982974.isOrderUnit, lambda x_2541#982974, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#981899)), serviceLevel, coalesce(filter(element_at(quantityKpis#982472, qty#981719, None, false), lambdafunction((lambda x_2548#982975.label = ServiceLevel), lambda x_2548#982975, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) ELSE array(struct(isProposedCandidate, true, isProdlocOptimalCandidate, false, candidateOrderQuantity, coalesce((qty#981719 * (cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2540#982978.isOrderUnit, lambda x_2540#982978, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2540#982979.isOrderUnit, lambda x_2540#982979, false)), 1, None, false).numerator as double))), qty#981719), orderQuantityUom, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2540#982980.isOrderUnit, lambda x_2540#982980, false)), 1, None, false).uom, orderQuantityBaseUom#981898), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2540#982981.isOrderUnit, lambda x_2540#982981, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#981899), candidateOrderQuantityInBaseUnit, qty#981719, orderQuantityBaseUom, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#981899, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#981912, lambdafunction((lambda x_2542#982982.isPreferred AND (((qty#981719 * cast(lambda x_2542#982982.denominator as double)) % cast(lambda x_2542#982982.numerator as double)) = 0.0)), lambda x_2542#982982, false)), lambdafunction(struct(inPreferredQuantity, ((qty#981719 * cast(lambda x_2543#983009.denominator as double)) / cast(lambda x_2543#983009.numerator as double)), uom, lambda x_2543#983009.uom, uomUuid, lambda x_2543#983009.uomUuid), lambda x_2543#983009, false))).inPreferredQuantity, coalesce((qty#981719 * (cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2541#982983.isOrderUnit, lambda x_2541#982983, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2541#982984.isOrderUnit, lambda x_2541#982984, false)), 1, None, false).numerator as double))), qty#981719)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#981912, lambdafunction((lambda x_2542#982985.isPreferred AND (((qty#981719 * cast(lambda x_2542#982985.denominator as double)) % cast(lambda x_2542#982985.numerator as double)) = 0.0)), lambda x_2542#982985, false)), lambdafunction(struct(inPreferredQuantity, ((qty#981719 * cast(lambda x_2543#983010.denominator as double)) / cast(lambda x_2543#983010.numerator as double)), uom, lambda x_2543#983010.uom, uomUuid, lambda x_2543#983010.uomUuid), lambda x_2543#983010, false))).uom, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2541#982986.isOrderUnit, lambda x_2541#982986, false)), 1, None, false).uom, orderQuantityBaseUom#981898)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#981912, lambdafunction((lambda x_2542#982987.isPreferred AND (((qty#981719 * cast(lambda x_2542#982987.denominator as double)) % cast(lambda x_2542#982987.numerator as double)) = 0.0)), lambda x_2542#982987, false)), lambdafunction(struct(inPreferredQuantity, ((qty#981719 * cast(lambda x_2543#983011.denominator as double)) / cast(lambda x_2543#983011.numerator as double)), uom, lambda x_2543#983011.uom, uomUuid, lambda x_2543#983011.uomUuid), lambda x_2543#983011, false))).uomUuid, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2541#982988.isOrderUnit, lambda x_2541#982988, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#981899)), serviceLevel, coalesce(filter(element_at(quantityKpis#982472, qty#981719, None, false), lambdafunction((lambda x_2551#982989.label = ServiceLevel), lambda x_2551#982989, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields), struct(isProposedCandidate, false, isProdlocOptimalCandidate, true, candidateOrderQuantity, coalesce((quantityAfterProdPlantOptimization#981718 * (cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2544#982992.isOrderUnit, lambda x_2544#982992, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2544#982993.isOrderUnit, lambda x_2544#982993, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#981718), orderQuantityUom, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2544#982994.isOrderUnit, lambda x_2544#982994, false)), 1, None, false).uom, orderQuantityBaseUom#981898), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2544#982995.isOrderUnit, lambda x_2544#982995, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#981899), candidateOrderQuantityInBaseUnit, quantityAfterProdPlantOptimization#981718, orderQuantityBaseUom, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid, orderQuantityBaseUomUuid#981899, candidateOrderQuantityInPreferredUnit, coalesce(array_min(transform(filter(logisticUnits#981912, lambdafunction((lambda x_2546#982996.isPreferred AND (((quantityAfterProdPlantOptimization#981718 * cast(lambda x_2546#982996.denominator as double)) % cast(lambda x_2546#982996.numerator as double)) = 0.0)), lambda x_2546#982996, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#981718 * cast(lambda x_2547#983012.denominator as double)) / cast(lambda x_2547#983012.numerator as double)), uom, lambda x_2547#983012.uom, uomUuid, lambda x_2547#983012.uomUuid), lambda x_2547#983012, false))).inPreferredQuantity, coalesce((quantityAfterProdPlantOptimization#981718 * (cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2545#982997.isOrderUnit, lambda x_2545#982997, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2545#982998.isOrderUnit, lambda x_2545#982998, false)), 1, None, false).numerator as double))), quantityAfterProdPlantOptimization#981718)), orderQuantityPreferredUom, coalesce(array_min(transform(filter(logisticUnits#981912, lambdafunction((lambda x_2546#982999.isPreferred AND (((quantityAfterProdPlantOptimization#981718 * cast(lambda x_2546#982999.denominator as double)) % cast(lambda x_2546#982999.numerator as double)) = 0.0)), lambda x_2546#982999, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#981718 * cast(lambda x_2547#983013.denominator as double)) / cast(lambda x_2547#983013.numerator as double)), uom, lambda x_2547#983013.uom, uomUuid, lambda x_2547#983013.uomUuid), lambda x_2547#983013, false))).uom, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2545#983000.isOrderUnit, lambda x_2545#983000, false)), 1, None, false).uom, orderQuantityBaseUom#981898)), orderQuantityPreferredUomUuid, coalesce(array_min(transform(filter(logisticUnits#981912, lambdafunction((lambda x_2546#983001.isPreferred AND (((quantityAfterProdPlantOptimization#981718 * cast(lambda x_2546#983001.denominator as double)) % cast(lambda x_2546#983001.numerator as double)) = 0.0)), lambda x_2546#983001, false)), lambdafunction(struct(inPreferredQuantity, ((quantityAfterProdPlantOptimization#981718 * cast(lambda x_2547#983014.denominator as double)) / cast(lambda x_2547#983014.numerator as double)), uom, lambda x_2547#983014.uom, uomUuid, lambda x_2547#983014.uomUuid), lambda x_2547#983014, false))).uomUuid, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2545#983002.isOrderUnit, lambda x_2545#983002, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#981899)), serviceLevel, coalesce(filter(element_at(quantityKpis#982472, quantityAfterProdPlantOptimization#981718, None, false), lambdafunction((lambda x_2554#983003.label = ServiceLevel), lambda x_2554#983003, false))[0].value, 0.0), serviceLevelMinStock, ... 5 more fields)) END AS calculationAnalysis#982963, coalesce(filter(prodLocSpecificKpis#982444, lambdafunction((lambda x_2557#983016.label = InitialStockQty), lambda x_2557#983016, false))[0].dateTime, 1970-01-01 00:00:00) AS inventoryDateTime#983015, coalesce(filter(prodLocSpecificKpis#982444, lambdafunction((lambda x_2558#983018.label = DemandPeriodEndTimestamp), lambda x_2558#983018, false))[0].dateTime, 1970-01-01 00:00:00) AS demandPeriodEndDateTime#983017]
Input [36]: [shardId#981205, quantityAfterProdPlantOptimization#981718, qty#981719, orderProposalId#981875L, originalReplenishmentRunId#981878L, supplierGroup#981885, supplier#981886, supplyingPlant#981916, productGroup#981917, product#981888, plant#981889, subrange#981887, orderDateTime#981893, deliveryDateTime#981894, availabilityDateTime#981895, nextAvailabilityDateTime#981896, logisticUnits#981912, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, splitIndicator#981880L, netPriceAmount#981903, netPriceCurrencyCode#981904, netPriceQuantity#981900, netPriceQuantityUom#981901, netPriceQuantityUomUuid#981902, sourceOfSupplyUuid#981884, minimumOrderQuantity#981906, orderProposalItemId#981876, orderProposalItemGroupId#981877, optimizationGroups#981913, measurements#981905, previousOrderProposal#981881L, prodLocSpecificKpis#982444, channelStreamSpecificKpis#982459, quantityKpis#982472, constraintStructArray#982886]
(56) Project
Output [21]: [shardId#981205, qty#981719, orderProposalId#981875L, originalReplenishmentRunId#981878L, supplierGroup#981885, supplier#981886, supplyingPlant#981916, productGroup#981917, product#981888, plant#981889, subrange#981887, orderDateTime#981893, deliveryDateTime#981894, logisticUnits#981912, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, splitIndicator#981880L, orderProposalItemId#981876, orderProposalItemGroupId#981877, previousOrderProposal#981881L, struct(itemId, 123456, itemGroupId, 123456, supplier, supplier#981886, supplyingPlant, supplyingPlant#981916, productGroup, productGroup#981917, product, product#981888, plant, plant#981889, supplierSubRange, subrange#981887, sourceOfSupplyUuid, sourceOfSupplyUuid#981884, deliveryDateTime, deliveryDateTime#981894, unitPrice, netPriceAmount#981903, unitPriceCurrency, netPriceCurrencyCode#981904, unitPriceQuantity, ... 37 more fields) AS parentItem#983097]
Input [37]: [shardId#981205, qty#981719, orderProposalId#981875L, originalReplenishmentRunId#981878L, supplierGroup#981885, supplier#981886, supplyingPlant#981916, productGroup#981917, product#981888, plant#981889, subrange#981887, orderDateTime#981893, deliveryDateTime#981894, availabilityDateTime#981895, nextAvailabilityDateTime#981896, logisticUnits#981912, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, splitIndicator#981880L, netPriceAmount#981903, netPriceCurrencyCode#981904, netPriceQuantity#981900, netPriceQuantityUom#981901, netPriceQuantityUomUuid#981902, sourceOfSupplyUuid#981884, orderProposalItemId#981876, orderProposalItemGroupId#981877, optimizationGroups#981913, measurements#981905, previousOrderProposal#981881L, prodLocSpecificKpis#982444, channelStreamSpecificKpis#982459, quantityKpis#982472, constraintBenchmark#982892, calculationAnalysis#982963, inventoryDateTime#983015, demandPeriodEndDateTime#983017]
(57) Project
Output [12]: [shardId#981205, orderProposalId#981875L, originalReplenishmentRunId#981878L, supplierGroup#981885, supplier#981886, supplyingPlant#981916, orderDateTime#981893, splitIndicator#981880L, orderProposalItemGroupId#981877, previousOrderProposal#981881L, parentItem#983097, struct(itemId, orderProposalItemId#981876, supplier, supplier#981886, supplyingPlant, supplyingPlant#981916, productGroup, productGroup#981917, product, product#981888, plant, plant#981889, supplierSubRange, subrange#981887, deliveryDateTime, deliveryDateTime#981894, orderQuantity, coalesce((qty#981719 * (cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2582#983131.isOrderUnit, lambda x_2582#983131, false)), 1, None, false).denominator as double) / cast(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2582#983132.isOrderUnit, lambda x_2582#983132, false)), 1, None, false).numerator as double))), qty#981719), orderQuantityUom, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2582#983133.isOrderUnit, lambda x_2582#983133, false)), 1, None, false).uom, orderQuantityBaseUom#981898), orderQuantityUomUuid, coalesce(element_at(filter(logisticUnits#981912, lambdafunction(lambda x_2582#983134.isOrderUnit, lambda x_2582#983134, false)), 1, None, false).uomUuid, orderQuantityBaseUomUuid#981899), orderQuantityInBaseUnit, qty#981719, orderQuantityBaseUom, ... 13 more fields) AS item#983128]
Input [21]: [shardId#981205, qty#981719, orderProposalId#981875L, originalReplenishmentRunId#981878L, supplierGroup#981885, supplier#981886, supplyingPlant#981916, productGroup#981917, product#981888, plant#981889, subrange#981887, orderDateTime#981893, deliveryDateTime#981894, logisticUnits#981912, orderQuantityBaseUom#981898, orderQuantityBaseUomUuid#981899, splitIndicator#981880L, orderProposalItemId#981876, orderProposalItemGroupId#981877, previousOrderProposal#981881L, parentItem#983097]
(58) ObjectHashAggregate
Input [12]: [shardId#981205, orderProposalId#981875L, originalReplenishmentRunId#981878L, supplierGroup#981885, supplier#981886, supplyingPlant#981916, orderDateTime#981893, splitIndicator#981880L, orderProposalItemGroupId#981877, previousOrderProposal#981881L, parentItem#983097, item#983128]
Keys [4]: [shardId#981205, orderProposalId#981875L, splitIndicator#981880L, orderProposalItemGroupId#981877]
Functions [8]: [partial_max(originalReplenishmentRunId#981878L), partial_max(supplierGroup#981885), partial_max(supplier#981886), partial_max(supplyingPlant#981916), partial_max(orderDateTime#981893), partial_collect_list(parentItem#983097, 0, 0), partial_collect_set(previousOrderProposal#981881L, 0, 0), partial_collect_list(item#983128, 0, 0)]
Aggregate Attributes [8]: [max#984389L, max#984390, max#984391, max#984392, max#984393, buf#984394, buf#984395, buf#984396]
Results [12]: [shardId#981205, orderProposalId#981875L, splitIndicator#981880L, orderProposalItemGroupId#981877, max#984397L, max#984398, max#984399, max#984400, max#984401, buf#984402, buf#984403, buf#984404]
(59) Exchange
Input [12]: [shardId#981205, orderProposalId#981875L, splitIndicator#981880L, orderProposalItemGroupId#981877, max#984397L, max#984398, max#984399, max#984400, max#984401, buf#984402, buf#984403, buf#984404]
Arguments: hashpartitioning(shardId#981205, orderProposalId#981875L, splitIndicator#981880L, orderProposalItemGroupId#981877, 20), ENSURE_REQUIREMENTS, [plan_id=382171]
(60) ObjectHashAggregate
Input [12]: [shardId#981205, orderProposalId#981875L, splitIndicator#981880L, orderProposalItemGroupId#981877, max#984397L, max#984398, max#984399, max#984400, max#984401, buf#984402, buf#984403, buf#984404]
Keys [4]: [shardId#981205, orderProposalId#981875L, splitIndicator#981880L, orderProposalItemGroupId#981877]
Functions [8]: [max(originalReplenishmentRunId#981878L), max(supplierGroup#981885), max(supplier#981886), max(supplyingPlant#981916), max(orderDateTime#981893), collect_list(parentItem#983097, 0, 0), collect_set(previousOrderProposal#981881L, 0, 0), collect_list(item#983128, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#981878L)#983197L, max(supplierGroup#981885)#983198, max(supplier#981886)#983199, max(supplyingPlant#981916)#983200, max(orderDateTime#981893)#983201, collect_list(parentItem#983097, 0, 0)#983202, collect_set(previousOrderProposal#981881L, 0, 0)#983204, collect_list(item#983128, 0, 0)#983203]
Results [10]: [shardId#981205, orderProposalId#981875L, max(originalReplenishmentRunId#981878L)#983197L AS originalReplenishmentRunId#983145L, max(supplierGroup#981885)#983198 AS supplierGroup#983146, max(supplier#981886)#983199 AS supplier#983147, max(supplyingPlant#981916)#983200 AS supplyingPlant#983148, max(orderDateTime#981893)#983201 AS orderDateTime#983149, collect_list(parentItem#983097, 0, 0)#983202 AS parentItems#983150, collect_set(previousOrderProposal#981881L, 0, 0)#983204 AS previousOrderProposals#983152, struct(itemGroupId, coalesce(orderProposalItemGroupId#981877, cast((monotonically_increasing_id() % 9999999999) as string)), items, collect_list(item#983128, 0, 0)#983203) AS itemGroup#983206]
(61) ObjectHashAggregate
Input [10]: [shardId#981205, orderProposalId#981875L, originalReplenishmentRunId#983145L, supplierGroup#983146, supplier#983147, supplyingPlant#983148, orderDateTime#983149, parentItems#983150, previousOrderProposals#983152, itemGroup#983206]
Keys [2]: [shardId#981205, orderProposalId#981875L]
Functions [8]: [partial_max(originalReplenishmentRunId#983145L), partial_max(supplierGroup#983146), partial_max(supplier#983147), partial_max(supplyingPlant#983148), partial_max(orderDateTime#983149), partial_collect_list(itemGroup#983206, 0, 0), partial_collect_list(parentItems#983150, 0, 0), partial_collect_set(previousOrderProposals#983152, 0, 0)]
Aggregate Attributes [8]: [max#984373L, max#984374, max#984375, max#984376, max#984377, buf#984378, buf#984379, buf#984380]
Results [10]: [shardId#981205, orderProposalId#981875L, max#984381L, max#984382, max#984383, max#984384, max#984385, buf#984386, buf#984387, buf#984388]
(62) Exchange
Input [10]: [shardId#981205, orderProposalId#981875L, max#984381L, max#984382, max#984383, max#984384, max#984385, buf#984386, buf#984387, buf#984388]
Arguments: hashpartitioning(shardId#981205, orderProposalId#981875L, 20), ENSURE_REQUIREMENTS, [plan_id=382174]
(63) ObjectHashAggregate
Input [10]: [shardId#981205, orderProposalId#981875L, max#984381L, max#984382, max#984383, max#984384, max#984385, buf#984386, buf#984387, buf#984388]
Keys [2]: [shardId#981205, orderProposalId#981875L]
Functions [8]: [max(originalReplenishmentRunId#983145L), max(supplierGroup#983146), max(supplier#983147), max(supplyingPlant#983148), max(orderDateTime#983149), collect_list(itemGroup#983206, 0, 0), collect_list(parentItems#983150, 0, 0), collect_set(previousOrderProposals#983152, 0, 0)]
Aggregate Attributes [8]: [max(originalReplenishmentRunId#983145L)#983228L, max(supplierGroup#983146)#983229, max(supplier#983147)#983230, max(supplyingPlant#983148)#983231, max(orderDateTime#983149)#983232, collect_list(itemGroup#983206, 0, 0)#983233, collect_list(parentItems#983150, 0, 0)#983234, collect_set(previousOrderProposals#983152, 0, 0)#983235]
Results [10]: [shardId#981205, orderProposalId#981875L, max(originalReplenishmentRunId#983145L)#983228L AS originalReplenishmentRunId#983207L, max(supplierGroup#983146)#983229 AS supplierGroup#983208, max(supplier#983147)#983230 AS supplier#983209, max(supplyingPlant#983148)#983231 AS supplyingPlant#983210, max(orderDateTime#983149)#983232 AS orderDateTime#983211, collect_list(itemGroup#983206, 0, 0)#983233 AS itemGroups#983212, flatten(collect_list(parentItems#983150, 0, 0)#983234) AS parentItems#983213, flatten(collect_set(previousOrderProposals#983152, 0, 0)#983235) AS previousOrderProposals#983214]
(64) Project
Output [2]: [shardId#981205, struct(orderProposalId, orderProposalId#981875L, originalReplenishmentRunId, originalReplenishmentRunId#983207L, supplierGroup, supplierGroup#983208, optimizationGroups, null, supplier, CASE WHEN isnull(supplierGroup#983208) THEN supplier#983209 END, supplyingPlant, supplyingPlant#983210, orderDateTime, orderDateTime#983211, itemGroups, itemGroups#983212, previousOrderProposals, array_distinct(previousOrderProposals#983214), parentItems, parentItems#983213) AS orderProposal#983239]
Input [10]: [shardId#981205, orderProposalId#981875L, originalReplenishmentRunId#983207L, supplierGroup#983208, supplier#983209, supplyingPlant#983210, orderDateTime#983211, itemGroups#983212, parentItems#983213, previousOrderProposals#983214]
(65) Project
Output [11]: [shardId#981205, orderProposal#983239.orderProposalId AS _extract_orderProposalId#984005L, orderProposal#983239.originalReplenishmentRunId AS _extract_originalReplenishmentRunId#984006L, orderProposal#983239.supplierGroup AS _extract_supplierGroup#984007, orderProposal#983239.supplier AS _extract_supplier#984008, orderProposal#983239.supplyingPlant AS _extract_supplyingPlant#984009, orderProposal#983239.orderDateTime AS _extract_orderDateTime#984010, orderProposal#983239.itemGroups AS _extract_itemGroups#984011, orderProposal#983239.previousOrderProposals AS _extract_previousOrderProposals#984012, orderProposal#983239.parentItems AS _extract_parentItems#984013, orderProposal#983239.orderProposalId AS _extract_orderProposalId#984014L]
Input [2]: [shardId#981205, orderProposal#983239]
(66) InMemoryTableScan
Output [3]: [shardId#983262, orderProposalId#983263L, optimizationGroups#983265]
Arguments: [shardId#983262, orderProposalId#983263L, optimizationGroups#983265], [isnotnull(orderProposalId#983263L)]
(67) InMemoryRelation
Arguments: [shardId#983262, orderProposalId#983263L, items#983264, optimizationGroups#983265, isOptimal#983266, optimizationInsights#983268], StorageLevel(disk, memory, 2 replicas)
(68) Filter [codegen id : 2]
Input [3]: [shardId#983262, orderProposalId#983263L, optimizationGroups#983265]
Condition : isnotnull(orderProposalId#983263L)
(69) BroadcastExchange
Input [3]: [shardId#983262, orderProposalId#983263L, optimizationGroups#983265]
Arguments: HashedRelationBroadcastMode(List(input[1, bigint, false]),false), [plan_id=382181]
(70) InMemoryTableScan
Output [2]: [items#982881, shardId#982879]
Arguments: [items#982881, shardId#982879], [(size(items#982881.worklistShardItemId, true) > 0), isnotnull(items#982881.worklistShardItemId), (shardId#982879 = 0_1_10000002110)]
(71) InMemoryRelation
Arguments: [shardId#982879, orderProposalId#982880L, items#982881, optimizationGroups#982882, isOptimal#982883, optimizationInsights#982885], StorageLevel(disk, memory, 2 replicas)
(72) Filter [codegen id : 3]
Input [2]: [items#982881, shardId#982879]
Condition : (((size(items#982881.worklistShardItemId, true) > 0) AND isnotnull(items#982881.worklistShardItemId)) AND (shardId#982879 = 0_1_10000002110))
(73) Project [codegen id : 3]
Output [1]: [items#982881.worklistShardItemId AS _extract_worklistShardItemId#983910]
Input [2]: [items#982881, shardId#982879]
(74) Generate [codegen id : 3]
Input [1]: [_extract_worklistShardItemId#983910]
Arguments: explode(_extract_worklistShardItemId#983910), false, [item#983269L]
(75) Project [codegen id : 3]
Output [1]: [item#983269L AS worklistShardItemId#983270L]
Input [1]: [item#983269L]
(76) BroadcastExchange
Input [1]: [worklistShardItemId#983270L]
Arguments: HashedRelationBroadcastMode(List(input[0, bigint, true]),false), [plan_id=382189]
(77) Scan parquet
Output [5]: [orderProposalId#983318L, isFallbackOrderOnly#983335, worklistShardItemId#983341L, shardId#983362, sequenceId#983340]
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/10000002110]
PartitionFilters: [isnotnull(shardId#983362), isnotnull(sequenceId#983340), (shardId#983362 = 0_1_10000002110), (sequenceId#983340 = 2)]
PushedFilters: [IsNotNull(worklistShardItemId), Not(EqualNullSafe(isFallbackOrderOnly,true)), IsNotNull(orderProposalId)]
ReadSchema: struct<orderProposalId:bigint,isFallbackOrderOnly:boolean,worklistShardItemId:bigint>
(78) ColumnarToRow [codegen id : 4]
Input [5]: [orderProposalId#983318L, isFallbackOrderOnly#983335, worklistShardItemId#983341L, shardId#983362, sequenceId#983340]
(79) Filter [codegen id : 4]
Input [5]: [orderProposalId#983318L, isFallbackOrderOnly#983335, worklistShardItemId#983341L, shardId#983362, sequenceId#983340]
Condition : ((isnotnull(worklistShardItemId#983341L) AND NOT (isFallbackOrderOnly#983335 <=> true)) AND isnotnull(orderProposalId#983318L))
(80) Project [codegen id : 4]
Output [2]: [orderProposalId#983318L, worklistShardItemId#983341L]
Input [5]: [orderProposalId#983318L, isFallbackOrderOnly#983335, worklistShardItemId#983341L, shardId#983362, sequenceId#983340]
(81) Exchange
Input [2]: [orderProposalId#983318L, worklistShardItemId#983341L]
Arguments: hashpartitioning(worklistShardItemId#983341L, 20), REPARTITION_BY_NUM, [plan_id=382196]
(82) Project
Output [2]: [worklistShardItemId#983341L, orderProposalId#983318L]
Input [2]: [orderProposalId#983318L, worklistShardItemId#983341L]
(83) BroadcastHashJoin [codegen id : 5]
Left keys [1]: [worklistShardItemId#983270L]
Right keys [1]: [worklistShardItemId#983341L]
Join type: Inner
Join condition: None
(84) Project [codegen id : 5]
Output [1]: [orderProposalId#983318L]
Input [3]: [worklistShardItemId#983270L, worklistShardItemId#983341L, orderProposalId#983318L]
(85) HashAggregate [codegen id : 5]
Input [1]: [orderProposalId#983318L]
Keys [1]: [orderProposalId#983318L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#983318L]
(86) Exchange
Input [1]: [orderProposalId#983318L]
Arguments: hashpartitioning(orderProposalId#983318L, 20), ENSURE_REQUIREMENTS, [plan_id=382203]
(87) HashAggregate
Input [1]: [orderProposalId#983318L]
Keys [1]: [orderProposalId#983318L]
Functions: []
Aggregate Attributes: []
Results [1]: [orderProposalId#983318L]
(88) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [orderProposalId#983263L]
Right keys [1]: [orderProposalId#983318L]
Join type: Inner
Join condition: None
(89) Project
Output [3]: [orderProposalId#983263L, shardId#983262, coalesce(transform(optimizationGroups#983265, lambdafunction(struct(optGroupId, lambda x_2586#983260.optGroupId, minOrderProfile, lambda x_2586#983260.minOrderProfile, assignmentDetails, lambda x_2586#983260.assignmentDetails, minOrdBenchmark, struct(dimensionType, lambda x_2586#983260.minOrderGoal.dimensionType, unit, lambda x_2586#983260.minOrderGoal.unit, unitUuid, lambda x_2586#983260.minOrderGoal.unitUuid, goalValue, lambda x_2586#983260.minOrderGoal.minOrderValue, calcValue, lambda x_2586#983260.minOrderGoal.calculatedOrderValue), transportLoadProfile, DummyTloProfile01, transportLoadGoal, [3,5000.0,false,PAL,a7f3c91d204eb8f56d12a09e3b785c4f,TON,b4e8d1f0c73a92e61d05b8f4a291c07e,40.0]), lambda x_2586#983260, false)), []) AS optimizationGroups#983259]
Input [4]: [shardId#983262, orderProposalId#983263L, optimizationGroups#983265, orderProposalId#983318L]
(90) BroadcastExchange
Input [3]: [orderProposalId#983263L, shardId#983262, optimizationGroups#983259]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[0, bigint, true], 0), isnull(input[0, bigint, true])),false), [plan_id=382209]
(91) BroadcastHashJoin
Left keys [4]: [coalesce(shardId#981205, ), isnull(shardId#981205), coalesce(_extract_orderProposalId#984014L, 0), isnull(_extract_orderProposalId#984014L)]
Right keys [4]: [coalesce(shardId#983262, ), isnull(shardId#983262), coalesce(orderProposalId#983263L, 0), isnull(orderProposalId#983263L)]
Join type: LeftOuter
Join condition: None
(92) Project
Output [2]: [shardId#981205, named_struct(orderProposalId, _extract_orderProposalId#984014L, originalReplenishmentRunId, _extract_originalReplenishmentRunId#984006L, supplierGroup, _extract_supplierGroup#984007, optimizationGroups, coalesce(optimizationGroups#983259, []), supplier, _extract_supplier#984008, supplyingPlant, _extract_supplyingPlant#984009, orderDateTime, _extract_orderDateTime#984010, itemGroups, _extract_itemGroups#984011, previousOrderProposals, _extract_previousOrderProposals#984012, parentItems, _extract_parentItems#984013) AS orderProposal#983366]
Input [14]: [shardId#981205, _extract_orderProposalId#984005L, _extract_originalReplenishmentRunId#984006L, _extract_supplierGroup#984007, _extract_supplier#984008, _extract_supplyingPlant#984009, _extract_orderDateTime#984010, _extract_itemGroups#984011, _extract_previousOrderProposals#984012, _extract_parentItems#984013, _extract_orderProposalId#984014L, orderProposalId#983263L, shardId#983262, optimizationGroups#983259]
(93) Project
Output [3]: [shardId#981205, orderProposal#983366, CASE WHEN (size(orderProposal#983366.parentItems, true) > 2000) THEN xxhash64(orderProposal#983366.orderProposalId, 42) ELSE xxhash64(pmod(cast(orderProposal#983366.orderProposalId as decimal(20,0)), 1), 42) END AS resultSeparationId#985102L]
Input [2]: [orderProposal#983366, shardId#981205]
(94) ObjectHashAggregate
Input [3]: [shardId#981205, orderProposal#983366, resultSeparationId#985102L]
Keys [2]: [shardId#981205, resultSeparationId#985102L]
Functions [1]: [partial_collect_list(orderProposal#983366, 0, 0)]
Aggregate Attributes [1]: [buf#985141]
Results [3]: [shardId#981205, resultSeparationId#985102L, buf#985142]
(95) Exchange
Input [3]: [shardId#981205, resultSeparationId#985102L, buf#985142]
Arguments: hashpartitioning(shardId#981205, resultSeparationId#985102L, 20), ENSURE_REQUIREMENTS, [plan_id=382344]
(96) ObjectHashAggregate
Input [3]: [shardId#981205, resultSeparationId#985102L, buf#985142]
Keys [2]: [shardId#981205, resultSeparationId#985102L]
Functions [1]: [collect_list(orderProposal#983366, 0, 0)]
Aggregate Attributes [1]: [collect_list(orderProposal#983366, 0, 0)#985110]
Results [3]: [shardId#981205, resultSeparationId#985102L, collect_list(orderProposal#983366, 0, 0)#985110 AS orderProposals#985106]
(97) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#985219L]
Results [1]: [count#985220L]
(98) Exchange
Input [1]: [count#985220L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=382368]
(99) HashAggregate [codegen id : 2]
Input [1]: [count#985220L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#985173L]
Results [1]: [count(1)#985173L AS count#985169L]