Represents a PostgreSQL array column value.
simplecov:enable
Included modules
- Sequel::SQL::AliasMethods
- Sequel::SQL::CastMethods
Classes and Modules
Attributes
| array_type | [RW] |
The type of this array. May be nil if no type was given. If a type is provided, the array is automatically casted to this type when literalizing. This type is the underlying type, not the array type itself, so for an int4[] database type, it should be :int4 or ‘int4’ |
Public Class methods
new(array, type=nil)
Set the array to delegate to, and a database type.
[show source]
# File lib/sequel/extensions/pg_array.rb 462 def initialize(array, type=nil) 463 super(array) 464 @array_type = type 465 end
Public Instance methods
op()
Wrap the PGArray instance in an ArrayOp, allowing you to easily use the PostgreSQL array functions and operators with literal arrays.
[show source]
# File lib/sequel/extensions/pg_array_ops.rb 390 def op 391 ArrayOp.new(self) 392 end
sequel_auto_param_type(ds)
Allow automatic parameterization of the receiver if all elements can be can be automatically parameterized.
[show source]
# File lib/sequel/extensions/pg_array.rb 485 def sequel_auto_param_type(ds) 486 if array_type && all?{|x| nil == x || ds.send(:auto_param_type, x)} 487 "::#{array_type}[]" 488 end 489 end
sql_literal_append(ds, sql)
Append the array SQL to the given sql string. If the receiver has a type, add a cast to the database array type.
[show source]
# File lib/sequel/extensions/pg_array.rb 470 def sql_literal_append(ds, sql) 471 at = array_type 472 if empty? && at 473 sql << "'{}'" 474 else 475 sql << "ARRAY" 476 _literal_append(sql, ds, to_a) 477 end 478 if at 479 sql << '::' << at.to_s << '[]' 480 end 481 end