Class: Google::Apis::BigqueryV2::TableFieldSchema

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/bigquery_v2/classes.rb,
lib/google/apis/bigquery_v2/representations.rb,
lib/google/apis/bigquery_v2/representations.rb

Overview

A field in TableSchema

Defined Under Namespace

Classes: Categories, PolicyTags, RangeElementType

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ TableFieldSchema

Returns a new instance of TableFieldSchema.



11202
11203
11204
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11202

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#categoriesGoogle::Apis::BigqueryV2::TableFieldSchema::Categories

Deprecated. Corresponds to the JSON property categories



11077
11078
11079
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11077

def categories
  @categories
end

#collationString

Optional. Field collation can be set only when the type of field is STRING. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior. Corresponds to the JSON property collation

Returns:

  • (String)


11084
11085
11086
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11084

def collation
  @collation
end

#data_policiesArray<Google::Apis::BigqueryV2::DataPolicyOption>

Optional. Data policies attached to this field, used for field-level access control. Corresponds to the JSON property dataPolicies



11090
11091
11092
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11090

def data_policies
  @data_policies
end

#default_value_expressionString

Optional. A SQL expression to specify the default value for this field. Corresponds to the JSON property defaultValueExpression

Returns:

  • (String)


11096
11097
11098
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11096

def default_value_expression
  @default_value_expression
end

#descriptionString

Optional. The field description. The maximum length is 1,024 characters. Corresponds to the JSON property description

Returns:

  • (String)


11101
11102
11103
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11101

def description
  @description
end

#fieldsArray<Google::Apis::BigqueryV2::TableFieldSchema>

Optional. Describes the nested schema fields if the type property is set to RECORD. Corresponds to the JSON property fields



11107
11108
11109
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11107

def fields
  @fields
end

#foreign_type_definitionString

Optional. Definition of the foreign data type. Only valid for top-level schema fields (not nested fields). If the type is FOREIGN, this field is required. Corresponds to the JSON property foreignTypeDefinition

Returns:

  • (String)


11113
11114
11115
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11113

def foreign_type_definition
  @foreign_type_definition
end

#generated_columnGoogle::Apis::BigqueryV2::GeneratedColumn

Optional. Definition of how values are generated for the field. Only valid for top-level schema fields (not nested fields). Corresponds to the JSON property generatedColumn



11119
11120
11121
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11119

def generated_column
  @generated_column
end

#max_lengthFixnum

Optional. Maximum length of values of this field for STRINGS or BYTES. If max_length is not specified, no maximum length constraint is imposed on this field. If type = "STRING", then max_length represents the maximum UTF-8 length of strings in this field. If type = "BYTES", then max_length represents the maximum number of bytes in this field. It is invalid to set this field if type ≠ "STRING" and ≠ "BYTES". Corresponds to the JSON property maxLength

Returns:

  • (Fixnum)


11129
11130
11131
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11129

def max_length
  @max_length
end

#modeString

Optional. The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE. Corresponds to the JSON property mode

Returns:

  • (String)


11135
11136
11137
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11135

def mode
  @mode
end

#nameString

Required. The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 300 characters. Corresponds to the JSON property name

Returns:

  • (String)


11142
11143
11144
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11142

def name
  @name
end

#policy_tagsGoogle::Apis::BigqueryV2::TableFieldSchema::PolicyTags

Optional. The policy tags attached to this field, used for field-level access control. If not set, defaults to empty policy_tags. Corresponds to the JSON property policyTags



11148
11149
11150
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11148

def policy_tags
  @policy_tags
end

#precisionFixnum

Optional. Precision (maximum number of total digits in base 10) and scale ( maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ "NUMERIC" and ≠ "BIGNUMERIC". If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: * Precision (P) and scale (S) are specified: [-10P- S + 10-S, 10P-S - 10-S] * Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: * If type = "NUMERIC": 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. * If type = "BIGNUMERIC": 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): * If type = "NUMERIC": 1 ≤ precision ≤ 29. * If type = " BIGNUMERIC": 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid. Corresponds to the JSON property precision

Returns:

  • (Fixnum)


11168
11169
11170
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11168

def precision
  @precision
end

#range_element_typeGoogle::Apis::BigqueryV2::TableFieldSchema::RangeElementType

Represents the type of a field element. Corresponds to the JSON property rangeElementType



11173
11174
11175
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11173

def range_element_type
  @range_element_type
end

#rounding_modeString

Optional. Specifies the rounding mode to be used when storing values of NUMERIC and BIGNUMERIC type. Corresponds to the JSON property roundingMode

Returns:

  • (String)


11179
11180
11181
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11179

def rounding_mode
  @rounding_mode
end

#scaleFixnum

Optional. See documentation for precision. Corresponds to the JSON property scale

Returns:

  • (Fixnum)


11184
11185
11186
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11184

def scale
  @scale
end

#timestamp_precisionFixnum

Optional. Precision (maximum number of total digits in base 10) for seconds of TIMESTAMP type. Possible values include: * 6 (Default, for TIMESTAMP type with microsecond precision) * 12 (For TIMESTAMP type with picosecond precision) Corresponds to the JSON property timestampPrecision

Returns:

  • (Fixnum)


11191
11192
11193
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11191

def timestamp_precision
  @timestamp_precision
end

#typeString

Required. The field data type. Possible values include: * STRING * BYTES * INTEGER (or INT64) * FLOAT (or FLOAT64) * BOOLEAN (or BOOL) * TIMESTAMP * DATE

  • TIME * DATETIME * GEOGRAPHY * NUMERIC * BIGNUMERIC * JSON * RECORD (or STRUCT) * RANGE Use of RECORD/STRUCT indicates that the field contains a nested schema. Corresponds to the JSON property type

Returns:

  • (String)


11200
11201
11202
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11200

def type
  @type
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
# File 'lib/google/apis/bigquery_v2/classes.rb', line 11207

def update!(**args)
  @categories = args[:categories] if args.key?(:categories)
  @collation = args[:collation] if args.key?(:collation)
  @data_policies = args[:data_policies] if args.key?(:data_policies)
  @default_value_expression = args[:default_value_expression] if args.key?(:default_value_expression)
  @description = args[:description] if args.key?(:description)
  @fields = args[:fields] if args.key?(:fields)
  @foreign_type_definition = args[:foreign_type_definition] if args.key?(:foreign_type_definition)
  @generated_column = args[:generated_column] if args.key?(:generated_column)
  @max_length = args[:max_length] if args.key?(:max_length)
  @mode = args[:mode] if args.key?(:mode)
  @name = args[:name] if args.key?(:name)
  @policy_tags = args[:policy_tags] if args.key?(:policy_tags)
  @precision = args[:precision] if args.key?(:precision)
  @range_element_type = args[:range_element_type] if args.key?(:range_element_type)
  @rounding_mode = args[:rounding_mode] if args.key?(:rounding_mode)
  @scale = args[:scale] if args.key?(:scale)
  @timestamp_precision = args[:timestamp_precision] if args.key?(:timestamp_precision)
  @type = args[:type] if args.key?(:type)
end