sequel 4.21.0 → 4.22.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +32 -0
  3. data/README.rdoc +3 -4
  4. data/doc/opening_databases.rdoc +10 -75
  5. data/doc/release_notes/4.22.0.txt +72 -0
  6. data/lib/sequel/adapters/ado/access.rb +1 -1
  7. data/lib/sequel/adapters/cubrid.rb +3 -3
  8. data/lib/sequel/adapters/db2.rb +1 -0
  9. data/lib/sequel/adapters/dbi.rb +1 -0
  10. data/lib/sequel/adapters/fdbsql.rb +3 -2
  11. data/lib/sequel/adapters/firebird.rb +1 -0
  12. data/lib/sequel/adapters/ibmdb.rb +1 -21
  13. data/lib/sequel/adapters/informix.rb +1 -0
  14. data/lib/sequel/adapters/jdbc.rb +37 -49
  15. data/lib/sequel/adapters/jdbc/fdbsql.rb +1 -0
  16. data/lib/sequel/adapters/mysql.rb +5 -3
  17. data/lib/sequel/adapters/mysql2.rb +5 -2
  18. data/lib/sequel/adapters/odbc.rb +8 -4
  19. data/lib/sequel/adapters/openbase.rb +1 -0
  20. data/lib/sequel/adapters/oracle.rb +3 -46
  21. data/lib/sequel/adapters/postgres.rb +3 -36
  22. data/lib/sequel/adapters/shared/access.rb +1 -1
  23. data/lib/sequel/adapters/shared/fdbsql.rb +3 -3
  24. data/lib/sequel/adapters/shared/mssql.rb +1 -1
  25. data/lib/sequel/adapters/shared/mysql_prepared_statements.rb +12 -44
  26. data/lib/sequel/adapters/shared/oracle.rb +6 -2
  27. data/lib/sequel/adapters/shared/postgres.rb +6 -6
  28. data/lib/sequel/adapters/shared/sqlite.rb +1 -1
  29. data/lib/sequel/adapters/sqlite.rb +3 -46
  30. data/lib/sequel/adapters/tinytds.rb +12 -28
  31. data/lib/sequel/adapters/utils/pg_types.rb +1 -1
  32. data/lib/sequel/connection_pool/sharded_threaded.rb +63 -16
  33. data/lib/sequel/connection_pool/threaded.rb +72 -18
  34. data/lib/sequel/core.rb +1 -1
  35. data/lib/sequel/database/connecting.rb +2 -2
  36. data/lib/sequel/database/misc.rb +5 -5
  37. data/lib/sequel/database/query.rb +3 -2
  38. data/lib/sequel/database/schema_generator.rb +19 -19
  39. data/lib/sequel/database/schema_methods.rb +2 -2
  40. data/lib/sequel/database/transactions.rb +3 -3
  41. data/lib/sequel/dataset/actions.rb +18 -8
  42. data/lib/sequel/dataset/graph.rb +2 -2
  43. data/lib/sequel/dataset/prepared_statements.rb +28 -1
  44. data/lib/sequel/dataset/query.rb +7 -7
  45. data/lib/sequel/exceptions.rb +27 -24
  46. data/lib/sequel/extensions/_pretty_table.rb +1 -1
  47. data/lib/sequel/extensions/constraint_validations.rb +2 -2
  48. data/lib/sequel/extensions/date_arithmetic.rb +2 -2
  49. data/lib/sequel/extensions/pg_array.rb +10 -1
  50. data/lib/sequel/extensions/pg_row.rb +1 -1
  51. data/lib/sequel/extensions/pg_static_cache_updater.rb +1 -1
  52. data/lib/sequel/extensions/schema_dumper.rb +8 -8
  53. data/lib/sequel/extensions/split_array_nil.rb +1 -1
  54. data/lib/sequel/model.rb +1 -1
  55. data/lib/sequel/model/associations.rb +18 -11
  56. data/lib/sequel/model/base.rb +15 -15
  57. data/lib/sequel/model/exceptions.rb +11 -2
  58. data/lib/sequel/plugins/accessed_columns.rb +1 -1
  59. data/lib/sequel/plugins/auto_validations.rb +1 -1
  60. data/lib/sequel/plugins/boolean_readers.rb +1 -1
  61. data/lib/sequel/plugins/class_table_inheritance.rb +4 -7
  62. data/lib/sequel/plugins/composition.rb +1 -1
  63. data/lib/sequel/plugins/constraint_validations.rb +2 -2
  64. data/lib/sequel/plugins/csv_serializer.rb +171 -0
  65. data/lib/sequel/plugins/dirty.rb +2 -2
  66. data/lib/sequel/plugins/hook_class_methods.rb +1 -1
  67. data/lib/sequel/plugins/instance_hooks.rb +1 -1
  68. data/lib/sequel/plugins/many_through_many.rb +1 -1
  69. data/lib/sequel/plugins/nested_attributes.rb +5 -5
  70. data/lib/sequel/plugins/pg_array_associations.rb +4 -4
  71. data/lib/sequel/plugins/prepared_statements.rb +2 -2
  72. data/lib/sequel/plugins/prepared_statements_safe.rb +1 -1
  73. data/lib/sequel/plugins/serialization.rb +6 -6
  74. data/lib/sequel/plugins/serialization_modification_detection.rb +1 -1
  75. data/lib/sequel/plugins/sharding.rb +3 -1
  76. data/lib/sequel/plugins/single_table_inheritance.rb +5 -13
  77. data/lib/sequel/plugins/static_cache.rb +2 -2
  78. data/lib/sequel/plugins/tactical_eager_loading.rb +1 -1
  79. data/lib/sequel/plugins/tree.rb +1 -1
  80. data/lib/sequel/plugins/validation_class_methods.rb +2 -2
  81. data/lib/sequel/plugins/validation_helpers.rb +4 -4
  82. data/lib/sequel/plugins/xml_serializer.rb +3 -3
  83. data/lib/sequel/sql.rb +1 -1
  84. data/lib/sequel/version.rb +1 -1
  85. data/spec/adapters/postgres_spec.rb +17 -0
  86. data/spec/core/connection_pool_spec.rb +1 -1
  87. data/spec/core/dataset_spec.rb +22 -0
  88. data/spec/extensions/auto_validations_spec.rb +1 -1
  89. data/spec/extensions/blacklist_security_spec.rb +2 -2
  90. data/spec/extensions/csv_serializer_spec.rb +173 -0
  91. data/spec/extensions/json_serializer_spec.rb +2 -2
  92. data/spec/extensions/nested_attributes_spec.rb +9 -9
  93. data/spec/extensions/pg_array_spec.rb +5 -0
  94. data/spec/extensions/single_table_inheritance_spec.rb +21 -0
  95. data/spec/extensions/touch_spec.rb +1 -1
  96. data/spec/extensions/tree_spec.rb +4 -0
  97. data/spec/extensions/xml_serializer_spec.rb +3 -3
  98. data/spec/integration/prepared_statement_test.rb +1 -1
  99. data/spec/integration/schema_test.rb +7 -0
  100. data/spec/integration/type_test.rb +2 -2
  101. data/spec/model/associations_spec.rb +108 -14
  102. data/spec/model/base_spec.rb +8 -8
  103. data/spec/model/record_spec.rb +7 -7
  104. metadata +6 -2
