public class org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper extends java.lang.Object implements org.finos.legend.engine.persistence.components.executor.RelationalExecutionHelper
{
public static final java.lang.String PRIMARY_KEY_INFO_TABLE_NAME;
private static final org.slf4j.Logger LOGGER;
private static final java.lang.String TABLE_NAME;
private static final java.lang.String TABLE_SCHEMA;
private static final java.lang.String CONSTRAINT_NAME;
private static final java.lang.String CONSTRAINT_NAME_QUANTIFIER_PK;
private static final java.util.function.Function CONSTRAINT_NAME_PROVIDER_PK;
private final com.google.cloud.bigquery.BigQuery bigQuery;
private org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager;
public static org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper of(com.google.cloud.bigquery.BigQuery)
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
java.lang.IllegalStateException v;
com.google.cloud.bigquery.BigQuery v;
v := @parameter: com.google.cloud.bigquery.BigQuery;
if v == null goto label;
v = new org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: void <init>(com.google.cloud.bigquery.BigQuery)>(v);
return v;
label:
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Sink initialized without connection can only be used for SQL generation APIs, but used with ingestion API");
throw v;
}
private void <init>(com.google.cloud.bigquery.BigQuery)
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
com.google.cloud.bigquery.BigQuery v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: com.google.cloud.bigquery.BigQuery;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: com.google.cloud.bigquery.BigQuery bigQuery> = v;
return;
}
public void beginTransaction()
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager v, v;
java.lang.InterruptedException v;
java.lang.RuntimeException v;
com.google.cloud.bigquery.BigQuery v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
label:
v = new org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: com.google.cloud.bigquery.BigQuery bigQuery>;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void <init>(com.google.cloud.bigquery.BigQuery)>(v);
v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager> = v;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void beginTransaction()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public void commitTransaction()
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager v, v;
java.lang.InterruptedException v;
java.lang.RuntimeException v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
if v == null goto label;
label:
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void commitTransaction()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public void revertTransaction()
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager v, v;
java.lang.InterruptedException v;
java.lang.RuntimeException v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
if v == null goto label;
label:
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void revertTransaction()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public void closeTransactionManager()
{
java.lang.Throwable v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager v, v;
java.lang.InterruptedException v;
java.lang.RuntimeException v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
if v == null goto label;
label:
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void close()>();
label:
v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager> = null;
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v := @caughtexception;
v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager> = null;
throw v;
label:
return;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public boolean doesTableExist(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset)
{
com.google.cloud.bigquery.TableId v;
java.util.function.Supplier v, v;
com.google.cloud.bigquery.BigQuery$TableOption[] v;
com.google.cloud.bigquery.BigQuery v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference v, v, v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v;
com.google.cloud.bigquery.Table v;
boolean v, v;
java.util.Optional v, v, v;
java.lang.Object v, v, v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset;
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 database()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
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 group()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper$init__2: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
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.relational.bigquery.executor.BigQueryHelper$init__3: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
if v != null goto label;
v = staticinvoke <com.google.cloud.bigquery.TableId: com.google.cloud.bigquery.TableId of(java.lang.String,java.lang.String)>(v, v);
goto label;
label:
v = staticinvoke <com.google.cloud.bigquery.TableId: com.google.cloud.bigquery.TableId of(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
label:
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: com.google.cloud.bigquery.BigQuery bigQuery>;
v = newarray (com.google.cloud.bigquery.BigQuery$TableOption)[0];
v = interfaceinvoke v.<com.google.cloud.bigquery.BigQuery: com.google.cloud.bigquery.Table getTable(com.google.cloud.bigquery.TableId,com.google.cloud.bigquery.BigQuery$TableOption[])>(v, v);
if v == null goto label;
v = virtualinvoke v.<com.google.cloud.bigquery.Table: boolean exists()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void validateDatasetSchema(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset, org.finos.legend.engine.persistence.components.executor.TypeMapping)
{
org.finos.legend.engine.persistence.components.relational.sqldom.schema.DataType v;
java.lang.Integer v, v, v, v;
com.google.cloud.bigquery.BigQuery v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition v;
java.lang.Long v, v, v, v, v, v;
com.google.cloud.bigquery.Schema v;
java.util.function.Supplier v;
com.google.cloud.bigquery.BigQuery$TableOption[] v;
java.util.ArrayList v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType[] v;
java.lang.String v, v, v, v;
com.google.cloud.bigquery.Table v;
com.google.cloud.bigquery.FieldList v;
com.google.cloud.bigquery.StandardSQLTypeName v;
java.lang.IllegalStateException v;
org.finos.legend.engine.persistence.components.relational.sqldom.constraints.column.NotNullColumnConstraint v;
com.google.cloud.bigquery.TableId v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.constraints.columns.PKColumnConstraint v;
boolean v, v, v, v, v, v, v, v;
com.google.cloud.bigquery.Field$Mode v, v;
com.google.cloud.bigquery.TableDefinition v;
java.util.List v, v, v;
org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.Column v;
java.util.Optional v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference v, v, v;
int v, v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v;
com.google.cloud.bigquery.LegacySQLTypeName v, v;
org.finos.legend.engine.persistence.components.executor.TypeMapping v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType v, v;
java.util.Iterator v;
java.lang.Object v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset;
v := @parameter: org.finos.legend.engine.persistence.components.executor.TypeMapping;
v = v instanceof org.finos.legend.engine.persistence.components.relational.sql.DataTypeMapping;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Only DataTypeMapping allowed in validateDatasetSchema");
throw v;
label:
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.relational.bigquery.executor.BigQueryHelper$init__4: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
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 group()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: com.google.cloud.bigquery.BigQuery bigQuery>;
v = staticinvoke <com.google.cloud.bigquery.TableId: com.google.cloud.bigquery.TableId of(java.lang.String,java.lang.String)>(v, v);
v = newarray (com.google.cloud.bigquery.BigQuery$TableOption)[0];
v = interfaceinvoke v.<com.google.cloud.bigquery.BigQuery: com.google.cloud.bigquery.Table getTable(com.google.cloud.bigquery.TableId,com.google.cloud.bigquery.BigQuery$TableOption[])>(v, v);
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 database()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
v = specialinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: java.util.List fetchPrimaryKeys(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v = virtualinvoke v.<com.google.cloud.bigquery.Table: com.google.cloud.bigquery.TableDefinition getDefinition()>();
v = virtualinvoke v.<com.google.cloud.bigquery.TableDefinition: com.google.cloud.bigquery.Schema getSchema()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Schema: com.google.cloud.bigquery.FieldList getFields()>();
v = new java.util.ArrayList;
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset: org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition schema()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition: java.util.List fields()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: java.util.List convertUserProvidedFieldsToColumns(java.util.List,org.finos.legend.engine.persistence.components.relational.sql.DataTypeMapping)>(v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<com.google.cloud.bigquery.FieldList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.String getName()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Field: com.google.cloud.bigquery.LegacySQLTypeName getType()>();
v = virtualinvoke v.<com.google.cloud.bigquery.LegacySQLTypeName: com.google.cloud.bigquery.StandardSQLTypeName getStandardType()>();
v = virtualinvoke v.<com.google.cloud.bigquery.StandardSQLTypeName: java.lang.String name()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getMaxLength()>();
v = staticinvoke <java.util.Objects: boolean nonNull(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getMaxLength()>();
v = virtualinvoke v.<java.lang.Long: int intValue()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getPrecision()>();
v = staticinvoke <java.util.Objects: boolean nonNull(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getPrecision()>();
v = virtualinvoke v.<java.lang.Long: int intValue()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = null;
label:
v = v;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getScale()>();
v = staticinvoke <java.util.Objects: boolean nonNull(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getScale()>();
v = virtualinvoke v.<java.lang.Long: int intValue()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = null;
label:
v = v;
v = null;
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType: org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType[] values()>();
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType: java.lang.String name()>();
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = v;
goto label;
label:
v = v + 1;
goto label;
label:
if v != null goto label;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: com.google.cloud.bigquery.LegacySQLTypeName getType()>();
v = virtualinvoke v.<com.google.cloud.bigquery.LegacySQLTypeName: java.lang.String name()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType: org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType valueOf(java.lang.String)>(v);
label:
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType: org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType of(org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType,java.lang.Integer,java.lang.Integer)>(v, v, v);
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.relational.sql.DataTypeMapping: org.finos.legend.engine.persistence.components.relational.sqldom.schema.DataType getDataType(org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = <com.google.cloud.bigquery.Field$Mode: com.google.cloud.bigquery.Field$Mode REQUIRED>;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: com.google.cloud.bigquery.Field$Mode getMode()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Field$Mode: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.finos.legend.engine.persistence.components.relational.sqldom.constraints.column.NotNullColumnConstraint;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.sqldom.constraints.column.NotNullColumnConstraint: void <init>()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
v = new org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.constraints.columns.PKColumnConstraint;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.constraints.columns.PKColumnConstraint: void <init>()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = new org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.Column;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.Column: void <init>(java.lang.String,org.finos.legend.engine.persistence.components.relational.sqldom.schema.DataType,java.util.List,java.lang.String)>(v, v, v, null);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
staticinvoke <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: void validateColumns(java.util.List,java.util.List)>(v, v);
return;
}
public org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset constructDatasetFromDatabase(org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset, org.finos.legend.engine.persistence.components.executor.TypeMapping, boolean)
{
java.lang.Integer v, v, v;
com.google.cloud.bigquery.BigQuery v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition v;
java.lang.Long v, v, v, v, v, v;
com.google.cloud.bigquery.Schema v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Field v;
java.util.function.Supplier v;
com.google.cloud.bigquery.BigQuery$TableOption[] v;
java.util.ArrayList v;
java.lang.String v, v, v, v, v;
com.google.cloud.bigquery.Table v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition$Builder v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder v, v, v, v, v;
com.google.cloud.bigquery.FieldList v;
com.google.cloud.bigquery.StandardSQLTypeName v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition v;
java.lang.IllegalStateException v;
com.google.cloud.bigquery.TableId v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
boolean v, v, v, v, v, v, v, v, v;
com.google.cloud.bigquery.Field$Mode v, v;
com.google.cloud.bigquery.TableDefinition v;
java.util.List v;
java.util.Optional v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference v, v, v;
int v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset v;
com.google.cloud.bigquery.LegacySQLTypeName v, v;
org.finos.legend.engine.persistence.components.executor.TypeMapping v;
java.util.Iterator v;
java.lang.Object v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset;
v := @parameter: org.finos.legend.engine.persistence.components.executor.TypeMapping;
v := @parameter: boolean;
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.relational.bigquery.executor.BigQueryHelper$init__5: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
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 group()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
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 database()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
v = v instanceof org.finos.legend.engine.persistence.components.relational.sql.JdbcPropertiesToLogicalDataTypeMapping;
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Only JdbcPropertiesToLogicalDataTypeMapping allowed in constructDatasetFromDatabase");
throw v;
label:
v = specialinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: java.util.List fetchPrimaryKeys(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: com.google.cloud.bigquery.BigQuery bigQuery>;
v = staticinvoke <com.google.cloud.bigquery.TableId: com.google.cloud.bigquery.TableId of(java.lang.String,java.lang.String)>(v, v);
v = newarray (com.google.cloud.bigquery.BigQuery$TableOption)[0];
v = interfaceinvoke v.<com.google.cloud.bigquery.BigQuery: com.google.cloud.bigquery.Table getTable(com.google.cloud.bigquery.TableId,com.google.cloud.bigquery.BigQuery$TableOption[])>(v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Table: com.google.cloud.bigquery.TableDefinition getDefinition()>();
v = virtualinvoke v.<com.google.cloud.bigquery.TableDefinition: com.google.cloud.bigquery.Schema getSchema()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Schema: com.google.cloud.bigquery.FieldList getFields()>();
v = virtualinvoke v.<com.google.cloud.bigquery.FieldList: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.String getName()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Field: com.google.cloud.bigquery.LegacySQLTypeName getType()>();
v = virtualinvoke v.<com.google.cloud.bigquery.LegacySQLTypeName: com.google.cloud.bigquery.StandardSQLTypeName getStandardType()>();
v = virtualinvoke v.<com.google.cloud.bigquery.StandardSQLTypeName: java.lang.String name()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Field: com.google.cloud.bigquery.LegacySQLTypeName getType()>();
v = virtualinvoke v.<com.google.cloud.bigquery.LegacySQLTypeName: java.lang.String name()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getMaxLength()>();
v = staticinvoke <java.util.Objects: boolean nonNull(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getMaxLength()>();
v = virtualinvoke v.<java.lang.Long: int intValue()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getPrecision()>();
v = staticinvoke <java.util.Objects: boolean nonNull(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getPrecision()>();
v = virtualinvoke v.<java.lang.Long: int intValue()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = null;
label:
v = v;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getScale()>();
v = staticinvoke <java.util.Objects: boolean nonNull(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: java.lang.Long getScale()>();
v = virtualinvoke v.<java.lang.Long: int intValue()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
goto label;
label:
v = null;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.relational.sql.JdbcPropertiesToLogicalDataTypeMapping: org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType getDataType(java.lang.String,java.lang.String,java.lang.Integer,java.lang.Integer)>(v, v, v, v);
v = <com.google.cloud.bigquery.Field$Mode: com.google.cloud.bigquery.Field$Mode REQUIRED>;
v = virtualinvoke v.<com.google.cloud.bigquery.Field: com.google.cloud.bigquery.Field$Mode getMode()>();
v = virtualinvoke v.<com.google.cloud.bigquery.Field$Mode: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = interfaceinvoke v.<java.util.List: boolean contains(java.lang.Object)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.Field: org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder name(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder type(org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder nullable(boolean)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder primaryKey(boolean)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.Field build()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition: org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition$Builder addAllFields(java.lang.Iterable)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition build()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder name(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder database(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder group(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder schema(org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition)>(v);
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset: java.util.Optional datasetAdditionalProperties()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder datasetAdditionalProperties(java.util.Optional)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition build()>();
return v;
}
private java.util.List fetchPrimaryKeys(java.lang.String, java.lang.String, java.lang.String)
{
org.finos.legend.engine.persistence.components.relational.SqlPlan v;
java.util.function.Function v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
java.util.List v;
org.finos.legend.engine.persistence.components.relational.RelationalSink v;
java.util.stream.Stream v, v;
java.lang.Object v;
java.lang.String v, v, v, v;
java.util.stream.Collector v;
org.finos.legend.engine.persistence.components.relational.transformer.RelationalTransformer v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = new org.finos.legend.engine.persistence.components.relational.transformer.RelationalTransformer;
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.bigquery.BigQuerySink: org.finos.legend.engine.persistence.components.relational.RelationalSink get()>();
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.transformer.RelationalTransformer: void <init>(org.finos.legend.engine.persistence.components.relational.RelationalSink)>(v);
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan getLogicalPlanFetchPrimaryKeys(java.lang.String,java.lang.String,java.lang.String)>(v, v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.transformer.RelationalTransformer: org.finos.legend.engine.persistence.components.relational.SqlPlan generatePhysicalPlan(org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.SqlPlan: java.lang.String getSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: java.util.List executeQuery(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper$lambda_fetchPrimaryKeys_1__6: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toList()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
return v;
}
private static org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan getLogicalPlanFetchPrimaryKeys(java.lang.String, java.lang.String, java.lang.String)
{
org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder v, v, v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan v;
java.util.List v;
org.finos.legend.engine.persistence.components.logicalplan.values.StringValue v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection$Builder v, v, v, v;
java.lang.Object[] v;
java.util.function.Function v;
org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan$Builder v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl v;
java.lang.String v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.And v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection v;
org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue v, v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals v, v, v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl$Builder v, v, v, v;
java.lang.Object v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
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 = 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.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder fieldName(java.lang.String)>("COLUMN_NAME");
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue build()>();
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 = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl$Builder builder()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl$Builder database(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl$Builder group(java.lang.String)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl$Builder name(java.lang.String)>("INFORMATION_SCHEMA.KEY_COLUMN_USAGE");
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl$Builder: org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReferenceImpl build()>();
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 = newarray (org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition)[3];
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.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder fieldName(java.lang.String)>("TABLE_SCHEMA");
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue build()>();
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 = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals: org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals of(org.finos.legend.engine.persistence.components.logicalplan.values.Value,org.finos.legend.engine.persistence.components.logicalplan.values.Value)>(v, v);
v[0] = 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.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder fieldName(java.lang.String)>("TABLE_NAME");
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue build()>();
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 = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals: org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals of(org.finos.legend.engine.persistence.components.logicalplan.values.Value,org.finos.legend.engine.persistence.components.logicalplan.values.Value)>(v, v);
v[1] = 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.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder fieldName(java.lang.String)>("CONSTRAINT_NAME");
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue$Builder: org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue build()>();
v = <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: java.util.function.Function CONSTRAINT_NAME_PROVIDER_PK>;
v = interfaceinvoke v.<java.util.function.Function: java.lang.Object apply(java.lang.Object)>(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 = staticinvoke <org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals: org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals of(org.finos.legend.engine.persistence.components.logicalplan.values.Value,org.finos.legend.engine.persistence.components.logicalplan.values.Value)>(v, v);
v[2] = v;
v = staticinvoke <java.util.Arrays: java.util.List asList(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.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 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()>();
return v;
}
public static void validateColumns(java.util.List, java.util.List)
{
java.lang.IllegalStateException v, v;
java.util.function.Supplier v;
int v, v;
boolean v, v;
java.util.Iterator v;
java.util.function.Predicate v;
java.util.List v, v;
java.util.stream.Stream v, v;
java.util.Optional v;
java.lang.Object v, v;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: int size()>();
v = interfaceinvoke v.<java.util.List: int size()>();
if v == v goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Number of columns in user-provided schema doesn\'t match with the schema in the database");
throw v;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper$lambda_validateColumns_2__7: java.util.function.Predicate bootstrap$(org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.Column)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.Optional findFirst()>();
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper$lambda_validateColumns_3__8: java.util.function.Supplier bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElseThrow(java.util.function.Supplier)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.Column: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Column in user-provided schema doesn\'t match the corresponding column in the schema in the database");
throw v;
label:
return;
}
public static java.util.List convertUserProvidedFieldsToColumns(java.util.List, org.finos.legend.engine.persistence.components.relational.sql.DataTypeMapping)
{
org.finos.legend.engine.persistence.components.relational.sqldom.schema.DataType v;
org.finos.legend.engine.persistence.components.relational.sqldom.constraints.column.NotNullColumnConstraint v;
org.finos.legend.engine.persistence.components.relational.sql.DataTypeMapping v;
org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType v;
java.util.ArrayList v, v;
org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.constraints.columns.PKColumnConstraint v;
java.lang.String v;
boolean v, v, v, v;
java.util.Iterator v;
java.util.List v;
org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.Column v;
java.lang.Object v;
v := @parameter: java.util.List;
v := @parameter: org.finos.legend.engine.persistence.components.relational.sql.DataTypeMapping;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field: org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType type()>();
v = interfaceinvoke v.<org.finos.legend.engine.persistence.components.relational.sql.DataTypeMapping: org.finos.legend.engine.persistence.components.relational.sqldom.schema.DataType getDataType(org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field: boolean nullable()>();
if v == 0 goto label;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field: boolean primaryKey()>();
if v == 0 goto label;
label:
v = new org.finos.legend.engine.persistence.components.relational.sqldom.constraints.column.NotNullColumnConstraint;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.sqldom.constraints.column.NotNullColumnConstraint: void <init>()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field: boolean primaryKey()>();
if v == 0 goto label;
v = new org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.constraints.columns.PKColumnConstraint;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.constraints.columns.PKColumnConstraint: void <init>()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = new org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.Column;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.logicalplan.datasets.Field: java.lang.String name()>();
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.Column: void <init>(java.lang.String,org.finos.legend.engine.persistence.components.relational.sqldom.schema.DataType,java.util.List,java.lang.String)>(v, v, v, null);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
}
public void executeStatement(java.lang.String)
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
java.util.List v;
java.lang.String v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: java.lang.String;
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: void executeStatements(java.util.List)>(v);
return;
}
public void executeStatementInANewTransaction(java.lang.String)
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
java.util.List v;
java.lang.String v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: java.lang.String;
v = staticinvoke <java.util.Collections: java.util.List singletonList(java.lang.Object)>(v);
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: void executeStatementsInANewTransaction(java.util.List)>(v);
return;
}
public void executeStatements(java.util.List)
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager v, v;
java.util.Iterator v;
java.lang.RuntimeException v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
java.util.List v;
java.lang.InterruptedException v;
java.lang.Object v;
boolean v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: java.util.List;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
if v == null goto label;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: boolean executeInCurrentTransaction(java.lang.String)>(v);
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: void executeStatementsInANewTransaction(java.util.List)>(v);
label:
return;
catch java.lang.InterruptedException from label to label with label;
}
public java.util.List executeQuery(java.lang.String, int)
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
java.lang.UnsupportedOperationException v;
int v;
java.lang.String v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: java.lang.String;
v := @parameter: int;
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("Not implemented for Big Query");
throw v;
}
public void executeStatementsInANewTransaction(java.util.List)
{
java.lang.Throwable v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager v, v;
org.slf4j.Logger v;
java.util.Iterator v;
java.lang.RuntimeException v, v;
java.lang.Exception v;
com.google.cloud.bigquery.BigQuery v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
java.util.List v;
java.lang.InterruptedException v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: java.util.List;
v = null;
label:
v = new org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: com.google.cloud.bigquery.BigQuery bigQuery>;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void <init>(com.google.cloud.bigquery.BigQuery)>(v);
v = v;
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void beginTransaction()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: boolean executeInCurrentTransaction(java.lang.String)>(v);
goto label;
label:
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void commitTransaction()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.slf4j.Logger LOGGER>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Error executing SQL statements: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
if v == null goto label;
label:
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void revertTransaction()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v := @caughtexception;
throw v;
label:
return;
catch java.lang.Exception from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public java.util.List executeQuery(java.lang.String)
{
java.lang.Throwable v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager v, v, v, v;
java.lang.RuntimeException v;
java.lang.Exception v;
com.google.cloud.bigquery.BigQuery v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
java.util.List v, v;
java.lang.String v, v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
if v == null goto label;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: java.util.List convertResultSetToList(java.lang.String)>(v);
return v;
label:
v = new org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: com.google.cloud.bigquery.BigQuery bigQuery>;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void <init>(com.google.cloud.bigquery.BigQuery)>(v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: java.util.List convertResultSetToList(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Error executing SQL query: \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v := @caughtexception;
throw v;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public java.util.Map executeLoadStatement(java.lang.String)
{
java.lang.Throwable v;
com.google.cloud.bigquery.BigQuery v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
java.util.Map v, v;
java.lang.String v, v;
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager v, v, v, v;
org.slf4j.Logger v;
java.lang.RuntimeException v, v, v;
java.lang.Exception v;
java.lang.InterruptedException v, v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
v := @parameter: java.lang.String;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
if v == null goto label;
label:
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager transactionManager>;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: java.util.Map executeLoadStatement(java.lang.String)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = null;
label:
v = new org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager;
v = v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: com.google.cloud.bigquery.BigQuery bigQuery>;
specialinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void <init>(com.google.cloud.bigquery.BigQuery)>(v);
v = v;
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void beginTransaction()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: java.util.Map executeLoadStatement(java.lang.String)>(v);
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void commitTransaction()>();
label:
return v;
label:
v := @caughtexception;
v = <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.slf4j.Logger LOGGER>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Error executing SQL statements: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>(v, v);
if v == null goto label;
label:
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryTransactionManager: void revertTransaction()>();
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
v := @caughtexception;
throw v;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.InterruptedException from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void close()
{
org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper v;
v := @this: org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper;
virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: void closeTransactionManager()>();
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
java.util.function.Function v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryHelper;");
<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: org.slf4j.Logger LOGGER> = v;
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper$lambda_static_0__9: java.util.function.Function bootstrap$()>();
<org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryHelper: java.util.function.Function CONSTRAINT_NAME_PROVIDER_PK> = v;
return;
}
}