sequel 5.39.0 → 5.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +308 -0
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +57 -25
  5. data/bin/sequel +11 -3
  6. data/doc/advanced_associations.rdoc +13 -13
  7. data/doc/association_basics.rdoc +89 -24
  8. data/doc/cheat_sheet.rdoc +11 -3
  9. data/doc/migration.rdoc +12 -6
  10. data/doc/model_hooks.rdoc +1 -1
  11. data/doc/object_model.rdoc +8 -8
  12. data/doc/opening_databases.rdoc +18 -11
  13. data/doc/postgresql.rdoc +16 -8
  14. data/doc/querying.rdoc +5 -3
  15. data/doc/release_notes/5.40.0.txt +40 -0
  16. data/doc/release_notes/5.41.0.txt +25 -0
  17. data/doc/release_notes/5.42.0.txt +136 -0
  18. data/doc/release_notes/5.43.0.txt +98 -0
  19. data/doc/release_notes/5.44.0.txt +32 -0
  20. data/doc/release_notes/5.45.0.txt +34 -0
  21. data/doc/release_notes/5.46.0.txt +87 -0
  22. data/doc/release_notes/5.47.0.txt +59 -0
  23. data/doc/release_notes/5.48.0.txt +14 -0
  24. data/doc/release_notes/5.49.0.txt +59 -0
  25. data/doc/release_notes/5.50.0.txt +78 -0
  26. data/doc/release_notes/5.51.0.txt +47 -0
  27. data/doc/release_notes/5.52.0.txt +87 -0
  28. data/doc/release_notes/5.53.0.txt +23 -0
  29. data/doc/release_notes/5.54.0.txt +27 -0
  30. data/doc/release_notes/5.55.0.txt +21 -0
  31. data/doc/release_notes/5.56.0.txt +51 -0
  32. data/doc/release_notes/5.57.0.txt +23 -0
  33. data/doc/release_notes/5.58.0.txt +31 -0
  34. data/doc/release_notes/5.59.0.txt +73 -0
  35. data/doc/release_notes/5.60.0.txt +22 -0
  36. data/doc/release_notes/5.61.0.txt +43 -0
  37. data/doc/release_notes/5.62.0.txt +132 -0
  38. data/doc/release_notes/5.63.0.txt +33 -0
  39. data/doc/schema_modification.rdoc +1 -1
  40. data/doc/security.rdoc +9 -9
  41. data/doc/sql.rdoc +27 -15
  42. data/doc/testing.rdoc +22 -11
  43. data/doc/transactions.rdoc +6 -6
  44. data/doc/virtual_rows.rdoc +2 -2
  45. data/lib/sequel/adapters/ado/access.rb +1 -1
  46. data/lib/sequel/adapters/ado.rb +17 -17
  47. data/lib/sequel/adapters/amalgalite.rb +3 -5
  48. data/lib/sequel/adapters/ibmdb.rb +2 -2
  49. data/lib/sequel/adapters/jdbc/derby.rb +8 -0
  50. data/lib/sequel/adapters/jdbc/h2.rb +60 -10
  51. data/lib/sequel/adapters/jdbc/hsqldb.rb +6 -0
  52. data/lib/sequel/adapters/jdbc/postgresql.rb +4 -4
  53. data/lib/sequel/adapters/jdbc.rb +16 -18
  54. data/lib/sequel/adapters/mysql.rb +80 -67
  55. data/lib/sequel/adapters/mysql2.rb +54 -49
  56. data/lib/sequel/adapters/odbc.rb +6 -2
  57. data/lib/sequel/adapters/oracle.rb +3 -3
  58. data/lib/sequel/adapters/postgres.rb +83 -40
  59. data/lib/sequel/adapters/shared/access.rb +11 -1
  60. data/lib/sequel/adapters/shared/db2.rb +30 -0
  61. data/lib/sequel/adapters/shared/mssql.rb +58 -7
  62. data/lib/sequel/adapters/shared/mysql.rb +40 -2
  63. data/lib/sequel/adapters/shared/oracle.rb +76 -0
  64. data/lib/sequel/adapters/shared/postgres.rb +418 -174
  65. data/lib/sequel/adapters/shared/sqlanywhere.rb +10 -0
  66. data/lib/sequel/adapters/shared/sqlite.rb +102 -11
  67. data/lib/sequel/adapters/sqlanywhere.rb +1 -1
  68. data/lib/sequel/adapters/sqlite.rb +60 -18
  69. data/lib/sequel/adapters/tinytds.rb +1 -1
  70. data/lib/sequel/adapters/utils/columns_limit_1.rb +22 -0
  71. data/lib/sequel/adapters/utils/mysql_mysql2.rb +1 -1
  72. data/lib/sequel/ast_transformer.rb +6 -0
  73. data/lib/sequel/connection_pool/sharded_single.rb +5 -7
  74. data/lib/sequel/connection_pool/sharded_threaded.rb +5 -1
  75. data/lib/sequel/connection_pool/single.rb +6 -8
  76. data/lib/sequel/connection_pool/threaded.rb +8 -8
  77. data/lib/sequel/connection_pool/timed_queue.rb +257 -0
  78. data/lib/sequel/connection_pool.rb +47 -30
  79. data/lib/sequel/core.rb +28 -18
  80. data/lib/sequel/database/connecting.rb +26 -2
  81. data/lib/sequel/database/misc.rb +69 -14
  82. data/lib/sequel/database/query.rb +38 -1
  83. data/lib/sequel/database/schema_generator.rb +45 -52
  84. data/lib/sequel/database/schema_methods.rb +17 -1
  85. data/lib/sequel/dataset/actions.rb +107 -13
  86. data/lib/sequel/dataset/features.rb +20 -0
  87. data/lib/sequel/dataset/misc.rb +1 -1
  88. data/lib/sequel/dataset/prepared_statements.rb +2 -0
  89. data/lib/sequel/dataset/query.rb +118 -16
  90. data/lib/sequel/dataset/sql.rb +177 -47
  91. data/lib/sequel/extensions/_model_pg_row.rb +0 -12
  92. data/lib/sequel/extensions/_pretty_table.rb +1 -1
  93. data/lib/sequel/extensions/any_not_empty.rb +1 -1
  94. data/lib/sequel/extensions/async_thread_pool.rb +438 -0
  95. data/lib/sequel/extensions/auto_literal_strings.rb +1 -1
  96. data/lib/sequel/extensions/blank.rb +8 -0
  97. data/lib/sequel/extensions/constraint_validations.rb +1 -1
  98. data/lib/sequel/extensions/core_refinements.rb +36 -11
  99. data/lib/sequel/extensions/date_arithmetic.rb +71 -31
  100. data/lib/sequel/extensions/date_parse_input_handler.rb +67 -0
  101. data/lib/sequel/extensions/datetime_parse_to_time.rb +5 -1
  102. data/lib/sequel/extensions/duplicate_columns_handler.rb +1 -1
  103. data/lib/sequel/extensions/eval_inspect.rb +2 -0
  104. data/lib/sequel/extensions/inflector.rb +9 -1
  105. data/lib/sequel/extensions/is_distinct_from.rb +141 -0
  106. data/lib/sequel/extensions/looser_typecasting.rb +3 -0
  107. data/lib/sequel/extensions/migration.rb +7 -2
  108. data/lib/sequel/extensions/named_timezones.rb +26 -6
  109. data/lib/sequel/extensions/pagination.rb +1 -1
  110. data/lib/sequel/extensions/pg_array.rb +23 -3
  111. data/lib/sequel/extensions/pg_array_ops.rb +2 -2
  112. data/lib/sequel/extensions/pg_auto_parameterize.rb +478 -0
  113. data/lib/sequel/extensions/pg_enum.rb +1 -1
  114. data/lib/sequel/extensions/pg_extended_date_support.rb +28 -25
  115. data/lib/sequel/extensions/pg_extended_integer_support.rb +116 -0
  116. data/lib/sequel/extensions/pg_hstore.rb +6 -1
  117. data/lib/sequel/extensions/pg_hstore_ops.rb +53 -3
  118. data/lib/sequel/extensions/pg_inet.rb +10 -11
  119. data/lib/sequel/extensions/pg_inet_ops.rb +1 -1
  120. data/lib/sequel/extensions/pg_interval.rb +45 -19
  121. data/lib/sequel/extensions/pg_json.rb +13 -15
  122. data/lib/sequel/extensions/pg_json_ops.rb +73 -2
  123. data/lib/sequel/extensions/pg_loose_count.rb +3 -1
  124. data/lib/sequel/extensions/pg_multirange.rb +367 -0
  125. data/lib/sequel/extensions/pg_range.rb +10 -23
  126. data/lib/sequel/extensions/pg_range_ops.rb +37 -9
  127. data/lib/sequel/extensions/pg_row.rb +19 -13
  128. data/lib/sequel/extensions/pg_row_ops.rb +1 -1
  129. data/lib/sequel/extensions/query.rb +2 -0
  130. data/lib/sequel/extensions/s.rb +2 -1
  131. data/lib/sequel/extensions/schema_dumper.rb +13 -2
  132. data/lib/sequel/extensions/server_block.rb +8 -12
  133. data/lib/sequel/extensions/sql_comments.rb +110 -3
  134. data/lib/sequel/extensions/sql_log_normalizer.rb +108 -0
  135. data/lib/sequel/extensions/sqlite_json_ops.rb +255 -0
  136. data/lib/sequel/extensions/string_agg.rb +1 -1
  137. data/lib/sequel/extensions/string_date_time.rb +19 -23
  138. data/lib/sequel/extensions/symbol_aref.rb +2 -0
  139. data/lib/sequel/model/associations.rb +325 -96
  140. data/lib/sequel/model/base.rb +51 -27
  141. data/lib/sequel/model/errors.rb +10 -1
  142. data/lib/sequel/model/inflections.rb +1 -1
  143. data/lib/sequel/model/plugins.rb +5 -0
  144. data/lib/sequel/plugins/association_proxies.rb +2 -0
  145. data/lib/sequel/plugins/async_thread_pool.rb +39 -0
  146. data/lib/sequel/plugins/auto_restrict_eager_graph.rb +62 -0
  147. data/lib/sequel/plugins/auto_validations.rb +87 -15
  148. data/lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb +68 -0
  149. data/lib/sequel/plugins/class_table_inheritance.rb +2 -2
  150. data/lib/sequel/plugins/column_encryption.rb +728 -0
  151. data/lib/sequel/plugins/composition.rb +10 -4
  152. data/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
  153. data/lib/sequel/plugins/constraint_validations.rb +2 -1
  154. data/lib/sequel/plugins/dataset_associations.rb +4 -1
  155. data/lib/sequel/plugins/dirty.rb +1 -1
  156. data/lib/sequel/plugins/enum.rb +124 -0
  157. data/lib/sequel/plugins/finder.rb +3 -1
  158. data/lib/sequel/plugins/insert_conflict.rb +4 -0
  159. data/lib/sequel/plugins/instance_specific_default.rb +1 -1
  160. data/lib/sequel/plugins/json_serializer.rb +39 -24
  161. data/lib/sequel/plugins/lazy_attributes.rb +3 -0
  162. data/lib/sequel/plugins/list.rb +3 -1
  163. data/lib/sequel/plugins/many_through_many.rb +108 -9
  164. data/lib/sequel/plugins/nested_attributes.rb +12 -7
  165. data/lib/sequel/plugins/pg_array_associations.rb +56 -38
  166. data/lib/sequel/plugins/pg_auto_constraint_validations.rb +3 -1
  167. data/lib/sequel/plugins/prepared_statements.rb +10 -1
  168. data/lib/sequel/plugins/primary_key_lookup_check_values.rb +154 -0
  169. data/lib/sequel/plugins/rcte_tree.rb +27 -19
  170. data/lib/sequel/plugins/require_valid_schema.rb +67 -0
  171. data/lib/sequel/plugins/serialization.rb +9 -3
  172. data/lib/sequel/plugins/serialization_modification_detection.rb +2 -1
  173. data/lib/sequel/plugins/single_table_inheritance.rb +8 -0
  174. data/lib/sequel/plugins/sql_comments.rb +189 -0
  175. data/lib/sequel/plugins/static_cache.rb +1 -1
  176. data/lib/sequel/plugins/subclasses.rb +28 -11
  177. data/lib/sequel/plugins/tactical_eager_loading.rb +23 -10
  178. data/lib/sequel/plugins/timestamps.rb +1 -1
  179. data/lib/sequel/plugins/unused_associations.rb +521 -0
  180. data/lib/sequel/plugins/update_or_create.rb +1 -1
  181. data/lib/sequel/plugins/validate_associated.rb +22 -12
  182. data/lib/sequel/plugins/validation_helpers.rb +38 -11
  183. data/lib/sequel/plugins/xml_serializer.rb +1 -1
  184. data/lib/sequel/sql.rb +1 -1
  185. data/lib/sequel/timezones.rb +12 -14
  186. data/lib/sequel/version.rb +1 -1
  187. metadata +97 -43
