Skip to content

Commit b3deb25

Browse files
authored
Merge branch 'main' into renovate/google-api-services-bigquery.version
2 parents 33c81dc + 744e83a commit b3deb25

File tree

18 files changed

+600
-24
lines changed

18 files changed

+600
-24
lines changed

.github/.OwlBot.lock.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
# limitations under the License.
1414
docker:
1515
image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest
16-
digest: sha256:944c07e458ce227ca49a423affedf088e31e2ee70908dd21682238d58f1beb60
16+
digest: sha256:ad9cabee4c022f1aab04a71332369e0c23841062124818a4490f73337f790337

.github/release-trigger.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
enabled: true
2+
multiScmName: java-bigquery

.kokoro/presubmit/graalvm-native-17.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Configure the docker image for kokoro-trampoline.
44
env_vars: {
55
key: "TRAMPOLINE_IMAGE"
6-
value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.0"
6+
value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17:22.3.2"
77
}
88

99
env_vars: {

.kokoro/presubmit/graalvm-native.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Configure the docker image for kokoro-trampoline.
44
env_vars: {
55
key: "TRAMPOLINE_IMAGE"
6-
value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.0"
6+
value: "gcr.io/cloud-devrel-kokoro-resources/graalvm:22.3.2"
77
}
88

99
env_vars: {

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-bigquery/tree
127127
| Copy Multiple Tables | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyMultipleTables.java) |
128128
| Copy Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTable.java) |
129129
| Copy Table Cmek | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CopyTableCmek.java) |
130+
| Create And Query Repeated Record Field | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateAndQueryRepeatedRecordField.java) |
130131
| Create Clustered Table | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateClusteredTable.java) |
131132
| Create Dataset | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDataset.java) |
132133
| Create Dataset Aws | [source code](https://github.com/googleapis/java-bigquery/blob/main/samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-bigquery&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/bigquery/CreateDatasetAws.java) |

benchmark/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<artifactId>google-cloud-bigquery-parent</artifactId>
88
<groupId>com.google.cloud</groupId>
9-
<version>2.26.1</version><!-- {x-version-update:google-cloud-bigquery:current} -->
9+
<version>2.26.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-bigquery:current} -->
1010
</parent>
1111

1212
<properties>

google-cloud-bigquery/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.google.cloud</groupId>
55
<artifactId>google-cloud-bigquery</artifactId>
6-
<version>2.26.1</version><!-- {x-version-update:google-cloud-bigquery:current} -->
6+
<version>2.26.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-bigquery:current} -->
77
<packaging>jar</packaging>
88
<name>BigQuery</name>
99
<url>https://github.com/googleapis/java-bigquery</url>
1010
<description>BigQuery</description>
1111
<parent>
1212
<groupId>com.google.cloud</groupId>
1313
<artifactId>google-cloud-bigquery-parent</artifactId>
14-
<version>2.26.1</version><!-- {x-version-update:google-cloud-bigquery:current} -->
14+
<version>2.26.2-SNAPSHOT</version><!-- {x-version-update:google-cloud-bigquery:current} -->
1515
</parent>
1616
<properties>
1717
<site.installationModule>google-cloud-bigquery</site.installationModule>

