sequel 5.33.0 → 5.35.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +42 -0
  3. data/doc/association_basics.rdoc +7 -2
  4. data/doc/dataset_filtering.rdoc +2 -2
  5. data/doc/release_notes/5.34.0.txt +40 -0
  6. data/doc/release_notes/5.35.0.txt +56 -0
  7. data/lib/sequel/adapters/oracle.rb +2 -1
  8. data/lib/sequel/adapters/shared/sqlite.rb +8 -2
  9. data/lib/sequel/adapters/tinytds.rb +1 -0
  10. data/lib/sequel/connection_pool/sharded_single.rb +4 -1
  11. data/lib/sequel/connection_pool/sharded_threaded.rb +10 -10
  12. data/lib/sequel/connection_pool/single.rb +1 -1
  13. data/lib/sequel/connection_pool/threaded.rb +1 -1
  14. data/lib/sequel/database/connecting.rb +1 -1
  15. data/lib/sequel/database/misc.rb +16 -10
  16. data/lib/sequel/database/query.rb +2 -0
  17. data/lib/sequel/database/schema_generator.rb +0 -1
  18. data/lib/sequel/database/schema_methods.rb +15 -16
  19. data/lib/sequel/database/transactions.rb +7 -4
  20. data/lib/sequel/dataset/placeholder_literalizer.rb +3 -7
  21. data/lib/sequel/dataset/query.rb +5 -4
  22. data/lib/sequel/deprecated.rb +3 -1
  23. data/lib/sequel/exceptions.rb +2 -0
  24. data/lib/sequel/extensions/_pretty_table.rb +1 -2
  25. data/lib/sequel/extensions/columns_introspection.rb +1 -2
  26. data/lib/sequel/extensions/core_refinements.rb +2 -0
  27. data/lib/sequel/extensions/duplicate_columns_handler.rb +2 -0
  28. data/lib/sequel/extensions/migration.rb +0 -1
  29. data/lib/sequel/extensions/pg_array_ops.rb +4 -0
  30. data/lib/sequel/extensions/pg_enum.rb +2 -0
  31. data/lib/sequel/extensions/pg_extended_date_support.rb +1 -1
  32. data/lib/sequel/extensions/pg_hstore_ops.rb +2 -0
  33. data/lib/sequel/extensions/pg_inet.rb +2 -0
  34. data/lib/sequel/extensions/pg_json_ops.rb +2 -0
  35. data/lib/sequel/extensions/pg_range.rb +3 -7
  36. data/lib/sequel/extensions/pg_range_ops.rb +2 -0
  37. data/lib/sequel/extensions/pg_row.rb +0 -1
  38. data/lib/sequel/extensions/run_transaction_hooks.rb +1 -1
  39. data/lib/sequel/extensions/s.rb +2 -0
  40. data/lib/sequel/extensions/symbol_aref_refinement.rb +2 -0
  41. data/lib/sequel/extensions/symbol_as_refinement.rb +2 -0
  42. data/lib/sequel/extensions/to_dot.rb +9 -3
  43. data/lib/sequel/model.rb +2 -0
  44. data/lib/sequel/model/associations.rb +36 -20
  45. data/lib/sequel/model/base.rb +11 -5
  46. data/lib/sequel/model/plugins.rb +2 -3
  47. data/lib/sequel/plugins/association_pks.rb +60 -18
  48. data/lib/sequel/plugins/blacklist_security.rb +1 -2
  49. data/lib/sequel/plugins/class_table_inheritance.rb +3 -3
  50. data/lib/sequel/plugins/csv_serializer.rb +2 -0
  51. data/lib/sequel/plugins/forbid_lazy_load.rb +2 -0
  52. data/lib/sequel/plugins/instance_specific_default.rb +113 -0
  53. data/lib/sequel/plugins/lazy_attributes.rb +1 -1
  54. data/lib/sequel/plugins/pg_array_associations.rb +2 -3
  55. data/lib/sequel/plugins/prepared_statements.rb +5 -11
  56. data/lib/sequel/plugins/prepared_statements_safe.rb +1 -3
  57. data/lib/sequel/plugins/rcte_tree.rb +10 -16
  58. data/lib/sequel/plugins/string_stripper.rb +1 -1
  59. data/lib/sequel/plugins/validation_class_methods.rb +5 -1
  60. data/lib/sequel/version.rb +1 -1
  61. metadata +7 -2
@@ -66,9 +66,7 @@ module Sequel
66
66
  # Merge the current values into the default values to reduce the number
67
67
  # of free columns.
68
68
  def before_create
69
- if v = model.prepared_statements_column_defaults
70
- @values = v.merge(values)
71
- end
69
+ @values = model.prepared_statements_column_defaults.merge(@values)
72
70
  super
73
71
  end
74
72
 
@@ -192,23 +192,19 @@ module Sequel
192
192
  :args=>((key_aliases + col_aliases) if col_aliases))
193
193
  ds = r.apply_eager_dataset_changes(ds)
194
194
  ds = ds.select_append(ka) unless ds.opts[:select] == nil
195
- model.eager_load_results(r, eo.merge(:loader=>false, :initalize_rows=>false, :dataset=>ds, :id_map=>nil)) do |obj|
195
+ model.eager_load_results(r, eo.merge(:loader=>false, :initialize_rows=>false, :dataset=>ds, :id_map=>nil)) do |obj|
196
196
  opk = prkey_conv[obj]