@@ -36,6 +36,7 @@ module Sequel
36
36
  # :message :: The message to use. Can be a string which is used directly, or a
37
37
  # proc which is called. If the validation method takes a argument before the array of attributes,
38
38
  # that argument is passed as an argument to the proc.
39
+ # :skip_invalid :: Do not try to validate columns that are already invalid.
39
40
  #
40
41
  # The default validation options for all models can be modified by
41
42
  # overridding the Model#default_validation_helpers_options private method.
@@ -65,16 +66,13 @@ module Sequel
65
66
  # integer: "is not a number"
66
67
  #
67
68
  # Note that if you want to support internationalization of Errors#full_messages,
68
- # you need to override the method. Here's an example:
69
+ # it is easiest to override Errors#full_message (note singular form and not plural form).
70
+ # Here's an example:
69
71
  #
70
72
  # class Sequel::Model::Errors
71
- # def full_messages
72
- # inject([]) do |m, kv|
73
- # att, errors = *kv
74
- # att.is_a?(Array) ? Array(att).map!{|v| I18n.t("attributes.#{v}")} : att = I18n.t("attributes.#{att}")
75
- # errors.each {|e| m << (e.is_a?(LiteralString) ? e : "#{Array(att).join(I18n.t('errors.joiner'))} #{e}")}
76
- # m
77
- # end
73
+ # private
74
+ # def full_message(attribute, error_msg)
75
+ # "#{Array(attribute).join(I18n.t('errors.joiner'))} #{error_msg}"
78
76
  # end
