sequel 5.39.0 → 5.66.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +336 -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 +119 -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/release_notes/5.64.0.txt +50 -0
  40. data/doc/release_notes/5.65.0.txt +21 -0
  41. data/doc/release_notes/5.66.0.txt +24 -0
  42. data/doc/schema_modification.rdoc +1 -1
  43. data/doc/security.rdoc +9 -9
  44. data/doc/sql.rdoc +28 -16
  45. data/doc/testing.rdoc +22 -11
  46. data/doc/transactions.rdoc +6 -6
  47. data/doc/virtual_rows.rdoc +2 -2
  48. data/lib/sequel/adapters/ado/access.rb +1 -1
  49. data/lib/sequel/adapters/ado.rb +17 -17
  50. data/lib/sequel/adapters/amalgalite.rb +3 -5
  51. data/lib/sequel/adapters/ibmdb.rb +2 -2
  52. data/lib/sequel/adapters/jdbc/derby.rb +8 -0
  53. data/lib/sequel/adapters/jdbc/h2.rb +60 -10
  54. data/lib/sequel/adapters/jdbc/hsqldb.rb +6 -0
  55. data/lib/sequel/adapters/jdbc/postgresql.rb +4 -4
  56. data/lib/sequel/adapters/jdbc.rb +16 -18
  57. data/lib/sequel/adapters/mysql.rb +80 -67
  58. data/lib/sequel/adapters/mysql2.rb +54 -49
  59. data/lib/sequel/adapters/odbc.rb +6 -2
  60. data/lib/sequel/adapters/oracle.rb +4 -3
  61. data/lib/sequel/adapters/postgres.rb +83 -40
  62. data/lib/sequel/adapters/shared/access.rb +11 -1
  63. data/lib/sequel/adapters/shared/db2.rb +30 -0
  64. data/lib/sequel/adapters/shared/mssql.rb +83 -7
  65. data/lib/sequel/adapters/shared/mysql.rb +47 -2
  66. data/lib/sequel/adapters/shared/oracle.rb +82 -1
  67. data/lib/sequel/adapters/shared/postgres.rb +430 -174
  68. data/lib/sequel/adapters/shared/sqlanywhere.rb +11 -1
  69. data/lib/sequel/adapters/shared/sqlite.rb +116 -11
  70. data/lib/sequel/adapters/sqlanywhere.rb +1 -1
  71. data/lib/sequel/adapters/sqlite.rb +60 -18
  72. data/lib/sequel/adapters/tinytds.rb +1 -1
  73. data/lib/sequel/adapters/utils/columns_limit_1.rb +22 -0
  74. data/lib/sequel/adapters/utils/mysql_mysql2.rb +1 -1
  75. data/lib/sequel/ast_transformer.rb +6 -0
  76. data/lib/sequel/connection_pool/sharded_single.rb +5 -7
  77. data/lib/sequel/connection_pool/sharded_threaded.rb +5 -1
  78. data/lib/sequel/connection_pool/single.rb +6 -8
  79. data/lib/sequel/connection_pool/threaded.rb +8 -8
  80. data/lib/sequel/connection_pool/timed_queue.rb +257 -0
  81. data/lib/sequel/connection_pool.rb +47 -30
  82. data/lib/sequel/core.rb +28 -18
  83. data/lib/sequel/database/connecting.rb +26 -2
  84. data/lib/sequel/database/misc.rb +69 -14
  85. data/lib/sequel/database/query.rb +73 -2
  86. data/lib/sequel/database/schema_generator.rb +45 -52
  87. data/lib/sequel/database/schema_methods.rb +17 -1
  88. data/lib/sequel/dataset/actions.rb +108 -14
  89. data/lib/sequel/dataset/features.rb +20 -0
  90. data/lib/sequel/dataset/misc.rb +12 -2
  91. data/lib/sequel/dataset/placeholder_literalizer.rb +20 -9
  92. data/lib/sequel/dataset/prepared_statements.rb +2 -0
  93. data/lib/sequel/dataset/query.rb +118 -16
  94. data/lib/sequel/dataset/sql.rb +182 -47
  95. data/lib/sequel/extensions/_model_pg_row.rb +0 -12
  96. data/lib/sequel/extensions/_pretty_table.rb +1 -1
  97. data/lib/sequel/extensions/any_not_empty.rb +1 -1
  98. data/lib/sequel/extensions/async_thread_pool.rb +438 -0
  99. data/lib/sequel/extensions/auto_literal_strings.rb +1 -1
  100. data/lib/sequel/extensions/blank.rb +8 -0
  101. data/lib/sequel/extensions/constraint_validations.rb +1 -1
  102. data/lib/sequel/extensions/core_refinements.rb +36 -11
  103. data/lib/sequel/extensions/date_arithmetic.rb +71 -31
  104. data/lib/sequel/extensions/date_parse_input_handler.rb +67 -0
  105. data/lib/sequel/extensions/datetime_parse_to_time.rb +5 -1
  106. data/lib/sequel/extensions/duplicate_columns_handler.rb +1 -1
  107. data/lib/sequel/extensions/eval_inspect.rb +2 -0
  108. data/lib/sequel/extensions/inflector.rb +9 -1
  109. data/lib/sequel/extensions/is_distinct_from.rb +141 -0
  110. data/lib/sequel/extensions/looser_typecasting.rb +3 -0
  111. data/lib/sequel/extensions/migration.rb +7 -2
  112. data/lib/sequel/extensions/named_timezones.rb +26 -6
  113. data/lib/sequel/extensions/pagination.rb +1 -1
  114. data/lib/sequel/extensions/pg_array.rb +23 -3
  115. data/lib/sequel/extensions/pg_array_ops.rb +2 -2
  116. data/lib/sequel/extensions/pg_auto_parameterize.rb +509 -0
  117. data/lib/sequel/extensions/pg_enum.rb +1 -1
  118. data/lib/sequel/extensions/pg_extended_date_support.rb +28 -25
  119. data/lib/sequel/extensions/pg_extended_integer_support.rb +116 -0
  120. data/lib/sequel/extensions/pg_hstore.rb +6 -1
  121. data/lib/sequel/extensions/pg_hstore_ops.rb +53 -3
  122. data/lib/sequel/extensions/pg_inet.rb +10 -11
  123. data/lib/sequel/extensions/pg_inet_ops.rb +1 -1
  124. data/lib/sequel/extensions/pg_interval.rb +45 -19
  125. data/lib/sequel/extensions/pg_json.rb +13 -15
  126. data/lib/sequel/extensions/pg_json_ops.rb +73 -2
  127. data/lib/sequel/extensions/pg_loose_count.rb +3 -1
  128. data/lib/sequel/extensions/pg_multirange.rb +367 -0
  129. data/lib/sequel/extensions/pg_range.rb +10 -23
  130. data/lib/sequel/extensions/pg_range_ops.rb +37 -9
  131. data/lib/sequel/extensions/pg_row.rb +19 -13
  132. data/lib/sequel/extensions/pg_row_ops.rb +1 -1
  133. data/lib/sequel/extensions/query.rb +2 -0
  134. data/lib/sequel/extensions/s.rb +2 -1
  135. data/lib/sequel/extensions/schema_dumper.rb +13 -2
  136. data/lib/sequel/extensions/server_block.rb +8 -12
  137. data/lib/sequel/extensions/sql_comments.rb +110 -3
  138. data/lib/sequel/extensions/sql_log_normalizer.rb +108 -0
  139. data/lib/sequel/extensions/sqlite_json_ops.rb +255 -0
  140. data/lib/sequel/extensions/string_agg.rb +1 -1
  141. data/lib/sequel/extensions/string_date_time.rb +19 -23
  142. data/lib/sequel/extensions/symbol_aref.rb +2 -0
  143. data/lib/sequel/model/associations.rb +345 -101
  144. data/lib/sequel/model/base.rb +51 -27
  145. data/lib/sequel/model/errors.rb +10 -1
  146. data/lib/sequel/model/inflections.rb +1 -1
  147. data/lib/sequel/model/plugins.rb +5 -0
  148. data/lib/sequel/plugins/association_proxies.rb +2 -0
  149. data/lib/sequel/plugins/async_thread_pool.rb +39 -0
  150. data/lib/sequel/plugins/auto_restrict_eager_graph.rb +62 -0
  151. data/lib/sequel/plugins/auto_validations.rb +87 -15
  152. data/lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb +68 -0
  153. data/lib/sequel/plugins/class_table_inheritance.rb +2 -2
  154. data/lib/sequel/plugins/column_encryption.rb +728 -0
  155. data/lib/sequel/plugins/composition.rb +10 -4
  156. data/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
  157. data/lib/sequel/plugins/constraint_validations.rb +2 -1
  158. data/lib/sequel/plugins/dataset_associations.rb +4 -1
  159. data/lib/sequel/plugins/dirty.rb +1 -1
  160. data/lib/sequel/plugins/enum.rb +124 -0
  161. data/lib/sequel/plugins/finder.rb +4 -2
  162. data/lib/sequel/plugins/insert_conflict.rb +4 -0
  163. data/lib/sequel/plugins/instance_specific_default.rb +1 -1
  164. data/lib/sequel/plugins/json_serializer.rb +39 -24
  165. data/lib/sequel/plugins/lazy_attributes.rb +3 -0
  166. data/lib/sequel/plugins/list.rb +3 -1
  167. data/lib/sequel/plugins/many_through_many.rb +109 -10
  168. data/lib/sequel/plugins/nested_attributes.rb +12 -7
  169. data/lib/sequel/plugins/pg_array_associations.rb +56 -38
  170. data/lib/sequel/plugins/pg_auto_constraint_validations.rb +3 -1
  171. data/lib/sequel/plugins/prepared_statements.rb +10 -1
  172. data/lib/sequel/plugins/primary_key_lookup_check_values.rb +154 -0
  173. data/lib/sequel/plugins/rcte_tree.rb +27 -19
  174. data/lib/sequel/plugins/require_valid_schema.rb +67 -0
  175. data/lib/sequel/plugins/serialization.rb +9 -3
  176. data/lib/sequel/plugins/serialization_modification_detection.rb +2 -1
  177. data/lib/sequel/plugins/single_table_inheritance.rb +8 -0
  178. data/lib/sequel/plugins/sql_comments.rb +189 -0
  179. data/lib/sequel/plugins/static_cache.rb +1 -1
  180. data/lib/sequel/plugins/subclasses.rb +28 -11
  181. data/lib/sequel/plugins/tactical_eager_loading.rb +23 -10
  182. data/lib/sequel/plugins/timestamps.rb +1 -1
  183. data/lib/sequel/plugins/unused_associations.rb +521 -0
  184. data/lib/sequel/plugins/update_or_create.rb +1 -1
  185. data/lib/sequel/plugins/validate_associated.rb +22 -12
  186. data/lib/sequel/plugins/validation_helpers.rb +38 -11
  187. data/lib/sequel/plugins/xml_serializer.rb +1 -1
  188. data/lib/sequel/sql.rb +1 -1
  189. data/lib/sequel/timezones.rb +12 -14
  190. data/lib/sequel/version.rb +1 -1
  191. metadata +103 -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 = 66
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.66.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: 2023-03-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,39 @@ 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.64.0.txt
199
+ - doc/release_notes/5.65.0.txt
200
+ - doc/release_notes/5.66.0.txt
201
+ - doc/release_notes/5.7.0.txt
202
+ - doc/release_notes/5.8.0.txt
203
+ - doc/release_notes/5.9.0.txt
191
204
  files:
