googleapis / googleapis/google-cloud-java

[java-bigquerystorage] ReadSession: selectedFields on null record coalesced to 0 value

Ouverte
#11,970 5 commentaires 0 réactions 1 personne assignée Réclamée par @Neenu1995 Voir sur GitHub
api: bigquerystorage priority: p3
Langage dominant
Java
Étoiles
2.1k
Forks
1.2k
Merge moyen
1 j 23 h
PR mergées (30 j)
154

Description

#### Environment details

OS type and version: Linux, Ubuntu 22.04
Java version: 11
version(s): 2.41.1, 2.44.0

#### Steps to reproduce

Considering this table
![image](https://github.com/googleapis/google-cloud-java/assets/2845540/a5179b6c-40d0-48a5-8184-417b65a7d466)

With the following data
![image](https://github.com/googleapis/google-cloud-java/assets/2845540/76ddba5a-b0f9-4d21-bd6f-4b0d48c96830)

Reading the table with `AVRO` format without any selected fields gives the expected result:
```json
{"required": {"int": 0, "string": "0"}, "optional": null, "repeated": []}
{"required": {"int": 1, "string": "1"}, "optional": {"int": 1, "string": "1"}, "repeated": [{"int": 1, "string": "1"}]}
{"required": {"int": 2, "string": "2"}, "optional": {"int": 2, "string": "2"}, "repeated": [{"int": 2, "string": "2"}]}
{"required": {"int": 3, "string": "3"}, "optional": {"int": 3, "string": "3"}, "repeated": [{"int": 3, "string": "3"}]}
{"required": {"int": 4, "string": "4"}, "optional": {"int": 4, "string": "4"}, "repeated": [{"int": 4, "string": "4"}]}
{"required": {"int": 5, "string": "5"}, "optional": {"int": 5, "string": "5"}, "repeated": [{"int": 5, "string": "5"}]}
{"required": {"int": 6, "string": "6"}, "optional": {"int": 6, "string": "6"}, "repeated": [{"int": 6, "string": "6"}]}
{"required": {"int": 7, "string": "7"}, "optional": {"int": 7, "string": "7"}, "repeated": [{"int": 7, "string": "7"}]}
{"required": {"int": 8, "string": "8"}, "optional": {"int": 8, "string": "8"}, "repeated": [{"int": 8, "string": "8"}]}
{"required": {"int": 9, "string": "9"}, "optional": {"int": 9, "string": "9"}, "repeated": [{"int": 9, "string": "9"}]}
```

When now setting the selected fields to `["required", "optional.int"]`, the library returns the following
```json
{"required": {"int": 0, "string": "0"}, "optional": {"int": 0}}
{"required": {"int": 1, "string": "1"}, "optional": {"int": 1}}
{"required": {"int": 2, "string": "2"}, "optional": {"int": 2}}
{"required": {"int": 3, "string": "3"}, "optional": {"int": 3}}
{"required": {"int": 4, "string": "4"}, "optional": {"int": 4}}
{"required": {"int": 5, "string": "5"}, "optional": {"int": 5}}
{"required": {"int": 6, "string": "6"}, "optional": {"int": 6}}
{"required": {"int": 7, "string": "7"}, "optional": {"int": 7}}
{"required": {"int": 8, "string": "8"}, "optional": {"int": 8}}
{"required": {"int": 9, "string": "9"}, "optional": {"int": 9}}
```

The 1st record is expected to return `{"required": {"int": 0, "string": "0"}, "optional": null}` instead. Somehow its value gets coalesced into 0.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.