79
77
  # end
80
78
  module ValidationHelpers
@@ -85,8 +83,11 @@ module Sequel
85
83
  :integer=>{:message=>lambda{"is not a number"}},
86
84
  :length_range=>{:message=>lambda{|range| "is too short or too long"}},
87
85
  :max_length=>{:message=>lambda{|max| "is longer than #{max} characters"}, :nil_message=>lambda{"is not present"}},
86
+ :max_value=>{:message=>lambda{|max| "is greater than maximum allowed value"}},
88
87
  :min_length=>{:message=>lambda{|min| "is shorter than #{min} characters"}},
88
+ :min_value=>{:message=>lambda{|min| "is less than minimum allowed value"}},
89
89
  :not_null=>{:message=>lambda{"is not present"}},
90
+ :no_null_byte=>{:message=>lambda{"contains a null byte"}},
90
91
  :numeric=>{:message=>lambda{"is not a number"}},
91
92
  :operator=>{:message=>lambda{|operator, rhs| "is not #{operator} #{rhs}"}},
92
93
  :type=>{:message=>lambda{|klass| klass.is_a?(Array) ? "is not a valid #{klass.join(" or ").downcase}" : "is not a valid #{klass.to_s.downcase}"}},
@@ -142,15 +143,38 @@ module Sequel
142
143
  end