192
205
  - CHANGELOG
193
206
  - MIT-LICENSE
@@ -250,8 +263,35 @@ files:
250
263
  - doc/release_notes/5.38.0.txt
251
264
  - doc/release_notes/5.39.0.txt
252
265
  - doc/release_notes/5.4.0.txt
266
+ - doc/release_notes/5.40.0.txt
267
+ - doc/release_notes/5.41.0.txt
268
+ - doc/release_notes/5.42.0.txt
269
+ - doc/release_notes/5.43.0.txt
270
+ - doc/release_notes/5.44.0.txt
271
+ - doc/release_notes/5.45.0.txt
272
+ - doc/release_notes/5.46.0.txt
273
+ - doc/release_notes/5.47.0.txt
274
+ - doc/release_notes/5.48.0.txt
275
+ - doc/release_notes/5.49.0.txt
253
276
  - doc/release_notes/5.5.0.txt
277
+ - doc/release_notes/5.50.0.txt
278
+ - doc/release_notes/5.51.0.txt
279
+ - doc/release_notes/5.52.0.txt
280
+ - doc/release_notes/5.53.0.txt
281
+ - doc/release_notes/5.54.0.txt
282
+ - doc/release_notes/5.55.0.txt
283
+ - doc/release_notes/5.56.0.txt
284
+ - doc/release_notes/5.57.0.txt
285
+ - doc/release_notes/5.58.0.txt
286
+ - doc/release_notes/5.59.0.txt
254
287
  - doc/release_notes/5.6.0.txt
