sequel 5.6.0 → 5.7.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 (107) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +30 -5099
  3. data/Rakefile +1 -1
  4. data/doc/opening_databases.rdoc +0 -2
  5. data/doc/postgresql.rdoc +31 -0
  6. data/doc/querying.rdoc +2 -2
  7. data/doc/release_notes/5.7.0.txt +108 -0
  8. data/doc/testing.rdoc +1 -0
  9. data/lib/sequel/adapters/jdbc/derby.rb +1 -1
  10. data/lib/sequel/adapters/jdbc/oracle.rb +11 -0
  11. data/lib/sequel/adapters/postgres.rb +1 -0
  12. data/lib/sequel/adapters/shared/postgres.rb +117 -13
  13. data/lib/sequel/connection_pool/sharded_threaded.rb +7 -6
  14. data/lib/sequel/connection_pool/threaded.rb +6 -6
  15. data/lib/sequel/core.rb +20 -0
  16. data/lib/sequel/database/logging.rb +3 -2
  17. data/lib/sequel/database/schema_generator.rb +1 -2
  18. data/lib/sequel/dataset/actions.rb +15 -5
  19. data/lib/sequel/extensions/connection_expiration.rb +3 -3
  20. data/lib/sequel/extensions/connection_validator.rb +3 -3
  21. data/lib/sequel/extensions/integer64.rb +30 -0
  22. data/lib/sequel/extensions/migration.rb +2 -3
  23. data/lib/sequel/plugins/pg_array_associations.rb +5 -3
  24. data/lib/sequel/plugins/validate_associated.rb +18 -0
  25. data/lib/sequel/version.rb +1 -1
  26. data/spec/adapters/mssql_spec.rb +6 -6
  27. data/spec/adapters/mysql_spec.rb +1 -1
  28. data/spec/adapters/oracle_spec.rb +15 -1
  29. data/spec/adapters/postgres_spec.rb +78 -1
  30. data/spec/adapters/spec_helper.rb +3 -1
  31. data/spec/bin_spec.rb +1 -0
  32. data/spec/core/dataset_spec.rb +10 -0
  33. data/spec/extensions/integer64_spec.rb +22 -0
  34. data/spec/extensions/pg_array_associations_spec.rb +14 -2
  35. data/spec/extensions/spec_helper.rb +1 -0
  36. data/spec/integration/associations_test.rb +4 -4
  37. data/spec/integration/dataset_test.rb +2 -0
  38. data/spec/integration/spec_helper.rb +5 -11
  39. data/spec/model/spec_helper.rb +1 -0
  40. metadata +35 -165
  41. data/doc/release_notes/1.0.txt +0 -38
  42. data/doc/release_notes/1.1.txt +0 -143
  43. data/doc/release_notes/1.3.txt +0 -101
  44. data/doc/release_notes/1.4.0.txt +0 -53
  45. data/doc/release_notes/1.5.0.txt +0 -155
  46. data/doc/release_notes/2.0.0.txt +0 -298
  47. data/doc/release_notes/2.1.0.txt +0 -271
  48. data/doc/release_notes/2.10.0.txt +0 -328
  49. data/doc/release_notes/2.11.0.txt +0 -215
  50. data/doc/release_notes/2.12.0.txt +0 -534
  51. data/doc/release_notes/2.2.0.txt +0 -253
  52. data/doc/release_notes/2.3.0.txt +0 -88
  53. data/doc/release_notes/2.4.0.txt +0 -106
  54. data/doc/release_notes/2.5.0.txt +0 -137
  55. data/doc/release_notes/2.6.0.txt +0 -157
  56. data/doc/release_notes/2.7.0.txt +0 -166
  57. data/doc/release_notes/2.8.0.txt +0 -171
  58. data/doc/release_notes/2.9.0.txt +0 -97
  59. data/doc/release_notes/3.0.0.txt +0 -221
  60. data/doc/release_notes/3.1.0.txt +0 -406
  61. data/doc/release_notes/3.10.0.txt +0 -286
  62. data/doc/release_notes/3.11.0.txt +0 -254
  63. data/doc/release_notes/3.12.0.txt +0 -304
  64. data/doc/release_notes/3.13.0.txt +0 -210
  65. data/doc/release_notes/3.14.0.txt +0 -118
  66. data/doc/release_notes/3.15.0.txt +0 -78
  67. data/doc/release_notes/3.16.0.txt +0 -45
  68. data/doc/release_notes/3.17.0.txt +0 -58
  69. data/doc/release_notes/3.18.0.txt +0 -120
  70. data/doc/release_notes/3.19.0.txt +0 -67
  71. data/doc/release_notes/3.2.0.txt +0 -268
  72. data/doc/release_notes/3.20.0.txt +0 -41
  73. data/doc/release_notes/3.21.0.txt +0 -87
  74. data/doc/release_notes/3.22.0.txt +0 -39
  75. data/doc/release_notes/3.23.0.txt +0 -172
  76. data/doc/release_notes/3.24.0.txt +0 -420
  77. data/doc/release_notes/3.25.0.txt +0 -88
  78. data/doc/release_notes/3.26.0.txt +0 -88
  79. data/doc/release_notes/3.27.0.txt +0 -82
  80. data/doc/release_notes/3.28.0.txt +0 -304
  81. data/doc/release_notes/3.29.0.txt +0 -459
  82. data/doc/release_notes/3.3.0.txt +0 -192
  83. data/doc/release_notes/3.30.0.txt +0 -135
  84. data/doc/release_notes/3.31.0.txt +0 -146
  85. data/doc/release_notes/3.32.0.txt +0 -202
  86. data/doc/release_notes/3.33.0.txt +0 -157
  87. data/doc/release_notes/3.34.0.txt +0 -671
  88. data/doc/release_notes/3.35.0.txt +0 -144
  89. data/doc/release_notes/3.36.0.txt +0 -245
  90. data/doc/release_notes/3.37.0.txt +0 -338
  91. data/doc/release_notes/3.38.0.txt +0 -234
  92. data/doc/release_notes/3.39.0.txt +0 -237
  93. data/doc/release_notes/3.4.0.txt +0 -325
  94. data/doc/release_notes/3.40.0.txt +0 -73
  95. data/doc/release_notes/3.41.0.txt +0 -155
  96. data/doc/release_notes/3.42.0.txt +0 -74
  97. data/doc/release_notes/3.43.0.txt +0 -105
  98. data/doc/release_notes/3.44.0.txt +0 -152
  99. data/doc/release_notes/3.45.0.txt +0 -179
  100. data/doc/release_notes/3.46.0.txt +0 -122
  101. data/doc/release_notes/3.47.0.txt +0 -270
  102. data/doc/release_notes/3.48.0.txt +0 -477
  103. data/doc/release_notes/3.5.0.txt +0 -510
  104. data/doc/release_notes/3.6.0.txt +0 -366
  105. data/doc/release_notes/3.7.0.txt +0 -179
  106. data/doc/release_notes/3.8.0.txt +0 -151
  107. data/doc/release_notes/3.9.0.txt +0 -233