143
144
  end
144
145
 
146
+ # Check that the attribute values are not greater that the given maximum value.
147
+ # Does not perform validation if attribute value is nil.
148
+ # You should only call this if you have checked the attribute value has the expected type.
149
+ def validates_max_value(max, atts, opts=OPTS)
150
+ validatable_attributes_for_type(:max_value, atts, opts) do |a,v,m|
151
+ validation_error_message(m, max) if !v.nil? && v > max
152
+ end
153
+ end
154
+
145
155
  # Check that the attribute values are not shorter than the given min length.
146
156
  def validates_min_length(min, atts, opts=OPTS)
147
157
  validatable_attributes_for_type(:min_length, atts, opts){|a,v,m| validation_error_message(m, min) if v.nil? || v.length < min}
148
158
  end
149
159
 
160
+ # Check that the attribute values are not less that the given minimum value.
161
+ # Does not perform validation if attribute value is nil.
162
+ # You should only call this if you have checked the attribute value has the expected type.
163
+ def validates_min_value(min, atts, opts=OPTS)
164
+ validatable_attributes_for_type(:min_value, atts, opts) do |a,v,m|
165
+ validation_error_message(m, min) if !v.nil? && v < min
166
+ end
167
+ end
168
+
150
169
  # Check attribute value(s) are not NULL/nil.
151
170
  def validates_not_null(atts, opts=OPTS)
152
171
  validatable_attributes_for_type(:not_null, atts, opts){|a,v,m| validation_error_message(m) if v.nil?}
153
172
  end
173
+
174
+ # Check attribute value(s) does not contain a null ("\0", ASCII NUL) byte.
175
+ def validates_no_null_byte(atts, opts=OPTS)
176
+ validatable_attributes_for_type(:no_null_byte, atts, opts){|a,v,m| validation_error_message(m) if String === v && v.include?("\0")}
177
+ end
154
178
 
155
179
  # Check attribute value(s) string representation is a valid float.
156
180
  def validates_numeric(atts, opts=OPTS)
@@ -262,7 +286,7 @@ module Sequel
262
286
  next if vals.any?(&:nil?)
263
287
  ds.where(arr.zip(vals))
264
288
  end
265
- ds = yield(ds) if block_given?
289
+ ds = yield(ds) if defined?(yield)
266
290
  unless new?
267
291
  h = ds.joined_dataset? ? qualified_pk_hash : pk_hash
268
292
  ds = ds.exclude(h)
@@ -281,14 +305,17 @@ module Sequel
281
305
  DEFAULT_OPTIONS[type]
282
306
  end
283
307
 
284
- # Skip validating any attribute that matches one of the allow_* options.
308
+ # Skip validating any attribute that matches one of the allow_* options,
309
+ # or already has an error if the skip_invalid option is given.
310
+ #
285
311
  # Otherwise, yield the attribute, value, and passed option :message to
286
312
  # the block. If the block returns anything except nil or false, add it as
287
313
  # an error message for that attributes.
288
314
  def validatable_attributes(atts, opts)
289
- am, an, ab, m = opts.values_at(:allow_missing, :allow_nil, :allow_blank, :message)
315
+ am, an, ab, m, si = opts.values_at(:allow_missing, :allow_nil, :allow_blank, :message, :skip_invalid)
290
316
  from_values = opts[:from] == :values
291
317
  Array(atts).each do |a|
318
+ next if si && errors.on(a)
292
319
  next if am && !values.has_key?(a)
293
320
  v = from_values ? values[a] : get_column_value(a)
294
321
  next if an && v.nil?
@@ -359,7 +359,7 @@ module Sequel
359
359
  else
360
360
  Array(inc).each{|i| to_xml_include(x1, i)}
361
361
  end
362
- yield x1 if block_given?
362
+ yield x1 if defined?(yield)
363
363
  end
364
364
  x.to_xml
365
365
  end
data/lib/sequel/sql.rb CHANGED
@@ -467,7 +467,7 @@ module Sequel
467
467
  #
468
468
  # Sequel[1] - :a # SQL: (1 - a)
469
469
  def expr(arg=(no_arg=true), &block)
470
- if block_given?
470
+ if defined?(yield)
471
471
  if no_arg
