class DuckDB::Value
Public Class Methods
Source
# File lib/duckdb/value.rb, line 188 def create_blob(value) check_type!(value, String) check_binary!(value) _create_blob(value) end
Creates a DuckDB::Value of BLOB type.
value = DuckDB::Value.create_blob("\x00\x01\x02".b)
@param value [String] the binary string value. @return [DuckDB::Value] the created Value object. @raise [ArgumentError] if value is not a BINARY encoded String.
Source
# File lib/duckdb/value.rb, line 18 def create_bool(value) check_type!(value, [TrueClass, FalseClass]) _create_bool(value) end
Creates a new DuckDB::Value with a boolean value.
require 'duckdb' value = DuckDB::Value.create_bool(true)
@param value [TrueClass, FalseClass] the boolean value @return [DuckDB::Value] @raise [ArgumentError] if value is not a boolean
Source
# File lib/duckdb/value.rb, line 231 def create_decimal(value) check_type!(value, BigDecimal) width = _decimal_width(value) check_range!(width, RANGE_DECIMAL_WIDTH, 'DECIMAL width') lower, upper = decimal_to_hugeint(value) _create_decimal(lower, upper, width, value.scale) end
Creates a DuckDB::Value of DECIMAL type.
value = DuckDB::Value.create_decimal(BigDecimal('12345.678'))
@param value [BigDecimal] the decimal value. @return [DuckDB::Value] the created Value object. @raise [ArgumentError] if value is not a BigDecimal or its width is out of range (1..38).
Source
# File lib/duckdb/value.rb, line 163 def create_double(value) check_type!(value, [Integer, Float]) _create_double(value) end
Creates a DuckDB::Value of DOUBLE type.
value = DuckDB::Value.create_double(1.5)
@param value [Numeric] the numeric value. @return [DuckDB::Value] the created Value object. @raise [ArgumentError] if value is not a Numeric.
Source
# File lib/duckdb/value.rb, line 151 def create_float(value) check_type!(value, [Integer, Float]) _create_float(value) end
Creates a DuckDB::Value of FLOAT type.
value = DuckDB::Value.create_float(1.5)
@param value [Numeric] the numeric value. @return [DuckDB::Value] the created Value object. @raise [ArgumentError] if value is not a Numeric.
Source
# File lib/duckdb/value.rb, line 201 def create_hugeint(value) check_type!(value, Integer) check_range!(value, RANGE_HUGEINT, 'HUGEINT') lower, upper = integer_to_hugeint(value) _create_hugeint(lower, upper) end
Creates a DuckDB::Value of HUGEINT type.
value = DuckDB::Value.create_hugeint(1_234_567_890_123_456_789_012_345)
@param value [Integer] the integer value (-(2**127)..(2**127 - 1)) @return [DuckDB::Value] the created Value object. @raise [ArgumentError] if value is not an Integer or out of range.
Source
# File lib/duckdb/value.rb, line 47 def create_int16(value) check_type!(value, Integer) check_range!(value, RANGE_INT16, 'INT16') _create_int16(value) end
Creates a new DuckDB::Value with an INT16 (SMALLINT) value.
require 'duckdb' value = DuckDB::Value.create_int16(32_767)
@param value [Integer] the integer value (-32768..32767) @return [DuckDB::Value] @raise [ArgumentError] if value is not an Integer or out of range
Source
# File lib/duckdb/value.rb, line 62 def create_int32(value) check_type!(value, Integer) check_range!(value, RANGE_INT32, 'INT32') _create_int32(value) end
Creates a new DuckDB::Value with an INT32 (INTEGER) value.
require 'duckdb' value = DuckDB::Value.create_int32(2_147_483_647)
@param value [Integer] the integer value (-2147483648..2147483647) @return [DuckDB::Value] @raise [ArgumentError] if value is not an Integer or out of range
Source
# File lib/duckdb/value.rb, line 77 def create_int64(value) check_type!(value, Integer) check_range!(value, RANGE_INT64, 'INT64') _create_int64(value) end
Creates a new DuckDB::Value with an INT64 (BIGINT) value.
require 'duckdb' value = DuckDB::Value.create_int64(9_223_372_036_854_775_807)
@param value [Integer] the integer value (-9223372036854775808..9223372036854775807) @return [DuckDB::Value] @raise [ArgumentError] if value is not an Integer or out of range
Source
# File lib/duckdb/value.rb, line 32 def create_int8(value) check_type!(value, Integer) check_range!(value, RANGE_INT8, 'INT8') _create_int8(value) end
Creates a new DuckDB::Value with an INT8 (TINYINT) value.
require 'duckdb' value = DuckDB::Value.create_int8(127)
@param value [Integer] the integer value (-128..127) @return [DuckDB::Value] @raise [ArgumentError] if value is not an Integer or out of range
Source
static VALUE value_s_create_null(VALUE klass) {
duckdb_value value = duckdb_create_null_value();
return rbduckdb_value_new(value);
}
Creates a new DuckDB::Value representing SQL NULL.
require 'duckdb' value = DuckDB::Value.create_null
Source
# File lib/duckdb/value.rb, line 216 def create_uhugeint(value) check_type!(value, Integer) check_range!(value, RANGE_UHUGEINT, 'UHUGEINT') lower, upper = integer_to_hugeint(value) _create_uhugeint(lower, upper) end
Creates a DuckDB::Value of UHUGEINT type.
value = DuckDB::Value.create_uhugeint(340_282_366_920_938_463_463_374_607_431_768_211_455)
@param value [Integer] the integer value (0..(2**128 - 1)) @return [DuckDB::Value] the created Value object. @raise [ArgumentError] if value is not an Integer or out of range.
Source
# File lib/duckdb/value.rb, line 107 def create_uint16(value) check_type!(value, Integer) check_range!(value, RANGE_UINT16, 'UINT16') _create_uint16(value) end
Creates a new DuckDB::Value with a UINT16 (USMALLINT) value.
require 'duckdb' value = DuckDB::Value.create_uint16(65_535)
@param value [Integer] the integer value (0..65535) @return [DuckDB::Value] @raise [ArgumentError] if value is not an Integer or out of range
Source
# File lib/duckdb/value.rb, line 122 def create_uint32(value) check_type!(value, Integer) check_range!(value, RANGE_UINT32, 'UINT32') _create_uint32(value) end
Creates a new DuckDB::Value with a UINT32 (UINTEGER) value.
require 'duckdb' value = DuckDB::Value.create_uint32(4_294_967_295)
@param value [Integer] the integer value (0..4294967295) @return [DuckDB::Value] @raise [ArgumentError] if value is not an Integer or out of range
Source
# File lib/duckdb/value.rb, line 137 def create_uint64(value) check_type!(value, Integer) check_range!(value, RANGE_UINT64, 'UINT64') _create_uint64(value) end
Creates a new DuckDB::Value with a UINT64 (UBIGINT) value.
require 'duckdb' value = DuckDB::Value.create_uint64(18_446_744_073_709_551_615)
@param value [Integer] the integer value (0..18446744073709551615) @return [DuckDB::Value] @raise [ArgumentError] if value is not an Integer or out of range
Source
# File lib/duckdb/value.rb, line 92 def create_uint8(value) check_type!(value, Integer) check_range!(value, RANGE_UINT8, 'UINT8') _create_uint8(value) end
Creates a new DuckDB::Value with a UINT8 (UTINYINT) value.
require 'duckdb' value = DuckDB::Value.create_uint8(255)
@param value [Integer] the integer value (0..255) @return [DuckDB::Value] @raise [ArgumentError] if value is not an Integer or out of range
Source
# File lib/duckdb/value.rb, line 175 def create_varchar(value) check_type!(value, String) check_utf8_compatible!(value) _create_varchar(value) end
Creates a DuckDB::Value of VARCHAR type.
value = DuckDB::Value.create_varchar('hello')
@param value [String] the string value. @return [DuckDB::Value] the created Value object. @raise [ArgumentError] if value is not a String.