Skip to content

Commit 7e42c8c

Browse files
authored
Merge branch 'googleapis:main' into main
2 parents e7f3109 + dda2e1d commit 7e42c8c

File tree

53 files changed

+16639
-8020
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+16639
-8020
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ If you are using Maven without the BOM, add this to your dependencies:
4141
<dependency>
4242
<groupId>com.google.cloud</groupId>
4343
<artifactId>google-cloud-spanner</artifactId>
44-
<version>6.84.0</version>
44+
<version>6.89.0</version>
4545
</dependency>
4646

4747
```

benchmarks/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
<dependency>
9393
<groupId>com.google.cloud</groupId>
9494
<artifactId>google-cloud-spanner</artifactId>
95-
<version>6.84.0</version>
95+
<version>6.89.0</version>
9696
</dependency>
9797
<dependency>
9898
<groupId>commons-cli</groupId>

google-cloud-spanner/clirr-ignored-differences.xml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -566,6 +566,58 @@
566566
<method>java.util.List getFloat32Array()</method>
567567
</difference>
568568

569+
<!-- INTERVAL -->
570+
<difference>
571+
<differenceType>7012</differenceType>
572+
<className>com/google/cloud/spanner/StructReader</className>
573+
<method>com.google.cloud.spanner.Interval getInterval(int)</method>
574+
</difference>
575+
<difference>
576+
<differenceType>7012</differenceType>
577+
<className>com/google/cloud/spanner/StructReader</className>
578+
<method>com.google.cloud.spanner.Interval getInterval(java.lang.String)</method>
579+
</difference>
580+
<difference>
581+
<differenceType>7012</differenceType>
582+
<className>com/google/cloud/spanner/StructReader</className>
583+
<method>com.google.cloud.spanner.Interval[] getIntervalArray(int)</method>
584+
</difference>
585+
<difference>
586+
<differenceType>7012</differenceType>
587+
<className>com/google/cloud/spanner/StructReader</className>
588+
<method>com.google.cloud.spanner.Interval[] getIntervalArray(java.lang.String)</method>
589+
</difference>
590+
<difference>
591+
<differenceType>7012</differenceType>
592+
<className>com/google/cloud/spanner/StructReader</className>
593+
<method>java.util.List getIntervalList(int)</method>
594+
</difference>
595+
<difference>
596+
<differenceType>7012</differenceType>
597+
<className>com/google/cloud/spanner/StructReader</className>
598+
<method>java.util.List getIntervalList(java.lang.String)</method>
599+
</difference>
600+
<difference>
601+
<differenceType>7013</differenceType>
602+
<className>com/google/cloud/spanner/AbstractStructReader</className>
603+
<method>com.google.cloud.spanner.Interval getIntervalInternal(int)</method>
604+
</difference>
605+
<difference>
606+
<differenceType>7013</differenceType>
607+
<className>com/google/cloud/spanner/AbstractStructReader</className>
608+
<method>java.util.List getIntervalListInternal(int)</method>
609+
</difference>
610+
<difference>
611+
<differenceType>7013</differenceType>
612+
<className>com/google/cloud/spanner/Value</className>
613+
<method>com.google.cloud.spanner.Interval getInterval()</method>
614+
</difference>
615+
<difference>
616+
<differenceType>7013</differenceType>
617+
<className>com/google/cloud/spanner/Value</className>
618+
<method>java.util.List getIntervalArray()</method>
619+
</difference>
620+
569621
<!-- (Internal change, use stream timeout) -->
570622
<difference>
571623
<differenceType>7012</differenceType>
@@ -863,6 +915,18 @@
863915
<method>com.google.spanner.v1.TransactionOptions$IsolationLevel getDefaultIsolationLevel()</method>
864916
</difference>
865917

918+
<!-- Isolation level per transaction -->
919+
<difference>
920+
<differenceType>7012</differenceType>
921+
<className>com/google/cloud/spanner/connection/Connection</className>
922+
<method>void beginTransaction(com.google.spanner.v1.TransactionOptions$IsolationLevel)</method>
923+
</difference>
924+
<difference>
925+
<differenceType>7012</differenceType>
926+
<className>com/google/cloud/spanner/connection/Connection</className>
927+
<method>com.google.api.core.ApiFuture beginTransactionAsync(com.google.spanner.v1.TransactionOptions$IsolationLevel)</method>
928+
</difference>
929+
866930
<!-- Removed ConnectionOptions$ConnectionProperty in favor of the more generic ConnectionProperty class. -->
867931
<difference>
868932
<differenceType>8001</differenceType>

google-cloud-spanner/src/main/java/com/google/cloud/spanner/AbstractResultSet.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,11 @@ protected Date getDateInternal(int columnIndex) {
434434
return currRow().getDateInternal(columnIndex);
435435
}
436436

437+
@Override
438+
protected Interval getIntervalInternal(int columnIndex) {
439+
return currRow().getIntervalInternal(columnIndex);
440+
}
441+
437442
@Override
438443
protected Value getValueInternal(int columnIndex) {
439444
return currRow().getValueInternal(columnIndex);
@@ -526,6 +531,11 @@ protected List<Date> getDateListInternal(int columnIndex) {
526531
return currRow().getDateListInternal(columnIndex);
527532
}
528533

534+
@Override
535+
protected List<Interval> getIntervalListInternal(int columnIndex) {
536+
return currRow().getIntervalListInternal(columnIndex);
537+
}
538+
529539
@Override
530540
protected List<Struct> getStructListInternal(int columnIndex) {
531541
return currRow().getStructListInternal(columnIndex);

google-cloud-spanner/src/main/java/com/google/cloud/spanner/AbstractStructReader.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ protected String getPgJsonbInternal(int columnIndex) {
6767

6868
protected abstract Date getDateInternal(int columnIndex);
6969

70+
protected abstract Interval getIntervalInternal(int columnIndex);
71+
7072
protected <T extends AbstractMessage> T getProtoMessageInternal(int columnIndex, T message) {
7173
throw new UnsupportedOperationException("Not implemented");
7274
}
@@ -128,6 +130,8 @@ protected List<String> getPgJsonbListInternal(int columnIndex) {
128130

129131
protected abstract List<Date> getDateListInternal(int columnIndex);
130132

133+
protected abstract List<Interval> getIntervalListInternal(int columnIndex);
134+
131135
protected abstract List<Struct> getStructListInternal(int columnIndex);
132136

133137
@Override
@@ -299,6 +303,19 @@ public Date getDate(String columnName) {
299303
return getDateInternal(columnIndex);
300304
}
301305

306+
@Override
307+
public Interval getInterval(int columnIndex) {
308+
checkNonNullOfType(columnIndex, Type.interval(), columnIndex);
309+
return getIntervalInternal(columnIndex);
310+
}
311+
312+
@Override
313+
public Interval getInterval(String columnName) {
314+
int columnIndex = getColumnIndex(columnName);
315+
checkNonNullOfType(columnIndex, Type.interval(), columnName);
316+
return getIntervalInternal(columnIndex);
317+
}
318+
302319
@Override
303320
public <T extends ProtocolMessageEnum> T getProtoEnum(
304321
int columnIndex, Function<Integer, ProtocolMessageEnum> method) {
@@ -583,6 +600,19 @@ public List<Date> getDateList(String columnName) {
583600
return getDateListInternal(columnIndex);
584601
}
585602

603+
@Override
604+
public List<Interval> getIntervalList(int columnIndex) {
605+
checkNonNullOfType(columnIndex, Type.array(Type.interval()), columnIndex);
606+
return getIntervalListInternal(columnIndex);
607+
}
608+
609+
@Override
610+
public List<Interval> getIntervalList(String columnName) {
611+
int columnIndex = getColumnIndex(columnName);
612+
checkNonNullOfType(columnIndex, Type.array(Type.interval()), columnName);
613+
return getIntervalListInternal(columnIndex);
614+
}
615+
586616
@Override
587617
public List<Struct> getStructList(int columnIndex) {
588618
checkNonNullArrayOfStruct(columnIndex, columnIndex);

google-cloud-spanner/src/main/java/com/google/cloud/spanner/ForwardingStructReader.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,18 @@ public Date getDate(String columnName) {
231231
return delegate.get().getDate(columnName);
232232
}
233233

234+
@Override
235+
public Interval getInterval(int columnIndex) {
236+
checkValidState();
237+
return delegate.get().getInterval(columnIndex);
238+
}
239+
240+
@Override
241+
public Interval getInterval(String columnName) {
242+
checkValidState();
243+
return delegate.get().getInterval(columnName);
244+
}
245+
234246
@Override
235247
public boolean[] getBooleanArray(int columnIndex) {
236248
checkValidState();
@@ -409,6 +421,18 @@ public List<Date> getDateList(String columnName) {
409421
return delegate.get().getDateList(columnName);
410422
}
411423

424+
@Override
425+
public List<Interval> getIntervalList(int columnIndex) {
426+
checkValidState();
427+
return delegate.get().getIntervalList(columnIndex);
428+
}
429+
430+
@Override
431+
public List<Interval> getIntervalList(String columnName) {
432+
checkValidState();
433+
return delegate.get().getIntervalList(columnName);
434+
}
435+
412436
@Override
413437
public <T extends AbstractMessage> List<T> getProtoMessageList(int columnIndex, T message) {
414438
checkValidState();

google-cloud-spanner/src/main/java/com/google/cloud/spanner/GrpcStruct.java

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ private Object writeReplace() {
131131
case DATE:
132132
builder.set(fieldName).to((Date) value);
133133
break;
134+
case INTERVAL:
135+
builder.set(fieldName).to((Interval) value);
136+
break;
134137
case ARRAY:
135138
final Type elementType = fieldType.getArrayElementType();
136139
switch (elementType.getCode()) {
@@ -184,6 +187,9 @@ private Object writeReplace() {
184187
case DATE:
185188
builder.set(fieldName).toDateArray((Iterable<Date>) value);
186189
break;
190+
case INTERVAL:
191+
builder.set(fieldName).toIntervalArray((Iterable<Interval>) value);
192+
break;
187193
case STRUCT:
188194
builder.set(fieldName).toStructArray(elementType, (Iterable<Struct>) value);
189195
break;
@@ -298,6 +304,9 @@ private static Object decodeValue(Type fieldType, com.google.protobuf.Value prot
298304
case DATE:
299305
checkType(fieldType, proto, KindCase.STRING_VALUE);
300306
return Date.parseDate(proto.getStringValue());
307+
case INTERVAL:
308+
checkType(fieldType, proto, KindCase.STRING_VALUE);
309+
return Interval.parseFromString(proto.getStringValue());
301310
case ARRAY:
302311
checkType(fieldType, proto, KindCase.LIST_VALUE);
303312
ListValue listValue = proto.getListValue();
@@ -347,6 +356,7 @@ static Object decodeArrayValue(Type elementType, ListValue listValue) {
347356
case BYTES:
348357
case TIMESTAMP:
349358
case DATE:
359+
case INTERVAL:
350360
case STRUCT:
351361
case PROTO:
352362
return Lists.transform(listValue.getValuesList(), input -> decodeValue(elementType, input));
@@ -503,6 +513,12 @@ protected Date getDateInternal(int columnIndex) {
503513
return (Date) rowData.get(columnIndex);
504514
}
505515

516+
@Override
517+
protected Interval getIntervalInternal(int columnIndex) {
518+
ensureDecoded(columnIndex);
519+
return (Interval) rowData.get(columnIndex);
520+
}
521+
506522
private boolean isUnrecognizedType(int columnIndex) {
507523
return type.getStructFields().get(columnIndex).getType().getCode() == Code.UNRECOGNIZED;
508524
}
@@ -624,6 +640,8 @@ protected Value getValueInternal(int columnIndex) {
624640
return Value.timestamp(isNull ? null : getTimestampInternal(columnIndex));
625641
case DATE:
626642
return Value.date(isNull ? null : getDateInternal(columnIndex));
643+
case INTERVAL:
644+
return Value.interval(isNull ? null : getIntervalInternal(columnIndex));
627645
case STRUCT:
628646
return Value.struct(isNull ? null : getStructInternal(columnIndex));
629647
case UNRECOGNIZED:
@@ -664,6 +682,8 @@ protected Value getValueInternal(int columnIndex) {
664682
return Value.timestampArray(isNull ? null : getTimestampListInternal(columnIndex));
665683
case DATE:
666684
return Value.dateArray(isNull ? null : getDateListInternal(columnIndex));
685+
case INTERVAL:
686+
return Value.intervalArray(isNull ? null : getIntervalListInternal(columnIndex));
667687
case STRUCT:
668688
return Value.structArray(
669689
elementType, isNull ? null : getStructListInternal(columnIndex));
@@ -847,6 +867,13 @@ protected List<Date> getDateListInternal(int columnIndex) {
847867
return Collections.unmodifiableList((List<Date>) rowData.get(columnIndex));
848868
}
849869

870+
@Override
871+
@SuppressWarnings("unchecked") // We know ARRAY<Interval> produces a List<Interval>.
872+
protected List<Interval> getIntervalListInternal(int columnIndex) {
873+
ensureDecoded(columnIndex);
874+
return Collections.unmodifiableList((List<Interval>) rowData.get(columnIndex));
875+
}
876+
850877
@Override
851878
@SuppressWarnings("unchecked") // We know ARRAY<STRUCT<...>> produces a List<STRUCT>.
852879
protected List<Struct> getStructListInternal(int columnIndex) {

0 commit comments

Comments
 (0)