472
472
  return expr(block)
473
473
  else
@@ -82,22 +82,20 @@ module Sequel
82
82
  # +application_timezone+ using +convert_input_timestamp+ and
83
83
  # +convert_output_timestamp+.
84
84
  def convert_timestamp(v, input_timezone)
85
- begin
86
- if v.is_a?(Date) && !v.is_a?(DateTime)
87
- # Dates handled specially as they are assumed to already be in the application_timezone
88
- if datetime_class == DateTime
89
- DateTime.civil(v.year, v.month, v.day, 0, 0, 0, application_timezone == :local ? Rational(Time.local(v.year, v.month, v.day).utc_offset, 86400) : 0)
90
- else
91
- Time.public_send(application_timezone == :utc ? :utc : :local, v.year, v.month, v.day)
92
- end
85
+ if v.is_a?(Date) && !v.is_a?(DateTime)
86
+ # Dates handled specially as they are assumed to already be in the application_timezone
87
+ if datetime_class == DateTime
88
+ DateTime.civil(v.year, v.month, v.day, 0, 0, 0, application_timezone == :local ? Rational(Time.local(v.year, v.month, v.day).utc_offset, 86400) : 0)
93
89
  else
94
- convert_output_timestamp(convert_input_timestamp(v, input_timezone), application_timezone)
90
+ Time.public_send(application_timezone == :utc ? :utc : :local, v.year, v.month, v.day)
95
91
  end
96
- rescue InvalidValue
97
- raise
98
- rescue => e
99
- raise convert_exception_class(e, InvalidValue)
92
+ else
93
+ convert_output_timestamp(convert_input_timestamp(v, input_timezone), application_timezone)
100
94
  end
95
+ rescue InvalidValue
96
+ raise
97
+ rescue => e
98
+ raise convert_exception_class(e, InvalidValue)
101
99
  end
102
100
 
103
101
  # Convert the given object into an object of <tt>Sequel.datetime_class</tt> in the
@@ -158,7 +156,7 @@ module Sequel
158
156
  case v
159
157
  when String
160
158
  v2 = Sequel.string_to_datetime(v)
161
- if !input_timezone || Date._parse(v).has_key?(:offset)
159
+ if !input_timezone || _date_parse(v).has_key?(:offset)
162
160
  v2
163
161
  else
164
162
  # Correct for potentially wrong offset if string doesn't include offset
@@ -6,7 +6,7 @@ module Sequel
6
6
 
7
7
  # The minor version of Sequel. Bumped for every non-patch level
8
8
  # release, generally around once a month.
9
- MINOR = 39
9
+ MINOR = 63
10
10
 
11
11
  # The tiny version of Sequel. Usually 0, only bumped for bugfix
12
12
  # releases that fix regressions from previous versions.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.39.0
4
+ version: 5.63.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Evans
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-01 00:00:00.000000000 Z
11
+ date: 2022-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: minitest-shared_description
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: tzinfo
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -117,9 +103,8 @@ extra_rdoc_files:
117
103
  - README.rdoc
118
104
  - CHANGELOG
119
105
  - MIT-LICENSE
120
- - doc/association_basics.rdoc
121
- - doc/model_dataset_method_design.rdoc
122
106
  - doc/advanced_associations.rdoc
107
+ - doc/association_basics.rdoc
123
108
  - doc/bin_sequel.rdoc
124
109
  - doc/cheat_sheet.rdoc
125
110
  - doc/code_order.rdoc
@@ -127,37 +112,30 @@ extra_rdoc_files:
127
112
  - doc/dataset_basics.rdoc
128
113
  - doc/dataset_filtering.rdoc
129
114
  - doc/extensions.rdoc
115
+ - doc/fork_safety.rdoc
130
116
  - doc/mass_assignment.rdoc
131
117
  - doc/migration.rdoc
132
- - doc/opening_databases.rdoc
118
+ - doc/model_dataset_method_design.rdoc
133
119
  - doc/model_hooks.rdoc
134
120
  - doc/model_plugins.rdoc
135
- - doc/object_model.rdoc
136
- - doc/sql.rdoc
137
121
  - doc/mssql_stored_procedures.rdoc
138
- - doc/thread_safety.rdoc
122
+ - doc/object_model.rdoc
123
+ - doc/opening_databases.rdoc
139
124
  - doc/postgresql.rdoc
140
- - doc/querying.rdoc
141
125
  - doc/prepared_statements.rdoc
126
+ - doc/querying.rdoc
142
127
  - doc/reflection.rdoc
143
- - doc/security.rdoc
144
- - doc/virtual_rows.rdoc
145
128
  - doc/schema_modification.rdoc
129
+ - doc/security.rdoc
146
130
  - doc/sharding.rdoc
131
+ - doc/sql.rdoc
147
132
  - doc/testing.rdoc
148
- - doc/validations.rdoc
133
+ - doc/thread_safety.rdoc
149
134
  - doc/transactions.rdoc
