google-cloud-bigquery - Class Google::Cloud::Bigquery::Argument (v1.38.1)

Reference documentation and code samples for the google-cloud-bigquery class Google::Cloud::Bigquery::Argument.

Argument

Input/output argument of a function or a stored procedure. See Routine.

Inherits

  • Object

Example

require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new
dataset = bigquery.dataset "my_dataset"
routine = dataset.create_routine "my_routine" do |r|
  r.routine_type = "SCALAR_FUNCTION"
  r.language = :SQL
  r.body = "(SELECT SUM(IF(elem.name = \"foo\",elem.val,null)) FROM UNNEST(arr) AS elem)"
  r.arguments = [
    Google::Cloud::Bigquery::Argument.new(
      name: "arr",
      argument_kind: "FIXED_TYPE",
      data_type: Google::Cloud::Bigquery::StandardSql::DataType.new(
        type_kind: "ARRAY",
        array_element_type: Google::Cloud::Bigquery::StandardSql::DataType.new(
          type_kind: "STRUCT",
          struct_type: Google::Cloud::Bigquery::StandardSql::StructType.new(
            fields: [
              Google::Cloud::Bigquery::StandardSql::Field.new(
                name: "name",
                type: Google::Cloud::Bigquery::StandardSql::DataType.new(type_kind: "STRING")
              ),
              Google::Cloud::Bigquery::StandardSql::Field.new(
                name: "val",
                type: Google::Cloud::Bigquery::StandardSql::DataType.new(type_kind: "INT64")
              )
            ]
          )
        )
      )
    )
  ]
end

Methods

#any_type?

def any_type?() -> Boolean

Checks if the value of #argument_kind is ANY_TYPE. The default is false.

Returns
  • (Boolean) — true when ANY_TYPE, false otherwise.

#argument_kind

def argument_kind() -> String

The kind of argument. Optional. Defaults to FIXED_TYPE.

  • FIXED_TYPE - The argument is a variable with fully specified type, which can be a struct or an array, but not a table.
  • ANY_TYPE - The argument is any type, including struct or array, but not a table.

To be added: FIXED_TABLE, ANY_TABLE.

Returns
  • (String) — The upper case kind of argument.

#data_type

def data_type() -> StandardSql::DataType

The data type of the argument. Required unless #argument_kind is ANY_TYPE.

Returns

#fixed_type?

def fixed_type?() -> Boolean

Checks if the value of #argument_kind is FIXED_TYPE. The default is true.

Returns
  • (Boolean) — true when FIXED_TYPE, false otherwise.

#in?

def in?() -> Boolean

Checks if the value of #mode is IN. Can be set for procedures only. The default is false.

Returns
  • (Boolean) — true when IN, false otherwise.

#initialize

def initialize(data_type, kind, mode, name) -> Argument

Creates a new, immutable Argument object.

Overloads
def initialize(data_type, kind, mode, name) -> Argument
Creates a new, immutable Argument object.
Parameters
  • data_type (StandardSql::DataType, String) — The data type of the argument. Required unless #argument_kind is ANY_TYPE.
  • argument_kind (String) — The kind of argument. Optional. Defaults to FIXED_TYPE.

    • FIXED_TYPE - The argument is a variable with fully specified type, which can be a struct or an array, but not a table.
    • ANY_TYPE - The argument is any type, including struct or array, but not a table.

    To be added: FIXED_TABLE, ANY_TABLE.

  • mode (String) —

    Specifies whether the argument is input or output. Optional. Can be set for procedures only.

    • IN - The argument is input-only.
    • OUT - The argument is output-only.
    • INOUT - The argument is both an input and an output.
  • name (String) — The name of the argument. Optional. Can be absent for a function return argument.
Returns
  • (Argument) — a new instance of Argument

#inout?

def inout?() -> Boolean

Checks if the value of #mode is INOUT. Can be set for procedures only. The default is false.

Returns
  • (Boolean) — true when INOUT, false otherwise.

#mode

def mode() -> String

Specifies whether the argument is input or output. Optional. Can be set for procedures only.

  • IN - The argument is input-only.
  • OUT - The argument is output-only.
  • INOUT - The argument is both an input and an output.
Returns
  • (String) — The upper case input/output mode of the argument.

#name

def name() -> String

The name of the argument. Optional. Can be absent for a function return argument.

Returns
  • (String) — The name of the argument.

#out?

def out?() -> Boolean

Checks if the value of #mode is OUT. Can be set for procedures only. The default is false.

Returns
  • (Boolean) — true when OUT, false otherwise.