Reference documentation and code samples for the BigQuery API 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?() -> BooleanChecks if the value of #argument_kind is ANY_TYPE. The default is false.
-
(Boolean) —
truewhenANY_TYPE,falseotherwise.
#argument_kind
def argument_kind() -> StringThe 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.
- (String) — The upper case kind of argument.
#data_type
def data_type() -> StandardSql::DataTypeThe data type of the argument. Required unless #argument_kind is ANY_TYPE.
- (StandardSql::DataType) — The data type.
#fixed_type?
def fixed_type?() -> BooleanChecks if the value of #argument_kind is FIXED_TYPE. The default is true.
-
(Boolean) —
truewhenFIXED_TYPE,falseotherwise.
#in?
def in?() -> BooleanChecks if the value of #mode is IN. Can be set for procedures only. The default is false.
-
(Boolean) —
truewhenIN,falseotherwise.
#initialize
def initialize(data_type, kind, mode, name) -> ArgumentCreates a new, immutable Argument object.
def initialize(data_type, kind, mode, name) -> Argument-
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.
- (Argument) — a new instance of Argument
#inout?
def inout?() -> BooleanChecks if the value of #mode is INOUT. Can be set for procedures only. The default is false.
-
(Boolean) —
truewhenINOUT,falseotherwise.
#mode
def mode() -> StringSpecifies 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.
- (String) — The upper case input/output mode of the argument.
#name
def name() -> StringThe name of the argument. Optional. Can be absent for a function return argument.
- (String) — The name of the argument.
#out?
def out?() -> BooleanChecks if the value of #mode is OUT. Can be set for procedures only. The default is false.
-
(Boolean) —
truewhenOUT,falseotherwise.