150
- - doc/fork_safety.rdoc
151
- - doc/release_notes/5.5.0.txt
152
- - doc/release_notes/5.6.0.txt
135
+ - doc/validations.rdoc
136
+ - doc/virtual_rows.rdoc
153
137
  - doc/release_notes/5.0.0.txt
154
138
  - doc/release_notes/5.1.0.txt
155
- - doc/release_notes/5.2.0.txt
156
- - doc/release_notes/5.3.0.txt
157
- - doc/release_notes/5.4.0.txt
158
- - doc/release_notes/5.8.0.txt
159
- - doc/release_notes/5.7.0.txt
160
- - doc/release_notes/5.9.0.txt
161
139
  - doc/release_notes/5.10.0.txt
162
140
  - doc/release_notes/5.11.0.txt
163
141
  - doc/release_notes/5.12.0.txt
@@ -168,6 +146,7 @@ extra_rdoc_files:
168
146
  - doc/release_notes/5.17.0.txt
169
147
  - doc/release_notes/5.18.0.txt
170
148
  - doc/release_notes/5.19.0.txt
149
+ - doc/release_notes/5.2.0.txt
171
150
  - doc/release_notes/5.20.0.txt
172
151
  - doc/release_notes/5.21.0.txt
173
152
  - doc/release_notes/5.22.0.txt
@@ -178,6 +157,7 @@ extra_rdoc_files:
178
157
  - doc/release_notes/5.27.0.txt
179
158
  - doc/release_notes/5.28.0.txt
180
159
  - doc/release_notes/5.29.0.txt
160
+ - doc/release_notes/5.3.0.txt
181
161
  - doc/release_notes/5.30.0.txt
182
162
  - doc/release_notes/5.31.0.txt
183
163
  - doc/release_notes/5.32.0.txt
@@ -188,6 +168,36 @@ extra_rdoc_files:
188
168
  - doc/release_notes/5.37.0.txt
189
169
  - doc/release_notes/5.38.0.txt
190
170
  - doc/release_notes/5.39.0.txt
171
+ - doc/release_notes/5.4.0.txt
172
+ - doc/release_notes/5.40.0.txt
173
+ - doc/release_notes/5.41.0.txt
174
+ - doc/release_notes/5.42.0.txt
175
+ - doc/release_notes/5.43.0.txt
176
+ - doc/release_notes/5.44.0.txt
177
+ - doc/release_notes/5.45.0.txt
178
+ - doc/release_notes/5.46.0.txt
179
+ - doc/release_notes/5.47.0.txt
180
+ - doc/release_notes/5.48.0.txt
181
+ - doc/release_notes/5.49.0.txt
182
+ - doc/release_notes/5.5.0.txt
183
+ - doc/release_notes/5.50.0.txt
184
+ - doc/release_notes/5.51.0.txt
185
+ - doc/release_notes/5.52.0.txt
186
+ - doc/release_notes/5.53.0.txt
187
+ - doc/release_notes/5.54.0.txt
188
+ - doc/release_notes/5.55.0.txt
189
+ - doc/release_notes/5.56.0.txt
190
+ - doc/release_notes/5.57.0.txt
191
+ - doc/release_notes/5.58.0.txt
192
+ - doc/release_notes/5.59.0.txt
193
+ - doc/release_notes/5.6.0.txt
194
+ - doc/release_notes/5.60.0.txt
195
+ - doc/release_notes/5.61.0.txt
196
+ - doc/release_notes/5.62.0.txt
197
+ - doc/release_notes/5.63.0.txt
198
+ - doc/release_notes/5.7.0.txt
199
+ - doc/release_notes/5.8.0.txt
200
+ - doc/release_notes/5.9.0.txt
191
201
  files:
192
202
  - CHANGELOG
193
203
  - MIT-LICENSE
@@ -250,8 +260,32 @@ files:
250
260
  - doc/release_notes/5.38.0.txt
251
261
  - doc/release_notes/5.39.0.txt
252
262
  - doc/release_notes/5.4.0.txt
263
+ - doc/release_notes/5.40.0.txt
264
+ - doc/release_notes/5.41.0.txt
265
+ - doc/release_notes/5.42.0.txt
266
+ - doc/release_notes/5.43.0.txt
267
+ - doc/release_notes/5.44.0.txt
268
+ - doc/release_notes/5.45.0.txt
269
+ - doc/release_notes/5.46.0.txt
270
+ - doc/release_notes/5.47.0.txt
271
+ - doc/release_notes/5.48.0.txt
272
+ - doc/release_notes/5.49.0.txt
253
273
  - doc/release_notes/5.5.0.txt
274
+ - doc/release_notes/5.50.0.txt
275
+ - doc/release_notes/5.51.0.txt
276
+ - doc/release_notes/5.52.0.txt
277
+ - doc/release_notes/5.53.0.txt
278
+ - doc/release_notes/5.54.0.txt
279
+ - doc/release_notes/5.55.0.txt
280
+ - doc/release_notes/5.56.0.txt
281
+ - doc/release_notes/5.57.0.txt
282
+ - doc/release_notes/5.58.0.txt
283
+ - doc/release_notes/5.59.0.txt
254
284
  - doc/release_notes/5.6.0.txt
