Documentation for Sequel (v5.69.0)
+Documentation for Sequel (v5.70.0)
@@ -164,6 +164,12 @@
Release Notes
Public Class methods
# File lib/sequel/extensions/connection_validator.rb 63 def self.extended(pool) -64 pool.instance_exec do -65 sync do -66 @connection_timestamps ||= {} -67 @connection_validation_timeout ||= 3600 -68 end -69 end -70 -71 # Make sure the valid connection SQL query is precached, -72 # otherwise it's possible it will happen at runtime. While -73 # it should work correctly at runtime, it's better to avoid -74 # the possibility of failure altogether. -75 pool.db.send(:valid_connection_sql) -76 end+64 case pool.pool_type +65 when :single, :sharded_single +66 raise Error, "cannot load connection_validator extension if using single or sharded_single connection pool" +67 end +68 +69 pool.instance_exec do +70 sync do +71 @connection_timestamps ||= {} +72 @connection_validation_timeout ||= 3600 +73 end +74 end +75 +76 # Make sure the valid connection SQL query is precached, +77 # otherwise it's possible it will happen at runtime. While +78 # it should work correctly at runtime, it's better to avoid +79 # the possibility of failure altogether. +80 pool.db.send(:valid_connection_sql) +81 end diff --git a/rdoc-plugins/classes/Sequel/Database/AsyncThreadPool/DatabaseMethods.html b/rdoc-plugins/classes/Sequel/Database/AsyncThreadPool/DatabaseMethods.html index 5bf3cdad7a..60b8819ebf 100644 --- a/rdoc-plugins/classes/Sequel/Database/AsyncThreadPool/DatabaseMethods.html +++ b/rdoc-plugins/classes/Sequel/Database/AsyncThreadPool/DatabaseMethods.html @@ -64,23 +64,24 @@
Public Class methods
# File lib/sequel/extensions/async_thread_pool.rb 339 def self.extended(db) 340 db.instance_exec do -341 unless pool.pool_type == :threaded || pool.pool_type == :sharded_threaded -342 raise Error, "can only load async_thread_pool extension if using threaded or sharded_threaded connection pool" -343 end -344 -345 num_async_threads = opts[:num_async_threads] ? typecast_value_integer(opts[:num_async_threads]) : (Integer(opts[:max_connections] || 4)) -346 raise Error, "must have positive number for num_async_threads" if num_async_threads <= 0 -347 -348 proxy_klass = typecast_value_boolean(opts[:preempt_async_thread]) ? PreemptableProxy : Proxy -349 define_singleton_method(:async_job_class){proxy_klass} -350 -351 queue = @async_thread_queue = Queue.new -352 pool = @async_thread_pool = num_async_threads.times.map{JobProcessor.new(queue)} -353 ObjectSpace.define_finalizer(db, JobProcessor.create_finalizer(queue, pool)) -354 -355 extend_datasets(DatasetMethods) -356 end -357 end+341 case pool.pool_type +342 when :single, :sharded_single +343 raise Error, "cannot load async_thread_pool extension if using single or sharded_single connection pool" +344 end +345 +346 num_async_threads = opts[:num_async_threads] ? typecast_value_integer(opts[:num_async_threads]) : (Integer(opts[:max_connections] || 4)) +347 raise Error, "must have positive number for num_async_threads" if num_async_threads <= 0 +348 +349 proxy_klass = typecast_value_boolean(opts[:preempt_async_thread]) ? PreemptableProxy : Proxy +350 define_singleton_method(:async_job_class){proxy_klass} +351 +352 queue = @async_thread_queue = Queue.new +353 pool = @async_thread_pool = num_async_threads.times.map{JobProcessor.new(queue)} +354 ObjectSpace.define_finalizer(db, JobProcessor.create_finalizer(queue, pool)) +355 +356 extend_datasets(DatasetMethods) +357 end +358 end diff --git a/rdoc-plugins/classes/Sequel/Database/AsyncThreadPool/DatasetMethods.html b/rdoc-plugins/classes/Sequel/Database/AsyncThreadPool/DatasetMethods.html index c7d4473bb2..33bf26232d 100644 --- a/rdoc-plugins/classes/Sequel/Database/AsyncThreadPool/DatasetMethods.html +++ b/rdoc-plugins/classes/Sequel/Database/AsyncThreadPool/DatasetMethods.html @@ -71,16 +71,16 @@
Public Class methods
[show source]# File lib/sequel/extensions/async_thread_pool.rb -402 def self.define_async_args_or_block_method(mod, method) -403 mod.send(:define_method, method) do |*args, &block| -404 if (block || !args.empty?) && @opts[:async] -405 ds = sync -406 db.send(:async_run){ds.send(method, *args, &block)} -407 else -408 super(*args, &block) -409 end -410 end -411 end+403 def self.define_async_args_or_block_method(mod, method) +404 mod.send(:define_method, method) do |*args, &block| +405 if (block || !args.empty?) && @opts[:async] +406 ds = sync +407 db.send(:async_run){ds.send(method, *args, &block)} +408 else +409 super(*args, &block) +410 end +411 end +412 end
Public Class methods
[show source]# File lib/sequel/extensions/async_thread_pool.rb -389 def self.define_async_block_method(mod, method) -390 mod.send(:define_method, method) do |*args, &block| -391 if block && @opts[:async] -392 ds = sync -393 db.send(:async_run){ds.send(method, *args, &block)} -394 else -395 super(*args, &block) -396 end -397 end -398 end+390 def self.define_async_block_method(mod, method) +391 mod.send(:define_method, method) do |*args, &block| +392 if block && @opts[:async] +393 ds = sync +394 db.send(:async_run){ds.send(method, *args, &block)} +395 else +396 super(*args, &block) +397 end +398 end +399 end
Public Class methods
[show source]# File lib/sequel/extensions/async_thread_pool.rb -376 def self.define_async_method(mod, method) -377 mod.send(:define_method, method) do |*args, &block| -378 if @opts[:async] -379 ds = sync -380 db.send(:async_run){ds.send(method, *args, &block)} -381 else -382 super(*args, &block) -383 end -384 end -385 end+377 def self.define_async_method(mod, method) +378 mod.send(:define_method, method) do |*args, &block| +379 if @opts[:async] +380 ds = sync +381 db.send(:async_run){ds.send(method, *args, &block)} +382 else +383 super(*args, &block) +384 end +385 end +386 end
Public Instance methods
@@ -156,11 +156,11 @@Public Instance methods
[show source]# File lib/sequel/extensions/async_thread_pool.rb -421 def async -422 cached_dataset(:_async) do -423 clone(:async=>true) -424 end -425 end+422 def async +423 cached_dataset(:_async) do +424 clone(:async=>true) +425 end +426 end
Public Instance methods
[show source]# File lib/sequel/extensions/async_thread_pool.rb -429 def sync -430 cached_dataset(:_sync) do -431 clone(:async=>false) -432 end -433 end+430 def sync +431 cached_dataset(:_sync) do +432 clone(:async=>false) +433 end +434 end
module
Public Class methods
64 def self.configure(model, opts=OPTS) 65 model.instance_exec do 66 @static_cache_frozen = opts.fetch(:frozen, true) -67 load_cache -68 end -69 end +67 if @static_cache_frozen && defined?(::Sequel::Plugins::ForbidLazyLoad::ClassMethods) && is_a?(::Sequel::Plugins::ForbidLazyLoad::ClassMethods) +68 extend ForbidLazyLoadClassMethods +69 end +70 load_cache +71 end +72 end diff --git a/rdoc-plugins/classes/Sequel/Plugins/StaticCache/ClassMethods.html b/rdoc-plugins/classes/Sequel/Plugins/StaticCache/ClassMethods.html index 0e33476b83..db894a9e46 100644 --- a/rdoc-plugins/classes/Sequel/Plugins/StaticCache/ClassMethods.html +++ b/rdoc-plugins/classes/Sequel/Plugins/StaticCache/ClassMethods.html @@ -91,11 +91,11 @@Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -77 def all(&block) -78 array = @static_cache_frozen ? @all.dup : to_a -79 array.each(&block) if block -80 array -81 end+80 def all(&block) +81 array = @static_cache_frozen ? @all.dup : to_a +82 array.each(&block) if block +83 array +84 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -144 def as_hash(key_column = nil, value_column = nil, opts = OPTS) -145 if key_column.nil? && value_column.nil? -146 if @static_cache_frozen && !opts[:hash] -147 return Hash[cache] -148 else -149 key_column = primary_key -150 end -151 end -152 -153 h = opts[:hash] || {} -154 if value_column -155 if value_column.is_a?(Array) -156 if key_column.is_a?(Array) -157 @all.each{|r| h[r.values.values_at(*key_column)] = r.values.values_at(*value_column)} -158 else -159 @all.each{|r| h[r[key_column]] = r.values.values_at(*value_column)} -160 end -161 else -162 if key_column.is_a?(Array) -163 @all.each{|r| h[r.values.values_at(*key_column)] = r[value_column]} -164 else -165 @all.each{|r| h[r[key_column]] = r[value_column]} -166 end -167 end -168 elsif key_column.is_a?(Array) -169 @all.each{|r| h[r.values.values_at(*key_column)] = static_cache_object(r)} -170 else -171 @all.each{|r| h[r[key_column]] = static_cache_object(r)} -172 end -173 h -174 end+147 def as_hash(key_column = nil, value_column = nil, opts = OPTS) +148 if key_column.nil? && value_column.nil? +149 if @static_cache_frozen && !opts[:hash] +150 return Hash[cache] +151 else +152 key_column = primary_key +153 end +154 end +155 +156 h = opts[:hash] || {} +157 if value_column +158 if value_column.is_a?(Array) +159 if key_column.is_a?(Array) +160 @all.each{|r| h[r.values.values_at(*key_column)] = r.values.values_at(*value_column)} +161 else +162 @all.each{|r| h[r[key_column]] = r.values.values_at(*value_column)} +163 end +164 else +165 if key_column.is_a?(Array) +166 @all.each{|r| h[r.values.values_at(*key_column)] = r[value_column]} +167 else +168 @all.each{|r| h[r[key_column]] = r[value_column]} +169 end +170 end +171 elsif key_column.is_a?(Array) +172 @all.each{|r| h[r.values.values_at(*key_column)] = static_cache_object(r)} +173 else +174 @all.each{|r| h[r[key_column]] = static_cache_object(r)} +175 end +176 h +177 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -108 def cache_get_pk(pk) -109 static_cache_object(cache[pk]) -110 end+111 def cache_get_pk(pk) +112 static_cache_object(cache[pk]) +113 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb - 98 def count(*a, &block) - 99 if a.empty? && !block -100 @all.size -101 else -102 super -103 end -104 end+101 def count(*a, &block) +102 if a.empty? && !block +103 @all.size +104 else +105 super +106 end +107 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -114 def each(&block) -115 if @static_cache_frozen -116 @all.each(&block) -117 else -118 @all.each{|o| yield(static_cache_object(o))} -119 end -120 end+117 def each(&block) +118 if @static_cache_frozen +119 @all.each(&block) +120 else +121 @all.each{|o| yield(static_cache_object(o))} +122 end +123 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -89 def first(*args) -90 if defined?(yield) || args.length > 1 || (args.length == 1 && !args[0].is_a?(Integer)) -91 super -92 else -93 @all.first(*args) -94 end -95 end+92 def first(*args) +93 if defined?(yield) || args.length > 1 || (args.length == 1 && !args[0].is_a?(Integer)) +94 super +95 else +96 @all.first(*args) +97 end +98 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -213 def load_cache -214 @all = load_static_cache_rows -215 h = {} -216 @all.each do |o| -217 o.errors.freeze -218 h[o.pk.freeze] = o.freeze -219 end -220 @cache = h.freeze -221 end+216 def load_cache +217 @all = load_static_cache_rows +218 h = {} +219 @all.each do |o| +220 o.errors.freeze +221 h[o.pk.freeze] = o.freeze +222 end +223 @cache = h.freeze +224 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -123 def map(column=nil, &block) -124 if column -125 raise(Error, "Cannot provide both column and block to map") if block -126 if column.is_a?(Array) -127 @all.map{|r| r.values.values_at(*column)} -128 else -129 @all.map{|r| r[column]} -130 end -131 elsif @static_cache_frozen -132 @all.map(&block) -133 elsif block -134 @all.map{|o| yield(static_cache_object(o))} -135 else -136 all.map -137 end -138 end+126 def map(column=nil, &block) +127 if column +128 raise(Error, "Cannot provide both column and block to map") if block +129 if column.is_a?(Array) +130 @all.map{|r| r.values.values_at(*column)} +131 else +132 @all.map{|r| r[column]} +133 end +134 elsif @static_cache_frozen +135 @all.map(&block) +136 elsif block +137 @all.map{|o| yield(static_cache_object(o))} +138 else +139 all.map +140 end +141 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -207 def static_cache_allow_modifications? -208 !@static_cache_frozen -209 end+210 def static_cache_allow_modifications? +211 !@static_cache_frozen +212 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -177 def to_hash(*a) -178 as_hash(*a) -179 end+180 def to_hash(*a) +181 as_hash(*a) +182 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -182 def to_hash_groups(key_column, value_column = nil, opts = OPTS) -183 h = opts[:hash] || {} -184 if value_column -185 if value_column.is_a?(Array) -186 if key_column.is_a?(Array) -187 @all.each{|r| (h[r.values.values_at(*key_column)] ||= []) << r.values.values_at(*value_column)} -188 else -189 @all.each{|r| (h[r[key_column]] ||= []) << r.values.values_at(*value_column)} -190 end -191 else -192 if key_column.is_a?(Array) -193 @all.each{|r| (h[r.values.values_at(*key_column)] ||= []) << r[value_column]} -194 else -195 @all.each{|r| (h[r[key_column]] ||= []) << r[value_column]} -196 end -197 end -198 elsif key_column.is_a?(Array) -199 @all.each{|r| (h[r.values.values_at(*key_column)] ||= []) << static_cache_object(r)} -200 else -201 @all.each{|r| (h[r[key_column]] ||= []) << static_cache_object(r)} -202 end -203 h -204 end+185 def to_hash_groups(key_column, value_column = nil, opts = OPTS) +186 h = opts[:hash] || {} +187 if value_column +188 if value_column.is_a?(Array) +189 if key_column.is_a?(Array) +190 @all.each{|r| (h[r.values.values_at(*key_column)] ||= []) << r.values.values_at(*value_column)} +191 else +192 @all.each{|r| (h[r[key_column]] ||= []) << r.values.values_at(*value_column)} +193 end +194 else +195 if key_column.is_a?(Array) +196 @all.each{|r| (h[r.values.values_at(*key_column)] ||= []) << r[value_column]} +197 else +198 @all.each{|r| (h[r[key_column]] ||= []) << r[value_column]} +199 end +200 end +201 elsif key_column.is_a?(Array) +202 @all.each{|r| (h[r.values.values_at(*key_column)] ||= []) << static_cache_object(r)} +203 else +204 @all.each{|r| (h[r[key_column]] ||= []) << static_cache_object(r)} +205 end +206 h +207 end
module +Sequel::Plugins::StaticCache::ForbidLazyLoadClassMethods +
+ +Public Instance methods
+Do not forbid lazy loading for single object retrieval.
+ +# File lib/sequel/plugins/static_cache.rb +254 def cache_get_pk(pk) +255 primary_key_lookup(pk) +256 end+
Use static cache to return first arguments.
+ +# File lib/sequel/plugins/static_cache.rb +259 def first(*args) +260 if !defined?(yield) && args.empty? +261 if o = @all.first +262 _static_cache_frozen_copy(o) +263 end +264 else +265 super +266 end +267 end+
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -251 def before_destroy -252 cancel_action("modifying model objects that use the static_cache plugin is not allowed") unless model.static_cache_allow_modifications? -253 super -254 end+289 def before_destroy +290 cancel_action("modifying model objects that use the static_cache plugin is not allowed") unless model.static_cache_allow_modifications? +291 super +292 end
Public Instance methods
[show source]# File lib/sequel/plugins/static_cache.rb -257 def before_save -258 cancel_action("modifying model objects that use the static_cache plugin is not allowed") unless model.static_cache_allow_modifications? -259 super -260 end+295 def before_save +296 cancel_action("modifying model objects that use the static_cache plugin is not allowed") unless model.static_cache_allow_modifications? +297 super +298 end
Public Class methods
# File lib/sequel/extensions/server_block.rb 70 def self.extended(db) 71 pool = db.pool -72 if defined?(ShardedThreadedConnectionPool) && pool.is_a?(ShardedThreadedConnectionPool) -73 pool.extend(ThreadedServerBlock) -74 pool.instance_variable_set(:@default_servers, {}) -75 else -76 pool.extend(UnthreadedServerBlock) -77 pool.instance_variable_set(:@default_servers, []) -78 end -79 end+72 case pool.pool_type +73 when :sharded_threaded, :sharded_timed_queue +74 pool.extend(ThreadedServerBlock) +75 pool.instance_variable_set(:@default_servers, {}) +76 else +77 pool.extend(UnthreadedServerBlock) +78 pool.instance_variable_set(:@default_servers, []) +79 end +80 end
Public Instance methods
@@ -97,9 +98,9 @@Public Instance methods
[show source]# File lib/sequel/extensions/server_block.rb -82 def with_server(default_server, read_only_server=default_server, &block) -83 pool.with_server(default_server, read_only_server, &block) -84 end+83 def with_server(default_server, read_only_server=default_server, &block) +84 pool.with_server(default_server, read_only_server, &block) +85 end diff --git a/rdoc-plugins/classes/Sequel/ThreadedServerBlock.html b/rdoc-plugins/classes/Sequel/ThreadedServerBlock.html index 6043828367..266f9f4940 100644 --- a/rdoc-plugins/classes/Sequel/ThreadedServerBlock.html +++ b/rdoc-plugins/classes/Sequel/ThreadedServerBlock.html @@ -66,12 +66,12 @@
Public Instance methods
[show source]# File lib/sequel/extensions/server_block.rb -131 def with_server(default_server, read_only_server=default_server) -132 set_default_server(default_server, read_only_server) -133 yield -134 ensure -135 clear_default_server -136 end+132 def with_server(default_server, read_only_server=default_server) +133 set_default_server(default_server, read_only_server) +134 yield +135 ensure +136 clear_default_server +137 end diff --git a/rdoc-plugins/classes/Sequel/UnthreadedServerBlock.html b/rdoc-plugins/classes/Sequel/UnthreadedServerBlock.html index 1bf24e229f..2dbf0ed2e9 100644 --- a/rdoc-plugins/classes/Sequel/UnthreadedServerBlock.html +++ b/rdoc-plugins/classes/Sequel/UnthreadedServerBlock.html @@ -66,12 +66,12 @@
Public Instance methods
[show source]# File lib/sequel/extensions/server_block.rb -90 def with_server(default_server, read_only_server=default_server) -91 set_default_server(default_server, read_only_server) -92 yield -93 ensure -94 clear_default_server -95 end+91 def with_server(default_server, read_only_server=default_server) +92 set_default_server(default_server, read_only_server) +93 yield +94 ensure +95 clear_default_server +96 end diff --git a/rdoc-plugins/created.rid b/rdoc-plugins/created.rid index 6ea81a7f56..de96549e72 100644 --- a/rdoc-plugins/created.rid +++ b/rdoc-plugins/created.rid @@ -1,16 +1,16 @@ -Thu, 01 Jun 2023 07:42:54 -0700 +Sat, 01 Jul 2023 12:54:00 -0700 lib/sequel/extensions/_model_constraint_validations.rb Tue, 24 Jan 2017 12:27:29 -0800 lib/sequel/extensions/_model_pg_row.rb Tue, 11 Oct 2022 13:37:12 -0700 lib/sequel/extensions/_pretty_table.rb Mon, 17 Oct 2022 09:39:14 -0700 lib/sequel/extensions/any_not_empty.rb Tue, 21 Sep 2021 14:24:30 -0700 lib/sequel/extensions/arbitrary_servers.rb Tue, 01 Aug 2017 08:12:00 -0700 -lib/sequel/extensions/async_thread_pool.rb Thu, 18 May 2023 19:26:02 -0700 +lib/sequel/extensions/async_thread_pool.rb Fri, 09 Jun 2023 10:15:03 -0700 lib/sequel/extensions/auto_literal_strings.rb Fri, 21 Oct 2022 08:19:04 -0700 lib/sequel/extensions/blank.rb Fri, 29 Jan 2021 08:45:15 -0800 lib/sequel/extensions/caller_logging.rb Thu, 30 Aug 2018 11:48:43 -0700 lib/sequel/extensions/columns_introspection.rb Thu, 09 Jul 2020 12:21:33 -0700 -lib/sequel/extensions/connection_expiration.rb Fri, 17 Apr 2020 11:52:37 -0700 -lib/sequel/extensions/connection_validator.rb Tue, 07 Mar 2023 16:00:58 -0800 +lib/sequel/extensions/connection_expiration.rb Mon, 12 Jun 2023 13:05:49 -0700 +lib/sequel/extensions/connection_validator.rb Mon, 12 Jun 2023 13:05:49 -0700 lib/sequel/extensions/constant_sql_override.rb Tue, 11 Sep 2018 10:35:39 -0700 lib/sequel/extensions/constraint_validations.rb Fri, 21 Oct 2022 08:19:04 -0700 lib/sequel/extensions/core_extensions.rb Tue, 01 Aug 2017 08:12:00 -0700 @@ -73,7 +73,7 @@ lib/sequel/extensions/schema_caching.rb Sun, 25 Feb 2018 09:15:12 -0800 lib/sequel/extensions/schema_dumper.rb Wed, 29 Mar 2023 08:54:35 -0700 lib/sequel/extensions/select_remove.rb Tue, 01 Aug 2017 08:12:01 -0700 lib/sequel/extensions/sequel_4_dataset_methods.rb Thu, 10 Jan 2019 07:53:39 -0800 -lib/sequel/extensions/server_block.rb Fri, 17 Dec 2021 16:59:47 -0800 +lib/sequel/extensions/server_block.rb Mon, 12 Jun 2023 13:05:49 -0700 lib/sequel/extensions/server_logging.rb Thu, 12 May 2016 12:28:13 -0700 lib/sequel/extensions/set_literalizer.rb Thu, 16 Mar 2023 15:39:58 -0700 lib/sequel/extensions/split_array_nil.rb Tue, 01 Aug 2017 08:12:01 -0700 @@ -163,7 +163,7 @@ lib/sequel/plugins/skip_create_refresh.rb Tue, 01 Aug 2017 08:12:01 -0700 lib/sequel/plugins/skip_saving_columns.rb Wed, 11 Mar 2020 16:32:40 -0700 lib/sequel/plugins/split_values.rb Fri, 16 Jun 2017 12:40:57 -0700 lib/sequel/plugins/sql_comments.rb Fri, 21 Oct 2022 08:19:04 -0700 -lib/sequel/plugins/static_cache.rb Tue, 21 Sep 2021 14:24:30 -0700 +lib/sequel/plugins/static_cache.rb Fri, 30 Jun 2023 11:20:51 -0700 lib/sequel/plugins/static_cache_cache.rb Tue, 06 Aug 2019 13:51:01 -0700 lib/sequel/plugins/string_stripper.rb Thu, 09 Jul 2020 12:21:33 -0700 lib/sequel/plugins/subclasses.rb Fri, 02 Sep 2022 09:11:30 -0700 diff --git a/rdoc-plugins/files/lib/sequel/extensions/async_thread_pool_rb.html b/rdoc-plugins/files/lib/sequel/extensions/async_thread_pool_rb.html index 6a000761ce..20936518ea 100644 --- a/rdoc-plugins/files/lib/sequel/extensions/async_thread_pool_rb.html +++ b/rdoc-plugins/files/lib/sequel/extensions/async_thread_pool_rb.html @@ -31,7 +31,7 @@
async_thread_pool.rb
Last Update:
-2023-05-18 19:26:02 -0700
+2023-06-09 10:15:03 -0700
diff --git a/rdoc-plugins/files/lib/sequel/extensions/connection_expiration_rb.html b/rdoc-plugins/files/lib/sequel/extensions/connection_expiration_rb.html
index 9f8e9bf6ed..81e1b2bded 100644
--- a/rdoc-plugins/files/lib/sequel/extensions/connection_expiration_rb.html
+++ b/rdoc-plugins/files/lib/sequel/extensions/connection_expiration_rb.html
@@ -31,7 +31,7 @@ connection_expiration.rb
Last Update:
-2020-04-17 11:52:37 -0700
+2023-06-12 13:05:49 -0700
@@ -47,7 +47,7 @@ connection_expiration.rb
DB.pool.connection_expiration_timeout = 3600 # 1 hour
-
Note that this extension only affects the default threaded and the sharded threaded connection pool. The single threaded and sharded single threaded connection pools are not affected. As the only reason to use the single threaded pools is for speed, and this extension makes the connection pool slower, there’s not much point in modifying this extension to work with the single threaded pools. The threaded pools work fine even in single threaded code, so if you are currently using a single threaded pool and want to use this extension, switch to using a threaded pool.
+Note that this extension does not work with the single threaded and sharded single threaded connection pools. As the only reason to use the single threaded pools is for speed, and this extension makes the connection pool slower, there’s not much point in modifying this extension to work with the single threaded pools. The non-single threaded pools work fine even in single threaded code, so if you are currently using a single threaded pool and want to use this extension, switch to using another pool.
Related module: Sequel::ConnectionExpiration
diff --git a/rdoc-plugins/files/lib/sequel/extensions/connection_validator_rb.html b/rdoc-plugins/files/lib/sequel/extensions/connection_validator_rb.html
index 177acff453..a546c8f39d 100644
--- a/rdoc-plugins/files/lib/sequel/extensions/connection_validator_rb.html
+++ b/rdoc-plugins/files/lib/sequel/extensions/connection_validator_rb.html
@@ -31,7 +31,7 @@ connection_validator.rb
Last Update:
-2023-03-07 16:00:58 -0800
+2023-06-12 13:05:49 -0700
@@ -49,7 +49,7 @@ connection_validator.rb
Note that if you set the timeout to validate connections on every checkout, you should probably manually control connection checkouts on a coarse basis, using Database#synchronize. In a web application, the optimal place for that would be a rack middleware. Validating connections on every checkout without setting up coarse connection checkouts will hurt performance, in some cases significantly. Note that setting up coarse connection checkouts reduces the concurrency level achievable. For example, in a web application, using Database#synchronize in a rack middleware will limit the number of concurrent web requests to the number to connections in the database connection pool.
-Note that this extension only affects the default threaded and the sharded threaded connection pool. The single threaded and sharded single threaded connection pools are not affected. As the only reason to use the single threaded pools is for speed, and this extension makes the connection pool slower, there’s not much point in modifying this extension to work with the single threaded pools. The threaded pools work fine even in single threaded code, so if you are currently using a single threaded pool and want to use this extension, switch to using a threaded pool.
+Note that this extension does not work with the single threaded and sharded single threaded connection pools. As the only reason to use the single threaded pools is for speed, and this extension makes the connection pool slower, there’s not much point in modifying this extension to work with the single threaded pools. The non-single threaded pools work fine even in single threaded code, so if you are currently using a single threaded pool and want to use this extension, switch to using another pool.
Related module: Sequel::ConnectionValidator
diff --git a/rdoc-plugins/files/lib/sequel/extensions/server_block_rb.html b/rdoc-plugins/files/lib/sequel/extensions/server_block_rb.html
index 53dea53917..f5e531ce3f 100644
--- a/rdoc-plugins/files/lib/sequel/extensions/server_block_rb.html
+++ b/rdoc-plugins/files/lib/sequel/extensions/server_block_rb.html
@@ -31,7 +31,7 @@ server_block.rb
Last Update:
-2021-12-17 16:59:47 -0800
+2023-06-12 13:05:49 -0700
diff --git a/rdoc-plugins/files/lib/sequel/plugins/static_cache_rb.html b/rdoc-plugins/files/lib/sequel/plugins/static_cache_rb.html
index 4f11aae09e..7877a37a96 100644
--- a/rdoc-plugins/files/lib/sequel/plugins/static_cache_rb.html
+++ b/rdoc-plugins/files/lib/sequel/plugins/static_cache_rb.html
@@ -31,7 +31,7 @@ static_cache.rb
Last Update:
-2021-09-21 14:24:30 -0700
+2023-06-30 11:20:51 -0700
diff --git a/rdoc-plugins/fr_class_index.html b/rdoc-plugins/fr_class_index.html
index 7cbcfde5d3..5d2b6b54ed 100644
--- a/rdoc-plugins/fr_class_index.html
+++ b/rdoc-plugins/fr_class_index.html
@@ -300,6 +300,7 @@
Sequel::Plugins::SqlComments::InstanceMethods
Sequel::Plugins::StaticCache
Sequel::Plugins::StaticCache::ClassMethods
+Sequel::Plugins::StaticCache::ForbidLazyLoadClassMethods
Sequel::Plugins::StaticCache::InstanceMethods
Sequel::Plugins::StaticCacheCache
Sequel::Plugins::StaticCacheCache::ClassMethods
diff --git a/rdoc-plugins/fr_method_index.html b/rdoc-plugins/fr_method_index.html
index 3b593fe782..8b92652993 100644
--- a/rdoc-plugins/fr_method_index.html
+++ b/rdoc-plugins/fr_method_index.html
@@ -159,87 +159,87 @@
#validations (Sequel::Plugins::ValidationClassMethods::ClassMethods)
#wrap_json_primitives (Sequel::Postgres::JSONDatabaseMethods)
::_load (Sequel::Postgres::HStore)
-::apply (Sequel::Plugins::SubsetConditions)
-::apply (Sequel::Plugins::Composition)
-::apply (Sequel::Plugins::AutoValidationsConstraintValidationsPresenceMessage)
-::apply (Sequel::Plugins::AssociationDependencies)
-::apply (Sequel::Plugins::PgArrayAssociations)
-::apply (Sequel::Plugins::UnusedAssociations)
-::apply (Sequel::Plugins::AutoValidations)
-::apply (Sequel::Plugins::Touch)
+::apply (Sequel::Plugins::ValidationHelpersGenericTypeMessages)
+::apply (Sequel::Plugins::Serialization)
+::apply (Sequel::Plugins::RcteTree)
::apply (Sequel::Plugins::ColumnEncryption)
+::apply (Sequel::Plugins::AutoValidationsConstraintValidationsPresenceMessage)
+::apply (Sequel::Plugins::Subclasses)
+::apply (Sequel::Plugins::PreparedStatementsSafe)
::apply (Sequel::Plugins::MssqlOptimisticLocking)
+::apply (Sequel::Plugins::PreparedStatements)
+::apply (Sequel::Plugins::Touch)
+::apply (Sequel::Plugins::Finder)
+::apply (Sequel::Plugins::NestedAttributes)
+::apply (Sequel::Plugins::SerializationModificationDetection)
+::apply (Sequel::Plugins::StringStripper)
+::apply (Sequel::Plugins::OptimisticLocking)
::apply (Sequel::Plugins::LazyAttributes)
+::apply (Sequel::Plugins::InvertedSubsets)
+::apply (Sequel::Plugins::DelayAddAssociation)
::apply (Sequel::Plugins::InputTransformer)
-::apply (Sequel::Plugins::OptimisticLocking)
-::apply (Sequel::Plugins::PreparedStatementsSafe)
+::apply (Sequel::Plugins::UnusedAssociations)
+::apply (Sequel::Plugins::AutoValidations)
::apply (Sequel::Plugins::HookClassMethods)
-::apply (Sequel::Plugins::RcteTree)
-::apply (Sequel::Plugins::ConstraintValidations)
-::apply (Sequel::Plugins::Subclasses)
-::apply (Sequel::Plugins::Serialization)
-::apply (Sequel::Plugins::DelayAddAssociation)
-::apply (Sequel::Plugins::ValidateAssociated)
-::apply (Sequel::Plugins::InvertedSubsets)
::apply (Sequel::Migration)
-::apply (Sequel::Plugins::ValidationHelpersGenericTypeMessages)
-::apply (Sequel::Plugins::SerializationModificationDetection)
-::apply (Sequel::Plugins::Finder)
-::apply (Sequel::Plugins::ValidationClassMethods)
-::apply (Sequel::Plugins::StringStripper)
-::apply (Sequel::Plugins::PreparedStatements)
-::apply (Sequel::Migrator)
-::apply (Sequel::Plugins::ColumnConflicts)
::apply (Sequel::Plugins::ClassTableInheritance)
-::apply (Sequel::Plugins::NestedAttributes)
+::apply (Sequel::Plugins::Composition)
+::apply (Sequel::Plugins::SubsetConditions)
+::apply (Sequel::Migrator)
+::apply (Sequel::Plugins::PgArrayAssociations)
+::apply (Sequel::Plugins::ConstraintValidations)
+::apply (Sequel::Plugins::AssociationDependencies)
+::apply (Sequel::Plugins::ValidationClassMethods)
+::apply (Sequel::Plugins::ValidateAssociated)
::apply (Sequel::Plugins::Tree)
+::apply (Sequel::Plugins::ColumnConflicts)
::check_current (Sequel::Migrator)
::clear (String::Inflections)
-::configure (Sequel::Plugins::DefaultsSetter)
+::configure (Sequel::Plugins::PgAutoConstraintValidations)
+::configure (Sequel::Plugins::ConstraintValidations)
+::configure (Sequel::Plugins::StaticCache)
+::configure (Sequel::Plugins::AssociationDependencies)
::configure (Sequel::Plugins::ClassTableInheritance)
+::configure (Sequel::Plugins::ColumnSelect)
+::configure (Sequel::Plugins::SqlComments)
+::configure (Sequel::Plugins::TableSelect)
+::configure (Sequel::Plugins::DefaultsSetter)
+::configure (Sequel::Plugins::ForceEncoding)
+::configure (Sequel::Plugins::CsvSerializer)
+::configure (Sequel::Plugins::List)
+::configure (Sequel::Plugins::AutoValidations)
+::configure (Sequel::Plugins::LazyAttributes)
::configure (Sequel::Plugins::SkipSavingColumns)
-::configure (Sequel::Plugins::Caching)
-::configure (Sequel::Plugins::BooleanSubsets)
+::configure (Sequel::Plugins::Uuid)
::configure (Sequel::Plugins::SingleTableInheritance)
+::configure (Sequel::Plugins::OptimisticLocking)
::configure (Sequel::Plugins::StaticCacheCache)
-::configure (Sequel::Plugins::JsonSerializer)
-::configure (Sequel::Plugins::BooleanReaders)
-::configure (Sequel::Plugins::Serialization)
-::configure (Sequel::Plugins::InsertConflict)
-::configure (Sequel::Plugins::Uuid)
-::configure (Sequel::Plugins::InstanceSpecificDefault)
+::configure (Sequel::Plugins::InputTransformer)
::configure (Sequel::Plugins::StringStripper)
-::configure (Sequel::Plugins::RequireValidSchema)
-::configure (Sequel::Plugins::UpdateRefresh)
-::configure (Sequel::Plugins::ForceEncoding)
+::configure (Sequel::Plugins::ConcurrentEagerLoading)
+::configure (Sequel::Plugins::PgRow)
+::configure (Sequel::Plugins::Touch)
::configure (Sequel::Plugins::ColumnConflicts)
-::configure (Sequel::Plugins::TableSelect)
-::configure (Sequel::Plugins::InputTransformer)
+::configure (Sequel::Plugins::MssqlOptimisticLocking)
+::configure (Sequel::Plugins::TypecastOnLoad)
+::configure (Sequel::Plugins::PreparedStatementsSafe)
::configure (Sequel::Plugins::Timestamps)
-::configure (Sequel::Plugins::StaticCache)
+::configure (Sequel::Plugins::InsertConflict)
+::configure (Sequel::Plugins::InsertReturningSelect)
::configure (Sequel::Plugins::InstanceFilters)
-::configure (Sequel::Plugins::AssociationProxies)
-::configure (Sequel::Plugins::LazyAttributes)
-::configure (Sequel::Plugins::SqlComments)
-::configure (Sequel::Plugins::List)
-::configure (Sequel::Plugins::PrimaryKeyLookupCheckValues)
-::configure (Sequel::Plugins::PgAutoConstraintValidations)
+::configure (Sequel::Plugins::AutoValidationsConstraintValidationsPresenceMessage)
::configure (Sequel::Plugins::UnusedAssociations)
-::configure (Sequel::Plugins::PreparedStatementsSafe)
-::configure (Sequel::Plugins::Touch)
+::configure (Sequel::Plugins::Serialization)
::configure (Sequel::Plugins::ColumnEncryption)
-::configure (Sequel::Plugins::CsvSerializer)
-::configure (Sequel::Plugins::TypecastOnLoad)
-::configure (Sequel::Plugins::AssociationDependencies)
-::configure (Sequel::Plugins::InsertReturningSelect)
-::configure (Sequel::Plugins::AutoValidations)
-::configure (Sequel::Plugins::ColumnSelect)
-::configure (Sequel::Plugins::OptimisticLocking)
-::configure (Sequel::Plugins::ConstraintValidations)
-::configure (Sequel::Plugins::AutoValidationsConstraintValidationsPresenceMessage)
-::configure (Sequel::Plugins::ConcurrentEagerLoading)
-::configure (Sequel::Plugins::MssqlOptimisticLocking)
-::configure (Sequel::Plugins::PgRow)
+::configure (Sequel::Plugins::PrimaryKeyLookupCheckValues)
+::configure (Sequel::Plugins::BooleanReaders)
+::configure (Sequel::Plugins::BooleanSubsets)
+::configure (Sequel::Plugins::UpdateRefresh)
+::configure (Sequel::Plugins::InstanceSpecificDefault)
+::configure (Sequel::Plugins::JsonSerializer)
+::configure (Sequel::Plugins::Caching)
+::configure (Sequel::Plugins::RequireValidSchema)
+::configure (Sequel::Plugins::AssociationProxies)
::core_extensions? (Sequel)
::create (Sequel::MigrationDSL)
::db_parse_json (Sequel::Postgres::JSONDatabaseMethods)
@@ -250,29 +250,29 @@
::define_async_method (Sequel::Database::AsyncThreadPool::DatasetMethods)
::descendants (Sequel::Migration)
::empty (Sequel::Postgres::PGRange)
+::extended (Sequel::ServerBlock)
+::extended (Sequel::Postgres::PGRow::DatabaseMethods)
+::extended (Sequel::Postgres::PGRange::DatabaseMethods)
+::extended (Sequel::ConnectionValidator)
::extended (Sequel::ServerLogging)
-::extended (Sequel::Postgres::JSONDatabaseMethods)
+::extended (Sequel::ConstantSqlOverride::DatabaseMethods)
+::extended (Sequel::Postgres::HStore::DatabaseMethods)
+::extended (Sequel::ConnectionExpiration)
::extended (Sequel::Postgres::PGArray::DatabaseMethods)
-::extended (Sequel::Postgres::PGRange::DatabaseMethods)
-::extended (Sequel::Postgres::PGRow::DatabaseMethods)
-::extended (Sequel::Database::AsyncThreadPool::DatabaseMethods)
-::extended (Sequel::Postgres::PGMultiRange::DatabaseMethods)
+::extended (Sequel::Postgres::JSONDatabaseMethods)
+::extended (Sequel::ConstraintValidations)
::extended (Sequel::Postgres::ExtendedDateSupport)
+::extended (Sequel::Postgres::PGMultiRange::DatabaseMethods)
+::extended (Sequel::IdentifierMangling::DatabaseMethods)
+::extended (Sequel::DatabaseQuery)
::extended (Sequel::Postgres::AutoParameterize::DatabaseMethods)
-::extended (Sequel::Postgres::IntervalDatabaseMethods)
-::extended (Sequel::ServerBlock)
::extended (Sequel::SQLLogNormalizer)
-::extended (Sequel::DatabaseQuery)
-::extended (Sequel::IdentifierMangling::DatabaseMethods)
-::extended (Sequel::Postgres::EnumDatabaseMethods)
-::extended (Sequel::IndexCaching)
-::extended (Sequel::Postgres::HStore::DatabaseMethods)
+::extended (Sequel::Postgres::IntervalDatabaseMethods)
::extended (Sequel::Postgres::InetDatabaseMethods)
-::extended (Sequel::ConstantSqlOverride::DatabaseMethods)
-::extended (Sequel::ConnectionExpiration)
-::extended (Sequel::ConnectionValidator)
+::extended (Sequel::Database::AsyncThreadPool::DatabaseMethods)
+::extended (Sequel::IndexCaching)
::extended (Database::SQLComments)
-::extended (Sequel::ConstraintValidations)
+::extended (Sequel::Postgres::EnumDatabaseMethods)
::from_range (Sequel::Postgres::PGRange)
::inflections (String)
::inherited (Sequel::Migration)
@@ -285,41 +285,41 @@
::literal_duration (Sequel::Postgres::IntervalDatabaseMethods)
::migration (Sequel)
::migrator_class (Sequel::Migrator)
-::new (Sequel::SQL::EscapedLikeExpression)
-::new (Sequel::MigrationAlterTableReverser)
::new (Sequel::SQL::DateAdd)
-::new (Sequel::Postgres::HStoreSubscriptOp)
::new (Sequel::Postgres::AutoParameterize::PlaceholderLiteralizer)
-::new (Sequel::SQL::IsDistinctFrom)
+::new (Sequel::Database::AsyncThreadPool::PreemptableProxy)
+::new (Sequel::Plugins::AfterInitialize::InstanceMethods)
+::new (Sequel::Postgres::PGArray)
+::new (Sequel::Postgres::PGArray::Creator)
+::new (Sequel::Migrator)
::new (Sequel::TimestampMigrator)
-::new (Sequel::Postgres::InetOp)
-::new (Sequel::Dataset::Query)
-::new (Sequel::SQL::StringAgg)
-::new (Sequel::Postgres::PGMultiRange::Parser)
-::new (Sequel::Plugins::JsonSerializer::Literal)
+::new (Sequel::ToDot)
+::new (Sequel::Database::AsyncThreadPool::Proxy)
+::new (Sequel::Postgres::PGRange::Parser)
::new (Sequel::MigrationReverser)
+::new (Sequel::Postgres::JSONBSubscriptOp)
::new (Sequel::SimpleMigration)
-::new (Sequel::Migrator)
-::new (Sequel::ToDot)
-::new (Sequel::ConstraintValidations::Generator)
-::new (Sequel::Postgres::PGRange)
-::new (Sequel::Postgres::PGArray::Parser)
-::new (Sequel::Postgres::PGRow::Parser)
-::new (Sequel::Postgres::PGMultiRange)
+::new (Sequel::Plugins::JsonSerializer::Literal)
::new (Sequel::Postgres::PGMultiRange::Creator)
-::new (Sequel::Postgres::PGArray::Creator)
-::new (Sequel::Plugins::AssociationProxies::AssociationProxy)
+::new (Sequel::Dataset::Query)
::new (Sequel::Migration)
+::new (Sequel::Database::AsyncThreadPool::BaseProxy)
+::new (Sequel::Plugins::AssociationProxies::AssociationProxy)
::new (Sequel::Plugins::ValidationClassMethods::ClassMethods::Generator)
-::new (Sequel::Database::AsyncThreadPool::Proxy)
-::new (Sequel::Database::AsyncThreadPool::PreemptableProxy)
::new (Sequel::MigrationDSL)
-::new (Sequel::Postgres::JSONBSubscriptOp)
-::new (Sequel::Plugins::AfterInitialize::InstanceMethods)
-::new (Sequel::Postgres::PGArray)
+::new (Sequel::SQL::EscapedLikeExpression)
+::new (Sequel::SQL::IsDistinctFrom)
+::new (Sequel::Postgres::PGArray::Parser)
+::new (Sequel::Postgres::PGMultiRange)
+::new (Sequel::Postgres::PGRow::Parser)
+::new (Sequel::Postgres::PGRange)
+::new (Sequel::Postgres::InetOp)
+::new (Sequel::SQL::StringAgg)
+::new (Sequel::Postgres::PGMultiRange::Parser)
+::new (Sequel::Postgres::HStoreSubscriptOp)
::new (Sequel::IntegerMigrator)
-::new (Sequel::Database::AsyncThreadPool::BaseProxy)
-::new (Sequel::Postgres::PGRange::Parser)
+::new (Sequel::MigrationAlterTableReverser)
+::new (Sequel::ConstraintValidations::Generator)
::object_to_json_data (Sequel::Plugins::JsonSerializer)
::output (Sequel::ToDot)
::parse (Sequel::Postgres::HStore)
@@ -330,8 +330,8 @@
::run (Sequel::Migrator)
::singular (String::Inflections)
::string (Sequel::PrettyTable)
-::subclass (Sequel::Postgres::PGRow::ArrayRow)
::subclass (Sequel::Postgres::PGRow::HashRow)
+::subclass (Sequel::Postgres::PGRow::ArrayRow)
::uncountable (String::Inflections)
::use_transactions (Sequel::Migration)
::wrap (Sequel::Postgres::PGRowOp)
@@ -340,25 +340,25 @@
#* (Sequel::Postgres::PGRowOp)
#* (Sequel::CoreRefinements)
#+ (Sequel::Postgres::AutoParameterize::QueryString)
-#- (Sequel::Postgres::InetOp)
-#- (Sequel::Postgres::HStoreOp)
#- (Sequel::Postgres::JSONBOp)
-#== (Sequel::Postgres::PGMultiRange)
+#- (Sequel::Postgres::HStoreOp)
+#- (Sequel::Postgres::InetOp)
#== (Sequel::Postgres::PGRange)
+#== (Sequel::Postgres::PGMultiRange)
#=== (Sequel::Postgres::PGRange)
#=== (Sequel::Postgres::PGMultiRange)
-#[] (Sequel::Plugins::SplitValues::InstanceMethods)
-#[] (Sequel::Plugins::DefaultsSetter::InstanceMethods)
-#[] (Sequel::Postgres::JSONBaseOp)
+#[] (Sequel::Postgres::JSONBOp)
+#[] (Sequel::SymbolAref)
+#[] (Sequel::Postgres::PGRowOp)
#[] (Sequel::Plugins::AccessedColumns::InstanceMethods)
#[] (Sequel::SQLite::JSONOp)
-#[] (Sequel::Postgres::ArrayOp)
+#[] (Symbol)
#[] (Sequel::Postgres::HStoreOp)
-#[] (Sequel::SymbolAref)
-#[] (Sequel::Postgres::PGRowOp)
+#[] (Sequel::Plugins::SplitValues::InstanceMethods)
+#[] (Sequel::Postgres::ArrayOp)
#[] (Sequel::Plugins::ActiveModel::Errors)
-#[] (Symbol)
-#[] (Sequel::Postgres::JSONBOp)
+#[] (Sequel::Postgres::JSONBaseOp)
+#[] (Sequel::Plugins::DefaultsSetter::InstanceMethods)
#[]= (Sequel::Plugins::InputTransformer::InstanceMethods)
#__value (Sequel::Database::AsyncThreadPool::BaseProxy)
#_dump (Sequel::Postgres::HStore)
@@ -372,29 +372,29 @@
#add_named_conversion_proc (Sequel::Postgres::PGArray::DatabaseMethods)
#add_typecast_on_load_columns (Sequel::Plugins::TypecastOnLoad::ClassMethods)
#after_create (Sequel::Plugins::Touch::InstanceMethods)
-#after_destroy (Sequel::Plugins::List::InstanceMethods)
#after_destroy (Sequel::Plugins::Touch::InstanceMethods)
-#after_destroy (Sequel::Plugins::AssociationDependencies::InstanceMethods)
-#after_destroy (Sequel::Plugins::ActiveModel::InstanceMethods)
#after_destroy (Sequel::Plugins::InstanceFilters::InstanceMethods)
+#after_destroy (Sequel::Plugins::ActiveModel::InstanceMethods)
+#after_destroy (Sequel::Plugins::AssociationDependencies::InstanceMethods)
#after_destroy (Sequel::Plugins::InstanceHooks::InstanceMethods)
+#after_destroy (Sequel::Plugins::List::InstanceMethods)
#after_initialize (Sequel::Plugins::AfterInitialize::InstanceMethods)
+#after_save (Sequel::Plugins::AssociationPks::InstanceMethods)
+#after_save (Sequel::Plugins::SerializationModificationDetection::InstanceMethods)
#after_save (Sequel::Plugins::Dirty::InstanceMethods)
-#after_save (Sequel::Plugins::AccessedColumns::InstanceMethods)
#after_save (Sequel::Plugins::InstanceHooks::InstanceMethods)
-#after_save (Sequel::Plugins::SerializationModificationDetection::InstanceMethods)
-#after_save (Sequel::Plugins::AssociationPks::InstanceMethods)
+#after_save (Sequel::Plugins::AccessedColumns::InstanceMethods)
+#after_update (Sequel::Plugins::Touch::InstanceMethods)
#after_update (Sequel::Plugins::UpdateRefresh::InstanceMethods)
#after_update (Sequel::Plugins::InstanceFilters::InstanceMethods)
#after_update (Sequel::Plugins::ModificationDetection::InstanceMethods)
#after_update (Sequel::Plugins::UpdatePrimaryKey::InstanceMethods)
#after_update (Sequel::Plugins::Dirty::InstanceMethods)
-#after_update (Sequel::Plugins::Touch::InstanceMethods)
#after_validation (Sequel::Plugins::InstanceHooks::InstanceMethods)
#akeys (Sequel::Postgres::HStoreOp)
#all (Sequel::Postgres::ArrayOp)
-#all (Sequel::Plugins::EagerEach::DatasetMethods)
#all (Sequel::Plugins::StaticCache::ClassMethods)
+#all (Sequel::Plugins::EagerEach::DatasetMethods)
#allow_lazy_load (Sequel::Plugins::ForbidLazyLoad::InstanceMethods)
#allow_lazy_load_for_static_cache_associations (Sequel::Plugins::ForbidLazyLoad::ClassMethods)
#allow_manual_timestamp_update? (Sequel::Plugins::Timestamps::ClassMethods)
@@ -412,16 +412,16 @@
#array_from_xml (Sequel::Plugins::XmlSerializer::ClassMethods)
#array_length (Sequel::Postgres::JSONBaseOp)
#array_length (Sequel::SQLite::JSONOp)
-#array_type (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#array_type (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#array_type (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#as (Sequel::SymbolAs)
#as_hash (Sequel::Plugins::StaticCache::ClassMethods)
#associate (Sequel::Plugins::UnusedAssociations::ClassMethods)
#associate (Sequel::Plugins::DatasetAssociations::ClassMethods)
#associate (Sequel::Plugins::AutoRestrictEagerGraph::ClassMethods)
#associated (Sequel::Plugins::DatasetAssociations::DatasetMethods)
-#associated_object_keys (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#associated_object_keys (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#associated_object_keys (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#association_reflection (Sequel::Plugins::UnusedAssociations::ClassMethods)
#async (Sequel::Database::AsyncThreadPool::DatasetMethods)
#at_position (Sequel::Plugins::List::InstanceMethods)
@@ -430,67 +430,68 @@
#auto_validate_types? (Sequel::Plugins::AutoValidations::ClassMethods)
#avals (Sequel::Postgres::HStoreOp)
#before_create (Sequel::Plugins::PreparedStatementsSafe::InstanceMethods)
+#before_destroy (Sequel::Plugins::InstanceHooks::InstanceMethods)
#before_destroy (Sequel::Plugins::MssqlOptimisticLocking::InstanceMethods)
+#before_destroy (Sequel::Plugins::OptimisticLocking::InstanceMethods)
#before_destroy (Sequel::Plugins::AssociationDependencies::InstanceMethods)
#before_destroy (Sequel::Plugins::StaticCache::InstanceMethods)
-#before_destroy (Sequel::Plugins::InstanceHooks::InstanceMethods)
-#before_destroy (Sequel::Plugins::OptimisticLocking::InstanceMethods)
#before_save (Sequel::Plugins::InstanceHooks::InstanceMethods)
-#before_save (Sequel::Plugins::StaticCache::InstanceMethods)
#before_save (Sequel::Plugins::Tree::SingleRoot::InstanceMethods)
+#before_save (Sequel::Plugins::StaticCache::InstanceMethods)
#before_update (Sequel::Plugins::OptimisticLocking::InstanceMethods)
-#before_update (Sequel::Plugins::Caching::InstanceMethods)
#before_update (Sequel::Plugins::Timestamps::InstanceMethods)
+#before_update (Sequel::Plugins::Caching::InstanceMethods)
#before_update (Sequel::Plugins::MssqlOptimisticLocking::InstanceMethods)
#before_validation (Sequel::Plugins::List::InstanceMethods)
-#before_validation (Sequel::Plugins::Timestamps::InstanceMethods)
#before_validation (Sequel::Plugins::Serialization::InstanceMethods)
-#before_validation (Sequel::Plugins::Composition::InstanceMethods)
-#before_validation (Sequel::Plugins::ClassTableInheritance::InstanceMethods)
#before_validation (Sequel::Plugins::Uuid::InstanceMethods)
+#before_validation (Sequel::Plugins::ClassTableInheritance::InstanceMethods)
+#before_validation (Sequel::Plugins::Timestamps::InstanceMethods)
+#before_validation (Sequel::Plugins::Composition::InstanceMethods)
#before_validation (Sequel::Plugins::SingleTableInheritance::InstanceMethods)
-#blank? (NilClass)
-#blank? (Numeric)
+#blank? (TrueClass)
#blank? (Object)
-#blank? (String)
+#blank? (Numeric)
#blank? (FalseClass)
-#blank? (TrueClass)
-#bound_variable_arg (Sequel::Postgres::PGRange::DatabaseMethods)
+#blank? (NilClass)
+#blank? (String)
#bound_variable_arg (Sequel::Postgres::JSONDatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::InetDatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::PGArray::DatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::PGMultiRange::DatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::PGRange::DatabaseMethods)
#bound_variable_arg (Sequel::Postgres::ExtendedDateSupport)
#bound_variable_arg (Sequel::Postgres::PGRow::DatabaseMethods)
-#bound_variable_arg (Sequel::Postgres::HStore::DatabaseMethods)
#bound_variable_arg (Sequel::Plugins::PgRow::DatabaseMethods)
#bound_variable_arg (Sequel::Postgres::IntervalDatabaseMethods)
-#bound_variable_arg (Sequel::Postgres::InetDatabaseMethods)
-#bound_variable_arg (Sequel::Postgres::PGMultiRange::DatabaseMethods)
-#bound_variable_arg (Sequel::Postgres::PGArray::DatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::HStore::DatabaseMethods)
#cache_default_values? (Sequel::Plugins::DefaultsSetter::ClassMethods)
#cache_delete_pk (Sequel::Plugins::Caching::ClassMethods)
-#cache_get_pk (Sequel::Plugins::Caching::ClassMethods)
#cache_get_pk (Sequel::Plugins::StaticCache::ClassMethods)
+#cache_get_pk (Sequel::Plugins::StaticCache::ForbidLazyLoadClassMethods)
+#cache_get_pk (Sequel::Plugins::Caching::ClassMethods)
#cache_key (Sequel::Plugins::Caching::InstanceMethods)
#cache_key (Sequel::Plugins::Caching::ClassMethods)
#cache_key_prefix (Sequel::Plugins::Caching::ClassMethods)
#calculate_values_hashes (Sequel::Plugins::ModificationDetection::InstanceMethods)
+#call (Sequel::Plugins::AfterInitialize::ClassMethods)
+#call (Sequel::Postgres::PGRange::Parser)
#call (Sequel::Postgres::IntervalDatabaseMethods::Parser)
+#call (Sequel::Postgres::PGMultiRange::Creator)
+#call (Sequel::Postgres::PGRow::Parser)
#call (Sequel::Plugins::TypecastOnLoad::ClassMethods)
-#call (Sequel::Plugins::SplitValues::ClassMethods)
-#call (Sequel::Postgres::PGRange::Parser)
-#call (Sequel::Plugins::AfterInitialize::ClassMethods)
#call (Sequel::Plugins::ModificationDetection::ClassMethods)
#call (Sequel::Plugins::ForceEncoding::ClassMethods)
-#call (Sequel::Postgres::PGRow::Parser)
-#call (Sequel::Postgres::PGMultiRange::Creator)
+#call (Sequel::Plugins::SplitValues::ClassMethods)
#call (Sequel::Postgres::PGArray::Creator)
#camelcase (String)
#camelize (String)
#can_have_associated_objects? (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#can_have_associated_objects? (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#cardinality (Sequel::Postgres::ArrayOp)
-#case (Sequel::CoreRefinements)
-#case (Array)
#case (Hash)
+#case (Array)
+#case (Sequel::CoreRefinements)
#cast_sql_append (Sequel::Postgres::AutoParameterize::DatasetMethods)
#change (Sequel::MigrationDSL)
#changed_columns (Sequel::Plugins::ModificationDetection::InstanceMethods)
@@ -506,36 +507,36 @@
#column_previously_was (Sequel::Plugins::Dirty::InstanceMethods)
#column_schema_to_ruby_type (Sequel::SchemaDumper)
#columns (Sequel::Dataset::NullDataset)
-#columns (Sequel::Postgres::PGRow::HashRow)
#columns (Sequel::ColumnsIntrospection)
+#columns (Sequel::Postgres::PGRow::HashRow)
#columns! (Sequel::Plugins::EagerEach::DatasetMethods)
#comment (Sequel::SQLComments)
-#complex_expression_sql_append (Sequel::Dataset::SplitArrayNil)
#complex_expression_sql_append (Sequel::Dataset::SetLiteralizer)
+#complex_expression_sql_append (Sequel::Dataset::SplitArrayNil)
#complex_expression_sql_append (Sequel::Postgres::AutoParameterize::DatasetMethods)
#composition (Sequel::Plugins::Composition::ClassMethods)
#compositions (Sequel::Plugins::Composition::InstanceMethods)
-#concat (Sequel::Postgres::JSONBOp)
-#concat (Sequel::Postgres::HStoreOp)
#concat (Sequel::Postgres::ArrayOp)
+#concat (Sequel::Postgres::HStoreOp)
+#concat (Sequel::Postgres::JSONBOp)
#connect (Sequel::ServerLogging)
#constant_sql_append (Sequel::ConstantSqlOverride::DatasetMethods)
#constantize (String)
#constraint (Sequel::ConstraintValidations::AlterTableGeneratorMethods)
-#contain_all (Sequel::Postgres::JSONBOp)
#contain_all (Sequel::Postgres::HStoreOp)
-#contain_any (Sequel::Postgres::HStoreOp)
+#contain_all (Sequel::Postgres::JSONBOp)
#contain_any (Sequel::Postgres::JSONBOp)
-#contained_by (Sequel::Postgres::HStoreOp)
-#contained_by (Sequel::Postgres::JSONBOp)
+#contain_any (Sequel::Postgres::HStoreOp)
#contained_by (Sequel::Postgres::ArrayOp)
-#contains (Sequel::Postgres::JSONBOp)
+#contained_by (Sequel::Postgres::JSONBOp)
+#contained_by (Sequel::Postgres::HStoreOp)
#contains (Sequel::Postgres::ArrayOp)
#contains (Sequel::Postgres::HStoreOp)
+#contains (Sequel::Postgres::JSONBOp)
#convert_infinite_timestamps= (Sequel::Postgres::ExtendedDateSupport)
#count (Sequel::Plugins::StaticCache::ClassMethods)
-#cover? (Sequel::Postgres::PGRange)
#cover? (Sequel::Postgres::PGMultiRange)
+#cover? (Sequel::Postgres::PGRange)
#create_constraint_validations_table (Sequel::ConstraintValidations)
#create_enum (Sequel::Postgres::EnumDatabaseMethods)
#create_static_cache_update_function (Sequel::Postgres::StaticCacheUpdater)
@@ -555,8 +556,8 @@
#date_add_sql_append (Sequel::SQL::DateAdd::DatasetMethods)
#date_parse_input_handler (Sequel::DateParseInputHandler)
#date_sub (Sequel::SQL::Builders)
-#db_type (Sequel::Postgres::PGRow::ArrayRow)
#db_type (Sequel::Postgres::PGRow::HashRow)
+#db_type (Sequel::Postgres::PGRow::ArrayRow)
#def_dataset_method (Sequel::Plugins::DefDatasetMethod::ClassMethods)
#default_associated_key_alias (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
#default_key (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
@@ -564,22 +565,22 @@
#default_static_cache_update_name (Sequel::Postgres::StaticCacheUpdater)
#define_composition_accessor (Sequel::Plugins::Composition::ClassMethods)
#defined (Sequel::Postgres::HStoreOp)
-#delete (Sequel::Postgres::HStoreOp)
#delete (Sequel::Plugins::ClassTableInheritance::InstanceMethods)
#delete (Sequel::Dataset::NullDataset)
#delete (Sequel::Plugins::Caching::InstanceMethods)
+#delete (Sequel::Postgres::HStoreOp)
#delete_path (Sequel::Postgres::JSONBOp)
#delete_unused_associations_files (Sequel::Plugins::UnusedAssociations::ClassMethods)
#demodulize (String)
-#descendants (Sequel::Plugins::Subclasses::ClassMethods)
#descendants (Sequel::Plugins::Tree::InstanceMethods)
+#descendants (Sequel::Plugins::Subclasses::ClassMethods)
#descendents (Sequel::Plugins::Subclasses::ClassMethods)
#deserialized_values (Sequel::Plugins::Serialization::InstanceMethods)
#dims (Sequel::Postgres::ArrayOp)
#disconnect_connection (Sequel::ServerLogging)
#distinct (Sequel::SQL::StringAgg)
-#down (Sequel::MigrationDSL)
#down (Sequel::Migration)
+#down (Sequel::MigrationDSL)
#drop (Sequel::ConstraintValidations::Generator)
#drop_constraint_validations_for (Sequel::ConstraintValidations)
#drop_constraint_validations_table (Sequel::ConstraintValidations)
@@ -598,22 +599,22 @@
#dump_schema_migration (Sequel::SchemaDumper)
#dump_static_cache_cache (Sequel::Plugins::StaticCacheCache::ClassMethods)
#dump_table_schema (Sequel::SchemaDumper)
-#each (Sequel::Dataset::NullDataset)
-#each (Sequel::Plugins::EagerEach::DatasetMethods)
+#each (Sequel::Postgres::JSONBaseOp)
+#each (Sequel::SQLite::JSONOp)
#each (Sequel::GraphEach)
+#each (Sequel::Postgres::HStoreOp)
+#each (Sequel::Plugins::EagerEach::DatasetMethods)
#each (Sequel::Plugins::ForbidLazyLoad::DatasetMethods)
#each (Sequel::Plugins::StaticCache::ClassMethods)
-#each (Sequel::Postgres::JSONBaseOp)
-#each (Sequel::Postgres::HStoreOp)
-#each (Sequel::SQLite::JSONOp)
+#each (Sequel::Dataset::NullDataset)
#each_page (Sequel::DatasetPagination)
#each_text (Sequel::Postgres::JSONBaseOp)
#eager_graph_build_associations (Sequel::Plugins::EagerGraphEager::DatasetMethods)
#eager_graph_eager (Sequel::Plugins::EagerGraphEager::DatasetMethods)
#eager_graph_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#eager_graph_limit_strategy (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
-#eager_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#eager_limit_strategy (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#eager_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#eager_load_concurrently (Sequel::Plugins::ConcurrentEagerLoading::DatasetMethods)
#eager_load_results (Sequel::Plugins::Sharding::ClassMethods)
#eager_load_serially (Sequel::Plugins::ConcurrentEagerLoading::DatasetMethods)
@@ -638,56 +639,57 @@
#fetch (Sequel::Postgres::HStore)
#fetch_rows (Sequel::Dataset::NullDataset)
#filter_by_associations_conditions_expression (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
-#filter_by_associations_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#filter_by_associations_limit_strategy (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#filter_by_associations_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#filter_expr (Sequel::Dataset::AutoLiteralStrings)
#finalize_associations (Sequel::Plugins::ForbidLazyLoad::ClassMethods)
#finalize_settings (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
-#finalize_settings (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#finalize_settings (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
+#finalize_settings (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#find_or_new (Sequel::Plugins::UpdateOrCreate::ClassMethods)
#finder (Sequel::Plugins::Finder::ClassMethods)
#first (Sequel::Plugins::StaticCache::ClassMethods)
+#first (Sequel::Plugins::StaticCache::ForbidLazyLoadClassMethods)
#first_page? (Sequel::Dataset::Pagination)
#forbid_lazy_load (Sequel::Plugins::ForbidLazyLoad::InstanceMethods)
#foreign_key (String)
-#freeze (Sequel::Plugins::Composition::ClassMethods)
-#freeze (Sequel::Plugins::AssociationDependencies::ClassMethods)
-#freeze (Sequel::Plugins::AutoValidations::ClassMethods)
+#freeze (Sequel::Plugins::InstanceFilters::InstanceMethods)
#freeze (Sequel::Plugins::BlacklistSecurity::ClassMethods)
-#freeze (Sequel::Plugins::NestedAttributes::ClassMethods)
#freeze (Sequel::Plugins::Tree::ClassMethods)
-#freeze (Sequel::Plugins::ClassTableInheritance::ClassMethods)
-#freeze (Sequel::Postgres::PGRange::DatabaseMethods)
-#freeze (Sequel::Postgres::PGMultiRange::DatabaseMethods)
-#freeze (Sequel::Plugins::ColumnConflicts::ClassMethods)
-#freeze (Sequel::Plugins::UpdateRefresh::ClassMethods)
+#freeze (Sequel::Plugins::AutoValidations::ClassMethods)
+#freeze (Sequel::Plugins::SingleTableInheritance::ClassMethods)
#freeze (Sequel::Plugins::TypecastOnLoad::ClassMethods)
-#freeze (Sequel::Plugins::ActiveModel::ClassMethods)
+#freeze (Sequel::Plugins::Finder::ClassMethods)
+#freeze (Sequel::Postgres::PGRange::DatabaseMethods)
+#freeze (Sequel::Plugins::ValidationClassMethods::ClassMethods)
+#freeze (Sequel::Plugins::SerializationModificationDetection::InstanceMethods)
+#freeze (Sequel::Plugins::AssociationDependencies::ClassMethods)
+#freeze (Sequel::Postgres::PGRow::DatabaseMethods)
+#freeze (Sequel::Plugins::InputTransformer::ClassMethods)
+#freeze (Sequel::Plugins::ClassTableInheritance::ClassMethods)
#freeze (Sequel::Plugins::Serialization::InstanceMethods)
-#freeze (Sequel::Plugins::SingleTableInheritance::ClassMethods)
-#freeze (Sequel::Plugins::Touch::ClassMethods)
-#freeze (Sequel::Plugins::Composition::InstanceMethods)
+#freeze (Sequel::Plugins::Serialization::ClassMethods)
+#freeze (Sequel::Plugins::Composition::ClassMethods)
+#freeze (Sequel::Plugins::JsonSerializer::ClassMethods)
+#freeze (Sequel::Plugins::ColumnConflicts::ClassMethods)
+#freeze (Sequel::Plugins::WhitelistSecurity::ClassMethods)
+#freeze (Sequel::Plugins::PreparedStatementsSafe::ClassMethods)
#freeze (Sequel::Plugins::ConstraintValidations::ClassMethods)
+#freeze (Sequel::Plugins::HookClassMethods::ClassMethods)
+#freeze (Sequel::Plugins::Composition::InstanceMethods)
+#freeze (Sequel::Plugins::LazyAttributes::ClassMethods)
#freeze (Sequel::Plugins::CsvSerializer::ClassMethods)
-#freeze (Sequel::Plugins::ValidationClassMethods::ClassMethods)
+#freeze (Sequel::Plugins::UnusedAssociations::ClassMethods)
#freeze (Sequel::Postgres::AutoParameterize::QueryString)
-#freeze (Sequel::Plugins::LazyAttributes::ClassMethods)
-#freeze (Sequel::Plugins::DefaultsSetter::ClassMethods)
+#freeze (Sequel::Plugins::NestedAttributes::ClassMethods)
+#freeze (Sequel::Plugins::Touch::ClassMethods)
+#freeze (Sequel::Plugins::ActiveModel::ClassMethods)
+#freeze (Sequel::Postgres::PGArray::DatabaseMethods)
#freeze (Sequel::Plugins::Dirty::InstanceMethods)
#freeze (Sequel::ConstantSqlOverride::DatabaseMethods)
-#freeze (Sequel::Postgres::PGArray::DatabaseMethods)
-#freeze (Sequel::Plugins::JsonSerializer::ClassMethods)
-#freeze (Sequel::Plugins::Serialization::ClassMethods)
-#freeze (Sequel::Plugins::Finder::ClassMethods)
-#freeze (Sequel::Postgres::PGRow::DatabaseMethods)
-#freeze (Sequel::Plugins::UnusedAssociations::ClassMethods)
-#freeze (Sequel::Plugins::HookClassMethods::ClassMethods)
-#freeze (Sequel::Plugins::InstanceFilters::InstanceMethods)
-#freeze (Sequel::Plugins::PreparedStatementsSafe::ClassMethods)
-#freeze (Sequel::Plugins::InputTransformer::ClassMethods)
-#freeze (Sequel::Plugins::SerializationModificationDetection::InstanceMethods)
-#freeze (Sequel::Plugins::WhitelistSecurity::ClassMethods)
+#freeze (Sequel::Postgres::PGMultiRange::DatabaseMethods)
+#freeze (Sequel::Plugins::DefaultsSetter::ClassMethods)
+#freeze (Sequel::Plugins::UpdateRefresh::ClassMethods)
#freeze_descendants (Sequel::Plugins::Subclasses::ClassMethods)
#freeze_descendents (Sequel::Plugins::Subclasses::ClassMethods)
#from (Sequel::MSSQL::EmulateLateralWithApply)
@@ -697,18 +699,18 @@
#from_json (Sequel::Plugins::JsonSerializer::ClassMethods)
#from_json (Sequel::Plugins::JsonSerializer::InstanceMethods)
#from_json_node (Sequel::Plugins::JsonSerializer::InstanceMethods)
-#from_xml (Sequel::Plugins::XmlSerializer::ClassMethods)
#from_xml (Sequel::Plugins::XmlSerializer::InstanceMethods)
+#from_xml (Sequel::Plugins::XmlSerializer::ClassMethods)
#from_xml_node (Sequel::Plugins::XmlSerializer::ClassMethods)
#from_xml_node (Sequel::Plugins::XmlSerializer::InstanceMethods)
-#get (Sequel::SQLite::JSONOp)
#get (Sequel::Postgres::JSONBaseOp)
+#get (Sequel::SQLite::JSONOp)
#get_column_conflict! (Sequel::Plugins::ColumnConflicts::ClassMethods)
#get_column_value (Sequel::Plugins::ColumnConflicts::InstanceMethods)
#get_json (Sequel::SQLite::JSONOp)
#get_text (Sequel::Postgres::JSONBaseOp)
-#handle_silent_modification_failure? (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#handle_silent_modification_failure? (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
+#handle_silent_modification_failure? (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#has_hooks? (Sequel::Plugins::HookClassMethods::ClassMethods)
#has_key? (Sequel::Postgres::JSONBOp)
#has_key? (Sequel::Postgres::HStoreOp)
@@ -716,16 +718,16 @@
#hash (Sequel::Postgres::PGRange)
#hook_blocks (Sequel::Plugins::HookClassMethods::ClassMethods)
#hook_methods_for (Sequel::Plugins::HookClassMethods::ClassMethods)
-#hstore (Sequel::Postgres::ArrayOp)
-#hstore (Hash)
-#hstore (Sequel::CoreRefinements)
#hstore (Sequel::Postgres::HStoreOp)
-#hstore (Sequel::SQL::Builders)
+#hstore (Sequel::CoreRefinements)
#hstore (Sequel::Postgres::HStoreOpMethods)
+#hstore (Sequel::SQL::Builders)
+#hstore (Hash)
+#hstore (Sequel::Postgres::ArrayOp)
#hstore_op (Sequel::SQL::Builders)
#humanize (String)
-#identifier (Sequel::CoreRefinements)
#identifier (Symbol)
+#identifier (Sequel::CoreRefinements)
#identifier_input_method (Sequel::IdentifierMangling::DatasetMethods)
#identifier_input_method= (Sequel::IdentifierMangling::DatabaseMethods)
#identifier_output_method (Sequel::IdentifierMangling::DatasetMethods)
@@ -740,39 +742,39 @@
#initialize_copy (Sequel::Plugins::AccessedColumns::InstanceMethods)
#input_transformer_order (Sequel::Plugins::InputTransformer::ClassMethods)
#insert (Sequel::Dataset::NullDataset)
-#insert (Sequel::Postgres::JSONBOp)
#insert (Sequel::SQLite::JSONOp)
+#insert (Sequel::Postgres::JSONBOp)
#insert_conflict (Sequel::Plugins::InsertConflict::InstanceMethods)
-#inspect (Sequel::SQL::Expression)
#inspect (Sequel::Postgres::AutoParameterize::QueryString)
+#inspect (Sequel::SQL::Expression)
#inspect (Sequel::SQL::Constant)
#instance_filter (Sequel::Plugins::InstanceFilters::InstanceMethods)
#integer_outside_bigint_range_strategy (Sequel::Postgres::ExtendedIntegerSupport)
#interval (Sequel::Sequel4DatasetMethods)
-#is_current? (Sequel::IntegerMigrator)
#is_current? (Sequel::TimestampMigrator)
+#is_current? (Sequel::IntegerMigrator)
#is_distinct? (Sequel::SQL::StringAgg)
-#is_distinct_from (Sequel::SQL::IsDistinctFrom::Methods)
#is_distinct_from (Sequel::SQL::Builders)
+#is_distinct_from (Sequel::SQL::IsDistinctFrom::Methods)
#is_distinct_from_sql_append (Sequel::SQL::IsDistinctFrom::DatasetMethods)
#join (Sequel::Postgres::ArrayOp)
-#join_table (Sequel::Dataset::DatasetSourceAlias)
#join_table (Sequel::MSSQL::EmulateLateralWithApply)
+#join_table (Sequel::Dataset::DatasetSourceAlias)
#join_table_alias (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
#json (Sequel::SQLite::JSONOp)
#json_serializer_opts (Sequel::Plugins::JsonSerializer::DatasetMethods)
#json_serializer_opts (Sequel::Plugins::JsonSerializer::InstanceMethods)
#key? (Sequel::Postgres::HStoreOp)
-#keys (Sequel::Postgres::JSONBaseOp)
#keys (Sequel::Postgres::HStoreOp)
+#keys (Sequel::Postgres::JSONBaseOp)
#last_page? (Sequel::Dataset::Pagination)
#last_position (Sequel::Plugins::List::InstanceMethods)
#lazy_attributes (Sequel::Plugins::LazyAttributes::ClassMethods)
#length (Sequel::Postgres::ArrayOp)
#list_dataset (Sequel::Plugins::List::InstanceMethods)
#listen_for_static_cache_updates (Sequel::Postgres::StaticCacheUpdater)
-#lit (Sequel::CoreRefinements)
#lit (String)
+#lit (Sequel::CoreRefinements)
#literal_append (Sequel::Postgres::AutoParameterize::DatasetMethods)
#literal_datetime (Sequel::Dataset::RoundTimestamps)
#literal_sqltime (Sequel::Dataset::RoundTimestamps)
@@ -796,11 +798,11 @@
#member? (Sequel::Postgres::HStoreOp)
#merge (Sequel::Postgres::HStore)
#merge (Sequel::Postgres::HStoreOp)
-#method_missing (Sequel::Dataset::Query)
-#method_missing (Sequel::Migration)
+#method_missing (Sequel::Plugins::ValidationClassMethods::ClassMethods::Generator)
#method_missing (Sequel::Plugins::AssociationProxies::AssociationProxy)
+#method_missing (Sequel::Migration)
+#method_missing (Sequel::Dataset::Query)
#method_missing (Sequel::Database::AsyncThreadPool::BaseProxy)
-#method_missing (Sequel::Plugins::ValidationClassMethods::ClassMethods::Generator)
#minify (Sequel::SQLite::JSONOp)
#model_name (Sequel::Plugins::ActiveModel::InstanceMethods)
#move_down (Sequel::Plugins::List::InstanceMethods)
@@ -821,16 +823,16 @@
#nullify (Sequel::Dataset::Nullifiable)
#on_duplicate_columns (Sequel::DuplicateColumnsHandler)
#one_through_many (Sequel::Plugins::ManyThroughMany::ClassMethods)
-#op (Sequel::Postgres::PGArray)
-#op (Sequel::Postgres::JSONBArray)
-#op (Sequel::Postgres::PGRange)
-#op (Sequel::Postgres::JSONBHash)
#op (Sequel::Postgres::PGMultiRange)
-#op (Sequel::Postgres::JSONHash)
+#op (Sequel::Postgres::JSONBArray)
#op (Sequel::Postgres::JSONArray)
-#op (Sequel::Postgres::HStore)
+#op (Sequel::Postgres::JSONHash)
#op (Sequel::Postgres::PGRow::HashRow)
+#op (Sequel::Postgres::PGRange)
+#op (Sequel::Postgres::PGArray)
#op (Sequel::Postgres::PGRow::ArrayRow)
+#op (Sequel::Postgres::HStore)
+#op (Sequel::Postgres::JSONBHash)
#operator (Sequel::ConstraintValidations::Generator)
#order (Sequel::SQL::StringAgg)
#output (Sequel::ToDot)
@@ -840,10 +842,10 @@
#page_size (Sequel::Dataset::Pagination)
#paginate (Sequel::DatasetPagination)
#pagination_record_count (Sequel::Dataset::Pagination)
-#parse (Sequel::Postgres::PGRow::Splitter)
-#parse (Sequel::Postgres::HStore::Parser)
#parse (Sequel::Postgres::PGMultiRange::Parser)
+#parse (Sequel::Postgres::HStore::Parser)
#parse (Sequel::Postgres::PGArray::Parser)
+#parse (Sequel::Postgres::PGRow::Splitter)
#patch (Sequel::SQLite::JSONOp)
#path_exists (Sequel::Postgres::JSONBOp)
#path_exists! (Sequel::Postgres::JSONBOp)
@@ -858,71 +860,71 @@
#path_query_first_tz (Sequel::Postgres::JSONBOp)
#path_query_tz (Sequel::Postgres::JSONBOp)
#persisted? (Sequel::Plugins::ActiveModel::InstanceMethods)
-#pg_array (Sequel::Postgres::ArrayOpMethods)
-#pg_array (Sequel::Postgres::ArrayOp)
-#pg_array (Sequel::SQL::Builders)
#pg_array (Sequel::CoreRefinements)
+#pg_array (Sequel::Postgres::ArrayOp)
#pg_array (Array)
+#pg_array (Sequel::SQL::Builders)
+#pg_array (Sequel::Postgres::ArrayOpMethods)
#pg_array_op (Sequel::SQL::Builders)
#pg_array_to_many (Sequel::Plugins::PgArrayAssociations::ClassMethods)
#pg_auto_constraint_validation_override (Sequel::Plugins::PgAutoConstraintValidations::ClassMethods)
#pg_inet (Sequel::Postgres::InetOp)
#pg_inet (Sequel::Postgres::InetOpMethods)
#pg_inet_op (Sequel::SQL::Builders)
-#pg_json (Sequel::Postgres::JSONOp)
+#pg_json (Sequel::SQL::Builders)
#pg_json (Hash)
+#pg_json (Sequel::CoreRefinements)
+#pg_json (Sequel::Postgres::JSONOp)
#pg_json (Sequel::Postgres::JSONOpMethods)
#pg_json (Array)
-#pg_json (Sequel::SQL::Builders)
-#pg_json (Sequel::CoreRefinements)
#pg_json_op (Sequel::SQL::Builders)
#pg_json_wrap (Sequel::SQL::Builders)
+#pg_jsonb (Sequel::Postgres::JSONBOp)
+#pg_jsonb (Sequel::Postgres::JSONOpMethods)
#pg_jsonb (Sequel::SQL::Builders)
#pg_jsonb (Sequel::CoreRefinements)
#pg_jsonb (Hash)
#pg_jsonb (Array)
-#pg_jsonb (Sequel::Postgres::JSONOpMethods)
-#pg_jsonb (Sequel::Postgres::JSONBOp)
#pg_jsonb_op (Sequel::SQL::Builders)
#pg_jsonb_wrap (Sequel::SQL::Builders)
#pg_multirange (Sequel::SQL::Builders)
-#pg_range (Sequel::SQL::Builders)
#pg_range (Range)
+#pg_range (Sequel::CoreRefinements)
#pg_range (Sequel::Postgres::RangeOpMethods)
#pg_range (Sequel::Postgres::RangeOp)
-#pg_range (Sequel::CoreRefinements)
+#pg_range (Sequel::SQL::Builders)
#pg_range_op (Sequel::SQL::Builders)
+#pg_row (Sequel::SQL::Builders)
#pg_row (Array)
-#pg_row (Sequel::Postgres::PGRowOp::ExpressionMethods)
#pg_row (Sequel::CoreRefinements)
-#pg_row (Sequel::SQL::Builders)
+#pg_row (Sequel::Postgres::PGRowOp::ExpressionMethods)
#pg_row_op (Sequel::SQL::Builders)
#pk_hash (Sequel::Plugins::UpdatePrimaryKey::InstanceMethods)
#placeholder_literalizer_class (Sequel::Postgres::AutoParameterize::DatasetMethods)
#pluralize (String)
-#populate (Sequel::Postgres::JSONBaseOp)
#populate (Sequel::Postgres::HStoreOp)
+#populate (Sequel::Postgres::JSONBaseOp)
#populate_set (Sequel::Postgres::JSONBaseOp)
#position_value (Sequel::Plugins::List::InstanceMethods)
-#predicate_key (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#predicate_key (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#predicate_key (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#prepared_finder (Sequel::Plugins::Finder::ClassMethods)
#pretty (Sequel::Postgres::JSONBOp)
#prev (Sequel::Plugins::List::InstanceMethods)
#prev_page (Sequel::Dataset::Pagination)
-#primary_key (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#primary_key (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
+#primary_key (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#primary_key_method (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#print (Sequel::DatasetPrinter)
#probable_columns (Sequel::ColumnsIntrospection)
#process (Sequel::ConstraintValidations::Generator)
#process_csv_serializer_opts (Sequel::Plugins::CsvSerializer::ClassMethods)
#push (Sequel::Postgres::ArrayOp)
-#query (Sequel::DatasetQuery)
#query (Sequel::DatabaseQuery)
+#query (Sequel::DatasetQuery)
#quote_identifiers= (Sequel::IdentifierMangling::DatabaseMethods)
-#quote_identifiers? (Sequel::IdentifierMangling::DatabaseMethods)
#quote_identifiers? (Sequel::IdentifierMangling::DatasetMethods)
+#quote_identifiers? (Sequel::IdentifierMangling::DatabaseMethods)
#range (Sequel::Sequel4DatasetMethods)
#reciprocal (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
#record_set (Sequel::Postgres::HStoreOp)
@@ -931,23 +933,23 @@
#register_array_type (Sequel::Postgres::PGArray::DatabaseMethods)
#register_multirange_type (Sequel::Postgres::PGMultiRange::DatabaseMethods)
#register_range_type (Sequel::Postgres::PGRange::DatabaseMethods)
-#register_row_type (Sequel::Postgres::PGRow::DatabaseMethods)
#register_row_type (Sequel::Plugins::PgRow::ClassMethods)
-#remove (Sequel::SQLite::JSONOp)
+#register_row_type (Sequel::Postgres::PGRow::DatabaseMethods)
#remove (Sequel::Postgres::ArrayOp)
+#remove (Sequel::SQLite::JSONOp)
#remove_before_destroy? (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#rename_enum (Sequel::Postgres::EnumDatabaseMethods)
#rename_enum_value (Sequel::Postgres::EnumDatabaseMethods)
-#replace (Sequel::Postgres::ArrayOp)
#replace (Sequel::SQLite::JSONOp)
+#replace (Sequel::Postgres::ArrayOp)
#reset_column (Sequel::Plugins::Dirty::InstanceMethods)
-#respond_to_missing? (Sequel::Migration)
#respond_to_missing? (Sequel::Database::AsyncThreadPool::BaseProxy)
#respond_to_missing? (Sequel::Plugins::ValidationClassMethods::ClassMethods::Generator)
+#respond_to_missing? (Sequel::Migration)
#reverse (Sequel::MigrationAlterTableReverser)
#reverse (Sequel::MigrationReverser)
-#root (Sequel::Plugins::Tree::SingleRoot::ClassMethods)
#root (Sequel::Plugins::Tree::InstanceMethods)
+#root (Sequel::Plugins::Tree::SingleRoot::ClassMethods)
#root? (Sequel::Plugins::Tree::InstanceMethods)
#roots (Sequel::Plugins::Tree::DatasetMethods)
#roots_dataset (Sequel::Plugins::Tree::DatasetMethods)
@@ -964,16 +966,16 @@
#separate_query_per_table? (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
#sequel_ast_transform (Sequel::Postgres::HStoreSubscriptOp)
#sequel_ast_transform (Sequel::Postgres::JSONBSubscriptOp)
-#sequel_auto_param_type (Sequel::Postgres::PGRow::ArrayRow)
-#sequel_auto_param_type (Sequel::Postgres::PGArray)
-#sequel_auto_param_type (Sequel::Postgres)
+#sequel_auto_param_type (Sequel::Postgres::HStore)
#sequel_auto_param_type (Sequel::Postgres::PGMultiRange)
#sequel_auto_param_type (Sequel::Postgres::PGRow::HashRow)
-#sequel_auto_param_type (Sequel::Postgres::HStore)
#sequel_auto_param_type (Sequel::Postgres::PGRange)
+#sequel_auto_param_type (Sequel::Postgres::PGRow::ArrayRow)
+#sequel_auto_param_type (Sequel::Postgres::PGArray)
+#sequel_auto_param_type (Sequel::Postgres)
#serialize_attributes (Sequel::Plugins::Serialization::ClassMethods)
-#set (Sequel::Postgres::JSONBOp)
#set (Sequel::SQLite::JSONOp)
+#set (Sequel::Postgres::JSONBOp)
#set_all (Sequel::Plugins::WhitelistSecurity::InstanceMethods)
#set_allowed_columns (Sequel::Plugins::WhitelistSecurity::ClassMethods)
#set_cache_ttl (Sequel::Plugins::Caching::ClassMethods)
@@ -993,8 +995,8 @@
#singularize (String)
#skeys (Sequel::Postgres::HStoreOp)
#skip_auto_param (Sequel::Postgres::AutoParameterize::QueryString)
-#skip_auto_validations (Sequel::Plugins::AutoValidations::InstanceMethods)
#skip_auto_validations (Sequel::Plugins::AutoValidations::ClassMethods)
+#skip_auto_validations (Sequel::Plugins::AutoValidations::InstanceMethods)
#skip_input_transformer (Sequel::Plugins::InputTransformer::ClassMethods)
#skip_input_transformer? (Sequel::Plugins::InputTransformer::ClassMethods)
#skip_pg_auto_param (Sequel::SQL::Builders)
@@ -1010,30 +1012,30 @@
#sql_comments_class_methods (Sequel::Plugins::SqlComments::ClassMethods)
#sql_comments_dataset_methods (Sequel::Plugins::SqlComments::ClassMethods)
#sql_comments_instance_methods (Sequel::Plugins::SqlComments::ClassMethods)
-#sql_expr (Array)
-#sql_expr (Sequel::CoreRefinements)
#sql_expr (Object)
+#sql_expr (Array)
#sql_expr (Hash)
+#sql_expr (Sequel::CoreRefinements)
#sql_function (Symbol)
#sql_function (Sequel::CoreRefinements)
#sql_literal_append (Sequel::Postgres::PGRange)
-#sql_literal_append (Sequel::Postgres::PGRow::ArrayRow)
-#sql_literal_append (Sequel::Postgres::PGArray)
-#sql_literal_append (Sequel::Postgres::PGMultiRange)
#sql_literal_append (Sequel::Postgres::PGRow::HashRow)
-#sql_literal_append (Sequel::Postgres)
+#sql_literal_append (Sequel::Postgres::PGMultiRange)
#sql_literal_append (Sequel::Postgres::HStore)
+#sql_literal_append (Sequel::Postgres::PGArray)
+#sql_literal_append (Sequel::Postgres::PGRow::ArrayRow)
#sql_literal_append (Sequel::Plugins::PgRow::InstanceMethods)
-#sql_negate (Hash)
+#sql_literal_append (Sequel::Postgres)
#sql_negate (Sequel::CoreRefinements)
+#sql_negate (Hash)
#sql_negate (Array)
+#sql_or (Array)
#sql_or (Sequel::CoreRefinements)
#sql_or (Hash)
-#sql_or (Array)
#sql_string_join (Array)
#sql_string_join (Sequel::CoreRefinements)
-#sql_value_list (Array)
#sql_value_list (Sequel::CoreRefinements)
+#sql_value_list (Array)
#sqlite_json_op (Sequel::SQL::Builders)
#sqlite_json_op (Sequel::SQLite::JSONOpMethods)
#static_cache_allow_modifications? (Sequel::Plugins::StaticCache::ClassMethods)
@@ -1065,8 +1067,8 @@
#to_dot (Sequel::ToDot::DatasetMethods)
#to_hash (Sequel::Plugins::StaticCache::ClassMethods)
#to_hash_groups (Sequel::Plugins::StaticCache::ClassMethods)
-#to_json (Sequel::Plugins::JsonSerializer::DatasetMethods)
#to_json (Sequel::Plugins::JsonSerializer::InstanceMethods)
+#to_json (Sequel::Plugins::JsonSerializer::DatasetMethods)
#to_json (Sequel::Plugins::JsonSerializer::Literal)
#to_json_data (Sequel::Plugins::JsonSerializer::InstanceMethods)
#to_key (Sequel::Plugins::ActiveModel::InstanceMethods)
@@ -1078,12 +1080,12 @@
#to_range (Sequel::Postgres::PGRange)
#to_record (Sequel::Postgres::JSONBaseOp)
#to_recordset (Sequel::Postgres::JSONBaseOp)
+#to_s_append (Sequel::Postgres::AutoParameterize::SkipAutoParam)
#to_s_append (Sequel::SQL::EscapedLikeExpression)
-#to_s_append (Sequel::Postgres::JSONBSubscriptOp)
#to_s_append (Sequel::Postgres::HStoreSubscriptOp)
-#to_s_append (Sequel::Postgres::AutoParameterize::SkipAutoParam)
-#to_sequel_blob (Sequel::CoreRefinements)
+#to_s_append (Sequel::Postgres::JSONBSubscriptOp)
#to_sequel_blob (String)
+#to_sequel_blob (Sequel::CoreRefinements)
#to_sequel_time (String)
#to_string (Sequel::Postgres::ArrayOp)
#to_time (String)
@@ -1096,21 +1098,21 @@
#truncate (Sequel::Dataset::NullDataset)
#type (Sequel::SQLite::JSONOp)
#typecast (Sequel::Postgres::PGRow::Parser)
-#typeof (Sequel::SQLite::JSONOp)
#typeof (Sequel::Postgres::JSONBaseOp)
+#typeof (Sequel::SQLite::JSONOp)
#unbounded_begin? (Sequel::Postgres::PGRange)
#unbounded_end? (Sequel::Postgres::PGRange)
#underscore (String)
#unique (Sequel::ConstraintValidations::AlterTableGeneratorMethods)
#unnest (Sequel::Postgres::ArrayOp)
#unquoted_literal (Sequel::Postgres::PGMultiRange)
-#unquoted_literal (Sequel::Postgres::HStore)
#unquoted_literal (Sequel::Postgres::PGRange)
+#unquoted_literal (Sequel::Postgres::HStore)
#unshift (Sequel::Postgres::ArrayOp)
#unused_association_options (Sequel::Plugins::UnusedAssociations::ClassMethods)
#unused_associations (Sequel::Plugins::UnusedAssociations::ClassMethods)
-#up (Sequel::Migration)
#up (Sequel::MigrationDSL)
+#up (Sequel::Migration)
#update (Sequel::Dataset::NullDataset)
#update_all (Sequel::Plugins::WhitelistSecurity::InstanceMethods)
#update_associations_coverage (Sequel::Plugins::UnusedAssociations::ClassMethods)
@@ -1125,11 +1127,11 @@
#valid (Sequel::SQLite::JSONOp)
#valid? (Sequel::Plugins::ThrowFailures::InstanceMethods)
#valid_ruby_range? (Sequel::Postgres::PGRange)
+#validate (Sequel::Plugins::ConstraintValidations::InstanceMethods)
#validate (Sequel::Plugins::ValidationClassMethods::InstanceMethods)
#validate (Sequel::ConstraintValidations::CreateTableGeneratorMethods)
-#validate (Sequel::Plugins::AutoValidations::InstanceMethods)
-#validate (Sequel::Plugins::ConstraintValidations::InstanceMethods)
#validate (Sequel::Plugins::ValidationClassMethods::ClassMethods)
+#validate (Sequel::Plugins::AutoValidations::InstanceMethods)
#validates (Sequel::Plugins::ValidationClassMethods::ClassMethods)
#validates_acceptance_of (Sequel::Plugins::ValidationClassMethods::ClassMethods)
#validates_confirmation_of (Sequel::Plugins::ValidationClassMethods::ClassMethods)
@@ -1169,20 +1171,20 @@
#with_identifier_output_method (Sequel::IdentifierMangling::DatasetMethods)
#with_pk (Sequel::Plugins::PrimaryKeyLookupCheckValues::DatasetMethods)
#with_server (Sequel::ServerBlock)
-#with_server (Sequel::UnthreadedServerBlock)
#with_server (Sequel::ThreadedServerBlock)
+#with_server (Sequel::UnthreadedServerBlock)
#with_sql (Sequel::Postgres::AutoParameterize::DatasetMethods)
-#with_sql_each (Sequel::Plugins::ForbidLazyLoad::DatasetMethods)
#with_sql_each (Sequel::GraphEach)
+#with_sql_each (Sequel::Plugins::ForbidLazyLoad::DatasetMethods)
#with_sql_first (Sequel::Plugins::ForbidLazyLoad::DatasetMethods)
#xml_builder (Sequel::Plugins::XmlSerializer::ClassMethods)
#xml_deserialize_name_proc (Sequel::Plugins::XmlSerializer::ClassMethods)
#xml_serialize_name_proc (Sequel::Plugins::XmlSerializer::ClassMethods)
-#| (Hash)
#| (Sequel::CoreRefinements)
+#| (Hash)
#~ (Sequel::Postgres::InetOp)
-#~ (Sequel::CoreRefinements)
#~ (Hash)
+#~ (Sequel::CoreRefinements)
#~ (Array)
diff --git a/rdoc/classes/Sequel.html b/rdoc/classes/Sequel.html
index ad4d79abca..2f601409fd 100644
--- a/rdoc/classes/Sequel.html
+++ b/rdoc/classes/Sequel.html
@@ -41,6 +41,9 @@ module
lib/sequel/connection_pool/sharded_threaded.rb
+lib/sequel/connection_pool/sharded_timed_queue.rb
+
+
lib/sequel/connection_pool/single.rb
@@ -238,6 +241,7 @@ Classes and Modules
Sequel::SQLTime
Sequel::ShardedSingleConnectionPool
Sequel::ShardedThreadedConnectionPool
+Sequel::ShardedTimedQueueConnectionPool
Sequel::SimpleMigration
Sequel::SingleConnectionPool
Sequel::ThreadedConnectionPool
@@ -420,7 +424,7 @@ Constants
MINOR
=
-69
+70
The minor version of Sequel
. Bumped for every non-patch level release, generally around once a month.
diff --git a/rdoc/classes/Sequel/ConnectionPool.html b/rdoc/classes/Sequel/ConnectionPool.html
index ff3c03fcc7..2d417691e5 100644
--- a/rdoc/classes/Sequel/ConnectionPool.html
+++ b/rdoc/classes/Sequel/ConnectionPool.html
@@ -107,6 +107,7 @@ Constants
:sharded_threaded => :ShardedThreadedConnectionPool,
:sharded_single => :ShardedSingleConnectionPool,
:timed_queue => :TimedQueueConnectionPool,
+:sharded_timed_queue => :ShardedTimedQueueConnectionPool,
}
@@ -166,13 +167,13 @@ Public Class methods
[show source]
# File lib/sequel/connection_pool.rb
-104 def initialize(db, opts=OPTS) # SEQUEL6: Remove second argument, always use db.opts
-105 @db = db
-106 @use_old_connect_api = false # SEQUEL6: Remove
-107 @after_connect = opts[:after_connect] # SEQUEL6: Remove
-108 @connect_sqls = opts[:connect_sqls] # SEQUEL6: Remove
-109 @error_classes = db.send(:database_error_classes).dup.freeze
-110 end
+111 def initialize(db, opts=OPTS) # SEQUEL6: Remove second argument, always use db.opts
+112 @db = db
+113 @use_old_connect_api = false # SEQUEL6: Remove
+114 @after_connect = opts[:after_connect] # SEQUEL6: Remove
+115 @connect_sqls = opts[:connect_sqls] # SEQUEL6: Remove
+116 @error_classes = db.send(:database_error_classes).dup.freeze
+117 end
Public Instance methods
@@ -192,10 +193,10 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool.rb
-85 def after_connect=(v) # SEQUEL6: Remove
-86 @use_old_connect_api = true
-87 @after_connect = v
-88 end
+92 def after_connect=(v) # SEQUEL6: Remove
+93 @use_old_connect_api = true
+94 @after_connect = v
+95 end
@@ -213,11 +214,11 @@ Public Instance methods
[show source]
- # File lib/sequel/connection_pool.rb
-95 def connect_sqls=(v) # SEQUEL6: Remove
-96 @use_old_connect_api = true
-97 @connect_sqls = v
-98 end
+ # File lib/sequel/connection_pool.rb
+102 def connect_sqls=(v) # SEQUEL6: Remove
+103 @use_old_connect_api = true
+104 @connect_sqls = v
+105 end
@@ -236,9 +237,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool.rb
-113 def servers
-114 [:default]
-115 end
+120 def servers
+121 [:default]
+122 end
diff --git a/rdoc/classes/Sequel/ConnectionPool/ClassMethods.html b/rdoc/classes/Sequel/ConnectionPool/ClassMethods.html
index 120cd59af5..cd1f4ac445 100644
--- a/rdoc/classes/Sequel/ConnectionPool/ClassMethods.html
+++ b/rdoc/classes/Sequel/ConnectionPool/ClassMethods.html
@@ -58,7 +58,7 @@ Public Instance methods
-Return a pool subclass instance based on the given options. If a :pool_class
option is provided is provided, use that pool class, otherwise use a new instance of an appropriate pool subclass based on the :single_threaded
and :servers
options.
+Return a pool subclass instance based on the given options. If a :pool_class
option is provided is provided, use that pool class, otherwise use a new instance of an appropriate pool subclass based on the SEQUEL_DEFAULT_CONNECTION_POOL
environment variable if set, or the :single_threaded
and :servers
options, otherwise.
@@ -66,9 +66,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool.rb
-46 def get_pool(db, opts = OPTS)
-47 connection_pool_class(opts).new(db, opts)
-48 end
+48 def get_pool(db, opts = OPTS)
+49 connection_pool_class(opts).new(db, opts)
+50 end
diff --git a/rdoc/classes/Sequel/ShardedThreadedConnectionPool.html b/rdoc/classes/Sequel/ShardedThreadedConnectionPool.html
index 7a6245e300..e8bf9088b3 100644
--- a/rdoc/classes/Sequel/ShardedThreadedConnectionPool.html
+++ b/rdoc/classes/Sequel/ShardedThreadedConnectionPool.html
@@ -40,7 +40,7 @@ class
-The slowest and most advanced connection, dealing with both multi-threaded access and configurations with multiple shards/servers.
+The slowest and most advanced connection pool, dealing with both multi-threaded access and configurations with multiple shards/servers.
In addition, this pool subclass also handles scheduling in-use connections to be removed from the pool when they are returned to it.
@@ -269,7 +269,7 @@ Public Instance methods
Chooses the first available connection to the given server, or if none are available, creates a new connection. Passes the connection to the supplied block:
-pool.hold {|conn| conn.execute('DROP TABLE posts')}
+pool.hold(:server1) {|conn| conn.execute('DROP TABLE posts')}
Pool#hold is re-entrant, meaning it can be called recursively in the same thread without blocking.
@@ -317,9 +317,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool/sharded_threaded.rb
-172 def pool_type
-173 :sharded_threaded
-174 end
+173 def pool_type
+174 :sharded_threaded
+175 end
@@ -339,24 +339,25 @@ Public Instance methods
# File lib/sequel/connection_pool/sharded_threaded.rb
147 def remove_servers(servers)
-148 conns = nil
-149 sync do
-150 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default)
-151 servers.each do |server|
-152 if @servers.include?(server)
-153 conns = disconnect_server_connections(server)
-154 @waiters.delete(server)
-155 @available_connections.delete(server)
-156 @allocated.delete(server)
-157 @servers.delete(server)
-158 end
-159 end
-160 end
-161
-162 if conns
-163 disconnect_connections(conns)
-164 end
-165 end
+148 conns = []
+149 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default)
+150
+151 sync do
+152 servers.each do |server|
+153 if @servers.include?(server)
+154 conns.concat(disconnect_server_connections(server))
+155 @waiters.delete(server)
+156 @available_connections.delete(server)
+157 @allocated.delete(server)
+158 @servers.delete(server)
+159 end
+160 end
+161 end
+162
+163 nil
+164 ensure
+165 disconnect_connections(conns)
+166 end
@@ -375,9 +376,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool/sharded_threaded.rb
-168 def servers
-169 sync{@servers.keys}
-170 end
+169 def servers
+170 sync{@servers.keys}
+171 end
diff --git a/rdoc/classes/Sequel/ShardedTimedQueueConnectionPool.html b/rdoc/classes/Sequel/ShardedTimedQueueConnectionPool.html
new file mode 100644
index 0000000000..16f3f6d178
--- /dev/null
+++ b/rdoc/classes/Sequel/ShardedTimedQueueConnectionPool.html
@@ -0,0 +1,406 @@
+
+
+
+Sequel::ShardedTimedQueueConnectionPool
+
+
+
+
+
+
+
+
+class
+Sequel::ShardedTimedQueueConnectionPool
+
+
+
+Superclass:
+ConnectionPool
+
+
+
+
+
+A connection pool allowing multi-threaded access to a sharded pool of connections, using a timed queue (only available in Ruby 3.2+).
+
+
+
+
+
+
+Attributes
+
+
+
+
+max_size
+
+[R]
+
+The maximum number of connections this pool will create per shard.
+
+
+
+
+
+
+Public Class methods
+
+
+
+new(db, opts = OPTS)
+
+
+
+
+The following additional options are respected:
+:max_connections
+The maximum number of connections the connection pool will open (default 4)
+ :pool_timeout
+The amount of seconds to wait to acquire a connection before raising a PoolTimeout (default 5)
+ :servers
+A hash of servers to use. Keys should be symbols. If not present, will use a single :default server.
+ :servers_hash
+The base hash to use for the servers. By default, Sequel
uses Hash.new(:default). You can use a hash with a default proc that raises an error if you want to catch all cases where a nonexistent server is used.
+
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+24 def initialize(db, opts = OPTS)
+25 super
+26
+27 @max_size = Integer(opts[:max_connections] || 4)
+28 raise(Sequel::Error, ':max_connections must be positive') if @max_size < 1
+29 @mutex = Mutex.new
+30 @timeout = Float(opts[:pool_timeout] || 5)
+31
+32 @allocated = {}
+33 @sizes = {}
+34 @queues = {}
+35 @servers = opts.fetch(:servers_hash, Hash.new(:default))
+36
+37 add_servers([:default])
+38 add_servers(opts[:servers].keys) if opts[:servers]
+39 end
+
+
+Public Instance methods
+
+
+
+add_servers(servers)
+
+
+
+
+Adds new servers to the connection pool. Allows for dynamic expansion of the potential replicas/shards at runtime. servers
argument should be an array of symbols.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+43 def add_servers(servers)
+44 sync do
+45 servers.each do |server|
+46 next if @servers.has_key?(server)
+47
+48 @servers[server] = server
+49 @sizes[server] = 0
+50 @queues[server] = Queue.new
+51 (@allocated[server] = {}).compare_by_identity
+52 end
+53 end
+54 nil
+55 end
+
+
+
+
+
+all_connections()
+
+
+
+
+Yield all of the available connections, and the one currently allocated to this thread (if one is allocated). This will not yield connections currently allocated to other threads, as it is not safe to operate on them.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+60 def all_connections
+61 thread = Sequel.current
+62 sync{@queues.to_a}.each do |server, queue|
+63 if conn = owned_connection(thread, server)
+64 yield conn
+65 end
+66
+67 # Use a hash to record all connections already seen. As soon as we
+68 # come across a connection we've already seen, we stop the loop.
+69 conns = {}
+70 conns.compare_by_identity
+71 while true
+72 conn = nil
+73 begin
+74 break unless (conn = queue.pop(timeout: 0)) && !conns[conn]
+75 conns[conn] = true
+76 yield conn
+77 ensure
+78 queue.push(conn) if conn
+79 end
+80 end
+81 end
+82
+83 nil
+84 end
+
+
+
+
+
+disconnect(opts=OPTS)
+
+
+
+
+Removes all connections currently in the pool’s queue. This method has the effect of disconnecting from the database, assuming that no connections are currently being used.
+
+Once a connection is requested using hold
, the connection pool creates new connections to the database.
+
+If the :server option is provided, it should be a symbol or array of symbols, and then the method will only disconnect connectsion from those specified shards.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+ 95 def disconnect(opts=OPTS)
+ 96 (opts[:server] ? Array(opts[:server]) : sync{@servers.keys}).each do |server|
+ 97 raise Sequel::Error, "invalid server" unless queue = sync{@queues[server]}
+ 98 while conn = queue.pop(timeout: 0)
+ 99 disconnect_pool_connection(conn, server)
+100 end
+101 fill_queue(server)
+102 end
+103 nil
+104 end
+
+
+
+
+
+hold(server=:default)
+
+
+
+
+Chooses the first available connection for the given server, or if none are available, creates a new connection. Passes the connection to the supplied block:
+
+pool.hold(:server1) {|conn| conn.execute('DROP TABLE posts')}
+
+
+Pool#hold is re-entrant, meaning it can be called recursively in the same thread without blocking.
+
+If no connection is immediately available and the pool is already using the maximum number of connections, Pool#hold will block until a connection is available or the timeout expires. If the timeout expires before a connection can be acquired, a Sequel::PoolTimeout is raised.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+119 def hold(server=:default)
+120 server = pick_server(server)
+121 t = Sequel.current
+122 if conn = owned_connection(t, server)
+123 return yield(conn)
+124 end
+125
+126 begin
+127 conn = acquire(t, server)
+128 yield conn
+129 rescue Sequel::DatabaseDisconnectError, *@error_classes => e
+130 if disconnect_error?(e)
+131 oconn = conn
+132 conn = nil
+133 disconnect_pool_connection(oconn, server) if oconn
+134 sync{@allocated[server].delete(t)}
+135 fill_queue(server)
+136 end
+137 raise
+138 ensure
+139 release(t, conn, server) if conn
+140 end
+141 end
+
+
+
+
+
+pool_type()
+
+
+
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+190 def pool_type
+191 :sharded_timed_queue
+192 end
+
+
+
+
+
+remove_servers(servers)
+
+
+
+
+Remove servers from the connection pool. Similar to disconnecting from all given servers, except that after it is used, future requests for the servers will use the :default server instead.
+
+Note that an error will be raised if there are any connections currently checked out for the given servers.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+154 def remove_servers(servers)
+155 conns = []
+156 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default)
+157
+158 sync do
+159 servers.each do |server|
+160 next unless @servers.has_key?(server)
+161
+162 queue = @queues[server]
+163
+164 while conn = queue.pop(timeout: 0)
+165 @sizes[server] -= 1
+166 conns << conn
+167 end
+168
+169 unless @sizes[server] == 0
+170 raise Sequel::Error, "cannot remove server #{server} as it has allocated connections"
+171 end
+172
+173 @servers.delete(server)
+174 @sizes.delete(server)
+175 @queues.delete(server)
+176 @allocated.delete(server)
+177 end
+178 end
+179
+180 nil
+181 ensure
+182 disconnect_connections(conns)
+183 end
+
+
+
+
+
+servers()
+
+
+
+
+Return an array of symbols for servers in the connection pool.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+186 def servers
+187 sync{@servers.keys}
+188 end
+
+
+
+
+
+size(server=:default)
+
+
+
+
+The total number of connections in the pool. Using a non-existant server will return nil.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+144 def size(server=:default)
+145 sync{@sizes[server]}
+146 end
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rdoc/classes/Sequel/TimedQueueConnectionPool.html b/rdoc/classes/Sequel/TimedQueueConnectionPool.html
index 0a9613e25a..0bc82778f4 100644
--- a/rdoc/classes/Sequel/TimedQueueConnectionPool.html
+++ b/rdoc/classes/Sequel/TimedQueueConnectionPool.html
@@ -205,7 +205,7 @@ Public Instance methods
# File lib/sequel/connection_pool/timed_queue.rb
82 def hold(server=nil)
83 t = Sequel.current
- 84 if conn = sync{@allocated[t]}
+ 84 if conn = owned_connection(t)
85 return yield(conn)
86 end
87
diff --git a/rdoc/created.rid b/rdoc/created.rid
index ef4f9d1c9c..9f8df79d3c 100644
--- a/rdoc/created.rid
+++ b/rdoc/created.rid
@@ -1,11 +1,11 @@
-Thu, 01 Jun 2023 07:41:50 -0700
+Sat, 01 Jul 2023 12:52:54 -0700
README.rdoc Wed, 03 May 2023 13:14:12 -0700
-CHANGELOG Thu, 01 Jun 2023 07:29:33 -0700
+CHANGELOG Fri, 30 Jun 2023 11:23:18 -0700
doc/CHANGELOG.old Tue, 04 Aug 2020 18:11:34 -0700
MIT-LICENSE Tue, 03 Jan 2023 11:20:51 -0800
lib/sequel.rb Tue, 01 Aug 2017 08:12:00 -0700
lib/sequel/ast_transformer.rb Fri, 02 Sep 2022 09:11:30 -0700
-lib/sequel/connection_pool.rb Thu, 03 Nov 2022 12:28:15 -0700
+lib/sequel/connection_pool.rb Tue, 13 Jun 2023 11:57:43 -0700
lib/sequel/core.rb Fri, 17 Dec 2021 16:59:47 -0800
lib/sequel/database.rb Tue, 01 Aug 2017 08:12:00 -0700
lib/sequel/dataset.rb Fri, 31 Mar 2023 14:57:15 -0700
@@ -14,12 +14,13 @@ lib/sequel/exceptions.rb Fri, 26 Jun 2020 14:43:12 -0700
lib/sequel/model.rb Tue, 04 Aug 2020 18:11:34 -0700
lib/sequel/sql.rb Fri, 02 Sep 2022 09:11:30 -0700
lib/sequel/timezones.rb Fri, 17 Dec 2021 16:59:47 -0800
-lib/sequel/version.rb Thu, 01 Jun 2023 07:29:33 -0700
+lib/sequel/version.rb Fri, 30 Jun 2023 11:23:18 -0700
lib/sequel/connection_pool/sharded_single.rb Fri, 17 Dec 2021 16:59:47 -0800
-lib/sequel/connection_pool/sharded_threaded.rb Tue, 01 Nov 2022 15:22:13 -0700
+lib/sequel/connection_pool/sharded_threaded.rb Mon, 12 Jun 2023 13:05:49 -0700
+lib/sequel/connection_pool/sharded_timed_queue.rb Mon, 12 Jun 2023 13:05:49 -0700
lib/sequel/connection_pool/single.rb Fri, 17 Dec 2021 16:59:47 -0800
-lib/sequel/connection_pool/threaded.rb Thu, 03 Nov 2022 12:28:15 -0700
-lib/sequel/connection_pool/timed_queue.rb Thu, 03 Nov 2022 12:28:15 -0700
+lib/sequel/connection_pool/threaded.rb Thu, 08 Jun 2023 16:14:04 -0700
+lib/sequel/connection_pool/timed_queue.rb Mon, 12 Jun 2023 13:05:49 -0700
lib/sequel/database/connecting.rb Wed, 03 May 2023 13:14:12 -0700
lib/sequel/database/dataset.rb Tue, 28 Mar 2023 14:16:05 -0700
lib/sequel/database/dataset_defaults.rb Tue, 01 Aug 2017 08:12:00 -0700
@@ -264,6 +265,7 @@ doc/release_notes/5.67.0.txt Sat, 01 Apr 2023 07:30:20 -0700
doc/release_notes/5.68.0.txt Mon, 01 May 2023 07:26:38 -0700
doc/release_notes/5.69.0.txt Thu, 01 Jun 2023 07:29:33 -0700
doc/release_notes/5.7.0.txt Sun, 01 Apr 2018 19:38:21 -0700
+doc/release_notes/5.70.0.txt Fri, 30 Jun 2023 11:23:18 -0700
doc/release_notes/5.8.0.txt Tue, 01 May 2018 11:42:13 -0700
doc/release_notes/5.9.0.txt Fri, 01 Jun 2018 07:49:41 -0700
lib/sequel/extensions/migration.rb Mon, 24 Oct 2022 11:55:52 -0700
diff --git a/rdoc/files/CHANGELOG.html b/rdoc/files/CHANGELOG.html
index e29893dc04..377eea82ae 100644
--- a/rdoc/files/CHANGELOG.html
+++ b/rdoc/files/CHANGELOG.html
@@ -31,12 +31,29 @@ CHANGELOG
Last Update:
-2023-06-01 07:29:33 -0700
+2023-06-30 11:23:18 -0700
+5.70.0 (2023-07-01)¶ ↑
+-
+
Make static_cache plugin better handle cases where forbid_lazy_load plugin is already loaded (jeremyevans)
+ -
+
Fix ShardedThreadedConnectionPool#remove_server to disconnect all connections if removing multiple servers (jeremyevans)
+ -
+
Support SEQUEL_DEFAULT_CONNECTION_POOL environment variable for choosing connection pool when :pool_class Database option is not set (jeremyevans)
+ -
+
Add sharded_timed_queue connection pool (jeremyevans)
+ -
+
Make connection_{validator,expiration} and async_thread_pool extensions work with timed_queue connection pool (jeremyevans)
+ -
+
Make connection_{validator,expiration} extensions raise error when used with single threaded pools (HoneyryderChuck, jeremyevans) (#2049)
+ -
+
Workaround possible resource starvation in threaded connection pool (ioquatix) (#2048)
+
+
5.69.0 (2023-06-01)¶ ↑
-
Avoid unsupported flag warning when using the mysql adapter with ruby-mysql 3+ (jeremyevans)
diff --git a/rdoc/files/doc/release_notes/5_70_0_txt.html b/rdoc/files/doc/release_notes/5_70_0_txt.html
new file mode 100644
index 0000000000..c124e5b52a
--- /dev/null
+++ b/rdoc/files/doc/release_notes/5_70_0_txt.html
@@ -0,0 +1,70 @@
+
+
+
+5.70.0.txt
+
+
+
+
+
+
+
+
+5.70.0.txt
+
+
+doc/release_notes/5.70.0.txt
+
+
+Last Update:
+2023-06-30 11:23:18 -0700
+
+
+
+
+
+New Features¶ ↑
+-
+
A sharded_timed_queue connection pool has been added. This offers most of the same features as the sharded_threaded connection pool, but uses the new Queue#pop :timeout features added in Ruby 3.2 to allow for a simpler and possibly faster and more robust implementation.
+ -
+
If a :pool_class option is not specified when creating a Database, Sequel
will now look at the SEQUEL_DEFAULT_CONNECTION_POOL environment variable to determine the connection pool class to use. This allows you to set SEQUEL_DEFAULT_CONNECTION_POOL=timed_queue on Ruby 3.2 to test with the timed_queue connection pool without making any code changes. If the :servers Database option is given, Sequel
will automatically use the sharded version of the connection pool specified by SEQUEL_DEFAULT_CONNECTION_POOL.
+
+
+Other Improvements¶ ↑
+-
+
The connection_validator, connection_expiration, and async_thread_pool extensions now work with the timed_queue and sharded_timed_queue connection pools.
+ -
+
The sharded_threaded connection pool now disconnects connections for all specified servers instead of just the last specified server when using remove_server.
+ -
+
The static_cache plugin now recognizes when the forbid_lazy_load plugin is already loaded, and does not return instances that forbid lazy load for methods that return a single object, such as Database.{[],cache_get_pk,first}.
+ -
+
Sequel
now displays an informative error message if attempting to load the connection_validator or connection_expiration extensions when using the single threaded connection pool.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html b/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html
index 7f1c38a538..460b74497a 100644
--- a/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html
@@ -31,7 +31,7 @@ sharded_threaded.rb
Last Update:
-2022-11-01 15:22:13 -0700
+2023-06-12 13:05:49 -0700
diff --git a/rdoc/files/lib/sequel/connection_pool/sharded_timed_queue_rb.html b/rdoc/files/lib/sequel/connection_pool/sharded_timed_queue_rb.html
new file mode 100644
index 0000000000..17b9147cc4
--- /dev/null
+++ b/rdoc/files/lib/sequel/connection_pool/sharded_timed_queue_rb.html
@@ -0,0 +1,54 @@
+
+
+
+sharded_timed_queue.rb
+
+
+
+
+
+
+
+
+sharded_timed_queue.rb
+
+
+lib/sequel/connection_pool/sharded_timed_queue.rb
+
+
+Last Update:
+2023-06-12 13:05:49 -0700
+
+
+
+
+
+:nocov:
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rdoc/files/lib/sequel/connection_pool/threaded_rb.html b/rdoc/files/lib/sequel/connection_pool/threaded_rb.html
index eb8d901c18..b5b4672c6e 100644
--- a/rdoc/files/lib/sequel/connection_pool/threaded_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool/threaded_rb.html
@@ -31,7 +31,7 @@ threaded.rb
Last Update:
-2022-11-03 12:28:15 -0700
+2023-06-08 16:14:04 -0700
diff --git a/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html b/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html
index 8f6993ce32..bf0ae9f4ac 100644
--- a/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html
@@ -31,7 +31,7 @@ timed_queue.rb
Last Update:
-2022-11-03 12:28:15 -0700
+2023-06-12 13:05:49 -0700
diff --git a/rdoc/files/lib/sequel/connection_pool_rb.html b/rdoc/files/lib/sequel/connection_pool_rb.html
index fdaa7f28b9..df5300caf7 100644
--- a/rdoc/files/lib/sequel/connection_pool_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool_rb.html
@@ -31,7 +31,7 @@ connection_pool.rb
Last Update:
-2022-11-03 12:28:15 -0700
+2023-06-13 11:57:43 -0700
diff --git a/rdoc/files/lib/sequel/version_rb.html b/rdoc/files/lib/sequel/version_rb.html
index 20ed5eed48..71d4dd9311 100644
--- a/rdoc/files/lib/sequel/version_rb.html
+++ b/rdoc/files/lib/sequel/version_rb.html
@@ -31,7 +31,7 @@ version.rb
Last Update:
-2023-06-01 07:29:33 -0700
+2023-06-30 11:23:18 -0700
diff --git a/rdoc/fr_class_index.html b/rdoc/fr_class_index.html
index b1b70adc05..2f0445243b 100644
--- a/rdoc/fr_class_index.html
+++ b/rdoc/fr_class_index.html
@@ -114,6 +114,7 @@
Sequel::SequelMethods
Sequel::ShardedSingleConnectionPool
Sequel::ShardedThreadedConnectionPool
+Sequel::ShardedTimedQueueConnectionPool
Sequel::SimpleMigration
Sequel::SingleConnectionPool
Sequel::ThreadedConnectionPool
diff --git a/rdoc/fr_file_index.html b/rdoc/fr_file_index.html
index daaee78dd0..8067c525d8 100644
--- a/rdoc/fr_file_index.html
+++ b/rdoc/fr_file_index.html
@@ -221,6 +221,7 @@
5.68.0.txt
5.69.0.txt
5.7.0.txt
+5.70.0.txt
5.8.0.txt
5.9.0.txt
schema_modification.rdoc
@@ -237,6 +238,7 @@
connection_pool.rb
sharded_single.rb
sharded_threaded.rb
+sharded_timed_queue.rb
single.rb
threaded.rb
timed_queue.rb
diff --git a/rdoc/fr_method_index.html b/rdoc/fr_method_index.html
index 2d95e1cc91..a80507b70b 100644
--- a/rdoc/fr_method_index.html
+++ b/rdoc/fr_method_index.html
@@ -78,9 +78,9 @@
#errors (Sequel::ValidationFailed)
#expr (Sequel::SQL::Cast)
#expression (Sequel::SQL::OrderedExpression)
+#expression (Sequel::SQL::AliasedExpression)
#expression (Sequel::SQL::Subscript)
#expression (Sequel::SQL::CaseExpression)
-#expression (Sequel::SQL::AliasedExpression)
#f (Sequel::SQL::Subscript)
#fast_instance_delete_sql (Sequel::Model::ClassMethods)
#fast_pk_lookup_sql (Sequel::Model::ClassMethods)
@@ -93,14 +93,15 @@
#log_warn_duration (Sequel::Database)
#loggers (Sequel::Database)
#master (Sequel::Model::Associations::EagerGraphLoader)
-#max_size (Sequel::TimedQueueConnectionPool)
#max_size (Sequel::ThreadedConnectionPool)
+#max_size (Sequel::TimedQueueConnectionPool)
+#max_size (Sequel::ShardedTimedQueueConnectionPool)
#migration (Sequel::MigrationDSL)
#migration_tuples (Sequel::TimestampMigrator)
#migrations (Sequel::IntegerMigrator)
#model (Sequel::Model::DatasetModule)
-#model (Sequel::HookFailed)
#model (Sequel::ValidationFailed)
+#model (Sequel::HookFailed)
#name (Sequel::SQL::Function)
#nulls (Sequel::SQL::OrderedExpression)
#on (Sequel::SQL::JoinOnClause)
@@ -131,8 +132,8 @@
#str (Sequel::SQL::PlaceholderLiteralString)
#strict_param_setting (Sequel::Model::ClassMethods)
#sub (Sequel::SQL::Subscript)
-#table (Sequel::SQL::QualifiedIdentifier)
#table (Sequel::Migrator)
+#table (Sequel::SQL::QualifiedIdentifier)
#table (Sequel::SQL::ColumnAll)
#table_expr (Sequel::SQL::JoinClause)
#target (Sequel::Migrator)
@@ -179,8 +180,8 @@
::extension (Sequel::Database)
::from_value_pairs (Sequel::SQL::BooleanExpression)
::inflections (Sequel)
-::inherited (Sequel::SQL::Expression)
::inherited (Sequel::Migration)
+::inherited (Sequel::SQL::Expression)
::inherited_instance_variables (Sequel::Plugins)
::invert (Sequel::SQL::BooleanExpression)
::irregular (Sequel::Inflections)
@@ -190,56 +191,57 @@
::loader (Sequel::Dataset::PlaceholderLiteralizer)
::migration (Sequel)
::migrator_class (Sequel::Migrator)
-::new (Sequel::SQL::Wrapper)
+::new (Sequel::Schema::AlterTableGenerator)
+::new (Sequel::SQL::ColumnAll)
::new (Sequel::SQL::Cast)
::new (Sequel::SQL::CaseExpression)
-::new (Sequel::SQL::JoinUsingClause)
::new (Sequel::SQL::OrderedExpression)
+::new (Sequel::SQL::PlaceholderLiteralString)
::new (Sequel::SQL::AliasedExpression)
::new (Sequel::Qualifier)
-::new (Sequel::SQL::PlaceholderLiteralString)
::new (Sequel::SQL::QualifiedIdentifier)
-::new (Sequel::SQL::ComplexExpression)
+::new (Sequel::SQL::Constant)
::new (Sequel::SQL::Subscript)
+::new (Sequel::SQL::VirtualRow)
::new (Sequel::NoMatchingRow)
::new (Sequel::Model::InstanceMethods)
::new (Sequel::Model::DatasetModule)
-::new (Sequel::Model::Associations::EagerGraphLoader)
::new (Sequel::Dataset)
-::new (Sequel::SQL::VirtualRow)
-::new (Sequel::Migrator)
+::new (Sequel::Model::Associations::EagerGraphLoader)
::new (Sequel::SQL::Window)
-::new (Sequel::SQL::ColumnAll)
-::new (Sequel::SQL::Constant)
+::new (Sequel::SQL::Wrapper)
+::new (Sequel::SQL::ComplexExpression)
+::new (Sequel::Migrator)
::new (Sequel::SQL::DelayedEvaluation)
::new (Sequel::Database)
-::new (Sequel::Schema::AlterTableGenerator)
+::new (Sequel::SQL::JoinUsingClause)
::new (Sequel::Schema::CreateTableGenerator)
+::new (Sequel::ShardedSingleConnectionPool)
::new (Sequel::MigrationReverser)
::new (Sequel::MigrationDSL)
-::new (Sequel::ShardedSingleConnectionPool)
+::new (Sequel::ShardedThreadedConnectionPool)
::new (Sequel::MigrationAlterTableReverser)
::new (Sequel::SQL::JoinOnClause)
-::new (Sequel::ShardedThreadedConnectionPool)
+::new (Sequel::ShardedTimedQueueConnectionPool)
::new (Sequel::SimpleMigration)
::new (Sequel::Migration)
::new (Sequel::IntegerMigrator)
-::new (Sequel::SQL::JoinClause)
+::new (Sequel::SQL::Function)
::new (Sequel::ConnectionPool)
::new (Sequel::HookFailed)
::new (Sequel::SingleConnectionPool)
::new (Sequel::ThreadedConnectionPool)
::new (Sequel::Dataset::PlaceholderLiteralizer::Argument)
::new (Sequel::Dataset::PlaceholderLiteralizer)
-::new (Sequel::SQL::Function)
+::new (Sequel::SQL::Identifier)
::new (Sequel::TimedQueueConnectionPool)
::new (Sequel::TimestampMigrator)
-::new (Sequel::SQL::Identifier)
+::new (Sequel::SQL::JoinClause)
::new (Sequel::ValidationFailed)
::parse (Sequel::SQLTime)
::plural (Sequel::Inflections)
-::register_extension (Sequel::Database)
::register_extension (Sequel::Dataset)
+::register_extension (Sequel::Database)
::run (Sequel::Migrator)
::run_after_initialize (Sequel::Database)
::set_shared_adapter_scheme (Sequel::Database)
@@ -249,29 +251,29 @@
::version (Sequel)
#!~ (Sequel::SQL::PatternMatchMethods)
#& (Sequel::SQL::BooleanExpression)
-#* (Sequel::SQL::QualifyingMethods)
#* (Sequel::SQL::Function)
+#* (Sequel::SQL::QualifyingMethods)
#** (Sequel::SQL::OperatorBuilders)
-#+ (Sequel::SQL::NumericExpression)
-#+ (Sequel::SQL::NumericMethods)
#+ (Sequel::SQL::StringConcatenationMethods)
+#+ (Sequel::SQL::NumericMethods)
+#+ (Sequel::SQL::NumericExpression)
#<< (Sequel::Database)
#<< (Sequel::Dataset)
-#== (Sequel::SQL::Expression)
#== (Sequel::Dataset)
+#== (Sequel::SQL::Expression)
#== (Sequel::Model::InstanceMethods)
#=== (Sequel::Model::InstanceMethods)
#=~ (Sequel::SQL::PatternMatchMethods)
#Bignum (Sequel::Schema::CreateTableGenerator)
#Fixnum (Sequel::Schema::CreateTableGenerator)
#Model (Sequel::Model::ClassMethods)
-#[] (Sequel::Model::InstanceMethods)
-#[] (Sequel::Dataset)
+#[] (Sequel::Database)
#[] (Sequel::SQL::Subscript)
+#[] (Sequel::Model::ClassMethods)
#[] (Sequel::Model::DatasetMethods)
-#[] (Sequel::Database)
+#[] (Sequel::Model::InstanceMethods)
+#[] (Sequel::Dataset)
#[] (Sequel::SQL::QualifyingMethods)
-#[] (Sequel::Model::ClassMethods)
#[]= (Sequel::Model::InstanceMethods)
#_add_method (Sequel::Model::Associations::AssociationReflection)
#_clone (Sequel::Dataset)
@@ -290,13 +292,14 @@
#add_foreign_key (Sequel::Schema::AlterTableGenerator)
#add_full_text_index (Sequel::Schema::AlterTableGenerator)
#add_graph_aliases (Sequel::Dataset)
-#add_index (Sequel::Schema::AlterTableGenerator)
#add_index (Sequel::Database)
+#add_index (Sequel::Schema::AlterTableGenerator)
#add_method (Sequel::Model::Associations::AssociationReflection)
#add_primary_key (Sequel::Schema::AlterTableGenerator)
#add_servers (Sequel::Database)
-#add_servers (Sequel::ShardedThreadedConnectionPool)
+#add_servers (Sequel::ShardedTimedQueueConnectionPool)
#add_servers (Sequel::ShardedSingleConnectionPool)
+#add_servers (Sequel::ShardedThreadedConnectionPool)
#add_spatial_index (Sequel::Schema::AlterTableGenerator)
#add_unique_constraint (Sequel::Schema::AlterTableGenerator)
#after_commit (Sequel::Database)
@@ -306,10 +309,11 @@
#all (Sequel::Dataset)
#all (Sequel::Dataset::PlaceholderLiteralizer)
#all_association_reflections (Sequel::Model::Associations::ClassMethods)
-#all_connections (Sequel::ShardedSingleConnectionPool)
-#all_connections (Sequel::SingleConnectionPool)
-#all_connections (Sequel::ShardedThreadedConnectionPool)
#all_connections (Sequel::TimedQueueConnectionPool)
+#all_connections (Sequel::ShardedThreadedConnectionPool)
+#all_connections (Sequel::SingleConnectionPool)
+#all_connections (Sequel::ShardedSingleConnectionPool)
+#all_connections (Sequel::ShardedTimedQueueConnectionPool)
#all_connections (Sequel::ThreadedConnectionPool)
#allocated (Sequel::ShardedThreadedConnectionPool)
#alter_table (Sequel::Database)
@@ -320,8 +324,8 @@
#apply_dataset_changes (Sequel::Model::Associations::AssociationReflection)
#apply_distinct_on_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_eager_dataset_changes (Sequel::Model::Associations::AssociationReflection)
-#apply_eager_graph_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_eager_graph_limit_strategy (Sequel::Model::Associations::OneToManyAssociationReflection)
+#apply_eager_graph_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_ruby_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_window_function_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
@@ -330,11 +334,11 @@
#as (Sequel::SQL::Builders)
#as (Sequel::SQL::AliasMethods)
#as_hash (Sequel::Model::DatasetMethods)
-#as_hash (Sequel::Dataset)
#as_hash (Sequel::Model::Associations::DatasetMethods)
-#asc (Sequel::SQL::Builders)
-#asc (Sequel::SQL::OrderMethods)
+#as_hash (Sequel::Dataset)
#asc (Sequel::SQL::OrderedExpression)
+#asc (Sequel::SQL::OrderMethods)
+#asc (Sequel::SQL::Builders)
#assign_singular? (Sequel::Model::Associations::SingularAssociationReflection)
#assign_singular? (Sequel::Model::Associations::AssociationReflection)
#associate (Sequel::Model::Associations::ClassMethods)
@@ -353,8 +357,8 @@
#association_method (Sequel::Model::Associations::AssociationReflection)
#association_reflection (Sequel::Model::Associations::AssociationDatasetMethods)
#association_reflection (Sequel::Model::Associations::ClassMethods)
-#associations (Sequel::Model::Associations::ClassMethods)
#associations (Sequel::Model::Associations::InstanceMethods)
+#associations (Sequel::Model::Associations::ClassMethods)
#autoincrementing_primary_key (Sequel::Model::InstanceMethods)
#available_connections (Sequel::ShardedThreadedConnectionPool)
#avg (Sequel::Dataset)
@@ -364,11 +368,11 @@
#boolean_constant_sql_append (Sequel::Dataset)
#cache_get (Sequel::Dataset)
#cache_set (Sequel::Dataset)
-#call (Sequel::Dataset::ArgumentMapper)
-#call (Sequel::Dataset::PreparedStatementMethods)
#call (Sequel::Model::ClassMethods)
-#call (Sequel::Database)
#call (Sequel::SQL::DelayedEvaluation)
+#call (Sequel::Database)
+#call (Sequel::Dataset::PreparedStatementMethods)
+#call (Sequel::Dataset::ArgumentMapper)
#call (Sequel::Dataset)
#can_have_associated_objects? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#can_have_associated_objects? (Sequel::Model::Associations::AssociationReflection)
@@ -379,8 +383,8 @@
#case_expression_sql_append (Sequel::Dataset)
#cast (Sequel::SQL::CastMethods)
#cast (Sequel::SQL::Builders)
-#cast_numeric (Sequel::SQL::Builders)
#cast_numeric (Sequel::SQL::CastMethods)
+#cast_numeric (Sequel::SQL::Builders)
#cast_sql_append (Sequel::Dataset)
#cast_string (Sequel::SQL::CastMethods)
#cast_string (Sequel::SQL::Builders)
@@ -405,8 +409,8 @@
#columns (Sequel::Model::ClassMethods)
#columns (Sequel::Dataset::PreparedStatementMethods)
#columns! (Sequel::Dataset)
-#complex_expression_sql_append (Sequel::Dataset)
#complex_expression_sql_append (Sequel::Model::Associations::DatasetMethods)
+#complex_expression_sql_append (Sequel::Dataset)
#compound_clone (Sequel::Dataset)
#compound_from_self (Sequel::Dataset)
#condition_specifier? (Sequel::SequelMethods)
@@ -441,8 +445,8 @@
#dataset_class= (Sequel::Database)
#dataset_method (Sequel::Model::Associations::AssociationReflection)
#dataset_module (Sequel::Model::ClassMethods)
-#dataset_need_primary_key? (Sequel::Model::Associations::AssociationReflection)
#dataset_need_primary_key? (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#dataset_need_primary_key? (Sequel::Model::Associations::AssociationReflection)
#db (Sequel::Model::ClassMethods)
#db= (Sequel::Model::ClassMethods)
#db_schema (Sequel::Model::ClassMethods)
@@ -459,27 +463,28 @@
#default_right_key (Sequel::Model::Associations::OneThroughOneAssociationReflection)
#default_timezone= (Sequel::SequelMethods)
#delay (Sequel::SQL::Builders)
-#delayed_evaluation_sql_append (Sequel::Dataset::PreparedStatementMethods)
#delayed_evaluation_sql_append (Sequel::Dataset)
+#delayed_evaluation_sql_append (Sequel::Dataset::PreparedStatementMethods)
#delete (Sequel::Model::InstanceMethods)
#delete (Sequel::Dataset)
#delete_row_number_column (Sequel::Model::Associations::AssociationReflection)
-#desc (Sequel::SQL::OrderedExpression)
#desc (Sequel::SQL::Builders)
#desc (Sequel::SQL::OrderMethods)
-#destroy (Sequel::Model::InstanceMethods)
+#desc (Sequel::SQL::OrderedExpression)
#destroy (Sequel::Model::DatasetMethods)
-#disconnect (Sequel::TimedQueueConnectionPool)
+#destroy (Sequel::Model::InstanceMethods)
+#disconnect (Sequel::Database)
+#disconnect (Sequel::SingleConnectionPool)
+#disconnect (Sequel::ShardedThreadedConnectionPool)
+#disconnect (Sequel::ShardedTimedQueueConnectionPool)
#disconnect (Sequel::ShardedSingleConnectionPool)
#disconnect (Sequel::ThreadedConnectionPool)
-#disconnect (Sequel::ShardedThreadedConnectionPool)
-#disconnect (Sequel::SingleConnectionPool)
-#disconnect (Sequel::Database)
+#disconnect (Sequel::TimedQueueConnectionPool)
#disconnect_connection (Sequel::Database)
#distinct (Sequel::SQL::Function)
#distinct (Sequel::Dataset)
-#down (Sequel::Migration)
#down (Sequel::MigrationDSL)
+#down (Sequel::Migration)
#drop_column (Sequel::Schema::AlterTableGenerator)
#drop_column (Sequel::Database)
#drop_constraint (Sequel::Schema::AlterTableGenerator)
@@ -492,33 +497,33 @@
#drop_view (Sequel::Database)
#dup (Sequel::SQL::Expression)
#dup (Sequel::Dataset)
-#each (Sequel::Model::InstanceMethods)
#each (Sequel::Dataset)
#each (Sequel::Dataset::PlaceholderLiteralizer)
+#each (Sequel::Model::InstanceMethods)
#each_server (Sequel::Dataset)
#eager (Sequel::Model::Associations::DatasetMethods)
#eager_graph (Sequel::Model::Associations::DatasetMethods)
#eager_graph_association (Sequel::Model::Associations::DatasetMethods)
#eager_graph_associations (Sequel::Model::Associations::DatasetMethods)
#eager_graph_build_associations (Sequel::Model::Associations::DatasetMethods)
-#eager_graph_lazy_dataset? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_graph_lazy_dataset? (Sequel::Model::Associations::AssociationReflection)
+#eager_graph_lazy_dataset? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_graph_limit_strategy (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_graph_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#eager_graph_with_options (Sequel::Model::Associations::DatasetMethods)
#eager_limit_strategy (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
-#eager_load_results (Sequel::Model::Associations::AssociationReflection)
#eager_load_results (Sequel::Model::Associations::ClassMethods)
+#eager_load_results (Sequel::Model::Associations::AssociationReflection)
#eager_loader_key (Sequel::Model::Associations::AssociationReflection)
-#eager_loading_use_associated_key? (Sequel::Model::Associations::AssociationReflection)
#eager_loading_use_associated_key? (Sequel::Model::Associations::ManyToManyAssociationReflection)
+#eager_loading_use_associated_key? (Sequel::Model::Associations::AssociationReflection)
#elapsed_seconds_since (Sequel::SequelMethods)
#empty? (Sequel::Model::Errors)
#empty? (Sequel::Dataset)
-#eql? (Sequel::SQL::Expression)
-#eql? (Sequel::Model::InstanceMethods)
#eql? (Sequel::Dataset)
+#eql? (Sequel::Model::InstanceMethods)
+#eql? (Sequel::SQL::Expression)
#errors (Sequel::Model::InstanceMethods)
#escape_like (Sequel::Dataset)
#except (Sequel::Dataset)
@@ -533,10 +538,10 @@
#expression? (Sequel::SQL::CaseExpression)
#extend (Sequel::Model::InstanceMethods)
#extend_datasets (Sequel::Database)
-#extension (Sequel::SequelMethods)
-#extension (Sequel::Dataset::DeprecatedSingletonClassMethods)
#extension (Sequel::Dataset)
#extension (Sequel::Database)
+#extension (Sequel::Dataset::DeprecatedSingletonClassMethods)
+#extension (Sequel::SequelMethods)
#extract (Sequel::SQL::ComplexExpressionMethods)
#extract (Sequel::SQL::Builders)
#fetch (Sequel::Database)
@@ -549,28 +554,28 @@
#finalize (Sequel::Model::Associations::AssociationReflection)
#finalize_associations (Sequel::Model::Associations::ClassMethods)
#finalize_settings (Sequel::Model::Associations::AssociationReflection)
-#finalize_settings (Sequel::Model::Associations::ManyToManyAssociationReflection)
#finalize_settings (Sequel::Model::Associations::OneToManyAssociationReflection)
#finalize_settings (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#finalize_settings (Sequel::Model::Associations::ManyToManyAssociationReflection)
#find (Sequel::Model::ClassMethods)
#find_or_create (Sequel::Model::ClassMethods)
-#first (Sequel::Dataset)
#first (Sequel::Dataset::PlaceholderLiteralizer)
+#first (Sequel::Dataset)
#first! (Sequel::Dataset)
#first_source (Sequel::Dataset)
#first_source_alias (Sequel::Dataset)
#first_source_table (Sequel::Dataset)
#for_update (Sequel::Dataset)
#foreign_key (Sequel::Schema::CreateTableGenerator)
-#freeze (Sequel::ShardedSingleConnectionPool)
-#freeze (Sequel::ShardedThreadedConnectionPool)
-#freeze (Sequel::Database)
#freeze (Sequel::Model::InstanceMethods)
+#freeze (Sequel::Model::ClassMethods)
+#freeze (Sequel::Database)
+#freeze (Sequel::ShardedSingleConnectionPool)
+#freeze (Sequel::Model::Associations::ClassMethods)
#freeze (Sequel::Dataset::PlaceholderLiteralizer)
+#freeze (Sequel::ShardedThreadedConnectionPool)
#freeze (Sequel::Model::Associations::InstanceMethods)
#freeze (Sequel::Dataset)
-#freeze (Sequel::Model::Associations::ClassMethods)
-#freeze (Sequel::Model::ClassMethods)
#from (Sequel::Dataset)
#from (Sequel::Database)
#from_application_timestamp (Sequel::Database)
@@ -578,12 +583,12 @@
#full_messages (Sequel::Model::Errors)
#full_text_index (Sequel::Schema::CreateTableGenerator)
#function (Sequel::SQL::Builders)
-#function (Sequel::SQL::QualifiedIdentifier)
#function (Sequel::SQL::Identifier)
+#function (Sequel::SQL::QualifiedIdentifier)
#function_sql_append (Sequel::Dataset)
+#get (Sequel::Dataset::PlaceholderLiteralizer)
#get (Sequel::Dataset)
#get (Sequel::Database)
-#get (Sequel::Dataset::PlaceholderLiteralizer)
#get_pool (Sequel::ConnectionPool::ClassMethods)
#global_index_namespace? (Sequel::Database)
#graph (Sequel::Dataset)
@@ -600,14 +605,15 @@
#has_column? (Sequel::Schema::CreateTableGenerator)
#has_dataset? (Sequel::Model::ClassMethods)
#hash (Sequel::SQL::Expression)
-#hash (Sequel::Dataset)
#hash (Sequel::Model::InstanceMethods)
+#hash (Sequel::Dataset)
#having (Sequel::Dataset)
-#hold (Sequel::SingleConnectionPool)
#hold (Sequel::ThreadedConnectionPool)
-#hold (Sequel::ShardedThreadedConnectionPool)
-#hold (Sequel::ShardedSingleConnectionPool)
#hold (Sequel::TimedQueueConnectionPool)
+#hold (Sequel::ShardedSingleConnectionPool)
+#hold (Sequel::SingleConnectionPool)
+#hold (Sequel::ShardedThreadedConnectionPool)
+#hold (Sequel::ShardedTimedQueueConnectionPool)
#id (Sequel::Model::InstanceMethods)
#identifier (Sequel::SQL::Builders)
#ilike (Sequel::SQL::Builders)
@@ -620,16 +626,16 @@
#initialize_association_cache (Sequel::Model::Associations::AssociationReflection)
#insert (Sequel::Dataset)
#insert_sql (Sequel::Dataset)
-#inspect (Sequel::LiteralString)
#inspect (Sequel::SQL::ValueList)
-#inspect (Sequel::SQLTime)
-#inspect (Sequel::Model::InstanceMethods)
+#inspect (Sequel::LiteralString)
#inspect (Sequel::SQL::Expression)
+#inspect (Sequel::Model::InstanceMethods)
+#inspect (Sequel::Model::Associations::AssociationReflection)
+#inspect (Sequel::Database)
#inspect (Sequel::SQL::Blob)
#inspect (Sequel::Dataset)
+#inspect (Sequel::SQLTime)
#inspect (Sequel::Dataset::PreparedStatementMethods)
-#inspect (Sequel::Database)
-#inspect (Sequel::Model::Associations::AssociationReflection)
#intersect (Sequel::Dataset)
#invert (Sequel::Dataset)
#invert (Sequel::SQL::OrderedExpression)
@@ -646,18 +652,18 @@
#joined_dataset? (Sequel::Dataset)
#json_parser_error_class (Sequel::SequelMethods)
#keys (Sequel::Model::InstanceMethods)
-#last (Sequel::Model::DatasetMethods)
#last (Sequel::Dataset)
-#lateral (Sequel::Dataset)
+#last (Sequel::Model::DatasetMethods)
#lateral (Sequel::SQL::Function)
-#like (Sequel::SQL::StringMethods)
+#lateral (Sequel::Dataset)
#like (Sequel::SQL::Builders)
+#like (Sequel::SQL::StringMethods)
#limit (Sequel::Dataset)
#limit_and_offset (Sequel::Model::Associations::SingularAssociationReflection)
#limit_and_offset (Sequel::Model::Associations::AssociationReflection)
#lit (Sequel::SQL::Blob)
-#lit (Sequel::SQL::Builders)
#lit (Sequel::LiteralString)
+#lit (Sequel::SQL::Builders)
#literal (Sequel::Database)
#literal_append (Sequel::Dataset)
#literal_symbol (Sequel::Database)
@@ -687,8 +693,8 @@
#merge_sql (Sequel::Dataset)
#merge_update (Sequel::Dataset)
#merge_using (Sequel::Dataset)
-#method_missing (Sequel::Schema::CreateTableGenerator)
#method_missing (Sequel::SQL::VirtualRow)
+#method_missing (Sequel::Schema::CreateTableGenerator)
#method_missing (Sequel::Migration)
#min (Sequel::Dataset)
#model (Sequel::Model::DatasetMethods)
@@ -714,10 +720,10 @@
#one_to_many (Sequel::Model::Associations::ClassMethods)
#one_to_one (Sequel::Model::Associations::ClassMethods)
#options_overlap (Sequel::Dataset)
-#or (Sequel::SQL::Builders)
#or (Sequel::Dataset)
-#order (Sequel::SQL::Function)
+#or (Sequel::SQL::Builders)
#order (Sequel::Dataset)
+#order (Sequel::SQL::Function)
#order_append (Sequel::Dataset)
#order_by (Sequel::Dataset)
#order_more (Sequel::Dataset)
@@ -726,8 +732,8 @@
#orig_dataset (Sequel::Dataset::PreparedStatementMethods)
#orig_require (Sequel::SequelMethods)
#over (Sequel::SQL::Function)
-#paged_each (Sequel::Dataset)
#paged_each (Sequel::Model::DatasetMethods)
+#paged_each (Sequel::Dataset)
#parse_json (Sequel::SequelMethods)
#pk (Sequel::Model::InstanceMethods)
#pk_equal? (Sequel::Model::InstanceMethods)
@@ -738,27 +744,28 @@
#placeholder_loader (Sequel::Model::Associations::AssociationReflection)
#plugin (Sequel::Model::ClassMethods)
#pool_type (Sequel::TimedQueueConnectionPool)
+#pool_type (Sequel::SingleConnectionPool)
#pool_type (Sequel::ShardedThreadedConnectionPool)
+#pool_type (Sequel::ShardedTimedQueueConnectionPool)
#pool_type (Sequel::ThreadedConnectionPool)
-#pool_type (Sequel::SingleConnectionPool)
#pool_type (Sequel::ShardedSingleConnectionPool)
#predicate_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
-#predicate_key (Sequel::Model::Associations::OneToManyAssociationReflection)
#predicate_key (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#predicate_key (Sequel::Model::Associations::OneToManyAssociationReflection)
#predicate_key_values (Sequel::Model::Associations::AssociationReflection)
#predicate_keys (Sequel::Model::Associations::AssociationReflection)
#prepare (Sequel::Dataset::PreparedStatementMethods)
#prepare (Sequel::Dataset)
#prepared_args (Sequel::Dataset::PreparedStatementMethods)
#prepared_modify_values (Sequel::Dataset::PreparedStatementMethods)
-#prepared_sql (Sequel::Dataset::ArgumentMapper)
#prepared_sql (Sequel::Dataset::PreparedStatementMethods)
+#prepared_sql (Sequel::Dataset::ArgumentMapper)
#prepared_statement (Sequel::Database)
#prepared_statement_name (Sequel::Dataset::ArgumentMapper)
#prepared_type (Sequel::Dataset::PreparedStatementMethods)
-#primary_key (Sequel::Schema::CreateTableGenerator)
-#primary_key (Sequel::Model::Associations::ManyToOneAssociationReflection)
#primary_key (Sequel::Model::Associations::OneToManyAssociationReflection)
+#primary_key (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#primary_key (Sequel::Schema::CreateTableGenerator)
#primary_key_hash (Sequel::Model::ClassMethods)
#primary_key_method (Sequel::Model::Associations::ManyToOneAssociationReflection)
#primary_key_methods (Sequel::Model::Associations::ManyToOneAssociationReflection)
@@ -774,9 +781,9 @@
#qualified_primary_key_hash (Sequel::Model::ClassMethods)
#qualified_right_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
#qualified_right_primary_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
-#qualify (Sequel::Model::Associations::AssociationReflection)
-#qualify (Sequel::SQL::QualifyingMethods)
#qualify (Sequel::Dataset)
+#qualify (Sequel::SQL::QualifyingMethods)
+#qualify (Sequel::Model::Associations::AssociationReflection)
#qualify (Sequel::SQL::Builders)
#qualify_assoc (Sequel::Model::Associations::AssociationReflection)
#qualify_cur (Sequel::Model::Associations::AssociationReflection)
@@ -788,8 +795,8 @@
#quoted_identifier_append (Sequel::Dataset)
#reciprocal (Sequel::Model::Associations::AssociationReflection)
#reciprocal (Sequel::Model::Associations::OneThroughOneAssociationReflection)
-#reciprocal_array? (Sequel::Model::Associations::OneToManyAssociationReflection)
#reciprocal_array? (Sequel::Model::Associations::AssociationReflection)
+#reciprocal_array? (Sequel::Model::Associations::OneToManyAssociationReflection)
#reciprocal_array? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#recursive_cte_requires_column_aliases? (Sequel::Dataset)
#recursive_map (Sequel::SequelMethods)
@@ -799,9 +806,10 @@
#remove_before_destroy? (Sequel::Model::Associations::OneToManyAssociationReflection)
#remove_before_destroy? (Sequel::Model::Associations::AssociationReflection)
#remove_method (Sequel::Model::Associations::AssociationReflection)
-#remove_servers (Sequel::ShardedThreadedConnectionPool)
-#remove_servers (Sequel::Database)
#remove_servers (Sequel::ShardedSingleConnectionPool)
+#remove_servers (Sequel::Database)
+#remove_servers (Sequel::ShardedTimedQueueConnectionPool)
+#remove_servers (Sequel::ShardedThreadedConnectionPool)
#remove_should_check_existing? (Sequel::Model::Associations::OneToManyAssociationReflection)
#remove_should_check_existing? (Sequel::Model::Associations::AssociationReflection)
#rename_column (Sequel::Schema::AlterTableGenerator)
@@ -815,12 +823,12 @@
#restrict_primary_key (Sequel::Model::ClassMethods)
#restrict_primary_key? (Sequel::Model::ClassMethods)
#returning (Sequel::Dataset)
-#returns_array? (Sequel::Model::Associations::SingularAssociationReflection)
-#returns_array? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#returns_array? (Sequel::Model::Associations::AssociationReflection)
-#reverse (Sequel::Dataset)
-#reverse (Sequel::MigrationReverser)
+#returns_array? (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#returns_array? (Sequel::Model::Associations::SingularAssociationReflection)
#reverse (Sequel::MigrationAlterTableReverser)
+#reverse (Sequel::MigrationReverser)
+#reverse (Sequel::Dataset)
#reverse_order (Sequel::Dataset)
#right_primary_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
#right_primary_key_method (Sequel::Model::Associations::ManyToManyAssociationReflection)
@@ -830,20 +838,20 @@
#rollback_on_exit (Sequel::Database)
#row_number_column (Sequel::Dataset)
#row_proc (Sequel::Dataset)
-#run (Sequel::Dataset::PreparedStatementMethods)
-#run (Sequel::Database)
-#run (Sequel::Dataset::EmulatePreparedStatementMethods)
#run (Sequel::IntegerMigrator)
+#run (Sequel::Dataset::EmulatePreparedStatementMethods)
+#run (Sequel::Database)
#run (Sequel::TimestampMigrator)
+#run (Sequel::Dataset::PreparedStatementMethods)
#save (Sequel::Model::InstanceMethods)
#save_changes (Sequel::Model::InstanceMethods)
#schema (Sequel::Database)
#schema_and_table (Sequel::Dataset)
#schema_type_class (Sequel::Database)
-#select (Sequel::Model::Associations::AssociationReflection)
-#select (Sequel::Dataset)
#select (Sequel::Database)
#select (Sequel::Model::Associations::ManyToManyAssociationReflection)
+#select (Sequel::Model::Associations::AssociationReflection)
+#select (Sequel::Dataset)
#select_all (Sequel::Dataset)
#select_append (Sequel::Dataset)
#select_group (Sequel::Dataset)
@@ -856,8 +864,9 @@
#serial_primary_key_options (Sequel::Database)
#server (Sequel::Dataset)
#server? (Sequel::Dataset)
-#servers (Sequel::ShardedThreadedConnectionPool)
#servers (Sequel::Database)
+#servers (Sequel::ShardedTimedQueueConnectionPool)
+#servers (Sequel::ShardedThreadedConnectionPool)
#servers (Sequel::ShardedSingleConnectionPool)
#servers (Sequel::ConnectionPool)
#set (Sequel::Model::InstanceMethods)
@@ -873,8 +882,8 @@
#set_prepared_statement (Sequel::Database)
#set_primary_key (Sequel::Model::ClassMethods)
#set_reciprocal_to_self? (Sequel::Model::Associations::ManyToOneAssociationReflection)
-#set_reciprocal_to_self? (Sequel::Model::Associations::OneToManyAssociationReflection)
#set_reciprocal_to_self? (Sequel::Model::Associations::AssociationReflection)
+#set_reciprocal_to_self? (Sequel::Model::Associations::OneToManyAssociationReflection)
#set_server (Sequel::Model::InstanceMethods)
#setter_method (Sequel::Model::Associations::AssociationReflection)
#setter_methods (Sequel::Model::ClassMethods)
@@ -887,11 +896,12 @@
#single_value! (Sequel::Dataset)
#single_value_ds (Sequel::Dataset)
#singleton_method_added (Sequel::Model::InstanceMethods)
-#size (Sequel::ShardedSingleConnectionPool)
#size (Sequel::ThreadedConnectionPool)
#size (Sequel::TimedQueueConnectionPool)
+#size (Sequel::ShardedTimedQueueConnectionPool)
#size (Sequel::SingleConnectionPool)
#size (Sequel::ShardedThreadedConnectionPool)
+#size (Sequel::ShardedSingleConnectionPool)
#skip_limit_check (Sequel::Dataset)
#skip_locked (Sequel::Dataset)
#skip_validation_on_next_save! (Sequel::Model::InstanceMethods)
@@ -904,16 +914,16 @@
#split_symbols? (Sequel::SequelMethods)
#sql (Sequel::Dataset)
#sql (Sequel::Dataset::PlaceholderLiteralizer)
-#sql_boolean (Sequel::SQL::ComplexExpressionMethods)
#sql_boolean (Sequel::SQL::ComplexExpression)
#sql_boolean (Sequel::SQL::BooleanExpression)
+#sql_boolean (Sequel::SQL::ComplexExpressionMethods)
#sql_literal_append (Sequel::Dataset::PlaceholderLiteralizer::Argument)
-#sql_number (Sequel::SQL::ComplexExpression)
-#sql_number (Sequel::SQL::ComplexExpressionMethods)
#sql_number (Sequel::SQL::NumericExpression)
-#sql_string (Sequel::SQL::ComplexExpressionMethods)
-#sql_string (Sequel::SQL::ComplexExpression)
+#sql_number (Sequel::SQL::ComplexExpressionMethods)
+#sql_number (Sequel::SQL::ComplexExpression)
#sql_string (Sequel::SQL::StringExpression)
+#sql_string (Sequel::SQL::ComplexExpression)
+#sql_string (Sequel::SQL::ComplexExpressionMethods)
#sql_subscript (Sequel::SQL::SubscriptMethods)
#start_timer (Sequel::SequelMethods)
#string_to_date (Sequel::SequelMethods)
@@ -991,11 +1001,11 @@
#to_hash_groups (Sequel::Dataset)
#to_prepared_statement (Sequel::Dataset)
#to_s (Sequel::SQLTime)
-#to_sequel_blob (Sequel::LiteralString)
#to_sequel_blob (Sequel::SQL::Blob)
-#transaction (Sequel::MigrationDSL)
+#to_sequel_blob (Sequel::LiteralString)
#transaction (Sequel::SequelMethods)
#transaction (Sequel::Database)
+#transaction (Sequel::MigrationDSL)
#transform (Sequel::Dataset::PlaceholderLiteralizer::Argument)
#transform (Sequel::ASTTransformer)
#trim (Sequel::SQL::Builders)
@@ -1017,8 +1027,8 @@
#unused_table_alias (Sequel::Dataset)
#up (Sequel::Migration)
#up (Sequel::MigrationDSL)
-#update (Sequel::Model::InstanceMethods)
#update (Sequel::Dataset)
+#update (Sequel::Model::InstanceMethods)
#update_fields (Sequel::Model::InstanceMethods)
#update_sql (Sequel::Dataset)
#uri (Sequel::Database)
@@ -1037,13 +1047,13 @@
#window_sql_append (Sequel::Dataset)
#with (Sequel::Dataset)
#with_dataset (Sequel::Dataset::PlaceholderLiteralizer)
-#with_extend (Sequel::Dataset::DeprecatedSingletonClassMethods)
#with_extend (Sequel::Dataset)
+#with_extend (Sequel::Dataset::DeprecatedSingletonClassMethods)
#with_merged_expression (Sequel::SQL::CaseExpression)
#with_ordinality (Sequel::SQL::Function)
#with_parens (Sequel::SQL::PlaceholderLiteralString)
-#with_pk (Sequel::Model::ClassMethods)
#with_pk (Sequel::Model::DatasetMethods)
+#with_pk (Sequel::Model::ClassMethods)
#with_pk! (Sequel::Model::DatasetMethods)
#with_pk! (Sequel::Model::ClassMethods)
#with_quote_identifiers (Sequel::Dataset)
@@ -1060,9 +1070,9 @@
#within_group (Sequel::SQL::Function)
#| (Sequel::SQL::Subscript)
#| (Sequel::SQL::BooleanExpression)
-#~ (Sequel::SQL::BitwiseMethods)
#~ (Sequel::SQL::OperatorBuilders)
#~ (Sequel::SQL::BooleanMethods)
+#~ (Sequel::SQL::BitwiseMethods)
connection_expiration.rb
connection_expiration.rb
DB.pool.connection_expiration_timeout = 3600 # 1 hour
-
Note that this extension only affects the default threaded and the sharded threaded connection pool. The single threaded and sharded single threaded connection pools are not affected. As the only reason to use the single threaded pools is for speed, and this extension makes the connection pool slower, there’s not much point in modifying this extension to work with the single threaded pools. The threaded pools work fine even in single threaded code, so if you are currently using a single threaded pool and want to use this extension, switch to using a threaded pool.
+Note that this extension does not work with the single threaded and sharded single threaded connection pools. As the only reason to use the single threaded pools is for speed, and this extension makes the connection pool slower, there’s not much point in modifying this extension to work with the single threaded pools. The non-single threaded pools work fine even in single threaded code, so if you are currently using a single threaded pool and want to use this extension, switch to using another pool.
Related module: Sequel::ConnectionExpiration
connection_validator.rb
Note that if you set the timeout to validate connections on every checkout, you should probably manually control connection checkouts on a coarse basis, using Database#synchronize. In a web application, the optimal place for that would be a rack middleware. Validating connections on every checkout without setting up coarse connection checkouts will hurt performance, in some cases significantly. Note that setting up coarse connection checkouts reduces the concurrency level achievable. For example, in a web application, using Database#synchronize in a rack middleware will limit the number of concurrent web requests to the number to connections in the database connection pool.
-Note that this extension only affects the default threaded and the sharded threaded connection pool. The single threaded and sharded single threaded connection pools are not affected. As the only reason to use the single threaded pools is for speed, and this extension makes the connection pool slower, there’s not much point in modifying this extension to work with the single threaded pools. The threaded pools work fine even in single threaded code, so if you are currently using a single threaded pool and want to use this extension, switch to using a threaded pool.
+Note that this extension does not work with the single threaded and sharded single threaded connection pools. As the only reason to use the single threaded pools is for speed, and this extension makes the connection pool slower, there’s not much point in modifying this extension to work with the single threaded pools. The non-single threaded pools work fine even in single threaded code, so if you are currently using a single threaded pool and want to use this extension, switch to using another pool.
Related module: Sequel::ConnectionValidator
server_block.rb
Last Update:
-2021-12-17 16:59:47 -0800
+2023-06-12 13:05:49 -0700
diff --git a/rdoc-plugins/files/lib/sequel/plugins/static_cache_rb.html b/rdoc-plugins/files/lib/sequel/plugins/static_cache_rb.html
index 4f11aae09e..7877a37a96 100644
--- a/rdoc-plugins/files/lib/sequel/plugins/static_cache_rb.html
+++ b/rdoc-plugins/files/lib/sequel/plugins/static_cache_rb.html
@@ -31,7 +31,7 @@ static_cache.rb
Last Update:
-2021-09-21 14:24:30 -0700
+2023-06-30 11:20:51 -0700
diff --git a/rdoc-plugins/fr_class_index.html b/rdoc-plugins/fr_class_index.html
index 7cbcfde5d3..5d2b6b54ed 100644
--- a/rdoc-plugins/fr_class_index.html
+++ b/rdoc-plugins/fr_class_index.html
@@ -300,6 +300,7 @@
Sequel::Plugins::SqlComments::InstanceMethods
Sequel::Plugins::StaticCache
Sequel::Plugins::StaticCache::ClassMethods
+Sequel::Plugins::StaticCache::ForbidLazyLoadClassMethods
Sequel::Plugins::StaticCache::InstanceMethods
Sequel::Plugins::StaticCacheCache
Sequel::Plugins::StaticCacheCache::ClassMethods
diff --git a/rdoc-plugins/fr_method_index.html b/rdoc-plugins/fr_method_index.html
index 3b593fe782..8b92652993 100644
--- a/rdoc-plugins/fr_method_index.html
+++ b/rdoc-plugins/fr_method_index.html
@@ -159,87 +159,87 @@
#validations (Sequel::Plugins::ValidationClassMethods::ClassMethods)
#wrap_json_primitives (Sequel::Postgres::JSONDatabaseMethods)
::_load (Sequel::Postgres::HStore)
-::apply (Sequel::Plugins::SubsetConditions)
-::apply (Sequel::Plugins::Composition)
-::apply (Sequel::Plugins::AutoValidationsConstraintValidationsPresenceMessage)
-::apply (Sequel::Plugins::AssociationDependencies)
-::apply (Sequel::Plugins::PgArrayAssociations)
-::apply (Sequel::Plugins::UnusedAssociations)
-::apply (Sequel::Plugins::AutoValidations)
-::apply (Sequel::Plugins::Touch)
+::apply (Sequel::Plugins::ValidationHelpersGenericTypeMessages)
+::apply (Sequel::Plugins::Serialization)
+::apply (Sequel::Plugins::RcteTree)
::apply (Sequel::Plugins::ColumnEncryption)
+::apply (Sequel::Plugins::AutoValidationsConstraintValidationsPresenceMessage)
+::apply (Sequel::Plugins::Subclasses)
+::apply (Sequel::Plugins::PreparedStatementsSafe)
::apply (Sequel::Plugins::MssqlOptimisticLocking)
+::apply (Sequel::Plugins::PreparedStatements)
+::apply (Sequel::Plugins::Touch)
+::apply (Sequel::Plugins::Finder)
+::apply (Sequel::Plugins::NestedAttributes)
+::apply (Sequel::Plugins::SerializationModificationDetection)
+::apply (Sequel::Plugins::StringStripper)
+::apply (Sequel::Plugins::OptimisticLocking)
::apply (Sequel::Plugins::LazyAttributes)
+::apply (Sequel::Plugins::InvertedSubsets)
+::apply (Sequel::Plugins::DelayAddAssociation)
::apply (Sequel::Plugins::InputTransformer)
-::apply (Sequel::Plugins::OptimisticLocking)
-::apply (Sequel::Plugins::PreparedStatementsSafe)
+::apply (Sequel::Plugins::UnusedAssociations)
+::apply (Sequel::Plugins::AutoValidations)
::apply (Sequel::Plugins::HookClassMethods)
-::apply (Sequel::Plugins::RcteTree)
-::apply (Sequel::Plugins::ConstraintValidations)
-::apply (Sequel::Plugins::Subclasses)
-::apply (Sequel::Plugins::Serialization)
-::apply (Sequel::Plugins::DelayAddAssociation)
-::apply (Sequel::Plugins::ValidateAssociated)
-::apply (Sequel::Plugins::InvertedSubsets)
::apply (Sequel::Migration)
-::apply (Sequel::Plugins::ValidationHelpersGenericTypeMessages)
-::apply (Sequel::Plugins::SerializationModificationDetection)
-::apply (Sequel::Plugins::Finder)
-::apply (Sequel::Plugins::ValidationClassMethods)
-::apply (Sequel::Plugins::StringStripper)
-::apply (Sequel::Plugins::PreparedStatements)
-::apply (Sequel::Migrator)
-::apply (Sequel::Plugins::ColumnConflicts)
::apply (Sequel::Plugins::ClassTableInheritance)
-::apply (Sequel::Plugins::NestedAttributes)
+::apply (Sequel::Plugins::Composition)
+::apply (Sequel::Plugins::SubsetConditions)
+::apply (Sequel::Migrator)
+::apply (Sequel::Plugins::PgArrayAssociations)
+::apply (Sequel::Plugins::ConstraintValidations)
+::apply (Sequel::Plugins::AssociationDependencies)
+::apply (Sequel::Plugins::ValidationClassMethods)
+::apply (Sequel::Plugins::ValidateAssociated)
::apply (Sequel::Plugins::Tree)
+::apply (Sequel::Plugins::ColumnConflicts)
::check_current (Sequel::Migrator)
::clear (String::Inflections)
-::configure (Sequel::Plugins::DefaultsSetter)
+::configure (Sequel::Plugins::PgAutoConstraintValidations)
+::configure (Sequel::Plugins::ConstraintValidations)
+::configure (Sequel::Plugins::StaticCache)
+::configure (Sequel::Plugins::AssociationDependencies)
::configure (Sequel::Plugins::ClassTableInheritance)
+::configure (Sequel::Plugins::ColumnSelect)
+::configure (Sequel::Plugins::SqlComments)
+::configure (Sequel::Plugins::TableSelect)
+::configure (Sequel::Plugins::DefaultsSetter)
+::configure (Sequel::Plugins::ForceEncoding)
+::configure (Sequel::Plugins::CsvSerializer)
+::configure (Sequel::Plugins::List)
+::configure (Sequel::Plugins::AutoValidations)
+::configure (Sequel::Plugins::LazyAttributes)
::configure (Sequel::Plugins::SkipSavingColumns)
-::configure (Sequel::Plugins::Caching)
-::configure (Sequel::Plugins::BooleanSubsets)
+::configure (Sequel::Plugins::Uuid)
::configure (Sequel::Plugins::SingleTableInheritance)
+::configure (Sequel::Plugins::OptimisticLocking)
::configure (Sequel::Plugins::StaticCacheCache)
-::configure (Sequel::Plugins::JsonSerializer)
-::configure (Sequel::Plugins::BooleanReaders)
-::configure (Sequel::Plugins::Serialization)
-::configure (Sequel::Plugins::InsertConflict)
-::configure (Sequel::Plugins::Uuid)
-::configure (Sequel::Plugins::InstanceSpecificDefault)
+::configure (Sequel::Plugins::InputTransformer)
::configure (Sequel::Plugins::StringStripper)
-::configure (Sequel::Plugins::RequireValidSchema)
-::configure (Sequel::Plugins::UpdateRefresh)
-::configure (Sequel::Plugins::ForceEncoding)
+::configure (Sequel::Plugins::ConcurrentEagerLoading)
+::configure (Sequel::Plugins::PgRow)
+::configure (Sequel::Plugins::Touch)
::configure (Sequel::Plugins::ColumnConflicts)
-::configure (Sequel::Plugins::TableSelect)
-::configure (Sequel::Plugins::InputTransformer)
+::configure (Sequel::Plugins::MssqlOptimisticLocking)
+::configure (Sequel::Plugins::TypecastOnLoad)
+::configure (Sequel::Plugins::PreparedStatementsSafe)
::configure (Sequel::Plugins::Timestamps)
-::configure (Sequel::Plugins::StaticCache)
+::configure (Sequel::Plugins::InsertConflict)
+::configure (Sequel::Plugins::InsertReturningSelect)
::configure (Sequel::Plugins::InstanceFilters)
-::configure (Sequel::Plugins::AssociationProxies)
-::configure (Sequel::Plugins::LazyAttributes)
-::configure (Sequel::Plugins::SqlComments)
-::configure (Sequel::Plugins::List)
-::configure (Sequel::Plugins::PrimaryKeyLookupCheckValues)
-::configure (Sequel::Plugins::PgAutoConstraintValidations)
+::configure (Sequel::Plugins::AutoValidationsConstraintValidationsPresenceMessage)
::configure (Sequel::Plugins::UnusedAssociations)
-::configure (Sequel::Plugins::PreparedStatementsSafe)
-::configure (Sequel::Plugins::Touch)
+::configure (Sequel::Plugins::Serialization)
::configure (Sequel::Plugins::ColumnEncryption)
-::configure (Sequel::Plugins::CsvSerializer)
-::configure (Sequel::Plugins::TypecastOnLoad)
-::configure (Sequel::Plugins::AssociationDependencies)
-::configure (Sequel::Plugins::InsertReturningSelect)
-::configure (Sequel::Plugins::AutoValidations)
-::configure (Sequel::Plugins::ColumnSelect)
-::configure (Sequel::Plugins::OptimisticLocking)
-::configure (Sequel::Plugins::ConstraintValidations)
-::configure (Sequel::Plugins::AutoValidationsConstraintValidationsPresenceMessage)
-::configure (Sequel::Plugins::ConcurrentEagerLoading)
-::configure (Sequel::Plugins::MssqlOptimisticLocking)
-::configure (Sequel::Plugins::PgRow)
+::configure (Sequel::Plugins::PrimaryKeyLookupCheckValues)
+::configure (Sequel::Plugins::BooleanReaders)
+::configure (Sequel::Plugins::BooleanSubsets)
+::configure (Sequel::Plugins::UpdateRefresh)
+::configure (Sequel::Plugins::InstanceSpecificDefault)
+::configure (Sequel::Plugins::JsonSerializer)
+::configure (Sequel::Plugins::Caching)
+::configure (Sequel::Plugins::RequireValidSchema)
+::configure (Sequel::Plugins::AssociationProxies)
::core_extensions? (Sequel)
::create (Sequel::MigrationDSL)
::db_parse_json (Sequel::Postgres::JSONDatabaseMethods)
@@ -250,29 +250,29 @@
::define_async_method (Sequel::Database::AsyncThreadPool::DatasetMethods)
::descendants (Sequel::Migration)
::empty (Sequel::Postgres::PGRange)
+::extended (Sequel::ServerBlock)
+::extended (Sequel::Postgres::PGRow::DatabaseMethods)
+::extended (Sequel::Postgres::PGRange::DatabaseMethods)
+::extended (Sequel::ConnectionValidator)
::extended (Sequel::ServerLogging)
-::extended (Sequel::Postgres::JSONDatabaseMethods)
+::extended (Sequel::ConstantSqlOverride::DatabaseMethods)
+::extended (Sequel::Postgres::HStore::DatabaseMethods)
+::extended (Sequel::ConnectionExpiration)
::extended (Sequel::Postgres::PGArray::DatabaseMethods)
-::extended (Sequel::Postgres::PGRange::DatabaseMethods)
-::extended (Sequel::Postgres::PGRow::DatabaseMethods)
-::extended (Sequel::Database::AsyncThreadPool::DatabaseMethods)
-::extended (Sequel::Postgres::PGMultiRange::DatabaseMethods)
+::extended (Sequel::Postgres::JSONDatabaseMethods)
+::extended (Sequel::ConstraintValidations)
::extended (Sequel::Postgres::ExtendedDateSupport)
+::extended (Sequel::Postgres::PGMultiRange::DatabaseMethods)
+::extended (Sequel::IdentifierMangling::DatabaseMethods)
+::extended (Sequel::DatabaseQuery)
::extended (Sequel::Postgres::AutoParameterize::DatabaseMethods)
-::extended (Sequel::Postgres::IntervalDatabaseMethods)
-::extended (Sequel::ServerBlock)
::extended (Sequel::SQLLogNormalizer)
-::extended (Sequel::DatabaseQuery)
-::extended (Sequel::IdentifierMangling::DatabaseMethods)
-::extended (Sequel::Postgres::EnumDatabaseMethods)
-::extended (Sequel::IndexCaching)
-::extended (Sequel::Postgres::HStore::DatabaseMethods)
+::extended (Sequel::Postgres::IntervalDatabaseMethods)
::extended (Sequel::Postgres::InetDatabaseMethods)
-::extended (Sequel::ConstantSqlOverride::DatabaseMethods)
-::extended (Sequel::ConnectionExpiration)
-::extended (Sequel::ConnectionValidator)
+::extended (Sequel::Database::AsyncThreadPool::DatabaseMethods)
+::extended (Sequel::IndexCaching)
::extended (Database::SQLComments)
-::extended (Sequel::ConstraintValidations)
+::extended (Sequel::Postgres::EnumDatabaseMethods)
::from_range (Sequel::Postgres::PGRange)
::inflections (String)
::inherited (Sequel::Migration)
@@ -285,41 +285,41 @@
::literal_duration (Sequel::Postgres::IntervalDatabaseMethods)
::migration (Sequel)
::migrator_class (Sequel::Migrator)
-::new (Sequel::SQL::EscapedLikeExpression)
-::new (Sequel::MigrationAlterTableReverser)
::new (Sequel::SQL::DateAdd)
-::new (Sequel::Postgres::HStoreSubscriptOp)
::new (Sequel::Postgres::AutoParameterize::PlaceholderLiteralizer)
-::new (Sequel::SQL::IsDistinctFrom)
+::new (Sequel::Database::AsyncThreadPool::PreemptableProxy)
+::new (Sequel::Plugins::AfterInitialize::InstanceMethods)
+::new (Sequel::Postgres::PGArray)
+::new (Sequel::Postgres::PGArray::Creator)
+::new (Sequel::Migrator)
::new (Sequel::TimestampMigrator)
-::new (Sequel::Postgres::InetOp)
-::new (Sequel::Dataset::Query)
-::new (Sequel::SQL::StringAgg)
-::new (Sequel::Postgres::PGMultiRange::Parser)
-::new (Sequel::Plugins::JsonSerializer::Literal)
+::new (Sequel::ToDot)
+::new (Sequel::Database::AsyncThreadPool::Proxy)
+::new (Sequel::Postgres::PGRange::Parser)
::new (Sequel::MigrationReverser)
+::new (Sequel::Postgres::JSONBSubscriptOp)
::new (Sequel::SimpleMigration)
-::new (Sequel::Migrator)
-::new (Sequel::ToDot)
-::new (Sequel::ConstraintValidations::Generator)
-::new (Sequel::Postgres::PGRange)
-::new (Sequel::Postgres::PGArray::Parser)
-::new (Sequel::Postgres::PGRow::Parser)
-::new (Sequel::Postgres::PGMultiRange)
+::new (Sequel::Plugins::JsonSerializer::Literal)
::new (Sequel::Postgres::PGMultiRange::Creator)
-::new (Sequel::Postgres::PGArray::Creator)
-::new (Sequel::Plugins::AssociationProxies::AssociationProxy)
+::new (Sequel::Dataset::Query)
::new (Sequel::Migration)
+::new (Sequel::Database::AsyncThreadPool::BaseProxy)
+::new (Sequel::Plugins::AssociationProxies::AssociationProxy)
::new (Sequel::Plugins::ValidationClassMethods::ClassMethods::Generator)
-::new (Sequel::Database::AsyncThreadPool::Proxy)
-::new (Sequel::Database::AsyncThreadPool::PreemptableProxy)
::new (Sequel::MigrationDSL)
-::new (Sequel::Postgres::JSONBSubscriptOp)
-::new (Sequel::Plugins::AfterInitialize::InstanceMethods)
-::new (Sequel::Postgres::PGArray)
+::new (Sequel::SQL::EscapedLikeExpression)
+::new (Sequel::SQL::IsDistinctFrom)
+::new (Sequel::Postgres::PGArray::Parser)
+::new (Sequel::Postgres::PGMultiRange)
+::new (Sequel::Postgres::PGRow::Parser)
+::new (Sequel::Postgres::PGRange)
+::new (Sequel::Postgres::InetOp)
+::new (Sequel::SQL::StringAgg)
+::new (Sequel::Postgres::PGMultiRange::Parser)
+::new (Sequel::Postgres::HStoreSubscriptOp)
::new (Sequel::IntegerMigrator)
-::new (Sequel::Database::AsyncThreadPool::BaseProxy)
-::new (Sequel::Postgres::PGRange::Parser)
+::new (Sequel::MigrationAlterTableReverser)
+::new (Sequel::ConstraintValidations::Generator)
::object_to_json_data (Sequel::Plugins::JsonSerializer)
::output (Sequel::ToDot)
::parse (Sequel::Postgres::HStore)
@@ -330,8 +330,8 @@
::run (Sequel::Migrator)
::singular (String::Inflections)
::string (Sequel::PrettyTable)
-::subclass (Sequel::Postgres::PGRow::ArrayRow)
::subclass (Sequel::Postgres::PGRow::HashRow)
+::subclass (Sequel::Postgres::PGRow::ArrayRow)
::uncountable (String::Inflections)
::use_transactions (Sequel::Migration)
::wrap (Sequel::Postgres::PGRowOp)
@@ -340,25 +340,25 @@
#* (Sequel::Postgres::PGRowOp)
#* (Sequel::CoreRefinements)
#+ (Sequel::Postgres::AutoParameterize::QueryString)
-#- (Sequel::Postgres::InetOp)
-#- (Sequel::Postgres::HStoreOp)
#- (Sequel::Postgres::JSONBOp)
-#== (Sequel::Postgres::PGMultiRange)
+#- (Sequel::Postgres::HStoreOp)
+#- (Sequel::Postgres::InetOp)
#== (Sequel::Postgres::PGRange)
+#== (Sequel::Postgres::PGMultiRange)
#=== (Sequel::Postgres::PGRange)
#=== (Sequel::Postgres::PGMultiRange)
-#[] (Sequel::Plugins::SplitValues::InstanceMethods)
-#[] (Sequel::Plugins::DefaultsSetter::InstanceMethods)
-#[] (Sequel::Postgres::JSONBaseOp)
+#[] (Sequel::Postgres::JSONBOp)
+#[] (Sequel::SymbolAref)
+#[] (Sequel::Postgres::PGRowOp)
#[] (Sequel::Plugins::AccessedColumns::InstanceMethods)
#[] (Sequel::SQLite::JSONOp)
-#[] (Sequel::Postgres::ArrayOp)
+#[] (Symbol)
#[] (Sequel::Postgres::HStoreOp)
-#[] (Sequel::SymbolAref)
-#[] (Sequel::Postgres::PGRowOp)
+#[] (Sequel::Plugins::SplitValues::InstanceMethods)
+#[] (Sequel::Postgres::ArrayOp)
#[] (Sequel::Plugins::ActiveModel::Errors)
-#[] (Symbol)
-#[] (Sequel::Postgres::JSONBOp)
+#[] (Sequel::Postgres::JSONBaseOp)
+#[] (Sequel::Plugins::DefaultsSetter::InstanceMethods)
#[]= (Sequel::Plugins::InputTransformer::InstanceMethods)
#__value (Sequel::Database::AsyncThreadPool::BaseProxy)
#_dump (Sequel::Postgres::HStore)
@@ -372,29 +372,29 @@
#add_named_conversion_proc (Sequel::Postgres::PGArray::DatabaseMethods)
#add_typecast_on_load_columns (Sequel::Plugins::TypecastOnLoad::ClassMethods)
#after_create (Sequel::Plugins::Touch::InstanceMethods)
-#after_destroy (Sequel::Plugins::List::InstanceMethods)
#after_destroy (Sequel::Plugins::Touch::InstanceMethods)
-#after_destroy (Sequel::Plugins::AssociationDependencies::InstanceMethods)
-#after_destroy (Sequel::Plugins::ActiveModel::InstanceMethods)
#after_destroy (Sequel::Plugins::InstanceFilters::InstanceMethods)
+#after_destroy (Sequel::Plugins::ActiveModel::InstanceMethods)
+#after_destroy (Sequel::Plugins::AssociationDependencies::InstanceMethods)
#after_destroy (Sequel::Plugins::InstanceHooks::InstanceMethods)
+#after_destroy (Sequel::Plugins::List::InstanceMethods)
#after_initialize (Sequel::Plugins::AfterInitialize::InstanceMethods)
+#after_save (Sequel::Plugins::AssociationPks::InstanceMethods)
+#after_save (Sequel::Plugins::SerializationModificationDetection::InstanceMethods)
#after_save (Sequel::Plugins::Dirty::InstanceMethods)
-#after_save (Sequel::Plugins::AccessedColumns::InstanceMethods)
#after_save (Sequel::Plugins::InstanceHooks::InstanceMethods)
-#after_save (Sequel::Plugins::SerializationModificationDetection::InstanceMethods)
-#after_save (Sequel::Plugins::AssociationPks::InstanceMethods)
+#after_save (Sequel::Plugins::AccessedColumns::InstanceMethods)
+#after_update (Sequel::Plugins::Touch::InstanceMethods)
#after_update (Sequel::Plugins::UpdateRefresh::InstanceMethods)
#after_update (Sequel::Plugins::InstanceFilters::InstanceMethods)
#after_update (Sequel::Plugins::ModificationDetection::InstanceMethods)
#after_update (Sequel::Plugins::UpdatePrimaryKey::InstanceMethods)
#after_update (Sequel::Plugins::Dirty::InstanceMethods)
-#after_update (Sequel::Plugins::Touch::InstanceMethods)
#after_validation (Sequel::Plugins::InstanceHooks::InstanceMethods)
#akeys (Sequel::Postgres::HStoreOp)
#all (Sequel::Postgres::ArrayOp)
-#all (Sequel::Plugins::EagerEach::DatasetMethods)
#all (Sequel::Plugins::StaticCache::ClassMethods)
+#all (Sequel::Plugins::EagerEach::DatasetMethods)
#allow_lazy_load (Sequel::Plugins::ForbidLazyLoad::InstanceMethods)
#allow_lazy_load_for_static_cache_associations (Sequel::Plugins::ForbidLazyLoad::ClassMethods)
#allow_manual_timestamp_update? (Sequel::Plugins::Timestamps::ClassMethods)
@@ -412,16 +412,16 @@
#array_from_xml (Sequel::Plugins::XmlSerializer::ClassMethods)
#array_length (Sequel::Postgres::JSONBaseOp)
#array_length (Sequel::SQLite::JSONOp)
-#array_type (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#array_type (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#array_type (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#as (Sequel::SymbolAs)
#as_hash (Sequel::Plugins::StaticCache::ClassMethods)
#associate (Sequel::Plugins::UnusedAssociations::ClassMethods)
#associate (Sequel::Plugins::DatasetAssociations::ClassMethods)
#associate (Sequel::Plugins::AutoRestrictEagerGraph::ClassMethods)
#associated (Sequel::Plugins::DatasetAssociations::DatasetMethods)
-#associated_object_keys (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#associated_object_keys (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#associated_object_keys (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#association_reflection (Sequel::Plugins::UnusedAssociations::ClassMethods)
#async (Sequel::Database::AsyncThreadPool::DatasetMethods)
#at_position (Sequel::Plugins::List::InstanceMethods)
@@ -430,67 +430,68 @@
#auto_validate_types? (Sequel::Plugins::AutoValidations::ClassMethods)
#avals (Sequel::Postgres::HStoreOp)
#before_create (Sequel::Plugins::PreparedStatementsSafe::InstanceMethods)
+#before_destroy (Sequel::Plugins::InstanceHooks::InstanceMethods)
#before_destroy (Sequel::Plugins::MssqlOptimisticLocking::InstanceMethods)
+#before_destroy (Sequel::Plugins::OptimisticLocking::InstanceMethods)
#before_destroy (Sequel::Plugins::AssociationDependencies::InstanceMethods)
#before_destroy (Sequel::Plugins::StaticCache::InstanceMethods)
-#before_destroy (Sequel::Plugins::InstanceHooks::InstanceMethods)
-#before_destroy (Sequel::Plugins::OptimisticLocking::InstanceMethods)
#before_save (Sequel::Plugins::InstanceHooks::InstanceMethods)
-#before_save (Sequel::Plugins::StaticCache::InstanceMethods)
#before_save (Sequel::Plugins::Tree::SingleRoot::InstanceMethods)
+#before_save (Sequel::Plugins::StaticCache::InstanceMethods)
#before_update (Sequel::Plugins::OptimisticLocking::InstanceMethods)
-#before_update (Sequel::Plugins::Caching::InstanceMethods)
#before_update (Sequel::Plugins::Timestamps::InstanceMethods)
+#before_update (Sequel::Plugins::Caching::InstanceMethods)
#before_update (Sequel::Plugins::MssqlOptimisticLocking::InstanceMethods)
#before_validation (Sequel::Plugins::List::InstanceMethods)
-#before_validation (Sequel::Plugins::Timestamps::InstanceMethods)
#before_validation (Sequel::Plugins::Serialization::InstanceMethods)
-#before_validation (Sequel::Plugins::Composition::InstanceMethods)
-#before_validation (Sequel::Plugins::ClassTableInheritance::InstanceMethods)
#before_validation (Sequel::Plugins::Uuid::InstanceMethods)
+#before_validation (Sequel::Plugins::ClassTableInheritance::InstanceMethods)
+#before_validation (Sequel::Plugins::Timestamps::InstanceMethods)
+#before_validation (Sequel::Plugins::Composition::InstanceMethods)
#before_validation (Sequel::Plugins::SingleTableInheritance::InstanceMethods)
-#blank? (NilClass)
-#blank? (Numeric)
+#blank? (TrueClass)
#blank? (Object)
-#blank? (String)
+#blank? (Numeric)
#blank? (FalseClass)
-#blank? (TrueClass)
-#bound_variable_arg (Sequel::Postgres::PGRange::DatabaseMethods)
+#blank? (NilClass)
+#blank? (String)
#bound_variable_arg (Sequel::Postgres::JSONDatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::InetDatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::PGArray::DatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::PGMultiRange::DatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::PGRange::DatabaseMethods)
#bound_variable_arg (Sequel::Postgres::ExtendedDateSupport)
#bound_variable_arg (Sequel::Postgres::PGRow::DatabaseMethods)
-#bound_variable_arg (Sequel::Postgres::HStore::DatabaseMethods)
#bound_variable_arg (Sequel::Plugins::PgRow::DatabaseMethods)
#bound_variable_arg (Sequel::Postgres::IntervalDatabaseMethods)
-#bound_variable_arg (Sequel::Postgres::InetDatabaseMethods)
-#bound_variable_arg (Sequel::Postgres::PGMultiRange::DatabaseMethods)
-#bound_variable_arg (Sequel::Postgres::PGArray::DatabaseMethods)
+#bound_variable_arg (Sequel::Postgres::HStore::DatabaseMethods)
#cache_default_values? (Sequel::Plugins::DefaultsSetter::ClassMethods)
#cache_delete_pk (Sequel::Plugins::Caching::ClassMethods)
-#cache_get_pk (Sequel::Plugins::Caching::ClassMethods)
#cache_get_pk (Sequel::Plugins::StaticCache::ClassMethods)
+#cache_get_pk (Sequel::Plugins::StaticCache::ForbidLazyLoadClassMethods)
+#cache_get_pk (Sequel::Plugins::Caching::ClassMethods)
#cache_key (Sequel::Plugins::Caching::InstanceMethods)
#cache_key (Sequel::Plugins::Caching::ClassMethods)
#cache_key_prefix (Sequel::Plugins::Caching::ClassMethods)
#calculate_values_hashes (Sequel::Plugins::ModificationDetection::InstanceMethods)
+#call (Sequel::Plugins::AfterInitialize::ClassMethods)
+#call (Sequel::Postgres::PGRange::Parser)
#call (Sequel::Postgres::IntervalDatabaseMethods::Parser)
+#call (Sequel::Postgres::PGMultiRange::Creator)
+#call (Sequel::Postgres::PGRow::Parser)
#call (Sequel::Plugins::TypecastOnLoad::ClassMethods)
-#call (Sequel::Plugins::SplitValues::ClassMethods)
-#call (Sequel::Postgres::PGRange::Parser)
-#call (Sequel::Plugins::AfterInitialize::ClassMethods)
#call (Sequel::Plugins::ModificationDetection::ClassMethods)
#call (Sequel::Plugins::ForceEncoding::ClassMethods)
-#call (Sequel::Postgres::PGRow::Parser)
-#call (Sequel::Postgres::PGMultiRange::Creator)
+#call (Sequel::Plugins::SplitValues::ClassMethods)
#call (Sequel::Postgres::PGArray::Creator)
#camelcase (String)
#camelize (String)
#can_have_associated_objects? (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#can_have_associated_objects? (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#cardinality (Sequel::Postgres::ArrayOp)
-#case (Sequel::CoreRefinements)
-#case (Array)
#case (Hash)
+#case (Array)
+#case (Sequel::CoreRefinements)
#cast_sql_append (Sequel::Postgres::AutoParameterize::DatasetMethods)
#change (Sequel::MigrationDSL)
#changed_columns (Sequel::Plugins::ModificationDetection::InstanceMethods)
@@ -506,36 +507,36 @@
#column_previously_was (Sequel::Plugins::Dirty::InstanceMethods)
#column_schema_to_ruby_type (Sequel::SchemaDumper)
#columns (Sequel::Dataset::NullDataset)
-#columns (Sequel::Postgres::PGRow::HashRow)
#columns (Sequel::ColumnsIntrospection)
+#columns (Sequel::Postgres::PGRow::HashRow)
#columns! (Sequel::Plugins::EagerEach::DatasetMethods)
#comment (Sequel::SQLComments)
-#complex_expression_sql_append (Sequel::Dataset::SplitArrayNil)
#complex_expression_sql_append (Sequel::Dataset::SetLiteralizer)
+#complex_expression_sql_append (Sequel::Dataset::SplitArrayNil)
#complex_expression_sql_append (Sequel::Postgres::AutoParameterize::DatasetMethods)
#composition (Sequel::Plugins::Composition::ClassMethods)
#compositions (Sequel::Plugins::Composition::InstanceMethods)
-#concat (Sequel::Postgres::JSONBOp)
-#concat (Sequel::Postgres::HStoreOp)
#concat (Sequel::Postgres::ArrayOp)
+#concat (Sequel::Postgres::HStoreOp)
+#concat (Sequel::Postgres::JSONBOp)
#connect (Sequel::ServerLogging)
#constant_sql_append (Sequel::ConstantSqlOverride::DatasetMethods)
#constantize (String)
#constraint (Sequel::ConstraintValidations::AlterTableGeneratorMethods)
-#contain_all (Sequel::Postgres::JSONBOp)
#contain_all (Sequel::Postgres::HStoreOp)
-#contain_any (Sequel::Postgres::HStoreOp)
+#contain_all (Sequel::Postgres::JSONBOp)
#contain_any (Sequel::Postgres::JSONBOp)
-#contained_by (Sequel::Postgres::HStoreOp)
-#contained_by (Sequel::Postgres::JSONBOp)
+#contain_any (Sequel::Postgres::HStoreOp)
#contained_by (Sequel::Postgres::ArrayOp)
-#contains (Sequel::Postgres::JSONBOp)
+#contained_by (Sequel::Postgres::JSONBOp)
+#contained_by (Sequel::Postgres::HStoreOp)
#contains (Sequel::Postgres::ArrayOp)
#contains (Sequel::Postgres::HStoreOp)
+#contains (Sequel::Postgres::JSONBOp)
#convert_infinite_timestamps= (Sequel::Postgres::ExtendedDateSupport)
#count (Sequel::Plugins::StaticCache::ClassMethods)
-#cover? (Sequel::Postgres::PGRange)
#cover? (Sequel::Postgres::PGMultiRange)
+#cover? (Sequel::Postgres::PGRange)
#create_constraint_validations_table (Sequel::ConstraintValidations)
#create_enum (Sequel::Postgres::EnumDatabaseMethods)
#create_static_cache_update_function (Sequel::Postgres::StaticCacheUpdater)
@@ -555,8 +556,8 @@
#date_add_sql_append (Sequel::SQL::DateAdd::DatasetMethods)
#date_parse_input_handler (Sequel::DateParseInputHandler)
#date_sub (Sequel::SQL::Builders)
-#db_type (Sequel::Postgres::PGRow::ArrayRow)
#db_type (Sequel::Postgres::PGRow::HashRow)
+#db_type (Sequel::Postgres::PGRow::ArrayRow)
#def_dataset_method (Sequel::Plugins::DefDatasetMethod::ClassMethods)
#default_associated_key_alias (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
#default_key (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
@@ -564,22 +565,22 @@
#default_static_cache_update_name (Sequel::Postgres::StaticCacheUpdater)
#define_composition_accessor (Sequel::Plugins::Composition::ClassMethods)
#defined (Sequel::Postgres::HStoreOp)
-#delete (Sequel::Postgres::HStoreOp)
#delete (Sequel::Plugins::ClassTableInheritance::InstanceMethods)
#delete (Sequel::Dataset::NullDataset)
#delete (Sequel::Plugins::Caching::InstanceMethods)
+#delete (Sequel::Postgres::HStoreOp)
#delete_path (Sequel::Postgres::JSONBOp)
#delete_unused_associations_files (Sequel::Plugins::UnusedAssociations::ClassMethods)
#demodulize (String)
-#descendants (Sequel::Plugins::Subclasses::ClassMethods)
#descendants (Sequel::Plugins::Tree::InstanceMethods)
+#descendants (Sequel::Plugins::Subclasses::ClassMethods)
#descendents (Sequel::Plugins::Subclasses::ClassMethods)
#deserialized_values (Sequel::Plugins::Serialization::InstanceMethods)
#dims (Sequel::Postgres::ArrayOp)
#disconnect_connection (Sequel::ServerLogging)
#distinct (Sequel::SQL::StringAgg)
-#down (Sequel::MigrationDSL)
#down (Sequel::Migration)
+#down (Sequel::MigrationDSL)
#drop (Sequel::ConstraintValidations::Generator)
#drop_constraint_validations_for (Sequel::ConstraintValidations)
#drop_constraint_validations_table (Sequel::ConstraintValidations)
@@ -598,22 +599,22 @@
#dump_schema_migration (Sequel::SchemaDumper)
#dump_static_cache_cache (Sequel::Plugins::StaticCacheCache::ClassMethods)
#dump_table_schema (Sequel::SchemaDumper)
-#each (Sequel::Dataset::NullDataset)
-#each (Sequel::Plugins::EagerEach::DatasetMethods)
+#each (Sequel::Postgres::JSONBaseOp)
+#each (Sequel::SQLite::JSONOp)
#each (Sequel::GraphEach)
+#each (Sequel::Postgres::HStoreOp)
+#each (Sequel::Plugins::EagerEach::DatasetMethods)
#each (Sequel::Plugins::ForbidLazyLoad::DatasetMethods)
#each (Sequel::Plugins::StaticCache::ClassMethods)
-#each (Sequel::Postgres::JSONBaseOp)
-#each (Sequel::Postgres::HStoreOp)
-#each (Sequel::SQLite::JSONOp)
+#each (Sequel::Dataset::NullDataset)
#each_page (Sequel::DatasetPagination)
#each_text (Sequel::Postgres::JSONBaseOp)
#eager_graph_build_associations (Sequel::Plugins::EagerGraphEager::DatasetMethods)
#eager_graph_eager (Sequel::Plugins::EagerGraphEager::DatasetMethods)
#eager_graph_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#eager_graph_limit_strategy (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
-#eager_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#eager_limit_strategy (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#eager_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#eager_load_concurrently (Sequel::Plugins::ConcurrentEagerLoading::DatasetMethods)
#eager_load_results (Sequel::Plugins::Sharding::ClassMethods)
#eager_load_serially (Sequel::Plugins::ConcurrentEagerLoading::DatasetMethods)
@@ -638,56 +639,57 @@
#fetch (Sequel::Postgres::HStore)
#fetch_rows (Sequel::Dataset::NullDataset)
#filter_by_associations_conditions_expression (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
-#filter_by_associations_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#filter_by_associations_limit_strategy (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#filter_by_associations_limit_strategy (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#filter_expr (Sequel::Dataset::AutoLiteralStrings)
#finalize_associations (Sequel::Plugins::ForbidLazyLoad::ClassMethods)
#finalize_settings (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
-#finalize_settings (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#finalize_settings (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
+#finalize_settings (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#find_or_new (Sequel::Plugins::UpdateOrCreate::ClassMethods)
#finder (Sequel::Plugins::Finder::ClassMethods)
#first (Sequel::Plugins::StaticCache::ClassMethods)
+#first (Sequel::Plugins::StaticCache::ForbidLazyLoadClassMethods)
#first_page? (Sequel::Dataset::Pagination)
#forbid_lazy_load (Sequel::Plugins::ForbidLazyLoad::InstanceMethods)
#foreign_key (String)
-#freeze (Sequel::Plugins::Composition::ClassMethods)
-#freeze (Sequel::Plugins::AssociationDependencies::ClassMethods)
-#freeze (Sequel::Plugins::AutoValidations::ClassMethods)
+#freeze (Sequel::Plugins::InstanceFilters::InstanceMethods)
#freeze (Sequel::Plugins::BlacklistSecurity::ClassMethods)
-#freeze (Sequel::Plugins::NestedAttributes::ClassMethods)
#freeze (Sequel::Plugins::Tree::ClassMethods)
-#freeze (Sequel::Plugins::ClassTableInheritance::ClassMethods)
-#freeze (Sequel::Postgres::PGRange::DatabaseMethods)
-#freeze (Sequel::Postgres::PGMultiRange::DatabaseMethods)
-#freeze (Sequel::Plugins::ColumnConflicts::ClassMethods)
-#freeze (Sequel::Plugins::UpdateRefresh::ClassMethods)
+#freeze (Sequel::Plugins::AutoValidations::ClassMethods)
+#freeze (Sequel::Plugins::SingleTableInheritance::ClassMethods)
#freeze (Sequel::Plugins::TypecastOnLoad::ClassMethods)
-#freeze (Sequel::Plugins::ActiveModel::ClassMethods)
+#freeze (Sequel::Plugins::Finder::ClassMethods)
+#freeze (Sequel::Postgres::PGRange::DatabaseMethods)
+#freeze (Sequel::Plugins::ValidationClassMethods::ClassMethods)
+#freeze (Sequel::Plugins::SerializationModificationDetection::InstanceMethods)
+#freeze (Sequel::Plugins::AssociationDependencies::ClassMethods)
+#freeze (Sequel::Postgres::PGRow::DatabaseMethods)
+#freeze (Sequel::Plugins::InputTransformer::ClassMethods)
+#freeze (Sequel::Plugins::ClassTableInheritance::ClassMethods)
#freeze (Sequel::Plugins::Serialization::InstanceMethods)
-#freeze (Sequel::Plugins::SingleTableInheritance::ClassMethods)
-#freeze (Sequel::Plugins::Touch::ClassMethods)
-#freeze (Sequel::Plugins::Composition::InstanceMethods)
+#freeze (Sequel::Plugins::Serialization::ClassMethods)
+#freeze (Sequel::Plugins::Composition::ClassMethods)
+#freeze (Sequel::Plugins::JsonSerializer::ClassMethods)
+#freeze (Sequel::Plugins::ColumnConflicts::ClassMethods)
+#freeze (Sequel::Plugins::WhitelistSecurity::ClassMethods)
+#freeze (Sequel::Plugins::PreparedStatementsSafe::ClassMethods)
#freeze (Sequel::Plugins::ConstraintValidations::ClassMethods)
+#freeze (Sequel::Plugins::HookClassMethods::ClassMethods)
+#freeze (Sequel::Plugins::Composition::InstanceMethods)
+#freeze (Sequel::Plugins::LazyAttributes::ClassMethods)
#freeze (Sequel::Plugins::CsvSerializer::ClassMethods)
-#freeze (Sequel::Plugins::ValidationClassMethods::ClassMethods)
+#freeze (Sequel::Plugins::UnusedAssociations::ClassMethods)
#freeze (Sequel::Postgres::AutoParameterize::QueryString)
-#freeze (Sequel::Plugins::LazyAttributes::ClassMethods)
-#freeze (Sequel::Plugins::DefaultsSetter::ClassMethods)
+#freeze (Sequel::Plugins::NestedAttributes::ClassMethods)
+#freeze (Sequel::Plugins::Touch::ClassMethods)
+#freeze (Sequel::Plugins::ActiveModel::ClassMethods)
+#freeze (Sequel::Postgres::PGArray::DatabaseMethods)
#freeze (Sequel::Plugins::Dirty::InstanceMethods)
#freeze (Sequel::ConstantSqlOverride::DatabaseMethods)
-#freeze (Sequel::Postgres::PGArray::DatabaseMethods)
-#freeze (Sequel::Plugins::JsonSerializer::ClassMethods)
-#freeze (Sequel::Plugins::Serialization::ClassMethods)
-#freeze (Sequel::Plugins::Finder::ClassMethods)
-#freeze (Sequel::Postgres::PGRow::DatabaseMethods)
-#freeze (Sequel::Plugins::UnusedAssociations::ClassMethods)
-#freeze (Sequel::Plugins::HookClassMethods::ClassMethods)
-#freeze (Sequel::Plugins::InstanceFilters::InstanceMethods)
-#freeze (Sequel::Plugins::PreparedStatementsSafe::ClassMethods)
-#freeze (Sequel::Plugins::InputTransformer::ClassMethods)
-#freeze (Sequel::Plugins::SerializationModificationDetection::InstanceMethods)
-#freeze (Sequel::Plugins::WhitelistSecurity::ClassMethods)
+#freeze (Sequel::Postgres::PGMultiRange::DatabaseMethods)
+#freeze (Sequel::Plugins::DefaultsSetter::ClassMethods)
+#freeze (Sequel::Plugins::UpdateRefresh::ClassMethods)
#freeze_descendants (Sequel::Plugins::Subclasses::ClassMethods)
#freeze_descendents (Sequel::Plugins::Subclasses::ClassMethods)
#from (Sequel::MSSQL::EmulateLateralWithApply)
@@ -697,18 +699,18 @@
#from_json (Sequel::Plugins::JsonSerializer::ClassMethods)
#from_json (Sequel::Plugins::JsonSerializer::InstanceMethods)
#from_json_node (Sequel::Plugins::JsonSerializer::InstanceMethods)
-#from_xml (Sequel::Plugins::XmlSerializer::ClassMethods)
#from_xml (Sequel::Plugins::XmlSerializer::InstanceMethods)
+#from_xml (Sequel::Plugins::XmlSerializer::ClassMethods)
#from_xml_node (Sequel::Plugins::XmlSerializer::ClassMethods)
#from_xml_node (Sequel::Plugins::XmlSerializer::InstanceMethods)
-#get (Sequel::SQLite::JSONOp)
#get (Sequel::Postgres::JSONBaseOp)
+#get (Sequel::SQLite::JSONOp)
#get_column_conflict! (Sequel::Plugins::ColumnConflicts::ClassMethods)
#get_column_value (Sequel::Plugins::ColumnConflicts::InstanceMethods)
#get_json (Sequel::SQLite::JSONOp)
#get_text (Sequel::Postgres::JSONBaseOp)
-#handle_silent_modification_failure? (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#handle_silent_modification_failure? (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
+#handle_silent_modification_failure? (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#has_hooks? (Sequel::Plugins::HookClassMethods::ClassMethods)
#has_key? (Sequel::Postgres::JSONBOp)
#has_key? (Sequel::Postgres::HStoreOp)
@@ -716,16 +718,16 @@
#hash (Sequel::Postgres::PGRange)
#hook_blocks (Sequel::Plugins::HookClassMethods::ClassMethods)
#hook_methods_for (Sequel::Plugins::HookClassMethods::ClassMethods)
-#hstore (Sequel::Postgres::ArrayOp)
-#hstore (Hash)
-#hstore (Sequel::CoreRefinements)
#hstore (Sequel::Postgres::HStoreOp)
-#hstore (Sequel::SQL::Builders)
+#hstore (Sequel::CoreRefinements)
#hstore (Sequel::Postgres::HStoreOpMethods)
+#hstore (Sequel::SQL::Builders)
+#hstore (Hash)
+#hstore (Sequel::Postgres::ArrayOp)
#hstore_op (Sequel::SQL::Builders)
#humanize (String)
-#identifier (Sequel::CoreRefinements)
#identifier (Symbol)
+#identifier (Sequel::CoreRefinements)
#identifier_input_method (Sequel::IdentifierMangling::DatasetMethods)
#identifier_input_method= (Sequel::IdentifierMangling::DatabaseMethods)
#identifier_output_method (Sequel::IdentifierMangling::DatasetMethods)
@@ -740,39 +742,39 @@
#initialize_copy (Sequel::Plugins::AccessedColumns::InstanceMethods)
#input_transformer_order (Sequel::Plugins::InputTransformer::ClassMethods)
#insert (Sequel::Dataset::NullDataset)
-#insert (Sequel::Postgres::JSONBOp)
#insert (Sequel::SQLite::JSONOp)
+#insert (Sequel::Postgres::JSONBOp)
#insert_conflict (Sequel::Plugins::InsertConflict::InstanceMethods)
-#inspect (Sequel::SQL::Expression)
#inspect (Sequel::Postgres::AutoParameterize::QueryString)
+#inspect (Sequel::SQL::Expression)
#inspect (Sequel::SQL::Constant)
#instance_filter (Sequel::Plugins::InstanceFilters::InstanceMethods)
#integer_outside_bigint_range_strategy (Sequel::Postgres::ExtendedIntegerSupport)
#interval (Sequel::Sequel4DatasetMethods)
-#is_current? (Sequel::IntegerMigrator)
#is_current? (Sequel::TimestampMigrator)
+#is_current? (Sequel::IntegerMigrator)
#is_distinct? (Sequel::SQL::StringAgg)
-#is_distinct_from (Sequel::SQL::IsDistinctFrom::Methods)
#is_distinct_from (Sequel::SQL::Builders)
+#is_distinct_from (Sequel::SQL::IsDistinctFrom::Methods)
#is_distinct_from_sql_append (Sequel::SQL::IsDistinctFrom::DatasetMethods)
#join (Sequel::Postgres::ArrayOp)
-#join_table (Sequel::Dataset::DatasetSourceAlias)
#join_table (Sequel::MSSQL::EmulateLateralWithApply)
+#join_table (Sequel::Dataset::DatasetSourceAlias)
#join_table_alias (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
#json (Sequel::SQLite::JSONOp)
#json_serializer_opts (Sequel::Plugins::JsonSerializer::DatasetMethods)
#json_serializer_opts (Sequel::Plugins::JsonSerializer::InstanceMethods)
#key? (Sequel::Postgres::HStoreOp)
-#keys (Sequel::Postgres::JSONBaseOp)
#keys (Sequel::Postgres::HStoreOp)
+#keys (Sequel::Postgres::JSONBaseOp)
#last_page? (Sequel::Dataset::Pagination)
#last_position (Sequel::Plugins::List::InstanceMethods)
#lazy_attributes (Sequel::Plugins::LazyAttributes::ClassMethods)
#length (Sequel::Postgres::ArrayOp)
#list_dataset (Sequel::Plugins::List::InstanceMethods)
#listen_for_static_cache_updates (Sequel::Postgres::StaticCacheUpdater)
-#lit (Sequel::CoreRefinements)
#lit (String)
+#lit (Sequel::CoreRefinements)
#literal_append (Sequel::Postgres::AutoParameterize::DatasetMethods)
#literal_datetime (Sequel::Dataset::RoundTimestamps)
#literal_sqltime (Sequel::Dataset::RoundTimestamps)
@@ -796,11 +798,11 @@
#member? (Sequel::Postgres::HStoreOp)
#merge (Sequel::Postgres::HStore)
#merge (Sequel::Postgres::HStoreOp)
-#method_missing (Sequel::Dataset::Query)
-#method_missing (Sequel::Migration)
+#method_missing (Sequel::Plugins::ValidationClassMethods::ClassMethods::Generator)
#method_missing (Sequel::Plugins::AssociationProxies::AssociationProxy)
+#method_missing (Sequel::Migration)
+#method_missing (Sequel::Dataset::Query)
#method_missing (Sequel::Database::AsyncThreadPool::BaseProxy)
-#method_missing (Sequel::Plugins::ValidationClassMethods::ClassMethods::Generator)
#minify (Sequel::SQLite::JSONOp)
#model_name (Sequel::Plugins::ActiveModel::InstanceMethods)
#move_down (Sequel::Plugins::List::InstanceMethods)
@@ -821,16 +823,16 @@
#nullify (Sequel::Dataset::Nullifiable)
#on_duplicate_columns (Sequel::DuplicateColumnsHandler)
#one_through_many (Sequel::Plugins::ManyThroughMany::ClassMethods)
-#op (Sequel::Postgres::PGArray)
-#op (Sequel::Postgres::JSONBArray)
-#op (Sequel::Postgres::PGRange)
-#op (Sequel::Postgres::JSONBHash)
#op (Sequel::Postgres::PGMultiRange)
-#op (Sequel::Postgres::JSONHash)
+#op (Sequel::Postgres::JSONBArray)
#op (Sequel::Postgres::JSONArray)
-#op (Sequel::Postgres::HStore)
+#op (Sequel::Postgres::JSONHash)
#op (Sequel::Postgres::PGRow::HashRow)
+#op (Sequel::Postgres::PGRange)
+#op (Sequel::Postgres::PGArray)
#op (Sequel::Postgres::PGRow::ArrayRow)
+#op (Sequel::Postgres::HStore)
+#op (Sequel::Postgres::JSONBHash)
#operator (Sequel::ConstraintValidations::Generator)
#order (Sequel::SQL::StringAgg)
#output (Sequel::ToDot)
@@ -840,10 +842,10 @@
#page_size (Sequel::Dataset::Pagination)
#paginate (Sequel::DatasetPagination)
#pagination_record_count (Sequel::Dataset::Pagination)
-#parse (Sequel::Postgres::PGRow::Splitter)
-#parse (Sequel::Postgres::HStore::Parser)
#parse (Sequel::Postgres::PGMultiRange::Parser)
+#parse (Sequel::Postgres::HStore::Parser)
#parse (Sequel::Postgres::PGArray::Parser)
+#parse (Sequel::Postgres::PGRow::Splitter)
#patch (Sequel::SQLite::JSONOp)
#path_exists (Sequel::Postgres::JSONBOp)
#path_exists! (Sequel::Postgres::JSONBOp)
@@ -858,71 +860,71 @@
#path_query_first_tz (Sequel::Postgres::JSONBOp)
#path_query_tz (Sequel::Postgres::JSONBOp)
#persisted? (Sequel::Plugins::ActiveModel::InstanceMethods)
-#pg_array (Sequel::Postgres::ArrayOpMethods)
-#pg_array (Sequel::Postgres::ArrayOp)
-#pg_array (Sequel::SQL::Builders)
#pg_array (Sequel::CoreRefinements)
+#pg_array (Sequel::Postgres::ArrayOp)
#pg_array (Array)
+#pg_array (Sequel::SQL::Builders)
+#pg_array (Sequel::Postgres::ArrayOpMethods)
#pg_array_op (Sequel::SQL::Builders)
#pg_array_to_many (Sequel::Plugins::PgArrayAssociations::ClassMethods)
#pg_auto_constraint_validation_override (Sequel::Plugins::PgAutoConstraintValidations::ClassMethods)
#pg_inet (Sequel::Postgres::InetOp)
#pg_inet (Sequel::Postgres::InetOpMethods)
#pg_inet_op (Sequel::SQL::Builders)
-#pg_json (Sequel::Postgres::JSONOp)
+#pg_json (Sequel::SQL::Builders)
#pg_json (Hash)
+#pg_json (Sequel::CoreRefinements)
+#pg_json (Sequel::Postgres::JSONOp)
#pg_json (Sequel::Postgres::JSONOpMethods)
#pg_json (Array)
-#pg_json (Sequel::SQL::Builders)
-#pg_json (Sequel::CoreRefinements)
#pg_json_op (Sequel::SQL::Builders)
#pg_json_wrap (Sequel::SQL::Builders)
+#pg_jsonb (Sequel::Postgres::JSONBOp)
+#pg_jsonb (Sequel::Postgres::JSONOpMethods)
#pg_jsonb (Sequel::SQL::Builders)
#pg_jsonb (Sequel::CoreRefinements)
#pg_jsonb (Hash)
#pg_jsonb (Array)
-#pg_jsonb (Sequel::Postgres::JSONOpMethods)
-#pg_jsonb (Sequel::Postgres::JSONBOp)
#pg_jsonb_op (Sequel::SQL::Builders)
#pg_jsonb_wrap (Sequel::SQL::Builders)
#pg_multirange (Sequel::SQL::Builders)
-#pg_range (Sequel::SQL::Builders)
#pg_range (Range)
+#pg_range (Sequel::CoreRefinements)
#pg_range (Sequel::Postgres::RangeOpMethods)
#pg_range (Sequel::Postgres::RangeOp)
-#pg_range (Sequel::CoreRefinements)
+#pg_range (Sequel::SQL::Builders)
#pg_range_op (Sequel::SQL::Builders)
+#pg_row (Sequel::SQL::Builders)
#pg_row (Array)
-#pg_row (Sequel::Postgres::PGRowOp::ExpressionMethods)
#pg_row (Sequel::CoreRefinements)
-#pg_row (Sequel::SQL::Builders)
+#pg_row (Sequel::Postgres::PGRowOp::ExpressionMethods)
#pg_row_op (Sequel::SQL::Builders)
#pk_hash (Sequel::Plugins::UpdatePrimaryKey::InstanceMethods)
#placeholder_literalizer_class (Sequel::Postgres::AutoParameterize::DatasetMethods)
#pluralize (String)
-#populate (Sequel::Postgres::JSONBaseOp)
#populate (Sequel::Postgres::HStoreOp)
+#populate (Sequel::Postgres::JSONBaseOp)
#populate_set (Sequel::Postgres::JSONBaseOp)
#position_value (Sequel::Plugins::List::InstanceMethods)
-#predicate_key (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#predicate_key (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
+#predicate_key (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#prepared_finder (Sequel::Plugins::Finder::ClassMethods)
#pretty (Sequel::Postgres::JSONBOp)
#prev (Sequel::Plugins::List::InstanceMethods)
#prev_page (Sequel::Dataset::Pagination)
-#primary_key (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#primary_key (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
+#primary_key (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#primary_key_method (Sequel::Plugins::PgArrayAssociations::PgArrayToManyAssociationReflection)
#print (Sequel::DatasetPrinter)
#probable_columns (Sequel::ColumnsIntrospection)
#process (Sequel::ConstraintValidations::Generator)
#process_csv_serializer_opts (Sequel::Plugins::CsvSerializer::ClassMethods)
#push (Sequel::Postgres::ArrayOp)
-#query (Sequel::DatasetQuery)
#query (Sequel::DatabaseQuery)
+#query (Sequel::DatasetQuery)
#quote_identifiers= (Sequel::IdentifierMangling::DatabaseMethods)
-#quote_identifiers? (Sequel::IdentifierMangling::DatabaseMethods)
#quote_identifiers? (Sequel::IdentifierMangling::DatasetMethods)
+#quote_identifiers? (Sequel::IdentifierMangling::DatabaseMethods)
#range (Sequel::Sequel4DatasetMethods)
#reciprocal (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
#record_set (Sequel::Postgres::HStoreOp)
@@ -931,23 +933,23 @@
#register_array_type (Sequel::Postgres::PGArray::DatabaseMethods)
#register_multirange_type (Sequel::Postgres::PGMultiRange::DatabaseMethods)
#register_range_type (Sequel::Postgres::PGRange::DatabaseMethods)
-#register_row_type (Sequel::Postgres::PGRow::DatabaseMethods)
#register_row_type (Sequel::Plugins::PgRow::ClassMethods)
-#remove (Sequel::SQLite::JSONOp)
+#register_row_type (Sequel::Postgres::PGRow::DatabaseMethods)
#remove (Sequel::Postgres::ArrayOp)
+#remove (Sequel::SQLite::JSONOp)
#remove_before_destroy? (Sequel::Plugins::PgArrayAssociations::ManyToPgArrayAssociationReflection)
#rename_enum (Sequel::Postgres::EnumDatabaseMethods)
#rename_enum_value (Sequel::Postgres::EnumDatabaseMethods)
-#replace (Sequel::Postgres::ArrayOp)
#replace (Sequel::SQLite::JSONOp)
+#replace (Sequel::Postgres::ArrayOp)
#reset_column (Sequel::Plugins::Dirty::InstanceMethods)
-#respond_to_missing? (Sequel::Migration)
#respond_to_missing? (Sequel::Database::AsyncThreadPool::BaseProxy)
#respond_to_missing? (Sequel::Plugins::ValidationClassMethods::ClassMethods::Generator)
+#respond_to_missing? (Sequel::Migration)
#reverse (Sequel::MigrationAlterTableReverser)
#reverse (Sequel::MigrationReverser)
-#root (Sequel::Plugins::Tree::SingleRoot::ClassMethods)
#root (Sequel::Plugins::Tree::InstanceMethods)
+#root (Sequel::Plugins::Tree::SingleRoot::ClassMethods)
#root? (Sequel::Plugins::Tree::InstanceMethods)
#roots (Sequel::Plugins::Tree::DatasetMethods)
#roots_dataset (Sequel::Plugins::Tree::DatasetMethods)
@@ -964,16 +966,16 @@
#separate_query_per_table? (Sequel::Plugins::ManyThroughMany::ManyThroughManyAssociationReflection)
#sequel_ast_transform (Sequel::Postgres::HStoreSubscriptOp)
#sequel_ast_transform (Sequel::Postgres::JSONBSubscriptOp)
-#sequel_auto_param_type (Sequel::Postgres::PGRow::ArrayRow)
-#sequel_auto_param_type (Sequel::Postgres::PGArray)
-#sequel_auto_param_type (Sequel::Postgres)
+#sequel_auto_param_type (Sequel::Postgres::HStore)
#sequel_auto_param_type (Sequel::Postgres::PGMultiRange)
#sequel_auto_param_type (Sequel::Postgres::PGRow::HashRow)
-#sequel_auto_param_type (Sequel::Postgres::HStore)
#sequel_auto_param_type (Sequel::Postgres::PGRange)
+#sequel_auto_param_type (Sequel::Postgres::PGRow::ArrayRow)
+#sequel_auto_param_type (Sequel::Postgres::PGArray)
+#sequel_auto_param_type (Sequel::Postgres)
#serialize_attributes (Sequel::Plugins::Serialization::ClassMethods)
-#set (Sequel::Postgres::JSONBOp)
#set (Sequel::SQLite::JSONOp)
+#set (Sequel::Postgres::JSONBOp)
#set_all (Sequel::Plugins::WhitelistSecurity::InstanceMethods)
#set_allowed_columns (Sequel::Plugins::WhitelistSecurity::ClassMethods)
#set_cache_ttl (Sequel::Plugins::Caching::ClassMethods)
@@ -993,8 +995,8 @@
#singularize (String)
#skeys (Sequel::Postgres::HStoreOp)
#skip_auto_param (Sequel::Postgres::AutoParameterize::QueryString)
-#skip_auto_validations (Sequel::Plugins::AutoValidations::InstanceMethods)
#skip_auto_validations (Sequel::Plugins::AutoValidations::ClassMethods)
+#skip_auto_validations (Sequel::Plugins::AutoValidations::InstanceMethods)
#skip_input_transformer (Sequel::Plugins::InputTransformer::ClassMethods)
#skip_input_transformer? (Sequel::Plugins::InputTransformer::ClassMethods)
#skip_pg_auto_param (Sequel::SQL::Builders)
@@ -1010,30 +1012,30 @@
#sql_comments_class_methods (Sequel::Plugins::SqlComments::ClassMethods)
#sql_comments_dataset_methods (Sequel::Plugins::SqlComments::ClassMethods)
#sql_comments_instance_methods (Sequel::Plugins::SqlComments::ClassMethods)
-#sql_expr (Array)
-#sql_expr (Sequel::CoreRefinements)
#sql_expr (Object)
+#sql_expr (Array)
#sql_expr (Hash)
+#sql_expr (Sequel::CoreRefinements)
#sql_function (Symbol)
#sql_function (Sequel::CoreRefinements)
#sql_literal_append (Sequel::Postgres::PGRange)
-#sql_literal_append (Sequel::Postgres::PGRow::ArrayRow)
-#sql_literal_append (Sequel::Postgres::PGArray)
-#sql_literal_append (Sequel::Postgres::PGMultiRange)
#sql_literal_append (Sequel::Postgres::PGRow::HashRow)
-#sql_literal_append (Sequel::Postgres)
+#sql_literal_append (Sequel::Postgres::PGMultiRange)
#sql_literal_append (Sequel::Postgres::HStore)
+#sql_literal_append (Sequel::Postgres::PGArray)
+#sql_literal_append (Sequel::Postgres::PGRow::ArrayRow)
#sql_literal_append (Sequel::Plugins::PgRow::InstanceMethods)
-#sql_negate (Hash)
+#sql_literal_append (Sequel::Postgres)
#sql_negate (Sequel::CoreRefinements)
+#sql_negate (Hash)
#sql_negate (Array)
+#sql_or (Array)
#sql_or (Sequel::CoreRefinements)
#sql_or (Hash)
-#sql_or (Array)
#sql_string_join (Array)
#sql_string_join (Sequel::CoreRefinements)
-#sql_value_list (Array)
#sql_value_list (Sequel::CoreRefinements)
+#sql_value_list (Array)
#sqlite_json_op (Sequel::SQL::Builders)
#sqlite_json_op (Sequel::SQLite::JSONOpMethods)
#static_cache_allow_modifications? (Sequel::Plugins::StaticCache::ClassMethods)
@@ -1065,8 +1067,8 @@
#to_dot (Sequel::ToDot::DatasetMethods)
#to_hash (Sequel::Plugins::StaticCache::ClassMethods)
#to_hash_groups (Sequel::Plugins::StaticCache::ClassMethods)
-#to_json (Sequel::Plugins::JsonSerializer::DatasetMethods)
#to_json (Sequel::Plugins::JsonSerializer::InstanceMethods)
+#to_json (Sequel::Plugins::JsonSerializer::DatasetMethods)
#to_json (Sequel::Plugins::JsonSerializer::Literal)
#to_json_data (Sequel::Plugins::JsonSerializer::InstanceMethods)
#to_key (Sequel::Plugins::ActiveModel::InstanceMethods)
@@ -1078,12 +1080,12 @@
#to_range (Sequel::Postgres::PGRange)
#to_record (Sequel::Postgres::JSONBaseOp)
#to_recordset (Sequel::Postgres::JSONBaseOp)
+#to_s_append (Sequel::Postgres::AutoParameterize::SkipAutoParam)
#to_s_append (Sequel::SQL::EscapedLikeExpression)
-#to_s_append (Sequel::Postgres::JSONBSubscriptOp)
#to_s_append (Sequel::Postgres::HStoreSubscriptOp)
-#to_s_append (Sequel::Postgres::AutoParameterize::SkipAutoParam)
-#to_sequel_blob (Sequel::CoreRefinements)
+#to_s_append (Sequel::Postgres::JSONBSubscriptOp)
#to_sequel_blob (String)
+#to_sequel_blob (Sequel::CoreRefinements)
#to_sequel_time (String)
#to_string (Sequel::Postgres::ArrayOp)
#to_time (String)
@@ -1096,21 +1098,21 @@
#truncate (Sequel::Dataset::NullDataset)
#type (Sequel::SQLite::JSONOp)
#typecast (Sequel::Postgres::PGRow::Parser)
-#typeof (Sequel::SQLite::JSONOp)
#typeof (Sequel::Postgres::JSONBaseOp)
+#typeof (Sequel::SQLite::JSONOp)
#unbounded_begin? (Sequel::Postgres::PGRange)
#unbounded_end? (Sequel::Postgres::PGRange)
#underscore (String)
#unique (Sequel::ConstraintValidations::AlterTableGeneratorMethods)
#unnest (Sequel::Postgres::ArrayOp)
#unquoted_literal (Sequel::Postgres::PGMultiRange)
-#unquoted_literal (Sequel::Postgres::HStore)
#unquoted_literal (Sequel::Postgres::PGRange)
+#unquoted_literal (Sequel::Postgres::HStore)
#unshift (Sequel::Postgres::ArrayOp)
#unused_association_options (Sequel::Plugins::UnusedAssociations::ClassMethods)
#unused_associations (Sequel::Plugins::UnusedAssociations::ClassMethods)
-#up (Sequel::Migration)
#up (Sequel::MigrationDSL)
+#up (Sequel::Migration)
#update (Sequel::Dataset::NullDataset)
#update_all (Sequel::Plugins::WhitelistSecurity::InstanceMethods)
#update_associations_coverage (Sequel::Plugins::UnusedAssociations::ClassMethods)
@@ -1125,11 +1127,11 @@
#valid (Sequel::SQLite::JSONOp)
#valid? (Sequel::Plugins::ThrowFailures::InstanceMethods)
#valid_ruby_range? (Sequel::Postgres::PGRange)
+#validate (Sequel::Plugins::ConstraintValidations::InstanceMethods)
#validate (Sequel::Plugins::ValidationClassMethods::InstanceMethods)
#validate (Sequel::ConstraintValidations::CreateTableGeneratorMethods)
-#validate (Sequel::Plugins::AutoValidations::InstanceMethods)
-#validate (Sequel::Plugins::ConstraintValidations::InstanceMethods)
#validate (Sequel::Plugins::ValidationClassMethods::ClassMethods)
+#validate (Sequel::Plugins::AutoValidations::InstanceMethods)
#validates (Sequel::Plugins::ValidationClassMethods::ClassMethods)
#validates_acceptance_of (Sequel::Plugins::ValidationClassMethods::ClassMethods)
#validates_confirmation_of (Sequel::Plugins::ValidationClassMethods::ClassMethods)
@@ -1169,20 +1171,20 @@
#with_identifier_output_method (Sequel::IdentifierMangling::DatasetMethods)
#with_pk (Sequel::Plugins::PrimaryKeyLookupCheckValues::DatasetMethods)
#with_server (Sequel::ServerBlock)
-#with_server (Sequel::UnthreadedServerBlock)
#with_server (Sequel::ThreadedServerBlock)
+#with_server (Sequel::UnthreadedServerBlock)
#with_sql (Sequel::Postgres::AutoParameterize::DatasetMethods)
-#with_sql_each (Sequel::Plugins::ForbidLazyLoad::DatasetMethods)
#with_sql_each (Sequel::GraphEach)
+#with_sql_each (Sequel::Plugins::ForbidLazyLoad::DatasetMethods)
#with_sql_first (Sequel::Plugins::ForbidLazyLoad::DatasetMethods)
#xml_builder (Sequel::Plugins::XmlSerializer::ClassMethods)
#xml_deserialize_name_proc (Sequel::Plugins::XmlSerializer::ClassMethods)
#xml_serialize_name_proc (Sequel::Plugins::XmlSerializer::ClassMethods)
-#| (Hash)
#| (Sequel::CoreRefinements)
+#| (Hash)
#~ (Sequel::Postgres::InetOp)
-#~ (Sequel::CoreRefinements)
#~ (Hash)
+#~ (Sequel::CoreRefinements)
#~ (Array)
diff --git a/rdoc/classes/Sequel.html b/rdoc/classes/Sequel.html
index ad4d79abca..2f601409fd 100644
--- a/rdoc/classes/Sequel.html
+++ b/rdoc/classes/Sequel.html
@@ -41,6 +41,9 @@ module
lib/sequel/connection_pool/sharded_threaded.rb
+lib/sequel/connection_pool/sharded_timed_queue.rb
+
+
lib/sequel/connection_pool/single.rb
@@ -238,6 +241,7 @@ Classes and Modules
Sequel::SQLTime
Sequel::ShardedSingleConnectionPool
Sequel::ShardedThreadedConnectionPool
+Sequel::ShardedTimedQueueConnectionPool
Sequel::SimpleMigration
Sequel::SingleConnectionPool
Sequel::ThreadedConnectionPool
@@ -420,7 +424,7 @@ Constants
MINOR
=
-69
+70
The minor version of Sequel
. Bumped for every non-patch level release, generally around once a month.
diff --git a/rdoc/classes/Sequel/ConnectionPool.html b/rdoc/classes/Sequel/ConnectionPool.html
index ff3c03fcc7..2d417691e5 100644
--- a/rdoc/classes/Sequel/ConnectionPool.html
+++ b/rdoc/classes/Sequel/ConnectionPool.html
@@ -107,6 +107,7 @@ Constants
:sharded_threaded => :ShardedThreadedConnectionPool,
:sharded_single => :ShardedSingleConnectionPool,
:timed_queue => :TimedQueueConnectionPool,
+:sharded_timed_queue => :ShardedTimedQueueConnectionPool,
}
@@ -166,13 +167,13 @@ Public Class methods
[show source]
# File lib/sequel/connection_pool.rb
-104 def initialize(db, opts=OPTS) # SEQUEL6: Remove second argument, always use db.opts
-105 @db = db
-106 @use_old_connect_api = false # SEQUEL6: Remove
-107 @after_connect = opts[:after_connect] # SEQUEL6: Remove
-108 @connect_sqls = opts[:connect_sqls] # SEQUEL6: Remove
-109 @error_classes = db.send(:database_error_classes).dup.freeze
-110 end
+111 def initialize(db, opts=OPTS) # SEQUEL6: Remove second argument, always use db.opts
+112 @db = db
+113 @use_old_connect_api = false # SEQUEL6: Remove
+114 @after_connect = opts[:after_connect] # SEQUEL6: Remove
+115 @connect_sqls = opts[:connect_sqls] # SEQUEL6: Remove
+116 @error_classes = db.send(:database_error_classes).dup.freeze
+117 end
Public Instance methods
@@ -192,10 +193,10 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool.rb
-85 def after_connect=(v) # SEQUEL6: Remove
-86 @use_old_connect_api = true
-87 @after_connect = v
-88 end
+92 def after_connect=(v) # SEQUEL6: Remove
+93 @use_old_connect_api = true
+94 @after_connect = v
+95 end
@@ -213,11 +214,11 @@ Public Instance methods
[show source]
- # File lib/sequel/connection_pool.rb
-95 def connect_sqls=(v) # SEQUEL6: Remove
-96 @use_old_connect_api = true
-97 @connect_sqls = v
-98 end
+ # File lib/sequel/connection_pool.rb
+102 def connect_sqls=(v) # SEQUEL6: Remove
+103 @use_old_connect_api = true
+104 @connect_sqls = v
+105 end
@@ -236,9 +237,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool.rb
-113 def servers
-114 [:default]
-115 end
+120 def servers
+121 [:default]
+122 end
diff --git a/rdoc/classes/Sequel/ConnectionPool/ClassMethods.html b/rdoc/classes/Sequel/ConnectionPool/ClassMethods.html
index 120cd59af5..cd1f4ac445 100644
--- a/rdoc/classes/Sequel/ConnectionPool/ClassMethods.html
+++ b/rdoc/classes/Sequel/ConnectionPool/ClassMethods.html
@@ -58,7 +58,7 @@ Public Instance methods
-Return a pool subclass instance based on the given options. If a :pool_class
option is provided is provided, use that pool class, otherwise use a new instance of an appropriate pool subclass based on the :single_threaded
and :servers
options.
+Return a pool subclass instance based on the given options. If a :pool_class
option is provided is provided, use that pool class, otherwise use a new instance of an appropriate pool subclass based on the SEQUEL_DEFAULT_CONNECTION_POOL
environment variable if set, or the :single_threaded
and :servers
options, otherwise.
@@ -66,9 +66,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool.rb
-46 def get_pool(db, opts = OPTS)
-47 connection_pool_class(opts).new(db, opts)
-48 end
+48 def get_pool(db, opts = OPTS)
+49 connection_pool_class(opts).new(db, opts)
+50 end
diff --git a/rdoc/classes/Sequel/ShardedThreadedConnectionPool.html b/rdoc/classes/Sequel/ShardedThreadedConnectionPool.html
index 7a6245e300..e8bf9088b3 100644
--- a/rdoc/classes/Sequel/ShardedThreadedConnectionPool.html
+++ b/rdoc/classes/Sequel/ShardedThreadedConnectionPool.html
@@ -40,7 +40,7 @@ class
-The slowest and most advanced connection, dealing with both multi-threaded access and configurations with multiple shards/servers.
+The slowest and most advanced connection pool, dealing with both multi-threaded access and configurations with multiple shards/servers.
In addition, this pool subclass also handles scheduling in-use connections to be removed from the pool when they are returned to it.
@@ -269,7 +269,7 @@ Public Instance methods
Chooses the first available connection to the given server, or if none are available, creates a new connection. Passes the connection to the supplied block:
-pool.hold {|conn| conn.execute('DROP TABLE posts')}
+pool.hold(:server1) {|conn| conn.execute('DROP TABLE posts')}
Pool#hold is re-entrant, meaning it can be called recursively in the same thread without blocking.
@@ -317,9 +317,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool/sharded_threaded.rb
-172 def pool_type
-173 :sharded_threaded
-174 end
+173 def pool_type
+174 :sharded_threaded
+175 end
@@ -339,24 +339,25 @@ Public Instance methods
# File lib/sequel/connection_pool/sharded_threaded.rb
147 def remove_servers(servers)
-148 conns = nil
-149 sync do
-150 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default)
-151 servers.each do |server|
-152 if @servers.include?(server)
-153 conns = disconnect_server_connections(server)
-154 @waiters.delete(server)
-155 @available_connections.delete(server)
-156 @allocated.delete(server)
-157 @servers.delete(server)
-158 end
-159 end
-160 end
-161
-162 if conns
-163 disconnect_connections(conns)
-164 end
-165 end
+148 conns = []
+149 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default)
+150
+151 sync do
+152 servers.each do |server|
+153 if @servers.include?(server)
+154 conns.concat(disconnect_server_connections(server))
+155 @waiters.delete(server)
+156 @available_connections.delete(server)
+157 @allocated.delete(server)
+158 @servers.delete(server)
+159 end
+160 end
+161 end
+162
+163 nil
+164 ensure
+165 disconnect_connections(conns)
+166 end
@@ -375,9 +376,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool/sharded_threaded.rb
-168 def servers
-169 sync{@servers.keys}
-170 end
+169 def servers
+170 sync{@servers.keys}
+171 end
diff --git a/rdoc/classes/Sequel/ShardedTimedQueueConnectionPool.html b/rdoc/classes/Sequel/ShardedTimedQueueConnectionPool.html
new file mode 100644
index 0000000000..16f3f6d178
--- /dev/null
+++ b/rdoc/classes/Sequel/ShardedTimedQueueConnectionPool.html
@@ -0,0 +1,406 @@
+
+
+
+Sequel::ShardedTimedQueueConnectionPool
+
+
+
+
+
+
+
+
+class
+Sequel::ShardedTimedQueueConnectionPool
+
+
+
+Superclass:
+ConnectionPool
+
+
+
+
+
+A connection pool allowing multi-threaded access to a sharded pool of connections, using a timed queue (only available in Ruby 3.2+).
+
+
+
+
+
+
+Attributes
+
+
+
+
+max_size
+
+[R]
+
+The maximum number of connections this pool will create per shard.
+
+
+
+
+
+
+Public Class methods
+
+
+
+new(db, opts = OPTS)
+
+
+
+
+The following additional options are respected:
+:max_connections
+The maximum number of connections the connection pool will open (default 4)
+ :pool_timeout
+The amount of seconds to wait to acquire a connection before raising a PoolTimeout (default 5)
+ :servers
+A hash of servers to use. Keys should be symbols. If not present, will use a single :default server.
+ :servers_hash
+The base hash to use for the servers. By default, Sequel
uses Hash.new(:default). You can use a hash with a default proc that raises an error if you want to catch all cases where a nonexistent server is used.
+
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+24 def initialize(db, opts = OPTS)
+25 super
+26
+27 @max_size = Integer(opts[:max_connections] || 4)
+28 raise(Sequel::Error, ':max_connections must be positive') if @max_size < 1
+29 @mutex = Mutex.new
+30 @timeout = Float(opts[:pool_timeout] || 5)
+31
+32 @allocated = {}
+33 @sizes = {}
+34 @queues = {}
+35 @servers = opts.fetch(:servers_hash, Hash.new(:default))
+36
+37 add_servers([:default])
+38 add_servers(opts[:servers].keys) if opts[:servers]
+39 end
+
+
+Public Instance methods
+
+
+
+add_servers(servers)
+
+
+
+
+Adds new servers to the connection pool. Allows for dynamic expansion of the potential replicas/shards at runtime. servers
argument should be an array of symbols.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+43 def add_servers(servers)
+44 sync do
+45 servers.each do |server|
+46 next if @servers.has_key?(server)
+47
+48 @servers[server] = server
+49 @sizes[server] = 0
+50 @queues[server] = Queue.new
+51 (@allocated[server] = {}).compare_by_identity
+52 end
+53 end
+54 nil
+55 end
+
+
+
+
+
+all_connections()
+
+
+
+
+Yield all of the available connections, and the one currently allocated to this thread (if one is allocated). This will not yield connections currently allocated to other threads, as it is not safe to operate on them.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+60 def all_connections
+61 thread = Sequel.current
+62 sync{@queues.to_a}.each do |server, queue|
+63 if conn = owned_connection(thread, server)
+64 yield conn
+65 end
+66
+67 # Use a hash to record all connections already seen. As soon as we
+68 # come across a connection we've already seen, we stop the loop.
+69 conns = {}
+70 conns.compare_by_identity
+71 while true
+72 conn = nil
+73 begin
+74 break unless (conn = queue.pop(timeout: 0)) && !conns[conn]
+75 conns[conn] = true
+76 yield conn
+77 ensure
+78 queue.push(conn) if conn
+79 end
+80 end
+81 end
+82
+83 nil
+84 end
+
+
+
+
+
+disconnect(opts=OPTS)
+
+
+
+
+Removes all connections currently in the pool’s queue. This method has the effect of disconnecting from the database, assuming that no connections are currently being used.
+
+Once a connection is requested using hold
, the connection pool creates new connections to the database.
+
+If the :server option is provided, it should be a symbol or array of symbols, and then the method will only disconnect connectsion from those specified shards.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+ 95 def disconnect(opts=OPTS)
+ 96 (opts[:server] ? Array(opts[:server]) : sync{@servers.keys}).each do |server|
+ 97 raise Sequel::Error, "invalid server" unless queue = sync{@queues[server]}
+ 98 while conn = queue.pop(timeout: 0)
+ 99 disconnect_pool_connection(conn, server)
+100 end
+101 fill_queue(server)
+102 end
+103 nil
+104 end
+
+
+
+
+
+hold(server=:default)
+
+
+
+
+Chooses the first available connection for the given server, or if none are available, creates a new connection. Passes the connection to the supplied block:
+
+pool.hold(:server1) {|conn| conn.execute('DROP TABLE posts')}
+
+
+Pool#hold is re-entrant, meaning it can be called recursively in the same thread without blocking.
+
+If no connection is immediately available and the pool is already using the maximum number of connections, Pool#hold will block until a connection is available or the timeout expires. If the timeout expires before a connection can be acquired, a Sequel::PoolTimeout is raised.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+119 def hold(server=:default)
+120 server = pick_server(server)
+121 t = Sequel.current
+122 if conn = owned_connection(t, server)
+123 return yield(conn)
+124 end
+125
+126 begin
+127 conn = acquire(t, server)
+128 yield conn
+129 rescue Sequel::DatabaseDisconnectError, *@error_classes => e
+130 if disconnect_error?(e)
+131 oconn = conn
+132 conn = nil
+133 disconnect_pool_connection(oconn, server) if oconn
+134 sync{@allocated[server].delete(t)}
+135 fill_queue(server)
+136 end
+137 raise
+138 ensure
+139 release(t, conn, server) if conn
+140 end
+141 end
+
+
+
+
+
+pool_type()
+
+
+
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+190 def pool_type
+191 :sharded_timed_queue
+192 end
+
+
+
+
+
+remove_servers(servers)
+
+
+
+
+Remove servers from the connection pool. Similar to disconnecting from all given servers, except that after it is used, future requests for the servers will use the :default server instead.
+
+Note that an error will be raised if there are any connections currently checked out for the given servers.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+154 def remove_servers(servers)
+155 conns = []
+156 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default)
+157
+158 sync do
+159 servers.each do |server|
+160 next unless @servers.has_key?(server)
+161
+162 queue = @queues[server]
+163
+164 while conn = queue.pop(timeout: 0)
+165 @sizes[server] -= 1
+166 conns << conn
+167 end
+168
+169 unless @sizes[server] == 0
+170 raise Sequel::Error, "cannot remove server #{server} as it has allocated connections"
+171 end
+172
+173 @servers.delete(server)
+174 @sizes.delete(server)
+175 @queues.delete(server)
+176 @allocated.delete(server)
+177 end
+178 end
+179
+180 nil
+181 ensure
+182 disconnect_connections(conns)
+183 end
+
+
+
+
+
+servers()
+
+
+
+
+Return an array of symbols for servers in the connection pool.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+186 def servers
+187 sync{@servers.keys}
+188 end
+
+
+
+
+
+size(server=:default)
+
+
+
+
+The total number of connections in the pool. Using a non-existant server will return nil.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+144 def size(server=:default)
+145 sync{@sizes[server]}
+146 end
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rdoc/classes/Sequel/TimedQueueConnectionPool.html b/rdoc/classes/Sequel/TimedQueueConnectionPool.html
index 0a9613e25a..0bc82778f4 100644
--- a/rdoc/classes/Sequel/TimedQueueConnectionPool.html
+++ b/rdoc/classes/Sequel/TimedQueueConnectionPool.html
@@ -205,7 +205,7 @@ Public Instance methods
# File lib/sequel/connection_pool/timed_queue.rb
82 def hold(server=nil)
83 t = Sequel.current
- 84 if conn = sync{@allocated[t]}
+ 84 if conn = owned_connection(t)
85 return yield(conn)
86 end
87
diff --git a/rdoc/created.rid b/rdoc/created.rid
index ef4f9d1c9c..9f8df79d3c 100644
--- a/rdoc/created.rid
+++ b/rdoc/created.rid
@@ -1,11 +1,11 @@
-Thu, 01 Jun 2023 07:41:50 -0700
+Sat, 01 Jul 2023 12:52:54 -0700
README.rdoc Wed, 03 May 2023 13:14:12 -0700
-CHANGELOG Thu, 01 Jun 2023 07:29:33 -0700
+CHANGELOG Fri, 30 Jun 2023 11:23:18 -0700
doc/CHANGELOG.old Tue, 04 Aug 2020 18:11:34 -0700
MIT-LICENSE Tue, 03 Jan 2023 11:20:51 -0800
lib/sequel.rb Tue, 01 Aug 2017 08:12:00 -0700
lib/sequel/ast_transformer.rb Fri, 02 Sep 2022 09:11:30 -0700
-lib/sequel/connection_pool.rb Thu, 03 Nov 2022 12:28:15 -0700
+lib/sequel/connection_pool.rb Tue, 13 Jun 2023 11:57:43 -0700
lib/sequel/core.rb Fri, 17 Dec 2021 16:59:47 -0800
lib/sequel/database.rb Tue, 01 Aug 2017 08:12:00 -0700
lib/sequel/dataset.rb Fri, 31 Mar 2023 14:57:15 -0700
@@ -14,12 +14,13 @@ lib/sequel/exceptions.rb Fri, 26 Jun 2020 14:43:12 -0700
lib/sequel/model.rb Tue, 04 Aug 2020 18:11:34 -0700
lib/sequel/sql.rb Fri, 02 Sep 2022 09:11:30 -0700
lib/sequel/timezones.rb Fri, 17 Dec 2021 16:59:47 -0800
-lib/sequel/version.rb Thu, 01 Jun 2023 07:29:33 -0700
+lib/sequel/version.rb Fri, 30 Jun 2023 11:23:18 -0700
lib/sequel/connection_pool/sharded_single.rb Fri, 17 Dec 2021 16:59:47 -0800
-lib/sequel/connection_pool/sharded_threaded.rb Tue, 01 Nov 2022 15:22:13 -0700
+lib/sequel/connection_pool/sharded_threaded.rb Mon, 12 Jun 2023 13:05:49 -0700
+lib/sequel/connection_pool/sharded_timed_queue.rb Mon, 12 Jun 2023 13:05:49 -0700
lib/sequel/connection_pool/single.rb Fri, 17 Dec 2021 16:59:47 -0800
-lib/sequel/connection_pool/threaded.rb Thu, 03 Nov 2022 12:28:15 -0700
-lib/sequel/connection_pool/timed_queue.rb Thu, 03 Nov 2022 12:28:15 -0700
+lib/sequel/connection_pool/threaded.rb Thu, 08 Jun 2023 16:14:04 -0700
+lib/sequel/connection_pool/timed_queue.rb Mon, 12 Jun 2023 13:05:49 -0700
lib/sequel/database/connecting.rb Wed, 03 May 2023 13:14:12 -0700
lib/sequel/database/dataset.rb Tue, 28 Mar 2023 14:16:05 -0700
lib/sequel/database/dataset_defaults.rb Tue, 01 Aug 2017 08:12:00 -0700
@@ -264,6 +265,7 @@ doc/release_notes/5.67.0.txt Sat, 01 Apr 2023 07:30:20 -0700
doc/release_notes/5.68.0.txt Mon, 01 May 2023 07:26:38 -0700
doc/release_notes/5.69.0.txt Thu, 01 Jun 2023 07:29:33 -0700
doc/release_notes/5.7.0.txt Sun, 01 Apr 2018 19:38:21 -0700
+doc/release_notes/5.70.0.txt Fri, 30 Jun 2023 11:23:18 -0700
doc/release_notes/5.8.0.txt Tue, 01 May 2018 11:42:13 -0700
doc/release_notes/5.9.0.txt Fri, 01 Jun 2018 07:49:41 -0700
lib/sequel/extensions/migration.rb Mon, 24 Oct 2022 11:55:52 -0700
diff --git a/rdoc/files/CHANGELOG.html b/rdoc/files/CHANGELOG.html
index e29893dc04..377eea82ae 100644
--- a/rdoc/files/CHANGELOG.html
+++ b/rdoc/files/CHANGELOG.html
@@ -31,12 +31,29 @@ CHANGELOG
Last Update:
-2023-06-01 07:29:33 -0700
+2023-06-30 11:23:18 -0700
+5.70.0 (2023-07-01)¶ ↑
+-
+
Make static_cache plugin better handle cases where forbid_lazy_load plugin is already loaded (jeremyevans)
+ -
+
Fix ShardedThreadedConnectionPool#remove_server to disconnect all connections if removing multiple servers (jeremyevans)
+ -
+
Support SEQUEL_DEFAULT_CONNECTION_POOL environment variable for choosing connection pool when :pool_class Database option is not set (jeremyevans)
+ -
+
Add sharded_timed_queue connection pool (jeremyevans)
+ -
+
Make connection_{validator,expiration} and async_thread_pool extensions work with timed_queue connection pool (jeremyevans)
+ -
+
Make connection_{validator,expiration} extensions raise error when used with single threaded pools (HoneyryderChuck, jeremyevans) (#2049)
+ -
+
Workaround possible resource starvation in threaded connection pool (ioquatix) (#2048)
+
+
5.69.0 (2023-06-01)¶ ↑
-
Avoid unsupported flag warning when using the mysql adapter with ruby-mysql 3+ (jeremyevans)
diff --git a/rdoc/files/doc/release_notes/5_70_0_txt.html b/rdoc/files/doc/release_notes/5_70_0_txt.html
new file mode 100644
index 0000000000..c124e5b52a
--- /dev/null
+++ b/rdoc/files/doc/release_notes/5_70_0_txt.html
@@ -0,0 +1,70 @@
+
+
+
+5.70.0.txt
+
+
+
+
+
+
+
+
+5.70.0.txt
+
+
+doc/release_notes/5.70.0.txt
+
+
+Last Update:
+2023-06-30 11:23:18 -0700
+
+
+
+
+
+New Features¶ ↑
+-
+
A sharded_timed_queue connection pool has been added. This offers most of the same features as the sharded_threaded connection pool, but uses the new Queue#pop :timeout features added in Ruby 3.2 to allow for a simpler and possibly faster and more robust implementation.
+ -
+
If a :pool_class option is not specified when creating a Database, Sequel
will now look at the SEQUEL_DEFAULT_CONNECTION_POOL environment variable to determine the connection pool class to use. This allows you to set SEQUEL_DEFAULT_CONNECTION_POOL=timed_queue on Ruby 3.2 to test with the timed_queue connection pool without making any code changes. If the :servers Database option is given, Sequel
will automatically use the sharded version of the connection pool specified by SEQUEL_DEFAULT_CONNECTION_POOL.
+
+
+Other Improvements¶ ↑
+-
+
The connection_validator, connection_expiration, and async_thread_pool extensions now work with the timed_queue and sharded_timed_queue connection pools.
+ -
+
The sharded_threaded connection pool now disconnects connections for all specified servers instead of just the last specified server when using remove_server.
+ -
+
The static_cache plugin now recognizes when the forbid_lazy_load plugin is already loaded, and does not return instances that forbid lazy load for methods that return a single object, such as Database.{[],cache_get_pk,first}.
+ -
+
Sequel
now displays an informative error message if attempting to load the connection_validator or connection_expiration extensions when using the single threaded connection pool.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html b/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html
index 7f1c38a538..460b74497a 100644
--- a/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html
@@ -31,7 +31,7 @@ sharded_threaded.rb
Last Update:
-2022-11-01 15:22:13 -0700
+2023-06-12 13:05:49 -0700
diff --git a/rdoc/files/lib/sequel/connection_pool/sharded_timed_queue_rb.html b/rdoc/files/lib/sequel/connection_pool/sharded_timed_queue_rb.html
new file mode 100644
index 0000000000..17b9147cc4
--- /dev/null
+++ b/rdoc/files/lib/sequel/connection_pool/sharded_timed_queue_rb.html
@@ -0,0 +1,54 @@
+
+
+
+sharded_timed_queue.rb
+
+
+
+
+
+
+
+
+sharded_timed_queue.rb
+
+
+lib/sequel/connection_pool/sharded_timed_queue.rb
+
+
+Last Update:
+2023-06-12 13:05:49 -0700
+
+
+
+
+
+:nocov:
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rdoc/files/lib/sequel/connection_pool/threaded_rb.html b/rdoc/files/lib/sequel/connection_pool/threaded_rb.html
index eb8d901c18..b5b4672c6e 100644
--- a/rdoc/files/lib/sequel/connection_pool/threaded_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool/threaded_rb.html
@@ -31,7 +31,7 @@ threaded.rb
Last Update:
-2022-11-03 12:28:15 -0700
+2023-06-08 16:14:04 -0700
diff --git a/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html b/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html
index 8f6993ce32..bf0ae9f4ac 100644
--- a/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html
@@ -31,7 +31,7 @@ timed_queue.rb
Last Update:
-2022-11-03 12:28:15 -0700
+2023-06-12 13:05:49 -0700
diff --git a/rdoc/files/lib/sequel/connection_pool_rb.html b/rdoc/files/lib/sequel/connection_pool_rb.html
index fdaa7f28b9..df5300caf7 100644
--- a/rdoc/files/lib/sequel/connection_pool_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool_rb.html
@@ -31,7 +31,7 @@ connection_pool.rb
Last Update:
-2022-11-03 12:28:15 -0700
+2023-06-13 11:57:43 -0700
diff --git a/rdoc/files/lib/sequel/version_rb.html b/rdoc/files/lib/sequel/version_rb.html
index 20ed5eed48..71d4dd9311 100644
--- a/rdoc/files/lib/sequel/version_rb.html
+++ b/rdoc/files/lib/sequel/version_rb.html
@@ -31,7 +31,7 @@ version.rb
Last Update:
-2023-06-01 07:29:33 -0700
+2023-06-30 11:23:18 -0700
diff --git a/rdoc/fr_class_index.html b/rdoc/fr_class_index.html
index b1b70adc05..2f0445243b 100644
--- a/rdoc/fr_class_index.html
+++ b/rdoc/fr_class_index.html
@@ -114,6 +114,7 @@
Sequel::SequelMethods
Sequel::ShardedSingleConnectionPool
Sequel::ShardedThreadedConnectionPool
+Sequel::ShardedTimedQueueConnectionPool
Sequel::SimpleMigration
Sequel::SingleConnectionPool
Sequel::ThreadedConnectionPool
diff --git a/rdoc/fr_file_index.html b/rdoc/fr_file_index.html
index daaee78dd0..8067c525d8 100644
--- a/rdoc/fr_file_index.html
+++ b/rdoc/fr_file_index.html
@@ -221,6 +221,7 @@
5.68.0.txt
5.69.0.txt
5.7.0.txt
+5.70.0.txt
5.8.0.txt
5.9.0.txt
schema_modification.rdoc
@@ -237,6 +238,7 @@
connection_pool.rb
sharded_single.rb
sharded_threaded.rb
+sharded_timed_queue.rb
single.rb
threaded.rb
timed_queue.rb
diff --git a/rdoc/fr_method_index.html b/rdoc/fr_method_index.html
index 2d95e1cc91..a80507b70b 100644
--- a/rdoc/fr_method_index.html
+++ b/rdoc/fr_method_index.html
@@ -78,9 +78,9 @@
#errors (Sequel::ValidationFailed)
#expr (Sequel::SQL::Cast)
#expression (Sequel::SQL::OrderedExpression)
+#expression (Sequel::SQL::AliasedExpression)
#expression (Sequel::SQL::Subscript)
#expression (Sequel::SQL::CaseExpression)
-#expression (Sequel::SQL::AliasedExpression)
#f (Sequel::SQL::Subscript)
#fast_instance_delete_sql (Sequel::Model::ClassMethods)
#fast_pk_lookup_sql (Sequel::Model::ClassMethods)
@@ -93,14 +93,15 @@
#log_warn_duration (Sequel::Database)
#loggers (Sequel::Database)
#master (Sequel::Model::Associations::EagerGraphLoader)
-#max_size (Sequel::TimedQueueConnectionPool)
#max_size (Sequel::ThreadedConnectionPool)
+#max_size (Sequel::TimedQueueConnectionPool)
+#max_size (Sequel::ShardedTimedQueueConnectionPool)
#migration (Sequel::MigrationDSL)
#migration_tuples (Sequel::TimestampMigrator)
#migrations (Sequel::IntegerMigrator)
#model (Sequel::Model::DatasetModule)
-#model (Sequel::HookFailed)
#model (Sequel::ValidationFailed)
+#model (Sequel::HookFailed)
#name (Sequel::SQL::Function)
#nulls (Sequel::SQL::OrderedExpression)
#on (Sequel::SQL::JoinOnClause)
@@ -131,8 +132,8 @@
#str (Sequel::SQL::PlaceholderLiteralString)
#strict_param_setting (Sequel::Model::ClassMethods)
#sub (Sequel::SQL::Subscript)
-#table (Sequel::SQL::QualifiedIdentifier)
#table (Sequel::Migrator)
+#table (Sequel::SQL::QualifiedIdentifier)
#table (Sequel::SQL::ColumnAll)
#table_expr (Sequel::SQL::JoinClause)
#target (Sequel::Migrator)
@@ -179,8 +180,8 @@
::extension (Sequel::Database)
::from_value_pairs (Sequel::SQL::BooleanExpression)
::inflections (Sequel)
-::inherited (Sequel::SQL::Expression)
::inherited (Sequel::Migration)
+::inherited (Sequel::SQL::Expression)
::inherited_instance_variables (Sequel::Plugins)
::invert (Sequel::SQL::BooleanExpression)
::irregular (Sequel::Inflections)
@@ -190,56 +191,57 @@
::loader (Sequel::Dataset::PlaceholderLiteralizer)
::migration (Sequel)
::migrator_class (Sequel::Migrator)
-::new (Sequel::SQL::Wrapper)
+::new (Sequel::Schema::AlterTableGenerator)
+::new (Sequel::SQL::ColumnAll)
::new (Sequel::SQL::Cast)
::new (Sequel::SQL::CaseExpression)
-::new (Sequel::SQL::JoinUsingClause)
::new (Sequel::SQL::OrderedExpression)
+::new (Sequel::SQL::PlaceholderLiteralString)
::new (Sequel::SQL::AliasedExpression)
::new (Sequel::Qualifier)
-::new (Sequel::SQL::PlaceholderLiteralString)
::new (Sequel::SQL::QualifiedIdentifier)
-::new (Sequel::SQL::ComplexExpression)
+::new (Sequel::SQL::Constant)
::new (Sequel::SQL::Subscript)
+::new (Sequel::SQL::VirtualRow)
::new (Sequel::NoMatchingRow)
::new (Sequel::Model::InstanceMethods)
::new (Sequel::Model::DatasetModule)
-::new (Sequel::Model::Associations::EagerGraphLoader)
::new (Sequel::Dataset)
-::new (Sequel::SQL::VirtualRow)
-::new (Sequel::Migrator)
+::new (Sequel::Model::Associations::EagerGraphLoader)
::new (Sequel::SQL::Window)
-::new (Sequel::SQL::ColumnAll)
-::new (Sequel::SQL::Constant)
+::new (Sequel::SQL::Wrapper)
+::new (Sequel::SQL::ComplexExpression)
+::new (Sequel::Migrator)
::new (Sequel::SQL::DelayedEvaluation)
::new (Sequel::Database)
-::new (Sequel::Schema::AlterTableGenerator)
+::new (Sequel::SQL::JoinUsingClause)
::new (Sequel::Schema::CreateTableGenerator)
+::new (Sequel::ShardedSingleConnectionPool)
::new (Sequel::MigrationReverser)
::new (Sequel::MigrationDSL)
-::new (Sequel::ShardedSingleConnectionPool)
+::new (Sequel::ShardedThreadedConnectionPool)
::new (Sequel::MigrationAlterTableReverser)
::new (Sequel::SQL::JoinOnClause)
-::new (Sequel::ShardedThreadedConnectionPool)
+::new (Sequel::ShardedTimedQueueConnectionPool)
::new (Sequel::SimpleMigration)
::new (Sequel::Migration)
::new (Sequel::IntegerMigrator)
-::new (Sequel::SQL::JoinClause)
+::new (Sequel::SQL::Function)
::new (Sequel::ConnectionPool)
::new (Sequel::HookFailed)
::new (Sequel::SingleConnectionPool)
::new (Sequel::ThreadedConnectionPool)
::new (Sequel::Dataset::PlaceholderLiteralizer::Argument)
::new (Sequel::Dataset::PlaceholderLiteralizer)
-::new (Sequel::SQL::Function)
+::new (Sequel::SQL::Identifier)
::new (Sequel::TimedQueueConnectionPool)
::new (Sequel::TimestampMigrator)
-::new (Sequel::SQL::Identifier)
+::new (Sequel::SQL::JoinClause)
::new (Sequel::ValidationFailed)
::parse (Sequel::SQLTime)
::plural (Sequel::Inflections)
-::register_extension (Sequel::Database)
::register_extension (Sequel::Dataset)
+::register_extension (Sequel::Database)
::run (Sequel::Migrator)
::run_after_initialize (Sequel::Database)
::set_shared_adapter_scheme (Sequel::Database)
@@ -249,29 +251,29 @@
::version (Sequel)
#!~ (Sequel::SQL::PatternMatchMethods)
#& (Sequel::SQL::BooleanExpression)
-#* (Sequel::SQL::QualifyingMethods)
#* (Sequel::SQL::Function)
+#* (Sequel::SQL::QualifyingMethods)
#** (Sequel::SQL::OperatorBuilders)
-#+ (Sequel::SQL::NumericExpression)
-#+ (Sequel::SQL::NumericMethods)
#+ (Sequel::SQL::StringConcatenationMethods)
+#+ (Sequel::SQL::NumericMethods)
+#+ (Sequel::SQL::NumericExpression)
#<< (Sequel::Database)
#<< (Sequel::Dataset)
-#== (Sequel::SQL::Expression)
#== (Sequel::Dataset)
+#== (Sequel::SQL::Expression)
#== (Sequel::Model::InstanceMethods)
#=== (Sequel::Model::InstanceMethods)
#=~ (Sequel::SQL::PatternMatchMethods)
#Bignum (Sequel::Schema::CreateTableGenerator)
#Fixnum (Sequel::Schema::CreateTableGenerator)
#Model (Sequel::Model::ClassMethods)
-#[] (Sequel::Model::InstanceMethods)
-#[] (Sequel::Dataset)
+#[] (Sequel::Database)
#[] (Sequel::SQL::Subscript)
+#[] (Sequel::Model::ClassMethods)
#[] (Sequel::Model::DatasetMethods)
-#[] (Sequel::Database)
+#[] (Sequel::Model::InstanceMethods)
+#[] (Sequel::Dataset)
#[] (Sequel::SQL::QualifyingMethods)
-#[] (Sequel::Model::ClassMethods)
#[]= (Sequel::Model::InstanceMethods)
#_add_method (Sequel::Model::Associations::AssociationReflection)
#_clone (Sequel::Dataset)
@@ -290,13 +292,14 @@
#add_foreign_key (Sequel::Schema::AlterTableGenerator)
#add_full_text_index (Sequel::Schema::AlterTableGenerator)
#add_graph_aliases (Sequel::Dataset)
-#add_index (Sequel::Schema::AlterTableGenerator)
#add_index (Sequel::Database)
+#add_index (Sequel::Schema::AlterTableGenerator)
#add_method (Sequel::Model::Associations::AssociationReflection)
#add_primary_key (Sequel::Schema::AlterTableGenerator)
#add_servers (Sequel::Database)
-#add_servers (Sequel::ShardedThreadedConnectionPool)
+#add_servers (Sequel::ShardedTimedQueueConnectionPool)
#add_servers (Sequel::ShardedSingleConnectionPool)
+#add_servers (Sequel::ShardedThreadedConnectionPool)
#add_spatial_index (Sequel::Schema::AlterTableGenerator)
#add_unique_constraint (Sequel::Schema::AlterTableGenerator)
#after_commit (Sequel::Database)
@@ -306,10 +309,11 @@
#all (Sequel::Dataset)
#all (Sequel::Dataset::PlaceholderLiteralizer)
#all_association_reflections (Sequel::Model::Associations::ClassMethods)
-#all_connections (Sequel::ShardedSingleConnectionPool)
-#all_connections (Sequel::SingleConnectionPool)
-#all_connections (Sequel::ShardedThreadedConnectionPool)
#all_connections (Sequel::TimedQueueConnectionPool)
+#all_connections (Sequel::ShardedThreadedConnectionPool)
+#all_connections (Sequel::SingleConnectionPool)
+#all_connections (Sequel::ShardedSingleConnectionPool)
+#all_connections (Sequel::ShardedTimedQueueConnectionPool)
#all_connections (Sequel::ThreadedConnectionPool)
#allocated (Sequel::ShardedThreadedConnectionPool)
#alter_table (Sequel::Database)
@@ -320,8 +324,8 @@
#apply_dataset_changes (Sequel::Model::Associations::AssociationReflection)
#apply_distinct_on_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_eager_dataset_changes (Sequel::Model::Associations::AssociationReflection)
-#apply_eager_graph_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_eager_graph_limit_strategy (Sequel::Model::Associations::OneToManyAssociationReflection)
+#apply_eager_graph_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_ruby_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_window_function_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
@@ -330,11 +334,11 @@
#as (Sequel::SQL::Builders)
#as (Sequel::SQL::AliasMethods)
#as_hash (Sequel::Model::DatasetMethods)
-#as_hash (Sequel::Dataset)
#as_hash (Sequel::Model::Associations::DatasetMethods)
-#asc (Sequel::SQL::Builders)
-#asc (Sequel::SQL::OrderMethods)
+#as_hash (Sequel::Dataset)
#asc (Sequel::SQL::OrderedExpression)
+#asc (Sequel::SQL::OrderMethods)
+#asc (Sequel::SQL::Builders)
#assign_singular? (Sequel::Model::Associations::SingularAssociationReflection)
#assign_singular? (Sequel::Model::Associations::AssociationReflection)
#associate (Sequel::Model::Associations::ClassMethods)
@@ -353,8 +357,8 @@
#association_method (Sequel::Model::Associations::AssociationReflection)
#association_reflection (Sequel::Model::Associations::AssociationDatasetMethods)
#association_reflection (Sequel::Model::Associations::ClassMethods)
-#associations (Sequel::Model::Associations::ClassMethods)
#associations (Sequel::Model::Associations::InstanceMethods)
+#associations (Sequel::Model::Associations::ClassMethods)
#autoincrementing_primary_key (Sequel::Model::InstanceMethods)
#available_connections (Sequel::ShardedThreadedConnectionPool)
#avg (Sequel::Dataset)
@@ -364,11 +368,11 @@
#boolean_constant_sql_append (Sequel::Dataset)
#cache_get (Sequel::Dataset)
#cache_set (Sequel::Dataset)
-#call (Sequel::Dataset::ArgumentMapper)
-#call (Sequel::Dataset::PreparedStatementMethods)
#call (Sequel::Model::ClassMethods)
-#call (Sequel::Database)
#call (Sequel::SQL::DelayedEvaluation)
+#call (Sequel::Database)
+#call (Sequel::Dataset::PreparedStatementMethods)
+#call (Sequel::Dataset::ArgumentMapper)
#call (Sequel::Dataset)
#can_have_associated_objects? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#can_have_associated_objects? (Sequel::Model::Associations::AssociationReflection)
@@ -379,8 +383,8 @@
#case_expression_sql_append (Sequel::Dataset)
#cast (Sequel::SQL::CastMethods)
#cast (Sequel::SQL::Builders)
-#cast_numeric (Sequel::SQL::Builders)
#cast_numeric (Sequel::SQL::CastMethods)
+#cast_numeric (Sequel::SQL::Builders)
#cast_sql_append (Sequel::Dataset)
#cast_string (Sequel::SQL::CastMethods)
#cast_string (Sequel::SQL::Builders)
@@ -405,8 +409,8 @@
#columns (Sequel::Model::ClassMethods)
#columns (Sequel::Dataset::PreparedStatementMethods)
#columns! (Sequel::Dataset)
-#complex_expression_sql_append (Sequel::Dataset)
#complex_expression_sql_append (Sequel::Model::Associations::DatasetMethods)
+#complex_expression_sql_append (Sequel::Dataset)
#compound_clone (Sequel::Dataset)
#compound_from_self (Sequel::Dataset)
#condition_specifier? (Sequel::SequelMethods)
@@ -441,8 +445,8 @@
#dataset_class= (Sequel::Database)
#dataset_method (Sequel::Model::Associations::AssociationReflection)
#dataset_module (Sequel::Model::ClassMethods)
-#dataset_need_primary_key? (Sequel::Model::Associations::AssociationReflection)
#dataset_need_primary_key? (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#dataset_need_primary_key? (Sequel::Model::Associations::AssociationReflection)
#db (Sequel::Model::ClassMethods)
#db= (Sequel::Model::ClassMethods)
#db_schema (Sequel::Model::ClassMethods)
@@ -459,27 +463,28 @@
#default_right_key (Sequel::Model::Associations::OneThroughOneAssociationReflection)
#default_timezone= (Sequel::SequelMethods)
#delay (Sequel::SQL::Builders)
-#delayed_evaluation_sql_append (Sequel::Dataset::PreparedStatementMethods)
#delayed_evaluation_sql_append (Sequel::Dataset)
+#delayed_evaluation_sql_append (Sequel::Dataset::PreparedStatementMethods)
#delete (Sequel::Model::InstanceMethods)
#delete (Sequel::Dataset)
#delete_row_number_column (Sequel::Model::Associations::AssociationReflection)
-#desc (Sequel::SQL::OrderedExpression)
#desc (Sequel::SQL::Builders)
#desc (Sequel::SQL::OrderMethods)
-#destroy (Sequel::Model::InstanceMethods)
+#desc (Sequel::SQL::OrderedExpression)
#destroy (Sequel::Model::DatasetMethods)
-#disconnect (Sequel::TimedQueueConnectionPool)
+#destroy (Sequel::Model::InstanceMethods)
+#disconnect (Sequel::Database)
+#disconnect (Sequel::SingleConnectionPool)
+#disconnect (Sequel::ShardedThreadedConnectionPool)
+#disconnect (Sequel::ShardedTimedQueueConnectionPool)
#disconnect (Sequel::ShardedSingleConnectionPool)
#disconnect (Sequel::ThreadedConnectionPool)
-#disconnect (Sequel::ShardedThreadedConnectionPool)
-#disconnect (Sequel::SingleConnectionPool)
-#disconnect (Sequel::Database)
+#disconnect (Sequel::TimedQueueConnectionPool)
#disconnect_connection (Sequel::Database)
#distinct (Sequel::SQL::Function)
#distinct (Sequel::Dataset)
-#down (Sequel::Migration)
#down (Sequel::MigrationDSL)
+#down (Sequel::Migration)
#drop_column (Sequel::Schema::AlterTableGenerator)
#drop_column (Sequel::Database)
#drop_constraint (Sequel::Schema::AlterTableGenerator)
@@ -492,33 +497,33 @@
#drop_view (Sequel::Database)
#dup (Sequel::SQL::Expression)
#dup (Sequel::Dataset)
-#each (Sequel::Model::InstanceMethods)
#each (Sequel::Dataset)
#each (Sequel::Dataset::PlaceholderLiteralizer)
+#each (Sequel::Model::InstanceMethods)
#each_server (Sequel::Dataset)
#eager (Sequel::Model::Associations::DatasetMethods)
#eager_graph (Sequel::Model::Associations::DatasetMethods)
#eager_graph_association (Sequel::Model::Associations::DatasetMethods)
#eager_graph_associations (Sequel::Model::Associations::DatasetMethods)
#eager_graph_build_associations (Sequel::Model::Associations::DatasetMethods)
-#eager_graph_lazy_dataset? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_graph_lazy_dataset? (Sequel::Model::Associations::AssociationReflection)
+#eager_graph_lazy_dataset? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_graph_limit_strategy (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_graph_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#eager_graph_with_options (Sequel::Model::Associations::DatasetMethods)
#eager_limit_strategy (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
-#eager_load_results (Sequel::Model::Associations::AssociationReflection)
#eager_load_results (Sequel::Model::Associations::ClassMethods)
+#eager_load_results (Sequel::Model::Associations::AssociationReflection)
#eager_loader_key (Sequel::Model::Associations::AssociationReflection)
-#eager_loading_use_associated_key? (Sequel::Model::Associations::AssociationReflection)
#eager_loading_use_associated_key? (Sequel::Model::Associations::ManyToManyAssociationReflection)
+#eager_loading_use_associated_key? (Sequel::Model::Associations::AssociationReflection)
#elapsed_seconds_since (Sequel::SequelMethods)
#empty? (Sequel::Model::Errors)
#empty? (Sequel::Dataset)
-#eql? (Sequel::SQL::Expression)
-#eql? (Sequel::Model::InstanceMethods)
#eql? (Sequel::Dataset)
+#eql? (Sequel::Model::InstanceMethods)
+#eql? (Sequel::SQL::Expression)
#errors (Sequel::Model::InstanceMethods)
#escape_like (Sequel::Dataset)
#except (Sequel::Dataset)
@@ -533,10 +538,10 @@
#expression? (Sequel::SQL::CaseExpression)
#extend (Sequel::Model::InstanceMethods)
#extend_datasets (Sequel::Database)
-#extension (Sequel::SequelMethods)
-#extension (Sequel::Dataset::DeprecatedSingletonClassMethods)
#extension (Sequel::Dataset)
#extension (Sequel::Database)
+#extension (Sequel::Dataset::DeprecatedSingletonClassMethods)
+#extension (Sequel::SequelMethods)
#extract (Sequel::SQL::ComplexExpressionMethods)
#extract (Sequel::SQL::Builders)
#fetch (Sequel::Database)
@@ -549,28 +554,28 @@
#finalize (Sequel::Model::Associations::AssociationReflection)
#finalize_associations (Sequel::Model::Associations::ClassMethods)
#finalize_settings (Sequel::Model::Associations::AssociationReflection)
-#finalize_settings (Sequel::Model::Associations::ManyToManyAssociationReflection)
#finalize_settings (Sequel::Model::Associations::OneToManyAssociationReflection)
#finalize_settings (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#finalize_settings (Sequel::Model::Associations::ManyToManyAssociationReflection)
#find (Sequel::Model::ClassMethods)
#find_or_create (Sequel::Model::ClassMethods)
-#first (Sequel::Dataset)
#first (Sequel::Dataset::PlaceholderLiteralizer)
+#first (Sequel::Dataset)
#first! (Sequel::Dataset)
#first_source (Sequel::Dataset)
#first_source_alias (Sequel::Dataset)
#first_source_table (Sequel::Dataset)
#for_update (Sequel::Dataset)
#foreign_key (Sequel::Schema::CreateTableGenerator)
-#freeze (Sequel::ShardedSingleConnectionPool)
-#freeze (Sequel::ShardedThreadedConnectionPool)
-#freeze (Sequel::Database)
#freeze (Sequel::Model::InstanceMethods)
+#freeze (Sequel::Model::ClassMethods)
+#freeze (Sequel::Database)
+#freeze (Sequel::ShardedSingleConnectionPool)
+#freeze (Sequel::Model::Associations::ClassMethods)
#freeze (Sequel::Dataset::PlaceholderLiteralizer)
+#freeze (Sequel::ShardedThreadedConnectionPool)
#freeze (Sequel::Model::Associations::InstanceMethods)
#freeze (Sequel::Dataset)
-#freeze (Sequel::Model::Associations::ClassMethods)
-#freeze (Sequel::Model::ClassMethods)
#from (Sequel::Dataset)
#from (Sequel::Database)
#from_application_timestamp (Sequel::Database)
@@ -578,12 +583,12 @@
#full_messages (Sequel::Model::Errors)
#full_text_index (Sequel::Schema::CreateTableGenerator)
#function (Sequel::SQL::Builders)
-#function (Sequel::SQL::QualifiedIdentifier)
#function (Sequel::SQL::Identifier)
+#function (Sequel::SQL::QualifiedIdentifier)
#function_sql_append (Sequel::Dataset)
+#get (Sequel::Dataset::PlaceholderLiteralizer)
#get (Sequel::Dataset)
#get (Sequel::Database)
-#get (Sequel::Dataset::PlaceholderLiteralizer)
#get_pool (Sequel::ConnectionPool::ClassMethods)
#global_index_namespace? (Sequel::Database)
#graph (Sequel::Dataset)
@@ -600,14 +605,15 @@
#has_column? (Sequel::Schema::CreateTableGenerator)
#has_dataset? (Sequel::Model::ClassMethods)
#hash (Sequel::SQL::Expression)
-#hash (Sequel::Dataset)
#hash (Sequel::Model::InstanceMethods)
+#hash (Sequel::Dataset)
#having (Sequel::Dataset)
-#hold (Sequel::SingleConnectionPool)
#hold (Sequel::ThreadedConnectionPool)
-#hold (Sequel::ShardedThreadedConnectionPool)
-#hold (Sequel::ShardedSingleConnectionPool)
#hold (Sequel::TimedQueueConnectionPool)
+#hold (Sequel::ShardedSingleConnectionPool)
+#hold (Sequel::SingleConnectionPool)
+#hold (Sequel::ShardedThreadedConnectionPool)
+#hold (Sequel::ShardedTimedQueueConnectionPool)
#id (Sequel::Model::InstanceMethods)
#identifier (Sequel::SQL::Builders)
#ilike (Sequel::SQL::Builders)
@@ -620,16 +626,16 @@
#initialize_association_cache (Sequel::Model::Associations::AssociationReflection)
#insert (Sequel::Dataset)
#insert_sql (Sequel::Dataset)
-#inspect (Sequel::LiteralString)
#inspect (Sequel::SQL::ValueList)
-#inspect (Sequel::SQLTime)
-#inspect (Sequel::Model::InstanceMethods)
+#inspect (Sequel::LiteralString)
#inspect (Sequel::SQL::Expression)
+#inspect (Sequel::Model::InstanceMethods)
+#inspect (Sequel::Model::Associations::AssociationReflection)
+#inspect (Sequel::Database)
#inspect (Sequel::SQL::Blob)
#inspect (Sequel::Dataset)
+#inspect (Sequel::SQLTime)
#inspect (Sequel::Dataset::PreparedStatementMethods)
-#inspect (Sequel::Database)
-#inspect (Sequel::Model::Associations::AssociationReflection)
#intersect (Sequel::Dataset)
#invert (Sequel::Dataset)
#invert (Sequel::SQL::OrderedExpression)
@@ -646,18 +652,18 @@
#joined_dataset? (Sequel::Dataset)
#json_parser_error_class (Sequel::SequelMethods)
#keys (Sequel::Model::InstanceMethods)
-#last (Sequel::Model::DatasetMethods)
#last (Sequel::Dataset)
-#lateral (Sequel::Dataset)
+#last (Sequel::Model::DatasetMethods)
#lateral (Sequel::SQL::Function)
-#like (Sequel::SQL::StringMethods)
+#lateral (Sequel::Dataset)
#like (Sequel::SQL::Builders)
+#like (Sequel::SQL::StringMethods)
#limit (Sequel::Dataset)
#limit_and_offset (Sequel::Model::Associations::SingularAssociationReflection)
#limit_and_offset (Sequel::Model::Associations::AssociationReflection)
#lit (Sequel::SQL::Blob)
-#lit (Sequel::SQL::Builders)
#lit (Sequel::LiteralString)
+#lit (Sequel::SQL::Builders)
#literal (Sequel::Database)
#literal_append (Sequel::Dataset)
#literal_symbol (Sequel::Database)
@@ -687,8 +693,8 @@
#merge_sql (Sequel::Dataset)
#merge_update (Sequel::Dataset)
#merge_using (Sequel::Dataset)
-#method_missing (Sequel::Schema::CreateTableGenerator)
#method_missing (Sequel::SQL::VirtualRow)
+#method_missing (Sequel::Schema::CreateTableGenerator)
#method_missing (Sequel::Migration)
#min (Sequel::Dataset)
#model (Sequel::Model::DatasetMethods)
@@ -714,10 +720,10 @@
#one_to_many (Sequel::Model::Associations::ClassMethods)
#one_to_one (Sequel::Model::Associations::ClassMethods)
#options_overlap (Sequel::Dataset)
-#or (Sequel::SQL::Builders)
#or (Sequel::Dataset)
-#order (Sequel::SQL::Function)
+#or (Sequel::SQL::Builders)
#order (Sequel::Dataset)
+#order (Sequel::SQL::Function)
#order_append (Sequel::Dataset)
#order_by (Sequel::Dataset)
#order_more (Sequel::Dataset)
@@ -726,8 +732,8 @@
#orig_dataset (Sequel::Dataset::PreparedStatementMethods)
#orig_require (Sequel::SequelMethods)
#over (Sequel::SQL::Function)
-#paged_each (Sequel::Dataset)
#paged_each (Sequel::Model::DatasetMethods)
+#paged_each (Sequel::Dataset)
#parse_json (Sequel::SequelMethods)
#pk (Sequel::Model::InstanceMethods)
#pk_equal? (Sequel::Model::InstanceMethods)
@@ -738,27 +744,28 @@
#placeholder_loader (Sequel::Model::Associations::AssociationReflection)
#plugin (Sequel::Model::ClassMethods)
#pool_type (Sequel::TimedQueueConnectionPool)
+#pool_type (Sequel::SingleConnectionPool)
#pool_type (Sequel::ShardedThreadedConnectionPool)
+#pool_type (Sequel::ShardedTimedQueueConnectionPool)
#pool_type (Sequel::ThreadedConnectionPool)
-#pool_type (Sequel::SingleConnectionPool)
#pool_type (Sequel::ShardedSingleConnectionPool)
#predicate_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
-#predicate_key (Sequel::Model::Associations::OneToManyAssociationReflection)
#predicate_key (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#predicate_key (Sequel::Model::Associations::OneToManyAssociationReflection)
#predicate_key_values (Sequel::Model::Associations::AssociationReflection)
#predicate_keys (Sequel::Model::Associations::AssociationReflection)
#prepare (Sequel::Dataset::PreparedStatementMethods)
#prepare (Sequel::Dataset)
#prepared_args (Sequel::Dataset::PreparedStatementMethods)
#prepared_modify_values (Sequel::Dataset::PreparedStatementMethods)
-#prepared_sql (Sequel::Dataset::ArgumentMapper)
#prepared_sql (Sequel::Dataset::PreparedStatementMethods)
+#prepared_sql (Sequel::Dataset::ArgumentMapper)
#prepared_statement (Sequel::Database)
#prepared_statement_name (Sequel::Dataset::ArgumentMapper)
#prepared_type (Sequel::Dataset::PreparedStatementMethods)
-#primary_key (Sequel::Schema::CreateTableGenerator)
-#primary_key (Sequel::Model::Associations::ManyToOneAssociationReflection)
#primary_key (Sequel::Model::Associations::OneToManyAssociationReflection)
+#primary_key (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#primary_key (Sequel::Schema::CreateTableGenerator)
#primary_key_hash (Sequel::Model::ClassMethods)
#primary_key_method (Sequel::Model::Associations::ManyToOneAssociationReflection)
#primary_key_methods (Sequel::Model::Associations::ManyToOneAssociationReflection)
@@ -774,9 +781,9 @@
#qualified_primary_key_hash (Sequel::Model::ClassMethods)
#qualified_right_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
#qualified_right_primary_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
-#qualify (Sequel::Model::Associations::AssociationReflection)
-#qualify (Sequel::SQL::QualifyingMethods)
#qualify (Sequel::Dataset)
+#qualify (Sequel::SQL::QualifyingMethods)
+#qualify (Sequel::Model::Associations::AssociationReflection)
#qualify (Sequel::SQL::Builders)
#qualify_assoc (Sequel::Model::Associations::AssociationReflection)
#qualify_cur (Sequel::Model::Associations::AssociationReflection)
@@ -788,8 +795,8 @@
#quoted_identifier_append (Sequel::Dataset)
#reciprocal (Sequel::Model::Associations::AssociationReflection)
#reciprocal (Sequel::Model::Associations::OneThroughOneAssociationReflection)
-#reciprocal_array? (Sequel::Model::Associations::OneToManyAssociationReflection)
#reciprocal_array? (Sequel::Model::Associations::AssociationReflection)
+#reciprocal_array? (Sequel::Model::Associations::OneToManyAssociationReflection)
#reciprocal_array? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#recursive_cte_requires_column_aliases? (Sequel::Dataset)
#recursive_map (Sequel::SequelMethods)
@@ -799,9 +806,10 @@
#remove_before_destroy? (Sequel::Model::Associations::OneToManyAssociationReflection)
#remove_before_destroy? (Sequel::Model::Associations::AssociationReflection)
#remove_method (Sequel::Model::Associations::AssociationReflection)
-#remove_servers (Sequel::ShardedThreadedConnectionPool)
-#remove_servers (Sequel::Database)
#remove_servers (Sequel::ShardedSingleConnectionPool)
+#remove_servers (Sequel::Database)
+#remove_servers (Sequel::ShardedTimedQueueConnectionPool)
+#remove_servers (Sequel::ShardedThreadedConnectionPool)
#remove_should_check_existing? (Sequel::Model::Associations::OneToManyAssociationReflection)
#remove_should_check_existing? (Sequel::Model::Associations::AssociationReflection)
#rename_column (Sequel::Schema::AlterTableGenerator)
@@ -815,12 +823,12 @@
#restrict_primary_key (Sequel::Model::ClassMethods)
#restrict_primary_key? (Sequel::Model::ClassMethods)
#returning (Sequel::Dataset)
-#returns_array? (Sequel::Model::Associations::SingularAssociationReflection)
-#returns_array? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#returns_array? (Sequel::Model::Associations::AssociationReflection)
-#reverse (Sequel::Dataset)
-#reverse (Sequel::MigrationReverser)
+#returns_array? (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#returns_array? (Sequel::Model::Associations::SingularAssociationReflection)
#reverse (Sequel::MigrationAlterTableReverser)
+#reverse (Sequel::MigrationReverser)
+#reverse (Sequel::Dataset)
#reverse_order (Sequel::Dataset)
#right_primary_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
#right_primary_key_method (Sequel::Model::Associations::ManyToManyAssociationReflection)
@@ -830,20 +838,20 @@
#rollback_on_exit (Sequel::Database)
#row_number_column (Sequel::Dataset)
#row_proc (Sequel::Dataset)
-#run (Sequel::Dataset::PreparedStatementMethods)
-#run (Sequel::Database)
-#run (Sequel::Dataset::EmulatePreparedStatementMethods)
#run (Sequel::IntegerMigrator)
+#run (Sequel::Dataset::EmulatePreparedStatementMethods)
+#run (Sequel::Database)
#run (Sequel::TimestampMigrator)
+#run (Sequel::Dataset::PreparedStatementMethods)
#save (Sequel::Model::InstanceMethods)
#save_changes (Sequel::Model::InstanceMethods)
#schema (Sequel::Database)
#schema_and_table (Sequel::Dataset)
#schema_type_class (Sequel::Database)
-#select (Sequel::Model::Associations::AssociationReflection)
-#select (Sequel::Dataset)
#select (Sequel::Database)
#select (Sequel::Model::Associations::ManyToManyAssociationReflection)
+#select (Sequel::Model::Associations::AssociationReflection)
+#select (Sequel::Dataset)
#select_all (Sequel::Dataset)
#select_append (Sequel::Dataset)
#select_group (Sequel::Dataset)
@@ -856,8 +864,9 @@
#serial_primary_key_options (Sequel::Database)
#server (Sequel::Dataset)
#server? (Sequel::Dataset)
-#servers (Sequel::ShardedThreadedConnectionPool)
#servers (Sequel::Database)
+#servers (Sequel::ShardedTimedQueueConnectionPool)
+#servers (Sequel::ShardedThreadedConnectionPool)
#servers (Sequel::ShardedSingleConnectionPool)
#servers (Sequel::ConnectionPool)
#set (Sequel::Model::InstanceMethods)
@@ -873,8 +882,8 @@
#set_prepared_statement (Sequel::Database)
#set_primary_key (Sequel::Model::ClassMethods)
#set_reciprocal_to_self? (Sequel::Model::Associations::ManyToOneAssociationReflection)
-#set_reciprocal_to_self? (Sequel::Model::Associations::OneToManyAssociationReflection)
#set_reciprocal_to_self? (Sequel::Model::Associations::AssociationReflection)
+#set_reciprocal_to_self? (Sequel::Model::Associations::OneToManyAssociationReflection)
#set_server (Sequel::Model::InstanceMethods)
#setter_method (Sequel::Model::Associations::AssociationReflection)
#setter_methods (Sequel::Model::ClassMethods)
@@ -887,11 +896,12 @@
#single_value! (Sequel::Dataset)
#single_value_ds (Sequel::Dataset)
#singleton_method_added (Sequel::Model::InstanceMethods)
-#size (Sequel::ShardedSingleConnectionPool)
#size (Sequel::ThreadedConnectionPool)
#size (Sequel::TimedQueueConnectionPool)
+#size (Sequel::ShardedTimedQueueConnectionPool)
#size (Sequel::SingleConnectionPool)
#size (Sequel::ShardedThreadedConnectionPool)
+#size (Sequel::ShardedSingleConnectionPool)
#skip_limit_check (Sequel::Dataset)
#skip_locked (Sequel::Dataset)
#skip_validation_on_next_save! (Sequel::Model::InstanceMethods)
@@ -904,16 +914,16 @@
#split_symbols? (Sequel::SequelMethods)
#sql (Sequel::Dataset)
#sql (Sequel::Dataset::PlaceholderLiteralizer)
-#sql_boolean (Sequel::SQL::ComplexExpressionMethods)
#sql_boolean (Sequel::SQL::ComplexExpression)
#sql_boolean (Sequel::SQL::BooleanExpression)
+#sql_boolean (Sequel::SQL::ComplexExpressionMethods)
#sql_literal_append (Sequel::Dataset::PlaceholderLiteralizer::Argument)
-#sql_number (Sequel::SQL::ComplexExpression)
-#sql_number (Sequel::SQL::ComplexExpressionMethods)
#sql_number (Sequel::SQL::NumericExpression)
-#sql_string (Sequel::SQL::ComplexExpressionMethods)
-#sql_string (Sequel::SQL::ComplexExpression)
+#sql_number (Sequel::SQL::ComplexExpressionMethods)
+#sql_number (Sequel::SQL::ComplexExpression)
#sql_string (Sequel::SQL::StringExpression)
+#sql_string (Sequel::SQL::ComplexExpression)
+#sql_string (Sequel::SQL::ComplexExpressionMethods)
#sql_subscript (Sequel::SQL::SubscriptMethods)
#start_timer (Sequel::SequelMethods)
#string_to_date (Sequel::SequelMethods)
@@ -991,11 +1001,11 @@
#to_hash_groups (Sequel::Dataset)
#to_prepared_statement (Sequel::Dataset)
#to_s (Sequel::SQLTime)
-#to_sequel_blob (Sequel::LiteralString)
#to_sequel_blob (Sequel::SQL::Blob)
-#transaction (Sequel::MigrationDSL)
+#to_sequel_blob (Sequel::LiteralString)
#transaction (Sequel::SequelMethods)
#transaction (Sequel::Database)
+#transaction (Sequel::MigrationDSL)
#transform (Sequel::Dataset::PlaceholderLiteralizer::Argument)
#transform (Sequel::ASTTransformer)
#trim (Sequel::SQL::Builders)
@@ -1017,8 +1027,8 @@
#unused_table_alias (Sequel::Dataset)
#up (Sequel::Migration)
#up (Sequel::MigrationDSL)
-#update (Sequel::Model::InstanceMethods)
#update (Sequel::Dataset)
+#update (Sequel::Model::InstanceMethods)
#update_fields (Sequel::Model::InstanceMethods)
#update_sql (Sequel::Dataset)
#uri (Sequel::Database)
@@ -1037,13 +1047,13 @@
#window_sql_append (Sequel::Dataset)
#with (Sequel::Dataset)
#with_dataset (Sequel::Dataset::PlaceholderLiteralizer)
-#with_extend (Sequel::Dataset::DeprecatedSingletonClassMethods)
#with_extend (Sequel::Dataset)
+#with_extend (Sequel::Dataset::DeprecatedSingletonClassMethods)
#with_merged_expression (Sequel::SQL::CaseExpression)
#with_ordinality (Sequel::SQL::Function)
#with_parens (Sequel::SQL::PlaceholderLiteralString)
-#with_pk (Sequel::Model::ClassMethods)
#with_pk (Sequel::Model::DatasetMethods)
+#with_pk (Sequel::Model::ClassMethods)
#with_pk! (Sequel::Model::DatasetMethods)
#with_pk! (Sequel::Model::ClassMethods)
#with_quote_identifiers (Sequel::Dataset)
@@ -1060,9 +1070,9 @@
#within_group (Sequel::SQL::Function)
#| (Sequel::SQL::Subscript)
#| (Sequel::SQL::BooleanExpression)
-#~ (Sequel::SQL::BitwiseMethods)
#~ (Sequel::SQL::OperatorBuilders)
#~ (Sequel::SQL::BooleanMethods)
+#~ (Sequel::SQL::BitwiseMethods)
static_cache.rb
Sequel::Plugins::StaticCache
Sequel::Plugins::StaticCache::ClassMethods +Sequel::Plugins::StaticCache::ForbidLazyLoadClassMethods Sequel::Plugins::StaticCache::InstanceMethodsSequel::Plugins::StaticCacheCache
Sequel::Plugins::StaticCacheCache::ClassMethods diff --git a/rdoc-plugins/fr_method_index.html b/rdoc-plugins/fr_method_index.html index 3b593fe782..8b92652993 100644 --- a/rdoc-plugins/fr_method_index.html +++ b/rdoc-plugins/fr_method_index.html @@ -159,87 +159,87 @@module lib/sequel/connection_pool/sharded_threaded.rb
Classes and Modules
Constants
The minor version of Sequel
. Bumped for every non-patch level release, generally around once a month.
Constants
:sharded_threaded => :ShardedThreadedConnectionPool, :sharded_single => :ShardedSingleConnectionPool, :timed_queue => :TimedQueueConnectionPool, +:sharded_timed_queue => :ShardedTimedQueueConnectionPool, }Public Class methods
[show source]# File lib/sequel/connection_pool.rb -104 def initialize(db, opts=OPTS) # SEQUEL6: Remove second argument, always use db.opts -105 @db = db -106 @use_old_connect_api = false # SEQUEL6: Remove -107 @after_connect = opts[:after_connect] # SEQUEL6: Remove -108 @connect_sqls = opts[:connect_sqls] # SEQUEL6: Remove -109 @error_classes = db.send(:database_error_classes).dup.freeze -110 end+111 def initialize(db, opts=OPTS) # SEQUEL6: Remove second argument, always use db.opts +112 @db = db +113 @use_old_connect_api = false # SEQUEL6: Remove +114 @after_connect = opts[:after_connect] # SEQUEL6: Remove +115 @connect_sqls = opts[:connect_sqls] # SEQUEL6: Remove +116 @error_classes = db.send(:database_error_classes).dup.freeze +117 end
Public Instance methods
@@ -192,10 +193,10 @@Public Instance methods
[show source]# File lib/sequel/connection_pool.rb -85 def after_connect=(v) # SEQUEL6: Remove -86 @use_old_connect_api = true -87 @after_connect = v -88 end+92 def after_connect=(v) # SEQUEL6: Remove +93 @use_old_connect_api = true +94 @after_connect = v +95 end
Public Instance methods
[show source] -# File lib/sequel/connection_pool.rb -95 def connect_sqls=(v) # SEQUEL6: Remove -96 @use_old_connect_api = true -97 @connect_sqls = v -98 end+
# File lib/sequel/connection_pool.rb +102 def connect_sqls=(v) # SEQUEL6: Remove +103 @use_old_connect_api = true +104 @connect_sqls = v +105 end
Public Instance methods
[show source]# File lib/sequel/connection_pool.rb -113 def servers -114 [:default] -115 end+120 def servers +121 [:default] +122 end
Public Instance methods
Return a pool subclass instance based on the given options. If a :pool_class
option is provided is provided, use that pool class, otherwise use a new instance of an appropriate pool subclass based on the :single_threaded
and :servers
options.
Return a pool subclass instance based on the given options. If a :pool_class
option is provided is provided, use that pool class, otherwise use a new instance of an appropriate pool subclass based on the SEQUEL_DEFAULT_CONNECTION_POOL
environment variable if set, or the :single_threaded
and :servers
options, otherwise.
Public Instance methods
[show source]# File lib/sequel/connection_pool.rb -46 def get_pool(db, opts = OPTS) -47 connection_pool_class(opts).new(db, opts) -48 end+48 def get_pool(db, opts = OPTS) +49 connection_pool_class(opts).new(db, opts) +50 end
class
-The slowest and most advanced connection, dealing with both multi-threaded access and configurations with multiple shards/servers.
+The slowest and most advanced connection pool, dealing with both multi-threaded access and configurations with multiple shards/servers.
In addition, this pool subclass also handles scheduling in-use connections to be removed from the pool when they are returned to it.
@@ -269,7 +269,7 @@ Public Instance methods
Chooses the first available connection to the given server, or if none are available, creates a new connection. Passes the connection to the supplied block:
-pool.hold {|conn| conn.execute('DROP TABLE posts')}
+pool.hold(:server1) {|conn| conn.execute('DROP TABLE posts')}
Pool#hold is re-entrant, meaning it can be called recursively in the same thread without blocking.
@@ -317,9 +317,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool/sharded_threaded.rb
-172 def pool_type
-173 :sharded_threaded
-174 end
+173 def pool_type
+174 :sharded_threaded
+175 end
@@ -339,24 +339,25 @@ Public Instance methods
# File lib/sequel/connection_pool/sharded_threaded.rb
147 def remove_servers(servers)
-148 conns = nil
-149 sync do
-150 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default)
-151 servers.each do |server|
-152 if @servers.include?(server)
-153 conns = disconnect_server_connections(server)
-154 @waiters.delete(server)
-155 @available_connections.delete(server)
-156 @allocated.delete(server)
-157 @servers.delete(server)
-158 end
-159 end
-160 end
-161
-162 if conns
-163 disconnect_connections(conns)
-164 end
-165 end
+148 conns = []
+149 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default)
+150
+151 sync do
+152 servers.each do |server|
+153 if @servers.include?(server)
+154 conns.concat(disconnect_server_connections(server))
+155 @waiters.delete(server)
+156 @available_connections.delete(server)
+157 @allocated.delete(server)
+158 @servers.delete(server)
+159 end
+160 end
+161 end
+162
+163 nil
+164 ensure
+165 disconnect_connections(conns)
+166 end
@@ -375,9 +376,9 @@ Public Instance methods
[show source]
# File lib/sequel/connection_pool/sharded_threaded.rb
-168 def servers
-169 sync{@servers.keys}
-170 end
+169 def servers
+170 sync{@servers.keys}
+171 end
diff --git a/rdoc/classes/Sequel/ShardedTimedQueueConnectionPool.html b/rdoc/classes/Sequel/ShardedTimedQueueConnectionPool.html
new file mode 100644
index 0000000000..16f3f6d178
--- /dev/null
+++ b/rdoc/classes/Sequel/ShardedTimedQueueConnectionPool.html
@@ -0,0 +1,406 @@
+
+
+
+Sequel::ShardedTimedQueueConnectionPool
+
+
+
+
+
+
+
+
+class
+Sequel::ShardedTimedQueueConnectionPool
+
+
+
+Superclass:
+ConnectionPool
+
+
+
+
+
+A connection pool allowing multi-threaded access to a sharded pool of connections, using a timed queue (only available in Ruby 3.2+).
+
+
+
+
+
+
+Attributes
+
+
+
+
+max_size
+
+[R]
+
+The maximum number of connections this pool will create per shard.
+
+
+
+
+
+
+Public Class methods
+
+
+
+new(db, opts = OPTS)
+
+
+
+
+The following additional options are respected:
+:max_connections
+The maximum number of connections the connection pool will open (default 4)
+ :pool_timeout
+The amount of seconds to wait to acquire a connection before raising a PoolTimeout (default 5)
+ :servers
+A hash of servers to use. Keys should be symbols. If not present, will use a single :default server.
+ :servers_hash
+The base hash to use for the servers. By default, Sequel
uses Hash.new(:default). You can use a hash with a default proc that raises an error if you want to catch all cases where a nonexistent server is used.
+
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+24 def initialize(db, opts = OPTS)
+25 super
+26
+27 @max_size = Integer(opts[:max_connections] || 4)
+28 raise(Sequel::Error, ':max_connections must be positive') if @max_size < 1
+29 @mutex = Mutex.new
+30 @timeout = Float(opts[:pool_timeout] || 5)
+31
+32 @allocated = {}
+33 @sizes = {}
+34 @queues = {}
+35 @servers = opts.fetch(:servers_hash, Hash.new(:default))
+36
+37 add_servers([:default])
+38 add_servers(opts[:servers].keys) if opts[:servers]
+39 end
+
+
+Public Instance methods
+
+
+
+add_servers(servers)
+
+
+
+
+Adds new servers to the connection pool. Allows for dynamic expansion of the potential replicas/shards at runtime. servers
argument should be an array of symbols.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+43 def add_servers(servers)
+44 sync do
+45 servers.each do |server|
+46 next if @servers.has_key?(server)
+47
+48 @servers[server] = server
+49 @sizes[server] = 0
+50 @queues[server] = Queue.new
+51 (@allocated[server] = {}).compare_by_identity
+52 end
+53 end
+54 nil
+55 end
+
+
+
+
+
+all_connections()
+
+
+
+
+Yield all of the available connections, and the one currently allocated to this thread (if one is allocated). This will not yield connections currently allocated to other threads, as it is not safe to operate on them.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+60 def all_connections
+61 thread = Sequel.current
+62 sync{@queues.to_a}.each do |server, queue|
+63 if conn = owned_connection(thread, server)
+64 yield conn
+65 end
+66
+67 # Use a hash to record all connections already seen. As soon as we
+68 # come across a connection we've already seen, we stop the loop.
+69 conns = {}
+70 conns.compare_by_identity
+71 while true
+72 conn = nil
+73 begin
+74 break unless (conn = queue.pop(timeout: 0)) && !conns[conn]
+75 conns[conn] = true
+76 yield conn
+77 ensure
+78 queue.push(conn) if conn
+79 end
+80 end
+81 end
+82
+83 nil
+84 end
+
+
+
+
+
+disconnect(opts=OPTS)
+
+
+
+
+Removes all connections currently in the pool’s queue. This method has the effect of disconnecting from the database, assuming that no connections are currently being used.
+
+Once a connection is requested using hold
, the connection pool creates new connections to the database.
+
+If the :server option is provided, it should be a symbol or array of symbols, and then the method will only disconnect connectsion from those specified shards.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+ 95 def disconnect(opts=OPTS)
+ 96 (opts[:server] ? Array(opts[:server]) : sync{@servers.keys}).each do |server|
+ 97 raise Sequel::Error, "invalid server" unless queue = sync{@queues[server]}
+ 98 while conn = queue.pop(timeout: 0)
+ 99 disconnect_pool_connection(conn, server)
+100 end
+101 fill_queue(server)
+102 end
+103 nil
+104 end
+
+
+
+
+
+hold(server=:default)
+
+
+
+
+Chooses the first available connection for the given server, or if none are available, creates a new connection. Passes the connection to the supplied block:
+
+pool.hold(:server1) {|conn| conn.execute('DROP TABLE posts')}
+
+
+Pool#hold is re-entrant, meaning it can be called recursively in the same thread without blocking.
+
+If no connection is immediately available and the pool is already using the maximum number of connections, Pool#hold will block until a connection is available or the timeout expires. If the timeout expires before a connection can be acquired, a Sequel::PoolTimeout is raised.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+119 def hold(server=:default)
+120 server = pick_server(server)
+121 t = Sequel.current
+122 if conn = owned_connection(t, server)
+123 return yield(conn)
+124 end
+125
+126 begin
+127 conn = acquire(t, server)
+128 yield conn
+129 rescue Sequel::DatabaseDisconnectError, *@error_classes => e
+130 if disconnect_error?(e)
+131 oconn = conn
+132 conn = nil
+133 disconnect_pool_connection(oconn, server) if oconn
+134 sync{@allocated[server].delete(t)}
+135 fill_queue(server)
+136 end
+137 raise
+138 ensure
+139 release(t, conn, server) if conn
+140 end
+141 end
+
+
+
+
+
+pool_type()
+
+
+
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+190 def pool_type
+191 :sharded_timed_queue
+192 end
+
+
+
+
+
+remove_servers(servers)
+
+
+
+
+Remove servers from the connection pool. Similar to disconnecting from all given servers, except that after it is used, future requests for the servers will use the :default server instead.
+
+Note that an error will be raised if there are any connections currently checked out for the given servers.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+154 def remove_servers(servers)
+155 conns = []
+156 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default)
+157
+158 sync do
+159 servers.each do |server|
+160 next unless @servers.has_key?(server)
+161
+162 queue = @queues[server]
+163
+164 while conn = queue.pop(timeout: 0)
+165 @sizes[server] -= 1
+166 conns << conn
+167 end
+168
+169 unless @sizes[server] == 0
+170 raise Sequel::Error, "cannot remove server #{server} as it has allocated connections"
+171 end
+172
+173 @servers.delete(server)
+174 @sizes.delete(server)
+175 @queues.delete(server)
+176 @allocated.delete(server)
+177 end
+178 end
+179
+180 nil
+181 ensure
+182 disconnect_connections(conns)
+183 end
+
+
+
+
+
+servers()
+
+
+
+
+Return an array of symbols for servers in the connection pool.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+186 def servers
+187 sync{@servers.keys}
+188 end
+
+
+
+
+
+size(server=:default)
+
+
+
+
+The total number of connections in the pool. Using a non-existant server will return nil.
+
+
+
+
+[show source]
+
+ # File lib/sequel/connection_pool/sharded_timed_queue.rb
+144 def size(server=:default)
+145 sync{@sizes[server]}
+146 end
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rdoc/classes/Sequel/TimedQueueConnectionPool.html b/rdoc/classes/Sequel/TimedQueueConnectionPool.html
index 0a9613e25a..0bc82778f4 100644
--- a/rdoc/classes/Sequel/TimedQueueConnectionPool.html
+++ b/rdoc/classes/Sequel/TimedQueueConnectionPool.html
@@ -205,7 +205,7 @@ Public Instance methods
# File lib/sequel/connection_pool/timed_queue.rb
82 def hold(server=nil)
83 t = Sequel.current
- 84 if conn = sync{@allocated[t]}
+ 84 if conn = owned_connection(t)
85 return yield(conn)
86 end
87
diff --git a/rdoc/created.rid b/rdoc/created.rid
index ef4f9d1c9c..9f8df79d3c 100644
--- a/rdoc/created.rid
+++ b/rdoc/created.rid
@@ -1,11 +1,11 @@
-Thu, 01 Jun 2023 07:41:50 -0700
+Sat, 01 Jul 2023 12:52:54 -0700
README.rdoc Wed, 03 May 2023 13:14:12 -0700
-CHANGELOG Thu, 01 Jun 2023 07:29:33 -0700
+CHANGELOG Fri, 30 Jun 2023 11:23:18 -0700
doc/CHANGELOG.old Tue, 04 Aug 2020 18:11:34 -0700
MIT-LICENSE Tue, 03 Jan 2023 11:20:51 -0800
lib/sequel.rb Tue, 01 Aug 2017 08:12:00 -0700
lib/sequel/ast_transformer.rb Fri, 02 Sep 2022 09:11:30 -0700
-lib/sequel/connection_pool.rb Thu, 03 Nov 2022 12:28:15 -0700
+lib/sequel/connection_pool.rb Tue, 13 Jun 2023 11:57:43 -0700
lib/sequel/core.rb Fri, 17 Dec 2021 16:59:47 -0800
lib/sequel/database.rb Tue, 01 Aug 2017 08:12:00 -0700
lib/sequel/dataset.rb Fri, 31 Mar 2023 14:57:15 -0700
@@ -14,12 +14,13 @@ lib/sequel/exceptions.rb Fri, 26 Jun 2020 14:43:12 -0700
lib/sequel/model.rb Tue, 04 Aug 2020 18:11:34 -0700
lib/sequel/sql.rb Fri, 02 Sep 2022 09:11:30 -0700
lib/sequel/timezones.rb Fri, 17 Dec 2021 16:59:47 -0800
-lib/sequel/version.rb Thu, 01 Jun 2023 07:29:33 -0700
+lib/sequel/version.rb Fri, 30 Jun 2023 11:23:18 -0700
lib/sequel/connection_pool/sharded_single.rb Fri, 17 Dec 2021 16:59:47 -0800
-lib/sequel/connection_pool/sharded_threaded.rb Tue, 01 Nov 2022 15:22:13 -0700
+lib/sequel/connection_pool/sharded_threaded.rb Mon, 12 Jun 2023 13:05:49 -0700
+lib/sequel/connection_pool/sharded_timed_queue.rb Mon, 12 Jun 2023 13:05:49 -0700
lib/sequel/connection_pool/single.rb Fri, 17 Dec 2021 16:59:47 -0800
-lib/sequel/connection_pool/threaded.rb Thu, 03 Nov 2022 12:28:15 -0700
-lib/sequel/connection_pool/timed_queue.rb Thu, 03 Nov 2022 12:28:15 -0700
+lib/sequel/connection_pool/threaded.rb Thu, 08 Jun 2023 16:14:04 -0700
+lib/sequel/connection_pool/timed_queue.rb Mon, 12 Jun 2023 13:05:49 -0700
lib/sequel/database/connecting.rb Wed, 03 May 2023 13:14:12 -0700
lib/sequel/database/dataset.rb Tue, 28 Mar 2023 14:16:05 -0700
lib/sequel/database/dataset_defaults.rb Tue, 01 Aug 2017 08:12:00 -0700
@@ -264,6 +265,7 @@ doc/release_notes/5.67.0.txt Sat, 01 Apr 2023 07:30:20 -0700
doc/release_notes/5.68.0.txt Mon, 01 May 2023 07:26:38 -0700
doc/release_notes/5.69.0.txt Thu, 01 Jun 2023 07:29:33 -0700
doc/release_notes/5.7.0.txt Sun, 01 Apr 2018 19:38:21 -0700
+doc/release_notes/5.70.0.txt Fri, 30 Jun 2023 11:23:18 -0700
doc/release_notes/5.8.0.txt Tue, 01 May 2018 11:42:13 -0700
doc/release_notes/5.9.0.txt Fri, 01 Jun 2018 07:49:41 -0700
lib/sequel/extensions/migration.rb Mon, 24 Oct 2022 11:55:52 -0700
diff --git a/rdoc/files/CHANGELOG.html b/rdoc/files/CHANGELOG.html
index e29893dc04..377eea82ae 100644
--- a/rdoc/files/CHANGELOG.html
+++ b/rdoc/files/CHANGELOG.html
@@ -31,12 +31,29 @@ CHANGELOG
Last Update:
-2023-06-01 07:29:33 -0700
+2023-06-30 11:23:18 -0700
+5.70.0 (2023-07-01)¶ ↑
+-
+
Make static_cache plugin better handle cases where forbid_lazy_load plugin is already loaded (jeremyevans)
+ -
+
Fix ShardedThreadedConnectionPool#remove_server to disconnect all connections if removing multiple servers (jeremyevans)
+ -
+
Support SEQUEL_DEFAULT_CONNECTION_POOL environment variable for choosing connection pool when :pool_class Database option is not set (jeremyevans)
+ -
+
Add sharded_timed_queue connection pool (jeremyevans)
+ -
+
Make connection_{validator,expiration} and async_thread_pool extensions work with timed_queue connection pool (jeremyevans)
+ -
+
Make connection_{validator,expiration} extensions raise error when used with single threaded pools (HoneyryderChuck, jeremyevans) (#2049)
+ -
+
Workaround possible resource starvation in threaded connection pool (ioquatix) (#2048)
+
+
5.69.0 (2023-06-01)¶ ↑
-
Avoid unsupported flag warning when using the mysql adapter with ruby-mysql 3+ (jeremyevans)
diff --git a/rdoc/files/doc/release_notes/5_70_0_txt.html b/rdoc/files/doc/release_notes/5_70_0_txt.html
new file mode 100644
index 0000000000..c124e5b52a
--- /dev/null
+++ b/rdoc/files/doc/release_notes/5_70_0_txt.html
@@ -0,0 +1,70 @@
+
+
+
+5.70.0.txt
+
+
+
+
+
+
+
+
+5.70.0.txt
+
+
+doc/release_notes/5.70.0.txt
+
+
+Last Update:
+2023-06-30 11:23:18 -0700
+
+
+
+
+
+New Features¶ ↑
+-
+
A sharded_timed_queue connection pool has been added. This offers most of the same features as the sharded_threaded connection pool, but uses the new Queue#pop :timeout features added in Ruby 3.2 to allow for a simpler and possibly faster and more robust implementation.
+ -
+
If a :pool_class option is not specified when creating a Database, Sequel
will now look at the SEQUEL_DEFAULT_CONNECTION_POOL environment variable to determine the connection pool class to use. This allows you to set SEQUEL_DEFAULT_CONNECTION_POOL=timed_queue on Ruby 3.2 to test with the timed_queue connection pool without making any code changes. If the :servers Database option is given, Sequel
will automatically use the sharded version of the connection pool specified by SEQUEL_DEFAULT_CONNECTION_POOL.
+
+
+Other Improvements¶ ↑
+-
+
The connection_validator, connection_expiration, and async_thread_pool extensions now work with the timed_queue and sharded_timed_queue connection pools.
+ -
+
The sharded_threaded connection pool now disconnects connections for all specified servers instead of just the last specified server when using remove_server.
+ -
+
The static_cache plugin now recognizes when the forbid_lazy_load plugin is already loaded, and does not return instances that forbid lazy load for methods that return a single object, such as Database.{[],cache_get_pk,first}.
+ -
+
Sequel
now displays an informative error message if attempting to load the connection_validator or connection_expiration extensions when using the single threaded connection pool.
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html b/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html
index 7f1c38a538..460b74497a 100644
--- a/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html
@@ -31,7 +31,7 @@ sharded_threaded.rb
Last Update:
-2022-11-01 15:22:13 -0700
+2023-06-12 13:05:49 -0700
diff --git a/rdoc/files/lib/sequel/connection_pool/sharded_timed_queue_rb.html b/rdoc/files/lib/sequel/connection_pool/sharded_timed_queue_rb.html
new file mode 100644
index 0000000000..17b9147cc4
--- /dev/null
+++ b/rdoc/files/lib/sequel/connection_pool/sharded_timed_queue_rb.html
@@ -0,0 +1,54 @@
+
+
+
+sharded_timed_queue.rb
+
+
+
+
+
+
+
+
+sharded_timed_queue.rb
+
+
+lib/sequel/connection_pool/sharded_timed_queue.rb
+
+
+Last Update:
+2023-06-12 13:05:49 -0700
+
+
+
+
+
+:nocov:
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/rdoc/files/lib/sequel/connection_pool/threaded_rb.html b/rdoc/files/lib/sequel/connection_pool/threaded_rb.html
index eb8d901c18..b5b4672c6e 100644
--- a/rdoc/files/lib/sequel/connection_pool/threaded_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool/threaded_rb.html
@@ -31,7 +31,7 @@ threaded.rb
Last Update:
-2022-11-03 12:28:15 -0700
+2023-06-08 16:14:04 -0700
diff --git a/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html b/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html
index 8f6993ce32..bf0ae9f4ac 100644
--- a/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool/timed_queue_rb.html
@@ -31,7 +31,7 @@ timed_queue.rb
Last Update:
-2022-11-03 12:28:15 -0700
+2023-06-12 13:05:49 -0700
diff --git a/rdoc/files/lib/sequel/connection_pool_rb.html b/rdoc/files/lib/sequel/connection_pool_rb.html
index fdaa7f28b9..df5300caf7 100644
--- a/rdoc/files/lib/sequel/connection_pool_rb.html
+++ b/rdoc/files/lib/sequel/connection_pool_rb.html
@@ -31,7 +31,7 @@ connection_pool.rb
Last Update:
-2022-11-03 12:28:15 -0700
+2023-06-13 11:57:43 -0700
diff --git a/rdoc/files/lib/sequel/version_rb.html b/rdoc/files/lib/sequel/version_rb.html
index 20ed5eed48..71d4dd9311 100644
--- a/rdoc/files/lib/sequel/version_rb.html
+++ b/rdoc/files/lib/sequel/version_rb.html
@@ -31,7 +31,7 @@ version.rb
Last Update:
-2023-06-01 07:29:33 -0700
+2023-06-30 11:23:18 -0700
diff --git a/rdoc/fr_class_index.html b/rdoc/fr_class_index.html
index b1b70adc05..2f0445243b 100644
--- a/rdoc/fr_class_index.html
+++ b/rdoc/fr_class_index.html
@@ -114,6 +114,7 @@
Sequel::SequelMethods
Sequel::ShardedSingleConnectionPool
Sequel::ShardedThreadedConnectionPool
+Sequel::ShardedTimedQueueConnectionPool
Sequel::SimpleMigration
Sequel::SingleConnectionPool
Sequel::ThreadedConnectionPool
diff --git a/rdoc/fr_file_index.html b/rdoc/fr_file_index.html
index daaee78dd0..8067c525d8 100644
--- a/rdoc/fr_file_index.html
+++ b/rdoc/fr_file_index.html
@@ -221,6 +221,7 @@
5.68.0.txt
5.69.0.txt
5.7.0.txt
+5.70.0.txt
5.8.0.txt
5.9.0.txt
schema_modification.rdoc
@@ -237,6 +238,7 @@
connection_pool.rb
sharded_single.rb
sharded_threaded.rb
+sharded_timed_queue.rb
single.rb
threaded.rb
timed_queue.rb
diff --git a/rdoc/fr_method_index.html b/rdoc/fr_method_index.html
index 2d95e1cc91..a80507b70b 100644
--- a/rdoc/fr_method_index.html
+++ b/rdoc/fr_method_index.html
@@ -78,9 +78,9 @@
#errors (Sequel::ValidationFailed)
#expr (Sequel::SQL::Cast)
#expression (Sequel::SQL::OrderedExpression)
+#expression (Sequel::SQL::AliasedExpression)
#expression (Sequel::SQL::Subscript)
#expression (Sequel::SQL::CaseExpression)
-#expression (Sequel::SQL::AliasedExpression)
#f (Sequel::SQL::Subscript)
#fast_instance_delete_sql (Sequel::Model::ClassMethods)
#fast_pk_lookup_sql (Sequel::Model::ClassMethods)
@@ -93,14 +93,15 @@
#log_warn_duration (Sequel::Database)
#loggers (Sequel::Database)
#master (Sequel::Model::Associations::EagerGraphLoader)
-#max_size (Sequel::TimedQueueConnectionPool)
#max_size (Sequel::ThreadedConnectionPool)
+#max_size (Sequel::TimedQueueConnectionPool)
+#max_size (Sequel::ShardedTimedQueueConnectionPool)
#migration (Sequel::MigrationDSL)
#migration_tuples (Sequel::TimestampMigrator)
#migrations (Sequel::IntegerMigrator)
#model (Sequel::Model::DatasetModule)
-#model (Sequel::HookFailed)
#model (Sequel::ValidationFailed)
+#model (Sequel::HookFailed)
#name (Sequel::SQL::Function)
#nulls (Sequel::SQL::OrderedExpression)
#on (Sequel::SQL::JoinOnClause)
@@ -131,8 +132,8 @@
#str (Sequel::SQL::PlaceholderLiteralString)
#strict_param_setting (Sequel::Model::ClassMethods)
#sub (Sequel::SQL::Subscript)
-#table (Sequel::SQL::QualifiedIdentifier)
#table (Sequel::Migrator)
+#table (Sequel::SQL::QualifiedIdentifier)
#table (Sequel::SQL::ColumnAll)
#table_expr (Sequel::SQL::JoinClause)
#target (Sequel::Migrator)
@@ -179,8 +180,8 @@
::extension (Sequel::Database)
::from_value_pairs (Sequel::SQL::BooleanExpression)
::inflections (Sequel)
-::inherited (Sequel::SQL::Expression)
::inherited (Sequel::Migration)
+::inherited (Sequel::SQL::Expression)
::inherited_instance_variables (Sequel::Plugins)
::invert (Sequel::SQL::BooleanExpression)
::irregular (Sequel::Inflections)
@@ -190,56 +191,57 @@
::loader (Sequel::Dataset::PlaceholderLiteralizer)
::migration (Sequel)
::migrator_class (Sequel::Migrator)
-::new (Sequel::SQL::Wrapper)
+::new (Sequel::Schema::AlterTableGenerator)
+::new (Sequel::SQL::ColumnAll)
::new (Sequel::SQL::Cast)
::new (Sequel::SQL::CaseExpression)
-::new (Sequel::SQL::JoinUsingClause)
::new (Sequel::SQL::OrderedExpression)
+::new (Sequel::SQL::PlaceholderLiteralString)
::new (Sequel::SQL::AliasedExpression)
::new (Sequel::Qualifier)
-::new (Sequel::SQL::PlaceholderLiteralString)
::new (Sequel::SQL::QualifiedIdentifier)
-::new (Sequel::SQL::ComplexExpression)
+::new (Sequel::SQL::Constant)
::new (Sequel::SQL::Subscript)
+::new (Sequel::SQL::VirtualRow)
::new (Sequel::NoMatchingRow)
::new (Sequel::Model::InstanceMethods)
::new (Sequel::Model::DatasetModule)
-::new (Sequel::Model::Associations::EagerGraphLoader)
::new (Sequel::Dataset)
-::new (Sequel::SQL::VirtualRow)
-::new (Sequel::Migrator)
+::new (Sequel::Model::Associations::EagerGraphLoader)
::new (Sequel::SQL::Window)
-::new (Sequel::SQL::ColumnAll)
-::new (Sequel::SQL::Constant)
+::new (Sequel::SQL::Wrapper)
+::new (Sequel::SQL::ComplexExpression)
+::new (Sequel::Migrator)
::new (Sequel::SQL::DelayedEvaluation)
::new (Sequel::Database)
-::new (Sequel::Schema::AlterTableGenerator)
+::new (Sequel::SQL::JoinUsingClause)
::new (Sequel::Schema::CreateTableGenerator)
+::new (Sequel::ShardedSingleConnectionPool)
::new (Sequel::MigrationReverser)
::new (Sequel::MigrationDSL)
-::new (Sequel::ShardedSingleConnectionPool)
+::new (Sequel::ShardedThreadedConnectionPool)
::new (Sequel::MigrationAlterTableReverser)
::new (Sequel::SQL::JoinOnClause)
-::new (Sequel::ShardedThreadedConnectionPool)
+::new (Sequel::ShardedTimedQueueConnectionPool)
::new (Sequel::SimpleMigration)
::new (Sequel::Migration)
::new (Sequel::IntegerMigrator)
-::new (Sequel::SQL::JoinClause)
+::new (Sequel::SQL::Function)
::new (Sequel::ConnectionPool)
::new (Sequel::HookFailed)
::new (Sequel::SingleConnectionPool)
::new (Sequel::ThreadedConnectionPool)
::new (Sequel::Dataset::PlaceholderLiteralizer::Argument)
::new (Sequel::Dataset::PlaceholderLiteralizer)
-::new (Sequel::SQL::Function)
+::new (Sequel::SQL::Identifier)
::new (Sequel::TimedQueueConnectionPool)
::new (Sequel::TimestampMigrator)
-::new (Sequel::SQL::Identifier)
+::new (Sequel::SQL::JoinClause)
::new (Sequel::ValidationFailed)
::parse (Sequel::SQLTime)
::plural (Sequel::Inflections)
-::register_extension (Sequel::Database)
::register_extension (Sequel::Dataset)
+::register_extension (Sequel::Database)
::run (Sequel::Migrator)
::run_after_initialize (Sequel::Database)
::set_shared_adapter_scheme (Sequel::Database)
@@ -249,29 +251,29 @@
::version (Sequel)
#!~ (Sequel::SQL::PatternMatchMethods)
#& (Sequel::SQL::BooleanExpression)
-#* (Sequel::SQL::QualifyingMethods)
#* (Sequel::SQL::Function)
+#* (Sequel::SQL::QualifyingMethods)
#** (Sequel::SQL::OperatorBuilders)
-#+ (Sequel::SQL::NumericExpression)
-#+ (Sequel::SQL::NumericMethods)
#+ (Sequel::SQL::StringConcatenationMethods)
+#+ (Sequel::SQL::NumericMethods)
+#+ (Sequel::SQL::NumericExpression)
#<< (Sequel::Database)
#<< (Sequel::Dataset)
-#== (Sequel::SQL::Expression)
#== (Sequel::Dataset)
+#== (Sequel::SQL::Expression)
#== (Sequel::Model::InstanceMethods)
#=== (Sequel::Model::InstanceMethods)
#=~ (Sequel::SQL::PatternMatchMethods)
#Bignum (Sequel::Schema::CreateTableGenerator)
#Fixnum (Sequel::Schema::CreateTableGenerator)
#Model (Sequel::Model::ClassMethods)
-#[] (Sequel::Model::InstanceMethods)
-#[] (Sequel::Dataset)
+#[] (Sequel::Database)
#[] (Sequel::SQL::Subscript)
+#[] (Sequel::Model::ClassMethods)
#[] (Sequel::Model::DatasetMethods)
-#[] (Sequel::Database)
+#[] (Sequel::Model::InstanceMethods)
+#[] (Sequel::Dataset)
#[] (Sequel::SQL::QualifyingMethods)
-#[] (Sequel::Model::ClassMethods)
#[]= (Sequel::Model::InstanceMethods)
#_add_method (Sequel::Model::Associations::AssociationReflection)
#_clone (Sequel::Dataset)
@@ -290,13 +292,14 @@
#add_foreign_key (Sequel::Schema::AlterTableGenerator)
#add_full_text_index (Sequel::Schema::AlterTableGenerator)
#add_graph_aliases (Sequel::Dataset)
-#add_index (Sequel::Schema::AlterTableGenerator)
#add_index (Sequel::Database)
+#add_index (Sequel::Schema::AlterTableGenerator)
#add_method (Sequel::Model::Associations::AssociationReflection)
#add_primary_key (Sequel::Schema::AlterTableGenerator)
#add_servers (Sequel::Database)
-#add_servers (Sequel::ShardedThreadedConnectionPool)
+#add_servers (Sequel::ShardedTimedQueueConnectionPool)
#add_servers (Sequel::ShardedSingleConnectionPool)
+#add_servers (Sequel::ShardedThreadedConnectionPool)
#add_spatial_index (Sequel::Schema::AlterTableGenerator)
#add_unique_constraint (Sequel::Schema::AlterTableGenerator)
#after_commit (Sequel::Database)
@@ -306,10 +309,11 @@
#all (Sequel::Dataset)
#all (Sequel::Dataset::PlaceholderLiteralizer)
#all_association_reflections (Sequel::Model::Associations::ClassMethods)
-#all_connections (Sequel::ShardedSingleConnectionPool)
-#all_connections (Sequel::SingleConnectionPool)
-#all_connections (Sequel::ShardedThreadedConnectionPool)
#all_connections (Sequel::TimedQueueConnectionPool)
+#all_connections (Sequel::ShardedThreadedConnectionPool)
+#all_connections (Sequel::SingleConnectionPool)
+#all_connections (Sequel::ShardedSingleConnectionPool)
+#all_connections (Sequel::ShardedTimedQueueConnectionPool)
#all_connections (Sequel::ThreadedConnectionPool)
#allocated (Sequel::ShardedThreadedConnectionPool)
#alter_table (Sequel::Database)
@@ -320,8 +324,8 @@
#apply_dataset_changes (Sequel::Model::Associations::AssociationReflection)
#apply_distinct_on_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_eager_dataset_changes (Sequel::Model::Associations::AssociationReflection)
-#apply_eager_graph_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_eager_graph_limit_strategy (Sequel::Model::Associations::OneToManyAssociationReflection)
+#apply_eager_graph_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_ruby_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#apply_window_function_eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
@@ -330,11 +334,11 @@
#as (Sequel::SQL::Builders)
#as (Sequel::SQL::AliasMethods)
#as_hash (Sequel::Model::DatasetMethods)
-#as_hash (Sequel::Dataset)
#as_hash (Sequel::Model::Associations::DatasetMethods)
-#asc (Sequel::SQL::Builders)
-#asc (Sequel::SQL::OrderMethods)
+#as_hash (Sequel::Dataset)
#asc (Sequel::SQL::OrderedExpression)
+#asc (Sequel::SQL::OrderMethods)
+#asc (Sequel::SQL::Builders)
#assign_singular? (Sequel::Model::Associations::SingularAssociationReflection)
#assign_singular? (Sequel::Model::Associations::AssociationReflection)
#associate (Sequel::Model::Associations::ClassMethods)
@@ -353,8 +357,8 @@
#association_method (Sequel::Model::Associations::AssociationReflection)
#association_reflection (Sequel::Model::Associations::AssociationDatasetMethods)
#association_reflection (Sequel::Model::Associations::ClassMethods)
-#associations (Sequel::Model::Associations::ClassMethods)
#associations (Sequel::Model::Associations::InstanceMethods)
+#associations (Sequel::Model::Associations::ClassMethods)
#autoincrementing_primary_key (Sequel::Model::InstanceMethods)
#available_connections (Sequel::ShardedThreadedConnectionPool)
#avg (Sequel::Dataset)
@@ -364,11 +368,11 @@
#boolean_constant_sql_append (Sequel::Dataset)
#cache_get (Sequel::Dataset)
#cache_set (Sequel::Dataset)
-#call (Sequel::Dataset::ArgumentMapper)
-#call (Sequel::Dataset::PreparedStatementMethods)
#call (Sequel::Model::ClassMethods)
-#call (Sequel::Database)
#call (Sequel::SQL::DelayedEvaluation)
+#call (Sequel::Database)
+#call (Sequel::Dataset::PreparedStatementMethods)
+#call (Sequel::Dataset::ArgumentMapper)
#call (Sequel::Dataset)
#can_have_associated_objects? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#can_have_associated_objects? (Sequel::Model::Associations::AssociationReflection)
@@ -379,8 +383,8 @@
#case_expression_sql_append (Sequel::Dataset)
#cast (Sequel::SQL::CastMethods)
#cast (Sequel::SQL::Builders)
-#cast_numeric (Sequel::SQL::Builders)
#cast_numeric (Sequel::SQL::CastMethods)
+#cast_numeric (Sequel::SQL::Builders)
#cast_sql_append (Sequel::Dataset)
#cast_string (Sequel::SQL::CastMethods)
#cast_string (Sequel::SQL::Builders)
@@ -405,8 +409,8 @@
#columns (Sequel::Model::ClassMethods)
#columns (Sequel::Dataset::PreparedStatementMethods)
#columns! (Sequel::Dataset)
-#complex_expression_sql_append (Sequel::Dataset)
#complex_expression_sql_append (Sequel::Model::Associations::DatasetMethods)
+#complex_expression_sql_append (Sequel::Dataset)
#compound_clone (Sequel::Dataset)
#compound_from_self (Sequel::Dataset)
#condition_specifier? (Sequel::SequelMethods)
@@ -441,8 +445,8 @@
#dataset_class= (Sequel::Database)
#dataset_method (Sequel::Model::Associations::AssociationReflection)
#dataset_module (Sequel::Model::ClassMethods)
-#dataset_need_primary_key? (Sequel::Model::Associations::AssociationReflection)
#dataset_need_primary_key? (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#dataset_need_primary_key? (Sequel::Model::Associations::AssociationReflection)
#db (Sequel::Model::ClassMethods)
#db= (Sequel::Model::ClassMethods)
#db_schema (Sequel::Model::ClassMethods)
@@ -459,27 +463,28 @@
#default_right_key (Sequel::Model::Associations::OneThroughOneAssociationReflection)
#default_timezone= (Sequel::SequelMethods)
#delay (Sequel::SQL::Builders)
-#delayed_evaluation_sql_append (Sequel::Dataset::PreparedStatementMethods)
#delayed_evaluation_sql_append (Sequel::Dataset)
+#delayed_evaluation_sql_append (Sequel::Dataset::PreparedStatementMethods)
#delete (Sequel::Model::InstanceMethods)
#delete (Sequel::Dataset)
#delete_row_number_column (Sequel::Model::Associations::AssociationReflection)
-#desc (Sequel::SQL::OrderedExpression)
#desc (Sequel::SQL::Builders)
#desc (Sequel::SQL::OrderMethods)
-#destroy (Sequel::Model::InstanceMethods)
+#desc (Sequel::SQL::OrderedExpression)
#destroy (Sequel::Model::DatasetMethods)
-#disconnect (Sequel::TimedQueueConnectionPool)
+#destroy (Sequel::Model::InstanceMethods)
+#disconnect (Sequel::Database)
+#disconnect (Sequel::SingleConnectionPool)
+#disconnect (Sequel::ShardedThreadedConnectionPool)
+#disconnect (Sequel::ShardedTimedQueueConnectionPool)
#disconnect (Sequel::ShardedSingleConnectionPool)
#disconnect (Sequel::ThreadedConnectionPool)
-#disconnect (Sequel::ShardedThreadedConnectionPool)
-#disconnect (Sequel::SingleConnectionPool)
-#disconnect (Sequel::Database)
+#disconnect (Sequel::TimedQueueConnectionPool)
#disconnect_connection (Sequel::Database)
#distinct (Sequel::SQL::Function)
#distinct (Sequel::Dataset)
-#down (Sequel::Migration)
#down (Sequel::MigrationDSL)
+#down (Sequel::Migration)
#drop_column (Sequel::Schema::AlterTableGenerator)
#drop_column (Sequel::Database)
#drop_constraint (Sequel::Schema::AlterTableGenerator)
@@ -492,33 +497,33 @@
#drop_view (Sequel::Database)
#dup (Sequel::SQL::Expression)
#dup (Sequel::Dataset)
-#each (Sequel::Model::InstanceMethods)
#each (Sequel::Dataset)
#each (Sequel::Dataset::PlaceholderLiteralizer)
+#each (Sequel::Model::InstanceMethods)
#each_server (Sequel::Dataset)
#eager (Sequel::Model::Associations::DatasetMethods)
#eager_graph (Sequel::Model::Associations::DatasetMethods)
#eager_graph_association (Sequel::Model::Associations::DatasetMethods)
#eager_graph_associations (Sequel::Model::Associations::DatasetMethods)
#eager_graph_build_associations (Sequel::Model::Associations::DatasetMethods)
-#eager_graph_lazy_dataset? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_graph_lazy_dataset? (Sequel::Model::Associations::AssociationReflection)
+#eager_graph_lazy_dataset? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_graph_limit_strategy (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_graph_limit_strategy (Sequel::Model::Associations::AssociationReflection)
#eager_graph_with_options (Sequel::Model::Associations::DatasetMethods)
#eager_limit_strategy (Sequel::Model::Associations::ManyToOneAssociationReflection)
#eager_limit_strategy (Sequel::Model::Associations::AssociationReflection)
-#eager_load_results (Sequel::Model::Associations::AssociationReflection)
#eager_load_results (Sequel::Model::Associations::ClassMethods)
+#eager_load_results (Sequel::Model::Associations::AssociationReflection)
#eager_loader_key (Sequel::Model::Associations::AssociationReflection)
-#eager_loading_use_associated_key? (Sequel::Model::Associations::AssociationReflection)
#eager_loading_use_associated_key? (Sequel::Model::Associations::ManyToManyAssociationReflection)
+#eager_loading_use_associated_key? (Sequel::Model::Associations::AssociationReflection)
#elapsed_seconds_since (Sequel::SequelMethods)
#empty? (Sequel::Model::Errors)
#empty? (Sequel::Dataset)
-#eql? (Sequel::SQL::Expression)
-#eql? (Sequel::Model::InstanceMethods)
#eql? (Sequel::Dataset)
+#eql? (Sequel::Model::InstanceMethods)
+#eql? (Sequel::SQL::Expression)
#errors (Sequel::Model::InstanceMethods)
#escape_like (Sequel::Dataset)
#except (Sequel::Dataset)
@@ -533,10 +538,10 @@
#expression? (Sequel::SQL::CaseExpression)
#extend (Sequel::Model::InstanceMethods)
#extend_datasets (Sequel::Database)
-#extension (Sequel::SequelMethods)
-#extension (Sequel::Dataset::DeprecatedSingletonClassMethods)
#extension (Sequel::Dataset)
#extension (Sequel::Database)
+#extension (Sequel::Dataset::DeprecatedSingletonClassMethods)
+#extension (Sequel::SequelMethods)
#extract (Sequel::SQL::ComplexExpressionMethods)
#extract (Sequel::SQL::Builders)
#fetch (Sequel::Database)
@@ -549,28 +554,28 @@
#finalize (Sequel::Model::Associations::AssociationReflection)
#finalize_associations (Sequel::Model::Associations::ClassMethods)
#finalize_settings (Sequel::Model::Associations::AssociationReflection)
-#finalize_settings (Sequel::Model::Associations::ManyToManyAssociationReflection)
#finalize_settings (Sequel::Model::Associations::OneToManyAssociationReflection)
#finalize_settings (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#finalize_settings (Sequel::Model::Associations::ManyToManyAssociationReflection)
#find (Sequel::Model::ClassMethods)
#find_or_create (Sequel::Model::ClassMethods)
-#first (Sequel::Dataset)
#first (Sequel::Dataset::PlaceholderLiteralizer)
+#first (Sequel::Dataset)
#first! (Sequel::Dataset)
#first_source (Sequel::Dataset)
#first_source_alias (Sequel::Dataset)
#first_source_table (Sequel::Dataset)
#for_update (Sequel::Dataset)
#foreign_key (Sequel::Schema::CreateTableGenerator)
-#freeze (Sequel::ShardedSingleConnectionPool)
-#freeze (Sequel::ShardedThreadedConnectionPool)
-#freeze (Sequel::Database)
#freeze (Sequel::Model::InstanceMethods)
+#freeze (Sequel::Model::ClassMethods)
+#freeze (Sequel::Database)
+#freeze (Sequel::ShardedSingleConnectionPool)
+#freeze (Sequel::Model::Associations::ClassMethods)
#freeze (Sequel::Dataset::PlaceholderLiteralizer)
+#freeze (Sequel::ShardedThreadedConnectionPool)
#freeze (Sequel::Model::Associations::InstanceMethods)
#freeze (Sequel::Dataset)
-#freeze (Sequel::Model::Associations::ClassMethods)
-#freeze (Sequel::Model::ClassMethods)
#from (Sequel::Dataset)
#from (Sequel::Database)
#from_application_timestamp (Sequel::Database)
@@ -578,12 +583,12 @@
#full_messages (Sequel::Model::Errors)
#full_text_index (Sequel::Schema::CreateTableGenerator)
#function (Sequel::SQL::Builders)
-#function (Sequel::SQL::QualifiedIdentifier)
#function (Sequel::SQL::Identifier)
+#function (Sequel::SQL::QualifiedIdentifier)
#function_sql_append (Sequel::Dataset)
+#get (Sequel::Dataset::PlaceholderLiteralizer)
#get (Sequel::Dataset)
#get (Sequel::Database)
-#get (Sequel::Dataset::PlaceholderLiteralizer)
#get_pool (Sequel::ConnectionPool::ClassMethods)
#global_index_namespace? (Sequel::Database)
#graph (Sequel::Dataset)
@@ -600,14 +605,15 @@
#has_column? (Sequel::Schema::CreateTableGenerator)
#has_dataset? (Sequel::Model::ClassMethods)
#hash (Sequel::SQL::Expression)
-#hash (Sequel::Dataset)
#hash (Sequel::Model::InstanceMethods)
+#hash (Sequel::Dataset)
#having (Sequel::Dataset)
-#hold (Sequel::SingleConnectionPool)
#hold (Sequel::ThreadedConnectionPool)
-#hold (Sequel::ShardedThreadedConnectionPool)
-#hold (Sequel::ShardedSingleConnectionPool)
#hold (Sequel::TimedQueueConnectionPool)
+#hold (Sequel::ShardedSingleConnectionPool)
+#hold (Sequel::SingleConnectionPool)
+#hold (Sequel::ShardedThreadedConnectionPool)
+#hold (Sequel::ShardedTimedQueueConnectionPool)
#id (Sequel::Model::InstanceMethods)
#identifier (Sequel::SQL::Builders)
#ilike (Sequel::SQL::Builders)
@@ -620,16 +626,16 @@
#initialize_association_cache (Sequel::Model::Associations::AssociationReflection)
#insert (Sequel::Dataset)
#insert_sql (Sequel::Dataset)
-#inspect (Sequel::LiteralString)
#inspect (Sequel::SQL::ValueList)
-#inspect (Sequel::SQLTime)
-#inspect (Sequel::Model::InstanceMethods)
+#inspect (Sequel::LiteralString)
#inspect (Sequel::SQL::Expression)
+#inspect (Sequel::Model::InstanceMethods)
+#inspect (Sequel::Model::Associations::AssociationReflection)
+#inspect (Sequel::Database)
#inspect (Sequel::SQL::Blob)
#inspect (Sequel::Dataset)
+#inspect (Sequel::SQLTime)
#inspect (Sequel::Dataset::PreparedStatementMethods)
-#inspect (Sequel::Database)
-#inspect (Sequel::Model::Associations::AssociationReflection)
#intersect (Sequel::Dataset)
#invert (Sequel::Dataset)
#invert (Sequel::SQL::OrderedExpression)
@@ -646,18 +652,18 @@
#joined_dataset? (Sequel::Dataset)
#json_parser_error_class (Sequel::SequelMethods)
#keys (Sequel::Model::InstanceMethods)
-#last (Sequel::Model::DatasetMethods)
#last (Sequel::Dataset)
-#lateral (Sequel::Dataset)
+#last (Sequel::Model::DatasetMethods)
#lateral (Sequel::SQL::Function)
-#like (Sequel::SQL::StringMethods)
+#lateral (Sequel::Dataset)
#like (Sequel::SQL::Builders)
+#like (Sequel::SQL::StringMethods)
#limit (Sequel::Dataset)
#limit_and_offset (Sequel::Model::Associations::SingularAssociationReflection)
#limit_and_offset (Sequel::Model::Associations::AssociationReflection)
#lit (Sequel::SQL::Blob)
-#lit (Sequel::SQL::Builders)
#lit (Sequel::LiteralString)
+#lit (Sequel::SQL::Builders)
#literal (Sequel::Database)
#literal_append (Sequel::Dataset)
#literal_symbol (Sequel::Database)
@@ -687,8 +693,8 @@
#merge_sql (Sequel::Dataset)
#merge_update (Sequel::Dataset)
#merge_using (Sequel::Dataset)
-#method_missing (Sequel::Schema::CreateTableGenerator)
#method_missing (Sequel::SQL::VirtualRow)
+#method_missing (Sequel::Schema::CreateTableGenerator)
#method_missing (Sequel::Migration)
#min (Sequel::Dataset)
#model (Sequel::Model::DatasetMethods)
@@ -714,10 +720,10 @@
#one_to_many (Sequel::Model::Associations::ClassMethods)
#one_to_one (Sequel::Model::Associations::ClassMethods)
#options_overlap (Sequel::Dataset)
-#or (Sequel::SQL::Builders)
#or (Sequel::Dataset)
-#order (Sequel::SQL::Function)
+#or (Sequel::SQL::Builders)
#order (Sequel::Dataset)
+#order (Sequel::SQL::Function)
#order_append (Sequel::Dataset)
#order_by (Sequel::Dataset)
#order_more (Sequel::Dataset)
@@ -726,8 +732,8 @@
#orig_dataset (Sequel::Dataset::PreparedStatementMethods)
#orig_require (Sequel::SequelMethods)
#over (Sequel::SQL::Function)
-#paged_each (Sequel::Dataset)
#paged_each (Sequel::Model::DatasetMethods)
+#paged_each (Sequel::Dataset)
#parse_json (Sequel::SequelMethods)
#pk (Sequel::Model::InstanceMethods)
#pk_equal? (Sequel::Model::InstanceMethods)
@@ -738,27 +744,28 @@
#placeholder_loader (Sequel::Model::Associations::AssociationReflection)
#plugin (Sequel::Model::ClassMethods)
#pool_type (Sequel::TimedQueueConnectionPool)
+#pool_type (Sequel::SingleConnectionPool)
#pool_type (Sequel::ShardedThreadedConnectionPool)
+#pool_type (Sequel::ShardedTimedQueueConnectionPool)
#pool_type (Sequel::ThreadedConnectionPool)
-#pool_type (Sequel::SingleConnectionPool)
#pool_type (Sequel::ShardedSingleConnectionPool)
#predicate_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
-#predicate_key (Sequel::Model::Associations::OneToManyAssociationReflection)
#predicate_key (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#predicate_key (Sequel::Model::Associations::OneToManyAssociationReflection)
#predicate_key_values (Sequel::Model::Associations::AssociationReflection)
#predicate_keys (Sequel::Model::Associations::AssociationReflection)
#prepare (Sequel::Dataset::PreparedStatementMethods)
#prepare (Sequel::Dataset)
#prepared_args (Sequel::Dataset::PreparedStatementMethods)
#prepared_modify_values (Sequel::Dataset::PreparedStatementMethods)
-#prepared_sql (Sequel::Dataset::ArgumentMapper)
#prepared_sql (Sequel::Dataset::PreparedStatementMethods)
+#prepared_sql (Sequel::Dataset::ArgumentMapper)
#prepared_statement (Sequel::Database)
#prepared_statement_name (Sequel::Dataset::ArgumentMapper)
#prepared_type (Sequel::Dataset::PreparedStatementMethods)
-#primary_key (Sequel::Schema::CreateTableGenerator)
-#primary_key (Sequel::Model::Associations::ManyToOneAssociationReflection)
#primary_key (Sequel::Model::Associations::OneToManyAssociationReflection)
+#primary_key (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#primary_key (Sequel::Schema::CreateTableGenerator)
#primary_key_hash (Sequel::Model::ClassMethods)
#primary_key_method (Sequel::Model::Associations::ManyToOneAssociationReflection)
#primary_key_methods (Sequel::Model::Associations::ManyToOneAssociationReflection)
@@ -774,9 +781,9 @@
#qualified_primary_key_hash (Sequel::Model::ClassMethods)
#qualified_right_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
#qualified_right_primary_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
-#qualify (Sequel::Model::Associations::AssociationReflection)
-#qualify (Sequel::SQL::QualifyingMethods)
#qualify (Sequel::Dataset)
+#qualify (Sequel::SQL::QualifyingMethods)
+#qualify (Sequel::Model::Associations::AssociationReflection)
#qualify (Sequel::SQL::Builders)
#qualify_assoc (Sequel::Model::Associations::AssociationReflection)
#qualify_cur (Sequel::Model::Associations::AssociationReflection)
@@ -788,8 +795,8 @@
#quoted_identifier_append (Sequel::Dataset)
#reciprocal (Sequel::Model::Associations::AssociationReflection)
#reciprocal (Sequel::Model::Associations::OneThroughOneAssociationReflection)
-#reciprocal_array? (Sequel::Model::Associations::OneToManyAssociationReflection)
#reciprocal_array? (Sequel::Model::Associations::AssociationReflection)
+#reciprocal_array? (Sequel::Model::Associations::OneToManyAssociationReflection)
#reciprocal_array? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#recursive_cte_requires_column_aliases? (Sequel::Dataset)
#recursive_map (Sequel::SequelMethods)
@@ -799,9 +806,10 @@
#remove_before_destroy? (Sequel::Model::Associations::OneToManyAssociationReflection)
#remove_before_destroy? (Sequel::Model::Associations::AssociationReflection)
#remove_method (Sequel::Model::Associations::AssociationReflection)
-#remove_servers (Sequel::ShardedThreadedConnectionPool)
-#remove_servers (Sequel::Database)
#remove_servers (Sequel::ShardedSingleConnectionPool)
+#remove_servers (Sequel::Database)
+#remove_servers (Sequel::ShardedTimedQueueConnectionPool)
+#remove_servers (Sequel::ShardedThreadedConnectionPool)
#remove_should_check_existing? (Sequel::Model::Associations::OneToManyAssociationReflection)
#remove_should_check_existing? (Sequel::Model::Associations::AssociationReflection)
#rename_column (Sequel::Schema::AlterTableGenerator)
@@ -815,12 +823,12 @@
#restrict_primary_key (Sequel::Model::ClassMethods)
#restrict_primary_key? (Sequel::Model::ClassMethods)
#returning (Sequel::Dataset)
-#returns_array? (Sequel::Model::Associations::SingularAssociationReflection)
-#returns_array? (Sequel::Model::Associations::ManyToOneAssociationReflection)
#returns_array? (Sequel::Model::Associations::AssociationReflection)
-#reverse (Sequel::Dataset)
-#reverse (Sequel::MigrationReverser)
+#returns_array? (Sequel::Model::Associations::ManyToOneAssociationReflection)
+#returns_array? (Sequel::Model::Associations::SingularAssociationReflection)
#reverse (Sequel::MigrationAlterTableReverser)
+#reverse (Sequel::MigrationReverser)
+#reverse (Sequel::Dataset)
#reverse_order (Sequel::Dataset)
#right_primary_key (Sequel::Model::Associations::ManyToManyAssociationReflection)
#right_primary_key_method (Sequel::Model::Associations::ManyToManyAssociationReflection)
@@ -830,20 +838,20 @@
#rollback_on_exit (Sequel::Database)
#row_number_column (Sequel::Dataset)
#row_proc (Sequel::Dataset)
-#run (Sequel::Dataset::PreparedStatementMethods)
-#run (Sequel::Database)
-#run (Sequel::Dataset::EmulatePreparedStatementMethods)
#run (Sequel::IntegerMigrator)
+#run (Sequel::Dataset::EmulatePreparedStatementMethods)
+#run (Sequel::Database)
#run (Sequel::TimestampMigrator)
+#run (Sequel::Dataset::PreparedStatementMethods)
#save (Sequel::Model::InstanceMethods)
#save_changes (Sequel::Model::InstanceMethods)
#schema (Sequel::Database)
#schema_and_table (Sequel::Dataset)
#schema_type_class (Sequel::Database)
-#select (Sequel::Model::Associations::AssociationReflection)
-#select (Sequel::Dataset)
#select (Sequel::Database)
#select (Sequel::Model::Associations::ManyToManyAssociationReflection)
+#select (Sequel::Model::Associations::AssociationReflection)
+#select (Sequel::Dataset)
#select_all (Sequel::Dataset)
#select_append (Sequel::Dataset)
#select_group (Sequel::Dataset)
@@ -856,8 +864,9 @@
#serial_primary_key_options (Sequel::Database)
#server (Sequel::Dataset)
#server? (Sequel::Dataset)
-#servers (Sequel::ShardedThreadedConnectionPool)
#servers (Sequel::Database)
+#servers (Sequel::ShardedTimedQueueConnectionPool)
+#servers (Sequel::ShardedThreadedConnectionPool)
#servers (Sequel::ShardedSingleConnectionPool)
#servers (Sequel::ConnectionPool)
#set (Sequel::Model::InstanceMethods)
@@ -873,8 +882,8 @@
#set_prepared_statement (Sequel::Database)
#set_primary_key (Sequel::Model::ClassMethods)
#set_reciprocal_to_self? (Sequel::Model::Associations::ManyToOneAssociationReflection)
-#set_reciprocal_to_self? (Sequel::Model::Associations::OneToManyAssociationReflection)
#set_reciprocal_to_self? (Sequel::Model::Associations::AssociationReflection)
+#set_reciprocal_to_self? (Sequel::Model::Associations::OneToManyAssociationReflection)
#set_server (Sequel::Model::InstanceMethods)
#setter_method (Sequel::Model::Associations::AssociationReflection)
#setter_methods (Sequel::Model::ClassMethods)
@@ -887,11 +896,12 @@
#single_value! (Sequel::Dataset)
#single_value_ds (Sequel::Dataset)
#singleton_method_added (Sequel::Model::InstanceMethods)
-#size (Sequel::ShardedSingleConnectionPool)
#size (Sequel::ThreadedConnectionPool)
#size (Sequel::TimedQueueConnectionPool)
+#size (Sequel::ShardedTimedQueueConnectionPool)
#size (Sequel::SingleConnectionPool)
#size (Sequel::ShardedThreadedConnectionPool)
+#size (Sequel::ShardedSingleConnectionPool)
#skip_limit_check (Sequel::Dataset)
#skip_locked (Sequel::Dataset)
#skip_validation_on_next_save! (Sequel::Model::InstanceMethods)
@@ -904,16 +914,16 @@
#split_symbols? (Sequel::SequelMethods)
#sql (Sequel::Dataset)
#sql (Sequel::Dataset::PlaceholderLiteralizer)
-#sql_boolean (Sequel::SQL::ComplexExpressionMethods)
#sql_boolean (Sequel::SQL::ComplexExpression)
#sql_boolean (Sequel::SQL::BooleanExpression)
+#sql_boolean (Sequel::SQL::ComplexExpressionMethods)
#sql_literal_append (Sequel::Dataset::PlaceholderLiteralizer::Argument)
-#sql_number (Sequel::SQL::ComplexExpression)
-#sql_number (Sequel::SQL::ComplexExpressionMethods)
#sql_number (Sequel::SQL::NumericExpression)
-#sql_string (Sequel::SQL::ComplexExpressionMethods)
-#sql_string (Sequel::SQL::ComplexExpression)
+#sql_number (Sequel::SQL::ComplexExpressionMethods)
+#sql_number (Sequel::SQL::ComplexExpression)
#sql_string (Sequel::SQL::StringExpression)
+#sql_string (Sequel::SQL::ComplexExpression)
+#sql_string (Sequel::SQL::ComplexExpressionMethods)
#sql_subscript (Sequel::SQL::SubscriptMethods)
#start_timer (Sequel::SequelMethods)
#string_to_date (Sequel::SequelMethods)
@@ -991,11 +1001,11 @@
#to_hash_groups (Sequel::Dataset)
#to_prepared_statement (Sequel::Dataset)
#to_s (Sequel::SQLTime)
-#to_sequel_blob (Sequel::LiteralString)
#to_sequel_blob (Sequel::SQL::Blob)
-#transaction (Sequel::MigrationDSL)
+#to_sequel_blob (Sequel::LiteralString)
#transaction (Sequel::SequelMethods)
#transaction (Sequel::Database)
+#transaction (Sequel::MigrationDSL)
#transform (Sequel::Dataset::PlaceholderLiteralizer::Argument)
#transform (Sequel::ASTTransformer)
#trim (Sequel::SQL::Builders)
@@ -1017,8 +1027,8 @@
#unused_table_alias (Sequel::Dataset)
#up (Sequel::Migration)
#up (Sequel::MigrationDSL)
-#update (Sequel::Model::InstanceMethods)
#update (Sequel::Dataset)
+#update (Sequel::Model::InstanceMethods)
#update_fields (Sequel::Model::InstanceMethods)
#update_sql (Sequel::Dataset)
#uri (Sequel::Database)
@@ -1037,13 +1047,13 @@
#window_sql_append (Sequel::Dataset)
#with (Sequel::Dataset)
#with_dataset (Sequel::Dataset::PlaceholderLiteralizer)
-#with_extend (Sequel::Dataset::DeprecatedSingletonClassMethods)
#with_extend (Sequel::Dataset)
+#with_extend (Sequel::Dataset::DeprecatedSingletonClassMethods)
#with_merged_expression (Sequel::SQL::CaseExpression)
#with_ordinality (Sequel::SQL::Function)
#with_parens (Sequel::SQL::PlaceholderLiteralString)
-#with_pk (Sequel::Model::ClassMethods)
#with_pk (Sequel::Model::DatasetMethods)
+#with_pk (Sequel::Model::ClassMethods)
#with_pk! (Sequel::Model::DatasetMethods)
#with_pk! (Sequel::Model::ClassMethods)
#with_quote_identifiers (Sequel::Dataset)
@@ -1060,9 +1070,9 @@
#within_group (Sequel::SQL::Function)
#| (Sequel::SQL::Subscript)
#| (Sequel::SQL::BooleanExpression)
-#~ (Sequel::SQL::BitwiseMethods)
#~ (Sequel::SQL::OperatorBuilders)
#~ (Sequel::SQL::BooleanMethods)
+#~ (Sequel::SQL::BitwiseMethods)
The slowest and most advanced connection, dealing with both multi-threaded access and configurations with multiple shards/servers.
+The slowest and most advanced connection pool, dealing with both multi-threaded access and configurations with multiple shards/servers.
In addition, this pool subclass also handles scheduling in-use connections to be removed from the pool when they are returned to it.
Public Instance methods
Chooses the first available connection to the given server, or if none are available, creates a new connection. Passes the connection to the supplied block:
-pool.hold {|conn| conn.execute('DROP TABLE posts')} +pool.hold(:server1) {|conn| conn.execute('DROP TABLE posts')}Pool#hold is re-entrant, meaning it can be called recursively in the same thread without blocking.
@@ -317,9 +317,9 @@Public Instance methods
[show source]# File lib/sequel/connection_pool/sharded_threaded.rb -172 def pool_type -173 :sharded_threaded -174 end+173 def pool_type +174 :sharded_threaded +175 end
Public Instance methods
# File lib/sequel/connection_pool/sharded_threaded.rb 147 def remove_servers(servers) -148 conns = nil -149 sync do -150 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default) -151 servers.each do |server| -152 if @servers.include?(server) -153 conns = disconnect_server_connections(server) -154 @waiters.delete(server) -155 @available_connections.delete(server) -156 @allocated.delete(server) -157 @servers.delete(server) -158 end -159 end -160 end -161 -162 if conns -163 disconnect_connections(conns) -164 end -165 end+148 conns = [] +149 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default) +150 +151 sync do +152 servers.each do |server| +153 if @servers.include?(server) +154 conns.concat(disconnect_server_connections(server)) +155 @waiters.delete(server) +156 @available_connections.delete(server) +157 @allocated.delete(server) +158 @servers.delete(server) +159 end +160 end +161 end +162 +163 nil +164 ensure +165 disconnect_connections(conns) +166 end
Public Instance methods
[show source]# File lib/sequel/connection_pool/sharded_threaded.rb -168 def servers -169 sync{@servers.keys} -170 end+169 def servers +170 sync{@servers.keys} +171 end
class +Sequel::ShardedTimedQueueConnectionPool +
+ +A connection pool allowing multi-threaded access to a sharded pool of connections, using a timed queue (only available in Ruby 3.2+).
+Attributes
++max_size + | +[R] | +
+ The maximum number of connections this pool will create per shard. + |
+
Public Class methods
+The following additional options are respected:
+:max_connections |
+ The maximum number of connections the connection pool will open (default 4) + |
:pool_timeout |
+ The amount of seconds to wait to acquire a connection before raising a PoolTimeout (default 5) + |
:servers |
+ A hash of servers to use. Keys should be symbols. If not present, will use a single :default server. + |
:servers_hash |
+ The base hash to use for the servers. By default, |
# File lib/sequel/connection_pool/sharded_timed_queue.rb +24 def initialize(db, opts = OPTS) +25 super +26 +27 @max_size = Integer(opts[:max_connections] || 4) +28 raise(Sequel::Error, ':max_connections must be positive') if @max_size < 1 +29 @mutex = Mutex.new +30 @timeout = Float(opts[:pool_timeout] || 5) +31 +32 @allocated = {} +33 @sizes = {} +34 @queues = {} +35 @servers = opts.fetch(:servers_hash, Hash.new(:default)) +36 +37 add_servers([:default]) +38 add_servers(opts[:servers].keys) if opts[:servers] +39 end+
Public Instance methods
+Adds new servers to the connection pool. Allows for dynamic expansion of the potential replicas/shards at runtime. servers
argument should be an array of symbols.
# File lib/sequel/connection_pool/sharded_timed_queue.rb +43 def add_servers(servers) +44 sync do +45 servers.each do |server| +46 next if @servers.has_key?(server) +47 +48 @servers[server] = server +49 @sizes[server] = 0 +50 @queues[server] = Queue.new +51 (@allocated[server] = {}).compare_by_identity +52 end +53 end +54 nil +55 end+
Yield all of the available connections, and the one currently allocated to this thread (if one is allocated). This will not yield connections currently allocated to other threads, as it is not safe to operate on them.
+ +# File lib/sequel/connection_pool/sharded_timed_queue.rb +60 def all_connections +61 thread = Sequel.current +62 sync{@queues.to_a}.each do |server, queue| +63 if conn = owned_connection(thread, server) +64 yield conn +65 end +66 +67 # Use a hash to record all connections already seen. As soon as we +68 # come across a connection we've already seen, we stop the loop. +69 conns = {} +70 conns.compare_by_identity +71 while true +72 conn = nil +73 begin +74 break unless (conn = queue.pop(timeout: 0)) && !conns[conn] +75 conns[conn] = true +76 yield conn +77 ensure +78 queue.push(conn) if conn +79 end +80 end +81 end +82 +83 nil +84 end+
Removes all connections currently in the pool’s queue. This method has the effect of disconnecting from the database, assuming that no connections are currently being used.
+ +Once a connection is requested using hold
, the connection pool creates new connections to the database.
If the :server option is provided, it should be a symbol or array of symbols, and then the method will only disconnect connectsion from those specified shards.
+ +# File lib/sequel/connection_pool/sharded_timed_queue.rb + 95 def disconnect(opts=OPTS) + 96 (opts[:server] ? Array(opts[:server]) : sync{@servers.keys}).each do |server| + 97 raise Sequel::Error, "invalid server" unless queue = sync{@queues[server]} + 98 while conn = queue.pop(timeout: 0) + 99 disconnect_pool_connection(conn, server) +100 end +101 fill_queue(server) +102 end +103 nil +104 end+
Chooses the first available connection for the given server, or if none are available, creates a new connection. Passes the connection to the supplied block:
+ +pool.hold(:server1) {|conn| conn.execute('DROP TABLE posts')} ++ +
Pool#hold is re-entrant, meaning it can be called recursively in the same thread without blocking.
+ +If no connection is immediately available and the pool is already using the maximum number of connections, Pool#hold will block until a connection is available or the timeout expires. If the timeout expires before a connection can be acquired, a Sequel::PoolTimeout is raised.
+ +# File lib/sequel/connection_pool/sharded_timed_queue.rb +119 def hold(server=:default) +120 server = pick_server(server) +121 t = Sequel.current +122 if conn = owned_connection(t, server) +123 return yield(conn) +124 end +125 +126 begin +127 conn = acquire(t, server) +128 yield conn +129 rescue Sequel::DatabaseDisconnectError, *@error_classes => e +130 if disconnect_error?(e) +131 oconn = conn +132 conn = nil +133 disconnect_pool_connection(oconn, server) if oconn +134 sync{@allocated[server].delete(t)} +135 fill_queue(server) +136 end +137 raise +138 ensure +139 release(t, conn, server) if conn +140 end +141 end+
# File lib/sequel/connection_pool/sharded_timed_queue.rb +190 def pool_type +191 :sharded_timed_queue +192 end+
Remove servers from the connection pool. Similar to disconnecting from all given servers, except that after it is used, future requests for the servers will use the :default server instead.
+ +Note that an error will be raised if there are any connections currently checked out for the given servers.
+ +# File lib/sequel/connection_pool/sharded_timed_queue.rb +154 def remove_servers(servers) +155 conns = [] +156 raise(Sequel::Error, "cannot remove default server") if servers.include?(:default) +157 +158 sync do +159 servers.each do |server| +160 next unless @servers.has_key?(server) +161 +162 queue = @queues[server] +163 +164 while conn = queue.pop(timeout: 0) +165 @sizes[server] -= 1 +166 conns << conn +167 end +168 +169 unless @sizes[server] == 0 +170 raise Sequel::Error, "cannot remove server #{server} as it has allocated connections" +171 end +172 +173 @servers.delete(server) +174 @sizes.delete(server) +175 @queues.delete(server) +176 @allocated.delete(server) +177 end +178 end +179 +180 nil +181 ensure +182 disconnect_connections(conns) +183 end+
Return an array of symbols for servers in the connection pool.
+ +# File lib/sequel/connection_pool/sharded_timed_queue.rb +186 def servers +187 sync{@servers.keys} +188 end+
The total number of connections in the pool. Using a non-existant server will return nil.
+ +# File lib/sequel/connection_pool/sharded_timed_queue.rb +144 def size(server=:default) +145 sync{@sizes[server]} +146 end+
Public Instance methods
# File lib/sequel/connection_pool/timed_queue.rb 82 def hold(server=nil) 83 t = Sequel.current - 84 if conn = sync{@allocated[t]} + 84 if conn = owned_connection(t) 85 return yield(conn) 86 end 87 diff --git a/rdoc/created.rid b/rdoc/created.rid index ef4f9d1c9c..9f8df79d3c 100644 --- a/rdoc/created.rid +++ b/rdoc/created.rid @@ -1,11 +1,11 @@ -Thu, 01 Jun 2023 07:41:50 -0700 +Sat, 01 Jul 2023 12:52:54 -0700 README.rdoc Wed, 03 May 2023 13:14:12 -0700 -CHANGELOG Thu, 01 Jun 2023 07:29:33 -0700 +CHANGELOG Fri, 30 Jun 2023 11:23:18 -0700 doc/CHANGELOG.old Tue, 04 Aug 2020 18:11:34 -0700 MIT-LICENSE Tue, 03 Jan 2023 11:20:51 -0800 lib/sequel.rb Tue, 01 Aug 2017 08:12:00 -0700 lib/sequel/ast_transformer.rb Fri, 02 Sep 2022 09:11:30 -0700 -lib/sequel/connection_pool.rb Thu, 03 Nov 2022 12:28:15 -0700 +lib/sequel/connection_pool.rb Tue, 13 Jun 2023 11:57:43 -0700 lib/sequel/core.rb Fri, 17 Dec 2021 16:59:47 -0800 lib/sequel/database.rb Tue, 01 Aug 2017 08:12:00 -0700 lib/sequel/dataset.rb Fri, 31 Mar 2023 14:57:15 -0700 @@ -14,12 +14,13 @@ lib/sequel/exceptions.rb Fri, 26 Jun 2020 14:43:12 -0700 lib/sequel/model.rb Tue, 04 Aug 2020 18:11:34 -0700 lib/sequel/sql.rb Fri, 02 Sep 2022 09:11:30 -0700 lib/sequel/timezones.rb Fri, 17 Dec 2021 16:59:47 -0800 -lib/sequel/version.rb Thu, 01 Jun 2023 07:29:33 -0700 +lib/sequel/version.rb Fri, 30 Jun 2023 11:23:18 -0700 lib/sequel/connection_pool/sharded_single.rb Fri, 17 Dec 2021 16:59:47 -0800 -lib/sequel/connection_pool/sharded_threaded.rb Tue, 01 Nov 2022 15:22:13 -0700 +lib/sequel/connection_pool/sharded_threaded.rb Mon, 12 Jun 2023 13:05:49 -0700 +lib/sequel/connection_pool/sharded_timed_queue.rb Mon, 12 Jun 2023 13:05:49 -0700 lib/sequel/connection_pool/single.rb Fri, 17 Dec 2021 16:59:47 -0800 -lib/sequel/connection_pool/threaded.rb Thu, 03 Nov 2022 12:28:15 -0700 -lib/sequel/connection_pool/timed_queue.rb Thu, 03 Nov 2022 12:28:15 -0700 +lib/sequel/connection_pool/threaded.rb Thu, 08 Jun 2023 16:14:04 -0700 +lib/sequel/connection_pool/timed_queue.rb Mon, 12 Jun 2023 13:05:49 -0700 lib/sequel/database/connecting.rb Wed, 03 May 2023 13:14:12 -0700 lib/sequel/database/dataset.rb Tue, 28 Mar 2023 14:16:05 -0700 lib/sequel/database/dataset_defaults.rb Tue, 01 Aug 2017 08:12:00 -0700 @@ -264,6 +265,7 @@ doc/release_notes/5.67.0.txt Sat, 01 Apr 2023 07:30:20 -0700 doc/release_notes/5.68.0.txt Mon, 01 May 2023 07:26:38 -0700 doc/release_notes/5.69.0.txt Thu, 01 Jun 2023 07:29:33 -0700 doc/release_notes/5.7.0.txt Sun, 01 Apr 2018 19:38:21 -0700 +doc/release_notes/5.70.0.txt Fri, 30 Jun 2023 11:23:18 -0700 doc/release_notes/5.8.0.txt Tue, 01 May 2018 11:42:13 -0700 doc/release_notes/5.9.0.txt Fri, 01 Jun 2018 07:49:41 -0700 lib/sequel/extensions/migration.rb Mon, 24 Oct 2022 11:55:52 -0700 diff --git a/rdoc/files/CHANGELOG.html b/rdoc/files/CHANGELOG.html index e29893dc04..377eea82ae 100644 --- a/rdoc/files/CHANGELOG.html +++ b/rdoc/files/CHANGELOG.html @@ -31,12 +31,29 @@CHANGELOG
5.70.0 (2023-07-01)¶ ↑
+-
+
Make static_cache plugin better handle cases where forbid_lazy_load plugin is already loaded (jeremyevans)
+ -
+
Fix ShardedThreadedConnectionPool#remove_server to disconnect all connections if removing multiple servers (jeremyevans)
+ -
+
Support SEQUEL_DEFAULT_CONNECTION_POOL environment variable for choosing connection pool when :pool_class Database option is not set (jeremyevans)
+ -
+
Add sharded_timed_queue connection pool (jeremyevans)
+ -
+
Make connection_{validator,expiration} and async_thread_pool extensions work with timed_queue connection pool (jeremyevans)
+ -
+
Make connection_{validator,expiration} extensions raise error when used with single threaded pools (HoneyryderChuck, jeremyevans) (#2049)
+ -
+
Workaround possible resource starvation in threaded connection pool (ioquatix) (#2048)
+
5.69.0 (2023-06-01)¶ ↑
-
Avoid unsupported flag warning when using the mysql adapter with ruby-mysql 3+ (jeremyevans)
diff --git a/rdoc/files/doc/release_notes/5_70_0_txt.html b/rdoc/files/doc/release_notes/5_70_0_txt.html new file mode 100644 index 0000000000..c124e5b52a --- /dev/null +++ b/rdoc/files/doc/release_notes/5_70_0_txt.html @@ -0,0 +1,70 @@ + + + +5.70.0.txt + + + + + + +++ + + diff --git a/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html b/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html index 7f1c38a538..460b74497a 100644 --- a/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html +++ b/rdoc/files/lib/sequel/connection_pool/sharded_threaded_rb.html @@ -31,7 +31,7 @@++5.70.0.txt +
++doc/release_notes/5.70.0.txt +++Last Update: +2023-06-30 11:23:18 -0700 ++++ + +++++New Features¶ ↑
+-
+
A sharded_timed_queue connection pool has been added. This offers most of the same features as the sharded_threaded connection pool, but uses the new Queue#pop :timeout features added in Ruby 3.2 to allow for a simpler and possibly faster and more robust implementation.
+ -
+
If a :pool_class option is not specified when creating a Database,
+Sequel
will now look at the SEQUEL_DEFAULT_CONNECTION_POOL environment variable to determine the connection pool class to use. This allows you to set SEQUEL_DEFAULT_CONNECTION_POOL=timed_queue on Ruby 3.2 to test with the timed_queue connection pool without making any code changes. If the :servers Database option is given,Sequel
will automatically use the sharded version of the connection pool specified by SEQUEL_DEFAULT_CONNECTION_POOL.
Other Improvements¶ ↑
+-
+
The connection_validator, connection_expiration, and async_thread_pool extensions now work with the timed_queue and sharded_timed_queue connection pools.
+ -
+
The sharded_threaded connection pool now disconnects connections for all specified servers instead of just the last specified server when using remove_server.
+ -
+
The static_cache plugin now recognizes when the forbid_lazy_load plugin is already loaded, and does not return instances that forbid lazy load for methods that return a single object, such as Database.{[],cache_get_pk,first}.
+ -
+
+Sequel
now displays an informative error message if attempting to load the connection_validator or connection_expiration extensions when using the single threaded connection pool.
++ +sharded_threaded.rb
-
+
sharded_timed_queue.rb +
+:nocov:
+