Module: Sequel::Postgres

Defined in:
lib/sequel/adapters/shared/postgres.rb,
lib/sequel/adapters/postgres.rb,
lib/sequel/extensions/pg_row.rb,
lib/sequel/extensions/pg_enum.rb,
lib/sequel/extensions/pg_inet.rb,
lib/sequel/extensions/pg_json.rb,
lib/sequel/extensions/pg_array.rb,
lib/sequel/extensions/pg_range.rb,
lib/sequel/extensions/pg_hstore.rb,
lib/sequel/extensions/pg_row_ops.rb,
lib/sequel/extensions/pg_inet_ops.rb,
lib/sequel/extensions/pg_interval.rb,
lib/sequel/extensions/pg_json_ops.rb,
lib/sequel/extensions/pg_array_ops.rb,
lib/sequel/extensions/pg_range_ops.rb,
lib/sequel/extensions/pg_hstore_ops.rb,
lib/sequel/extensions/pg_loose_count.rb,
lib/sequel/extensions/pg_static_cache_updater.rb,
lib/sequel/extensions/pg_extended_date_support.rb

Overview

Top level module for holding all PostgreSQL-related modules and classes for Sequel. All adapters that connect to PostgreSQL support the following options:

:client_min_messages

Change the minimum level of messages that PostgreSQL will send to the the client. The PostgreSQL default is NOTICE, the Sequel default is WARNING. Set to nil to not change the server default. Overridable on a per instance basis via the :client_min_messages option.

:force_standard_strings

Set to false to not force the use of standard strings. Overridable on a per instance basis via the :force_standard_strings option.

:search_path

Set the schema search_path for this Database's connections. Allows to to set which schemas do not need explicit qualification, and in which order to check the schemas when an unqualified object is referenced.

Defined Under Namespace

Modules: ArrayOpMethods, DatabaseMethods, DatasetMethods, EnumDatabaseMethods, ExtendedDateSupport, HStoreOpMethods, InetDatabaseMethods, InetDatasetMethods, InetOpMethods, IntervalDatabaseMethods, IntervalDatasetMethods, JSONDatabaseMethods, JSONOpMethods, LooseCount, MockAdapterDatabaseMethods, PGRow, RangeOpMethods, StaticCacheUpdater Classes: Adapter, AlterTableGenerator, ArrayOp, CreateTableGenerator, Database, Dataset, ExclusionConstraintViolation, HStore, HStoreOp, InetOp, JSONArray, JSONArrayBase, JSONBArray, JSONBHash, JSONBOp, JSONBaseOp, JSONHash, JSONHashBase, JSONOp, PGArray, PGRange, PGRowOp, RangeOp

Constant Summary

NAN =
0.0/0.0
PLUS_INFINITY =
1.0/0.0
MINUS_INFINITY =
-1.0/0.0
TYPE_TRANSLATOR =
tt = Class.new do
  def boolean(s) s == 't' end
  def integer(s) s.to_i end
  def float(s) 
    case s
    when 'NaN'
      NAN
    when 'Infinity'
      PLUS_INFINITY
    when '-Infinity'
      MINUS_INFINITY
    else
      s.to_f 
    end
  end
  def date(s) ::Date.new(*s.split('-').map(&:to_i)) end
  def bytea(str)
    str = if str =~ /\A\\x/
      # PostgreSQL 9.0+ bytea hex format
      str[2..-1].gsub(/(..)/){|s| s.to_i(16).chr}
    else
      # Historical PostgreSQL bytea escape format
      str.gsub(/\\(\\|'|[0-3][0-7][0-7])/) {|s|
        if s.size == 2 then s[1,1] else s[1,3].oct.chr end
      }
    end
    ::Sequel::SQL::Blob.new(str)
  end
end.new.freeze
CONVERSION_PROCS =
{}

Class Method Summary collapse

Class Method Details

.mock_adapter_setup(db) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/sequel/adapters/shared/postgres.rb', line 84

def self.mock_adapter_setup(db)
  db.instance_exec do
    @server_version = 90500
    initialize_postgres_adapter
    extend(MockAdapterDatabaseMethods)
  end
end

.sequel_pg_version_supported?(version) ⇒ Boolean

Whether the given sequel_pg version integer is supported.

Returns:

  • (Boolean)


31
32
33
# File 'lib/sequel/adapters/postgres.rb', line 31

def self.sequel_pg_version_supported?(version)
  version >= 10617
end