285
+ - doc/release_notes/5.60.0.txt
286
+ - doc/release_notes/5.61.0.txt
287
+ - doc/release_notes/5.62.0.txt
288
+ - doc/release_notes/5.63.0.txt
255
289
  - doc/release_notes/5.7.0.txt
256
290
  - doc/release_notes/5.8.0.txt
257
291
  - doc/release_notes/5.9.0.txt
@@ -305,6 +339,7 @@ files:
305
339
  - lib/sequel/adapters/sqlanywhere.rb
306
340
  - lib/sequel/adapters/sqlite.rb
307
341
  - lib/sequel/adapters/tinytds.rb
342
+ - lib/sequel/adapters/utils/columns_limit_1.rb
308
343
  - lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb
309
344
  - lib/sequel/adapters/utils/emulate_offset_with_row_number.rb
310
345
  - lib/sequel/adapters/utils/mysql_mysql2.rb
@@ -319,6 +354,7 @@ files:
319
354
  - lib/sequel/connection_pool/sharded_threaded.rb
320
355
  - lib/sequel/connection_pool/single.rb
321
356
  - lib/sequel/connection_pool/threaded.rb
357
+ - lib/sequel/connection_pool/timed_queue.rb
322
358
  - lib/sequel/core.rb
323
359
  - lib/sequel/database.rb
324
360
  - lib/sequel/database/connecting.rb
@@ -348,6 +384,7 @@ files:
348
384
  - lib/sequel/extensions/_pretty_table.rb
349
385
  - lib/sequel/extensions/any_not_empty.rb
350
386
  - lib/sequel/extensions/arbitrary_servers.rb
387
+ - lib/sequel/extensions/async_thread_pool.rb
351
388
  - lib/sequel/extensions/auto_literal_strings.rb
352
389
  - lib/sequel/extensions/blank.rb
353
390
  - lib/sequel/extensions/caller_logging.rb
@@ -361,6 +398,7 @@ files:
361
398
  - lib/sequel/extensions/current_datetime_timestamp.rb
362
399
  - lib/sequel/extensions/dataset_source_alias.rb
363
400
  - lib/sequel/extensions/date_arithmetic.rb
401
+ - lib/sequel/extensions/date_parse_input_handler.rb
364
402
  - lib/sequel/extensions/datetime_parse_to_time.rb
365
403
  - lib/sequel/extensions/duplicate_columns_handler.rb
366
404
  - lib/sequel/extensions/empty_array_consider_nulls.rb
@@ -377,6 +415,7 @@ files:
377
415
  - lib/sequel/extensions/index_caching.rb
378
416
  - lib/sequel/extensions/inflector.rb
379
417
  - lib/sequel/extensions/integer64.rb
418
+ - lib/sequel/extensions/is_distinct_from.rb
380
419
  - lib/sequel/extensions/looser_typecasting.rb
381
420
  - lib/sequel/extensions/migration.rb
382
421
  - lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb
@@ -386,8 +425,10 @@ files:
386
425
  - lib/sequel/extensions/pagination.rb
387
426
  - lib/sequel/extensions/pg_array.rb
388
427
  - lib/sequel/extensions/pg_array_ops.rb
428
+ - lib/sequel/extensions/pg_auto_parameterize.rb
389
429
  - lib/sequel/extensions/pg_enum.rb
390
430
  - lib/sequel/extensions/pg_extended_date_support.rb
431
+ - lib/sequel/extensions/pg_extended_integer_support.rb
391
432
  - lib/sequel/extensions/pg_hstore.rb
392
433
  - lib/sequel/extensions/pg_hstore_ops.rb
393
434
  - lib/sequel/extensions/pg_inet.rb
@@ -396,6 +437,7 @@ files:
396
437
  - lib/sequel/extensions/pg_json.rb
397
438
  - lib/sequel/extensions/pg_json_ops.rb
398
439
  - lib/sequel/extensions/pg_loose_count.rb
440
+ - lib/sequel/extensions/pg_multirange.rb
399
441
  - lib/sequel/extensions/pg_range.rb
400
442
  - lib/sequel/extensions/pg_range_ops.rb
401
443
  - lib/sequel/extensions/pg_row.rb
@@ -416,6 +458,8 @@ files:
416
458
  - lib/sequel/extensions/split_array_nil.rb
417
459
  - lib/sequel/extensions/sql_comments.rb
418
460
  - lib/sequel/extensions/sql_expr.rb
461
+ - lib/sequel/extensions/sql_log_normalizer.rb
462
+ - lib/sequel/extensions/sqlite_json_ops.rb
419
463
  - lib/sequel/extensions/string_agg.rb
420
464
  - lib/sequel/extensions/string_date_time.rb
421
465
  - lib/sequel/extensions/symbol_aref.rb
@@ -443,7 +487,10 @@ files:
443
487
  - lib/sequel/plugins/association_multi_add_remove.rb
444
488
  - lib/sequel/plugins/association_pks.rb
445
489
  - lib/sequel/plugins/association_proxies.rb
