As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud.

google.cloud.bigquery.schema.SchemaField

class google.cloud.bigquery.schema.SchemaField(name: str, field_type: str, mode: str = 'NULLABLE', default_value_expression: Optional[str] = None, description: Union[str, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, fields: Iterable[google.cloud.bigquery.schema.SchemaField] = (), policy_tags: Union[google.cloud.bigquery.schema.PolicyTagList, None, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, precision: Union[int, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, scale: Union[int, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, max_length: Union[int, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, range_element_type: Optional[Union[google.cloud.bigquery.schema.FieldElementType, str]] = None)[source]

Describe a single field within a table schema.

Parameters
  • name – The name of the field.

  • field_type – The type of the field. See https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#TableFieldSchema.FIELDS.type

  • mode – Defaults to 'NULLABLE'. The mode of the field. See https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#TableFieldSchema.FIELDS.mode

  • description – Description for the field.

  • fields – Subfields (requires field_type of ‘RECORD’).

  • policy_tags – The policy tag list for the field.

  • precision – Precison (number of digits) of fields with NUMERIC or BIGNUMERIC type.

  • scale – Scale (digits after decimal) of fields with NUMERIC or BIGNUMERIC type.

  • max_length – Maximum length of fields with STRING or BYTES type.

  • default_value_expression

    str, Optional Used to specify the default value of a field using a SQL expression. It can only be set for top level fields (columns).

    You can use a struct or array expression to specify default value for the entire struct or array. The valid SQL expressions are:

    • Literals for all data types, including STRUCT and ARRAY.

    • The following functions:

      CURRENT_TIMESTAMP CURRENT_TIME CURRENT_DATE CURRENT_DATETIME GENERATE_UUID RAND SESSION_USER ST_GEOPOINT

    • Struct or array composed with the above allowed functions, for example:

      ”[CURRENT_DATE(), DATE ‘2020-01-01’”]

  • range_element_type – FieldElementType, str, Optional The subtype of the RANGE, if the type of this field is RANGE. If the type is RANGE, this field is required. Possible values for the field element type of a RANGE include DATE, DATETIME and TIMESTAMP.

__init__(name: str, field_type: str, mode: str = 'NULLABLE', default_value_expression: Optional[str] = None, description: Union[str, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, fields: Iterable[google.cloud.bigquery.schema.SchemaField] = (), policy_tags: Union[google.cloud.bigquery.schema.PolicyTagList, None, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, precision: Union[int, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, scale: Union[int, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, max_length: Union[int, google.cloud.bigquery.schema._DefaultSentinel] = <_DefaultSentinel.DEFAULT_VALUE: <object object>>, range_element_type: Optional[Union[google.cloud.bigquery.schema.FieldElementType, str]] = None)[source]

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__(name, field_type[, mode, …])

Initialize self.

from_api_repr(api_repr)

Return a SchemaField object deserialized from a dictionary.

to_api_repr()

Return a dictionary representing this schema field.

to_standard_sql()

Return the field as the standard SQL field representation object.

Attributes

default_value_expression

Optional[str] default value of a field, using an SQL expression

description

description for the field.

field_type

The type of the field.

fields

Subfields contained in this field.

is_nullable

whether ‘mode’ is ‘nullable’.

max_length

Maximum length for the STRING or BYTES field.

mode

The mode of the field.

name

The name of the field.

policy_tags

Policy tag list definition for this field.

precision

Precision (number of digits) for the NUMERIC field.

range_element_type

The subtype of the RANGE, if the type of this field is RANGE.

scale

Scale (digits after decimal) for the NUMERIC field.

property default_value_expression

Optional[str] default value of a field, using an SQL expression

property description

description for the field.

Type

Optional[str]

property field_type

The type of the field.

See: https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#TableFieldSchema.FIELDS.type

Type

str

property fields

Subfields contained in this field.

Must be empty unset if field_type is not ‘RECORD’.

Type

Optional[tuple]

classmethod from_api_repr(api_repr: dict)google.cloud.bigquery.schema.SchemaField[source]

Return a SchemaField object deserialized from a dictionary.

Parameters

api_repr (Mapping[str, str]) – The serialized representation of the SchemaField, such as what is output by to_api_repr().

Returns

The SchemaField object.

Return type

google.cloud.bigquery.schema.SchemaField

property is_nullable

whether ‘mode’ is ‘nullable’.

Type

bool

property max_length

Maximum length for the STRING or BYTES field.

Type

Optional[int]

property mode

The mode of the field.

See: https://cloud.google.com/bigquery/docs/reference/rest/v2/tables#TableFieldSchema.FIELDS.mode

Type

Optional[str]

property name

The name of the field.

Type

str

property policy_tags

Policy tag list definition for this field.

Type

Optional[google.cloud.bigquery.schema.PolicyTagList]

property precision

Precision (number of digits) for the NUMERIC field.

Type

Optional[int]

property range_element_type

The subtype of the RANGE, if the type of this field is RANGE.

Must be set when type is “RANGE”. Must be one of “DATE”, “DATETIME” or “TIMESTAMP”.

Type

Optional[FieldElementType]

property scale

Scale (digits after decimal) for the NUMERIC field.

Type

Optional[int]

to_api_repr()dict[source]

Return a dictionary representing this schema field.

Returns

A dictionary representing the SchemaField in a serialized form.

Return type

Dict

to_standard_sql()google.cloud.bigquery.standard_sql.StandardSqlField[source]

Return the field as the standard SQL field representation object.