@@ -530,15 +530,15 @@ describe Sequel::Model, ".strict_param_setting" do
530
530
  end
531
531
 
532
532
  it "should raise an error if a missing/restricted column/method is accessed" do
533
- proc{@c.new(:z=>1)}.should raise_error(Sequel::Error)
534
- proc{@c.create(:z=>1)}.should raise_error(Sequel::Error)
533
+ proc{@c.new(:z=>1)}.should raise_error(Sequel::MassAssignmentRestriction)
534
+ proc{@c.create(:z=>1)}.should raise_error(Sequel::MassAssignmentRestriction)
535
535
  c = @c.new
536
- proc{c.set(:z=>1)}.should raise_error(Sequel::Error)
537
- proc{c.set_all(:use_after_commit_rollback => false)}.should raise_error(Sequel::Error)
538
- proc{c.set_only({:x=>1}, :y)}.should raise_error(Sequel::Error)
539
- proc{c.update(:z=>1)}.should raise_error(Sequel::Error)
540
- proc{c.update_all(:use_after_commit_rollback=>false)}.should raise_error(Sequel::Error)
541
- proc{c.update_only({:x=>1}, :y)}.should raise_error(Sequel::Error)
536
+ proc{c.set(:z=>1)}.should raise_error(Sequel::MassAssignmentRestriction)
537
+ proc{c.set_all(:use_after_commit_rollback => false)}.should raise_error(Sequel::MassAssignmentRestriction)
538
+ proc{c.set_only({:x=>1}, :y)}.should raise_error(Sequel::MassAssignmentRestriction)
539
+ proc{c.update(:z=>1)}.should raise_error(Sequel::MassAssignmentRestriction)
540
+ proc{c.update_all(:use_after_commit_rollback=>false)}.should raise_error(Sequel::MassAssignmentRestriction)
541
+ proc{c.update_only({:x=>1}, :y)}.should raise_error(Sequel::MassAssignmentRestriction)
542
542
  end
543
543
 
544
544
  it "should be disabled by strict_param_setting = false" do
@@ -1020,24 +1020,24 @@ describe Sequel::Model, "#set" do
1020
1020
 
1021
1021
  it "should raise error if strict_param_setting is true and method does not exist" do
1022
1022
  @o1.strict_param_setting = true
1023
- proc{@o1.set('foo' => 1)}.should raise_error(Sequel::Error)
1023
+ proc{@o1.set('foo' => 1)}.should raise_error(Sequel::MassAssignmentRestriction)
1024
1024
  end
1025
1025
 