490
+ - lib/sequel/plugins/async_thread_pool.rb
491
+ - lib/sequel/plugins/auto_restrict_eager_graph.rb
446
492
  - lib/sequel/plugins/auto_validations.rb
493
+ - lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb
447
494
  - lib/sequel/plugins/before_after_save.rb
448
495
  - lib/sequel/plugins/blacklist_security.rb
449
496
  - lib/sequel/plugins/boolean_readers.rb
@@ -451,9 +498,11 @@ files:
451
498
  - lib/sequel/plugins/caching.rb
452
499
  - lib/sequel/plugins/class_table_inheritance.rb
453
500
  - lib/sequel/plugins/column_conflicts.rb
501
+ - lib/sequel/plugins/column_encryption.rb
454
502
  - lib/sequel/plugins/column_select.rb
455
503
  - lib/sequel/plugins/columns_updated.rb
456
504
  - lib/sequel/plugins/composition.rb
505
+ - lib/sequel/plugins/concurrent_eager_loading.rb
457
506
  - lib/sequel/plugins/constraint_validations.rb
458
507
  - lib/sequel/plugins/csv_serializer.rb
459
508
  - lib/sequel/plugins/dataset_associations.rb
@@ -464,6 +513,7 @@ files:
464
513
  - lib/sequel/plugins/eager_each.rb
465
514
  - lib/sequel/plugins/eager_graph_eager.rb
466
515
  - lib/sequel/plugins/empty_failure_backtraces.rb
516
+ - lib/sequel/plugins/enum.rb
467
517
  - lib/sequel/plugins/error_splitter.rb
468
518
  - lib/sequel/plugins/finder.rb
469
519
  - lib/sequel/plugins/forbid_lazy_load.rb
@@ -489,7 +539,9 @@ files:
489
539
  - lib/sequel/plugins/pg_row.rb
490
540
  - lib/sequel/plugins/prepared_statements.rb
491
541
  - lib/sequel/plugins/prepared_statements_safe.rb
542
+ - lib/sequel/plugins/primary_key_lookup_check_values.rb
492
543
  - lib/sequel/plugins/rcte_tree.rb
544
+ - lib/sequel/plugins/require_valid_schema.rb
493
545
  - lib/sequel/plugins/serialization.rb
494
546
  - lib/sequel/plugins/serialization_modification_detection.rb
495
547
  - lib/sequel/plugins/sharding.rb
@@ -498,6 +550,7 @@ files:
498
550
  - lib/sequel/plugins/skip_create_refresh.rb
499
551
  - lib/sequel/plugins/skip_saving_columns.rb
500
552
  - lib/sequel/plugins/split_values.rb
553
+ - lib/sequel/plugins/sql_comments.rb
501
554
  - lib/sequel/plugins/static_cache.rb
502
555
  - lib/sequel/plugins/static_cache_cache.rb
503
556
  - lib/sequel/plugins/string_stripper.rb
@@ -511,6 +564,7 @@ files:
511
564
  - lib/sequel/plugins/tree.rb
512
565
  - lib/sequel/plugins/typecast_on_load.rb
513
566
  - lib/sequel/plugins/unlimited_update.rb
567
+ - lib/sequel/plugins/unused_associations.rb
514
568
  - lib/sequel/plugins/update_or_create.rb
515
569
  - lib/sequel/plugins/update_primary_key.rb
516
570
  - lib/sequel/plugins/update_refresh.rb
@@ -524,16 +578,16 @@ files:
524
578
  - lib/sequel/sql.rb
525
579
  - lib/sequel/timezones.rb
526
580
  - lib/sequel/version.rb
527
- homepage: http://sequel.jeremyevans.net
581
+ homepage: https://sequel.jeremyevans.net
528
582
  licenses:
529
583
  - MIT
530
584
  metadata:
531
585
  bug_tracker_uri: https://github.com/jeremyevans/sequel/issues
532
- changelog_uri: http://sequel.jeremyevans.net/rdoc/files/CHANGELOG.html
533
- documentation_uri: http://sequel.jeremyevans.net/documentation.html
534
- mailing_list_uri: https://groups.google.com/forum/#!forum/sequel-talk
586
+ changelog_uri: https://sequel.jeremyevans.net/rdoc/files/CHANGELOG.html
587
+ documentation_uri: https://sequel.jeremyevans.net/documentation.html
588
+ mailing_list_uri: https://github.com/jeremyevans/sequel/discussions
535
589
  source_code_uri: https://github.com/jeremyevans/sequel
536
- post_install_message:
590
+ post_install_message:
537
591
  rdoc_options:
538
592
  - "--quiet"
539
593
  - "--line-numbers"
@@ -555,8 +609,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
555
609
  - !ruby/object:Gem::Version
556
610
  version: '0'
557
611
  requirements: []
558
- rubygems_version: 3.1.4
559
- signing_key:
612
+ rubygems_version: 3.3.26
613
+ signing_key:
560
614
  specification_version: 4
561
615
  summary: The Database Toolkit for Ruby
562
616
  test_files: []