Skip to content

Commit 93a0c05

Browse files
authored
build: execute parallel integration tests (#797)
Refactors the integration tests to fix a number of problems: 1. Too much state was kept in the abstract base class for all integration tests. This did not work properly with parameterized tests, as some state leaked from one parameter value (dialect) to another. 2. The emulator cannot use an existing instance for testing, as it always starts without any existing instances. This is now fixed by forcing tests to used a separate instance for each test class when running on the emulator, and by fixing creation and database cleanup before/after tests. In addition the integration tests were not executed by Kokoro, as they were skipped in the default test execution. All integration tests are now executed by default. @ansh0l @mpeddada1 The integration tests are (probably) still failing, but that is because the default test instance (projects/gcloud-devel/instances/spanner-testing-east1) is clogged with old (?) test databases that have not been cleaned up. Some test cases therefore currently fail with an error that they cannot create another database, as the max of 100 databases per instance has been reached. I don't have access to the affected instance, so I cannot clean it up. Hopefully one of you has access to it. I've verified that the integration tests work on a different instance.
1 parent e9995de commit 93a0c05

27 files changed

+647
-564
lines changed

pom.xml

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -237,35 +237,9 @@
237237
</spanner.testenv.instance>
238238
</systemPropertyVariables>
239239
<forkedProcessTimeoutInSeconds>2400</forkedProcessTimeoutInSeconds>
240+
<forkCount>8</forkCount>
241+
<reuseForks>true</reuseForks>
240242
</configuration>
241-
<executions>
242-
<execution>
243-
<id>default</id>
244-
<goals>
245-
<goal>integration-test</goal>
246-
</goals>
247-
<configuration>
248-
<groups>com.google.cloud.spanner.IntegrationTest</groups>
249-
<excludedGroups>
250-
com.google.cloud.spanner.FlakyTest,com.google.cloud.spanner.ParallelIntegrationTest
251-
</excludedGroups>
252-
</configuration>
253-
</execution>
254-
<execution>
255-
<id>parallel-integration-test</id>
256-
<goals>
257-
<goal>integration-test</goal>
258-
</goals>
259-
<configuration>
260-
<groups>com.google.cloud.spanner.ParallelIntegrationTest</groups>
261-
<excludedGroups>
262-
com.google.cloud.spanner.FlakyTest,com.google.cloud.spanner.IntegrationTest
263-
</excludedGroups>
264-
<forkCount>8</forkCount>
265-
<reuseForks>true</reuseForks>
266-
</configuration>
267-
</execution>
268-
</executions>
269243
</plugin>
270244
<plugin>
271245
<groupId>org.apache.maven.plugins</groupId>

src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetColumns.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ SELECT TABLE_CATALOG AS "TABLE_CAT", TABLE_SCHEMA AS "TABLE_SCHEM", TABLE_NAME A
7474
ELSE 'YES'
7575
END AS "IS_GENERATEDCOLUMN"
7676
FROM INFORMATION_SCHEMA.COLUMNS C
77-
WHERE UPPER(C.TABLE_CATALOG) LIKE ?
77+
WHERE UPPER(COALESCE(C.TABLE_CATALOG, '')) LIKE ?
7878
AND UPPER(C.TABLE_SCHEMA) LIKE ?
7979
AND UPPER(C.TABLE_NAME) LIKE ?
8080
AND UPPER(C.COLUMN_NAME) LIKE ?

src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetCrossReferences.sql

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ SELECT PARENT.TABLE_CATALOG AS "PKTABLE_CAT", PARENT.TABLE_SCHEMA AS "PKTABLE_SC
2020
3 AS "DELETE_RULE", CONSTRAINTS.CONSTRAINT_NAME AS "FK_NAME", CONSTRAINTS.UNIQUE_CONSTRAINT_NAME AS "PK_NAME",
2121
7 AS "DEFERRABILITY"
2222
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS CONSTRAINTS
23-
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CHILD ON CONSTRAINTS.CONSTRAINT_CATALOG=CHILD.CONSTRAINT_CATALOG AND CONSTRAINTS.CONSTRAINT_SCHEMA= CHILD.CONSTRAINT_SCHEMA AND CONSTRAINTS.CONSTRAINT_NAME= CHILD.CONSTRAINT_NAME
24-
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE PARENT ON CONSTRAINTS.UNIQUE_CONSTRAINT_CATALOG=PARENT.CONSTRAINT_CATALOG AND CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA=PARENT.CONSTRAINT_SCHEMA AND CONSTRAINTS.UNIQUE_CONSTRAINT_NAME=PARENT.CONSTRAINT_NAME AND PARENT.ORDINAL_POSITION=CHILD.POSITION_IN_UNIQUE_CONSTRAINT
25-
WHERE UPPER(PARENT.TABLE_CATALOG) LIKE ?
23+
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CHILD ON COALESCE(CONSTRAINTS.CONSTRAINT_CATALOG, '')=COALESCE(CHILD.CONSTRAINT_CATALOG, '') AND CONSTRAINTS.CONSTRAINT_SCHEMA= CHILD.CONSTRAINT_SCHEMA AND CONSTRAINTS.CONSTRAINT_NAME= CHILD.CONSTRAINT_NAME
24+
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE PARENT ON COALESCE(CONSTRAINTS.UNIQUE_CONSTRAINT_CATALOG, '')=COALESCE(PARENT.CONSTRAINT_CATALOG, '') AND CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA=PARENT.CONSTRAINT_SCHEMA AND CONSTRAINTS.UNIQUE_CONSTRAINT_NAME=PARENT.CONSTRAINT_NAME AND PARENT.ORDINAL_POSITION=CHILD.POSITION_IN_UNIQUE_CONSTRAINT
25+
WHERE UPPER(COALESCE(PARENT.TABLE_CATALOG, '')) LIKE ?
2626
AND UPPER(PARENT.TABLE_SCHEMA) LIKE ?
2727
AND UPPER(PARENT.TABLE_NAME) LIKE ?
28-
AND UPPER(CHILD.TABLE_CATALOG) LIKE ?
28+
AND UPPER(COALESCE(CHILD.TABLE_CATALOG, '')) LIKE ?
2929
AND UPPER(CHILD.TABLE_SCHEMA) LIKE ?
3030
AND UPPER(CHILD.TABLE_NAME) LIKE ?
3131
ORDER BY CHILD.TABLE_CATALOG, CHILD.TABLE_SCHEMA, CHILD.TABLE_NAME, CHILD.ORDINAL_POSITION

src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetExportedKeys.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ SELECT PARENT.TABLE_CATALOG AS "PKTABLE_CAT", PARENT.TABLE_SCHEMA AS "PKTABLE_SC
2323
CONSTRAINTS.CONSTRAINT_NAME AS "FK_NAME", CONSTRAINTS.UNIQUE_CONSTRAINT_NAME AS "PK_NAME",
2424
7 AS "DEFERRABILITY" -- 7 = importedKeyNotDeferrable
2525
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS CONSTRAINTS
26-
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CHILD ON CONSTRAINTS.CONSTRAINT_CATALOG=CHILD.CONSTRAINT_CATALOG AND CONSTRAINTS.CONSTRAINT_SCHEMA= CHILD.CONSTRAINT_SCHEMA AND CONSTRAINTS.CONSTRAINT_NAME= CHILD.CONSTRAINT_NAME
27-
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE PARENT ON CONSTRAINTS.UNIQUE_CONSTRAINT_CATALOG=PARENT.CONSTRAINT_CATALOG AND CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA=PARENT.CONSTRAINT_SCHEMA AND CONSTRAINTS.UNIQUE_CONSTRAINT_NAME=PARENT.CONSTRAINT_NAME AND PARENT.ORDINAL_POSITION=CHILD.POSITION_IN_UNIQUE_CONSTRAINT
28-
WHERE UPPER(PARENT.TABLE_CATALOG) LIKE ?
26+
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CHILD ON COALESCE(CONSTRAINTS.CONSTRAINT_CATALOG, '')=COALESCE(CHILD.CONSTRAINT_CATALOG, '') AND CONSTRAINTS.CONSTRAINT_SCHEMA= CHILD.CONSTRAINT_SCHEMA AND CONSTRAINTS.CONSTRAINT_NAME= CHILD.CONSTRAINT_NAME
27+
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE PARENT ON COALESCE(CONSTRAINTS.UNIQUE_CONSTRAINT_CATALOG, '')=COALESCE(PARENT.CONSTRAINT_CATALOG, '') AND CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA=PARENT.CONSTRAINT_SCHEMA AND CONSTRAINTS.UNIQUE_CONSTRAINT_NAME=PARENT.CONSTRAINT_NAME AND PARENT.ORDINAL_POSITION=CHILD.POSITION_IN_UNIQUE_CONSTRAINT
28+
WHERE UPPER(COALESCE(PARENT.TABLE_CATALOG, '')) LIKE ?
2929
AND UPPER(PARENT.TABLE_SCHEMA) LIKE ?
3030
AND UPPER(PARENT.TABLE_NAME) LIKE ?
3131
ORDER BY CHILD.TABLE_CATALOG, CHILD.TABLE_SCHEMA, CHILD.TABLE_NAME, CHILD.ORDINAL_POSITION

src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetImportedKeys.sql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ SELECT PARENT.TABLE_CATALOG AS "PKTABLE_CAT", PARENT.TABLE_SCHEMA AS "PKTABLE_SC
2323
CONSTRAINTS.CONSTRAINT_NAME AS "FK_NAME", CONSTRAINTS.UNIQUE_CONSTRAINT_NAME AS "PK_NAME",
2424
7 AS "DEFERRABILITY" -- 7 = importedKeyNotDeferrable
2525
FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS CONSTRAINTS
26-
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CHILD ON CONSTRAINTS.CONSTRAINT_CATALOG=CHILD.CONSTRAINT_CATALOG AND CONSTRAINTS.CONSTRAINT_SCHEMA= CHILD.CONSTRAINT_SCHEMA AND CONSTRAINTS.CONSTRAINT_NAME= CHILD.CONSTRAINT_NAME
27-
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE PARENT ON CONSTRAINTS.UNIQUE_CONSTRAINT_CATALOG=PARENT.CONSTRAINT_CATALOG AND CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA=PARENT.CONSTRAINT_SCHEMA AND CONSTRAINTS.UNIQUE_CONSTRAINT_NAME=PARENT.CONSTRAINT_NAME AND PARENT.ORDINAL_POSITION=CHILD.POSITION_IN_UNIQUE_CONSTRAINT
28-
WHERE UPPER(CHILD.TABLE_CATALOG) LIKE ?
26+
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CHILD ON COALESCE(CONSTRAINTS.CONSTRAINT_CATALOG, '')=COALESCE(CHILD.CONSTRAINT_CATALOG, '') AND CONSTRAINTS.CONSTRAINT_SCHEMA= CHILD.CONSTRAINT_SCHEMA AND CONSTRAINTS.CONSTRAINT_NAME= CHILD.CONSTRAINT_NAME
27+
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE PARENT ON COALESCE(CONSTRAINTS.UNIQUE_CONSTRAINT_CATALOG, '')=COALESCE(PARENT.CONSTRAINT_CATALOG, '') AND CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA=PARENT.CONSTRAINT_SCHEMA AND CONSTRAINTS.UNIQUE_CONSTRAINT_NAME=PARENT.CONSTRAINT_NAME AND PARENT.ORDINAL_POSITION=CHILD.POSITION_IN_UNIQUE_CONSTRAINT
28+
WHERE UPPER(COALESCE(CHILD.TABLE_CATALOG, '')) LIKE ?
2929
AND UPPER(CHILD.TABLE_SCHEMA) LIKE ?
3030
AND UPPER(CHILD.TABLE_NAME) LIKE ?
3131
ORDER BY PARENT.TABLE_CATALOG, PARENT.TABLE_SCHEMA, PARENT.TABLE_NAME, CHILD.ORDINAL_POSITION

src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetIndexInfo.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ SELECT IDX.TABLE_CATALOG AS "TABLE_CAT", IDX.TABLE_SCHEMA AS "TABLE_SCHEM", IDX.
2424
NULL AS "FILTER_CONDITION"
2525
FROM INFORMATION_SCHEMA.INDEXES IDX
2626
INNER JOIN INFORMATION_SCHEMA.INDEX_COLUMNS COL
27-
ON IDX.TABLE_CATALOG=COL.TABLE_CATALOG
27+
ON COALESCE(IDX.TABLE_CATALOG, '')=COALESCE(COL.TABLE_CATALOG, '')
2828
AND IDX.TABLE_SCHEMA=COL.TABLE_SCHEMA
2929
AND IDX.TABLE_NAME=COL.TABLE_NAME
3030
AND IDX.INDEX_NAME=COL.INDEX_NAME
31-
WHERE UPPER(IDX.TABLE_CATALOG) LIKE ?
31+
WHERE UPPER(COALESCE(IDX.TABLE_CATALOG, '')) LIKE ?
3232
AND UPPER(IDX.TABLE_SCHEMA) LIKE ?
3333
AND UPPER(IDX.TABLE_NAME) LIKE ?
3434
AND UPPER(IDX.INDEX_NAME) LIKE ?

src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetPrimaryKeys.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ SELECT IDX.TABLE_CATALOG AS "TABLE_CAT", IDX.TABLE_SCHEMA AS "TABLE_SCHEM", IDX.
1818
COLS.COLUMN_NAME AS "COLUMN_NAME", ORDINAL_POSITION AS "KEY_SEQ", IDX.INDEX_NAME AS "PK_NAME"
1919
FROM INFORMATION_SCHEMA.INDEXES IDX
2020
INNER JOIN INFORMATION_SCHEMA.INDEX_COLUMNS COLS
21-
ON IDX.TABLE_CATALOG=COLS.TABLE_CATALOG
21+
ON COALESCE(IDX.TABLE_CATALOG, '')=COALESCE(COLS.TABLE_CATALOG, '')
2222
AND IDX.TABLE_SCHEMA=COLS.TABLE_SCHEMA
2323
AND IDX.TABLE_NAME=COLS.TABLE_NAME
2424
AND IDX.INDEX_NAME=COLS.INDEX_NAME
2525
WHERE IDX.INDEX_TYPE='PRIMARY_KEY'
26-
AND UPPER(IDX.TABLE_CATALOG) LIKE ?
26+
AND UPPER(COALESCE(IDX.TABLE_CATALOG, '')) LIKE ?
2727
AND UPPER(IDX.TABLE_SCHEMA) LIKE ?
2828
AND UPPER(IDX.TABLE_NAME) LIKE ?
2929
ORDER BY COLS.ORDINAL_POSITION

src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetSchemas.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@
1616

1717
SELECT SCHEMA_NAME AS "TABLE_SCHEM", CATALOG_NAME AS "TABLE_CATALOG"
1818
FROM INFORMATION_SCHEMA.SCHEMATA
19-
WHERE UPPER(CATALOG_NAME) LIKE ?
19+
WHERE UPPER(COALESCE(CATALOG_NAME, '')) LIKE ?
2020
AND UPPER(SCHEMA_NAME) LIKE ?
2121
ORDER BY CATALOG_NAME, SCHEMA_NAME

src/main/resources/com/google/cloud/spanner/jdbc/postgresql/DatabaseMetaData_GetTables.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ SELECT TABLE_CATALOG AS "TABLE_CAT", TABLE_SCHEMA AS "TABLE_SCHEM", TABLE_NAME A
1919
NULL AS "REMARKS", NULL AS "TYPE_CAT", NULL AS "TYPE_SCHEM", NULL AS "TYPE_NAME",
2020
NULL AS "SELF_REFERENCING_COL_NAME", NULL AS "REF_GENERATION"
2121
FROM INFORMATION_SCHEMA.TABLES AS T
22-
WHERE UPPER(TABLE_CATALOG) LIKE ?
22+
WHERE UPPER(COALESCE(TABLE_CATALOG, '')) LIKE ?
2323
AND UPPER(TABLE_SCHEMA) LIKE ?
2424
AND UPPER(TABLE_NAME) LIKE ?
2525
AND (

src/test/java/com/google/cloud/spanner/jdbc/ITAbstractJdbcTest.java

Lines changed: 0 additions & 247 deletions
This file was deleted.

0 commit comments

Comments
 (0)