sequel 5.6.0 → 5.7.0

Sign up to get free protection for your applications and to get access to all the features.
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.