Skip to content

Commit 4bb3a61

Browse files
authored
fix(bigquery-jdbc): update format validation tests to create tables for the test (#13588)
1 parent 1309124 commit 4bb3a61

2 files changed

Lines changed: 80 additions & 3 deletions

File tree

java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBase.java

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,78 @@ public class ITBase extends BigQueryJdbcBaseTest {
109109
+ " CONSTRAINT my_fk2 FOREIGN KEY (address) REFERENCES `%1$s.%2$s.JDBC_CONSTRAINTS_TEST_TABLE3`(address) NOT ENFORCED\n"
110110
+ ");\n";
111111

112+
private static final String DDL_ALL_BQ_TYPES =
113+
"CREATE OR REPLACE TABLE `%1$s.%2$s.all_bq_types`\n"
114+
+ "(\n"
115+
+ " stringField STRING,\n"
116+
+ " bytesField BYTES,\n"
117+
+ " intField INT64,\n"
118+
+ " floatField FLOAT64,\n"
119+
+ " numericField NUMERIC,\n"
120+
+ " bigNumericField BIGNUMERIC,\n"
121+
+ " booleanField BOOLEAN,\n"
122+
+ " timestampFiled TIMESTAMP,\n"
123+
+ " dateField DATE,\n"
124+
+ " timeField TIME,\n"
125+
+ " dateTimeField DATETIME,\n"
126+
+ " geographyField GEOGRAPHY,\n"
127+
+ " recordField STRUCT<name STRING, recordNested STRUCT<lastName STRING>>,\n"
128+
+ " rangeField RANGE<DATE>,\n"
129+
+ " jsonField JSON,\n"
130+
+ " arrayString ARRAY<STRING>,\n"
131+
+ " arrayRecord ARRAY<STRUCT<value STRING>>,\n"
132+
+ " arrayBytes ARRAY<BYTES>,\n"
133+
+ " arrayInteger ARRAY<INT64>,\n"
134+
+ " arrayNumeric ARRAY<NUMERIC>,\n"
135+
+ " arrayBignumeric ARRAY<BIGNUMERIC>,\n"
136+
+ " arrayBoolean ARRAY<BOOLEAN>,\n"
137+
+ " arrayTimestamp ARRAY<TIMESTAMP>,\n"
138+
+ " arrayDate ARRAY<DATE>,\n"
139+
+ " arrayTime ARRAY<TIME>,\n"
140+
+ " arrayDatetime ARRAY<DATETIME>,\n"
141+
+ " arrayGeography ARRAY<GEOGRAPHY>,\n"
142+
+ " arrayRange ARRAY<RANGE<DATE>>,\n"
143+
+ " arrayJson ARRAY<JSON>,\n"
144+
+ " arrayFloat ARRAY<FLOAT64>\n"
145+
+ ");\n";
146+
147+
private static final String DML_ALL_BQ_TYPES =
148+
"INSERT INTO `%1$s.%2$s.all_bq_types`\n"
149+
+ "(\n"
150+
+ " stringField, bytesField, intField, floatField, numericField, bigNumericField, booleanField,\n"
151+
+ " timestampFiled, dateField, timeField, dateTimeField, geographyField, recordField, rangeField, jsonField,\n"
152+
+ " arrayString, arrayRecord, arrayBytes, arrayInteger, arrayNumeric, arrayBignumeric, arrayBoolean,\n"
153+
+ " arrayTimestamp, arrayDate, arrayTime, arrayDatetime, arrayGeography, arrayRange, arrayJson, arrayFloat\n"
154+
+ ")\n"
155+
+ "VALUES\n"
156+
+ "(\n"
157+
+ " 'StringValue', CAST('BytesValue' AS BYTES), 123, 10.5, CAST('12345.67' AS NUMERIC), CAST('98765432109876543210.123456789' AS BIGNUMERIC), true,\n"
158+
+ " TIMESTAMP '2023-07-28 12:30:00', DATE '2023-07-28', TIME '12:30:00', DATETIME '2023-07-28 12:30:00', ST_GEOGFROMTEXT('POINT(-74.006 40.7128)'),\n"
159+
+ " STRUCT('NameValue' AS name, STRUCT('LastNameValue' AS lastName) AS recordNested),\n"
160+
+ " RANGE<DATE> '[2023-01-01, 2023-12-01)', JSON '{\"key\":\"value\"}',\n"
161+
+ " ['abc', 'def', 'ghi'],\n"
162+
+ " [STRUCT('rec_val1' AS value), STRUCT('rec_val2' AS value)],\n"
163+
+ " [CAST('byte1' AS BYTES), CAST('byte2' AS BYTES)],\n"
164+
+ " [10, 20],\n"
165+
+ " [CAST('10.5' AS NUMERIC), CAST('20.5' AS NUMERIC)],\n"
166+
+ " [CAST('100.1' AS BIGNUMERIC), CAST('200.2' AS BIGNUMERIC)],\n"
167+
+ " [true, false],\n"
168+
+ " [TIMESTAMP '2023-01-01 01:00:00', TIMESTAMP '2023-01-01 02:00:00'],\n"
169+
+ " [DATE '2023-01-01', DATE '2023-01-02'],\n"
170+
+ " [TIME '01:00:00', TIME '02:00:00'],\n"
171+
+ " [DATETIME '2023-01-01 01:00:00', DATETIME '2023-01-01 02:00:00'],\n"
172+
+ " [ST_GEOGFROMTEXT('POINT(1 1)'), ST_GEOGFROMTEXT('POINT(2 2)')],\n"
173+
+ " [RANGE<DATE> '[2023-01-01, 2023-01-03)', RANGE<DATE> '[2023-01-04, 2023-01-06)'],\n"
174+
+ " [JSON '{\"a\":1}', JSON '{\"b\":2}'],\n"
175+
+ " [1.1, 2.2]\n"
176+
+ "),\n"
177+
+ "(\n"
178+
+ " NULL, NULL, NULL, NULL, NULL, NULL, NULL,\n"
179+
+ " NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,\n"
180+
+ " [], [], [], [], [], [], [],\n"
181+
+ " [], [], [], [], [], [], [], []\n"
182+
+ ");\n";
183+
112184
private static final String CREATE_RESOURCES_SCRIPT =
113185
DDL_IT_CALLABLE_STMT_PROC_DML_TABLE
114186
+ DDL_IT_CALLABLE_STMT_PROC_TABLE
@@ -118,7 +190,9 @@ public class ITBase extends BigQueryJdbcBaseTest {
118190
+ DDL_IT_CALLABLE_STMT_PROC_DML_INSERT_TEST
119191
+ DDL_IT_CALLABLE_STMT_PROC_DML_UPDATE_TEST
120192
+ DDL_IT_CALLABLE_STMT_PROC_DML_DELETE_TEST
121-
+ DDL_IT_CALLABLE_STMT_PROC_TEST;
193+
+ DDL_IT_CALLABLE_STMT_PROC_TEST
194+
+ DDL_ALL_BQ_TYPES
195+
+ DML_ALL_BQ_TYPES;
122196

123197
public static synchronized String getSharedDataset() {
124198
if (sharedDataset == null) {

java-bigquery-jdbc/src/test/java/com/google/cloud/bigquery/jdbc/it/ITBigQueryJDBCTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2419,7 +2419,9 @@ private void validate(
24192419
Statement statementHTAPI = connectionHTAPI.createStatement()) {
24202420

24212421
String query =
2422-
"SELECT * FROM INTEGRATION_TEST_FORMAT.all_bq_types WHERE stringField is not null";
2422+
String.format(
2423+
"SELECT * FROM `%s.%s.all_bq_types` WHERE stringField is not null",
2424+
PROJECT_ID, DATASET);
24232425
ResultSet resultSetRegular = statement.executeQuery(query);
24242426
ResultSet resultSetArrow = statementHTAPI.executeQuery(query);
24252427
resultSetRegular.next();
@@ -2710,7 +2712,8 @@ public void validateGetObjectNullValues() throws Exception {
27102712
Statement statementHTAPI = connectionHTAPI.createStatement()) {
27112713

27122714
String query =
2713-
"SELECT * FROM INTEGRATION_TEST_FORMAT.all_bq_types WHERE stringField is null;";
2715+
String.format(
2716+
"SELECT * FROM `%s.%s.all_bq_types` WHERE stringField is null;", PROJECT_ID, DATASET);
27142717
ResultSet resultSetRegular = statement.executeQuery(query);
27152718
ResultSet resultSetArrow = statementHTAPI.executeQuery(query);
27162719
resultSetRegular.next();

0 commit comments

Comments
 (0)