class org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner extends org.finos.legend.engine.persistence.components.planner.Planner
{
private final java.util.Optional dataSplitInRangeCondition;
private final java.util.Optional userProvidedDigest;
void <init>(org.finos.legend.engine.persistence.components.common.Datasets, org.finos.legend.engine.persistence.components.ingestmode.AppendOnly, org.finos.legend.engine.persistence.components.planner.PlannerOptions, java.util.Set)
{
org.finos.legend.engine.persistence.components.ingestmode.AppendOnly v, v;
java.lang.IllegalStateException v;
org.finos.legend.engine.persistence.components.common.Datasets v;
java.util.function.Function v;
org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner$ValidateAuditingForPrimaryKeys v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v;
java.lang.String v;
org.finos.legend.engine.persistence.components.planner.PlannerOptions v;
boolean v, v, v, v, v;
org.finos.legend.engine.persistence.components.ingestmode.audit.Auditing v;
org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategy v;
java.util.Set v;
java.util.List v, v;
org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner v;
java.util.Optional v, v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner;
v := @parameter: org.finos.legend.engine.persistence.components.common.Datasets;
v := @parameter: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly;
v := @parameter: org.finos.legend.engine.persistence.components.planner.PlannerOptions;
v := @parameter: java.util.Set;
specialinvoke v.<org.finos.legend.engine.persistence.components.planner.Planner: void <init>(org.finos.legend.engine.persistence.components.common.Datasets,org.finos.legend.engine.persistence.components.ingestmode.IngestMode,org.finos.legend.engine.persistence.components.planner.PlannerOptions,java.util.Set)>(v, v, v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategy digestGenStrategy()>();
v = v instanceof org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy;
if v == 0 goto label;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.digest.UserProvidedDigestGenStrategy: java.lang.String digestField()>();
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.Optional userProvidedDigest> = v;
goto label;
label:
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.Optional userProvidedDigest> = v;
label:
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.List primaryKeys>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: org.finos.legend.engine.persistence.components.ingestmode.audit.Auditing auditing()>();
v = new org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner$ValidateAuditingForPrimaryKeys;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
specialinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner$ValidateAuditingForPrimaryKeys: void <init>(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset)>(v);
interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.audit.Auditing: java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.audit.AuditingVisitor)>(v);
label:
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: boolean filterExistingRecords()>();
if v == 0 goto label;
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.Optional userProvidedDigest>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.List primaryKeys>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Primary keys and digest are mandatory for filterExistingRecords");
throw v;
label:
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: java.util.Optional dataSplitField()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner$lambda_new_0__32: java.util.function.Function bootstrap$(org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner)>(v);
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.Optional dataSplitInRangeCondition> = v;
return;
}
protected org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()
{
org.finos.legend.engine.persistence.components.ingestmode.IngestMode v;
org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner v;
v := @this: org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner;
v = specialinvoke v.<org.finos.legend.engine.persistence.components.planner.Planner: org.finos.legend.engine.persistence.components.ingestmode.IngestMode 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.ingestmode.AppendOnly v, v, v, v, v;
org.finos.legend.engine.persistence.components.planner.Planner$AuditEnabled v;
org.finos.legend.engine.persistence.components.logicalplan.values.BatchStartTimestamp v;
org.finos.legend.engine.persistence.components.util.MetadataUtils v;
org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.ingestmode.audit.AuditingVisitor v;
boolean v, v;
org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategy v;
org.finos.legend.engine.persistence.components.logicalplan.operations.Insert v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan v;
java.util.List v;
java.util.Optional v;
org.finos.legend.engine.persistence.components.logicalplan.values.StringValue v;
org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenerationHandler v;
java.util.function.Supplier v, v;
java.util.ArrayList v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference v, v, v;
org.finos.legend.engine.persistence.components.common.Resources v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v, v, v, v, v, v;
java.lang.String v;
org.eclipse.collections.api.tuple.Pair v;
org.finos.legend.engine.persistence.components.ingestmode.audit.Auditing v, v;
org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue v, v;
org.finos.legend.engine.persistence.components.logicalplan.values.BatchIdValue v;
org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner;
v := @parameter: org.finos.legend.engine.persistence.components.common.Resources;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.eclipse.collections.api.tuple.Pair getDataFieldsWithTypes()>();
v = interfaceinvoke v.<org.eclipse.collections.api.tuple.Pair: java.lang.Object getOne()>();
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.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategy digestGenStrategy()>();
v = new org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenerationHandler;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = interfaceinvoke v.<org.eclipse.collections.api.tuple.Pair: java.lang.Object getTwo()>();
specialinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenerationHandler: void <init>(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,java.util.List,java.util.List,java.util.List)>(v, v, v, v);
interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategy: java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.digest.DigestGenStrategyVisitor)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: org.finos.legend.engine.persistence.components.ingestmode.audit.Auditing auditing()>();
v = <org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.planner.Planner$AuditEnabled AUDIT_ENABLED>;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.audit.Auditing: java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.audit.AuditingVisitor)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v == 0 goto label;
v = <org.finos.legend.engine.persistence.components.logicalplan.values.BatchStartTimestamp: org.finos.legend.engine.persistence.components.logicalplan.values.BatchStartTimestamp INSTANCE>;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: org.finos.legend.engine.persistence.components.ingestmode.audit.Auditing auditing()>();
v = <org.finos.legend.engine.persistence.components.ingestmode.audit.AuditingVisitors: org.finos.legend.engine.persistence.components.ingestmode.audit.AuditingVisitor EXTRACT_AUDIT_FIELD>;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.audit.Auditing: java.lang.Object accept(org.finos.legend.engine.persistence.components.ingestmode.audit.AuditingVisitor)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner$init__34: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference datasetReference()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder datasetRef(org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder fieldName(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue build()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference datasetReference()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder datasetRef(org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: java.lang.String batchIdField()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder fieldName(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue build()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.util.MetadataUtils metadataUtils>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference datasetReference()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference: java.util.Optional name()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner$init__33: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.values.StringValue: org.finos.legend.engine.persistence.components.logicalplan.values.StringValue of(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.util.MetadataUtils: org.finos.legend.engine.persistence.components.logicalplan.values.BatchIdValue getBatchId(org.finos.legend.engine.persistence.components.logicalplan.values.StringValue)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: boolean filterExistingRecords()>();
if v == 0 goto label;
v = specialinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset getSelectStageWithFilterExistingRecords(java.util.List)>(v);
goto label;
label:
v = specialinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset getSelectStage(java.util.List)>(v);
label:
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: 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);
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
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;
}
java.util.List getDigestOrRemainingColumns()
{
java.lang.String[] v;
java.util.ArrayList v;
java.util.List v, v;
org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner v;
java.util.Optional v, v;
java.lang.Object v;
boolean v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.Optional userProvidedDigest>;
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto label;
v = newarray (java.lang.String)[1];
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.Optional userProvidedDigest>;
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
v[0] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
goto label;
label:
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.List primaryKeys>;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.List getNonPKNonVersionDataFields()>();
label:
return v;
}
private org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset getSelectStage(java.util.List)
{
org.finos.legend.engine.persistence.components.ingestmode.AppendOnly v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v, v;
boolean v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection v, v;
java.util.List v;
org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner v;
java.util.Optional v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder v, v, v, v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner;
v := @parameter: java.util.List;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: java.util.Optional dataSplitField()>();
v = virtualinvoke v.<java.util.Optional: boolean isPresent()>();
if v == 0 goto 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.AppendOnlyPlanner: 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 = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.Optional dataSplitInRangeCondition>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder condition(java.util.Optional)>(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()>();
return 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.AppendOnlyPlanner: 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 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()>();
return v;
}
private org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset getSelectStageWithFilterExistingRecords(java.util.List)
{
org.finos.legend.engine.persistence.components.ingestmode.AppendOnly v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.And$Builder v, v, v, v;
boolean v;
java.util.List v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition[] v, v;
java.util.Optional 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.lang.Object[] v;
java.lang.String[] v;
java.util.function.Supplier v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v, v, 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;
org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner v;
java.lang.Object v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner;
v := @parameter: java.util.List;
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.AppendOnlyPlanner: 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$Builder builder()>();
v = newarray (org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)[2];
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset stagingDataset()>();
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.List primaryKeys>;
v = newarray (java.lang.String)[0];
v = interfaceinvoke v.<java.util.List: java.lang.Object[] toArray(java.lang.Object[])>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.util.LogicalPlanUtils: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition getPrimaryKeyMatchCondition(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,java.lang.String[])>(v, v, v);
v[0] = v;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset stagingDataset()>();
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.Optional userProvidedDigest>;
v = staticinvoke <org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner$init__35: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.util.LogicalPlanUtils: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition getDigestMatchCondition(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,java.lang.String)>(v, v, 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()>();
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 = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: java.util.Optional dataSplitField()>();
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.AppendOnlyPlanner: java.util.Optional dataSplitInRangeCondition>;
v = staticinvoke <org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner$init__36: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
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.AppendOnlyPlanner: 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()>();
return v;
}
protected void addPostRunStatsForRowsInserted(java.util.Map)
{
org.finos.legend.engine.persistence.components.ingestmode.AppendOnly v;
org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl$Builder v, v, v, v;
org.finos.legend.engine.persistence.components.common.StatisticName v, v;
org.finos.legend.engine.persistence.components.util.MetadataUtils v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder v, v;
java.util.Map v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v, v;
java.lang.String v, v;
org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan v;
org.finos.legend.engine.persistence.components.logicalplan.values.FunctionName v;
java.util.List v;
org.finos.legend.engine.persistence.components.logicalplan.values.All v;
org.finos.legend.engine.persistence.components.logicalplan.values.BatchIdValue v;
org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner v;
org.finos.legend.engine.persistence.components.logicalplan.values.StringValue v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner;
v := @parameter: java.util.Map;
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl: org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl$Builder builder()>();
v = <org.finos.legend.engine.persistence.components.logicalplan.values.FunctionName: org.finos.legend.engine.persistence.components.logicalplan.values.FunctionName COUNT>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl$Builder functionName(org.finos.legend.engine.persistence.components.logicalplan.values.FunctionName)>(v);
v = <org.finos.legend.engine.persistence.components.logicalplan.values.All: org.finos.legend.engine.persistence.components.logicalplan.values.All INSTANCE>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl$Builder addValue(org.finos.legend.engine.persistence.components.logicalplan.values.Value)>(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.FunctionImpl$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl$Builder alias(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl build()>();
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.util.MetadataUtils metadataUtils>;
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.values.StringValue mainTableName>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.util.MetadataUtils: org.finos.legend.engine.persistence.components.logicalplan.values.BatchIdValue getBatchId(org.finos.legend.engine.persistence.components.logicalplan.values.StringValue)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.ingestmode.AppendOnly ingestMode()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.AppendOnly: java.lang.String batchIdField()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.util.LogicalPlanUtils: org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition getBatchIdEqualityCondition(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset,org.finos.legend.engine.persistence.components.logicalplan.values.Value,java.lang.String)>(v, v, v);
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.AppendOnlyPlanner: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset mainDataset()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference datasetReference()>();
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 = <org.finos.legend.engine.persistence.components.common.StatisticName: org.finos.legend.engine.persistence.components.common.StatisticName ROWS_INSERTED>;
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder builder()>();
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()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public java.util.Optional getDataSplitInRangeConditionForStatistics()
{
org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner v;
java.util.Optional v;
v := @this: org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner;
v = v.<org.finos.legend.engine.persistence.components.planner.AppendOnlyPlanner: java.util.Optional dataSplitInRangeCondition>;
return v;
}
}