Module: Sequel::Postgres
- Defined in:
- lib/sequel/adapters/shared/postgres.rb,
lib/sequel/adapters/postgres.rb,
lib/sequel/extensions/pg_inet.rb,
lib/sequel/extensions/pg_json.rb,
lib/sequel/extensions/pg_array.rb,
lib/sequel/extensions/pg_hstore.rb,
lib/sequel/extensions/pg_array_ops.rb,
lib/sequel/extensions/pg_hstore_ops.rb,
lib/sequel/extensions/pg_statement_cache.rb,
lib/sequel/extensions/pg_auto_parameterize.rb
Overview
Top level module for holding all PostgreSQL-related modules and classes for Sequel. There are a few module level accessors that are added via metaprogramming. These are:
-
client_min_messages (only available when using the native adapter) - 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.
-
force_standard_strings - Set to false to not force the use of standard strings
-
use_iso_date_format (only available when using the native adapter) - Set to false to not change the date format to ISO. This disables one of Sequel’s optimizations.
Changes in these settings only affect future connections. To make sure that they are applied, they should generally be called right after the Database object is instantiated and before a connection is actually made. For example, to use whatever the server defaults are:
DB = Sequel.postgres(...)
Sequel::Postgres.client_min_messages = nil
Sequel::Postgres.force_standard_strings = false
Sequel::Postgres.use_iso_date_format = false
# A connection to the server is not made until here
DB[:t].all
The reason they can’t be done earlier is that the Sequel::Postgres module is not loaded until a Database object which uses PostgreSQL is created.
Defined Under Namespace
Modules: ArrayOpMethods, AutoParameterize, DatabaseMethods, DatasetMethods, HStoreOpMethods, InetDatabaseMethods, InetDatasetMethods, JSONDatabaseMethods, StatementCache Classes: Adapter, ArrayOp, Database, Dataset, HStore, HStoreOp, JSONArray, JSONHash, PGArray, PGDecimalArray, PGFloatArray, PGIntegerArray, PGNumericArray, PGStringArray
Constant Summary collapse
- NAN =
0.0/0.0
- PLUS_INFINITY =
1.0/0.0
- MINUS_INFINITY =
-1.0/0.0
- NAN_STR =
'NaN'.freeze
- PLUS_INFINITY_STR =
'Infinity'.freeze
- MINUS_INFINITY_STR =
'-Infinity'.freeze
- TRUE_STR =
't'.freeze
- DASH_STR =
'-'.freeze
- TYPE_TRANSLATOR =
tt = Class.new do def boolean(s) s == TRUE_STR end def bytea(s) ::Sequel::SQL::Blob.new(Adapter.unescape_bytea(s)) end def integer(s) s.to_i end def float(s) case s when NAN_STR NAN when PLUS_INFINITY_STR PLUS_INFINITY when MINUS_INFINITY_STR MINUS_INFINITY else s.to_f end end def date(s) ::Date.new(*s.split(DASH_STR).map{|x| x.to_i}) end end.new
- PG_NAMED_TYPES =
Hash with type name strings/symbols and callable values for converting PostgreSQL types. Non-builtin types that don’t have fixed numbers should use this to register conversion procs.
{}
- PG_TYPES =
Hash with integer keys and callable values for converting PostgreSQL types.
{}
- CAST_JSON =
'::json'.freeze
- CONVERTED_EXCEPTIONS =
Array of exceptions that need to be converted. JDBC uses NativeExceptions, the native adapter uses PGError.
[]
Class Attribute Summary collapse
-
.client_min_messages ⇒ Object
By default, Sequel sets the minimum level of log messages sent to the client to WARNING, where PostgreSQL uses a default of NOTICE.
-
.force_standard_strings ⇒ Object
By default, Sequel forces the use of standard strings, so that ‘\’ is interpreted as \ and not .
-
.use_iso_date_format ⇒ Object
As an optimization, Sequel sets the date style to ISO, so that PostgreSQL provides the date in a known format that Sequel can parse faster.
Class Attribute Details
.client_min_messages ⇒ Object
By default, Sequel sets the minimum level of log messages sent to the client to WARNING, where PostgreSQL uses a default of NOTICE. This is to avoid a lot of mostly useless messages when running migrations, such as a couple of lines for every serial primary key field.
43 44 45 |
# File 'lib/sequel/adapters/shared/postgres.rb', line 43 def @client_min_messages end |
.force_standard_strings ⇒ Object
By default, Sequel forces the use of standard strings, so that ‘\’ is interpreted as \ and not . While PostgreSQL <9.1 defaults to interpreting plain strings, newer versions use standard strings by default. Sequel assumes that SQL standard strings will be used. Setting this to false means Sequel will use the database’s default.
50 51 52 |
# File 'lib/sequel/adapters/shared/postgres.rb', line 50 def force_standard_strings @force_standard_strings end |
.use_iso_date_format ⇒ Object
As an optimization, Sequel sets the date style to ISO, so that PostgreSQL provides the date in a known format that Sequel can parse faster. This can be turned off if you require a date style other than ISO.
142 143 144 |
# File 'lib/sequel/adapters/postgres.rb', line 142 def use_iso_date_format @use_iso_date_format end |