288
+ - doc/release_notes/5.60.0.txt
289
+ - doc/release_notes/5.61.0.txt
290
+ - doc/release_notes/5.62.0.txt
291
+ - doc/release_notes/5.63.0.txt
292
+ - doc/release_notes/5.64.0.txt
293
+ - doc/release_notes/5.65.0.txt
294
+ - doc/release_notes/5.66.0.txt
255
295
  - doc/release_notes/5.7.0.txt
256
296
  - doc/release_notes/5.8.0.txt
257
297
  - doc/release_notes/5.9.0.txt
@@ -305,6 +345,7 @@ files:
305
345
  - lib/sequel/adapters/sqlanywhere.rb
306
346
  - lib/sequel/adapters/sqlite.rb
307
347
  - lib/sequel/adapters/tinytds.rb
348
+ - lib/sequel/adapters/utils/columns_limit_1.rb
308
349
  - lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb
309
350
  - lib/sequel/adapters/utils/emulate_offset_with_row_number.rb
310
351
  - lib/sequel/adapters/utils/mysql_mysql2.rb
@@ -319,6 +360,7 @@ files:
319
360
  - lib/sequel/connection_pool/sharded_threaded.rb
320
361
  - lib/sequel/connection_pool/single.rb
321
362
  - lib/sequel/connection_pool/threaded.rb