google-cloud-bigquery/src/main/java/com/google/cloud/bigquery/QueryParameterValue.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,11 @@ public static <T> QueryParameterValue array(T[] array, Class<T> clazz) {
349349
public static <T> QueryParameterValue array(T[] array, StandardSQLTypeName type) {
350350
List<QueryParameterValue> listValues = new ArrayList<>();
351351
for (T obj : array) {
352-
listValues.add(QueryParameterValue.of(obj, type));
352+
if (type == StandardSQLTypeName.STRUCT) {
353+
listValues.add((QueryParameterValue) obj);
354+
} else {
355+
listValues.add(QueryParameterValue.of(obj, type));
356+
}
353357
}
354358
return QueryParameterValue.newBuilder()
355359
.setArrayValues(listValues)
@@ -522,9 +526,15 @@ QueryParameterType toTypePb() {
522526
QueryParameterType typePb = new QueryParameterType();
523527
typePb.setType(getType().toString());
524528
if (getArrayType() != null) {
525-
QueryParameterType arrayTypePb = new QueryParameterType();
526-
arrayTypePb.setType(getArrayType().toString());
527-
typePb.setArrayType(arrayTypePb);
529+
List<QueryParameterValue> values = getArrayValues();
530+
if (getArrayType() == StandardSQLTypeName.STRUCT && values != null && values.size() != 0) {
531+
QueryParameterType structType = values.get(0).toTypePb();
532+
typePb.setArrayType(structType);
533+
} else {
534+
QueryParameterType arrayTypePb = new QueryParameterType();
535+
arrayTypePb.setType(getArrayType().toString());
536+
typePb.setArrayType(arrayTypePb);
537+
}
528538
}
529539
if (getStructTypes() != null) {
530540
List<QueryParameterType.StructTypes> structTypes = new ArrayList<>();

google-cloud-bigquery/src/test/java/com/google/cloud/bigquery/QueryParameterValueTest.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.math.BigDecimal;
2929
import java.text.ParseException;
3030
import java.time.Period;
31+
import java.util.ArrayList;
3132
import java.util.Date;
3233
import java.util.HashMap;
3334
import java.util.List;
@@ -563,6 +564,48 @@ public void testNestedStruct() {
563564
assertThat(nestedRecordField.getStructValues().size()).isEqualTo(structValue.size());
564565
}
565566

567+
@Test
568+
public void testStructArray() {
569+
Boolean[] boolValues = new Boolean[] {true, false};
570+
Integer[] intValues = new Integer[] {15, 20};
571+
String[] stringValues = new String[] {"test-string", "test-string2"};
572+
List<ImmutableMap<String, QueryParameterValue>> fieldMaps = new ArrayList<>();
573+
List<QueryParameterValue> tuples = new ArrayList<>();
574+
for (int i = 0; i < 2; i++) {
575+
QueryParameterValue booleanField = QueryParameterValue.bool(boolValues[i]);
576+
QueryParameterValue integerField = QueryParameterValue.int64(intValues[i]);
577+
QueryParameterValue stringField = QueryParameterValue.string(stringValues[i]);
578+
ImmutableMap<String, QueryParameterValue> fieldMap =
579+
ImmutableMap.of(
580+
"booleanField",
581+
booleanField,
582+
"integerField",
583+
integerField,
584+
"stringField",
585+
stringField);
586+
fieldMaps.add(fieldMap);
587+
QueryParameterValue recordField = QueryParameterValue.struct(fieldMap);
588+
tuples.add(recordField);
589+
}
590+
QueryParameterValue repeatedRecordField =
591+
QueryParameterValue.array(tuples.toArray(), StandardSQLTypeName.STRUCT);
592+
com.google.api.services.bigquery.model.QueryParameterValue parameterValue =
593+
repeatedRecordField.toValuePb();
594+
QueryParameterType parameterType = repeatedRecordField.toTypePb();
595+
QueryParameterValue queryParameterValue =
596+
QueryParameterValue.fromPb(parameterValue, parameterType);
597+
assertThat(queryParameterValue.getValue()).isNull();
598+
assertThat(queryParameterValue.getType()).isEqualTo(StandardSQLTypeName.ARRAY);
599+
assertThat(queryParameterValue.getArrayType()).isEqualTo(StandardSQLTypeName.STRUCT);
600+
assertThat(queryParameterValue.getArrayValues().size()).isEqualTo(2);
601+
for (int i = 0; i < 2; i++) {
602+
QueryParameterValue record = queryParameterValue.getArrayValues().get(i);
603+
assertThat(record.getType()).isEqualTo(StandardSQLTypeName.STRUCT);
604+
assertThat(record.getStructTypes()).isNotNull();
605+
assertThat(record.getStructValues()).isEqualTo(fieldMaps.get(i));
606+
}
607+
}
608+
566609
private static void assertArrayDataEquals(
567610
String[] expectedValues,
568611
StandardSQLTypeName expectedType,

0 commit comments

Comments
 (0)