Module: Sequel::SQL::CastMethods
- Included in:
- ComplexExpression, GenericComplexExpression, 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
-
#cast(sql_type) ⇒ Object
Cast the reciever to the given SQL type.
-
#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. -
#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.
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))
274 275 276 |
# File 'lib/sequel/sql.rb', line 274 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)
284 285 286 |
# File 'lib/sequel/sql.rb', line 284 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)
294 295 296 |
# File 'lib/sequel/sql.rb', line 294 def cast_string(sql_type = nil) cast(sql_type || String).sql_string end |