363
+ - lib/sequel/connection_pool/timed_queue.rb
322
364
  - lib/sequel/core.rb
323
365
  - lib/sequel/database.rb
324
366
  - lib/sequel/database/connecting.rb
@@ -348,6 +390,7 @@ files:
348
390
  - lib/sequel/extensions/_pretty_table.rb
349
391
  - lib/sequel/extensions/any_not_empty.rb
350
392
  - lib/sequel/extensions/arbitrary_servers.rb
393
+ - lib/sequel/extensions/async_thread_pool.rb
351
394
  - lib/sequel/extensions/auto_literal_strings.rb
352
395
  - lib/sequel/extensions/blank.rb
353
396
  - lib/sequel/extensions/caller_logging.rb
@@ -361,6 +404,7 @@ files:
361
404
  - lib/sequel/extensions/current_datetime_timestamp.rb
362
405
  - lib/sequel/extensions/dataset_source_alias.rb
363
406
  - lib/sequel/extensions/date_arithmetic.rb
407
+ - lib/sequel/extensions/date_parse_input_handler.rb
364
408
  - lib/sequel/extensions/datetime_parse_to_time.rb
365
409
  - lib/sequel/extensions/duplicate_columns_handler.rb
366
410
  - lib/sequel/extensions/empty_array_consider_nulls.rb
@@ -377,6 +421,7 @@ files:
377
421
  - lib/sequel/extensions/index_caching.rb
378
422
  - lib/sequel/extensions/inflector.rb
379
423
  - lib/sequel/extensions/integer64.rb
424
+ - lib/sequel/extensions/is_distinct_from.rb
380
425
  - lib/sequel/extensions/looser_typecasting.rb
381
426
  - lib/sequel/extensions/migration.rb
382
427
  - lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb
@@ -386,8 +431,10 @@ files:
386
431
  - lib/sequel/extensions/pagination.rb
387
432
  - lib/sequel/extensions/pg_array.rb
388
433
  - lib/sequel/extensions/pg_array_ops.rb
434
+ - lib/sequel/extensions/pg_auto_parameterize.rb
389
435
  - lib/sequel/extensions/pg_enum.rb
390
436
  - lib/sequel/extensions/pg_extended_date_support.rb
437
+ - lib/sequel/extensions/pg_extended_integer_support.rb
391
438
  - lib/sequel/extensions/pg_hstore.rb
392
439
  - lib/sequel/extensions/pg_hstore_ops.rb
393
440
  - lib/sequel/extensions/pg_inet.rb
@@ -396,6 +443,7 @@ files:
396
443
  - lib/sequel/extensions/pg_json.rb
397
444
  - lib/sequel/extensions/pg_json_ops.rb
398
445
  - lib/sequel/extensions/pg_loose_count.rb
446
+ - lib/sequel/extensions/pg_multirange.rb
399
447
  - lib/sequel/extensions/pg_range.rb
400
448
  - lib/sequel/extensions/pg_range_ops.rb
401
449
  - lib/sequel/extensions/pg_row.rb
@@ -416,6 +464,8 @@ files:
416
464
  - lib/sequel/extensions/split_array_nil.rb
417
465
  - lib/sequel/extensions/sql_comments.rb
418
466
  - lib/sequel/extensions/sql_expr.rb
467
+ - lib/sequel/extensions/sql_log_normalizer.rb
468
+ - lib/sequel/extensions/sqlite_json_ops.rb
419
469
  - lib/sequel/extensions/string_agg.rb
420
470
  - lib/sequel/extensions/string_date_time.rb
421
471
  - lib/sequel/extensions/symbol_aref.rb
@@ -443,7 +493,10 @@ files:
443
493
  - lib/sequel/plugins/association_multi_add_remove.rb
444
494
  - lib/sequel/plugins/association_pks.rb
445
495
  - lib/sequel/plugins/association_proxies.rb
