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,459 +0,0 @@
1
- = New Adapter Support
2
-
3
- * Sequel now has much better support for Oracle, both in the
4
- ruby-oci8-based oracle adapter and in the jdbc/oracle adapter.
5
-
6
- * Sequel now has much better support for connecting to HSQLDB
7
- using the jdbc adapter. This support does not work correctly
8
- with the jdbc-hsqldb gem, since the version it uses is too
9
- old. You'll need to load the .jar file manually until the
10
- gem is updated.
11
-
12
- * Sequel now has much better support for connecting to Apache
13
- Derby databases using the jdbc adapter. This works with
14
- the jdbc-derby gem, but it's recommend you grab an updated
15
- .jar file as the jdbc-derby gem doesn't currently support
16
- truncate or booleans.
17
-
18
- * The db2 adapter has had most of the remaining issues fixed,
19
- and can now run Sequel's test suite cleanly. It's still
20
- recommended that users switch to the ibmdb adapter if they
21
- are connecting to DB2.
22
-
23
- * A mock adapter has been added which provides a mock Database
24
- object that allows you to easily set the returned rows, the
25
- number of rows modified by update/delete, and the
26
- autogenerating primary key integer for insert. It also allows
27
- you to set specific columns in the dataset when retrieving
28
- rows. The specs were full of partial implementations of
29
- mock adapters, this mock adapter is much more complete and
30
- offers full support for mocking transactions and database
31
- sharding. Example:
32
-
33
- DB = Sequel.mock(:fetch=>{:id=>1}, :numrows=>2, :autoid=>3)
34
- DB[:items].all # => [{:id => 1}]
35
- DB[:items].insert # => 3
36
- DB[:items].insert # => 4
37
- DB[:items].delete # => 2
38
- DB[:items].update(:id=>2) # => 2
39
- DB.sqls # => ['SELECT ...', 'INSERT ...', ...]
40
-
41
- In addition to being useful in the specs, the mock adapter is
42
- also used if you use bin/sequel without a database argument,
43
- which makes it much easier to play around with Sequel on the
44
- command line without being tied to a real database.
45
-
46
- = New Transaction Features
47
-
48
- * Database after_commit and after_rollback hooks have been added,
49
- allowing you to set procs that are called after the currently-
50
- in-effect transaction commits or rolls back. If the Database
51
- is not currently in a transaction, the after_commit proc is
52
- called immediately and the after_rollback proc is ignored.
53
-
54
- * Model after_commit, after_rollback, after_destroy_commit, and
55
- after_destroy_rollback hooks have been added that use the new
56
- Database after_commit/after_rollback hook to execute code after
57
- commit or rollback.
58
-
59
- * Database#transaction now supports a :rollback => :reraise option
60
- to reraise any Sequel::Rollback exceptions raised by the block.
61
-
62
- * Database#transaction now supports a :rollback => :always option
63
- to always rollback the transaction, which is mostly useful when
64
- using transaction-based testing.
65
-
66
- * Sequel.transaction has been added, allowing you to run
67
- simultaneous transactions on multiple Database objects:
68
-
69
- Sequel.transaction([DB1, DB2]){...}
70
- # similar to:
71
- DB1.transaction{DB2.transaction{...}}
72
-
73
- You can combine this with the :rollback => :always option to
74
- easily use multiple databases in the same test suite and make sure
75
- that changes are rolled back on all of them.
76
-
77
- * Database#in_transaction? has been added so that users can detect
78
- whether the code is currently inside a transaction.
79
-
80
- * The generic JDBC transaction support, used by 6 of Sequel's jdbc
81
- subapters, now supports savepoints if the underlying JDBC driver
82
- supports savepoints.
83
-
84
- = Other New Features
85
-
86
- * A dataset_associations plugin has been added, allowing datasets
87
- to call association methods, which return datasets of rows in
88
- the associated table that are associated to rows in the current
89
- dataset.
90
-
91
- # Dataset of tracks from albums with name < 'M'
92
- # by artists with name > 'M'
93
-
94
- Artist.filter(:name > 'M').albums.filter(:name < 'M').tracks
95
-
96
- # SELECT * FROM tracks
97
- # WHERE (tracks.album_id IN (
98
- # SELECT albums.id FROM albums
99
- # WHERE ((albums.artist_id IN (
100
- # SELECT artists.id FROM artists
101
- # WHERE (name > 'M')))
102
- # AND (name < 'M'))))
103
-
104
- * Database#extend_datasets has been added, allowing you to do the
105
- equivalent of extending all of the database's future datasets
106
- with a module. For performance, it creates an anonymous
107
- subclass of the current dataset class and includes a module in
108
- it, and uses the subclass to create future datasets.
109
-
110
- Using this feature allows you to override any dataset method
111
- and call super, similar to how Sequel::Model plugins work. The
112
- method takes either a module:
113
-
114
- Sequel.extension :columns_introspection
115
- DB.extend_datasets(Sequel::ColumnsIntrospection)
116
-
117
- or a block that it uses to create an anonymous module:
118
-
119
- DB.extend_datasets do
120
- # Always select from table.* instead of *
121
- def from(*tables)
122
- ds = super
123
- if !@opts[:select] || @opts[:select].empty?
124
- ds = ds.select_all(*tables)
125
- end
126
- ds
127
- end
128
- end
129
-
130
- * Database#<< and Dataset#<< now return self, which allow them
131
- to be used in chaining:
132
-
133
- DB << "UPDATE foo SET bar_id = NULL" << "DROP TABLE bars"
134
- DB[:foo] << {:bar_id=>0} << DB[:bars].select(:id)
135
-
136
- * A Database#timezone accessor has been added, allowing you to
137
- override Sequel.database_timezone on a per-Database basis, which
138
- allows you to use two separate Database objects in the same
139
- process that have different timezones.
140
-
141
- * You can now modify the type conversion procs on a per-Database
142
- basis when using the mysql, sqlite, and ibmdb adapters, by
143
- modifying the hash returned by Database#conversion_procs.
144
-
145
- * Model.dataset_module now accepts a Module instance as an argument,
146
- and extends the model's dataset with that module.
147
-
148
- * When using the postgres adapter with the pg driver, you can now
149
- use Database#listen to wait for notifications. All adapters that
150
- connect to postgres now support Database#notify to send
151
- notifications:
152
-
153
- # process 1
154
- DB.listen('foo') do |ev, pid, payload|
155
- ev # => 'foo'
156
- notify_pid # => some Integer
157
- payload # => 'bar'
158
- end
159
-
160
- # process 2
161
- DB.notify('foo', :payload=>'bar')
162
-
163
- * many_to_one associations now have a :qualify option that can be set
164
- to false to not qualify the primary key when loading the
165
- association. This shouldn't be necessary to use in most cases, but
166
- in some cases qualifying a primary key breaks certain queries (e.g.
167
- using JOIN USING on the same column on Oracle).
168
-
169
- * Database#schema can now take a dataset as an argument if it just
170
- selects from a single table. If a dataset is provided, the
171
- schema parsing will use that dataset's identifier_input_method
172
- and identifier_output_method for the parsing, instead of the
173
- database's default. This makes it possible for Model classes
174
- to correctly get the table schema if they use a dataset whose
175
- identifier_(input|output)_method differs from the database
176
- default.
177
-
178
- * On databases that support common table expressions (CTEs) but do
179
- not support CTE usage in subselects, Sequel now emulates support
180
- by moving CTEs from the subselect to the main select when using
181
- the Dataset from, from_self, with, with_recursive, union,
182
- intersect, and except methods.
183
-
184
- * The bitwise compliment operator is now emulated on H2.
185
-
186
- * You can now set the convert_tinyint_to_bool setting on a
187
- per-Database basis in the mysql and mysql2 adapters.
188
-
189
- * You can now set the convert_invalid_date_time setting on a
190
- per-Database basis in the mysql adapter.
191
-
192
- * Database instances now have a dataset_class accessor that allows
193
- you to set which class is used when creating datasets. This is
194
- mostly used to implement the extend_datasets support, but it
195
- could be useful for other purposes.
196
-
197
- * Dataset#unused_table_alias now accepts an optional 2nd argument,
198
- which should be an array of additional symbols that should be
199
- considered as already used.
200
-
201
- * Dataset#requires_placeholder_type_specifiers? has been added to
202
- check if the dataset requires you use type specifiers for
203
- bound variable placeholders.
204
-
205
- The prepared_statements plugin now checks this setting and works
206
- correctly on adapters that set it to true, such as oracle.
207
-
208
- * Dataset#recursive_cte_requires_column_aliases? has been added
209
- to check if you must provide a column list for a recursive CTE.
210
-
211
- The rcte_tree plugin now checks this setting an works correctly
212
- on databases that set it to true, such as Oracle and HSQLDB.
213
-
214
- = Performance Improvements
215
-
216
- * Numerous optimizations were made to loading model objects from
217
- the database, resulting in a 7-16% speedup.
218
-
219
- Model.call was added, and now .load is just an alias for .call.
220
- This allows you to make the model dataset's row_proc the model
221
- itself, instead of needing a separate block, which improves
222
- performance.
223
-
224
- While Model.load used to call .new (and therefore #initialize),
225
- Model.call uses .allocate/#set_values/#after_initialize for speed.
226
- This saves a method call or two, and skips setting the @new
227
- instance variable.
228
-
229
- * Dataset#map, #to_hash, #select_map, #select_order_map, and
230
- #select_hash are now faster if any of the provided arguments are
231
- an array of symbols.
232
-
233
- * The Model.[] optimization is now applied in more cases.
234
-
235
- = Other Improvements
236
-
237
- * Sequel now creates accessor methods for all columns in a model's
238
- table, even if the dataset doesn't select the columns. This has
239
- been the specified behavior for a while, but the spec was broken.
240
- This allows you do to:
241
-
242
- Model.dataset = DB[:table].select(:column1, :column2)
243
- Model.select_more(:column3).first.column3
244
-
245
- * Model.def_dataset_method now correctly handles method names that
246
- can't be used directly (such as method names with spaces). This
247
- isn't so the method can be used with arbitrary user input, but
248
- it will allow safe creation of dataset methods that are derived
249
- from column names, which could contain spaces.
250
-
251
- * Model.def_dataset_method no longer overrides private model
252
- methods.
253
-
254
- * The optimization that Model.[] uses now works correctly if the
255
- model's dataset uses a different identifier_input_method than
256
- the database.
257
-
258
- * Sharding is supported correctly by default for the transactions
259
- used by model objects. Previously, you had to use the sharding
260
- plugin to make sure the same shard was used for transactions as
261
- for the insert/update/delete statements.
262
-
263
- * Sequel now fully supports using an aliased table for the
264
- :join_table option of a many_to_many association. The only real
265
- use case for an aliased :join_table option is when the join table
266
- is the same as the associated model table.
267
-
268
- * A bug when eagerly loading a many_through_many association with
269
- composite keys where one of the join tables requires an alias
270
- has been fixed.
271
-
272
- * Sequel's transaction internals have had substantial improvments.
273
- You can now open up simultaneous transactions on two separate
274
- shards of the same Database object in the same thread. The new
275
- design allows for future support of connection pools that aren't
276
- based on threads. Sequel no longer abuses thread-local variables
277
- to store savepoint state.
278
-
279
- * Dataset#select_map and #select_order_map now return an array of
280
- single element arrays if given an array with a single entry as
281
- an argument. Previously, they returned an array of values, which
282
- wasn't consistent.
283
-
284
- * Sequel's emulation of bitwise operators with more than 2 arguments
285
- now works on all adapters that use the emulation. The emulation
286
- was broken in 3.28.0 when more than 2 arguments were used on H2,
287
- DB2, Microsoft SQL Server, PostgreSQL, and SQLite.
288
-
289
- * Dataset#columns now correctly handles the emulated offset support
290
- used on DB2, Oracle, and Microsoft SQL Server when using the
291
- jdbc, odbc, ado, and dbi adapters. Previously, Dataet#columns
292
- could contain the row number column, which wasn't in the
293
- hashes yielded by Dataset#each.
294
-
295
- * Sequel can now parse primary key information on Microsoft SQL
296
- Server. Previously, the only adapter that supported this was the
297
- jdbc adapter, which uses the generic JDBC support. The shared
298
- mssql adapter now supports parsing the information directly from
299
- the database system tables. This means that if you are using
300
- Model objects with a Microsoft SQL Server database using the
301
- tinytds, odbc, or ado adapters, the model primary key
302
- information will be set automatically.
303
-
304
- * Sequel's prepared statement support no longer defines singleton
305
- methods on the prepared statement objects.
306
-
307
- * StringMethods#like is now case sensitive on SQLite and Microsoft
308
- SQL Server, making it more similar to other databases.
309
-
310
- * Sequel now works around an SQLite column naming bug if you select
311
- columns qualified with the alias of a subselect without providing
312
- an alias for the column itself.
313
-
314
- * Sequel now handles more bound variable types when using bound
315
- variables outside of prepared statements on SQLite.
316
-
317
- * Sequel now works around a bug in certain versions of the
318
- JDBC/SQLite driver when emulating alter table support for
319
- operations such as drop_column.
320
-
321
- * Sequel now emulates the add_constraint and drop_constraint
322
- alter table operations on SQLite, though the emulation has
323
- issues.
324
-
325
- * Sequel now correctly handles composite primary keys when
326
- emulating alter_table operations on SQLite.
327
-
328
- * Sequel now applies the correct PRAGMA statements by default when
329
- connecting to SQLite via the amalgalite and swift adapters.
330
-
331
- * Sequel now supports using savepoints inside prepared transactions
332
- on MySQL.
333
-
334
- * Sequel now closes JDBC ResultSet objects as soon as it is done
335
- using them, leading to potentially lower memory usage in the JDBC
336
- adapter, and fixes issues if you try to drop a table before
337
- GC has collected a related ResultSet.
338
-
339
- * Sequel can now correctly insert all default values into a table
340
- on DB2. Before, this didn't work correctly if the table had more
341
- than one column.
342
-
343
- * Another type of disconnection error is now recognized in the
344
- mysql2 adapter.
345
-
346
- * Sequel now uses better error messages if you attempt to execute a
347
- prepared statement without a name using the postgres, mysql, and
348
- mysql2 adapters.
349
-
350
- * Some small fixes have been made that allow Sequel to run better
351
- when $SAFE=1. However, Sequel is not officially supported using
352
- $SAFE > 0, so there could be many issues remaining.
353
-
354
- * Sequel's core and model specs were cleaned up by using the mock
355
- adapter to eliminate a lot of redundant code.
356
-
357
- * Sequel's integration tests were sped up considerably, halving
358
- the execution time on some adapters.
359
-
360
- = Backwards Compatibility
361
-
362
- * Because Model.load is now an alias for .call, plugins should no
363
- longer override load. Instead, they should override .call.
364
-
365
- * Loading model objects from the database no longer calls
366
- Model#initialize. Instead, it calls Model.allocate,
367
- Model#set_values, and Model#after_initialize. So if you were
368
- overriding #initialize and expecting the changes to affect model
369
- objects loaded from the database, you need to change your code.
370
-
371
- Additionally, @new is no longer set to false for objects retieved
372
- from the database, since setting it to false hurts performance.
373
- Model#new? still returns true or false, so this only affects you
374
- if you are checking the instance variables directly.
375
-
376
- * Dataset#<< no longer returns the autogenerated primary key for the
377
- inserted row. As mentioned above, it now returns self to allow for
378
- chaining. If you were previously relying on the return value,
379
- switch from #<< to #insert.
380
-
381
- * Dataset#map no longer calls the row_proc if given an argument, and
382
- Dataset#to_hash no longer calls the row_proc if given two arguments.
383
- This should only affect your code if you were using a row_proc that
384
- modified the content of the hash (e.g. Model#after_initialize). If
385
- you were relying on the old behavior, switch:
386
-
387
- dataset.map(:foo)
388
- # to
389
- dataset.map{|r| r[:foo]}
390
-
391
- dataset.to_hash(:foo, :bar)
392
- # to
393
- h = {}
394
- dataset.each{|r| h[r[:foo]] = r[:bar]}
395
- h
396
-
397
- * Model classes now need to have a dataset before you can define
398
- associations on them.
399
-
400
- * Model classes now pass their dataset to Database#schema, instead of
401
- their table name.
402
-
403
- * The :eager_block association option (which defaults to the
404
- association's block argument) is now called before the :eager_graph
405
- association option has been applied, instead of after.
406
-
407
- * The many_to_many association reflection :qualified_right_key entry
408
- is now a method named qualified_right_key. Switch any
409
- code using association_reflection[:qualified_right_key] to use
410
- association_reflection.qualified_right_key.
411
-
412
- * If you are using like on SQLite and Microsoft SQL Server and want
413
- it to be case insensitive, switch to using ilike:
414
-
415
- # Case sensitive
416
- DB[:foos].where(:name.like('bar%'))
417
- # Case insensitive
418
- DB[:foos].where(:name.ilike('bar%'))
419
-
420
- Sequel now sets the case_sensitive_like PRAGMA to true by default
421
- on SQLite. To set it to false instead, pass the
422
- :case_sensitive_like=>false option to the database when creating it.
423
-
424
- * Sequel's alter table emulation on SQLite now renames the current
425
- table then populates the replacement table, instead of
426
- populating the replacement table at a temporary name, dropping
427
- the current table, and then renaming the replacement table.
428
-
429
- * The strings 'n' and 'no' (case insensitive) when typecasted to
430
- boolean are now considered false values instead of true.
431
-
432
- * The transaction internals had extensive changes, if you have any
433
- code that depended on the transaction internals, it will probably
434
- require changes.
435
-
436
- * Using the Sequel::MySQL module settings for convert_tinyint_to_bool
437
- and convert_invalid_date_time now only affects future Database
438
- objects. You should switch to using the per-Database methods
439
- if you are currently using the Sequel::MySQL module methods.
440
-
441
- * The customized transaction support in the do (DataObjects) adapter
442
- was removed. All three subadapters (postgres, mysql, sqlite) of
443
- the do adapter implement their own transaction support, so this
444
- should have no effect unless you were using the do adapter with
445
- a different database type.
446
-
447
- * The oracle support changed dramatically, so if you were relying
448
- on the internals of the oracle support, you should take extra
449
- care when upgrading.
450
-
451
- = Advance Notice
452
-
453
- * The next release of Sequel will contain significant changes to
454
- how a dataset is literalized into an SQL string. If you have
455
- a custom plugin, extension, or adapter that overrides a
456
- method containing "literal", "sql", or "quote", or you make
457
- other modifications or extensions to how Sequel currently
458
- literalizes datasets to SQL, your code will likely need to
459
- be modified to support the next release.