Skip to content

Commit 1e99310

Browse files
committed
Remove PG.OID external getters.
User should use Long/LongArray/LongList getters instead to get PgOid/PgOidArray/PgOidList columns.
1 parent 358e8d3 commit 1e99310

16 files changed

+62
-316
lines changed

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

-25
Original file line numberDiff line numberDiff line change
@@ -342,31 +342,6 @@ Double get(double[] array, int i) {
342342
}
343343
}
344344

345-
static class PgOidArray extends PrimitiveArray<Long, long[]> {
346-
PgOidArray(ListValue protoList) {
347-
super(protoList);
348-
}
349-
350-
PgOidArray(long[] data, BitSet nulls) {
351-
super(data, nulls, data.length);
352-
}
353-
354-
@Override
355-
long[] newArray(int size) {
356-
return new long[size];
357-
}
358-
359-
@Override
360-
void setProto(long[] array, int i, com.google.protobuf.Value protoValue) {
361-
array[i] = Long.parseLong(protoValue.getStringValue());
362-
}
363-
364-
@Override
365-
Long get(long[] array, int i) {
366-
return array[i];
367-
}
368-
}
369-
370345
protected abstract GrpcStruct currRow();
371346

372347
@Override

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

+32-54
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ protected String getPgJsonbInternal(int columnIndex) {
6161
throw new UnsupportedOperationException("Not implemented");
6262
}
6363