1026
1026
  it "should raise error if strict_param_setting is true and column is a primary key" do
1027
1027
  @o1.strict_param_setting = true
1028
- proc{@o1.set('id' => 1)}.should raise_error(Sequel::Error)
1028
+ proc{@o1.set('id' => 1)}.should raise_error(Sequel::MassAssignmentRestriction)
1029
1029
  end
1030
1030
 
1031
1031
  it "should raise error if strict_param_setting is true and column is restricted" do
1032
1032
  @o1.strict_param_setting = true
1033
1033
  @c.set_allowed_columns
1034
- proc{@o1.set('x' => 1)}.should raise_error(Sequel::Error)
1034
+ proc{@o1.set('x' => 1)}.should raise_error(Sequel::MassAssignmentRestriction)
1035
1035
  end
1036
1036
 
1037
1037
  it "should not create a symbol if strict_param_setting is true and string is given" do
1038
1038
  @o1.strict_param_setting = true
1039
1039
  l = Symbol.all_symbols.length
1040
- proc{@o1.set('sadojafdso' => 1)}.should raise_error(Sequel::Error)
1040
+ proc{@o1.set('sadojafdso' => 1)}.should raise_error(Sequel::MassAssignmentRestriction)
1041
1041
  Symbol.all_symbols.length.should == l
1042
1042
  end
1043
1043
 
@@ -1283,12 +1283,12 @@ describe Sequel::Model, "#(set|update)_(all|only)" do
1283
1283
  it "should raise errors if not all hash fields can be set and strict_param_setting is true" do
1284
1284
  @c.strict_param_setting = true
1285
1285
 
1286
- proc{@c.new.set_all(:x => 1, :y => 2, :z=>3, :use_after_commit_rollback => false)}.should raise_error(Sequel::Error)
1286
+ proc{@c.new.set_all(:x => 1, :y => 2, :z=>3, :use_after_commit_rollback => false)}.should raise_error(Sequel::MassAssignmentRestriction)
1287
1287
  (o = @c.new).set_all(:x => 1, :y => 2, :z=>3)
1288
1288
  o.values.should == {:x => 1, :y => 2, :z=>3}
1289
1289
 
1290
- proc{@c.new.set_only({:x => 1, :y => 2, :z=>3, :id=>4}, :x, :y)}.should raise_error(Sequel::Error)
1291
- proc{@c.new.set_only({:x => 1, :y => 2, :z=>3}, :x, :y)}.should raise_error(Sequel::Error)
1290
+ proc{@c.new.set_only({:x => 1, :y => 2, :z=>3, :id=>4}, :x, :y)}.should raise_error(Sequel::MassAssignmentRestriction)
1291
+ proc{@c.new.set_only({:x => 1, :y => 2, :z=>3}, :x, :y)}.should raise_error(Sequel::MassAssignmentRestriction)
1292
1292
  (o = @c.new).set_only({:x => 1, :y => 2}, :x, :y)
1293
1293
  o.values.should == {:x => 1, :y => 2}
1294
1294
  end
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: 4.21.0
4
+ version: 4.22.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: 2015-04-01 00:00:00.000000000 Z
11
+ date: 2015-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -194,6 +194,7 @@ extra_rdoc_files:
194
194
  - doc/release_notes/4.19.0.txt
195
195
  - doc/release_notes/4.20.0.txt
196
196
  - doc/release_notes/4.21.0.txt
197
+ - doc/release_notes/4.22.0.txt
197
198
  files:
198
199
  - CHANGELOG
199
200
  - MIT-LICENSE
@@ -303,6 +304,7 @@ files:
303
304
  - doc/release_notes/4.2.0.txt
304
305
  - doc/release_notes/4.20.0.txt
305
306
  - doc/release_notes/4.21.0.txt
307
+ - doc/release_notes/4.22.0.txt
306
308
  - doc/release_notes/4.3.0.txt
307
309
  - doc/release_notes/4.4.0.txt
308
310
  - doc/release_notes/4.5.0.txt
@@ -505,6 +507,7 @@ files:
505
507
  - lib/sequel/plugins/column_select.rb
506
508
  - lib/sequel/plugins/composition.rb
507
509
  - lib/sequel/plugins/constraint_validations.rb
510
+ - lib/sequel/plugins/csv_serializer.rb
508
511
  - lib/sequel/plugins/dataset_associations.rb
509
512
  - lib/sequel/plugins/defaults_setter.rb
510
513
  - lib/sequel/plugins/dirty.rb
@@ -605,6 +608,7 @@ files:
605
608
  - spec/extensions/constraint_validations_plugin_spec.rb
606
609
  - spec/extensions/constraint_validations_spec.rb
607
610
  - spec/extensions/core_refinements_spec.rb
611
+ - spec/extensions/csv_serializer_spec.rb
608
612
  - spec/extensions/current_datetime_timestamp_spec.rb
609
613
  - spec/extensions/dataset_associations_spec.rb
610
614
  - spec/extensions/dataset_source_alias_spec.rb