496
+ - lib/sequel/plugins/async_thread_pool.rb
497
+ - lib/sequel/plugins/auto_restrict_eager_graph.rb
446
498
  - lib/sequel/plugins/auto_validations.rb
499
+ - lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb
447
500
  - lib/sequel/plugins/before_after_save.rb
448
501
  - lib/sequel/plugins/blacklist_security.rb
449
502
  - lib/sequel/plugins/boolean_readers.rb
@@ -451,9 +504,11 @@ files:
451
504
  - lib/sequel/plugins/caching.rb
452
505
  - lib/sequel/plugins/class_table_inheritance.rb
453
506
  - lib/sequel/plugins/column_conflicts.rb
507
+ - lib/sequel/plugins/column_encryption.rb
454
508
  - lib/sequel/plugins/column_select.rb
455
509
  - lib/sequel/plugins/columns_updated.rb
456
510
  - lib/sequel/plugins/composition.rb
511
+ - lib/sequel/plugins/concurrent_eager_loading.rb
457
512
  - lib/sequel/plugins/constraint_validations.rb
458
513
  - lib/sequel/plugins/csv_serializer.rb
459
514
  - lib/sequel/plugins/dataset_associations.rb
@@ -464,6 +519,7 @@ files:
464
519
  - lib/sequel/plugins/eager_each.rb
465
520
  - lib/sequel/plugins/eager_graph_eager.rb
466
521
  - lib/sequel/plugins/empty_failure_backtraces.rb
522
+ - lib/sequel/plugins/enum.rb
467
523
  - lib/sequel/plugins/error_splitter.rb
468
524
  - lib/sequel/plugins/finder.rb
469
525
  - lib/sequel/plugins/forbid_lazy_load.rb
@@ -489,7 +545,9 @@ files:
489
545
  - lib/sequel/plugins/pg_row.rb
490
546
  - lib/sequel/plugins/prepared_statements.rb
491
547
  - lib/sequel/plugins/prepared_statements_safe.rb
548
+ - lib/sequel/plugins/primary_key_lookup_check_values.rb
492
549
  - lib/sequel/plugins/rcte_tree.rb
550
+ - lib/sequel/plugins/require_valid_schema.rb
493
551
  - lib/sequel/plugins/serialization.rb
494
552
  - lib/sequel/plugins/serialization_modification_detection.rb
495
553
  - lib/sequel/plugins/sharding.rb
@@ -498,6 +556,7 @@ files:
498
556
  - lib/sequel/plugins/skip_create_refresh.rb
499
557
  - lib/sequel/plugins/skip_saving_columns.rb
500
558
  - lib/sequel/plugins/split_values.rb
559
+ - lib/sequel/plugins/sql_comments.rb
501
560
  - lib/sequel/plugins/static_cache.rb
502
561
  - lib/sequel/plugins/static_cache_cache.rb
503
562
  - lib/sequel/plugins/string_stripper.rb
@@ -511,6 +570,7 @@ files:
511
570
  - lib/sequel/plugins/tree.rb
512
571
  - lib/sequel/plugins/typecast_on_load.rb
513
572
  - lib/sequel/plugins/unlimited_update.rb
573
+ - lib/sequel/plugins/unused_associations.rb
514
574
  - lib/sequel/plugins/update_or_create.rb
515
575
  - lib/sequel/plugins/update_primary_key.rb
516
576
  - lib/sequel/plugins/update_refresh.rb
@@ -524,16 +584,16 @@ files:
524
584
  - lib/sequel/sql.rb
525
585
  - lib/sequel/timezones.rb
526
586
  - lib/sequel/version.rb
527
- homepage: http://sequel.jeremyevans.net
587
+ homepage: https://sequel.jeremyevans.net
528
588
  licenses:
529
589
  - MIT
530
590
  metadata:
531
591
  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
592
+ changelog_uri: https://sequel.jeremyevans.net/rdoc/files/CHANGELOG.html
593
+ documentation_uri: https://sequel.jeremyevans.net/documentation.html
594
+ mailing_list_uri: https://github.com/jeremyevans/sequel/discussions
535
595
  source_code_uri: https://github.com/jeremyevans/sequel
536
- post_install_message:
596
+ post_install_message:
537
597
  rdoc_options:
538
598
  - "--quiet"
539
599
  - "--line-numbers"
@@ -555,8 +615,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
555
615
  - !ruby/object:Gem::Version
556
616
  version: '0'
557
617
  requirements: []
558
- rubygems_version: 3.1.4
559
- signing_key:
618
+ rubygems_version: 3.4.6
619
+ signing_key:
560
620
  specification_version: 4
561
621
  summary: The Database Toolkit for Ruby
562
622
  test_files: []