Module: Sequel::SQL::CastMethods

Included in:
Dataset, LiteralString, ComplexExpression, GenericExpression, String, Symbol
Defined in:
lib/sequel/sql.rb

Overview

Holds methods that are used to cast objects to different SQL types.

Instance Method Summary collapse

Instance Method Details

#cast(sql_type) ⇒ Object

Cast the reciever to the given SQL type. You can specify a ruby class as a type, and it is handled similarly to using a database independent type in the schema methods.

:a.cast(:integer) # CAST(a AS integer)
:a.cast(String) # CAST(a AS varchar(255))


578
579
580
# File 'lib/sequel/sql.rb', line 578

def cast(sql_type)
  Cast.new(self, sql_type)
end

#cast_numeric(sql_type = nil) ⇒ Object

Cast the reciever to the given SQL type (or the database’s default Integer type if none given), and return the result as a NumericExpression, so you can use the bitwise operators on the result.

:a.cast_numeric # CAST(a AS integer)
:a.cast_numeric(Float) # CAST(a AS double precision)


588
589
590
# File 'lib/sequel/sql.rb', line 588

def cast_numeric(sql_type = nil)
  cast(sql_type || Integer).sql_number
end

#cast_string(sql_type = nil) ⇒ Object

Cast the reciever to the given SQL type (or the database’s default String type if none given), and return the result as a StringExpression, so you can use + directly on the result for SQL string concatenation.

:a.cast_string # CAST(a AS varchar(255))
:a.cast_string(:text) # CAST(a AS text)


598
599
600
# File 'lib/sequel/sql.rb', line 598

def cast_string(sql_type = nil)
  cast(sql_type || String).sql_string
end