Skip to content

[Bug]: BQ TableRow does not accept column named 'f' #33531

Open
@RustedBones

Description

@RustedBones

What happened?

When working with a BQ table with a column named 'f', construction of a TableRow object fails with

java.lang.IllegalArgumentException: Can not set java.util.List field com.google.api.services.bigquery.model.TableRow.f to java.lang.String

This happens because TableRow is a GenericJson and has a key field named f expecting a List<TableCell>.

When reading the javadoc for TableRow, it seems to me that this model is supposed to represent a BQ resultset in the form

{
  "f": [{"v":  1}, {"v": "value"}]
}

beam abuses the GenericJson capability and relies on the unknown fields to encode the result in the form

{
   "column1": 1,
   "column2": "value"
}

Issue Priority

Priority: 2 (default / most bugs should be filed as P2)

Issue Components

  • Component: Python SDK
  • Component: Java SDK
  • Component: Go SDK
  • Component: Typescript SDK
  • Component: IO connector
  • Component: Beam YAML
  • Component: Beam examples
  • Component: Beam playground
  • Component: Beam katas
  • Component: Website
  • Component: Infrastructure
  • Component: Spark Runner
  • Component: Flink Runner
  • Component: Samza Runner
  • Component: Twister2 Runner
  • Component: Hazelcast Jet Runner
  • Component: Google Cloud Dataflow Runner

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions