# Query Resource Classes

3.42.1 (latest) 3.42.0 3.41.0 3.40.1 3.39.0 3.38.0 3.37.0 3.36.0 3.35.1 3.34.0 3.33.0 3.31.0 3.30.0 3.29.0 3.27.0 3.26.0 3.25.0 3.24.0 3.23.1 3.22.0 3.21.0 3.20.1 3.19.0 3.18.0 3.17.2 3.16.0 3.15.0 3.14.1 3.13.0 3.12.0 3.11.4 3.4.0 3.3.6 3.2.0 3.1.0 3.0.1 2.34.4 2.33.0 2.32.0 2.31.0 2.30.1 2.29.0 2.28.1 2.27.1 2.26.0 2.25.2 2.24.1 2.23.3 2.22.1 2.21.0 2.20.0 2.19.0 2.18.0 2.17.0 2.16.1 2.15.0 2.14.0 2.13.1 2.12.0 2.11.0 2.10.0 2.9.0 2.8.0 2.7.0 2.6.2 2.5.0 2.4.0 2.3.1 2.2.0 2.1.0 2.0.0 1.28.2 1.27.2 1.26.1 1.25.0 1.24.0 1.23.1 1.22.0 1.21.0 1.20.0 1.19.0 1.18.0 1.17.0 1.16.0 BigQuery query processing.

### *class* google.cloud.bigquery.query.ArrayQueryParameter(name, array_type, values)

Named / positional query parameters for array values.

- **Parameters**

  - **name** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- Parameter name, used via `@foo` syntax. If None, the
    parameter can only be addressed via position (`?`).

  - **array_type** (*Union* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*, \*\*ScalarQueryParameterType* *, \*\*StructQueryParameterType* *\]* ) -- The type of array elements. If given as a string, it must be one of
    'STRING', 'INT64', 'FLOAT64', 'NUMERIC', 'BIGNUMERIC', 'BOOL',
    'TIMESTAMP', 'DATE', or 'STRUCT'/'RECORD'.
    If the type is `'STRUCT'`/`'RECORD'` and `values` is empty,
    the exact item type cannot be deduced, thus a `StructQueryParameterType`
    instance needs to be passed in.

  - **values** (*List* *\[* *appropriate type* *\]*) -- The parameter array values.

#### *classmethod* from_api_repr(resource: [dict](https://docs.python.org/3/library/stdtypes.html#dict))

Factory: construct parameter from JSON resource.

- **Parameters**

  **resource** (*Dict*) -- JSON mapping of parameter
- **Returns**

  Instance
- **Return type**

  google.cloud.bigquery.query.ArrayQueryParameter

#### *classmethod* positional(array_type: [str](https://docs.python.org/3/library/stdtypes.html#str), values: [list](https://docs.python.org/3/library/stdtypes.html#list))

Factory for positional parameters.

- **Parameters**

  - **array_type** (*Union* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*, \*\*ScalarQueryParameterType* *, \*\*StructQueryParameterType* *\]* ) -- The type of array elements. If given as a string, it must be one of
    'STRING', 'INT64', 'FLOAT64', 'NUMERIC', 'BIGNUMERIC',
    'BOOL', 'TIMESTAMP', 'DATE', or 'STRUCT'/'RECORD'.
    If the type is `'STRUCT'`/`'RECORD'` and `values` is empty,
    the exact item type cannot be deduced, thus a `StructQueryParameterType`
    instance needs to be passed in.

  - **values** (*List* *\[* *appropriate type* *\]*) -- The parameter array values.

- **Returns**

  Instance without name
- **Return type**

  google.cloud.bigquery.query.ArrayQueryParameter

#### to_api_repr()

Construct JSON API representation for the parameter.

- **Returns**

  JSON mapping
- **Return type**

  Dict

### *class* google.cloud.bigquery.query.ArrayQueryParameterType(array_type, \*, name=None, description=None)

Type representation for array query parameters.

- **Parameters**

  - **array_type** (*Union* *\[* *ScalarQueryParameterType* *, \*\*StructQueryParameterType* *\]*) -- The type of array elements.

  - **name** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- The name of the query parameter. Primarily used if the type is
    one of the subfields in `StructQueryParameterType` instance.

  - **description** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- The query parameter description. Primarily used if the type is
    one of the subfields in `StructQueryParameterType` instance.

#### *classmethod* from_api_repr(resource)

Factory: construct parameter type from JSON resource.

- **Parameters**

  **resource** (*Dict*) -- JSON mapping of parameter
- **Returns**

  Instance
- **Return type**

  google.cloud.bigquery.query.ArrayQueryParameterType

#### to_api_repr()

Construct JSON API representation for the parameter type.

- **Returns**

  JSON mapping
- **Return type**

  Dict

### *class* google.cloud.bigquery.query.ConnectionProperty(key: [str](https://docs.python.org/3/library/stdtypes.html#str) = '', value: [str](https://docs.python.org/3/library/stdtypes.html#str) = '')

A connection-level property to customize query behavior.

See
<https://cloud.google.com/bigquery/docs/reference/rest/v2/ConnectionProperty>

- **Parameters**

  - **key** -- The key of the property to set, for example, `'time_zone'` or
    `'session_id'`.

  - **value** -- The value of the property to set.

#### *classmethod* from_api_repr(resource)

Construct `ConnectionProperty`
from JSON resource.

- **Parameters**

  **resource** -- JSON representation.
- **Returns**

  A connection property.

#### *property* key(*: \[str\](<https://docs.python.org/3/library/stdtypes.html#str>* )

Name of the property.

For example:

- `time_zone`

- `session_id`

#### to_api_repr()

Construct JSON API representation for the connection property.

- **Returns**

  JSON mapping

#### *property* value(*: \[str\](<https://docs.python.org/3/library/stdtypes.html#str>* )

Value of the property.

### *class* google.cloud.bigquery.query.RangeQueryParameter(range_element_type, start=None, end=None, name=None)

Named / positional query parameters for range values.

- **Parameters**

  - **range_element_type** (*Union* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*, \*\*RangeQueryParameterType* *\]*) -- The type of range elements. It must be one of 'TIMESTAMP',
    'DATE', or 'DATETIME'.

  - **start** (*Optional* *\[* *Union* *\[* *ScalarQueryParameter* *, \*\[* str*\](<https://docs.python.org/3/library/stdtypes.html#str>)* \]*\*\]*) -- The start of the range value. Must be the same type as
    range_element_type. If not provided, it's interpreted as UNBOUNDED.

  - **end** (*Optional* *\[* *Union* *\[* *ScalarQueryParameter* *, \*\[* str*\](<https://docs.python.org/3/library/stdtypes.html#str>)* \]*\*\]*) -- The end of the range value. Must be the same type as
    range_element_type. If not provided, it's interpreted as UNBOUNDED.

  - **name** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- Parameter name, used via `@foo` syntax. If None, the
    parameter can only be addressed via position (`?`).

#### *classmethod* from_api_repr(resource: [dict](https://docs.python.org/3/library/stdtypes.html#dict))

Factory: construct parameter from JSON resource.

- **Parameters**

  **resource** (*Dict*) -- JSON mapping of parameter
- **Returns**

  Instance
- **Return type**

  google.cloud.bigquery.query.RangeQueryParameter

#### *classmethod* positional(range_element_type, start=None, end=None)

Factory for positional parameters.

- **Parameters**

  - **range_element_type** (*Union* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*, \*\*RangeQueryParameterType* *\]*) -- The type of range elements. It must be one of 'TIMESTAMP',
    'DATE', or 'DATETIME'.

  - **start** (*Optional* *\[* *Union* *\[* *ScalarQueryParameter* *, \*\[* str*\](<https://docs.python.org/3/library/stdtypes.html#str>)* \]*\*\]*) -- The start of the range value. Must be the same type as
    range_element_type. If not provided, it's interpreted as
    UNBOUNDED.

  - **end** (*Optional* *\[* *Union* *\[* *ScalarQueryParameter* *, \*\[* str*\](<https://docs.python.org/3/library/stdtypes.html#str>)* \]*\*\]*) -- The end of the range value. Must be the same type as
    range_element_type. If not provided, it's interpreted as
    UNBOUNDED.

- **Returns**

  Instance without
  name.
- **Return type**

  google.cloud.bigquery.query.RangeQueryParameter

#### to_api_repr()

Construct JSON API representation for the parameter.

- **Returns**

  JSON mapping
- **Return type**

  Dict

### *class* google.cloud.bigquery.query.RangeQueryParameterType(type_, \*, name=None, description=None)

Type representation for range query parameters.

- **Parameters**

  - **type** (*Union* *\[* *ScalarQueryParameterType* *, \*\[* str*\](<https://docs.python.org/3/library/stdtypes.html#str>)*\]\*) -- Type of range element, must be one of 'TIMESTAMP', 'DATETIME', or
    'DATE'.

  - **name** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- The name of the query parameter. Primarily used if the type is
    one of the subfields in `StructQueryParameterType` instance.

  - **description** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- The query parameter description. Primarily used if the type is
    one of the subfields in `StructQueryParameterType` instance.

#### *classmethod* from_api_repr(resource)

Factory: construct parameter type from JSON resource.

- **Parameters**

  **resource** (*Dict*) -- JSON mapping of parameter
- **Returns**

  Instance
- **Return type**

  google.cloud.bigquery.query.RangeQueryParameterType

#### to_api_repr()

Construct JSON API representation for the parameter type.

- **Returns**

  JSON mapping
- **Return type**

  Dict

#### with_name(new_name: [Optional](https://docs.python.org/3/library/typing.html#typing.Optional)\[[str](https://docs.python.org/3/library/stdtypes.html#str)\])

Return a copy of the instance with `name` set to `new_name`.

- **Parameters**

  **name** (*Union* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*, \*\*None* *\]* ) -- The new name of the range query parameter type. If `None`,
  the existing name is cleared.
- **Returns**

  A new instance with updated name.
- **Return type**

  google.cloud.bigquery.query.RangeQueryParameterType

### *class* google.cloud.bigquery.query.ScalarQueryParameter(name: [Optional](https://docs.python.org/3/library/typing.html#typing.Optional)\[[str](https://docs.python.org/3/library/stdtypes.html#str)\], type_: [Optional](https://docs.python.org/3/library/typing.html#typing.Optional)\[[Union](https://docs.python.org/3/library/typing.html#typing.Union)\[[str](https://docs.python.org/3/library/stdtypes.html#str), google.cloud.bigquery.query.ScalarQueryParameterType\]\], value: [Optional](https://docs.python.org/3/library/typing.html#typing.Optional)\[[Union](https://docs.python.org/3/library/typing.html#typing.Union)\[[str](https://docs.python.org/3/library/stdtypes.html#str), [int](https://docs.python.org/3/library/functions.html#int), [float](https://docs.python.org/3/library/functions.html#float), [decimal.Decimal](https://docs.python.org/3/library/decimal.html#decimal.Decimal), [bool](https://docs.python.org/3/library/functions.html#bool), [datetime.datetime](https://docs.python.org/3/library/datetime.html#datetime.datetime), [datetime.date](https://docs.python.org/3/library/datetime.html#datetime.date)\]\])

Named / positional query parameters for scalar values.

- **Parameters**

  - **name** -- Parameter name, used via `@foo` syntax. If None, the
    parameter can only be addressed via position (`?`).

  - **type** -- Name of parameter type. See
    [`google.cloud.bigquery.enums.SqlTypeNames`](https://docs.cloud.google.com/python/docs/reference/bigquery/latest/enums#google.cloud.bigquery.enums.SqlTypeNames) and
    `google.cloud.bigquery.query.SqlParameterScalarTypes` for
    supported types.

  - **value** -- The scalar parameter value.

#### *classmethod* from_api_repr(resource: [dict](https://docs.python.org/3/library/stdtypes.html#dict))

Factory: construct parameter from JSON resource.

- **Parameters**

  **resource** (*Dict*) -- JSON mapping of parameter
- **Returns**

  Instance
- **Return type**

  google.cloud.bigquery.query.ScalarQueryParameter

#### *classmethod* positional(type_: [Union](https://docs.python.org/3/library/typing.html#typing.Union)\[[str](https://docs.python.org/3/library/stdtypes.html#str), google.cloud.bigquery.query.ScalarQueryParameterType\], value: [Optional](https://docs.python.org/3/library/typing.html#typing.Optional)\[[Union](https://docs.python.org/3/library/typing.html#typing.Union)\[[str](https://docs.python.org/3/library/stdtypes.html#str), [int](https://docs.python.org/3/library/functions.html#int), [float](https://docs.python.org/3/library/functions.html#float), [decimal.Decimal](https://docs.python.org/3/library/decimal.html#decimal.Decimal), [bool](https://docs.python.org/3/library/functions.html#bool), [datetime.datetime](https://docs.python.org/3/library/datetime.html#datetime.datetime), [datetime.date](https://docs.python.org/3/library/datetime.html#datetime.date)\]\])

Factory for positional paramater.

- **Parameters**

  - **type** -- Name of parameter type. One of 'STRING', 'INT64',
    'FLOAT64', 'NUMERIC', 'BIGNUMERIC', 'BOOL', 'TIMESTAMP', 'DATETIME', or
    'DATE'.

  - **value** -- The scalar parameter value.

- **Returns**

  Instance without name
- **Return type**

  google.cloud.bigquery.query.ScalarQueryParameter

#### to_api_repr()

Construct JSON API representation for the parameter.

- **Returns**

  JSON mapping
- **Return type**

  Dict

### *class* google.cloud.bigquery.query.ScalarQueryParameterType(type_, \*, name=None, description=None)

Type representation for scalar query parameters.

- **Parameters**

  - **type** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) -- One of 'STRING', 'INT64', 'FLOAT64', 'NUMERIC', 'BOOL', 'TIMESTAMP',
    'DATETIME', or 'DATE'.

  - **name** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- The name of the query parameter. Primarily used if the type is
    one of the subfields in `StructQueryParameterType` instance.

  - **description** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- The query parameter description. Primarily used if the type is
    one of the subfields in `StructQueryParameterType` instance.

#### *classmethod* from_api_repr(resource)

Factory: construct parameter type from JSON resource.

- **Parameters**

  **resource** (*Dict*) -- JSON mapping of parameter
- **Returns**

  Instance
- **Return type**

  google.cloud.bigquery.query.ScalarQueryParameterType

#### to_api_repr()

Construct JSON API representation for the parameter type.

- **Returns**

  JSON mapping
- **Return type**

  Dict

#### with_name(new_name: [Optional](https://docs.python.org/3/library/typing.html#typing.Optional)\[[str](https://docs.python.org/3/library/stdtypes.html#str)\])

Return a copy of the instance with `name` set to `new_name`.

- **Parameters**

  **name** (*Union* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*, \*\*None* *\]* ) -- The new name of the query parameter type. If `None`, the existing
  name is cleared.
- **Returns**

  A new instance with updated name.
- **Return type**

  google.cloud.bigquery.query.ScalarQueryParameterType

### *class* google.cloud.bigquery.query.SqlParameterScalarTypes()

Supported scalar SQL query parameter types as type objects.

### *class* google.cloud.bigquery.query.StructQueryParameter(name, \*sub_params)

Name / positional query parameters for struct values.

- **Parameters**

  - **name** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- Parameter name, used via `@foo` syntax. If None, the
    parameter can only be addressed via position (`?`).

  - **(** **Union** **\[** **Tuple** **\[** (*sub_params*) -- google.cloud.bigquery.query.ScalarQueryParameter,
    google.cloud.bigquery.query.ArrayQueryParameter,
    google.cloud.bigquery.query.StructQueryParameter

  - **\]** **\]** **)** -- The sub-parameters for the struct

#### *classmethod* from_api_repr(resource: [dict](https://docs.python.org/3/library/stdtypes.html#dict))

Factory: construct parameter from JSON resource.

- **Parameters**

  **resource** (*Dict*) -- JSON mapping of parameter
- **Returns**

  Instance
- **Return type**

  google.cloud.bigquery.query.StructQueryParameter

#### *classmethod* positional(\*sub_params)

Factory for positional parameters.

- **Parameters**

  - **(** **Union** **\[** **Tuple** **\[** (*sub_params*) -- google.cloud.bigquery.query.ScalarQueryParameter,
    google.cloud.bigquery.query.ArrayQueryParameter,
    google.cloud.bigquery.query.StructQueryParameter

  - **\]** **\]** **)** -- The sub-parameters for the struct

- **Returns**

  Instance without name
- **Return type**

  google.cloud.bigquery.query.StructQueryParameter

#### to_api_repr()

Construct JSON API representation for the parameter.

- **Returns**

  JSON mapping
- **Return type**

  Dict

### *class* google.cloud.bigquery.query.StructQueryParameterType(\*fields, name=None, description=None)

Type representation for struct query parameters.

- **Parameters**

  - **fields** (*Iterable* *\[* *Union* *\[ \*\*ArrayQueryParameterType* *, \*\*ScalarQueryParameterType* *, \*\*StructQueryParameterType* \* \]*\*\]*) -- An non-empty iterable describing the struct's field types.

  - **name** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- The name of the query parameter. Primarily used if the type is
    one of the subfields in `StructQueryParameterType` instance.

  - **description** (*Optional* *\[* [*str*](https://docs.python.org/3/library/stdtypes.html#str)*\]* ) -- The query parameter description. Primarily used if the type is
    one of the subfields in `StructQueryParameterType` instance.

#### *classmethod* from_api_repr(resource)

Factory: construct parameter type from JSON resource.

- **Parameters**

  **resource** (*Dict*) -- JSON mapping of parameter
- **Returns**

  Instance
- **Return type**

  google.cloud.bigquery.query.StructQueryParameterType

#### to_api_repr()

Construct JSON API representation for the parameter type.

- **Returns**

  JSON mapping
- **Return type**

  Dict

### *class* google.cloud.bigquery.query.UDFResource(udf_type, value)

Describe a single user-defined function (UDF) resource.

- **Parameters**

  - **udf_type** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) -- The type of the resource ('inlineCode' or 'resourceUri')

  - **value** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) -- The inline code or resource URI.

See:
<https://cloud.google.com/bigquery/user-defined-functions#api>