@@ -1,118 +0,0 @@
1
- = New Features
2
-
3
- * Dataset#grep now accepts :all_patterns, :all_columns, and
4
- :case_insensitive options. Previously, grep would use a case
5
- sensitive search where it would match if any pattern matched any
6
- column. These three options give you more control over how the
7
- pattern matching will work:
8
-
9
- dataset.grep([:a, :b], %w'%test% foo')
10
- # WHERE ((a LIKE '%test%') OR (a LIKE 'foo')
11
- # OR (b LIKE '%test%') OR (b LIKE 'foo'))
12
-
13
- dataset.grep([:a, :b], %w'%foo% %bar%', :all_patterns=>true)
14
- # WHERE (((a LIKE '%foo%') OR (b LIKE '%foo%'))
15
- # AND ((a LIKE '%bar%') OR (b LIKE '%bar%')))
16
-
17
- dataset.grep([:a, :b], %w'%foo% %bar%', :all_columns=>true)
18
- # WHERE (((a LIKE '%foo%') OR (a LIKE '%bar%'))
19
- # AND ((b LIKE '%foo%') OR (b LIKE '%bar%')))
20
-
21
- dataset.grep([:a, :b], %w'%foo% %bar%',
22
- :all_patterns=>true,:all_columns=>true)
23
- # WHERE ((a LIKE '%foo%') AND (b LIKE '%foo%')
24
- # AND (a LIKE '%bar%') AND (b LIKE '%bar%'))
25
-
26
- dataset.grep([:a, :b], %w'%test% foo', :case_insensitive=>true)
27
- # WHERE ((a ILIKE '%test%') OR (a ILIKE 'foo')
28
- # OR (b ILIKE '%test%') OR (b ILIKE 'foo'))
29
-
30
- * When using the schema plugin, you can now provide a block to the
31
- create_table methods to set the schema and create the table
32
- in the same call:
33
-
34
- class Artist < Sequel::Model
35
- create_table do
36
- primary_key :id
37
- String :name
38
- end
39
- end
40
-
41
- * The tree plugin now accepts a :single_root option, which uses a
42
- before_save hook to attempt to ensure that there is only a single
43
- root in the tree. It also adds a Model.root method to get the
44
- single root of the tree.
45
-
46
- * The tree plugin now adds a Model#root? instance method to check
47
- if the current node is a root of the tree.
48
-
49
- * Model#save now takes a :raise_on_failure option which will
50
- override the object's raise_on_save_failure setting. This makes
51
- it easier to get the desired behavior (raise or just return false)
52
- in library code without using a begin/ensure block.
53
-
54
- * The Database#adapter_scheme instance method was added, which
55
- operates the same as the class method.
56
-
57
- * Sequel now handles the literalization of OCI8::CLOB objects in
58
- the Oracle adapter.
59
-
60
- = Other Improvements
61
-
62
- * When using the timezone support, Sequel will now correctly load
63
- times and datetimes in standard time when the current timezone is
64
- in daylight time, or vice versa. Previously, if you tried to
65
- to load a time or datetime in December when in July in a timezone
66
- that used daylight time, it would be off by an hour.
67
-
68
- * The rcte_tree plugin now works correctly when a :conditions option
69
- is used.
70
-
71
- * The single_table_inheritance plugin now works correctly when the
72
- class discriminator column has the same name as an existing ruby
73
- method (such as type).
74
-
75
- * Database#each_server now works correctly when a connection string
76
- is used to connect, instead of an options hash.
77
-
78
- * Model#destroy now respects the object's use_transactions setting,
79
- instead of always using a transaction.
80
-
81
- * Model#exists? now uses a simpler and faster query.
82
-
83
- * Sequel now handles the aggregate methods such as count and sum
84
- correctly on Microsoft SQL Server when using an ordered dataset
85
- with a clause such as DISTINCT or GROUP and without a limit.
86
-
87
- * Sequel now handles rename_table correctly on Microsoft SQL Server
88
- when using a case sensitive collation, or when qualifying the
89
- table with a schema.
90
-
91
- * Sequel now parses the schema correctly on Oracle when the same
92
- table name is used in multiple schemas.
93
-
94
- * Sequel now handles OCIInvalidHandle errors when disconnecting
95
- in the Oracle adapter.
96
-
97
- * Sequel now raises a Sequel::Error instead of an ArgumentError
98
- if the current or target migration version does not exist.
99
-
100
- * When a mismatched number of composite keys are used in
101
- associations, Sequel now uses a more detailed error message.
102
-
103
- * Significant improvements were made to the Dataset and Model
104
- RDoc documentation.
105
-
106
- = Backwards Compatibility
107
-
108
- * Model#valid? now must accept an optional options hash.
109
-
110
- * The Model#save_failure private method was renamed to
111
- raise_hook_failure.
112
-
113
- * The LOCAL_DATETIME_OFFSET_SECS and LOCAL_DATETIME_OFFSET constants
114
- have been removed from the Sequel module.
115
-
116
- * Sequel now uses obj.to_json instead of JSON.generate(obj). This
117
- shouldn't affect backwards compatibility, but did fix a bug in
118
- certain cases.
@@ -1,78 +0,0 @@
1
- = Performance Enhancements
2
-
3
- * A mysql2 adapter was added to Sequel. It offers a large (2-6x)
4
- performance increase over the standard mysql adapter. In order to
5
- use it, you need to install mysql2, and change your connection
6
- strings to use mysql2:// instead of mysql://.
7
-
8
- * Support for sequel_pg was added to the native postgres adapter,
9
- when pg is being used as the backend. sequel_pg also offers a
10
- large (2-6x) performance increase over the default row fetching
11
- code that the Sequel postgres adapter uses. In order to use it,
12
- you just need to install sequel_pg, and the postgres adapter will
13
- pick it up automatically.
14
-
15
- * Mass assignment has been made about 10x faster by caching the
16
- allowed setter methods in the model.
17
-
18
- = Other Improvements
19
-
20
- * The following construct is now safe to use in environments that
21
- reload code without unloading existing constants:
22
-
23
- class MyModel < Sequel::Model(DB[:table])
24
- end
25
-
26
- Previously, this would raise a superclass mismatch TypeError.
27
-
28
- * Sequel now handles the case where both an implicit and an explicit
29
- table alias are given to join_table, preferring the explicit alias.
30
- This can happen if you are using models with aliased table names
31
- and eager graphing them. Previously, this would result in invalid
32
- SQL, with both aliases being used.
33
-
34
- * You can use use an aliased table for the :join_table option
35
- of a many_to_many association.
36
-
37
- * The active_model plugin now supports the final release of
38
- ActiveModel 3.0.0.
39
-
40
- * Typecasting now works correctly for attributes loaded lazily
41
- when using the lazy_attributes plugin.
42
-
43
- * The class_table_inheritance plugin now works with non-integer
44
- primary keys on SQLite.
45
-
46
- * Temporary tables are now ignored when parsing the schema on
47
- PostgreSQL.
48
-
49
- * On MySQL, an :auto_increment key with a true value is added to
50
- the Database#schema output hash if the related column is
51
- auto incrementing.
52
-
53
- * The mysql adapter now handles Mysql::Error exceptions raised when
54
- disconnecting.
55
-
56
- * On SQLite, emulated alter_table commands that require dropping
57
- the table now preserve the foreign key information, if SQLite
58
- foreign key support is enabled (it is by default).
59
-
60
- * DSN-less connections now work correctly in more cases in the
61
- ODBC adapter.
62
-
63
- * A workaround has been added for a bug in the Microsoft SQL
64
- Server JDBC Driver 3.0, involving it incorrectly returning a
65
- smallint instead of a char type for the IS_AUTOINCREMENT
66
- metadata value.
67
-
68
- * An bug in the error handling when connecting to PostgreSQL using
69
- the do (DataObjects) adapter has been fixed.
70
-
71
- = Backwards Compatibility
72
-
73
- * The caching of allowed mass assignment methods can result in the
74
- incorrect exception class being raised if you manually undefine
75
- instance setter methods in the model class. If you do this, you
76
- need to clear the setter methods cache manually:
77
-
78
- MyModel.clear_setter_methods_cache
@@ -1,45 +0,0 @@
1
- = New Adapter
2
-
3
- * A swift adapter was added to Sequel. Swift is a relatively new
4
- ruby database library, built on top of a relatively new backend
5
- called dbic++. While not yet considered production ready, it is
6
- very fast. The swift adapter is about 33% faster and 40% more
7
- memory efficient for selects than the postgres adapter using pg
8
- with sequel_pg, though it is slower and less memory efficient
9
- for inserts and updates.
10
-
11
- Sequel's swift adapter currently supports only PostgreSQL and
12
- MySQL, but support for other databases will probably be added in
13
- the future.
14
-
15
- = Other Improvements
16
-
17
- * Sequel now correctly literalizes DateTime objects on ruby 1.9 for
18
- databases that support fractional seconds.
19
-
20
- * The identity_map plugin now handles composite keys in many_to_one
21
- associations.
22
-
23
- * The rcte_tree plugin now works when the model's dataset does not
24
- select all columns. This can happen when using the lazy_attributes
25
- plugin on the same model.
26
-
27
- * Sequel now supports INTERSECT and EXCEPT on Microsoft SQL Server
28
- 2005+.
29
-
30
- * The Database#create_language method in the shared PostgreSQL
31
- adapter now accepts a :replace option to replace the currently
32
- loaded procedural language if it already exists. This option
33
- is ignored for PostgreSQL versions before 9.0.
34
-
35
- * The identity_map plugin now handles cases where the plugin is
36
- loaded separately by two different models.
37
-
38
- = Backwards Compatibility
39
-
40
- * While not technically backwards compatibility related, it was
41
- discovered that the identity_map plugin is incompatible with
42
- the standard eager loading of many_to_many and many_through_many
43
- associations. If you want to eagerly load those associations and
44
- use the identity_map plugin, you should use eager_graph instead
45
- of eager.
@@ -1,58 +0,0 @@
1
- = New Features
2
-
3
- * You can now change the level at which Sequel logs SQL statements,
4
- by calling Database#sql_log_level= with the method name symbol.
5
- The default is still :info for backwards compatibility. Previously,
6
- you had to use a proxy logger to get similar capability.
7
-
8
- * You can now specify graph aliases where the alias would be the same
9
- as the table column name using just the table name symbol, instead
10
- having to repeat the alias as the second element of an array. More
11
- clearly:
12
-
13
- # < 3.17.0:
14
- DB[:a].graph(:b, :a_id=>:id).
15
- set_graph_aliases(:c=>[:a, :c], :d=>[:b, :d])
16
- # >= 3.17.0:
17
- DB[:a].graph(:b, :a_id=>:id).set_graph_aliases(:c=>:a, :d=>:b)
18
-
19
- Both of these now yield the SQL:
20
-
21
- SELECT a.c, b.d FROM a LEFT OUTER JOIN b ON (b.a_id = a.id)
22
-
23
- * You should now be able to connect to MySQL over SSL in the native
24
- MySQL adapter using the :sslca, :sslkey, and related options.
25
-
26
- * Database#views and Database#view_exists? methods were added to the
27
- Oracle adapter, allowing you to get a an array of view name symbols
28
- and to check whether a given view exists.
29
-
30
- = Other Improvements
31
-
32
- * The nested_attributes plugin now avoids unnecessary update calls
33
- when deleting associated objects, resulting in better performance.
34
-
35
- * The optimistic_locking plugin now increments the lock column if no
36
- other columns were modified but the Model#modified! was called. This
37
- means it now works correctly with the nested_attributes plugin when
38
- no changes to the main model object are made.
39
-
40
- * The xml_serializer plugin can now round-trip nil values correctly.
41
- Previously, nil values would be converted into empty strings. This
42
- is accomplished by including a nil attribute in the xml tag.
43
-
44
- * Database#each_server now works correctly when using the jdbc and do
45
- adapters and a connection string without a separate :adapter option.
46
-
47
- * You can now clone many_through_many associations.
48
-
49
- * The default wait_timeout used by the mysql and mysql2 adapters was
50
- decreased slightly so that it works correctly with MySQL database
51
- servers that run on Windows.
52
-
53
- * Many improvements were made to the AS400 jdbc subadapter.
54
-
55
- * Many improvements were made to the swift adapter and subadapters.
56
-
57
- * Dataset#ungraphed now removes any cached graph aliases set with
58
- set_graph_aliases or add_graph_aliases.
@@ -1,120 +0,0 @@
1
- = New Features
2
-
3
- * Reversible migration support has been added:
4
-
5
- Sequel.migration do
6
- change do
7
- create_table(:artists) do
8
- primary_key :id
9
- String :name, :null=>false
10
- end
11
- end
12
- end
13
-
14
- The change block acts the same way as an up block, except that
15
- it automatically creates a down block that reverses the changes.
16
- So the above is equivalent to:
17
-
18
- Sequel.migration do
19
- up do
20
- create_table(:artists) do
21
- primary_key :id
22
- String :name, :null=>false
23
- end
24
- end
25
- down do
26
- drop_table :artists
27
- end
28
- end
29
-
30
- The following methods are supported in a change block:
31
-
32
- * create_table
33
- * add_column
34
- * add_index
35
- * rename_column
36
- * rename_table
37
- * alter_table (supporting the following methods):
38
- * add_column
39
- * add_constraint
40
- * add_foreign_key (with a symbol, not an array)
41
- * add_primary_key (with a symbol, not an array)
42
- * add_index
43
- * add_full_text_index
44
- * add_spatial_index
45
- * rename_column
46
-
47
- Use of an other method in a change block will result in the
48
- creation of a down block that raises an exception.
49
-
50
- * A to_dot extension has been added that adds a Dataset#to_dot
51
- method, which returns a string that can be used as input to
52
- the graphviz dot program in order to create visualizations
53
- of the dataset's abstract syntax tree. Examples:
54
-
55
- * http://sequel.jeremyevans.net/images/to_dot_simple.gif
56
- * http://sequel.jeremyevans.net/images/to_dot_complex.gif
57
-
58
- Both the to_dot extension and reversible migrations support
59
- were inspired by Aaron Patterson's recent work on ActiveRecord
60
- and ARel.
61
-
62
- * The user can now control how the connection pool handles attempts
63
- to access shards that haven't been configured. The default is
64
- still to assume the :default shard. However, you can specify a
65
- different shard using the :servers_hash option when connecting
66
- to the database:
67
-
68
- DB = Sequel.connect(..., :servers_hash=>Hash.new(:some_shard))
69
-
70
- You can also use this feature to raise an exception if an
71
- unconfigured shard is used:
72
-
73
- DB = Sequel.connect(..., :servers_hash=>Hash.new{raise ...})
74
-
75
- * The mysql and mysql2 adapters now both support the :read_timeout
76
- and :connect_timeout options. read_timeout is the timeout in
77
- seconds for reading back results of a query, and connect_timeout
78
- is the timeout in seconds before a connection attempt is abandoned.
79
-
80
- = Other Improvements
81
-
82
- * The json_serializer plugin will now typecast column values for
83
- columns with unrestricted setter methods when parsing JSON into
84
- model objects. It now also calls the getter method when creating
85
- the JSON, instead of directly taking the values from the underlying
86
- hash.
87
-
88
- * When parsing the schema for a model with an aliased table name,
89
- the unaliased table name is now used.
90
-
91
- * The SQLite adapter has been updated to not rely on the native
92
- type_translation support, since that will be removed in the next
93
- major version of sqlite3-ruby. Sequel now implements it's own
94
- type translation in the sqlite adapter, similarly to how the mysql
95
- and postgres adapters handle type translation.
96
-
97
- * On SQLite, when emulating natively unsupported schema methods such
98
- as drop_column, Sequel will now attempt to recreate applicable
99
- indexes on the underlying table.
100
-
101
- * A more informative error message is now used when connecting fails
102
- when using the jdbc adapter.
103
-
104
- * method_missing is no longer removed from Sequel::BasicObject on
105
- ruby 1.8. This should improve compatibility in some cases with
106
- Rubinius.
107
-
108
- = Backwards Compatibility
109
-
110
- * On SQLite, Sequel no longer assumes that a plain integer in a
111
- datetime or timestamp field represents a unix epoch time.
112
-
113
- * Previously, saving a model object that used the instance_hooks
114
- plugin removed all instance hooks. Now, only the applicable hooks
115
- are removed. So if you save a new object, the update instance
116
- hooks won't be removed. And if you save an existing object, delete
117
- instance hooks won't be removed.
118
-
119
- * The private Dataset#identifier_list method has been moved into the
120
- SQLite adapter, since that is the only place it was used.
@@ -1,67 +0,0 @@
1
- = New Features
2
-
3
- * The add_* association methods now accept a primary key, and
4
- associates the receiver to the associated model object with that
5
- primary key:
6
-
7
- artist.add_album(42)
8
- # equivalent to: artist.add_album(Album[42])
9
-
10
- * The validation_class_methods plugin now has the ability to
11
- reflect on validations:
12
-
13
- Album.plugin :validation_class_methods
14
- Album.validates_acceptance_of(:a)
15
- Album.validation_reflections
16
- # => {:a=>[[:acceptance, {:tag=>:acceptance, :allow_nil=>true,
17
- :message=>"is not accepted", :accept=>"1"}]]}
18
-
19
- = Other Improvements
20
-
21
- * In the postgres, mysql, and sqlite adapters, typecasting now uses
22
- methods instead of procs. Since methods aren't closures (while
23
- procs are), this makes typecasting faster (up to 15%).
24
-
25
- * When typecasting model column values, the classes of the new and
26
- existing values are checked in addition to the values themselves.
27
- Previously, if the new and existing values were equal (i.e. 1.0
28
- and 1), it wouldn't update the value. Now, if the classes are
29
- different, it always updates the value.
30
-
31
- * Date and DateTime objects are now handled correctly when using
32
- prepared statements/bound variables in the jdbc adapter.
33
-
34
- * Date, DateTime, Time, true, false, and SQL::Blob objects are now
35
- handled correctly when using prepared statements/bound variables
36
- in the sqlite adapter.
37
-
38
- * Sequel now uses varbinary(max) instead of image for the generic
39
- File (blob) type on Microsoft SQL Server. This makes it possible
40
- to use an SQL::Blob object as a prepared statement argument.
41
-
42
- * Sequel now handles blobs better in the Amalgalite adapter.
43
-
44
- * When disconnecting a connection using the sqlite adapter, all
45
- open prepared statements are now closed first. Previously,
46
- attempting to disconnect a connection with open prepared statements
47
- resulted in an error.
48
-
49
- * The license file has been renamed from COPYING to MIT-LICENSE, to
50
- make it easier to determine at a glance which license is used.
51
-
52
- = Backwards Compatibility
53
-
54
- * Because Sequel switched the generic File type from image to
55
- varbinary(max) on Microsoft SQL Server, any migrations/schema
56
- modification methods that used the File type will now result in a
57
- different column type than before.
58
-
59
- * The MYSQL_TYPE_PROCS, PG_TYPE_PROCS, and SQLITE_TYPE_PROCS
60
- constants have been removed from the mysql, postgres, and sqlite
61
- adapters, respectively. The UNIX_EPOCH_TIME_FORMAT and
62
- FALSE_VALUES constants have also been removed from the sqlite
63
- adapter.
64
-
65
- * Typecasting in the sqlite adapters now uses to_i and to_f instead
66
- of Integer() and Float() with rescues. If you put non-numeric
67
- data in numeric columns on SQLite, this could cause problems.