KEMBAR78
Bug in table.getRows when using different selectedFields in consecutive calls · Issue #1433 · googleapis/nodejs-bigquery · GitHub
Skip to content

Bug in table.getRows when using different selectedFields in consecutive calls #1433

@jonathan-lande-cyera

Description

@jonathan-lande-cyera

Please make sure you have searched for information in the following guides.

A screenshot that you have tested with "Try this API".

https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa

image

Link to the code that reproduces this issue. A link to a public Github Repository or gist with a minimal reproduction.

https://gist.github.com/jonathan-lande-cyera/900eba3c30f58394ad2bffe4f5d2dffa
OR
https://github.com/jonathan-lande-cyera/nodejs-bigquery/blob/a9b6215aecd3227e009f6808c798f4661754ab55/test/table.ts#L2193C1-L2233C8

A step-by-step description of how to reproduce the issue, based on the linked reproduction.

  1. Copy code from gist into test/table.ts under describe('getRows')
  2. Run test "should return selected fields after consecutive requests"
  3. The test fails and an exception is raised

A clear and concise description of what the bug is, and what you expected to happen.

When calling table.getRows more than once, each time with different selectedFields - the method fails with:

TypeError: Cannot read properties of undefined (reading 'mode')
      at <anonymous> (src/bigquery.ts:615:25)
      at Array.map (<anonymous>)
      at mergeSchema (src/bigquery.ts:612:21)
      at Array.map (<anonymous>)
      at Function.mergeSchemaWithRows_ (src/bigquery.ts:609:25)
      at onComplete (src/table.ts:1843:23)
      at <anonymous> (src/table.ts:1891:9)
      at Table.table.request (test/table.ts:2220:11)
      at Table.getRows (src/table.ts:1860:10)
      at Table.wrapper (node_modules/@google-cloud/promisify/build/src/index.js:30:35)
      at Context.<anonymous> (test/table.ts:2222:15)
      at process.processImmediate (node:internal/timers:476:21)
      at process.callbackTrampoline (node:internal/async_hooks:128:17)

It looks like the table object's metadata.schema.fields is affected by the previous call to getRows and becomes an empty array on the second call, causing the method to fail.

A clear and concise description WHY you expect this behavior, i.e., was it a recent change, there is documentation that points to this behavior, etc. **

Calling getRows with valid selectedFields values corresponding to existing columns in the table shouldn't throw an exception.

Metadata

Metadata

Assignees

Labels

api: bigqueryIssues related to the googleapis/nodejs-bigquery API.priority: p2Moderately-important priority. Fix may not be included in next release.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions