public class org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest extends org.finos.legend.engine.persistence.components.testcases.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTestCases
{
public void <init>()
{
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
specialinvoke v.<org.finos.legend.engine.persistence.components.testcases.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTestCases: void <init>()>();
return;
}
public void verifyBitemporalDeltaBatchIdBasedNoDeleteIndNoDataSplits(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult)
{
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
int v;
java.lang.String v, v, v, v;
org.finos.legend.engine.persistence.components.relational.api.GeneratorResult v;
java.util.List v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v := @parameter: org.finos.legend.engine.persistence.components.relational.api.GeneratorResult;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List preActionsSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List metadataIngestSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List initializeLockSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List acquireLockSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List postCleanupSql()>();
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedLockInfoTableCreateQuery>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>("UPDATE \"mydb\".\"main\" as sink SET sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1 WHERE (sink.\"batch_id_out\" = 999999999) AND (EXISTS (SELECT * FROM \"mydb\".\"staging\" as stage WHERE ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\") AND (sink.\"digest\" <> stage.\"digest\")))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>("INSERT INTO \"mydb\".\"main\" (\"id\", \"name\", \"amount\", \"validity_from_target\", \"validity_through_target\", \"digest\", \"batch_id_in\", \"batch_id_out\") (SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"validity_from_reference\",stage.\"validity_through_reference\",stage.\"digest\",(SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'),999999999 FROM \"mydb\".\"staging\" as stage WHERE NOT (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = 999999999) AND (sink.\"digest\" = stage.\"digest\") AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\"))))", v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableIngestQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String lockInitializedQuery>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String lockAcquiredQuery>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(0, v);
virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: void verifyStats(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, "SELECT COUNT(*) as \"incomingRecordCount\" FROM \"mydb\".\"staging\" as stage", "SELECT COUNT(*) as \"rowsUpdated\" FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1", "SELECT 0 as \"rowsDeleted\"", "SELECT (SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_in\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'))-(SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1) as \"rowsInserted\"", "SELECT 0 as \"rowsTerminated\"");
return;
}
public void verifyBitemporalDeltaBatchIdDateTimeBasedNoDeleteIndWithDataSplits(java.util.List, java.util.List)
{
java.util.List v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
int v;
java.lang.String v, v, v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedBitemporalMainTableWithVersionWithBatchIdDatetimeCreateQuery>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List preActionsSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableCreateQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List preActionsSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String enrichSqlWithDataSplits(java.lang.String,org.finos.legend.engine.persistence.components.relational.api.DataSplitRange)>("UPDATE \"mydb\".\"main\" as sink SET sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1,sink.\"batch_time_out\" = \'2000-01-01 00:00:00.000000\' WHERE (sink.\"batch_id_out\" = 999999999) AND (EXISTS (SELECT * FROM \"mydb\".\"staging\" as stage WHERE ((stage.\"data_split\" >= \'{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}\') AND (stage.\"data_split\" <= \'{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}\')) AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\") AND (sink.\"digest\" <> stage.\"digest\")))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String enrichSqlWithDataSplits(java.lang.String,org.finos.legend.engine.persistence.components.relational.api.DataSplitRange)>("INSERT INTO \"mydb\".\"main\" (\"id\", \"name\", \"amount\", \"validity_from_target\", \"validity_through_target\", \"digest\", \"version\", \"batch_id_in\", \"batch_id_out\", \"batch_time_in\", \"batch_time_out\") (SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"validity_from_reference\",stage.\"validity_through_reference\",stage.\"digest\",stage.\"version\",(SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'),999999999,\'2000-01-01 00:00:00.000000\',\'9999-12-31 23:59:59\' FROM \"mydb\".\"staging\" as stage WHERE (NOT (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = 999999999) AND (sink.\"digest\" = stage.\"digest\") AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\")))) AND ((stage.\"data_split\" >= \'{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}\') AND (stage.\"data_split\" <= \'{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}\')))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String enrichSqlWithDataSplits(java.lang.String,org.finos.legend.engine.persistence.components.relational.api.DataSplitRange)>("UPDATE \"mydb\".\"main\" as sink SET sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1,sink.\"batch_time_out\" = \'2000-01-01 00:00:00.000000\' WHERE (sink.\"batch_id_out\" = 999999999) AND (EXISTS (SELECT * FROM \"mydb\".\"staging\" as stage WHERE ((stage.\"data_split\" >= \'{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}\') AND (stage.\"data_split\" <= \'{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}\')) AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\") AND (sink.\"digest\" <> stage.\"digest\")))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String enrichSqlWithDataSplits(java.lang.String,org.finos.legend.engine.persistence.components.relational.api.DataSplitRange)>("INSERT INTO \"mydb\".\"main\" (\"id\", \"name\", \"amount\", \"validity_from_target\", \"validity_through_target\", \"digest\", \"version\", \"batch_id_in\", \"batch_id_out\", \"batch_time_in\", \"batch_time_out\") (SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"validity_from_reference\",stage.\"validity_through_reference\",stage.\"digest\",stage.\"version\",(SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'),999999999,\'2000-01-01 00:00:00.000000\',\'9999-12-31 23:59:59\' FROM \"mydb\".\"staging\" as stage WHERE (NOT (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = 999999999) AND (sink.\"digest\" = stage.\"digest\") AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\")))) AND ((stage.\"data_split\" >= \'{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}\') AND (stage.\"data_split\" <= \'{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}\')))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableIngestQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List metadataIngestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableIngestQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List metadataIngestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(2, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: void verifyStats(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, "SELECT COUNT(*) as \"incomingRecordCount\" FROM \"mydb\".\"staging\" as stage WHERE (stage.\"data_split\" >= 1) AND (stage.\"data_split\" <= 1)", "SELECT COUNT(*) as \"rowsUpdated\" FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1", "SELECT 0 as \"rowsDeleted\"", "SELECT (SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_in\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'))-(SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1) as \"rowsInserted\"", "SELECT 0 as \"rowsTerminated\"");
return;
}
public void verifyBitemporalDeltaBatchIdBasedWithDeleteIndNoDataSplits(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult)
{
org.finos.legend.engine.persistence.components.relational.api.GeneratorResult v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
java.util.List v, v, v;
java.lang.Object v, v, v, v, v;
java.lang.String v, v, v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v := @parameter: org.finos.legend.engine.persistence.components.relational.api.GeneratorResult;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List preActionsSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List metadataIngestSql()>();
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedBitemporalMainTableCreateQuery>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableCreateQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>("UPDATE \"mydb\".\"main\" as sink SET sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1 WHERE (sink.\"batch_id_out\" = 999999999) AND (EXISTS (SELECT * FROM \"mydb\".\"staging\" as stage WHERE ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\") AND ((sink.\"digest\" <> stage.\"digest\") OR (stage.\"delete_indicator\" IN (\'yes\',\'1\',\'true\')))))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>("INSERT INTO \"mydb\".\"main\" (\"id\", \"name\", \"amount\", \"validity_from_target\", \"validity_through_target\", \"digest\", \"batch_id_in\", \"batch_id_out\") (SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"validity_from_reference\",stage.\"validity_through_reference\",stage.\"digest\",(SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'),999999999 FROM \"mydb\".\"staging\" as stage WHERE (NOT (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = 999999999) AND (sink.\"digest\" = stage.\"digest\") AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\")))) AND (stage.\"delete_indicator\" NOT IN (\'yes\',\'1\',\'true\')))", v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableIngestQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: void verifyStats(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, "SELECT COUNT(*) as \"incomingRecordCount\" FROM \"mydb\".\"staging\" as stage", "SELECT COUNT(*) as \"rowsUpdated\" FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1) AND (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE ((sink.\"id\" = sink.\"id\") AND (sink.\"name\" = sink.\"name\") AND (sink.\"validity_from_target\" = sink.\"validity_from_target\")) AND (sink.\"batch_id_in\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'))))", "SELECT 0 as \"rowsDeleted\"", "SELECT (SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_in\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'))-(SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1) AND (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE ((sink.\"id\" = sink.\"id\") AND (sink.\"name\" = sink.\"name\") AND (sink.\"validity_from_target\" = sink.\"validity_from_target\")) AND (sink.\"batch_id_in\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'))))) as \"rowsInserted\"", "SELECT (SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1)-(SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1) AND (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE ((sink.\"id\" = sink.\"id\") AND (sink.\"name\" = sink.\"name\") AND (sink.\"validity_from_target\" = sink.\"validity_from_target\")) AND (sink.\"batch_id_in\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'))))) as \"rowsTerminated\"");
return;
}
public void verifyBitemporalDeltaDatetimeBasedWithDeleteIndWithDataSplits(java.util.List, java.util.List)
{
java.util.List v, v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
int v;
java.lang.String v, v, v, v, v, v, v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v := @parameter: java.util.List;
v := @parameter: java.util.List;
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedBitemporalMainTableWithVersionBatchDateTimeCreateQuery>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List preActionsSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableCreateQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List preActionsSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String enrichSqlWithDataSplits(java.lang.String,org.finos.legend.engine.persistence.components.relational.api.DataSplitRange)>("UPDATE \"mydb\".\"main\" as sink SET sink.\"batch_time_out\" = \'2000-01-01 00:00:00.000000\' WHERE (sink.\"batch_time_out\" = \'9999-12-31 23:59:59\') AND (EXISTS (SELECT * FROM \"mydb\".\"staging\" as stage WHERE ((stage.\"data_split\" >= \'{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}\') AND (stage.\"data_split\" <= \'{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}\')) AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\") AND ((sink.\"digest\" <> stage.\"digest\") OR (stage.\"delete_indicator\" IN (\'yes\',\'1\',\'true\')))))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String enrichSqlWithDataSplits(java.lang.String,org.finos.legend.engine.persistence.components.relational.api.DataSplitRange)>("INSERT INTO \"mydb\".\"main\" (\"id\", \"name\", \"amount\", \"validity_from_target\", \"validity_through_target\", \"digest\", \"version\", \"batch_time_in\", \"batch_time_out\") (SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"validity_from_reference\",stage.\"validity_through_reference\",stage.\"digest\",stage.\"version\",\'2000-01-01 00:00:00.000000\',\'9999-12-31 23:59:59\' FROM \"mydb\".\"staging\" as stage WHERE ((NOT (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_time_out\" = \'9999-12-31 23:59:59\') AND (sink.\"digest\" = stage.\"digest\") AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\")))) AND ((stage.\"data_split\" >= \'{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}\') AND (stage.\"data_split\" <= \'{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}\'))) AND (stage.\"delete_indicator\" NOT IN (\'yes\',\'1\',\'true\')))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String enrichSqlWithDataSplits(java.lang.String,org.finos.legend.engine.persistence.components.relational.api.DataSplitRange)>("UPDATE \"mydb\".\"main\" as sink SET sink.\"batch_time_out\" = \'2000-01-01 00:00:00.000000\' WHERE (sink.\"batch_time_out\" = \'9999-12-31 23:59:59\') AND (EXISTS (SELECT * FROM \"mydb\".\"staging\" as stage WHERE ((stage.\"data_split\" >= \'{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}\') AND (stage.\"data_split\" <= \'{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}\')) AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\") AND ((sink.\"digest\" <> stage.\"digest\") OR (stage.\"delete_indicator\" IN (\'yes\',\'1\',\'true\')))))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String enrichSqlWithDataSplits(java.lang.String,org.finos.legend.engine.persistence.components.relational.api.DataSplitRange)>("INSERT INTO \"mydb\".\"main\" (\"id\", \"name\", \"amount\", \"validity_from_target\", \"validity_through_target\", \"digest\", \"version\", \"batch_time_in\", \"batch_time_out\") (SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"validity_from_reference\",stage.\"validity_through_reference\",stage.\"digest\",stage.\"version\",\'2000-01-01 00:00:00.000000\',\'9999-12-31 23:59:59\' FROM \"mydb\".\"staging\" as stage WHERE ((NOT (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_time_out\" = \'9999-12-31 23:59:59\') AND (sink.\"digest\" = stage.\"digest\") AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\")))) AND ((stage.\"data_split\" >= \'{DATA_SPLIT_LOWER_BOUND_PLACEHOLDER}\') AND (stage.\"data_split\" <= \'{DATA_SPLIT_UPPER_BOUND_PLACEHOLDER}\'))) AND (stage.\"delete_indicator\" NOT IN (\'yes\',\'1\',\'true\')))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableIngestQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List metadataIngestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableIngestQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List metadataIngestSql()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: int size()>();
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(int,int)>(2, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: void verifyStats(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, "SELECT COUNT(*) as \"incomingRecordCount\" FROM \"mydb\".\"staging\" as stage WHERE (stage.\"data_split\" >= 1) AND (stage.\"data_split\" <= 1)", "SELECT COUNT(*) as \"rowsUpdated\" FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_time_out\" = \'2000-01-01 00:00:00.000000\') AND (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE ((sink.\"id\" = sink.\"id\") AND (sink.\"name\" = sink.\"name\") AND (sink.\"validity_from_target\" = sink.\"validity_from_target\")) AND (sink.\"batch_time_in\" = \'2000-01-01 00:00:00.000000\')))", "SELECT 0 as \"rowsDeleted\"", "SELECT (SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_time_in\" = \'2000-01-01 00:00:00.000000\')-(SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_time_out\" = \'2000-01-01 00:00:00.000000\') AND (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE ((sink.\"id\" = sink.\"id\") AND (sink.\"name\" = sink.\"name\") AND (sink.\"validity_from_target\" = sink.\"validity_from_target\")) AND (sink.\"batch_time_in\" = \'2000-01-01 00:00:00.000000\')))) as \"rowsInserted\"", "SELECT (SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_time_out\" = \'2000-01-01 00:00:00.000000\')-(SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_time_out\" = \'2000-01-01 00:00:00.000000\') AND (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE ((sink.\"id\" = sink.\"id\") AND (sink.\"name\" = sink.\"name\") AND (sink.\"validity_from_target\" = sink.\"validity_from_target\")) AND (sink.\"batch_time_in\" = \'2000-01-01 00:00:00.000000\')))) as \"rowsTerminated\"");
return;
}
public void verifyBitemporalDeltaBatchIdBasedWithUpperCaseOptimizer(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult)
{
org.finos.legend.engine.persistence.components.relational.api.GeneratorResult v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
java.util.List v, v, v;
java.lang.Object v, v, v, v, v;
java.lang.String v, v, v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v := @parameter: org.finos.legend.engine.persistence.components.relational.api.GeneratorResult;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List preActionsSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List metadataIngestSql()>();
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedBitemporalMainTableCreateQueryUpperCase>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableCreateQueryWithUpperCase()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>("UPDATE \"MYDB\".\"MAIN\" as sink SET sink.\"BATCH_ID_OUT\" = (SELECT COALESCE(MAX(BATCH_METADATA.\"TABLE_BATCH_ID\"),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.\"TABLE_NAME\") = \'MAIN\')-1 WHERE (sink.\"BATCH_ID_OUT\" = 999999999) AND (EXISTS (SELECT * FROM \"MYDB\".\"STAGING\" as stage WHERE ((sink.\"ID\" = stage.\"ID\") AND (sink.\"NAME\" = stage.\"NAME\")) AND (sink.\"VALIDITY_FROM_TARGET\" = stage.\"VALIDITY_FROM_REFERENCE\") AND (sink.\"DIGEST\" <> stage.\"DIGEST\")))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>("INSERT INTO \"MYDB\".\"MAIN\" (\"ID\", \"NAME\", \"AMOUNT\", \"VALIDITY_FROM_TARGET\", \"VALIDITY_THROUGH_TARGET\", \"DIGEST\", \"BATCH_ID_IN\", \"BATCH_ID_OUT\") (SELECT stage.\"ID\",stage.\"NAME\",stage.\"AMOUNT\",stage.\"VALIDITY_FROM_REFERENCE\",stage.\"VALIDITY_THROUGH_REFERENCE\",stage.\"DIGEST\",(SELECT COALESCE(MAX(BATCH_METADATA.\"TABLE_BATCH_ID\"),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.\"TABLE_NAME\") = \'MAIN\'),999999999 FROM \"MYDB\".\"STAGING\" as stage WHERE NOT (EXISTS (SELECT * FROM \"MYDB\".\"MAIN\" as sink WHERE (sink.\"BATCH_ID_OUT\" = 999999999) AND (sink.\"DIGEST\" = stage.\"DIGEST\") AND ((sink.\"ID\" = stage.\"ID\") AND (sink.\"NAME\" = stage.\"NAME\")) AND (sink.\"VALIDITY_FROM_TARGET\" = stage.\"VALIDITY_FROM_REFERENCE\"))))", v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableIngestQueryWithUpperCase()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: void verifyStats(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, "SELECT COUNT(*) as \"INCOMINGRECORDCOUNT\" FROM \"MYDB\".\"STAGING\" as stage", "SELECT COUNT(*) as \"ROWSUPDATED\" FROM \"MYDB\".\"MAIN\" as sink WHERE sink.\"BATCH_ID_OUT\" = (SELECT COALESCE(MAX(BATCH_METADATA.\"TABLE_BATCH_ID\"),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.\"TABLE_NAME\") = \'MAIN\')-1", "SELECT 0 as \"ROWSDELETED\"", "SELECT (SELECT COUNT(*) FROM \"MYDB\".\"MAIN\" as sink WHERE sink.\"BATCH_ID_IN\" = (SELECT COALESCE(MAX(BATCH_METADATA.\"TABLE_BATCH_ID\"),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.\"TABLE_NAME\") = \'MAIN\'))-(SELECT COUNT(*) FROM \"MYDB\".\"MAIN\" as sink WHERE sink.\"BATCH_ID_OUT\" = (SELECT COALESCE(MAX(BATCH_METADATA.\"TABLE_BATCH_ID\"),0)+1 FROM BATCH_METADATA as BATCH_METADATA WHERE UPPER(BATCH_METADATA.\"TABLE_NAME\") = \'MAIN\')-1) as \"ROWSINSERTED\"", "SELECT 0 as \"ROWSTERMINATED\"");
return;
}
public void verifyBitemporalDeltaBatchIdBasedWithUserDefinedInfiniteBatchId(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult)
{
org.finos.legend.engine.persistence.components.relational.api.GeneratorResult v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
java.util.List v, v, v;
java.lang.Object v, v, v, v, v;
java.lang.String v, v, v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v := @parameter: org.finos.legend.engine.persistence.components.relational.api.GeneratorResult;
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List preActionsSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List ingestSql()>();
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.relational.api.GeneratorResult: java.util.List metadataIngestSql()>();
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedBitemporalMainTableCreateQuery>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableCreateQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>("UPDATE \"mydb\".\"main\" as sink SET sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1 WHERE (sink.\"batch_id_out\" = 123456) AND (EXISTS (SELECT * FROM \"mydb\".\"staging\" as stage WHERE ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\") AND (sink.\"digest\" <> stage.\"digest\")))", v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(1);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>("INSERT INTO \"mydb\".\"main\" (\"id\", \"name\", \"amount\", \"validity_from_target\", \"validity_through_target\", \"digest\", \"batch_id_in\", \"batch_id_out\") (SELECT stage.\"id\",stage.\"name\",stage.\"amount\",stage.\"validity_from_reference\",stage.\"validity_through_reference\",stage.\"digest\",(SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'),123456 FROM \"mydb\".\"staging\" as stage WHERE NOT (EXISTS (SELECT * FROM \"mydb\".\"main\" as sink WHERE (sink.\"batch_id_out\" = 123456) AND (sink.\"digest\" = stage.\"digest\") AND ((sink.\"id\" = stage.\"id\") AND (sink.\"name\" = stage.\"name\")) AND (sink.\"validity_from_target\" = stage.\"validity_from_reference\"))))", v);
v = virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: java.lang.String getExpectedMetadataTableIngestQuery()>();
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
staticinvoke <org.junit.jupiter.api.Assertions: void assertEquals(java.lang.Object,java.lang.Object)>(v, v);
virtualinvoke v.<org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest: void verifyStats(org.finos.legend.engine.persistence.components.relational.api.GeneratorResult,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, "SELECT COUNT(*) as \"incomingRecordCount\" FROM \"mydb\".\"staging\" as stage", "SELECT COUNT(*) as \"rowsUpdated\" FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1", "SELECT 0 as \"rowsDeleted\"", "SELECT (SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_in\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\'))-(SELECT COUNT(*) FROM \"mydb\".\"main\" as sink WHERE sink.\"batch_id_out\" = (SELECT COALESCE(MAX(batch_metadata.\"table_batch_id\"),0)+1 FROM batch_metadata as batch_metadata WHERE UPPER(batch_metadata.\"table_name\") = \'MAIN\')-1) as \"rowsInserted\"", "SELECT 0 as \"rowsTerminated\"");
return;
}
public org.finos.legend.engine.persistence.components.relational.RelationalSink getRelationalSink()
{
org.finos.legend.engine.persistence.components.relational.RelationalSink v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v = staticinvoke <org.finos.legend.engine.persistence.components.relational.ansi.AnsiSqlSink: org.finos.legend.engine.persistence.components.relational.RelationalSink get()>();
return v;
}
protected java.lang.String getExpectedMetadataTableIngestQuery()
{
java.lang.String v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedMetadataTableIngestQuery>;
return v;
}
protected java.lang.String getExpectedMetadataTableIngestQueryWithUpperCase()
{
java.lang.String v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedMetadataTableIngestQueryWithUpperCase>;
return v;
}
protected java.lang.String getExpectedMetadataTableCreateQuery()
{
java.lang.String v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedMetadataTableCreateQuery>;
return v;
}
protected java.lang.String getExpectedMetadataTableCreateQueryWithUpperCase()
{
java.lang.String v;
org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest v;
v := @this: org.finos.legend.engine.persistence.components.ingestmode.bitemporal.BitemporalDeltaSourceSpecifiesFromAndThroughTest;
v = <org.finos.legend.engine.persistence.components.AnsiTestArtifacts: java.lang.String expectedMetadataTableCreateQueryWithUpperCase>;
return v;
}
}