class org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner extends org.finos.legend.engine.persistence.components.planner.UnitemporalPlanner
{
private final java.util.Optional deleteIndicatorField;
private final java.util.List deleteIndicatorValues;
private final org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition versioningCondition;
private final org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition inverseVersioningCondition;
private final java.util.Optional deleteIndicatorIsNotSetCondition;
private final java.util.Optional deleteIndicatorIsSetCondition;
private final java.util.Optional dataSplitInRangeCondition;
void <init>(org.finos.legend.engine.persistence.components.common.Datasets, org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta, org.finos.legend.engine.persistence.components.planner.PlannerOptions, java.util.Set)
{
org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner v;
org.finos.legend.engine.persistence.components.common.Datasets v;
org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategyVisitor v, v;
boolean v;
org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta v, v, v, v;
org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategy v, v;
java.util.Set v;
org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningConditionVisitor v, v;
java.util.List v, v;
org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategy v, v;
java.util.Optional v, v, v, v, v, v;
java.util.function.Function v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v, v, v, v, v;
java.lang.String v, v;
org.finos.legend.engine.persistence.components.planner.PlannerOptions v;
java.lang.Object v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner;
v := @parameter: org.finos.legend.engine.persistence.components.common.Datasets;
v := @parameter: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta;
v := @parameter: org.finos.legend.engine.persistence.components.planner.PlannerOptions;
v := @parameter: java.util.Set;
specialinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalPlanner: void <init>(org.finos.legend.engine.persistence.components.common.Datasets,org.finos.legend.engine.persistence.components.ingestmode.transactionmilestoning.TransactionMilestoned,org.finos.legend.engine.persistence.components.planner.PlannerOptions,java.util.Set)>(v, v, v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: java.util.List optimizationFilters()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: java.util.List optimizationFilters()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset stagingDataset()>();
virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: void validateOptimizationFilters(java.util.List,org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset)>(v, v);
label:
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategy mergeStrategy()>();
v = <org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategyVisitors: org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategyVisitor EXTRACT_DELETE_FIELD>;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategy: java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategyVisitor)>(v);
v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorField> = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategy mergeStrategy()>();
v = <org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategyVisitors: org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategyVisitor EXTRACT_DELETE_VALUES>;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategy: java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.merge.MergeStrategyVisitor)>(v);
v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.List deleteIndicatorValues> = v;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorField>;
v = staticinvoke <org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner$lambda_new_0__68: java.util.function.Function bootstrap$(org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner)>(v);
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorIsNotSetCondition> = v;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorField>;
v = staticinvoke <org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner$lambda_new_1__69: java.util.function.Function bootstrap$(org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner)>(v);
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorIsSetCondition> = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: java.util.Optional dataSplitField()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner$lambda_new_2__70: java.util.function.Function bootstrap$(org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner)>(v);
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional dataSplitInRangeCondition> = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategy versioningStrategy()>();
v = new org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningConditionVisitor;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset stagingDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: java.lang.String digestField()>();
specialinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningConditionVisitor: void <init>(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,boolean,java.lang.String)>(v, v, 0, v);
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategy: java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategyVisitor)>(v);
v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition versioningCondition> = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategy versioningStrategy()>();
v = new org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningConditionVisitor;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset stagingDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: java.lang.String digestField()>();
specialinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningConditionVisitor: void <init>(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,boolean,java.lang.String)>(v, v, 1, v);
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategy: java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.versioning.VersioningStrategyVisitor)>(v);
v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition inverseVersioningCondition> = v;
return;
}
protected org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta ingestMode()
{
org.finos.legend.engine.persistence.components.ingestmode.transactionmilestoning.TransactionMilestoned v;
org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner v;
v := @this: org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner;
v = specialinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalPlanner: org.finos.legend.engine.persistence.components.ingestmode.transactionmilestoning.TransactionMilestoned ingestMode()>();
return v;
}
public org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan buildLogicalPlanForIngest(org.finos.legend.engine.persistence.components.common.Resources)
{
org.finos.legend.engine.persistence.components.logicalplan.operations.Insert v;
org.finos.legend.engine.persistence.components.logicalplan.operations.Update v;
org.finos.legend.engine.persistence.components.common.Resources v;
org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan v;
boolean v;
java.util.ArrayList v;
v := @this: org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner;
v := @parameter: org.finos.legend.engine.persistence.components.common.Resources;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.common.Resources: boolean stagingDataSetEmpty()>();
if v != 0 goto label;
v = specialinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.operations.Update getMilestoningLogic()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = specialinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.operations.Insert getUpsertLogic()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan of(java.util.List)>(v);
return v;
}
private org.finos.legend.engine.persistence.components.logicalplan.operations.Insert getUpsertLogic()
{
org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder v, v, v, v, v, v;
boolean v, v, v, v;
org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta v, v;
org.finos.legend.engine.persistence.components.logicalplan.operations.Insert v;
java.util.List v, v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition[] v, v, v;
java.util.Optional v, v, v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder v, v, v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Not v;
java.util.ArrayList v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.And v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Exists v;
java.util.function.Consumer v;
java.lang.Object v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.List getDataFields()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.List transactionMilestoningFields()>();
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorField>;
v = staticinvoke <org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner$lambda_getUpsertLogic_3__71: java.util.function.Consumer bootstrap$(java.util.List,java.util.List)>(v, v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.List transactionMilestoningFieldValues()>();
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition openRecordCondition>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition inverseVersioningCondition>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition primaryKeysMatchCondition>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: java.util.List optimizationFilters()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: java.util.List optimizationFilters()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.util.LogicalPlanUtils: java.util.List getOptimizationFilterConditions(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,java.util.List)>(v, v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
label:
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder source(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.And: org.finos.legend.engine.persistence.components.logicalplan.conditions.And of(java.util.List)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder condition(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.util.LogicalPlanUtils: java.util.List ALL_COLUMNS()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder addAllFields(java.lang.Iterable)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection build()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.Exists: org.finos.legend.engine.persistence.components.logicalplan.conditions.Exists of(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.Not: org.finos.legend.engine.persistence.components.logicalplan.conditions.Not of(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)>(v);
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorField>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional dataSplitInRangeCondition>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.And: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder builder()>();
v = newarray (org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)[3];
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional dataSplitInRangeCondition>;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v[0] = v;
v[1] = v;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorIsNotSetCondition>;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v[2] = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder addConditions(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition[])>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And build()>();
goto label;
label:
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.And: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder builder()>();
v = newarray (org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)[2];
v[0] = v;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorIsNotSetCondition>;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v[1] = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder addConditions(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition[])>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And build()>();
goto label;
label:
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional dataSplitInRangeCondition>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.And: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder builder()>();
v = newarray (org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)[2];
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional dataSplitInRangeCondition>;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v[0] = v;
v[1] = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder addConditions(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition[])>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And build()>();
goto label;
label:
v = v;
label:
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset stagingDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder source(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder condition(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder addAllFields(java.lang.Iterable)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection build()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.operations.Insert: org.finos.legend.engine.persistence.components.logicalplan.operations.Insert of(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,java.util.List)>(v, v, v);
return v;
}
private org.finos.legend.engine.persistence.components.logicalplan.operations.Update getMilestoningLogic()
{
org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder v, v, v, v;
boolean v, v, v;
org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta v, v;
org.finos.legend.engine.persistence.components.logicalplan.operations.Update v;
java.util.List v, v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition[] v, v, v;
java.util.Optional v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder v, v, v, v;
java.util.ArrayList v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.And v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Exists v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Or$Builder v, v;
java.lang.Object v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.List keyValuesForMilestoningUpdate()>();
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition versioningCondition>;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorIsSetCondition>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.Or: org.finos.legend.engine.persistence.components.logicalplan.conditions.Or$Builder builder()>();
v = newarray (org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)[2];
v[0] = v;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorIsSetCondition>;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v[1] = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.Or$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.Or$Builder addConditions(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition[])>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.Or$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.Or build()>();
label:
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional dataSplitInRangeCondition>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.And: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder builder()>();
v = newarray (org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)[3];
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional dataSplitInRangeCondition>;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v[0] = v;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition primaryKeysMatchCondition>;
v[1] = v;
v[2] = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder addConditions(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition[])>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And build()>();
goto label;
label:
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.And: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder builder()>();
v = newarray (org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)[2];
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition primaryKeysMatchCondition>;
v[0] = v;
v[1] = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder addConditions(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition[])>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder: org.finos.legend.engine.persistence.components.logicalplan.conditions.And build()>();
label:
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset stagingDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder source(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder condition(org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.util.LogicalPlanUtils: java.util.List ALL_COLUMNS()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder addAllFields(java.lang.Iterable)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection build()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.Exists: org.finos.legend.engine.persistence.components.logicalplan.conditions.Exists of(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition openRecordCondition>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: java.util.List optimizationFilters()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.UnitemporalDelta: java.util.List optimizationFilters()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.util.LogicalPlanUtils: java.util.List getOptimizationFilterConditions(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,java.util.List)>(v, v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
label:
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.And: org.finos.legend.engine.persistence.components.logicalplan.conditions.And of(java.util.List)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.operations.UpdateAbstract: org.finos.legend.engine.persistence.components.logicalplan.operations.Update of(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,java.lang.Iterable,org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)>(v, v, v);
return v;
}
protected void addPostRunStatsForRowsTerminated(java.util.Map)
{
org.finos.legend.engine.persistence.components.common.StatisticName v, v;
org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan v;
java.lang.Long v;
java.util.Map v;
java.util.Optional v;
java.lang.String v;
boolean v;
v := @this: org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner;
v := @parameter: java.util.Map;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorField>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v != 0 goto label;
v = <org.finos.legend.engine.persistence.components.common.StatisticName: org.finos.legend.engine.persistence.components.common.StatisticName ROWS_TERMINATED>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.common.StatisticName: java.lang.String get()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(0L);
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.LogicalPlanFactory: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan getLogicalPlanForConstantStats(java.lang.String,java.lang.Long)>(v, v);
v = <org.finos.legend.engine.persistence.components.common.StatisticName: org.finos.legend.engine.persistence.components.common.StatisticName ROWS_TERMINATED>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
specialinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalPlanner: void addPostRunStatsForRowsTerminated(java.util.Map)>(v);
label:
return;
}
protected void addPostRunStatsForRowsUpdated(java.util.Map)
{
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection v;
org.finos.legend.engine.persistence.components.common.StatisticName v, v;
org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder v, v;
java.util.Map v;
java.util.Optional v;
java.lang.String v;
boolean v;
v := @this: org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner;
v := @parameter: java.util.Map;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorField>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v != 0 goto label;
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder builder()>();
v = <org.finos.legend.engine.persistence.components.common.StatisticName: org.finos.legend.engine.persistence.components.common.StatisticName ROWS_UPDATED>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.common.StatisticName: java.lang.String get()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection getRowsInvalidatedInSink(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder addOps(org.finos.legend.engine.persistence.components.logicalplan.operations.Operation)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan build()>();
v = <org.finos.legend.engine.persistence.components.common.StatisticName: org.finos.legend.engine.persistence.components.common.StatisticName ROWS_UPDATED>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
specialinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalPlanner: void addPostRunStatsForRowsUpdated(java.util.Map)>(v);
label:
return;
}
protected void addPostRunStatsForRowsInserted(java.util.Map)
{
org.finos.legend.engine.persistence.components.common.StatisticName v, v;
org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder v, v;
java.util.Map v;
java.lang.String v;
boolean v;
org.finos.legend.engine.persistence.components.logicalplan.values.DiffBinaryValueOperator v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection v;
org.finos.legend.engine.persistence.components.logicalplan.values.SelectValue v, v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan v;
java.util.Optional v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner;
v := @parameter: java.util.Map;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional deleteIndicatorField>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v != 0 goto label;
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder builder()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.values.SelectValue getRowsAddedInSink()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: org.finos.legend.engine.persistence.components.logicalplan.values.SelectValue getRowsInvalidatedInSink()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.values.DiffBinaryValueOperator: org.finos.legend.engine.persistence.components.logicalplan.values.DiffBinaryValueOperator of(org.finos.legend.engine.persistence.components.logicalplan.values.Value,org.finos.legend.engine.persistence.components.logicalplan.values.Value)>(v, v);
v = <org.finos.legend.engine.persistence.components.common.StatisticName: org.finos.legend.engine.persistence.components.common.StatisticName ROWS_INSERTED>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.common.StatisticName: java.lang.String get()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.DiffBinaryValueOperator: org.finos.legend.engine.persistence.components.logicalplan.values.DiffBinaryValueOperator withAlias(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder addFields(org.finos.legend.engine.persistence.components.logicalplan.values.Value)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection build()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder addOps(org.finos.legend.engine.persistence.components.logicalplan.operations.Operation)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan build()>();
v = <org.finos.legend.engine.persistence.components.common.StatisticName: org.finos.legend.engine.persistence.components.common.StatisticName ROWS_INSERTED>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
specialinvoke v.<org.finos.legend.engine.persistence.components.planner.UnitemporalPlanner: void addPostRunStatsForRowsInserted(java.util.Map)>(v);
label:
return;
}
public java.util.Optional getDataSplitInRangeConditionForStatistics()
{
org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner v;
java.util.Optional v;
v := @this: org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner;
v = v.<org.finos.legend.engine.persistence.components.planner.UnitemporalDeltaPlanner: java.util.Optional dataSplitInRangeCondition>;
return v;
}
}