forked from jeremyevans/sequel
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
5958 lines (2982 loc) · 257 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=== HEAD
* Allow postgresql:// connection strings as aliases to postgres://, for compatibility with libpq (jeremyevans) (#1004)
* Make Model#move_to in the list plugin handle out-of-range targets without raising an exception (jeremyevans) (#1003)
* Make Database#add_named_conversion_proc on PostgreSQL handle conversion procs for enum types (celsworth) (#1002)
=== 4.22.0 (2015-05-01)
* Deprecate the db2, dbi, fdbsql, firebird, jdbc/fdbsql, informix, and openbase adapters (jeremyevans)
* Avoid hash allocations and rehashes (jeremyevans)
* Don't silently ignore :jdbc_properties Database option in jdbc adapter (jeremyevans)
* Make tree plugin set reciprocal association for children association correctly (lpil, jeremyevans) (#995)
* Add Sequel::MassAssignmentRestriction exception, raised for mass assignment errors in strict mode (jeremyevans) (#994)
* Handle ODBC::SQL_BIT type as boolean in the odbc adapter, fixing boolean handling on odbc/mssql (jrgns) (#993)
* Make :auto_validations plugin check :default entry instead of :ruby_default entry for checking existence of default value (jeremyevans) (#990)
* Adapters should now set :default schema option to nil when adapter can determine that the value is nil (jeremyevans)
* Do not add a schema :max_length entry for a varchar(max) column on MSSQL (jeremyevans)
* Allow :default value for PostgreSQL array columns to be a ruby array when using the pg_array extension (jeremyevans) (#989)
* Add csv_serializer plugin for serializing model objects to and from csv (bjmllr, jeremyevans) (#988)
* Make Dataset#to_hash and #to_hash_groups handle single array argument for model datasets (jeremyevans)
* Handle Model#cancel_action in association before hooks (jeremyevans)
* Use a condition variable instead of busy waiting in the threaded connection pools on ruby 1.9+ (jeremyevans)
* Use Symbol#to_proc instead of explicit blocks (jeremyevans)
=== 4.21.0 (2015-04-01)
* Support :tsquery and :tsvector options in Dataset#full_text_search on PostgreSQL, for using existing tsquery/tsvector expressions (jeremyevans)
* Fix TinyTds::Error being raised when trying to cancel a query on a closed connection in the tinytds adapter (jeremyevans)
* Add GenericExpression#!~ for inverting =~ on ruby 1.9 (similar to inverting a hash) (jeremyevans) (#979)
* Add GenericExpression#=~ for equality, inclusion, and pattern matching (similar to using a hash) (jeremyevans) (#979)
* Add Database#add_named_conversion_proc on PostgreSQL to make it easier to add conversion procs for types by name (jeremyevans)
* Make Sequel.pg_jsonb return JSONBOp instances instead of JSONOp instances when passed other than Array or Hash (jeremyevans) (#977)
* Demodulize default root name in json_serializer plugin (janko-m) (#968)
* Make Database#transaction work in after_commit/after_rollback blocks (jeremyevans)
=== 4.20.0 (2015-03-03)
* Restore the use of AUTOINCREMENT on SQLite (jeremyevans) (#965)
* Duplicate the associations hash when duplicating a model object (jeremyevans)
* Correctly apply association limit when eager loading with an eager block using default limit strategy on some databases (jeremyevans)
* Fix eager loading when using the :window_function limit strategy with an eager block and cascaded associations (jeremyevans)
* Add support for set_column_type :auto_increment=>true to add AUTO_INCREMENT to existing column on MySQL (jeremyevans) (#959)
* Add support for overridding the :instance_specific association option (jeremyevans)
* Recognize MSSQL bit type as boolean in the schema_dumper (jeremyevans)
* Skip eager loading queries if there are no matching keys (jeremyevans) (#952)
* Dataset#paged_each now returns an enumerator if not passed a block (jeremyevans)
* Use to_json :root option with string value as the JSON object key in the json_serializer plugin (jeremyevans)
* Allow create_enum in the pg_enum extension be reversible in migrations (celsworth) (#951)
* Have swift adapter respect database and application timezone settings (asppsa, jeremyevans) (#946)
* Don't have the static cache plugin attempt to validate objects (jeremyevans)
* Make freeze not validate objects if their errors are already frozen (jeremyevans)
* Only use prepared statements for associations if caching association metadata (jeremyevans)
* Set parent association when loading descendants in the rcte_tree plugin (jeremyevans)
* Add Database#transaction :before_retry option, specifying a proc to call before retrying (uhoh-itsmaciek) (#941)
=== 4.19.0 (2015-02-01)
* Make jdbc/sqlanywhere correctly set :auto_increment entry in schema hashes (jeremyevans)
* Add Model#cancel_action for canceling actions in before hooks, instead of having the hooks return false (jeremyevans)
* Support not setting @@wait_timeout on MySQL via :timeout=>nil Database option (jeremyevans)
* Add accessed_columns plugin, recording which columns have been accessed for a model instance (jeremyevans)
* Use correct migration version when using IntegerMigrator with :allow_missing_migration_files (blerins) (#938)
* Make Dataset#union, #intersect, and #except automatically handle datasets with raw SQL (jeremyevans) (#934)
* Add column_conflicts plugin to automatically handle columns that conflict with method names (jeremyevans) (#929)
* Add Model#get_column_value and #set_column_value to get/set column values (jeremyevans) (#929)
=== 4.18.0 (2015-01-02)
* Make Dataset#empty? work when the dataset is ordered by a non-column expression (pete) (#923)
* Fix passing a hash value to :eager association option (jeremyevans)
* Treat all PG::ConnectionBad exceptions as disconnect errors in the postgres adapter (jeremyevans)
* Add :auto_increment key to schema information for primary key columns (jeremyevans) (#919)
* Fix handling of schema qualified tables in many_through_many associations (jeremyevans)
=== 4.17.0 (2014-12-01)
* Fix handling of Sequel::SQL::Blob instances in bound variables in the postgres adapter (jeremyevans) (#917)
* Add :preconnect Database option for immediately creating the maximum number of connections (jeremyevans)
* Support DB.pool.max_size for the single connection pools (jeremyevans)
* Work around regression in jdbc-sqlite3 3.8.7 where empty blobs are returned as nil (jeremyevans)
* Work around regression in jdbc-sqlite3 3.8.7 when using JDBC getDate method for date parsing (jeremyevans)
* Make Model#update_or_create return object if existing object exists but updates are not necessary (contentfree) (#916)
* Add Dataset#server? for conditionally setting a default server to use if no default is present (jeremyevans)
* Add Database#sharded? for determining if database uses sharding (jeremyevans)
* Fix server used by Dataset#insert_select on PostgreSQL (jeremyevans)
* Fix server used for deleting model instances when using sharding (jeremyevans)
=== 4.16.0 (2014-11-01)
* Make Database#create_table? and #create_join_table? not use IF NOT EXISTS if indexes are being added (jeremyevans) (#904)
* Dataset#distinct now accepts virtual row blocks (chanks) (#901)
* Recognize disconnect errors in the postgres adapter when SSL is used (jeremyevans) (#900)
* Stop converting '' default values to nil default values on MySQL (jeremyevans)
* Add Model#qualified_pk_hash, for returning a hash with qualified pk keys (jeremyevans)
* Make validates_unique use a qualified primary key if the dataset is joined (jeremyevans) (#895)
* Make Sequel::Model.cache_associations = false skip the database's schema cache when loading the schema (jeremyevans)
* Make Database#foreign_key_list work on Microsoft SQL Server 2005 (jeremyevans)
* Make create_table with :foreign option reversible on PostgreSQL (jeremyevans)
* Make drop_table with :foreign option on PostgreSQL drop a foreign table (johnnyt) (#892)
=== 4.15.0 (2014-10-01)
* Make AssociationReflection#reciprocal not raise error if associated class contains association with invalid associated class (jeremyevans)
* Make create_view(:view_name, dataset, :materialized=>true) reversible on PostgreSQL (jeremyevans)
* Add support for creating foreign tables on PostgreSQL using :foreign and :options create_table options (jeremyevans)
* Raise Error if a primary key is necessary to use an association, but the model doesn't have a primary key (jeremyevans)
* Make tactical_eager_loading plugin work for limited associations (jeremyevans)
* Add PlaceholderLiteralizer#with_dataset, for returning a new literalizer using a modified dataset (jeremyevans)
* Support active_model 4.2.0beta1 in the active_model plugin (jeremyevans)
* Make Dataset#insert in the informix adapter return last inserted id (jihwans) (#887)
* Support :nolog option in the informix adapter to disable transactions (jihwans) (#887)
* Remove optional argument for Postgres::{JSON,JSONB}Op#to_record and #to_recordset (jeremyevans)
* Add support for FoundationDB SQL Layer, via fdbsql and jdbc/fdbsql adapters (ScottDugas, jeremyevans) (#884)
* Work around bug in old versions of MySQL when schema dumping a table with multiple timestamp columns (jeremyevans) (#882)
* Support more array types by default in the pg_array extension, such as xml[] and uuid[] (jeremyevans)
* Add Sequel::Model.cache_associations accessor, which can be set to false to not cache association metadata (jeremyevans)
* Add split_values plugin, for moving noncolumn entries from the values hash into a separate hash (jeremyevans) (#868)
=== 4.14.0 (2014-09-01)
* Raise original exception if there is an exception raised when rolling back transaction/savepoint (jeremyevans) (#875)
* Allow delayed evaluation blocks to take dataset as an argument (jeremyevans)
* Allow more types as filter expressions, only specifically disallow Numeric/String expressions (jeremyevans)
* Remove objects from cached association array at time of nested_attributes call instead of waiting until save (jeremyevans)
* Handle composite primary keys when working around validation issues for one_to_(one|many) associations in nested_attributes plugin (jeremyevans) (#870)
* Recognize additional disconnect error in jdbc/jtds adapter (jeremyevans)
* Have association_join work with existing model selections (jeremyevans)
* Fix regression in class_table_inheritance plugin when lazily loading column in middle table (jeremyevans) (#862)
* Add cache_key_prefix method to caching plugin, which can be overridden for custom handling (pete) (#861)
* Add :when option to PostgreSQL create_trigger method, for adding a filter to the trigger (aschrab) (#860)
* Recognize an additional serialization failure on PostgreSQL (tmtm) (#857)
=== 4.13.0 (2014-08-01)
* Use copy constructors instead of overriding Model#dup and #clone (ged, jeremyevans) (#852)
* Fix handling of MySQL create_table foreign_key calls using :key option (mimperatore, jeremyevans) (#850)
* Handle another disconnection error in the postgres adapter (lbosque) (#848)
* Make list plugin update remaining positions after destroying an instance (ehq, jeremyevans) (#847)
* Unalias aliased tables in Dataset#insert (jeremyevans)
* Add insert_returning_select plugin, for setting up RETURNING for inserts for models selecting explicit columns (jeremyevans)
* Make Model#save use insert_select if the dataset used for inserting already uses returning (jeremyevans)
* Add Dataset#unqualified_column_for helper method, returning unqualified version of possibly qualified column (jeremyevans)
* Calling Dataset#returning when the Database does not support or emulate RETURNING now raises an Error (jeremyevans)
* Emulate RETURNING on Microsoft SQL Server using OUTPUT, as long as only simple column references are used (jeremyevans)
* Switch class_table_inheritance plugin to use JOIN ON instead of JOIN USING (jeremyevans)
* Qualify primary keys for models with joined datasets when looking up model instances by primary key (jeremyevans)
* Fix qualification of columns when Dataset#graph automatically wraps the initially graphed dataset in a subselect (jeremyevans)
* Make Dataset#joined_dataset? a public method (jeremyevans)
* Allow external jdbc, odbc, and do subadapters to be loaded automatically (jeremyevans)
* Recognize another disconnect error in the jdbc/mysql adapter (jeremyevans)
* Set primary keys correctly for models even if datasets select specific columns (jeremyevans)
* Add dataset_source_alias extension, for automatically aliasing datasets to their first source (jeremyevans)
* Use qualified columns in the lazy_attributes plugin (jeremyevans)
* Add column_select plugin, for using explicit column selections in model datasets (jeremyevans)
* Use associated model's existing selection for join associations if it consists solely of explicitly quailfied columns (jeremyevans)
* Add round_timestamps extension for automatically rounding timestamp values to database precision before literalizing (jeremyevans)
* Make rake default task run plugin specs as well as core/model specs (jeremyevans)
* Use all_tables and all_views for Database#tables and #views on Oracle (jeremyevans)
* Use all_tab_cols instead of user_tab cols for defaults parsing in the oracle adapter (jeremyevans)
* Fix recursive mutex locking issue on JRuby when using Sequel::Model(dataset) (jeremyevans) (#841)
* Make composition and serialization plugins support validations on underlying columns (jeremyevans)
* Fix regression in timestamps and table inheritance plugin where column values would not be saved if validation is skipped (jeremyevans) (#839)
* Add pg_enum extension, for dealing with PostgreSQL enums (jeremyevans)
* Add modification_detection plugin, for automatic detection of in-place column value modifications (jeremyevans)
* Speed up using plain strings, numbers, true, false, and nil in json columns if underlying json library supports them (jeremyevans) (#834)
=== 4.12.0 (2014-07-01)
* Support :readonly Database option in sqlite adapter (ippeiukai, jeremyevans) (#832)
* Automatically setup max_length validations for string columns in the auto_validations plugin (jeremyevans)
* Add :max_length entry to column schema hashes for string types (jeremyevans)
* Add :before_thread_exit option to Database#listen_for_static_cache_updates in pg_static_cache_updater extension (jeremyevans)
* Add Database#values on PostgreSQL to create a dataset that uses VALUES instead of SELECT (jeremyevans)
* Add Model#set_nested_attributes to nested_attributes, allowing setting nested attributes options per-call (jeremyevans)
* Use explicit columns when using automatically prepared SELECT statements in the prepared statement plugins (jeremyevans)
* Make Dataset#insert_select on PostgreSQL respect existing RETURNING clause (jeremyevans)
* Fix eager loading limited associations via a UNION when an association block is used (jeremyevans)
* Associate reciprocal object before saving associated object when creating new objects in nested_attributes (chanks, jeremyevans) (#831)
* Handle intervals containing more than 100 hours in the pg_interval extension's parser (will) (#827)
* Remove methods/class deprecated in 4.11.0 (jeremyevans)
* Allow Dataset#natural_join/cross_join and related methods to take a options hash passed to join_table (jeremyevans)
* Add :reset_implicit_qualifier option to Dataset#join_table, to set false to not reset the implicit qualifier (jeremyevans)
* Support :notice_receiver Database option when postgres adapter is used with pg driver (jeltz, jeremyevans) (#825)
=== 4.11.0 (2014-06-03)
* Add :model_map option to class_table_inheritance plugin so class names don't need to be stored in the database (jeremyevans)
* Set version when using for MySQL/SQLite emulation in the mock adapter (jeremyevans)
* Add support for CUBRID/SQLAnywhere emulation to the mock adapter (jeremyevans)
* Add support for the jsonb operators added in PostgreSQL 9.4 to the pg_json_ops extension (jeremyevans)
* Add support for new json/jsonb functions added in PostgreSQL 9.4 to the pg_json_ops extension (jeremyevans)
* Add support for the PostgreSQL 9.4+ jsonb type to the pg_json_ops extension (jeremyevans)
* Add support for derived column lists to Sequel.as and SQL::AliasMethods#as (jeremyevans)
* Support connecting to a DB2 catalog name in the ibmdb adapter (calh) (#821)
* Fix warnings in some cases in the ibmdb adapter (calh) (#820)
* Add SQL::Function#with_ordinality for creating set returning functions WITH ORDINALITY (jeremyevans)
* Add SQL::Function#filter for creating filtered aggregate function calls (jeremyevans)
* Add SQL::Function#within_group for creating ordered-set and hypothetical-set aggregate functions (jeremyevans)
* Add SQL::Function#lateral, for creating set returning functions that will be preceded by LATERAL (jeremyevans)
* Add SQL::Function#quoted and #unquoted methods, to enable/disable quoting of function names (jeremyevans)
* Deprecate Dataset#{window,emulated,}_function_sql_append (jeremyevans)
* Deprecate SQL::WindowFunction and SQL::EmulatedFunction classes, switch to using options on SQL::Function (jeremyevans)
* Only modify changed_columns if deserialized value changes in the serialization plugin (jeremyevans) (#818)
* Support PostgreSQL 9.4+ jsonb type in the pg_json extension (jeremyevans)
* Allow Postgres::ArrayOp#unnest to accept arguments in the pg_array_ops extension (jeremyevans)
* Add Postgres::ArrayOp#cardinality to the pg_array_ops extension (jeremyevans)
* Add :check option to Database#create_view for WITH [LOCAL] CHECK OPTION support (jeremyevans)
* Add :concurrently option to Database#refresh_view on PostgreSQL to support concurrent refresh of materialized views (jeremyevans)
* Call the :after_connect Database option proc with both the connection and server/shard if it accepts 2 arguments (pedro, jeremyevans) (#813)
* Make multiple plugins set values before validation instead of before create, works better with auto_validations (jeremyevans)
* Support a default Dataset#import slice size, set to 500 on SQLite (jeremyevans) (#810)
* Make :read_only transaction option be per-savepoint on PostgreSQL (jeremyevans) (#807)
* Add :rank option to Dataset#full_text_search on PostgreSQL, to order by the ranking (jeremyevans) (#809)
* Remove methods deprecated in 4.10.0 (jeremyevans)
=== 4.10.0 (2014-05-01)
* Make Model.include API same as Module.include (ged) (#803)
* Dataset::PlaceholderLiteralizer now handles DelayedEvaluations correctly (jeremyevans)
* Refactor type conversion in the jdbc adapter, for up to a 20% speedup (jeremyevans)
* Add Dataset#with_fetch_size to jdbc adapter, for setting fetch size for JDBC ResultSets (jeremyevans)
* Default to a fetch_size of 100 in the jdbc/oracle adapter, similar to the oci8-based oracle adapter (jeremyevans)
* Add Database#fetch_size accessor and :fetch_size option to jdbc adapter, for setting JDBC Statement fetch size (jeremyevans)
* Automatically determine array type in pg_array_associations plugin, explicitly cast arrays in more places (jeremyevans, maccman) (#800)
* Speed up Dataset#literal for symbols 60% by caching results, speeding up dataset literalization up to 40% or more (jeremyevans)
* Speed up Sequel.split_symbol 10-20x by caching results, speeding up dataset literalization up to 80% or more (jeremyevans)
* Speed up dataset literalization for simple datasets by up to 100% (jeremyevans)
* Support :fractional_seconds Database option on MySQL 5.6.5+ to support fractional seconds by default (jeremyevans) (#797)
* Work around MySQL 5.6+ bug when combining DROP FOREIGN KEY and DROP INDEX in same ALTER TABLE statement (jeremyevans)
* Make auto_validations plugin handle models that select from subqueries (jeremyevans)
* Recognize additional disconnect errors in the postgres adapter (jeremyevans)
* Make import/multi_insert insert multiple rows in a single query using a UNION on Oracle, DB2, and Firebird (jeremyevans)
* Speed up association_pks many_to_many setter method by using Dataset#import (jeremyevans)
* Add Model.prepared_finder, similar to .finder but using a prepared statement (jeremyevans)
* Model.def_{add_method,association_dataset_methods,remove_methods} are now deprecated (jeremyevans)
* Model.eager_loading_dataset and Model.apply_association_dataset_opts are now deprecated (jeremyevans)
* Make prepared_statement_associations plugin handle one_through_one and one_through_many associations (jeremyevans)
* Use placeholder literalizer for regular association loading for up to 85% speedup (jeremyevans)
* Use placeholder literalizer for eager association loading for up to 20% speedup (jeremyevans)
* Make Model#marshallable! work correctly when using the tactical_eager_loading plugin (jeremyevans)
* Respect :foreign_key_constraint_name option when adding columns to existing table on MySQL (noah256) (#795)
* AssociationReflection#association_dataset now handles joining tables if necessary (jeremyevans)
* Support drop_view :if_exists option on SQLite, MySQL, H2, and HSQLDB (jeremyevans) (#793)
* Support drop_table :if_exists option on HSQLDB (jeremyevans)
* Add Database#transaction :auto_savepoint option, for automatically using a savepoint in nested transactions (jeremyevans)
* Add :server_version Database option on Microsoft SQL Server, instead of querying the database for it (jeremyevans)
* Support :correlated_subquery as an eager_graph and filter by associations limit strategy for one_to_* associations (jeremyevans)
* Support named paramters in call_mssql_sproc on Microsoft SQL Server (y.zemlyanukhin, jeremyevans) (#792)
* Handle placeholder literalizer arguments when emulating offsets (jeremyevans)
* Don't attempt to emulate offsets if the dataset uses literal SQL (jeremyevans)
* Use a UNION-based strategy by default to eagerly load limited associations (jeremyevans)
* Support offsets without limits on MySQL, SQLite, H2, SQLAnywhere and CUBRID (jeremyevans)
* Remove the install/uninstall rake tasks (jeremyevans)
* Use INSERT VALUES with multiple rows for Dataset#import and #multi_insert on more databases (jeremyevans)
* Support common table expressions (WITH clause) on SQLite >=3.8.3 (jeremyevans)
=== 4.9.0 (2014-04-01)
* Recognize CHECK constraint violations on newer versions of SQLite (jeremyevans)
* Do not attempt to eager load when calling Dataset#columns in the eager_each plugin (jeremyevans)
* Support :driver option for jdbc adapter, for specifying driver class for cases where getConnection doesn't work (jeremyevans) (#785)
* Massive speedup for PostgreSQL array parser (jeremyevans) (#788)
* Add current_datetime_timestamp extension, for current Time/DateTime instances that are literalized as CURRENT_TIMESTAMP (jeremyevans)
* Recognize additional unique constraint violations on SQLite (jeremyevans) (#782)
* Don't remove column value when validating nested attributes for one_to_* association where association foreign key is the model's primary key (jeremyevans)
* Add Dataset#disable_insert_returning on PostgreSQL for skipping implicit use of RETURNING (jeremyevans)
* Automatically optimize Model.[], .with_pk, and .with_pk! for models with composite keys (jeremyevans)
* Automatically optimize Model.[] when called with a hash (jeremyevans)
* Automatically optimize Model.find, .first, and .first! when called with a single argument (jeremyevans)
* Add Model.finder for creating optimized finder methods using Dataset::PlaceholderLiteralizer (jeremyevans)
* Add Dataset::PlaceholderLiteralizer optimization framework (jeremyevans)
* Add Dataset#with_sql_{each,all,first,single_value,insert,update} optimized methods (jeremyevans)
* Make pg_array extension use correct type when typecasting column values for smallint, oid, real, character, and varchar arrays (jeremyevans)
* Make Database#column_schema_to_ruby_default a public method in the schema_dumper extension (jeremyevans) (#776)
* Fix multiple corner cases in the eager_graph support (jeremyevans) (#771)
* Use streaming to implement paging for Dataset#paged_each in the mysql2 adapter (jeremyevans)
* Use a cursor to implement paging for Dataset#paged_each in the postgres adapter (jeremyevans)
* Add Database#create_join_table? and #create_join_table! for consistency (jeremyevans)
* Add Dataset#where_current_of to the postgres adapter for supporting updating rows based on a cursor's current position (jeremyevans)
* Add Dataset#use_cursor :hold option in the postgres adapter for supporting cursor use outside of a transaction (jeremyevans)
* Add Dataset#paged_each :strategy=>:filter option for increased performance (jeremyevans)
=== 4.8.0 (2014-03-01)
* Add SQL::AliasedExpression#alias alias for #aliaz (jeremyevans)
* Handle SQL::Identifier, SQL::QualifiedIdentifier, and SQL::AliasedExpression objects as first argument to Dataset#graph (jeremyevans)
* Respect qualification and aliases in symbols passed as first argument to Dataset#graph (dividedmind) (#769)
* Recognize new constraint violation error messages in SQLite 3.8.2+ (itswindtw) (#766)
* Use limit strategy to correctly handle limited associations in the dataset_associations plugin (jeremyevans)
* Handle issues in dataset_associations plugin when dataset uses unqualified identifiers for associations requiring joins (jeremyevans)
* Handle fractional seconds in input timestamps in the odbc/mssql adapter (Ross Attrill, jeremyevans)
* Return fractional seconds in timestamps in the odbc adapter (jeremyevans)
* Support :plain and :phrase options to Dataset#full_text_search on PostgreSQL (jeremyevans)
* Use limit strategy to correctly handle filtering by limited associations (jeremyevans)
* Simplify queries used for filtering by associations with conditions (jeremyevans)
* Use an eager limit strategy by default for *_one associations with orders (jeremyevans)
* Support :limit_strategy eager_graph option, for specifying strategy used for limited associations in that eager graph (jeremyevans)
* Add eager_graph_with_options to model datasets, for specifying options specific to the eager_graph call (jeremyevans)
* Handle offsets on *_many associations when eager graphing when there are no associated results (jeremyevans)
* Make Database#register_array_type work without existing scalar conversion proc in the pg_array extension (jeremyevans)
* Handle presence validations on foreign keys in associated objects when creating new associated objects in the nested_attributes plugin (jeremyevans)
* Respect offsets when eager graphing *_one associations (jeremyevans)
* Add association_join to model datasets, for setting up joins based on associations (jeremyevans)
* Add one_through_many association to many_through_many plugin, for only returning a single record (jeremyevans)
* Add :graph_order association option, useful when :order needs to contain qualified identifiers (jeremyevans)
* Add one_through_one association, similar to many_to_many but only returning a single record (jeremyevans)
=== 4.7.0 (2014-02-01)
* Don't swallow underlying exception if there is an exception closing the cursor on PostgreSQL (jeremyevans) (#761)
* Recognize primary key unique constraint violations on MSSQL and SQLAnywhere (jeremyevans)
* Recognize composite unique constraint violations on SQLite (timcraft) (#758)
* Make #* method without arguments on SQL::Function return a Function with * prepended to the arguments (jeremyevans)
* Add #function to SQL::Identifier and SQL::QualifiedIdentifier, allowing for easy use of schema qualified functions or functions names that need quoting (jeremyevans)
* Add SQL::Function#distinct for easier creation of aggregate functions using DISTINCT (jeremyevans)
* Add SQL::Function#over for easier creation of window functions (jeremyevans)
* Don't clear validation instance_hooks until after a successful save (jeremyevans)
* Support :raise_on_save_failure option for one_to_many, pg_array_to_many, and many_to_pg_array associations (jeremyevans)
* Make SQLTime#to_s return a string in HH:MM:SS format, since it shouldn't include date information (jeremyevans)
* Support the Database#tables :schema option in the jdbc adapter (robbiegill, jeremyevans) (#755)
* Automatically rollback transactions in killed threads in ruby 2.0+ (chanks) (#752)
* Add update_or_create plugin, for updating an object if it exists, or creating such an object if it does not (jeremyevans)
* Make auto_validations uniqueness validations work correctly for STI subclasses (jeremyevans)
* Support :dataset option to validates_unique vaildation (jeremyevans)
=== 4.6.0 (2014-01-02)
* Add Database#call_mssql_sproc on MSSQL for calling stored procedures and handling output parameters (jrgns, jeremyevans) (#748)
* Handle RuntimeErrors raised by oci8 in the oracle adapter (jeremyevans)
* Support OFFSET/FETCH on Microsoft SQL Server 2012 (jeremyevans)
* Support :server option for Database#{commit,rollback}_prepared_transaction on PostgreSQL, MySQL, and H2 (jeremyevans) (#743)
* Do not attempt to eager load and raise an exception when doing Model.eager(...).naked.all (jeremyevans)
* Recognize a couple additional disconnect errors in the jdbc/postgresql adapter (jeremyevans) (#742)
=== 4.5.0 (2013-12-02)
* Support :on_commit=>(:drop|:delete_rows|:preserve_rows) options when creating temp tables on PostgreSQL (rosenfeld) (#737)
* Make Dataset#insert work on PostgreSQL if the table name is a SQL::PlaceholderLiteralString (jeremyevans) (#736)
* Copy unique constraints when emulating alter_table operations on SQLite (jeremyevans) (#735)
* Don't return clob column values as SQL::Blob instances in the db2 and ibmdb adapters unless use_clob_as_blob is true (jeremyevans)
* Make use_clob_as_blob false by default on DB2 (jeremyevans)
* Fix usage of Sequel::SQL::Blob objects as prepared statement arguments in jdbc/db2 adapter when use_clob_as_blob is false (jeremyevans)
* Add mssql_optimistic_locking plugin, using a timestamp/rowversion column to protect against concurrent updates (pinx, jeremyevans) (#731)
* Make Model.primary_key array immutable for composite keys (chanks) (#730)
=== 4.4.0 (2013-11-01)
* Make Database#tables not show tables in the recycle bin on Oracle (jeremyevans) (#728)
* Don't automatically order on all columns when emulating offsets for unordered datasets on DB2 (jeremyevans)
* Improve PostgreSQL type support in the jdbc/postgresql adapter (jeremyevans)
* Make offset emulation on Oracle work when using columns that can't be ordered (jeremyevans, sdeming) (#724, #725)
* Make filter by associations support handle associations with :conditions or block (jeremyevans)
* Make association cloning handle :block correctly for clones of clones (jeremyevans)
* Make association cloning handle :eager_block option correctly (jeremyevans)
* Make add_primary_key work on h2 (jeremyevans)
* Add support for foreign key parsing on Oracle (jeremyevans)
* Add support for foreign key parsing to the jdbc adapter (jeremyevans)
* Make add_foreign_key work on HSQLDB (jeremyevans)
* Add table_select plugin for selecting table.* instead of * for model datasets (jeremyevans)
* Issue constraint_validation table deletes before inserts, so modifying constraint via drop/add in same alter_table block works (jeremyevans)
* Support add_*/remove_*/remove_all_* pg_array_to_many association methods on unsaved model objects (jeremyevans)
* Add Sybase SQLAnywhere support via new sqlanywhere and jdbc/sqlanywhere adapters (gditrick, jeremyevans)
* Add Dataset#offset for setting the offset separately from the limit (Paul Henry, jeremyevans) (#717)
=== 4.3.0 (2013-10-02)
* Fix literalization of empty blobs on MySQL (jeremyevans) (#715)
* Ensure Dataset#page_count in pagination extension is at least one (jeremyevans) (#714)
* Recognize another disconnect error in the jdbc/as400 adapter (jeremyevans)
* Make Dataset#qualify and Sequel.delay work together (jeremyevans)
* Recognize citext type as string on PostgreSQL (isc) (#710)
* Support composite keys in the rcte_tree plugin (jeremyevans)
* Support composite keys in the tree plugin (jeremyevans)
* Make Migrator.migrator_class public (robertjpayne, jeremyevans) (#708)
* Make PostgreSQL empty array literalization work correctly on PostgreSQL <8.4 (jeremyevans)
* Add Sequel extensions guide (jeremyevans)
* Add model plugins guide (jeremyevans)
* Add error_sql Database extension, allowing DatabaseError#sql to return SQL query that caused underlying exception (jeremyevans)
* Make Dataset#each_page in pagination extension return enumerator if no block is given (justinj) (#702)
=== 4.2.0 (2013-09-01)
* Support custom :flags option in mysql2 adapter (jeremyevans) (#700)
* Add implementations of Dataset#freeze and Dataset#dup (jeremyevans)
* Add implementations of Model#dup and Model#clone (jeremyevans)
* Don't have partial_indexes returned by Database#indexes on MSSQL 2008+ (jeremyevans)
* Support partial indexes on SQLite 3.8.0+ (jeremyevans)
* Add Database#supports_partial_indexes? to check for partial index support (mluu, jeremyevans) (#698)
* The static_cache plugin now disallows saving/destroying if the :frozen=>false option is not used (jeremyevans)
* Support :frozen=>false option in static_cache plugin, for having new instances returned instead of frozen cached instances (jeremyevans)
* Add pg_static_cache_updater Database extension for listening for changes to tables and updating static_cache caches automatically (jeremyevans)
* Add mssql_emulate_lateral_with_apply extension for emulating LATERAL queries using CROSS/OUTER APPLY (jeremyevans)
* Support LATERAL queries via Dataset#lateral (jeremyevans)
* Add pg_loose_count Database extension, for fast approximate counts of PostgreSQL tables (jeremyevans)
* Add from_block Database extension, for having Database#from block affect FROM instead of WHERE (jeremyevans)
* Support :cursor_name option in postgres adapter Dataset#use_cursor (heeringa, jeremyevans) (#696)
* Fix placeholder literal strings when used with an empty placeholder hash (trydionel, jeremyevans) (#695)
=== 4.1.1 (2013-08-01)
* Fix select_map, select_order_map, and single_value methods on eager_graphed datasets (jeremyevans)
=== 4.1.0 (2013-08-01)
* Support :inherits option in Database#create_table on PostgreSQL, for table inheritance (jeremyevans)
* Handle dropping indexes for schema qualified tables on PostgreSQL (jeremyevans)
* Add Database#error_info on PostgreSQL 9.3+ if pg-0.16.0+ is used, to get a hash of metadata for a given database exception (jeremyevans)
* Allow prepared_statements plugin to work with instance_filters and update_primary_key plugins (jeremyevans)
* Support deferrable exclusion constraints on PostgreSQL using the :deferrable option (mfoody) (#687)
* Make Database#run and #<< accept SQL::PlaceholderLiteralString values (jeremyevans)
* Deprecate :driver option in odbc adapter since it appears to be broken (jeremyevans)
* Support :drvconnect option in odbc adapter for supplying the ODBC connection string directly (jeremyevans)
* Support mysql2 0.3.12+ result streaming via Dataset#stream (jeremyevans)
* Convert Java::JavaUtil::HashMap to ruby Hash in jdbc adapter, for better handling of PostgreSQL hstore type (jeremyevans) (#686)
* Raise NoMatchingRow if calling add_association with a primary key value that doesn't match an existing row (jeremyevans)
* Allow PostgreSQL add_constraint to support :not_valid option (jeremyevans)
* Allow CHECK constraints to have options by using an options hash as the constraint name (jeremyevans)
* Correctly raise error when using an invalid virtual row block function call (jeremyevans)
* Support REPLACE on SQLite via Dataset#replace and #multi_replace (etehtsea) (#681)
=== 4.0.0 (2013-07-01)
* Correctly parse composite primary keys on SQLite 3.7.16+ (jeremyevans)
* Recognize another disconnect error in the jdbc/oracle adapter (jeremyevans)
* Add pg_json_ops extension for calling JSON functions and operators in PostgreSQL 9.3+ (jeremyevans)
* Handle non-JSON plain strings, integers, and floats in PostgreSQL JSON columns in pg_json extension (jeremyevans)
* Dataset#from now accepts virtual row blocks (jeremyevans)
* Add Database#refresh_view on PostgreSQL to support refreshing materialized views (jeremyevans)
* Support the Database#drop_view :if_exists option on PostgreSQL (jeremyevans)
* Support the Database#{create,drop}_view :materialized option for creating materialized views in PostgreSQL 9.3+ (jeremyevans)
* Support the Database#create_view :recursive option for creating recursive views in PostgreSQL 9.3+ (jeremyevans)
* Support the Database#create_view :columns option for using explicit columns (jeremyevans)
* Support the Database#create_schema :owner and :if_not_exists options on PostgreSQL (jeremyevans)
* Support :index_type=>:gist option to create GIST full text indexes on PostgreSQL (jeremyevans)
* Add Postgres::ArrayOp#replace for the array_replace function in PostgreSQL 9.3+ (jeremyevans)
* Add Postgres::ArrayOp#remove for the array_remove function in PostgreSQL 9.3+ (jeremyevans)
* Add Postgres::ArrayOp#hstore for creating hstores from arrays (jeremyevans)
* Make Postgres::ArrayOp#[] return ArrayOp if given a range (jeremyevans)
* Ensure that CHECK constraints are surrounded with parentheses (jeremyevans)
* Ensure Dataset#unbind returned variable hash uses symbol keys (jeremyevans)
* Add pg_array_associations plugin, for associations based on PostgreSQL arrays containing foreign keys (jeremyevans)
* Add Sequel.deep_qualify, for easily doing a deep qualification (jeremyevans)
* Enable use of window functions for limited eager loading by default (jeremyevans)
* Handle offsets correctly when eager loading one_to_one associations (jeremyevans)
* Raise exception for infinite and NaN floats on MySQL (jeremyevans) (#677)
* Make dataset string literalization that requires database connection use dataset's chosen server (jeremyevans)
* Make sure an offset without a limit is handled correctly when eager loading (jeremyevans)
* Allow providing ranges as subscripts for array[start:end] (jeremyevans)
* Prepare one_to_one associations in the prepared_statements_associations plugin (jeremyevans)
* Use prepared statements when the association has :conditions in the prepared_statements_associations plugin (jeremyevans)
* Fix prepared statement usage in some additional cases in the prepared_statements_associations plugin (jeremyevans)
* Hex escape blob input on MySQL (jeremyevans)
* Handle more disconnect errors when using the postgres adapter with the postgres-pr driver (jeremyevans)
* Model#setter_methods private method now accepts 1 argument instead of 2 (jeremyevans)
* Model#set_restricted and #update_restricted private methods now accept 2 arguments instead of 3 (jeremyevans)
* ungraphed on an eager_graph dataset now resets the original row_proc (jeremyevans)
* eager_graph now returns a naked dataset (jeremyevans)
* All behavior deprecated in Sequel 3.48.0 has been removed (jeremyevans)
* Make adapter/integration spec environment variables more consistent (jeremyevans)
* Sequel no longer provides default databases for adapter/integration specs (jeremyevans)
* Model#save no longer calls #_refresh internally (jeremyevans)
* Model#set_all and #update_all can now update the primary key (jeremyevans)
* Integrate many_to_one_pk_lookup and association_autoreloading plugins into main associations plugin (jeremyevans)
* Make defaults_setter plugin operate in a lazy manner (jeremyevans)
* Plugins now extend the model class with ClassMethods before including InstanceMethods (jeremyevans)
* Remove Model::EMPTY_INSTANCE_VARIABLES (jeremyevans)
* Model.raise_on_typecast_failure now defaults to false (jeremyevans)
* Model#_save private method now only takes a single argument (jeremyevans)
* Remove Dataset#columns_without_introspection from columns_introspection extension (jeremyevans)
* Make boolean prepared statement arguments work on sqlite adapter when integer_booleans is true (jeremyevans)
* Make Database#tables and #views reflect search_path on PostgreSQL (jeremyevans)
* SQLite now defaults to true for integer_booleans and false for use_timestamp_timezones (jeremyevans)
* Make the default value for most option hashes a shared frozen hash (jeremyevans)
* Remove Sequel::NotImplemented exception (jeremyevans)
* Automatically alias single expressions in Dataset#get, #select_map, and #select_order_map, to work around possible DoS issues (jeremyevans)
* Use a connection queue instead of stack by default for threaded connection pools (jeremyevans)
* Remove SQL::SQLArray alias for SQL::ValueList (jeremyevans)
* Remove SQL::NoBooleanInputMethods empty module (jeremyevans)
=== 3.48.0 (2013-06-01)
* Make named_timezones extension usable by databases allowing timezone strings to be given to Database#timezone= (jeremyevans)
* Make Dataset#or just clone if given an empty argument (jeremyevans)
* Deprecated using a mismatched number of placeholders and arguments in a placeholder literal string (jeremyevans)
* Add Dataset#qualify_to and #qualify_to_first_source to sequel_3_dataset_methods extension (jeremyevans)
* Add scissors plugin for Model.update, .delete, and .destroy (jeremyevans)
* Validate against explicit nil values in NOT NULL columns with default values in the auto_validations plugin (jeremyevans)
* Support :not_null=>:presence option for auto_validations plugin, for using presence validation for not null columns (jeremyevans)
* Rename auto_validate_presence_columns to auto_validate_not_null_columns (jeremyevans)
* Make pg_hstore_ops extension integrate with pg_array, pg_hstore, and pg_array_ops extensions (jeremyevans)
* Add Sequel.json_parser_error_class and Sequel.object_to_json to allow the use of alternative JSON implementations (jeremyevans) (#662)
* Deprecate JSON.create_id usage in the json_serializer plugin (jeremyevans)
* Emulate offsets on Microsoft Access using reverse orders and total counts (jeremyevans) (#661)
* Make ado adapter handle disconnecting an already disconnected connection (jeremyevans)
* Deprecate parsing columns for the same table name in multiple schemas on jdbc (jeremyevans)
* Allow association_proxies plugin to accept a block to give user control over which methods are proxied to the dataset (jeremyevans) (#660)
* Deprecate calling Dataset#add_graph_aliases before #graph or #set_graph_aliases (jeremyevans)
* Deprecate Model.add_graph_aliases, .insert_multiple, .query, .set_overrides, .set_defaults, .to_csv, and .paginate (jeremyevans)
* Add guide for ordering code with Sequel (jeremyevans)
* Deprecate Database#transaction :disconnect=>:retry option (jeremyevans)
* Deprecate Model.set, .update, .delete, and .destroy (jeremyevans)
* Deprecate Dataset#set (jeremyevans)
* Add specs for bin/sequel (jeremyevans)
* Make constraint_validations plugin reflect validations by column (jeremyevans)
* Allow for per-model/per-validation type customization of validation options in constraint_validations plugin (jeremyevans)
* Make Database#constraint_validations in the constraint_validations plugin have raw row values (jeremyevans)
* Fix statement freeing in the ibmdb adapter (jeremyevans)
* Make single and class table inheritance plugins handle usage of set_dataset in a subclass (jeremyevans)
* Allow validates_schema_types in validation_helpers plugin accept an options hash (jeremyevans)
* Deprecate Model.set_primary_key taking multiple arguments (jeremyevans)
* Make auto_validations plugin work with databases that don't support index parsing (jeremyevans)
* Model classes will no longer call Database#schema if it isn't supported (jeremyevans)
* Speed up Model.with_pk and with_pk! class methods (jeremyevans)
* Speed up Dataset#clone when called without an argument (jeremyevans)
* Deprecate Postgres::PGRangeOp#{starts_before,ends_after} (jeremyevans)
* Deprecate global use of null_dataset, pagination, pretty_table, query, select_remove, schema_caching, schema_dumper, and to_dot extensions (jeremyevans)
* Deprecate Dataset.introspect_all_columns in the columns_introspection extension (jeremyevans)
* Add empty_array_ignore_nulls extension for ignoring null handling for IN/NOT with an empty array (jeremyevans)
* Deprecate Sequel.empty_array_handle_nulls accessor (jeremyevans)
* Deprecate Sequel.{k,ts,tsk}_require and Sequel.check_requiring_thread (jeremyevans)
* Discontinue use of manual thread-safe requiring (jeremyevans)
* Deprecate using an unsupported client_min_messages setting on PostgreSQL (jeremyevans)
* Deprecate passing non-hash 4th argument to Dataset#join_table (jeremyevans)
* Deprecate passing non-hash 2nd argument to Dataset#union/intersect/except (jeremyevans)
* Deprecate one_to_many with :one_to_one option raising an error (jeremyevans)
* Automatically typecast hash and array to string for string columns in the looser_typecasting extension (jeremyevans)
* Deprecate automatic typecasting of hash and array to string for string columns (jeremyevans)
* Deprecate :eager_loader and :eager_grapher association options getting passed 3 separate arguments (jeremyevans)
* Deprecate validates_not_string (jeremyevans)
* Deprecate casting via __type suffix for prepared type placeholders in the postgres adapter (jeremyevans)
* Deprecate json_serializer's Model.json_create (jeremyevans)
* Deprecate json_serializer from_json and xml_serializer from_xml :all_columns and :all_associations options (jeremyevans)
* Deprecate passing an unsupported lock mode to Dataset#lock on PostgreSQL (jeremyevans)
* Deprecate Model::InstanceMethods.class_attr_{overridable,reader} (jeremyevans)
* Deprecate all methods in Dataset::PUBLIC_APPEND_METHODS except for literal, quote_identifier, quote_schema_table (jeremyevans)
* Deprecate all methods in Dataset::PRIVATE_APPEND_METHODS (jeremyevans)
* Deprecate Dataset.def_append_methods (jeremyevans)
* Deprecate Dataset#table_ref_append (jeremyevans)
* Deprecate SQL::Expression#to_s taking an argument and returning a literal SQL string (jeremyevans)
* Deprecate creating Model class methods automatically from plugin public dataset methods (jeremyevans)
* Add Sequel.cache_anonymous_models accessor (jeremyevans)
* Deprecate Sequel::Model.cache_anonymous_models accessor (jeremyevans)
* Deprecate identity_map plugin (jeremyevans)
* Deprecate Model#set_values (jeremyevans)
* Deprecate pg_auto_parameterize and pg_statement_cache extensions (jeremyevans)
* Deprecate Model#pk_or_nil (jeremyevans)
* Deprecate Model.print and Model.each_page (jeremyevans)
* Deprecate Dataset checking that the Database implements the identifier mangling methods (jeremyevans)
* Deprecate Database#reset_schema_utility_dataset private method (jeremyevans)
* Speed up Database#fetch, #from, #select, and #get by using a cached dataset (jeremyevans)
* Make sure adapters with subadapters have fully initialized database instances before calling Database.after_initialize (jeremyevans)