64-
protected abstract long getPgOidInternal(int columnIndex) {
64+
protected long getPgOidInternal(int columnIndex) {
6565
throw new UnsupportedOperationException("Not implemented");
6666
}
6767

@@ -126,11 +126,11 @@ protected List<String> getPgJsonbListInternal(int columnIndex) {
126126
throw new UnsupportedOperationException("Not implemented");
127127
}
128128

129-
protected abstract long[] getPgOidArrayInternal(int columnIndex) {
129+
protected long[] getPgOidArrayInternal(int columnIndex) {
130130
throw new UnsupportedOperationException("Not implemented");
131131
}
132132

133-
protected abstract List<Long> getPgOidListInternal(int columnIndex) {
133+
protected List<Long> getPgOidListInternal(int columnIndex) {
134134
throw new UnsupportedOperationException("Not implemented");
135135
}
136136

@@ -177,15 +177,20 @@ public boolean getBoolean(String columnName) {
177177

178178
@Override
179179
public long getLong(int columnIndex) {
180-
checkNonNullOfCodes(columnIndex, Arrays.asList(Code.ENUM, Code.INT64), columnIndex);
181-
return getLongInternal(columnIndex);
180+
checkNonNullOfCodes(
181+
columnIndex, Arrays.asList(Code.ENUM, Code.PG_OID, Code.INT64), columnIndex);
182+
return getColumnType(columnIndex).getCode() == Code.PG_OID
183+
? getPgOidInternal(columnIndex)
184+
: getLongInternal(columnIndex);
182185
}
183186

184187
@Override
185188
public long getLong(String columnName) {
186189
int columnIndex = getColumnIndex(columnName);
187-
checkNonNullOfCodes(columnIndex, Arrays.asList(Code.ENUM, Code.INT64), columnName);
188-
return getLongInternal(columnIndex);
190+
checkNonNullOfCodes(columnIndex, Arrays.asList(Code.ENUM, Code.PG_OID, Code.INT64), columnName);
191+
return getColumnType(columnIndex).getCode() == Code.PG_OID
192+
? getPgOidInternal(columnIndex)
193+
: getLongInternal(columnIndex);
189194
}
190195

191196
@Override
@@ -271,19 +276,6 @@ public String getPgJsonb(String columnName) {
271276
return getPgJsonbInternal(columnIndex);
272277
}
273278

274-
@Override
275-
public long getPgOid(int columnIndex) {
276-
checkNonNullOfType(columnIndex, Type.pgOid(), columnIndex);
277-
return getPgOidInternal(columnIndex);
278-
}
279-
280-
@Override
281-
public long getPgOid(String columnName) {
282-
int columnIndex = getColumnIndex(columnName);
283-
checkNonNullOfType(columnIndex, Type.pgOid(), columnName);
284-
return getPgOidInternal(columnIndex);
285-
}
286-
287279
@Override
288280
public ByteArray getBytes(int columnIndex) {
289281
checkNonNullOfCodes(columnIndex, Arrays.asList(Code.PROTO, Code.BYTES), columnIndex);
@@ -391,31 +383,43 @@ public List<Boolean> getBooleanList(String columnName) {
391383
@Override
392384
public long[] getLongArray(int columnIndex) {
393385
checkNonNullOfCodes(columnIndex, Collections.singletonList(Code.ARRAY), columnIndex);
394-
checkArrayElementType(columnIndex, Arrays.asList(Code.ENUM, Code.INT64), columnIndex);
395-
return getLongArrayInternal(columnIndex);
386+
checkArrayElementType(
387+
columnIndex, Arrays.asList(Code.ENUM, Code.PG_OID, Code.INT64), columnIndex);
388+
return getColumnType(columnIndex).getArrayElementType().getCode() == Code.PG_OID
389+
? getPgOidArrayInternal(columnIndex)
390+
: getLongArrayInternal(columnIndex);
396391
}
397392

398393
@Override
399394
public long[] getLongArray(String columnName) {
400395
int columnIndex = getColumnIndex(columnName);
401396
checkNonNullOfCodes(columnIndex, Collections.singletonList(Code.ARRAY), columnName);
402-
checkArrayElementType(columnIndex, Arrays.asList(Code.ENUM, Code.INT64), columnName);
403-
return getLongArrayInternal(columnIndex);
397+
checkArrayElementType(
398+
columnIndex, Arrays.asList(Code.ENUM, Code.PG_OID, Code.INT64), columnName);
399+
return getColumnType(columnIndex).getArrayElementType().getCode() == Code.PG_OID
400+
? getPgOidArrayInternal(columnIndex)
401+
: getLongArrayInternal(columnIndex);
404402
}
405403

406404
@Override
407405
public List<Long> getLongList(int columnIndex) {
408406
checkNonNullOfCodes(columnIndex, Collections.singletonList(Code.ARRAY), columnIndex);
409-
checkArrayElementType(columnIndex, Arrays.asList(Code.ENUM, Code.INT64), columnIndex);
410-
return getLongListInternal(columnIndex);
407+
checkArrayElementType(
408+
columnIndex, Arrays.asList(Code.ENUM, Code.PG_OID, Code.INT64), columnIndex);
409+
return getColumnType(columnIndex).getArrayElementType().getCode() == Code.PG_OID
410+
? getPgOidListInternal(columnIndex)
411+
: getLongListInternal(columnIndex);
411412
}
412413

413414
@Override
414415
public List<Long> getLongList(String columnName) {
415416
int columnIndex = getColumnIndex(columnName);
416417
checkNonNullOfCodes(columnIndex, Collections.singletonList(Code.ARRAY), columnName);
417-
checkArrayElementType(columnIndex, Arrays.asList(Code.ENUM, Code.INT64), columnName);
418-
return getLongListInternal(columnIndex);
418+
checkArrayElementType(
419+
columnIndex, Arrays.asList(Code.ENUM, Code.PG_OID, Code.INT64), columnName);
420+
return getColumnType(columnIndex).getArrayElementType().getCode() == Code.PG_OID
421+
? getPgOidListInternal(columnIndex)
422+
: getLongListInternal(columnIndex);
419423
}
420424

421425
@Override
@@ -530,32 +534,6 @@ public List<String> getPgJsonbList(String columnName) {
530534
return getPgJsonbListInternal(columnIndex);
531535
}
532536

533-
@Override
534-
public long[] getPgOidArray(int columnIndex) {
535-
checkNonNullOfType(columnIndex, Type.array(Type.pgOid()), columnIndex);
536-
return getPgOidArrayInternal(columnIndex);
537-
}
538-
539-
@Override
540-
public long[] getPgOidArray(String columnName) {
541-
int columnIndex = getColumnIndex(columnName);
542-
checkNonNullOfType(columnIndex, Type.array(Type.pgOid()), columnName);
543-
return getPgOidArrayInternal(columnIndex);
544-
}
545-
546-
@Override
547-
public List<Long> getPgOidList(int columnIndex) {
548-
checkNonNullOfType(columnIndex, Type.array(Type.pgOid()), columnIndex);
549-
return getPgOidListInternal(columnIndex);
550-
}
551-
552-
@Override
553-
public List<Long> getPgOidList(String columnName) {
554-
int columnIndex = getColumnIndex(columnName);
555-
checkNonNullOfType(columnIndex, Type.array(Type.pgOid()), columnName);
556-
return getPgOidListInternal(columnIndex);
557-
}
558-
559537
@Override
560538
public List<ByteArray> getBytesList(int columnIndex) {
561539
checkNonNullOfCodes(columnIndex, Collections.singletonList(Code.ARRAY), columnIndex);

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

-35
Original file line numberDiff line numberDiff line change
@@ -195,18 +195,6 @@ public String getPgJsonb(String columnName) {
195195
return delegate.get().getPgJsonb(columnName);
196196
}
197197

198-
@Override
199-
public long getPgOid(int columnIndex) {
200-
checkValidState();
201-
return delegate.get().getPgOid(columnIndex);
202-
}
203-
204-
@Override
205-
public long getPgOid(String columnName) {
206-
checkValidState();
207-
return delegate.get().getPgOid(columnName);
208-
}
209-
210198
@Override
211199
public ByteArray getBytes(int columnIndex) {
212200
checkValidState();
@@ -385,29 +373,6 @@ public List<String> getPgJsonbList(String columnName) {
385373
return delegate.get().getPgJsonbList(columnName);
386374
}
387375

388-
public long[] getPgOidArray(int columnIndex) {
389-
checkValidState();
390-
return delegate.get().getPgOidArray(columnIndex);
391-
}
392-
393-
@Override
394-
public long[] getPgOidArray(String columnName) {
395-
checkValidState();
396-
return delegate.get().getPgOidArray(columnName);
397-
}
398-
399-
@Override
400-
public List<Long> getPgOidList(int columnIndex) {
401-
checkValidState();
402-
return delegate.get().getPgOidList(columnIndex);
403-
}
404-
405-
@Override
406-
public List<Long> getPgOidList(String columnName) {
407-
checkValidState();
408-
return delegate.get().getPgOidList(columnName);
409-
}
410-
411376
@Override
412377
public List<ByteArray> getBytesList(int columnIndex) {
413378
checkValidState();

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

+5-7
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import com.google.cloud.spanner.AbstractResultSet.Float64Array;
3030
import com.google.cloud.spanner.AbstractResultSet.Int64Array;
3131
import com.google.cloud.spanner.AbstractResultSet.LazyByteArray;
32-
import com.google.cloud.spanner.AbstractResultSet.PgOidArray;
3332
import com.google.cloud.spanner.Type.Code;
3433
import com.google.cloud.spanner.Type.StructField;
3534
import com.google.common.base.Preconditions;
@@ -327,6 +326,7 @@ private static Struct decodeStructValue(Type structType, ListValue structValue)
327326
static Object decodeArrayValue(Type elementType, ListValue listValue) {
328327
switch (elementType.getCode()) {
329328
case INT64:
329+
case PG_OID:
330330
case ENUM:
331331
// For int64/float64/float32/enum types, use custom containers.
332332
// These avoid wrapper object creation for non-null arrays.
@@ -347,8 +347,6 @@ static Object decodeArrayValue(Type elementType, ListValue listValue) {
347347
case STRUCT:
348348
case PROTO:
349349
return Lists.transform(listValue.getValuesList(), input -> decodeValue(elementType, input));
350-
case PG_OID:
351-
return new PgOidArray(listValue);
352350
default:
353351
throw new AssertionError("Unhandled type code: " + elementType.getCode());
354352
}
@@ -580,7 +578,7 @@ protected Value getValueInternal(int columnIndex) {
580578
case PG_JSONB:
581579
return Value.pgJsonb(isNull ? null : getPgJsonbInternal(columnIndex));
582580
case PG_OID:
583-
return Value.pgOid(isNull ? null : getPgOidInternal(columnIndex));
581+
return Value.pgOid(isNull ? null : getLongInternal(columnIndex));
584582
case BYTES:
585583
return Value.internalBytes(isNull ? null : getLazyBytesInternal(columnIndex));
586584
case PROTO:
@@ -617,7 +615,7 @@ protected Value getValueInternal(int columnIndex) {
617615
case PG_JSONB:
618616
return Value.pgJsonbArray(isNull ? null : getPgJsonbListInternal(columnIndex));
619617
case PG_OID:
620-
return Value.pgOidArray(isNull ? null : getPgOidListInternal(columnIndex));
618+
return Value.pgOidArray(isNull ? null : getLongListInternal(columnIndex));
621619
case BYTES:
622620
return Value.bytesArray(isNull ? null : getBytesListInternal(columnIndex));
623621
case PROTO:
@@ -792,9 +790,9 @@ protected List<String> getPgJsonbListInternal(int columnIndex) {
792790
}
793791

794792
@Override
795-
protected PgOidArray getPgOidListInternal(int columnIndex) {
793+
protected Int64Array getPgOidListInternal(int columnIndex) {
796794
ensureDecoded(columnIndex);
797-
return (PgOidArray) rowData.get(columnIndex);
795+
return (Int64Array) rowData.get(columnIndex);
798796
}
799797

800798
@Override

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

-30
Original file line numberDiff line numberDiff line change
@@ -296,16 +296,6 @@ public String getPgJsonb(String columnName) {
296296
return getCurrentRowAsStruct().getPgJsonb(columnName);
297297
}
298298

299-
@Override
300-
public long getPgOid(int columnIndex) {
301-
return getCurrentRowAsStruct().getPgOid(columnIndex);
302-
}
303-
304-
@Override
305-
public long getPgOid(String columnName) {
306-
return getCurrentRowAsStruct().getPgOid(columnName);
307-
}
308-
309299
@Override
310300
public ByteArray getBytes(int columnIndex) {
311301
return getCurrentRowAsStruct().getBytes(columnIndex);
@@ -488,26 +478,6 @@ public List<String> getPgJsonbList(String columnName) {
488478
return getCurrentRowAsStruct().getPgJsonbList(columnName);
489479
}
490480

491-
@Override
492-
public long[] getPgOidArray(int columnIndex) {
493-
return getCurrentRowAsStruct().getPgOidArray(columnIndex);
494-
}
495-
496-
@Override
497-
public long[] getPgOidArray(String columnName) {
498-
return getCurrentRowAsStruct().getPgOidArray(columnName);
499-
}
500-
501-
@Override
502-
public List<Long> getPgOidList(int columnIndex) {
503-
return getCurrentRowAsStruct().getPgOidList(columnIndex);
504-
}
505-
506-
@Override
507-
public List<Long> getPgOidList(String columnName) {
508-
return getCurrentRowAsStruct().getPgOidList(columnName);
509-
}
510-
511481
@Override
512482
public List<ByteArray> getBytesList(int columnIndex) {
513483
return getCurrentRowAsStruct().getBytesList(columnIndex);

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

+2-4
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,7 @@ private Object getAsObject(int columnIndex) {
411411
case BOOL:
412412
return getBooleanInternal(columnIndex);
413413
case INT64:
414+
case PG_OID:
414415
case ENUM:
415416
return getLongInternal(columnIndex);
416417
case FLOAT32:
@@ -427,8 +428,6 @@ private Object getAsObject(int columnIndex) {
427428
return getJsonInternal(columnIndex);
428429
case PG_JSONB:
429430
return getPgJsonbInternal(columnIndex);
430-
case PG_OID:
431-
return getPgOidInternal(columnIndex);
432431
case BYTES:
433432
case PROTO:
434433
return getBytesInternal(columnIndex);
@@ -443,6 +442,7 @@ private Object getAsObject(int columnIndex) {
443442
case BOOL:
444443
return getBooleanListInternal(columnIndex);
445444
case INT64:
445+
case PG_OID:
446446
case ENUM:
447447
return getLongListInternal(columnIndex);
448448
case FLOAT32:
@@ -459,8 +459,6 @@ private Object getAsObject(int columnIndex) {
459459
return getJsonListInternal(columnIndex);
460460
case PG_JSONB:
461461
return getPgJsonbListInternal(columnIndex);
462-
case PG_OID:
463-
return getPgOidListInternal(columnIndex);
464462
case BYTES:
465463
case PROTO:
466464
return getBytesListInternal(columnIndex);

0 commit comments

Comments
 (0)