class Sequel::Postgres::PGArray

  1. lib/sequel/extensions/pg_array.rb
  2. lib/sequel/extensions/pg_array_ops.rb
  3. lib/sequel/extensions/pg_multirange.rb
  4. lib/sequel/extensions/pg_range.rb
  5. show all
Superclass: DelegateClass(Array)

Represents a PostgreSQL array column value.

:nocov:

Methods

Public Class

  1. new

Public Instance

  1. array_type
  2. op
  3. sequel_auto_param_type
  4. sql_literal_append

Included modules

  1. Sequel::SQL::AliasMethods

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
460 def initialize(array, type=nil)
461   super(array)
462   @array_type = type
463 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
294 def op
295   ArrayOp.new(self)
296 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
483 def sequel_auto_param_type(ds)
484   if array_type && all?{|x| nil == x || ds.send(:auto_param_type, x)}
485     "::#{array_type}[]"
486   end
487 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
468 def sql_literal_append(ds, sql)
469   at = array_type
470   if empty? && at
471     sql << "'{}'"
472   else
473     sql << "ARRAY"
474     _literal_append(sql, ds, to_a)
475   end
476   if at
477     sql << '::' << at.to_s << '[]'
478   end
479 end