197
- if parent_map.has_key?(opk)
198
- if idm_obj = parent_map[opk]
199
- key_aliases.each{|ka_| idm_obj.values[ka_] = obj.values[ka_]}
200
- obj = idm_obj
201
- end
197
+ if idm_obj = parent_map[opk]
198
+ key_aliases.each{|ka_| idm_obj.values[ka_] = obj.values[ka_]}
199
+ obj = idm_obj
202
200
  else
203
201
  obj.associations[parent] = nil
204
202
  parent_map[opk] = obj
205
203
  (children_map[key_conv[obj]] ||= []) << obj
206
204
  end
207
205
 
208
- if roots = id_map[extract_key_alias[obj]]
209
- roots.each do |root|
210
- root.associations[ancestors] << obj
211
- end
206
+ id_map[extract_key_alias[obj]].each do |root|
207
+ root.associations[ancestors] << obj
212
208
  end
213
209
  end
214
210
  parent_map.each do |parent_id, obj|
@@ -300,17 +296,15 @@ module Sequel
300
296
  :args=>((key_aliases + col_aliases + (level ? [la] : [])) if col_aliases))
301
297
  ds = r.apply_eager_dataset_changes(ds)
302
298
  ds = ds.select_append(ka) unless ds.opts[:select] == nil
303
- model.eager_load_results(r, eo.merge(:loader=>false, :initalize_rows=>false, :dataset=>ds, :id_map=>nil, :associations=>OPTS)) do |obj|
299
+ model.eager_load_results(r, eo.merge(:loader=>false, :initialize_rows=>false, :dataset=>ds, :id_map=>nil, :associations=>OPTS)) do |obj|
304
300
  if level
305
301
  no_cache = no_cache_level == obj.values.delete(la)
306
302
  end
307
303
 
308
304
  opk = prkey_conv[obj]
309
- if parent_map.has_key?(opk)
310
- if idm_obj = parent_map[opk]
311
- key_aliases.each{|ka_| idm_obj.values[ka_] = obj.values[ka_]}
312
- obj = idm_obj
313
- end
305
+ if idm_obj = parent_map[opk]
306
+ key_aliases.each{|ka_| idm_obj.values[ka_] = obj.values[ka_]}
307
+ obj = idm_obj
314
308
  else
315
309
  obj.associations[childrena] = [] unless no_cache
316
310
  parent_map[opk] = obj
@@ -28,7 +28,7 @@ module Sequel
28
28
  model.plugin(:input_transformer, :string_stripper){|v| (v.is_a?(String) && !v.is_a?(SQL::Blob)) ? v.strip : v}
29
29
  end
30
30
  def self.configure(model)
31
- model.instance_exec{set_skipped_string_stripping_columns if @dataset}
31
+ model.send(:set_skipped_string_stripping_columns)
32
32
  end
33
33
 
34
34
  module ClassMethods
@@ -194,7 +194,11 @@ module Sequel
194
194
  def validates_each(*atts, &block)
195
195
  opts = extract_options!(atts)
196
196
  blank_meth = db.method(:blank_object?).to_proc
197
- blk = if (i = opts[:if]) || (am = opts[:allow_missing]) || (an = opts[:allow_nil]) || (ab = opts[:allow_blank])
197
+ i = opts[:if]
198
+ am = opts[:allow_missing]
199
+ an = opts[:allow_nil]
200
+ ab = opts[:allow_blank]
201
+ blk = if i || am || an || ab
198
202
  if i.is_a?(Proc)
199
203
  i = Plugins.def_sequel_method(self, "validation_class_methods_if", 0, &i)
200
204
  end
@@ -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 = 33
9
+ MINOR = 35
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.33.0
4
+ version: 5.35.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-01 00:00:00.000000000 Z
11
+ date: 2020-08-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -181,6 +181,8 @@ extra_rdoc_files:
181
181
  - doc/release_notes/5.31.0.txt
182
182
  - doc/release_notes/5.32.0.txt
183
183
  - doc/release_notes/5.33.0.txt
184
+ - doc/release_notes/5.34.0.txt
185
+ - doc/release_notes/5.35.0.txt
184
186
  files:
185
187
  - CHANGELOG
186
188
  - MIT-LICENSE
@@ -235,6 +237,8 @@ files:
235
237
  - doc/release_notes/5.31.0.txt
236
238
  - doc/release_notes/5.32.0.txt
237
239
  - doc/release_notes/5.33.0.txt
240
+ - doc/release_notes/5.34.0.txt
241
+ - doc/release_notes/5.35.0.txt
238
242
  - doc/release_notes/5.4.0.txt
239
243
  - doc/release_notes/5.5.0.txt
240
244
  - doc/release_notes/5.6.0.txt
@@ -460,6 +464,7 @@ files:
460
464
  - lib/sequel/plugins/insert_returning_select.rb
461
465
  - lib/sequel/plugins/instance_filters.rb
462
466
  - lib/sequel/plugins/instance_hooks.rb
467
+ - lib/sequel/plugins/instance_specific_default.rb
463
468
  - lib/sequel/plugins/inverted_subsets.rb
464
469
  - lib/sequel/plugins/json_serializer.rb
465
470
  - lib/sequel/plugins/lazy_attributes.rb