sequel 5.8.0 → 5.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +409 -1795
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +4 -4
  5. data/bin/sequel +4 -0
  6. data/doc/advanced_associations.rdoc +136 -18
  7. data/doc/association_basics.rdoc +10 -5
  8. data/doc/cheat_sheet.rdoc +1 -0
  9. data/doc/code_order.rdoc +12 -2
  10. data/doc/dataset_filtering.rdoc +17 -2
  11. data/doc/mass_assignment.rdoc +3 -3
  12. data/doc/model_dataset_method_design.rdoc +1 -1
  13. data/doc/model_plugins.rdoc +1 -1
  14. data/doc/opening_databases.rdoc +30 -8
  15. data/doc/postgresql.rdoc +107 -2
  16. data/doc/release_notes/5.10.0.txt +84 -0
  17. data/doc/release_notes/5.11.0.txt +83 -0
  18. data/doc/release_notes/5.12.0.txt +141 -0
  19. data/doc/release_notes/5.13.0.txt +27 -0
  20. data/doc/release_notes/5.14.0.txt +63 -0
  21. data/doc/release_notes/5.15.0.txt +39 -0
  22. data/doc/release_notes/5.16.0.txt +110 -0
  23. data/doc/release_notes/5.17.0.txt +31 -0
  24. data/doc/release_notes/5.18.0.txt +69 -0
  25. data/doc/release_notes/5.19.0.txt +28 -0
  26. data/doc/release_notes/5.20.0.txt +89 -0
  27. data/doc/release_notes/5.21.0.txt +87 -0
  28. data/doc/release_notes/5.22.0.txt +48 -0
  29. data/doc/release_notes/5.23.0.txt +56 -0
  30. data/doc/release_notes/5.24.0.txt +56 -0
  31. data/doc/release_notes/5.25.0.txt +32 -0
  32. data/doc/release_notes/5.26.0.txt +35 -0
  33. data/doc/release_notes/5.27.0.txt +21 -0
  34. data/doc/release_notes/5.28.0.txt +16 -0
  35. data/doc/release_notes/5.29.0.txt +22 -0
  36. data/doc/release_notes/5.30.0.txt +20 -0
  37. data/doc/release_notes/5.31.0.txt +148 -0
  38. data/doc/release_notes/5.32.0.txt +46 -0
  39. data/doc/release_notes/5.33.0.txt +24 -0
  40. data/doc/release_notes/5.34.0.txt +40 -0
  41. data/doc/release_notes/5.35.0.txt +56 -0
  42. data/doc/release_notes/5.36.0.txt +60 -0
  43. data/doc/release_notes/5.37.0.txt +30 -0
  44. data/doc/release_notes/5.38.0.txt +28 -0
  45. data/doc/release_notes/5.9.0.txt +99 -0
  46. data/doc/security.rdoc +10 -0
  47. data/doc/sharding.rdoc +42 -28
  48. data/doc/sql.rdoc +12 -0
  49. data/doc/testing.rdoc +24 -17
  50. data/doc/transactions.rdoc +78 -0
  51. data/doc/validations.rdoc +2 -2
  52. data/lib/sequel/adapters/ado.rb +26 -18
  53. data/lib/sequel/adapters/ado/access.rb +2 -2
  54. data/lib/sequel/adapters/ado/mssql.rb +5 -8
  55. data/lib/sequel/adapters/amalgalite.rb +1 -1
  56. data/lib/sequel/adapters/jdbc.rb +71 -27
  57. data/lib/sequel/adapters/jdbc/mysql.rb +6 -6
  58. data/lib/sequel/adapters/jdbc/oracle.rb +7 -6
  59. data/lib/sequel/adapters/jdbc/postgresql.rb +17 -28
  60. data/lib/sequel/adapters/jdbc/sqlanywhere.rb +5 -6
  61. data/lib/sequel/adapters/jdbc/sqlite.rb +33 -2
  62. data/lib/sequel/adapters/jdbc/sqlserver.rb +4 -3
  63. data/lib/sequel/adapters/jdbc/transactions.rb +14 -28
  64. data/lib/sequel/adapters/mysql.rb +14 -15
  65. data/lib/sequel/adapters/mysql2.rb +5 -3
  66. data/lib/sequel/adapters/odbc.rb +4 -6
  67. data/lib/sequel/adapters/oracle.rb +7 -7
  68. data/lib/sequel/adapters/postgres.rb +52 -16
  69. data/lib/sequel/adapters/shared/access.rb +16 -12
  70. data/lib/sequel/adapters/shared/db2.rb +5 -0
  71. data/lib/sequel/adapters/shared/mssql.rb +41 -18
  72. data/lib/sequel/adapters/shared/mysql.rb +66 -19
  73. data/lib/sequel/adapters/shared/oracle.rb +29 -23
  74. data/lib/sequel/adapters/shared/postgres.rb +341 -95
  75. data/lib/sequel/adapters/shared/sqlanywhere.rb +23 -10
  76. data/lib/sequel/adapters/shared/sqlite.rb +174 -21
  77. data/lib/sequel/adapters/sqlanywhere.rb +33 -17
  78. data/lib/sequel/adapters/sqlite.rb +78 -68
  79. data/lib/sequel/adapters/tinytds.rb +14 -6
  80. data/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +2 -5
  81. data/lib/sequel/adapters/utils/mysql_mysql2.rb +5 -1
  82. data/lib/sequel/connection_pool.rb +2 -6
  83. data/lib/sequel/connection_pool/sharded_single.rb +7 -4
  84. data/lib/sequel/connection_pool/sharded_threaded.rb +32 -21
  85. data/lib/sequel/connection_pool/single.rb +1 -1
  86. data/lib/sequel/connection_pool/threaded.rb +26 -11
  87. data/lib/sequel/core.rb +327 -319
  88. data/lib/sequel/database/connecting.rb +7 -8
  89. data/lib/sequel/database/logging.rb +7 -1
  90. data/lib/sequel/database/misc.rb +68 -34
  91. data/lib/sequel/database/query.rb +6 -4
  92. data/lib/sequel/database/schema_generator.rb +31 -11
  93. data/lib/sequel/database/schema_methods.rb +32 -22
  94. data/lib/sequel/database/transactions.rb +129 -25
  95. data/lib/sequel/dataset.rb +4 -2
  96. data/lib/sequel/dataset/actions.rb +34 -23
  97. data/lib/sequel/dataset/features.rb +34 -0
  98. data/lib/sequel/dataset/graph.rb +27 -11
  99. data/lib/sequel/dataset/misc.rb +17 -3
  100. data/lib/sequel/dataset/placeholder_literalizer.rb +50 -21
  101. data/lib/sequel/dataset/prepared_statements.rb +96 -26
  102. data/lib/sequel/dataset/query.rb +43 -8
  103. data/lib/sequel/dataset/sql.rb +189 -41
  104. data/lib/sequel/deprecated.rb +3 -1
  105. data/lib/sequel/exceptions.rb +2 -0
  106. data/lib/sequel/extensions/_pretty_table.rb +1 -2
  107. data/lib/sequel/extensions/any_not_empty.rb +45 -0
  108. data/lib/sequel/extensions/caller_logging.rb +79 -0
  109. data/lib/sequel/extensions/columns_introspection.rb +1 -2
  110. data/lib/sequel/extensions/connection_expiration.rb +6 -6
  111. data/lib/sequel/extensions/connection_validator.rb +7 -6
  112. data/lib/sequel/extensions/constant_sql_override.rb +65 -0
  113. data/lib/sequel/extensions/constraint_validations.rb +53 -28
  114. data/lib/sequel/extensions/core_refinements.rb +2 -0
  115. data/lib/sequel/extensions/duplicate_columns_handler.rb +2 -0
  116. data/lib/sequel/extensions/escaped_like.rb +100 -0
  117. data/lib/sequel/extensions/eval_inspect.rb +3 -1
  118. data/lib/sequel/extensions/exclude_or_null.rb +68 -0
  119. data/lib/sequel/extensions/fiber_concurrency.rb +24 -0
  120. data/lib/sequel/extensions/index_caching.rb +9 -7
  121. data/lib/sequel/extensions/integer64.rb +3 -1
  122. data/lib/sequel/extensions/looser_typecasting.rb +3 -3
  123. data/lib/sequel/extensions/migration.rb +13 -6
  124. data/lib/sequel/extensions/named_timezones.rb +84 -23
  125. data/lib/sequel/extensions/pg_array.rb +87 -79
  126. data/lib/sequel/extensions/pg_array_ops.rb +14 -6
  127. data/lib/sequel/extensions/pg_enum.rb +34 -18
  128. data/lib/sequel/extensions/pg_extended_date_support.rb +34 -14
  129. data/lib/sequel/extensions/pg_hstore.rb +6 -0
  130. data/lib/sequel/extensions/pg_hstore_ops.rb +2 -0
  131. data/lib/sequel/extensions/pg_inet.rb +15 -5
  132. data/lib/sequel/extensions/pg_interval.rb +2 -0
  133. data/lib/sequel/extensions/pg_json.rb +387 -123
  134. data/lib/sequel/extensions/pg_json_ops.rb +168 -0
  135. data/lib/sequel/extensions/pg_range.rb +20 -10
  136. data/lib/sequel/extensions/pg_range_ops.rb +2 -0
  137. data/lib/sequel/extensions/pg_row.rb +3 -2
  138. data/lib/sequel/extensions/pg_row_ops.rb +24 -0
  139. data/lib/sequel/extensions/pg_static_cache_updater.rb +2 -2
  140. data/lib/sequel/extensions/pg_timestamptz.rb +2 -0
  141. data/lib/sequel/extensions/query.rb +1 -0
  142. data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
  143. data/lib/sequel/extensions/s.rb +2 -0
  144. data/lib/sequel/extensions/schema_dumper.rb +13 -7
  145. data/lib/sequel/extensions/sequel_4_dataset_methods.rb +4 -2
  146. data/lib/sequel/extensions/server_block.rb +18 -7
  147. data/lib/sequel/extensions/sql_comments.rb +2 -2
  148. data/lib/sequel/extensions/symbol_aref_refinement.rb +2 -0
  149. data/lib/sequel/extensions/symbol_as_refinement.rb +2 -0
  150. data/lib/sequel/extensions/to_dot.rb +9 -3
  151. data/lib/sequel/model.rb +3 -1
  152. data/lib/sequel/model/associations.rb +403 -69
  153. data/lib/sequel/model/base.rb +170 -90
  154. data/lib/sequel/model/plugins.rb +105 -0
  155. data/lib/sequel/plugins/after_initialize.rb +1 -1
  156. data/lib/sequel/plugins/association_dependencies.rb +3 -3
  157. data/lib/sequel/plugins/association_lazy_eager_option.rb +66 -0
  158. data/lib/sequel/plugins/association_multi_add_remove.rb +85 -0
  159. data/lib/sequel/plugins/association_pks.rb +74 -22
  160. data/lib/sequel/plugins/association_proxies.rb +6 -2
  161. data/lib/sequel/plugins/auto_validations.rb +36 -17
  162. data/lib/sequel/plugins/blacklist_security.rb +1 -2
  163. data/lib/sequel/plugins/boolean_subsets.rb +4 -1
  164. data/lib/sequel/plugins/caching.rb +3 -0
  165. data/lib/sequel/plugins/class_table_inheritance.rb +62 -34
  166. data/lib/sequel/plugins/composition.rb +13 -9
  167. data/lib/sequel/plugins/csv_serializer.rb +28 -9
  168. data/lib/sequel/plugins/defaults_setter.rb +2 -2
  169. data/lib/sequel/plugins/dirty.rb +60 -22
  170. data/lib/sequel/plugins/eager_graph_eager.rb +139 -0
  171. data/lib/sequel/plugins/empty_failure_backtraces.rb +38 -0
  172. data/lib/sequel/plugins/finder.rb +2 -2
  173. data/lib/sequel/plugins/forbid_lazy_load.rb +216 -0
  174. data/lib/sequel/plugins/hook_class_methods.rb +17 -5
  175. data/lib/sequel/plugins/insert_conflict.rb +72 -0
  176. data/lib/sequel/plugins/instance_specific_default.rb +113 -0
  177. data/lib/sequel/plugins/inverted_subsets.rb +2 -2
  178. data/lib/sequel/plugins/json_serializer.rb +21 -14
  179. data/lib/sequel/plugins/lazy_attributes.rb +1 -1
  180. data/lib/sequel/plugins/list.rb +22 -10
  181. data/lib/sequel/plugins/many_through_many.rb +1 -1
  182. data/lib/sequel/plugins/nested_attributes.rb +27 -5
  183. data/lib/sequel/plugins/pg_array_associations.rb +12 -9
  184. data/lib/sequel/plugins/pg_auto_constraint_validations.rb +149 -61
  185. data/lib/sequel/plugins/prepared_statements.rb +6 -12
  186. data/lib/sequel/plugins/prepared_statements_safe.rb +1 -3
  187. data/lib/sequel/plugins/rcte_tree.rb +20 -22
  188. data/lib/sequel/plugins/sharding.rb +13 -7
  189. data/lib/sequel/plugins/single_table_inheritance.rb +20 -15
  190. data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
  191. data/lib/sequel/plugins/static_cache.rb +36 -17
  192. data/lib/sequel/plugins/static_cache_cache.rb +53 -0
  193. data/lib/sequel/plugins/string_stripper.rb +1 -1
  194. data/lib/sequel/plugins/subclasses.rb +2 -0
  195. data/lib/sequel/plugins/subset_conditions.rb +2 -2
  196. data/lib/sequel/plugins/tactical_eager_loading.rb +73 -2
  197. data/lib/sequel/plugins/throw_failures.rb +110 -0
  198. data/lib/sequel/plugins/tree.rb +49 -31
  199. data/lib/sequel/plugins/typecast_on_load.rb +3 -2
  200. data/lib/sequel/plugins/validation_class_methods.rb +11 -5
  201. data/lib/sequel/plugins/validation_helpers.rb +2 -2
  202. data/lib/sequel/sql.rb +120 -30
  203. data/lib/sequel/timezones.rb +55 -14
  204. data/lib/sequel/version.rb +6 -1
  205. metadata +101 -361
  206. data/Rakefile +0 -151
  207. data/doc/release_notes/4.0.0.txt +0 -262
  208. data/doc/release_notes/4.1.0.txt +0 -85
  209. data/doc/release_notes/4.10.0.txt +0 -226
  210. data/doc/release_notes/4.11.0.txt +0 -147
  211. data/doc/release_notes/4.12.0.txt +0 -105
  212. data/doc/release_notes/4.13.0.txt +0 -169
  213. data/doc/release_notes/4.14.0.txt +0 -68
  214. data/doc/release_notes/4.15.0.txt +0 -56
  215. data/doc/release_notes/4.16.0.txt +0 -36
  216. data/doc/release_notes/4.17.0.txt +0 -38
  217. data/doc/release_notes/4.18.0.txt +0 -36
  218. data/doc/release_notes/4.19.0.txt +0 -45
  219. data/doc/release_notes/4.2.0.txt +0 -129
  220. data/doc/release_notes/4.20.0.txt +0 -79
  221. data/doc/release_notes/4.21.0.txt +0 -94
  222. data/doc/release_notes/4.22.0.txt +0 -72
  223. data/doc/release_notes/4.23.0.txt +0 -65
  224. data/doc/release_notes/4.24.0.txt +0 -99
  225. data/doc/release_notes/4.25.0.txt +0 -181
  226. data/doc/release_notes/4.26.0.txt +0 -44
  227. data/doc/release_notes/4.27.0.txt +0 -78
  228. data/doc/release_notes/4.28.0.txt +0 -57
  229. data/doc/release_notes/4.29.0.txt +0 -41
  230. data/doc/release_notes/4.3.0.txt +0 -40
  231. data/doc/release_notes/4.30.0.txt +0 -37
  232. data/doc/release_notes/4.31.0.txt +0 -57
  233. data/doc/release_notes/4.32.0.txt +0 -132
  234. data/doc/release_notes/4.33.0.txt +0 -88
  235. data/doc/release_notes/4.34.0.txt +0 -86
  236. data/doc/release_notes/4.35.0.txt +0 -130
  237. data/doc/release_notes/4.36.0.txt +0 -116
  238. data/doc/release_notes/4.37.0.txt +0 -50
  239. data/doc/release_notes/4.38.0.txt +0 -67
  240. data/doc/release_notes/4.39.0.txt +0 -127
  241. data/doc/release_notes/4.4.0.txt +0 -92
  242. data/doc/release_notes/4.40.0.txt +0 -179
  243. data/doc/release_notes/4.41.0.txt +0 -77
  244. data/doc/release_notes/4.42.0.txt +0 -221
  245. data/doc/release_notes/4.43.0.txt +0 -87
  246. data/doc/release_notes/4.44.0.txt +0 -125
  247. data/doc/release_notes/4.45.0.txt +0 -370
  248. data/doc/release_notes/4.46.0.txt +0 -404
  249. data/doc/release_notes/4.47.0.txt +0 -56
  250. data/doc/release_notes/4.48.0.txt +0 -293
  251. data/doc/release_notes/4.49.0.txt +0 -222
  252. data/doc/release_notes/4.5.0.txt +0 -34
  253. data/doc/release_notes/4.6.0.txt +0 -30
  254. data/doc/release_notes/4.7.0.txt +0 -103
  255. data/doc/release_notes/4.8.0.txt +0 -175
  256. data/doc/release_notes/4.9.0.txt +0 -190
  257. data/spec/adapter_spec.rb +0 -4
  258. data/spec/adapters/db2_spec.rb +0 -170
  259. data/spec/adapters/mssql_spec.rb +0 -804
  260. data/spec/adapters/mysql_spec.rb +0 -1041
  261. data/spec/adapters/oracle_spec.rb +0 -327
  262. data/spec/adapters/postgres_spec.rb +0 -4000
  263. data/spec/adapters/spec_helper.rb +0 -43
  264. data/spec/adapters/sqlanywhere_spec.rb +0 -97
  265. data/spec/adapters/sqlite_spec.rb +0 -600
  266. data/spec/bin_spec.rb +0 -269
  267. data/spec/core/connection_pool_spec.rb +0 -1228
  268. data/spec/core/database_spec.rb +0 -2673
  269. data/spec/core/dataset_spec.rb +0 -5419
  270. data/spec/core/deprecated_spec.rb +0 -70
  271. data/spec/core/expression_filters_spec.rb +0 -1344
  272. data/spec/core/mock_adapter_spec.rb +0 -722
  273. data/spec/core/object_graph_spec.rb +0 -306
  274. data/spec/core/placeholder_literalizer_spec.rb +0 -166
  275. data/spec/core/schema_generator_spec.rb +0 -214
  276. data/spec/core/schema_spec.rb +0 -1820
  277. data/spec/core/spec_helper.rb +0 -23
  278. data/spec/core/version_spec.rb +0 -7
  279. data/spec/core_extensions_spec.rb +0 -762
  280. data/spec/core_model_spec.rb +0 -2
  281. data/spec/core_spec.rb +0 -1
  282. data/spec/deprecation_helper.rb +0 -30
  283. data/spec/extensions/accessed_columns_spec.rb +0 -51
  284. data/spec/extensions/active_model_spec.rb +0 -99
  285. data/spec/extensions/after_initialize_spec.rb +0 -24
  286. data/spec/extensions/arbitrary_servers_spec.rb +0 -109
  287. data/spec/extensions/association_dependencies_spec.rb +0 -125
  288. data/spec/extensions/association_pks_spec.rb +0 -423
  289. data/spec/extensions/association_proxies_spec.rb +0 -100
  290. data/spec/extensions/auto_literal_strings_spec.rb +0 -205
  291. data/spec/extensions/auto_validations_spec.rb +0 -202
  292. data/spec/extensions/blacklist_security_spec.rb +0 -95
  293. data/spec/extensions/blank_spec.rb +0 -69
  294. data/spec/extensions/boolean_readers_spec.rb +0 -93
  295. data/spec/extensions/boolean_subsets_spec.rb +0 -47
  296. data/spec/extensions/caching_spec.rb +0 -273
  297. data/spec/extensions/class_table_inheritance_spec.rb +0 -568
  298. data/spec/extensions/column_conflicts_spec.rb +0 -75
  299. data/spec/extensions/column_select_spec.rb +0 -129
  300. data/spec/extensions/columns_introspection_spec.rb +0 -90
  301. data/spec/extensions/columns_updated_spec.rb +0 -35
  302. data/spec/extensions/composition_spec.rb +0 -248
  303. data/spec/extensions/connection_expiration_spec.rb +0 -133
  304. data/spec/extensions/connection_validator_spec.rb +0 -127
  305. data/spec/extensions/constraint_validations_plugin_spec.rb +0 -300
  306. data/spec/extensions/constraint_validations_spec.rb +0 -395
  307. data/spec/extensions/core_refinements_spec.rb +0 -528
  308. data/spec/extensions/csv_serializer_spec.rb +0 -183
  309. data/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
  310. data/spec/extensions/dataset_associations_spec.rb +0 -365
  311. data/spec/extensions/dataset_source_alias_spec.rb +0 -51
  312. data/spec/extensions/date_arithmetic_spec.rb +0 -181
  313. data/spec/extensions/datetime_parse_to_time_spec.rb +0 -169
  314. data/spec/extensions/def_dataset_method_spec.rb +0 -100
  315. data/spec/extensions/defaults_setter_spec.rb +0 -141
  316. data/spec/extensions/delay_add_association_spec.rb +0 -73
  317. data/spec/extensions/dirty_spec.rb +0 -189
  318. data/spec/extensions/duplicate_columns_handler_spec.rb +0 -104
  319. data/spec/extensions/eager_each_spec.rb +0 -62
  320. data/spec/extensions/empty_array_consider_nulls_spec.rb +0 -24
  321. data/spec/extensions/error_splitter_spec.rb +0 -18
  322. data/spec/extensions/error_sql_spec.rb +0 -20
  323. data/spec/extensions/eval_inspect_spec.rb +0 -74
  324. data/spec/extensions/finder_spec.rb +0 -260
  325. data/spec/extensions/force_encoding_spec.rb +0 -126
  326. data/spec/extensions/freeze_datasets_spec.rb +0 -31
  327. data/spec/extensions/graph_each_spec.rb +0 -113
  328. data/spec/extensions/hook_class_methods_spec.rb +0 -380
  329. data/spec/extensions/identifier_mangling_spec.rb +0 -201
  330. data/spec/extensions/implicit_subquery_spec.rb +0 -58
  331. data/spec/extensions/index_caching_spec.rb +0 -66
  332. data/spec/extensions/inflector_spec.rb +0 -183
  333. data/spec/extensions/input_transformer_spec.rb +0 -69
  334. data/spec/extensions/insert_returning_select_spec.rb +0 -72
  335. data/spec/extensions/instance_filters_spec.rb +0 -79
  336. data/spec/extensions/instance_hooks_spec.rb +0 -246
  337. data/spec/extensions/integer64_spec.rb +0 -22
  338. data/spec/extensions/inverted_subsets_spec.rb +0 -33
  339. data/spec/extensions/json_serializer_spec.rb +0 -336
  340. data/spec/extensions/lazy_attributes_spec.rb +0 -183
  341. data/spec/extensions/list_spec.rb +0 -275
  342. data/spec/extensions/looser_typecasting_spec.rb +0 -43
  343. data/spec/extensions/many_through_many_spec.rb +0 -2177
  344. data/spec/extensions/migration_spec.rb +0 -840
  345. data/spec/extensions/modification_detection_spec.rb +0 -93
  346. data/spec/extensions/mssql_optimistic_locking_spec.rb +0 -92
  347. data/spec/extensions/named_timezones_spec.rb +0 -109
  348. data/spec/extensions/nested_attributes_spec.rb +0 -703
  349. data/spec/extensions/null_dataset_spec.rb +0 -85
  350. data/spec/extensions/optimistic_locking_spec.rb +0 -127
  351. data/spec/extensions/pagination_spec.rb +0 -116
  352. data/spec/extensions/pg_array_associations_spec.rb +0 -802
  353. data/spec/extensions/pg_array_ops_spec.rb +0 -144
  354. data/spec/extensions/pg_array_spec.rb +0 -398
  355. data/spec/extensions/pg_auto_constraint_validations_spec.rb +0 -165
  356. data/spec/extensions/pg_enum_spec.rb +0 -113
  357. data/spec/extensions/pg_extended_date_support_spec.rb +0 -126
  358. data/spec/extensions/pg_hstore_ops_spec.rb +0 -238
  359. data/spec/extensions/pg_hstore_spec.rb +0 -219
  360. data/spec/extensions/pg_inet_ops_spec.rb +0 -102
  361. data/spec/extensions/pg_inet_spec.rb +0 -72
  362. data/spec/extensions/pg_interval_spec.rb +0 -103
  363. data/spec/extensions/pg_json_ops_spec.rb +0 -289
  364. data/spec/extensions/pg_json_spec.rb +0 -262
  365. data/spec/extensions/pg_loose_count_spec.rb +0 -23
  366. data/spec/extensions/pg_range_ops_spec.rb +0 -60
  367. data/spec/extensions/pg_range_spec.rb +0 -487
  368. data/spec/extensions/pg_row_ops_spec.rb +0 -61
  369. data/spec/extensions/pg_row_plugin_spec.rb +0 -60
  370. data/spec/extensions/pg_row_spec.rb +0 -363
  371. data/spec/extensions/pg_static_cache_updater_spec.rb +0 -93
  372. data/spec/extensions/pg_timestamptz_spec.rb +0 -17
  373. data/spec/extensions/prepared_statements_safe_spec.rb +0 -66
  374. data/spec/extensions/prepared_statements_spec.rb +0 -182
  375. data/spec/extensions/pretty_table_spec.rb +0 -123
  376. data/spec/extensions/query_spec.rb +0 -94
  377. data/spec/extensions/rcte_tree_spec.rb +0 -381
  378. data/spec/extensions/round_timestamps_spec.rb +0 -39
  379. data/spec/extensions/s_spec.rb +0 -60
  380. data/spec/extensions/schema_caching_spec.rb +0 -64
  381. data/spec/extensions/schema_dumper_spec.rb +0 -868
  382. data/spec/extensions/select_remove_spec.rb +0 -38
  383. data/spec/extensions/sequel_4_dataset_methods_spec.rb +0 -121
  384. data/spec/extensions/serialization_modification_detection_spec.rb +0 -98
  385. data/spec/extensions/serialization_spec.rb +0 -365
  386. data/spec/extensions/server_block_spec.rb +0 -97
  387. data/spec/extensions/server_logging_spec.rb +0 -45
  388. data/spec/extensions/sharding_spec.rb +0 -189
  389. data/spec/extensions/shared_caching_spec.rb +0 -151
  390. data/spec/extensions/single_table_inheritance_spec.rb +0 -347
  391. data/spec/extensions/singular_table_names_spec.rb +0 -22
  392. data/spec/extensions/skip_create_refresh_spec.rb +0 -18
  393. data/spec/extensions/spec_helper.rb +0 -61
  394. data/spec/extensions/split_array_nil_spec.rb +0 -24
  395. data/spec/extensions/split_values_spec.rb +0 -57
  396. data/spec/extensions/sql_comments_spec.rb +0 -33
  397. data/spec/extensions/sql_expr_spec.rb +0 -59
  398. data/spec/extensions/static_cache_spec.rb +0 -410
  399. data/spec/extensions/string_agg_spec.rb +0 -90
  400. data/spec/extensions/string_date_time_spec.rb +0 -95
  401. data/spec/extensions/string_stripper_spec.rb +0 -68
  402. data/spec/extensions/subclasses_spec.rb +0 -79
  403. data/spec/extensions/subset_conditions_spec.rb +0 -38
  404. data/spec/extensions/symbol_aref_refinement_spec.rb +0 -28
  405. data/spec/extensions/symbol_as_refinement_spec.rb +0 -21
  406. data/spec/extensions/synchronize_sql_spec.rb +0 -124
  407. data/spec/extensions/table_select_spec.rb +0 -83
  408. data/spec/extensions/tactical_eager_loading_spec.rb +0 -141
  409. data/spec/extensions/thread_local_timezones_spec.rb +0 -67
  410. data/spec/extensions/timestamps_spec.rb +0 -209
  411. data/spec/extensions/to_dot_spec.rb +0 -153
  412. data/spec/extensions/touch_spec.rb +0 -226
  413. data/spec/extensions/tree_spec.rb +0 -284
  414. data/spec/extensions/typecast_on_load_spec.rb +0 -86
  415. data/spec/extensions/unlimited_update_spec.rb +0 -21
  416. data/spec/extensions/update_or_create_spec.rb +0 -83
  417. data/spec/extensions/update_primary_key_spec.rb +0 -105
  418. data/spec/extensions/update_refresh_spec.rb +0 -59
  419. data/spec/extensions/uuid_spec.rb +0 -101
  420. data/spec/extensions/validate_associated_spec.rb +0 -52
  421. data/spec/extensions/validation_class_methods_spec.rb +0 -1040
  422. data/spec/extensions/validation_contexts_spec.rb +0 -31
  423. data/spec/extensions/validation_helpers_spec.rb +0 -525
  424. data/spec/extensions/whitelist_security_spec.rb +0 -157
  425. data/spec/extensions/xml_serializer_spec.rb +0 -213
  426. data/spec/files/bad_down_migration/001_create_alt_basic.rb +0 -4
  427. data/spec/files/bad_down_migration/002_create_alt_advanced.rb +0 -4
  428. data/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  429. data/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  430. data/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +0 -3
  431. data/spec/files/bad_up_migration/001_create_alt_basic.rb +0 -4
  432. data/spec/files/bad_up_migration/002_create_alt_advanced.rb +0 -3
  433. data/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +0 -9
  434. data/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +0 -9
  435. data/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +0 -4
  436. data/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +0 -9
  437. data/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +0 -9
  438. data/spec/files/double_migration/001_create_sessions.rb +0 -9
  439. data/spec/files/double_migration/002_create_nodes.rb +0 -19
  440. data/spec/files/double_migration/003_3_create_users.rb +0 -4
  441. data/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +0 -4
  442. data/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +0 -4
  443. data/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  444. data/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +0 -9
  445. data/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +0 -4
  446. data/spec/files/empty_migration/001_create_sessions.rb +0 -9
  447. data/spec/files/empty_migration/002_create_nodes.rb +0 -0
  448. data/spec/files/empty_migration/003_3_create_users.rb +0 -4
  449. data/spec/files/integer_migrations/001_create_sessions.rb +0 -9
  450. data/spec/files/integer_migrations/002_create_nodes.rb +0 -9
  451. data/spec/files/integer_migrations/003_3_create_users.rb +0 -4
  452. data/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  453. data/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +0 -9
  454. data/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  455. data/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +0 -9
  456. data/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  457. data/spec/files/missing_integer_migrations/001_create_alt_basic.rb +0 -4
  458. data/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +0 -4
  459. data/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  460. data/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  461. data/spec/files/reversible_migrations/001_reversible.rb +0 -5
  462. data/spec/files/reversible_migrations/002_reversible.rb +0 -5
  463. data/spec/files/reversible_migrations/003_reversible.rb +0 -5
  464. data/spec/files/reversible_migrations/004_reversible.rb +0 -5
  465. data/spec/files/reversible_migrations/005_reversible.rb +0 -10
  466. data/spec/files/reversible_migrations/006_reversible.rb +0 -10
  467. data/spec/files/reversible_migrations/007_reversible.rb +0 -10
  468. data/spec/files/timestamped_migrations/1273253849_create_sessions.rb +0 -9
  469. data/spec/files/timestamped_migrations/1273253851_create_nodes.rb +0 -9
  470. data/spec/files/timestamped_migrations/1273253853_3_create_users.rb +0 -4
  471. data/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +0 -4
  472. data/spec/files/transaction_specified_migrations/002_create_basic.rb +0 -4
  473. data/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +0 -3
  474. data/spec/files/transaction_unspecified_migrations/002_create_basic.rb +0 -3
  475. data/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +0 -9
  476. data/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +0 -9
  477. data/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +0 -4
  478. data/spec/guards_helper.rb +0 -58
  479. data/spec/integration/associations_test.rb +0 -2513
  480. data/spec/integration/database_test.rb +0 -113
  481. data/spec/integration/dataset_test.rb +0 -1880
  482. data/spec/integration/eager_loader_test.rb +0 -687
  483. data/spec/integration/migrator_test.rb +0 -262
  484. data/spec/integration/model_test.rb +0 -203
  485. data/spec/integration/plugin_test.rb +0 -2302
  486. data/spec/integration/prepared_statement_test.rb +0 -398
  487. data/spec/integration/schema_test.rb +0 -869
  488. data/spec/integration/spec_helper.rb +0 -64
  489. data/spec/integration/timezone_test.rb +0 -86
  490. data/spec/integration/transaction_test.rb +0 -354
  491. data/spec/integration/type_test.rb +0 -127
  492. data/spec/model/association_reflection_spec.rb +0 -803
  493. data/spec/model/associations_spec.rb +0 -4538
  494. data/spec/model/base_spec.rb +0 -817
  495. data/spec/model/class_dataset_methods_spec.rb +0 -146
  496. data/spec/model/dataset_methods_spec.rb +0 -198
  497. data/spec/model/eager_loading_spec.rb +0 -2262
  498. data/spec/model/hooks_spec.rb +0 -370
  499. data/spec/model/inflector_spec.rb +0 -26
  500. data/spec/model/model_spec.rb +0 -953
  501. data/spec/model/plugins_spec.rb +0 -318
  502. data/spec/model/record_spec.rb +0 -2107
  503. data/spec/model/spec_helper.rb +0 -45
  504. data/spec/model/validations_spec.rb +0 -193
  505. data/spec/model_no_assoc_spec.rb +0 -1
  506. data/spec/model_spec.rb +0 -1
  507. data/spec/plugin_spec.rb +0 -1
  508. data/spec/sequel_coverage.rb +0 -15
  509. data/spec/sequel_warning.rb +0 -4
  510. data/spec/spec_config.rb +0 -12
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5802a8e3fdb50b3d51f78111c604c86c64f0a3705bcf272423f0b9281800720b
4
- data.tar.gz: 2257a05863d62c70a871032ecc5fdff36196ab717094af98c096570c08f380a7
3
+ metadata.gz: 0f1a5546546a02086c315afdb93e50fb2df1f12ee665f048cd36589bff6da6cd
4
+ data.tar.gz: f42f5a4ec65f1ed13de8f01f8091673688346be075fee60507adc13473e8528f
5
5
  SHA512:
6
- metadata.gz: 3caabfec31c2953c4f0dd57e68dc58466ff416ab80276ae5ac111fffde7a6dcdddf068b074e33e8df4ea6f41ca941f59f60ec1507d5de2a07ce7b3cdb9016c82
7
- data.tar.gz: 811720c5223a1e2113b47fb0430870dec6377f8d6d1408f0b61dd52abacd596f26af6077c77cf619692c80a43224f06e44633d5c8bd2ee403eafac3a5e7050db
6
+ metadata.gz: 5838cb5c5a9b24ba5646967a88bc4d487b99e760f8112ab455f0fb19dcfbd63cf884e1032bc31055eaeb0d1a89ab7d61b0865f89bfa35587b13ef4060fc8348c
7
+ data.tar.gz: d113cbddf7ccc677e0b43dd919fccdf3461d3f2157374b37cf89cfb1ce5f3156d43aab2bfcd9498ff99500bcd5fcd350fb8424894141a02cd648be128f36d0fc
data/CHANGELOG CHANGED
@@ -1,2206 +1,820 @@
1
- === 5.8.0 (2018-05-01)
2
-
3
- * Don't mark SQLAnywhere as supporting WITH in INSERT statement (jeremyevans)
4
-
5
- * Support :search_path as a shard option on PostgreSQL (jeremyevans)
6
-
7
- * Add Dataset#nowait for raising a Sequel::DatabaseLockTimeout when a locked row is encountered, supported on PostgreSQL, MySQL 8+, MSSQL, and Oracle (jeremyevans)
8
-
9
- * Support Dataset#skip_locked on MySQL 8+ (jeremyevans)
10
-
11
- * Make schema modification methods in the pg_enum extension work on a frozen Database object (jeremyevans)
12
-
13
- * Support common table expressions and window functions on MySQL 8+ (jeremyevans)
14
-
15
- * Ignore Dataset#explain :extended option on MySQL 5.7+, since extended output is then the MySQL default (jeremyevans)
16
-
17
- * Work around REGEXP BINARY not working correctly on MySQL 8+ by using REGEXP_LIKE with the 'c' match_type (jeremyevans)
18
-
19
- * Force correct column order in Database#foreign_key_list on MySQL (jeremyevans)
20
-
21
- * Add ConnectionPool#connection_expiration_random_delay to connection_expiration extension, to avoid thundering herd if preallocating connections (hex2a, jeremyevans) (#1503)
22
-
23
- * Emit deprecation warning in association_proxies plugin if using #filter on an association proxy, since behavior will change on ruby 2.6+ (utilum) (#1497)
24
-
25
- * Handle multiple add_constraint calls and a set_column_null call in the same alter_table block on SQLite (jeremyevans) (#1498)
26
-
27
- * Add Database#rename_enum to the pg_enum extension (AlexWayfer) (#1495)
28
-
29
- * Make tactical_eager_loading plugin respect the :allow_eager association option (jeremyevans) (#1494)
30
-
31
- * Add pg_auto_constraint_validations plugin, for automatically converting constraint violations to validation failures on PostgreSQL (jeremyevans)
32
-
33
- * Don't make Model#_valid? public in the error_splitter plugin (jeremyevans)
34
-
35
- * Support Database#indexes :include_partial option on PostgreSQL for including partial indexes (jeremyevans)
36
-
37
- * Include more diagnostic information in Database#error_info on PostgreSQL (jeremyevans)
38
-
39
- * Support Database#foreign_key_list :reverse option on PostgreSQL for parsing foreign key constraints that reference a given table (jeremyevans)
40
-
41
- * Add Database#check_constraints on PostgreSQL for parsing CHECK constraints (jeremyevans)
42
-
43
- * Don't use identity columns if :serial=>true or :type=>:serial|:bigserial column options are used (#1490) (jeremyevans)
44
-
45
- * Cache Dataset#select_all datasets if no arguments are given (jeremyevans)
46
-
47
- * Cache Dataset#returning datasets if no arguments are given (jeremyevans)
48
-
49
- * Cache Dataset#qualify datasets if no argument is given (jeremyevans)
50
-
51
- * Cache Dataset#lateral datasets (jeremyevans)
52
-
53
- * Cache Dataset#from_self datasets if no options are given (jeremyevans)
54
-
55
- * Cache Dataset#distinct datasets if no arguments or block is given (jeremyevans)
56
-
57
- === 5.7.0 (2018-04-01)
58
-
59
- * Add Sequel.start_timer and .elapsed_seconds_since for more accurate elapsed time calculations on ruby 2.1+ (jeremyevans)
60
-
61
- * Run Dataset#with_sql_{all,each,first,single_value} using a cached dataset to avoid clobbering the dataset's columns (jeremyevans)
62
-
63
- * Add Database#convert_serial_to_identity on PostgreSQL 10.2+, which requires superuser access (jeremyevans)
64
-
65
- * Fix Database#server_version when connecting to PostgreSQL 10.1+ in certain cases (jeremyevans)
66
-
67
- * Free temporary clobs in the jdbc/oracle adapter to prevent a memory leak (jeremyevans) (#1482)
68
-
69
- * Treat prepared statement errors due to changing types as disconnect errors in the postgres adapter (jeremyevans) (#1481)
70
-
71
- * Add integer64 extension for treating Integer as a 64-bit integer when used as a generic type (jeremyevans)
72
-
73
- * Allow many_to_pg_array remove_all_* method cast appropriately to work correctly for non-integer types (jeremyevans)
74
-
75
- * Fix array_type for pg_array_to_many and many_to_pg_array associations in pg_array_associations plugin (jeremyevans)
76
-
77
- * Use identity columns instead of serial columns for primary keys on PostgreSQL 10.2+ (jeremyevans)
78
-
79
- * Support :identity option when creating columns on PostgreSQL 10+ to create identity columns (jeremyevans)
80
-
81
- * Add Dataset#overriding_{system,user}_value on PostgreSQL for use with PostgreSQL 10+ identity columns (jeremyevans)
82
-
83
- * Set :auto_increment schema entry correctly for PostgreSQL 10+ identity columns (jeremyevans)
84
-
85
- === 5.6.0 (2018-03-01)
86
-
87
- * Dedup :db_type strings in schema hashes on Ruby 2.5+ (jeremyevans)
88
-
89
- * Make schema_caching extension work with :callable_default schema values (jeremyevans)
90
-
91
- * Freeze string valuse in hashes returned by Database#schema when using the schema_caching extension (jeremyevans)
92
-
93
- * Protect migration file loading with a mutex to not break when multiple threads load migration files simultaneously (jeremyevans)
94
-
95
- * Respect identifier mangling rules when renaming columns on Microsoft SQL Server (jeremyevans)
96
-
97
- === 5.5.0 (2018-01-31)
98
-
99
- * Make Database#copy_table in the postgres adapter handle errors that occur while processing rows (jeremyevans) (#1470)
100
-
101
- * Cache results of changed_columns method in local variables in many places for better performance (jeremyevans)
102
-
103
- * Make modification_detection plugin not break column change detection for new objects (jeremyevans) (#1468)
104
-
105
- * Make pg_range extension set :ruby_default schema value for recognized range defaults (jeremyevans)
106
-
107
- * Make pg_interval extension set :ruby_default schema value for recognized interval defaults (jeremyevans)
108
-
109
- * Make pg_json extension set :callable_default schema value for empty json/jsonb array/hash defaults (jeremyevans)
110
-
111
- * Make pg_inet extension set :ruby_default schema value for recognized inet/cidr defaults (jeremyevans)
112
-
113
- * Make pg_hstore extension set :callable_default schema value for empty hstore defaults (jeremyevans)
114
-
115
- * Make pg_array extension set :callable_default schema value for recognized empty array defaults (jeremyevans) (#1466)
116
-
117
- * Make defaults_setter plugin prefer :callable_default db_schema values over :ruby_default db_schema values (jeremyevans)
118
-
119
- * Add defaults_setter plugin :cache option for caching default values returned (jeremyevans)
120
-
121
- * Freeze string values in hashes returned by Database#schema (jeremyevans)
122
-
123
- === 5.4.0 (2018-01-04)
124
-
125
- * Enable fractional seconds in timestamps on DB2 (jeremyevans) (#1463)
126
-
127
- * Don't attempt to insert a second time if insert_select runs a query that doesn't return results, which can happen when triggers are used (jeremyevans)
128
-
129
- * Make Dataset#insert_select on PostgreSQL and MSSQL return false instead of nil if the INSERT query is sent to the database but returns no rows (jeremyevans)
130
-
131
- * Add index_caching extension for caching calls to Database#indexes (kenaniah, jeremyevans) (#1461)
132
-
133
- * Allow Database#indexes on SQLite, MSSQL, SQLAnywhere, and DB2 to handle SQL::Identifier values (jeremyevans)
134
-
135
- * Add pg_timestamptz extension for using timestamptz (timestamp with time zone) as the default timestamp type (jeremyevans)
136
-
137
- * Support Sequel.date_{add,sub} :cast option for setting cast type in date_arithmetic extension (jeremyevans)
138
-
139
- * Optimize Database#synchronize implementation on ruby 2.5+ (jeremyevans)
140
-
141
- * Add class_table_inheritance plugin :ignore_subclass_columns option (brianphillips) (#1459)
142
-
143
- * Make Dataset#to_xml in xml_serializer work with eager_graphed datasets (jeremyevans)
144
-
145
- * Make Dataset#to_json in json_serializer work with eager_graphed datasets (jeremyevans)
146
-
147
- * Cache Dataset#nullify dataset in the null_dataset extension (chanks) (#1456)
148
-
149
- * Add datetime_parse_to_time extension, for parsing timestamp strings without offsets using DateTime.parse.to_time (jeremyevans) (#1455)
150
-
151
- * Add WHERE NULL filter for Dataset#where calls with no existing filter, no argument, and where the virtual row block returns nil (jeremyevans)
152
-
153
- === 5.3.0 (2017-12-01)
154
-
155
- * Add logger to Database instance before making first connection in bin/sequel (jeremyevans)
156
-
157
- * Drop support for PostgreSQL <8.1 in Database#indexes (jeremyevans)
158
-
159
- * Add synchronize_sql extension, for checking out a connection around SQL generation (KJTsanaktsidis, jeremyevans) (#1451)
160
-
161
- * Deprecate Dataset#where calls with no existing filter, no argument, and where the virtual row block returns nil (jeremyevans) (#1454)
162
-
163
- * Add DatasetModule#reverse for simpler use of descending orders (jeremyevans)
164
-
165
- * Support WITH clauses in subqueries on SQLite, but not in UNION/INTERSECT/EXCEPT (jeremyevans)
166
-
167
- * Hoist WITH clauses to INSERT statement level if INSERT subquery uses a CTE on MSSQL (jeremyevans)
168
-
169
- * Respect indislive and ignore indcheckxmin index attributes when using Database#indexes on PostgreSQL (jeremyevans)
170
-
171
- * Explicitly disallow use of server-side prepared statements when using Dataset#call in the jdbc/postgresql adapter (jeremyevans) (#1448)
172
-
173
- * Support common table expressions, window functions, dropping CHECK constraints, and recognizing CURRENT_DATE defaults on MariaDB 10.2+ (jeremyevans)
174
-
175
- * Make Database#reset_primary_key_sequence work on PostgreSQL 10+ (jeremyevans)
176
-
177
- * Support :connect_sqls Database option for easily issuing sql commands on all new connections (jeremyevans)
178
-
179
- * Support :extensions Database option for loading extensions when initializing, useful in connection strings (jeremyevans)
180
-
181
- * Avoid warning if trying to rollback after a commit or rollback raises an exception in the postgres adapter (jeremyevans)
182
-
183
- * Support Date::Infinity values in the pg_extended_date_support extension (jeremyevans)
184
-
185
- === 5.2.0 (2017-10-27)
186
-
187
- * Fix type conversion for smallint unsigned and integer unsigned types on jdbc/mysql (jeremyevans) (#1443)
188
-
189
- * Add pg_extended_date_support extension, for handling infinite and BC dates/timestamps (jeremyevans)
190
-
191
- * Do not ignore existing @dataset instance variable when subclassing Sequel::Model (bjmllr) (#1435)
192
-
193
- === 5.1.0 (2017-10-01)
194
-
195
- * Make jdbc/h2 and jdbc/hsqldb adapters respect :foreign_key_constraint_name option when adding new foreign key column (jeremyevans)
196
-
197
- * Do not issue unnecessary query for macaddr type oid when loading the pg_inet extension (jeltz) (#1423)
198
-
199
- * Make alter_table add_foreign_key with a column symbol reversible when using the :foreign_key_constraint_name option (jeremyevans) (#1422)
200
-
201
- * Do not raise an error if calling Model.freeze on a frozen model (jeremyevans) (#1421)
202
-
203
- * Make Database#copy_into in the jdbc/postgresql adapter handle multi-byte strings (ckoenig) (#1416)
204
-
205
- * Remove deprecated Model use_after_commit_rollback class and instance methods (jeremyevans)
206
-
207
- * Remove deprecated Model.allowed_columns method in the base model support (jeremyevans)
208
-
209
- * Remove deprecated Model.plugin_module_defined? private method (jeremyevans)
210
-
211
- * Remove deprecated support for Model#_before_validation private method (jeremyevans)
212
-
213
- === 5.0.0 (2017-09-01)
214
-
215
- * Make bin/sequel -M option always use base 10 (jeremyevans)
216
-
217
- * Don't use savepoints when creating indexes inside a transaction on databases that don't support transactional schema modifications (jeremyevans) (#1407)
218
-
219
- * Support :if_not_exists option when creating indexes on PostgreSQL 9.5+ (DyegoCosta) (#1405)
220
-
221
- * Make threaded connection pools not block while connections are being made (jeremyevans)
222
-
223
- * SQL::Expression#clone and #dup now return self, since all expressions should be frozen value objects (jeremyevans)
224
-
225
- * Don't create empty arrays for unused association callbacks (jeremyevans)
226
-
227
- * Cache association method name symbols instead of recomputing them everytime (jeremyevans)
228
-
229
- * Raise an exception if attempting to create a prepared statement using a dataset with a delayed evaluation (jeremyevans)
230
-
231
- * Make ConnectionPool#size thread safe by using the pool mutex (jeremyevans)
232
-
233
- * Use instance_exec instead of instance_eval when passing a block, to work with lambdas that accept no arguments (jeremyevans)
234
-
235
- * Freeze SQL::StringAgg instances in string_agg extension (jeremyevans)
236
-
237
- * Freeze SQL::DateAdd instances in date_arithmetic extension (jeremyevans)
238
-
239
- * Freeze SQL::Expression.comparison_attrs (jeremyevans)
240
-
241
- * Rename SQL::Subscript#f to #expression, keeping #f as an alias (jeremyevans)
242
-
243
- * Require the :pool_class Database option be a class to use a custom connection pool (jeremyevans)
244
-
245
- * Make the class_table_inheritance plugin raise an Error during update if any UPDATE query does not affect a single row (jeremyevans)
246
-
247
- * Change most send calls to public_send unless calling private methods is expected (jeremyevans)
248
-
249
- * Database schema and schema generator methods now return nil (jeremyevans)
250
-
251
- * Model#validates_unique in the validation helpers plugin now defaults to only checking on new or modified values (jeremyevans)
252
-
253
- * Deprecate Model#_before_validation (private_method), use Model#before_validation now (jeremyevans)
254
-
255
- * Always run before/after/around validation hooks when saving, even when not validating the object (jeremyevans)
256
-
257
- * Deprecate Model use_after_commit_rollback class and instance accessors (jeremyevans)
258
-
259
- * Deprecate Model.allowed_columns reader (jeremyevans)
260
-
261
- * Freeze internal constants that shouldn't be modified at runtime (jeremyevans)
262
-
263
- * Attempt to connect to the database immediately when creating the Database instance (jeremyevans)
264
-
265
- * Make association_pks plugin delay the setting of associated objects until the current object is saved by default (jeremyevans)
266
-
267
- * Joined datasets used as model datasets are now automatically wrapped in a subquery (jeremyevans)
268
-
269
- * Setting an invalid dataset for a model class now raises an exception by default (jeremyevans)
270
-
271
- * Getting all values for newly created models now happens before calling after_create, instead of after (jeremyevans)
272
-
273
- * Remove use of @was_new/@columns_updated instance variables when saving model objects (jeremyevans)
274
-
275
- * Disable symbol splitting by default (jeremyevans)
276
-
277
- * Make datasets frozen by default (jeremyevans)
278
-
279
- * Drop support for ruby 1.8.7, minimum now is 1.9.2 (jeremyevans)
280
-
281
- * Remove deprecated adapters, extensions, plugins, constants, and features (jeremyevans)
282
-
283
- === 4.49.0 (2017-08-01)
284
-
285
- * Make dataset_associations plugin automatically alias tables when using many_through_many associations that join the same table multiple times (jeremyevans)
286
-
287
- * Deprecate using a :pool_class Database that is not a class or a symbol for a supported pool class (jeremyevans)
288
-
289
- * Deprecate :eager_loading_predicate_key association option and association reflection method (jeremyevans)
290
-
291
- * Deprecate Model.serialized_columns in the serialization plugin (jeremyevans)
292
-
293
- * Deprecate Model.cti_columns in the class_table_inheritance plugin (jeremyevans)
294
-
295
- * Deprecate SQL::AliasedExpression#aliaz, use #alias instead (jeremyevans)
296
-
297
- * Deprecate SQL::Function#f, use #name instead (jeremyevans)
298
-
299
- * Deprecate treating cross join with conditions as inner join on MySQL (jeremyevans)
300
-
301
- * Deprecate ConnectionPool#created_count, use #size instead (jeremyevans)
302
-
303
- * Deprecate ConnectionPool::CONNECTION_POOL_MAP, use the :pool_class option to specify a non-default connection pool (jeremyevans)
304
-
305
- * Deprecate Sequel::IBMDB::Connection#prepared_statements= in the ibmdb adapter (jeremyevans)
306
-
307
- * Deprecate DEFAULT_OPTIONS in validation_helpers, override default_validation_helpers_options private method instead (jeremyevans)
308
-
309
- * Deprecate model association before callbacks returning false to cancel the action (jeremyevans)
310
-
311
- * Support native offset syntax on Oracle 12 (timon) (#1397)
312
-
313
- * Deprecate Dataset#nullify! in the null_dataset extension (jeremyevans)
314
-
315
- * Deprecate Dataset#autoid=, #_fetch=, and #numrows= in the mock adapter (jeremyevans)
316
-
317
- * Deprecate loading plugins by requiring sequel_#{plugin} (jeremyevans)
318
-
319
- * Add Model.sti_class_from_sti_key in the single_table_inheritance plugin to get the appropriate class to use (Aryk) (#1396)
320
-
321
- * Make Sequel::Error#cause use #wrapped_exception if it exists on ruby 2.1+ (jeremyevans)
322
-
323
- * Make Dataset#where_all, #where_each, #where_single_value core dataset methods instead of just model dataset methods (jeremyevans)
324
-
325
- * Make Database#extend_datasets and Dataset#with_extend now use a Dataset::DatasetModule instance if given a block (jeremyevans)
326
-
327
- * Add Sequel::Dataset::DatasetModule, now a superclass of Sequel::Model::DatasetModule (jeremyevans)
328
-
329
- * Make composition plugin with :mapping option work correctly if Model#get_column_value is overridden (jeremyevans)
330
-
331
- * Support Dataset#paged_each :stream => false option on mysql2 to disable streaming (Aryk) (#1395)
332
-
333
- * Make datetimeoffset handling in the jdbc/sqlserver adapter work on more drivers (jeremyevans)
334
-
335
- * Make alter_table add_primary_key work correctly on H2 1.4+ (jeremyevans)
336
-
337
- * Support :sslrootcert Database option in the postgres adapter (dleavitt) (#1391)
338
-
339
- === 4.48.0 (2017-07-01)
340
-
341
- * Deprecate Model.<< (jeremyevans)
342
-
343
- * Deprecate Dataset#{and,exclude_where,range,interval}, move to sequel_4_dataset_methods extension (jeremyevans)
344
-
345
- * Make Database#indexes not include partial indexes on SQLite 3.8.8+ (jeremyevans)
346
-
347
- * Make Database#indexes include indexes created automatically from unique constraints on SQLite 3.8.8+ (jeremyevans)
348
-
349
- * Deprecate Sequel::Postgres::PG_TYPES, conversion procs should not be registered per-Database (jeremyevans)
350
-
351
- * Add Database#add_conversion_proc method on PostgreSQL for registering conversion procs (jeremyevans)
352
-
353
- * Deprecate unexpected values passed to Dataset#insert_conflict on SQLite (jeremyevans)
354
-
355
- * Deprecate Sequel::SqlAnywhere::Dataset#convert_smallint_to_bool= method (jeremyevans)
356
-
357
- * Deprecate Sequel::SqlAnywhere.convert_smallint_to_bool accessor (jeremyevans)
358
-
359
- * Use savepoints around index creation if creating table inside transaction if ignore_index_errors is used (jeremyevans)
360
-
361
- * Deprecate treating :natrual_inner join type on MySQL as NATURAL LEFT JOIN (jeremyevans)
362
-
363
- * Deprecate Dataset#mssql_unicode_strings= on Microsoft SQL Server (jeremyevans)
364
-
365
- * Preserve encoding when parsing PostgreSQL arrays (jeltz) (#1387)
366
-
367
- * Deprecate external modification of Sequel::JDBC::TypeConvertor (jeremyevans)
368
-
369
- * Deprecate Sequel::DB2.use_clob_as_blob accessor (jeremyevans)
370
-
371
- * Add Database#use_clob_as_blob accessor on DB2 (jeremyevans)
372
-
373
- * Deprecate SEQUEL_POSTGRES_USES_PG constant (jeremyevans)
374
-
375
- * Do not swallow original exception if exception is raised inside Database#copy_table on PostgreSQL (jeremyevans)
376
-
377
- * Deprecate Sequel::Postgres.client_min_messages and force_standard_strings accessors (jeremyevans)
378
-
379
- * Deprecate Sequel::Postgres.use_iso_date_format accessor (jeremyevans)
380
-
381
- * Do not allow connection in postgres adapter if postgres-pr driver is used and force_standard_strings is false (jeremyevans)
382
-
383
- * Drop support for ancient postgres driver in postgres adapter, now only pg and postgres-pr drivers are supported (jeremyevans)
384
-
385
- * Deprecate Sequel::MySQL.convert_invalid_date_time accessor (jeremyevans)
386
-
387
- * Deprecate Sequel::MySQL.convert_tinyint_to_bool accessor (jeremyevans)
388
-
389
- * Deprecate Sequel::MySQL.default_{charset,collate,engine} accessors (jeremyevans)
390
-
391
- * Add Database#default_{charset,collate,engine} accessors on MySQL (jeremyevans)
392
-
393
- * Make mock adapter thread safe (jeremyevans)
394
-
395
- * Deprecate Sequel::JDBC::Dataset#convert_types accessor (jeremyevans)
396
-
397
- * Add Dataset#with_convert_types in jdbc adapter (jeremyevans)
398
-
399
- * Deprecate Sequel::IBMDB::Dataset#convert_smallint_to_bool= method (jeremyevans)
400
-
401
- * Deprecate Sequel::IBMDB.convert_smallint_to_bool accessor (jeremyevans)
402
-
403
- * Add Database#convert_smallint_to_bool accessor in the ibmdb adapter (jeremyevans)
404
-
405
- * Deprecate sequel_3_dataset_methods extension (jeremyevans)
406
-
407
- * Deprecate query_literals extension (jeremyevans)
408
-
409
- * Deprecate using subtype conversion procs added after registering composite type in the pg_row extension (jeremyevans)
410
-
411
- * Don't try canceling copy in Database#copy_into if copier is not created yet (aakashAu) (#1384)
412
-
413
- * Deprecate global conversion procs added by pg_* extensions, when extension isn't loaded into Database instance (jeremyevans)
414
-
415
- * Deprecate Sequel::Postgres::PGRange.register in the pg_range extension (jeremyevans)
416
-
417
- * Deprecate Sequel::Postgres::PGArray.register in the pg_array extension (jeremyevans)
418
-
419
- * Deprecate Database#copy_conversion_procs (private method) on PostgreSQL (jeremyevans)
420
-
421
- * Deprecate Database#reset_conversion_procs on PostgreSQL (jeremyevans)
422
-
423
- * Deprecate meta_def extension (jeremyevans)
424
-
425
- * Make class_table_inheritance plugin with :alias option not use subquery for datasets that don't join (jeremyevans)
426
-
427
- * Deprecate hash_aliases extension (jeremyevans)
428
-
429
- * Deprecate filter_having extension (jeremyevans)
430
-
431
- * Deprecate empty_array_ignore_nulls extension (jeremyevans)
432
-
433
- * Deprecate Array#sql_array in the core_extensions extension (jeremyevans)
434
-
435
- * Make validation_helpers plugin :allow_blank option work correctly when the blank extension is not loaded (jeremyevans)
436
-
437
- * Make validation_class_methods plugin no longer require the blank extension (jeremyevans)
438
-
439
- * Clear cached associations when touching associations in the touch plugin (jeremyevans)
440
-
441
- * Make pg_array_associations model plugin load pg_array extension into database (jeremyevans)
442
-
443
- * Remove support for :strict option in nested_attributes plugin, use :unmatched_pk option instead (jeremyevans)
444
-
445
- * Make to_json class/dataset method in json_serializer plugin accept :instance_block option to pass block to Model#to_json (jeremyevans)
446
-
447
- * Make to_json methods in json_serializer plugin accept blocks that are used to transform values before serializing to JSON (jeremyevans)
448
-
449
- * Make Sequel.object_to_json pass block to #to_json (jeremyevans)
450
-
451
- * Deprecate identifier_columns plugin, not needed with Sequel.split_symbols = false (jeremyevans)
452
-
453
- * Make reloading column_conflicts plugin not remove existing conflict markings (jeremyevans)
454
-
455
- * Deprecate cti_base_model, cti_key, and cti_model_map class methods in class_table_inheritance plugin (jeremyevans)
456
-
457
- * Make Model.skip_auto_validations(:not_null) in the auto_validations plugin skip not null checks for columns with default values (jeremyevans)
458
-
459
- * Make Database#copy_into in jdbc/postgresql adapter respect :server option (jeremyevans)
460
-
461
- * Make #to_hash and #to_hash_groups handle options in the static_cache plugin, and add rename #to_hash to #as_hash (jeremyevans)
462
-
463
- * Rename Dataset#to_hash to #as_hash, and add #to_hash as an alias, to allow undefing #to_hash to fix ruby calling it implicitly (jeremyevans) (#1375)
464
-
465
- * Handle PG* constants deprecated in pg 0.21.0 in the postgres adapter (jeremyevans) (#1377, #1378)
466
-
467
- * Support :association_pks_use_associated_table association option in association_pks plugin (jeremyevans)
468
-
469
- * Make pg_hstore extension reset hstore conversion proc when running Database#reset_conversion_procs (jeremyevans)
470
-
471
- * Fix incorrect SQL used for inserting into a CTI subclass sharing the primary table when using the :alias option (jeremyevans)
472
-
473
- === 4.47.0 (2017-06-01)
474
-
475
- * Deprecate pg_typecast_on_load plugin, only useful on deprecated do and swift adapters (jeremyevans)
476
-
477
- * Deprecate association_autoreloading and many_to_one_pk_lookup plugins, which were made the default model behavior in Sequel 4 (jeremyevans)
478
-
479
- * Deprecate setting invalid datasets for models unless required_valid_table = false (jeremyevans)
480
-
481
- * Make Model.require_valid_table = true not raise for datasets where Database#schema raises an error but Dataset#columns works (jeremyevans)
482
-
483
- * Make Database#with_server in the server_block extension accept a second argument for a different read_only shard (jeremyevans) (#1355)
484
-
485
- * Make schema_dumper extension handle Oracle 11g XE inclusion of not null in the db_type (StevenCregan, jeremyevans) (#1351)
486
-
487
- * Add Model.default_association_type_options for changing default association options per association type (jeremyevans)
488
-
489
- * Add :materialized option to Database#views on PostgreSQL to return materialized views (Blargel) (#1348)
490
-
491
- * Make defaults_setter plugin inherit custom default values when subclassing (jeremyevans)
492
-
493
- === 4.46.0 (2017-05-01)
494
-
495
- * Recognize additional disconnect error on MySQL (jeremyevans)
496
-
497
- * Deconstantize dataset SQL generation, speeding up ruby 2.3+, slowing down earlier versions (jeremyevans)
498
-
499
- * Deprecate calling Dataset#set_graph_aliases before Dataset#graph (jeremyevans)
500
-
501
- * Don't swallow exception if there is an exception when rolling back a transaction when using :rollback=>:always option (jeremyevans)
502
-
503
- * Deprecate passing 2 arguments to Database#alter_table (jeremyevans)
504
-
505
- * Deprecate passing Schema::CreateTableGenerator instance as second argument to Database#create_table (jeremyevans)
506
-
507
- * Deprecate Database::DatasetClass as a way for getting default dataset classes for datasets (jeremyevans)
508
-
509
- * Deprecate SQLite pragma getting and setting methods (jeremyevans)
510
-
511
- * Remove handling of EMULATED_FUNCTION_MAP from adapter dataset classes, overide Dataset#native_function_name instead (jeremyevans)
512
-
513
- * Deprecate {Integer,Timestamp}Migrator::DEFAULT_SCHEMA_{COLUMN,TABLE} (jeremyevans)
514
-
515
- * Deprecate Database#jdbc_* methods for jdbc/db2 adapter Database instances (jeremyevans)
516
-
517
- * Remove addition of Database#jdbc_* to JDBC::Database in jdbc/db2 adapter (jeremyevans)
518
-
519
- * Deprecate many internal Database and Dataset string/regexp constants in core and included adapters (jeremyevans)
520
-
521
- * Remove use of Fixnum in sqlanywhere shared adapter (jeremyevans)
522
-
523
- * Deprecate Sequel::Schema::Generator constant, use Sequel::Schema::CreateTableGenerator instead (jeremyevans)
524
-
525
- * Deprecate Database#log_yield (jeremyevans)
526
-
527
- * Deprecate the set_overrides extension (jeremyevans)
528
-
529
- * If passing an empty array or hash and a block to a filtering method, ignore the array or hash and just use the block (jeremyevans)
530
-
531
- * Deprecate ignoring explicit nil argument when there is no existing filter (jeremyevans)
532
-
533
- * Deprecate ignoring explicit nil argument to filtering methods when passing a block (jeremyevans)
534
-
535
- * Deprecate ignoring empty strings and other empty? arguments passed to the filtering methods without a block (jeremyevans)
536
-
537
- * Deprecate calling filtering methods without an argument or a block (jeremyevans)
538
-
539
- * Deprecate Sequel::VirtualRow#` to create literal SQL, use Sequel.lit instead (jeremyevans)
540
-
541
- * Add auto_literal_strings extensions for treating plain strings passed to filtering/update methods as literal SQL (jeremyevans)
542
-
543
- * Deprecate automatically treating plain strings passed to filtering/update methods as literal SQL (jeremyevans)
544
-
545
- * Passing a PlaceholderLiteralString to a filtering method now uses parentheses around the expression (jeremyevans)
546
-
547
- * Make Dataset#full_text_search work on Microsoft SQL Server when no_auto_literal_strings extension is used (jeremyevans)
548
-
549
- * Fix Database#disconnect when using the single connection pool without an active connection (jeremyevans) (#1339)
550
-
551
- * Handle conversion of datetimeoffset values when using the jdbc/sqlserver adapter in some configurations (iaddict, jeremyevans) (#1338)
552
-
553
- * Fix conversion of some time values when using the jdbc/sqlserver adapter in some configurations (iaddict, jeremyevans) (#1337)
554
-
555
- * Use microsecond precision for time values on Microsoft SQL Server, instead of millisecond precision (jeremyevans)
556
-
557
- * Add Dataset#sqltime_precision private method for adapters to use different precision for Sequel::SQLTime than Time and Date (jeremyevans)
558
-
559
- * Use utc timezone in Sequel::SQLTime.create if Sequel.application_timezone is :utc (jeremyevans) (#1336)
560
-
561
- * Include migration filename in message about migration file without a single migration (jmettraux) (#1334)
562
-
563
- * Deprecate conversion of - to _ in adapter schemes (jeremyevans)
564
-
565
- * Don't quote function names that are SQL::Identifiers, unless SQL::Function#quoted is used (jeremyevans)
566
-
567
- * Deprecate splitting virtual row method names (jeremyevans)
568
-
569
- * Deprecate passing blocks to virtual row methods, move to virtual_row_method_block extension (jeremyevans)
570
-
571
- * Deprecate Sequel::SQL::Expression#sql_literal and #lit (jeremyevans)
572
-
573
- * Don't issue deprecation warnings on ruby 1.8.7, as Sequel 5 is dropping support for it (jeremyevans)
574
-
575
- * Deprecate Sequel::BasicObject#remove_methods! (jeremyevans)
576
-
577
- * Deprecate sequel/no_core_ext file (jeremyevans)
578
-
579
- * Deprecate model dataset #insert_sql accepting model instances (jeremyevans)
580
-
581
- * Deprecate model dataset #join_table and #graph accepting model classes (jeremyevans)
582
-
583
- * Support :alias option to class_table_inheritance plugin, wrapping subclass datasets in a subquery to fix ambiguous column issues (jeremyevans)
584
-
585
- * Deprecate Model.set_allowed_columns and Model#{set_all,set_only,update_all,update_only}, move to whitelist security plugin (jeremyevans)
586
-
587
- * Do not raise MassAssignmentRestriction when setting nested attributes and using the :fields option, only check for fields given (jeremyevans)
588
-
589
- * Do not add class methods for private methods definined in dataset_module (jeremyevans)
590
-
591
- * Deprecate Model.def_dataset_method and Model.subset, move to def_dataset_method plugin (jeremyevans)
592
-
593
- * Deprecate Model.finder and Model.prepared_finder, move to finder plugin (jeremyevans)
594
-
595
- * Deprecate calling Model.db= on a model with a dataset (jeremyevans)
596
-
597
- * Deprecate splitting symbols to look for qualified/aliased identifiers (e.g. :table__column) (jeremyevans)
598
-
599
- * Allow optimized lookups and deletes for models using SQL::Identifier and SQL::QualifiedIdentifier values as the FROM table (jeremyevans)
600
-
601
- === 4.45.0 (2017-04-01)
602
-
603
- * Correctly handle datasets with offsets but no limits used in compound datasets on MSSQL <2012 (jeremyevans)
604
-
605
- * Correctly handle false values in the split_values plugin (bananarne) (#1333)
606
-
607
- * Deprecate Dataset#dup/clone and Model.dup/clone (jeremyevans)
608
-
609
- * Deprecate the schema and scissors plugins (jeremyevans)
610
-
611
- * Deprecate Model.{lazy_attributes,nested_attributes,composition,serialization}_module accessors (jeremyevans)
612
-
613
- * Deprecate Database#database_name on MySQL (jeremyevans)
614
-
615
- * Deprecate Database#use on MySQL (jeremyevans)
616
-
617
- * Make pg_hstore extension no longer update PG_NAMED_TYPES (jeremyevans)
618
-
619
- * Deprecate Sequel::PG_NAMED_TYPES (jeremyevans)
620
-
621
- * Add columns_updated plugin for making updated columns hash available in after_update and after_save hooks (jeremyevans)
622
-
623
- * Deprecate accessing @columns_updated directly in model after_update and after_save hooks (jeremyevans)
624
-
625
- * Deprecate Database#{add,remove}_servers when not using a sharded connection pool (jeremyevans)
626
-
627
- * Deprecate Database#each_server (jeremyevans)
628
-
629
- * Make Model#_valid? private method accept only an options hash (jeremyevans)
630
-
631
- * Deprecate returning false from model before hooks to cancel the action, use Model#cancel_action (jeremyevans)
632
-
633
- * Handle Model#cancel_action correctly in before hooks when Model#valid? is called (jeremyevans)
634
-
635
- * Deprecate Sequel::BeforeHookFailed (jeremyevans)
636
-
637
- * Deprecate passing multiple arguments as filter arguments when not using a conditions specifier (jeremyevans)
638
-
639
- * Deprecate passing Procs as filter arguments, require they be passed as blocks (jeremyevans)
640
-
641
- * Deprecate Sequel::Error::* exception class aliases (jeremyevans)
642
-
643
- * Deprecate prepared_statements_associations and prepared_statements_with_pk plugins (jeremyevans)
644
-
645
- * Deprecate Sequel::Unbinder, Sequel::UnbindDuplicate, and Dataset#unbind (jeremyevans)
646
-
647
- * Deprecating calling Sequel::Qualifier with two arguments (jeremyevans)
648
-
649
- * Add validation_contexts plugin for supporting custom contexts when validating (jeremyevans)
650
-
651
- * Deprecate Sequel::Database.single_threaded singleton accessor (jeremyevans)
652
-
653
- * Deprecate treating unrecognized prepared statement type as :select (jeremyevans)
654
-
655
- * Deprecate Sequel.identifier_{in,out}put_method= and .quote_identifiers= singleton setters (jeremyevans)
656
-
657
- * Deprecate Sequel::Database.identifier_{in,out}put_method and .quote_identifiers singleton accessors (jeremyevans)
658
-
659
- * Deprecate loading the identifier_mangling by default, require it be loaded explicitly if needed (jeremyevans)
660
-
661
- * Make Database#dump_{table_schema,schema_migration} in schema_dumper extension support :schema option (dadario) (#1328)
662
-
663
- * Make Dataset#delete respect an existing limit on Microsoft SQL Server (jeremyevans)
664
-
665
- * Add Dataset#skip_limit_check to mark a dataset as skipping the limit/offset check for updates and deletes (jeremyevans)
666
-
667
- * Deprecate calling Dataset#{update/delete/truncate} on datasets with limits or offsets unless the database supports it (jeremyevans)
668
-
669
- * Add deprecation message for using association_pks setter method with :delay_pks=>true association option (jeremyevans)
670
-
671
- * Add deprecation message for using association_pks setter method without :delay_pks association option (jeremyevans)
672
-
673
- * Deprecate having duplicate column names in subclass tables when using the class_table_inheritance plugin (jeremyevans)
674
-
675
- * Deprecate do (DataObjects), swift, and jdbc/as400 adapters (jeremyevans)
676
-
677
- * Deprecate support for Cubrid, Firebird, Informix, and Progress databases (jeremyevans)
678
-
679
- * The :proxy_argument option passed to association_proxies plugin block is now an empty hash if no arguments are passed to the association method (jeremyevans)
680
-
681
- * Deprecate passing non-hash arguments to association methods (jeremyevans)
682
-
683
- * Deprecate passing multiple arguments to association methods (jeremyevans)
684
-
685
- * Deprecate model transaction hook methods (jeremyevans)
686
-
687
- * Drop support for pg <0.8.0 in the postgres adapter (jeremyevans)
688
-
689
- * Deprecate passing a block to Database#from (jeremyevans)
690
-
691
- * Deprecate Sequel::Model::ANONYMOUS_MODEL_CLASSES{,_MUTEX} (jeremyevans)
692
-
693
- * Deprecate Sequel.cache_anonymous_models and Sequel.cache_anonymous_models= (jeremyevans)
694
-
695
- * Automatically use from_self when using a dataset as part of a compound if it has an offset but no limit (jeremyevans)
696
-
697
- * Drop order on existing datasets when using Dataset#union/intersect/except on Microsoft SQL Server unless a limit or offset is used (jeremyevans)
698
-
699
- * Deprecate dataset mutation (jeremyevans)
700
-
701
- * Handle dumping of autoincrementing 64-bit integer primary key columns correctly when using :same_db option in the schema dumper (jeremyevans) (#1324)
702
-
703
- * Add Model.dataset_module_class accessor, allowing plugins to support custom behavior in dataset_module blocks (jeremyevans)
704
-
705
- * Make ORDER BY come after UNION/INTERSECT/EXCEPT on Microsoft SQL Server and SQLAnywhere (jeremyevans)
706
-
707
- * Make Database#indexes on MySQL handle qualified identifiers (jeremyevans) (#1316)
708
-
709
- * Add oracle support to the odbc adapter (samuel02) (#1315)
710
-
711
- === 4.44.0 (2017-03-01)
712
-
713
- * Add where_all, where_each, where_single_value model dataset methods, optimized for frozen datasets (jeremyevans)
714
-
715
- * Add eager method to dataset_module (jeremyevans)
716
-
717
- * Add implicit_subquery extension, for implicitly using a subquery for datasets using raw SQL when calling dataset methods that modify SQL (jeremyevans)
718
-
719
- * Make Dataset#from_self keep the columns from the current dataset if present (jeremyevans)
720
-
721
- * Add implicit_subquery extension, implicitly using subqueries for dataset methods if the current dataset uses raw SQL (jeremyevans)
722
-
723
- * Make SQL::ValueList#inspect show that it is a value list (jeremyevans)
724
-
725
- * Make LiteralString#inspect show that it is a literal string (jeremyevans)
726
-
727
- * Make Model::Associations::AssociationReflection#inspect show reflection class and guess at association definition line (jeremyevans)
728
-
729
- * Make SQLTime#inspect show it is an SQLTime instance, and only the time component (jeremyevans)
730
-
731
- * Make SQL::Blob#inspect show that it is a blob, the number of bytes, and some or all of the content (jeremyevans)
732
-
733
- * Make plugins not modify the constant namespace for the model class that uses them (jeremyevans)
734
-
735
- * Do not modify encoding of SQL::Blob instances in force_encoding plugin (jeremyevans)
736
-
737
- * Add Model.freeze_descendents to subclasses plugin, for easier finalizing associations/freezing of descendent classes (jeremyevans)
738
-
739
- * Add Model.finalize_associations method for finalizing associations, speeding up some association reflections methods almost 10x (jeremyevans)
740
-
741
- * Implement Model.freeze such that it can be used in production (jeremyevans)
742
-
743
- * Recognize another disconnect error in the jdbc/as400 adapter (perlun) (#1300)
744
-
745
- * Correctly handle conversion of false values when typecasting PostgreSQL arrays (mistoo) (#1299)
746
-
747
- * Raise error if the postgres adapter attempts to load an incompatible version of sequel_pg (mahlonsmith) (#1298)
748
-
749
- * Fix jdbc adapter so basic_type_convertor_map is not shared between instances, work with Database#freeze (jeremyevans)
750
-
751
- === 4.43.0 (2017-02-01)
752
-
753
- * Make jdbc/postgresql adapter work if pg_hstore extension is loaded first (jeremyevans) (#1296)
754
-
755
- * Make prepared_statements_associations plugin work correctly on some instance specific associations (jeremyevans)
756
-
757
- * Make prepared_statements plugin not use prepared statements in cases where it is probably slower (jeremyevans)
758
-
759
- * Optimize Model#refresh similar to Model.with_pk (jeremyevans)
760
-
761
- * Make Database#extension not attempt to load the same extension more than once (jeremyevans)
762
-
763
- * Implement Database#freeze such that it can be used in production (jeremyevans)
764
-
765
- * Freeze enum_labels in the pg_enum extension (jeremyevans)
766
-
767
- * Handle Database#type_supported? thread-safely on PostgreSQL (jeremyevans)
768
-
769
- * Handle primary_key_sequences thread-safely on Oracle (jeremyevans)
770
-
771
- * Handle sharding better when using mysql2 native prepared statements (jeremyevans)
772
-
773
- * Use thread-safe incrementor for mock adapter autoid handling (jeremyevans)
774
-
775
- * Make Model#freeze not freeze associations hash until after validating the model instance (jeremyevans)
776
-
777
- * Make prepared_statements_associations plugin work correctly when model object explicitly specifies server to use when also using sharding plugin (jeremyevans)
778
-
779
- * Make prepared_statements_with_pk plugin work correctly when dataset explicitly specifies server to use (jeremyevans)
780
-
781
- * Make prepared_statements plugin work correctly when model object explicitly specifies server to use (jeremyevans)
782
-
783
- * Make dataset_module inherited to subclasses when using the single_table_inheritance plugin (jeremyevans) (#1284)
784
-
785
- * Support use of SQLite result codes in the jdbc-sqlite adapter, if the jdbc sqlite driver supports them (flash-gordon, jeremyevans) (#1283)
786
-
787
- * Make timestamp migrator handle key length limitations when using MySQL with InnoDB engine and utf8mb4 charset default (jeremyevans) (#1282)
788
-
789
- === 4.42.0 (2017-01-01)
790
-
791
- * Handle eager load callbacks correctly for one_to_one associations with orders or offsets when window functions are not supported (jeremyevans)
792
-
793
- * Raise Sequel::Error if using an :eager_limit dataset option when eager loading a singular association (jeremyevans)
794
-
795
- * Replace internal uses of Dataset#select_more with #select_append to save a method call (jeremyevans)
796
-
797
- * Make Dataset#order_append the primary method, and #order_more the alias, for similarity to #select_append and #select_more (jeremyevans)
798
-
799
- * Replace internal uses of Dataset#filter with #where to save a method call (jeremyevans)
800
-
801
- * Do not set :auto_increment in the schema information for integer columns that are part of a composite primary key on SQLite (jeremyevans)
802
-
803
- * Use autoincrement setting on integer primary key columns when emulating table modification methods on SQLite (thenrio, jeremyevans) (#1277, #1278)
804
-
805
- * Make the pagination extension work on frozen datasets (jeremyevans)
806
-
807
- * Make Dataset#server work for frozen model datasets using the sharding plugin (jeremyevans)
808
-
809
- * Make Dataset#nullify in the null_dataset extension work on frozen datasets (jeremyevans)
810
-
811
- * Make Model#set_server work when using a frozen model dataset (jeremyevans)
812
-
813
- * Make Dataset#ungraphed work on a frozen model dataset (jeremyevans)
814
-
815
- * Add Dataset#with_{autoid,fetch,numrows} to the mock adapter, returning cloned datasets with the setting changed (jeremyevans)
816
-
817
- * Make looser_typecasting extension handle the strict BigDecimal parsing introduced in ruby 2.4rc1 (jeremyevans)
818
-
819
- * Make Database#{db,opts}= in the sequel_3_dataset_methods extension raise for frozen datasets (jeremyevans)
820
-
821
- * Speed up repeated calls to Dataset#{interval,range} for frozen datasets using a cached placeholder literalizer (jeremyevans)
822
-
823
- * Speed up repeated calls to Dataset#get with a single argument for frozen datasets using a cached placeholder literalizer (jeremyevans)
824
-
825
- * Speed up repeated calls to Dataset#{first,last} with arguments/blocks for frozen datasets using a cached placeholder literalizer (jeremyevans)
826
-
827
- * Speed up repeated calls to Dataset#{avg,min,max,sum} for frozen datasets using a cached placeholder literalizer (jeremyevans)
828
-
829
- * Cache dataset returned by Dataset#skip_locked for frozen datasets (jeremyevans)
830
-
831
- * Cache dataset returned by Dataset#for_update for frozen datasets (jeremyevans)
832
-
833
- * Cache dataset returned by Dataset#un{filtered,grouped,limited,ordered} for frozen datasets (jeremyevans)
834
-
835
- * Cache dataset returned by Dataset#reverse (no args) for frozen datasets (jeremyevans)
836
-
837
- * Cache dataset returned by Dataset#invert for frozen datasets (jeremyevans)
838
-
839
- * Speed up repeated calls to Dataset#count with an argument or block for frozen datasets using a cached placeholder literalizer (jeremyevans)
840
-
841
- * Using :on_duplicate_columns=>:warn Database option with duplicate_columns_handler now prepends file/line to the warning message (jeremyevans)
842
-
843
- * Move identifier mangling code to identifier_mangling extension, load by default unless using :identifier_mangling=>false Database option (jeremyevans)
844
-
845
- * Allow Dataset#with_extend to accept a block and create a module with that block that the object is extended with (jeremyevans)
846
-
847
- * Speed up repeated calls to with_pk on the same frozen model dataset using a cached placeholder literalizer (jeremyevans)
848
-
849
- * Add dataset_module methods such as select and order that define dataset methods which support caching for frozen datasets (jeremyevans)
850
-
851
- * Cache subset datasets if they don't use blocks or procs for frozen model datasets (jeremyevans)
852
-
853
- * Cache intermediate dataset used in Dataset#{last,paged_each} for frozen model datasets without an order (jeremyevans)
854
-
855
- * Cache dataset returned by Dataset#naked for frozen datasets (jeremyevans)
856
-
857
- * Cache intermediate dataset used in Dataset#last (no args) for frozen datasets (jeremyevans)
858
-
859
- * Cache intermediate dataset used in Dataset#first (no args) and #single_record for frozen datasets (jeremyevans)
860
-
861
- * Cache intermediate dataset used in Dataset#empty? for frozen datasets (jeremyevans)
862
-
863
- * Cache intermediate dataset used in Dataset#count (no args) for frozen datasets (jeremyevans)
864
-
865
- * Warn if :conditions option may be unexpectedly ignored during eager_graph/association_join (jeremyevans) (#1272)
866
-
867
- * Cache SELECT and DELETE SQL for most frozen datasets (jeremyevans)
868
-
869
- * Freeze most SQL::Expression objects and internal state by default (jeremyevans)
870
-
871
- * Freeze Dataset::PlaceholderLiteralizer and Dataset::PlaceholderLiteralizer::Argument instances (jeremyevans)
872
-
873
- * Freeze most dataset opts values to avoid unintentional modification (jeremyevans)
874
-
875
- * Add Dataset#with_convert_smallint_to_bool on DB2, returning a clone with convert_smallint_to_bool set (jeremyevans)
876
-
877
- * Make Dataset#freeze actually freeze the dataset on ruby 2.4+ (jeremyevans)
878
-
879
- * Avoid using instance variables other than @opts for dataset data storage (jeremyevans)
880
-
881
- * Add freeze_datasets extension, making all datasets for a given Database frozen (jeremyevans)
882
-
883
- * Refactor prepared statement internals, using opts instead of instance variables (jeremyevans)
884
-
885
- * Model.set_dataset now operates on a clone of the dataset given instead of modifying it, so it works with frozen datasets (jeremyevans)
886
-
887
- === 4.41.0 (2016-12-01)
888
-
889
- * Add Dataset#with_mssql_unicode_strings on Microsoft SQL Server, returning a clone with mssql_unicode_strings set (jeremyevans)
890
-
891
- * Add Dataset#with_identifier_output_method, returning a clone with identifier_output_method set (jeremyevans)
892
-
893
- * Add Dataset#with_identifier_input_method, returning a clone with identifier_input_method set (jeremyevans)
894
-
895
- * Add Dataset#with_quote_identifiers, returning a clone with quote_identifiers set (jeremyevans)
896
-
897
- * Add Dataset#with_extend, returning a clone extended with given modules (jeremyevans)
898
-
899
- * Add Dataset#with_row_proc, returning a clone with row_proc set (jeremyevans)
900
-
901
- * Support use of SQL::AliasedExpressions as Model#to_json :include option keys in the json_serializer plugin (sensadrome) (#1269)
902
-
903
- * Major improvements to type conversion in the ado adapter (vais, jeremyevans) (#1265)
904
-
905
- * Avoid memory leak in ado adapter by closing result sets after yielding them (vais, jeremyevans) (#1259)
906
-
907
- * Fix hook_class_methods plugin handling of commit hooks (jeremyevans)
908
-
909
- * Make association dataset method correctly handle cases where key fields are nil (jeremyevans)
910
-
911
- * Handle pure java exceptions that don't support message= when reraising the exception in the jdbc adapter (jeremyevans)
912
-
913
- * Add support for :offset_strategy Database option on DB2, with :limit_offset and :offset_fetch values, to disable OFFSET emulation (#1254) (jeremyevans)
914
-
915
- * Remove deprecated support for using Bignum class as a generic type (jeremyevans)
916
-
917
- === 4.40.0 (2016-10-28)
918
-
919
- * Make column_select plugin not raise an exception if the model's table does not exist (jeremyevans)
920
-
921
- * Make dataset_associations plugin correctly handle (many|one)_through_many associations with single join table (jeremyevans) (#1253)
922
-
923
- * Add s extension, with adds Sequel::S module that includes private #S method for calling Sequel.expr, including use as refinement (jeremyevans)
924
-
925
- * Add symbol_as and symbol_as_refinement extensions so that :column.as(:alias) is treated as Sequel.as(:column, :alias) (jeremyevans)
926
-
927
- * Add symbol_aref and symbol_aref_refinement extensions so that :table[:column] is treated as Sequel.qualify(:table, :column) (jeremyevans)
928
-
929
- * Add Sequel.split_symbols=, to support the disabling of splitting symbols with double/triple underscores (jeremyevans)
930
-
931
- * Make SQL::QualifiedIdentifier convert SQL::Identifier arguments to strings, fixing Sequel[:schema][:table] usage in schema methods (jeremyevans)
932
-
933
- * Do not attempt to combine non-associative operators (jeremyevans) (#1246)
934
-
935
- * Automatically add NOT NULL to columns when adding primary keys if the database doesn't handle it (jeremyevans)
936
-
937
- * Make prepared_statements plugin correctly handle lookup on joined datasets (jeremyevans) (#1244)
938
-
939
- * Make Database#tables with :qualify=>true option handle table names with double underscores correctly (jeremyevans) (#1241)
940
-
941
- * Add SQL::Identifier#[] and SQL::QualifiedIdentifier#[] for creating qualified identifiers (jeremyevans)
942
-
943
- * Add support for Dataset#insert_conflict :conflict_where option, for a predicate to use in ON CONFLICT clauses (chanks) (#1240)
944
-
945
- * Freeze Dataset::NON_SQL_OPTIONS, add private Dataset#non_sql_options, fixing thread safety issues during require (jeremyevans)
946
-
947
- * Make the callable returned by Database#rollback_checker thread safe (jeremyevans)
948
-
949
- * Make lazy_attributes and dataset_associations plugins work if insert_returning_select plugin is loaded before on model with no dataset (jeremyevans)
950
-
951
- === 4.39.0 (2016-10-01)
952
-
953
- * Make active_model plugin use rollback_checker instead of after_rollback hook (jeremyevans)
954
-
955
- * Add Database#rollback_checker, which returns a proc that returns whether the in progress transaction is rolled back (jeremyevans)
956
-
957
- * Add Sequel::Database.set_shared_adapter_scheme to allow external adapters to support the mock adapter (jeremyevans)
958
-
959
- * Make hook_class_methods plugin not use after commit/rollback model hooks (jeremyevans)
960
-
961
- * Support add_column :after and :first options on MySQL (AnthonyBobsin, jeremyevans) (#1234)
962
-
963
- * Support ActiveSupport 5 in pg_interval extension when weeks/hours are used in ActiveSupport::Duration objects (chanks) (#1233)
964
-
965
- * Support IntegerMigrator :relative option, for running only the specified number of migrations up or down (jeremyevans)
966
-
967
- * Make the touch plugin also touch associations on create in addition to update and delete (jeremyevans)
968
-
969
- * Add :allow_manual_update timestamps plugin option for not overriding a manually set update timestamp (jeremyevans)
970
-
971
- * Add Sequel.[] as an alias to Sequel.expr, for easier expression creation (jeremyevans)
972
-
973
- * Add PostgreSQL full_text_search :to_tsquery=>:phrase option, for using PostgreSQL 9.6+ full text search phrase searching (jeremyevans)
974
-
975
- * Add JSONBOp#insert in pg_json_ops extension, for jsonb_insert support on PostgreSQL 9.6+ (jeremyevans)
976
-
977
- * Support add_column :if_not_exists option on PostgreSQL 9.6+ (jeremyevans)
978
-
979
- === 4.38.0 (2016-09-01)
980
-
981
- * Support :driver_options option when using the postgres adapter with pg driver (jeremyevans)
982
-
983
- * Don't use after commit/rollback database hooks if the model instance methods are not overridden (jeremyevans)
984
-
985
- * Add SQL::NumericMethods#coerce, allowing code such as Sequel.expr{1 - x} (jeremyevans)
986
-
987
- * Support ** operator for exponentiation on expressions, similar to +, -, *, and / (jeremyevans)
988
-
989
- * Add Sequel::SQLTime.date= to set the date used for SQLTime instances (jeremyevans)
990
-
991
- === 4.37.0 (2016-08-01)
992
-
993
- * Add support for regular expression matching on Oracle 10g+ using REGEXP_LIKE (johndcaldwell) (#1221)
994
-
995
- * Recognize an additional disconnect error in the postgres adapter (jeremyevans)
996
-
997
- * Make connection pool remove connections for disconnect errors not raised as DatabaseDisconnectError (jeremyevans)
998
-
999
- * Support mysql2 0.4+ native prepared statements and bound variables (jeremyevans)
1000
-
1001
- * Add Database#values for VALUES support on SQLite 3.8.3+ (jeremyevans)
1002
-
1003
- * Support create_view :columns option on SQLite 3.9.0+ (jeremyevans)
1004
-
1005
- * Make migration reverser handle alter_table add_constraint using a hash as the first argument (soupmatt) (#1215)
1006
-
1007
- * Make ASTTransformer handle Sequel.extract (jeremyevans) (#1213)
1008
-
1009
- === 4.36.0 (2016-07-01)
1010
-
1011
- * Deprecate use of Bignum class as generic type, since the behavior will change in ruby 2.4 (jeremyevans)
1012
-
1013
- * Don't hold connection pool mutex while disconnecting connections (jeremyevans)
1014
-
1015
- * Don't hold references to disconnected connections in the connection_validator extension (jeremyevans)
1016
-
1017
- * Don't overwrite existing connection_validation_timeout when loading connection_validator extension multiple times (jeremyevans)
1018
-
1019
- * Add connection_expiration extension, for automatically removing connections open for too long (pdrakeweb) (#1208, #1209)
1020
-
1021
- * Handle disconnection errors raised during string literalization in mysql2 and postgres adapters (jeremyevans)
1022
-
1023
- * Add string_agg extension for aggregate string concatenation support on many databases (jeremyevans)
1024
-
1025
- * Add SQL::Function#order for ordered aggregate functions (jeremyevans)
1026
-
1027
- * Support operator validation in constraint_validations for <, <=, >, and >= operators with string and integer arguments (jeremyevans)
1028
-
1029
- * Make validates_operator validation consider nil values invalid unless :allow_nil or similar option is used (jeremyevans)
1030
-
1031
- * Close cursors for non-SELECT queries in the oracle adapter after execution, instead of waiting until GC (jeremyevans) (#1203)
1032
-
1033
- * Add :class_namespace association option for setting default namespace for :class option given as symbol/string (jeremyevans)
1034
-
1035
- * Add Sequel::Model.cache_anonymous_models accessor for changing caching on a per-model basis (jeremyevans)
1036
-
1037
- * Add Sequel::Model.def_Model for adding a Model() method to a module, for easier use of namespaced models (jeremyevans)
1038
-
1039
- * Add Sequel::Model::Model() for creating subclasses of Sequel::Model subclasses, instead of just Sequel::Model itself (jeremyevans)
1040
-
1041
- === 4.35.0 (2016-06-01)
1042
-
1043
- * Add :headline option to PostgreSQL Dataset#full_text_search for adding an extract of the matched text to the SELECT list (jeremyevans)
1044
-
1045
- * Make :rollback=>:always inside a transaction use a savepoint automatically if supported (jeremyevans) (#1193)
1046
-
1047
- * Recognize bool type as boolean in the schema dumper (jeremyevans) (#1192)
1048
-
1049
- * Make Dataset#to_hash and #to_hash_groups work correctly for model datasets doing eager loading (jeremyevans)
1050
-
1051
- * Make delay_add_association plugin handle hashes and primary keys passed to add_* association methods (jeremyevans) (#1187)
1052
-
1053
- * Treat :Bignum as a generic type, to support 64-bit integers on ruby 2.4+, where Bignum == Integer (jeremyevans)
1054
-
1055
- * Add server_logging extension for including server/shard information when logging queries (jeremyevans)
1056
-
1057
- * Add Database#log_connection_info, for including connection information when logging queries (jeremyevans)
1058
-
1059
- * Add Dataset#skip_locked for skipping locked rows on PostgreSQL 9.5+, MSSQL, and Oracle (jeremyevans)
1060
-
1061
- * Allow Sequel::Model#lock! to accept an optional lock style (petedmarsh) (#1183)
1062
-
1063
- * Add sql_comments extension for setting SQL comments on queries (jeremyevans)
1064
-
1065
- * Make Postgres::PGRange#cover? handle empty, unbounded, and exclusive beginning ranges (jeremyevans)
1066
-
1067
- * Fix frozen string literal issues on JRuby 9.1.0.0 (jeremyevans)
1068
-
1069
- * Allow json_serializer :include option with cascaded values to work correctly when used with association_proxies (jeremyevans)
1070
-
1071
- === 4.34.0 (2016-05-01)
1072
-
1073
- * Add support for :dataset_associations_join association option to dataset_associations plugin, for making resulting datasets have appropriate joins (jeremyevans)
1074
-
1075
- * Log server connection was attempted to in PoolTimeout exception messages in sharded connection pool (jeremyevans)
1076
-
1077
- * Log Database :name option in PoolTimeout exception messages (bigkevmcd, jeremyevans) (#1176)
1078
-
1079
- * Add duplicate_columns_handler extension, for raising or warning if a dataset returns multiple columns with the same name (TSMMark, jeremyevans) (#1175)
1080
-
1081
- * Support registering per-Database custom range types in the pg_range extension (steveh) (#1174)
1082
-
1083
- * Support :preconnect=>:concurrently Database option for preconnecting in separate threads (kch, jeremyevans) (#1172)
1084
-
1085
- * Make prepared_statements_safe plugin work correctly with CURRENT_DATE/CURRENT_TIMESTAMP defaults (jeremyevans) (#1168)
1086
-
1087
- * Add validates_operator validation helper (petedmarsh) (#1170)
1088
-
1089
- * Recognize additional unique constraint violation on Microsoft SQL Server (jeremyevans)
1090
-
1091
- * Add :hash option to Dataset#(select|to)_hash(_groups)? methods for choosing object to populate (mwpastore) (#1167)
1092
-
1093
- === 4.33.0 (2016-04-01)
1094
-
1095
- * Handle arbitrary objects passed as arguments to the association method (jeremyevans) (#1166)
1096
-
1097
- * Handle array with multiple columns as Dataset#insert_conflict :target value on PostgreSQL (chanks) (#1165)
1098
-
1099
- * Add Database#transaction :savepoint=>:only option, for only creating a savepoint if already inside a transaction (jeremyevans)
1100
-
1101
- * Make Database#sequence_for_table on Oracle handle cases where the schema for a table cannot be determined (jeremyevans)
1102
-
1103
- * The boolean_readers, boolean_subsets, and class_table_inheritance plugins no longer do blind rescues (jeremyevans) (#1162)
1104
-
1105
- * Add Model.require_valid_table setting, if set to true doesn't swallow any errors for invalid tables (jeremyevans)
1106
-
1107
- * Creating model classes inside a transaction when the table doesn't exist no longer rolls back the transaction on PostgreSQL (jeremyevans) (#1160)
1108
-
1109
- * Sequel::Model no longer swallows many errors when subclassing or setting datasets (jeremyevans) (#1160)
1110
-
1111
- * Handle altering column NULL settings for varchar(max) and text columns on MSSQL (Ilja Resch)
1112
-
1113
- * Remove Sequel.firebird and Sequel.informix adapter methods (jeremyevans)
1114
-
1115
- * Make graph_each extension handle result set splitting when using Dataset#first (jeremyevans)
1116
-
1117
- * Allow raising Sequel::ValidationFailed and Sequel::HookFailed without an argument (jeremyevans)
1118
-
1119
- * Allow schema_dumper to handle :qualify=>true option on PostgreSQL (jeremyevans)
1120
-
1121
- * Allow foreign_key schema method to handle SQL::Identifier and SQL::QualifiedIdentifier as 2nd argument (jeremyevans)
1122
-
1123
- === 4.32.0 (2016-03-01)
1124
-
1125
- * Use mutex for synchronizing access to association reflection cache on MRI (jeremyevans)
1126
-
1127
- * Add Dataset#delete_from on MySQL, allowing deletions from multiple tables in a single query (jeremyevans) (#1146)
1128
-
1129
- * Add no_auto_literal_strings extension, which makes SQL injection vulnerabilities less likely (jeremyevans)
1130
-
1131
- * Add Model.default_association_options, for setting option defaults for all future associations (jeremyevans)
1132
-
1133
- * Support :association_pks_nil association option in association_pks setter for determining how to handle nil (jeremyevans)
1134
-
1135
- * Make association_pks setter handle empty array correctly when :delay_pks is set (jeremyevans)
1136
-
1137
- * Add a setter method for one_through_one associations (jeremyevans)
1138
-
1139
- * Include :remarks entry in JDBC schema parsing output, containing comments on the column (olleolleolle) (#1143)
1140
-
1141
- * Support :eager_reload and :eager options to associations in tactical_eager_loading plugin (jeremyevans)
1142
-
1143
- * Make tactical_eager_loading not eager load if passing proc or block to association method (jeremyevans)
1144
-
1145
- * Make eager_each plugin handle eager loading for Dataset#first and similar methods (jeremyevans)
1146
-
1147
- === 4.31.0 (2016-02-01)
1148
-
1149
- * Convert types in association_pks setters before saving them, instead of just before running queries (jeremyevans)
1150
-
1151
- * Use getField and getOID instead of field and oid in the jdbc/postgresql adapter to work around JRuby 9.0.5.0 regression (jeremyevans) (#1137)
1152
-
1153
- * Support using PostgreSQL-specific types in bound variables in the jdbc/postgresql adapter (jeremyevans)
1154
-
1155
- * Add support for running with --enable-frozen-string-literal on ruby 2.3 (jeremyevans)
1156
-
1157
- * Make Database#disconnect in the oracle adapter work correctly on newer versions of oci8 (jeremyevans)
1158
-
1159
- * Support parsing PostgreSQL arrays with explicit bounds (jeremyevans) (#1131)
1160
-
1161
- * Raise an error if attempting to use a migration file not containing a single migration (jeremyevans) (#1127)
1
+ === 5.38.0 (2020-11-01)
1162
2
 
1163
- * Automatically set referenced key for self referential foriegn key constraint for simple non-autoincrementing primary key on MySQL (jeremyevans) (#1126)
3
+ * Do not add new Database instances to Sequel::DATABASES if the test connection fails (jeremyevans) (#1727)
1164
4
 
1165
- === 4.30.0 (2016-01-04)
5
+ * Support the newer com.mysql.cj.jdbc.Driver in the jdbc/mysql adapter (jeremyevans)
1166
6
 
1167
- * Add Dataset#insert_conflict and #insert_ignore on SQLite for handling uniqueness violations (Sharpie) (#1121)
7
+ * Do not swallow disconnect errors in Database#create_or_replace_view or Database#create_table* on Oracle (jeremyevans)
1168
8
 
1169
- * Make Database#row_type in pg_row extension handle different formats of schema-qualified types (jeremyevans) (#1119)
9
+ * Only rescue non-disconnect Sequel::DatabaseErrors in Postgres::Database#server_version (jeremyevans) (#1724)
1170
10
 
1171
- * Add identifier_columns plugin for handling column names containing 2 or more consecutive underscores when saving (jeremyevans) (#1117)
11
+ * Make the single_table_inheritance and prepared_statements plugins work if loaded into the same class (jeremyevans) (#1721)
1172
12
 
1173
- * Support :eager_limit and :eager_limit_strategy dataset options in model eager loaders for per-call limits and strategies (chanks) (#1115)
13
+ === 5.37.0 (2020-10-01)
1174
14
 
1175
- * Allow IPv6 addresses in database URLs on ruby 1.9+ (hellvinz, jeremyevans) (#1113)
15
+ * Recognize more unsigned decimal/float types in the schema dumper (akimd, jeremyevans) (#1720)
1176
16
 
1177
- * Make Database#schema :db_type entries include sizes for string types on DB2 (jeremyevans)
17
+ * Add Postgres::PGRow::{Array,Hash}Row#op to the pg_row_ops extension if the pg_row extension is loaded (jeremyevans)
1178
18
 
1179
- * Make Database#schema :db_type entries include sizes for string and decimal types in the jdbc adapter's schema parsing (jeremyevans)
19
+ * Add Model#column_previously_was and #column_previously_changed? to the dirty plugin (jeremyevans)
1180
20
 
1181
- * Recognize another disconnect error in the tinytds adapter (jeremyevans)
1182
-
1183
- === 4.29.0 (2015-12-01)
1184
-
1185
- * Add Model#json_serializer_opts method to json_serializer plugin, allowing for setting to_json defaults on per-instance basis (jeremyevans)
1186
-
1187
- * Add uuid plugin for automatically setting UUID column when creating a model object (pdrakeweb, jeremyevans) (#1106)
1188
-
1189
- * Allow the sqlanywhere adapter to work with sharding (jeremyevans)
1190
-
1191
- * Support blobs as bound variables in the oracle adapter (jeremyevans) (#1104)
1192
-
1193
- * Order by best results first when using the Database#full_text_search :rank option on PostgreSQL (chanks) (#1101)
1194
-
1195
- * Run Database#table_exists? inside a savepoint if currently in a transaction and the database supports savepoints (jeremyevans) (#1100)
1196
-
1197
- * Allow Database#transaction :retry_on option to work when using savepoints (jeremyevans)
1198
-
1199
- * Allow for external adapters to implement Dataset#date_add_sql_append to integrate with the date_arithmetic extension (jeremyevans)
1200
-
1201
- * Add Dataset#insert_empty_columns_values private method for easy overriding for databases that don't support INSERT with DEFAULT VALUES (jeremyevans)
1202
-
1203
- === 4.28.0 (2015-11-02)
1204
-
1205
- * Add boolean_subsets plugin, which adds a subset for each boolean column (jeremyevans)
1206
-
1207
- * Add subset_conditions plugin, which adds a method for each subset returning the filter conditions for the subset (jeremyevans)
1208
-
1209
- * Make the list plugin work better with the auto_validations plugin when there is a validation on the position column (jeremyevans)
1210
-
1211
- * Make to_csv for model datasets call instance methods, just like Model#to_csv, in the csv_serializer plugin (skrobul) (#1088)
1212
-
1213
- * Raise Sequel::NoExistingObject instead of generic error if Model#refresh can't find the related row (jeremyevans)
1214
-
1215
- === 4.27.0 (2015-10-01)
1216
-
1217
- * Don't stub Sequel.synchronize on MRI (YorickPeterse) (#1083)
1218
-
1219
- * Make bin/sequel warn if given arguments that it doesn't use (jeremyevans)
1220
-
1221
- * Fix the order of referenced composite keys returned by Database#foreign_key_list on PostgreSQL (jeremyevans) (#1081)
1222
-
1223
- * Recognize another disconnect error in the jdbc/postgresql adapter (jeremyevans)
1224
-
1225
- * In the active model plugin, make Model#persisted? return false if the transaction used for creation is rolled back (jeremyevans) (#1076)
1226
-
1227
- * Use primary_key :keep_order option in the schema dumper if the auto incrementing column is not the first column in the table (jeremyevans)
1228
-
1229
- * Set :auto_increment option correctly in the schema parser when the auto incrementing column is not the first column in the table (jeremyevans)
1230
-
1231
- * Support :keep_order option to primary_key in schema generator, to not automatically make the primary key the first column (jeremyevans)
1232
-
1233
- * Add new jsonb/json functions and operators supported in PostgreSQL 9.5+ (jeremyevans)
1234
-
1235
- * Add before_after_save plugin, for refreshing created objects and resetting modified flag before calling after_create/update/save hooks (jeremyevans)
1236
-
1237
- * Add Dataset#single_record! and #single_value! which don't require cloning the receiver (jeremyevans)
1238
-
1239
- * Dataset#with_sql_single_value now works correctly for model datasets (jeremyevans)
1240
-
1241
- * Optimize Dataset#single_value and #with_sql_single_value to not create an unnecessary array (jeremyevans)
1242
-
1243
- * Make postgres adapter work with postgres-pr 0.7.0 (jeremyevans) (#1074)
1244
-
1245
- === 4.26.0 (2015-09-01)
1246
-
1247
- * Make Dataset#== not consider frozen status in determining equality (jeremyevans)
1248
-
1249
- * Support :if_exists option to drop_column on PostgreSQL (jeremyevans)
1250
-
1251
- * Add Dataset#grouping_sets to support GROUP BY GROUPING SETS on PostgreSQL 9.5+, MSSQL 2008+, Oracle, DB2, and SQLAnywhere (jeremyevans)
1252
-
1253
- * Fix handling of Class.new(ModelClass){set_dataset :table} on ruby 1.8 (jeremyevans)
1254
-
1255
- * Use range function constructors instead of casts for known range types in pg_range (jeremyevans) (#1066)
1256
-
1257
- * Make class_table_inheritance plugin work without sti_key (jeremyevans)
1258
-
1259
- * Detect additional disconnect errors when using the tinytds adapter (jeremyevans)
1260
-
1261
- * Make offset emulation without order but with explicit selection handle ambiguous column names (jeremyevans)
1262
-
1263
- * Allow preparing already prepared statements when emulating limits and/or offsets (jeremyevans)
1264
-
1265
- * Have Sequel::NoMatchingRow exceptions record the dataset related to the exception (pedro, jeremyevans) (#1060)
1266
-
1267
- === 4.25.0 (2015-08-01)
1268
-
1269
- * Add Dataset#insert_conflict on PostgreSQL 9.5+, for upsert/insert ignore support using INSERT ON CONFLICT (jeremyevans)
1270
-
1271
- * Support Dataset#group_rollup and #group_cube on PostgreSQL 9.5+ (jeremyevans)
1272
-
1273
- * Automatically REORG tables when altering when using jdbc/db2 (karlhe) (#1054)
1274
-
1275
- * Recognize constraint violation exceptions on swift/sqlite (jeremyevans)
1276
-
1277
- * Recognize another check constraint violation exception message on SQLite (jeremyevans)
1278
-
1279
- * Allow =~ and !~ to be used on ComplexExpressions (janko-m) (#1050)
1280
-
1281
- * Support case sensitive SQL Server 2012 in MSSQL metadata queries (knut2) (#1049)
1282
-
1283
- * Add Dataset#group_append, for appending to the existing GROUP BY clause (YorickPeterse) (#1047)
1284
-
1285
- * Add inverted_subsets plugin, for creating an inverted subset method for each subset (celsworth) (#1042)
1286
-
1287
- * Make Dataset#for_update not use the :read_only database when the dataset is executed (jeremyevans) (#1041)
1288
-
1289
- * Add singular_table_names plugin, for changing Sequel to not pluralize table names by default (jeremyevans)
1290
-
1291
- * PreparedStatement#prepare now raises an Error (jeremyevans)
1292
-
1293
- * Clear delayed association pks when refreshing an object (jeremyevans)
1294
-
1295
- * Add empty_array_consider_nulls extension to make Sequel consider NULL values when using IN/NOT IN with an empty array (jeremyevans)
1296
-
1297
- * Make Sequel default to ignoring NULL values when using IN/NOT IN with an empty array (jeremyevans)
1298
-
1299
- * Remove the deprecated firebird and informix adapters (jeremyevans)
1300
-
1301
- * Make :collate option when creating columns literalize non-String values on PostgreSQL (jeremyevans) (#1040)
1302
-
1303
- * Make dirty plugin notice when serialized column is changed (celsworth) (#1039)
1304
-
1305
- * Allow prepared statements to use RETURNING (jeremyevans) (#1036)
1306
-
1307
- === 4.24.0 (2015-07-01)
21
+ * Raise Migrator::Error if attempting to migrate down to a version where there are necessary migration files missing (jeremyevans) (#1716)
1308
22
 
1309
- * Allow class_table_inheritance plugin to support subclasses that don't add additional columns (QuinnHarris, jeremyevans) (#1030)
23
+ === 5.36.0 (2020-09-01)
1310
24
 
1311
- * Add :columns option to update_refresh plugin, specifying the columns to include in the RETURNING clause (celsworth) (#1029)
25
+ * Handle passing keyword arguments through class methods defined via Plugins.def_dataset_method on Ruby 2.7+ (jeremyevans)
1312
26
 
1313
- * Use column symbol key for auto validation unique errors if the unique index is on a single column (jeremyevans)
27
+ * Handle passing keyword arguments through when loading plugins on Ruby 2.7+ (jeremyevans)
1314
28
 
1315
- * Allow :timeout option to Database#listen in the postgres adapter to be a callable object (celsworth) (#1028)
29
+ * Handle passing keyword arguments through migrations when defining custom Database methods that accept keywords on Ruby 2.7+ (jeremyevans)
1316
30
 
1317
- * Add pg_inet_ops extension, for DSL support for PostgreSQL inet/cidr operators and functions (celsworth, jeremyevans) (#1024)
31
+ * Handle passing keyword arguments through Dataset#query when using the query extension on Ruby 2.7+ (jeremyevans)
1318
32
 
1319
- * Support :*_opts options in auto_validations plugin, for setting options for the underlying validation methods (celsworth, jeremyevans) (#1026)
33
+ * Handle passing keyword arguments through the association proxy when using the association_proxies plugin on Ruby 2.7+ (jeremyevans)
1320
34
 
1321
- * Support :delay_pks association option in association_pks to delay setting of associated_pks until after saving (jeremyevans)
35
+ * Handle passing keyword arguments through the class method to a method defined in dataset_module on Ruby 2.7+ (adam12) (#1713)
1322
36
 
1323
- * Make jdbc subadapters work if they issue queries while the subadapter is being loaded (jeremyevans) (#1022)
37
+ * Stream result sets in the odbc adapter for better performance and lower memory usage (sparrovv) (#1711)
1324
38
 
1325
- * Handle 64-bit auto incrementing primary keys in jdbc subadapters (DougEverly) (#1018, #1019)
39
+ * Add Postgres::JSONBOp#set_lax and #path_*_tz methods to the pg_json_ops extension for new jsonb functions added in PostgreSQL 13 (jeremyevans)
1326
40
 
1327
- * Remove the deprecated db2 and dbi adapters (jeremyevans)
41
+ * Add Dataset#with_ties on PostgreSQL 13+ and Microsoft SQL Server to include rows with same order as final row (jeremyevans)
1328
42
 
1329
- * Make auto_validation plugin use :from=>:values option to setup validations on the underlying columns (jeremyevans)
43
+ * Add a :current_schema option to Database#view_exists? (only defined on Oracle) to look in the current schema instead of non-system schemas (jeremyevans) (#1710)
1330
44
 
1331
- * Add :from=>:values option to validation_helpers methods, for getting values from the values hash instead of a method call (jeremyevans)
45
+ * Recognize another disconnect error in the mysql and mysql2 adapters (jeremyevans) (#1706)
1332
46
 
1333
- === 4.23.0 (2015-06-01)
47
+ === 5.35.0 (2020-08-01)
1334
48
 
1335
- * Make dataset.call_sproc(:insert) work in the jdbc adapter (flash-gordon) (#1013)
49
+ * Recognize another disconnect error in the oracle adapter (sterlzbd) (#1705)
1336
50
 
1337
- * Add update_refresh plugin, for refreshing a model instance when updating (jeremyevans)
51
+ * Consider all associations with :dataset options as instance-specific associations (jeremyevans)
1338
52
 
1339
- * Add delay_add_association plugin, for delaying add_* method calls on new objects until after saving the object (jeremyevans)
53
+ * Make Model.finalize_associations not break with instance-specific associations (jeremyevans)
1340
54
 
1341
- * Add validate_associated plugin, for validating associated objects when validating the current object (jeremyevans)
55
+ * Make association placeholder loader consider block if instance_specific: false association option is used (jeremyevans)
1342
56
 
1343
- * Make Postgres::JSONBOp#[] and #get_text return JSONBOp instances (jeremyevans) (#1005)
57
+ * Copy composite unique constraints when emulating alter table operations on SQLite (jeremyevans) (#1704)
1344
58
 
1345
- * Remove the fdbsql, jdbc/fdbsql, and openbase adapters (jeremyevans)
59
+ * Add instance_specific_default plugin for setting default association :instance_specific value, or warning/raising for cases where it is not specified (jeremyevans)
1346
60
 
1347
- * Database#transaction now returns block return value if :rollback=>:always is used (jeremyevans)
61
+ * Make Model.plugin issue deprecation warning if loading plugin with arguments and block if plugin does not accept arguments/block (jeremyevans)
1348
62
 
1349
- * Allow postgresql:// connection strings as aliases to postgres://, for compatibility with libpq (jeremyevans) (#1004)
63
+ * Make validation_class_methods consider all :if, :allow_missing, :allow_nil, and :allow_blank settings, instead of just the first (jeremyevans)
1350
64
 
1351
- * Make Model#move_to in the list plugin handle out-of-range targets without raising an exception (jeremyevans) (#1003)
65
+ * Include hash entries with nil keys in Dataset#to_dot output in to_dot extension (jeremyevans)
1352
66
 
1353
- * Make Database#add_named_conversion_proc on PostgreSQL handle conversion procs for enum types (celsworth) (#1002)
67
+ * Remove unneeded conditionals from plugins and extensions (jeremyevans)
1354
68
 
1355
- === 4.22.0 (2015-05-01)
69
+ * Fix exception class in run_transaction_hooks extension if calling run_after_{commit,rollback}_hooks outside of a transaction (jeremyevans)
1356
70
 
1357
- * Deprecate the db2, dbi, fdbsql, firebird, jdbc/fdbsql, informix, and openbase adapters (jeremyevans)
71
+ === 5.34.0 (2020-07-01)
1358
72
 
1359
- * Avoid hash allocations and rehashes (jeremyevans)
73
+ * Make eager_graph work correctly if called with no associations (jeremyevans)
1360
74
 
1361
- * Don't silently ignore :jdbc_properties Database option in jdbc adapter (jeremyevans)
75
+ * Make :ruby eager limit strategy handle cases where there is no limit or offset (jeremyevans)
1362
76
 
1363
- * Make tree plugin set reciprocal association for children association correctly (lpil, jeremyevans) (#995)
77
+ * Do not keep a reference to a Sequel::Database instance that raises an exception during initialization (jeremyevans)
1364
78
 
1365
- * Add Sequel::MassAssignmentRestriction exception, raised for mass assignment errors in strict mode (jeremyevans) (#994)
79
+ * Make Database#pool.all_connections not yield for a single connection pool in disconnected state (jeremyevans)
1366
80
 
1367
- * Handle ODBC::SQL_BIT type as boolean in the odbc adapter, fixing boolean handling on odbc/mssql (jrgns) (#993)
81
+ * Raise an exception if trying to disconnect a server that doesn't exist in the sharded connection pools (jeremyevans)
1368
82
 
1369
- * Make :auto_validations plugin check :default entry instead of :ruby_default entry for checking existence of default value (jeremyevans) (#990)
83
+ * Support :refresh option when calling *_pks getter method in the association_pks plugin (jeremyevans)
1370
84
 
1371
- * Adapters should now set :default schema option to nil when adapter can determine that the value is nil (jeremyevans)
85
+ * Support caching of repeated calls to *_pks getter method in the association_pks plugin using :cache_pks association option (jeremyevans)
1372
86
 
1373
- * Do not add a schema :max_length entry for a varchar(max) column on MSSQL (jeremyevans)
87
+ * Add *_pks_dataset methods for one_to_many and many_to_many associations when using the association_pks plugin (jeremyevans)
1374
88
 
1375
- * Allow :default value for PostgreSQL array columns to be a ruby array when using the pg_array extension (jeremyevans) (#989)
89
+ === 5.33.0 (2020-06-01)
1376
90
 
1377
- * Add csv_serializer plugin for serializing model objects to and from csv (bjmllr, jeremyevans) (#988)
91
+ * Support custom join types on a per-association basis when using eager_graph/association_join (jeremyevans)
1378
92
 
1379
- * Make Dataset#to_hash and #to_hash_groups handle single array argument for model datasets (jeremyevans)
93
+ * Support primary_key with type: :smallserial on PostgreSQL (j-a-m-l) (#1698)
1380
94
 
1381
- * Handle Model#cancel_action in association before hooks (jeremyevans)
95
+ * Add Database#current_timestamp_utc accessor on SQLite to keep CURRENT_* in UTC instead of converting to localtime (jeremyevans)
1382
96
 
1383
- * Use a condition variable instead of busy waiting in the threaded connection pools on ruby 1.9+ (jeremyevans)
97
+ === 5.32.0 (2020-05-01)
1384
98
 
1385
- * Use Symbol#to_proc instead of explicit blocks (jeremyevans)
99
+ * Allow Database#create_table? work with :partition_of option on PostgreSQL (jeremyevans) (#1690)
1386
100
 
1387
- === 4.21.0 (2015-04-01)
101
+ * Add fiber_concurrency extension, for using Fiber.current instead of Thread.current for checking out connections (jeremyevans)
1388
102
 
1389
- * Support :tsquery and :tsvector options in Dataset#full_text_search on PostgreSQL, for using existing tsquery/tsvector expressions (jeremyevans)
103
+ * Move most Sequel singleton methods into a module that extends Sequel for easier overriding (jeremyevans)
1390
104
 
1391
- * Fix TinyTds::Error being raised when trying to cancel a query on a closed connection in the tinytds adapter (jeremyevans)
105
+ * Fix method visibility issues in model, plugin, extension, and adapter code (jeremyevans)
1392
106
 
1393
- * Add GenericExpression#!~ for inverting =~ on ruby 1.9 (similar to inverting a hash) (jeremyevans) (#979)
107
+ * Avoid defining conversion procs for PostgreSQL inet/cidr types in pg_inet extension when using sequel_pg 1.13.0+ (jeremyevans)
1394
108
 
1395
- * Add GenericExpression#=~ for equality, inclusion, and pattern matching (similar to using a hash) (jeremyevans) (#979)
109
+ * Add run_transaction_hooks Database extension, allowing for running the transaction hooks before commit/rollback, for use with transactional testing (jeremyevans)
1396
110
 
1397
- * Add Database#add_named_conversion_proc on PostgreSQL to make it easier to add conversion procs for types by name (jeremyevans)
111
+ * Recognize timestamp(N) with time zone type (isc) (#1684)
1398
112
 
1399
- * Make Sequel.pg_jsonb return JSONBOp instances instead of JSONOp instances when passed other than Array or Hash (jeremyevans) (#977)
113
+ === 5.31.0 (2020-04-01)
1400
114
 
1401
- * Demodulize default root name in json_serializer plugin (janko-m) (#968)
115
+ * Fix alter_table drop_constraint :primary_key option on SQLite for non-integer primary keys (jeremyevans)
1402
116
 
1403
- * Make Database#transaction work in after_commit/after_rollback blocks (jeremyevans)
117
+ * Add skip_saving_columns plugin, which supports columns to skip when saving, and skips generated columns by default (joeosburn, jeremyevans) (#1681, #1682)
1404
118
 
1405
- === 4.20.0 (2015-03-03)
119
+ * Add support for creating partitioned tables in PostgreSQL 10+ using :partition_by and :partition_of options (jeremyevans)
1406
120
 
1407
- * Restore the use of AUTOINCREMENT on SQLite (jeremyevans) (#965)
121
+ * Dump generated columns as generated columns when using the schema_dumper with :same_db option on PostgreSQL 12+ (jeremyevans) (#1680)
1408
122
 
1409
- * Duplicate the associations hash when duplicating a model object (jeremyevans)
123
+ * Ignore defaults for generated columns by default when using the schema dumper (jeremyevans) (#1680)
1410
124
 
1411
- * Correctly apply association limit when eager loading with an eager block using default limit strategy on some databases (jeremyevans)
125
+ * Include generated columns in schema on SQLite 3.31+ (jeremyevans)
1412
126
 
1413
- * Fix eager loading when using the :window_function limit strategy with an eager block and cascaded associations (jeremyevans)
127
+ * Add :generated schema entry on PostgreSQL 12+ and SQLite 3.31+ for whether the columns is generated (jeremyevans)
1414
128
 
1415
- * Add support for set_column_type :auto_increment=>true to add AUTO_INCREMENT to existing column on MySQL (jeremyevans) (#959)
129
+ * Add association_lazy_eager_option plugin for supporting :eager option for association method (jeremyevans)
1416
130
 
1417
- * Add support for overridding the :instance_specific association option (jeremyevans)
131
+ * Add forbid_lazy_load plugin for forbidding lazy loading of associations, to help find N+1 issues (jeremyevans)
1418
132
 
1419
- * Recognize MSSQL bit type as boolean in the schema_dumper (jeremyevans)
133
+ === 5.30.0 (2020-03-01)
1420
134
 
1421
- * Skip eager loading queries if there are no matching keys (jeremyevans) (#952)
135
+ * Remove specs and old release notes from the gem to reduce gem size by over 40% (jeremyevans)
1422
136
 
1423
- * Dataset#paged_each now returns an enumerator if not passed a block (jeremyevans)
137
+ * When using Database#transaction :retry_on, call :before_retry option if retrying even if :num_retries is nil (jcmfernandes) (#1678)
1424
138
 
1425
- * Use to_json :root option with string value as the JSON object key in the json_serializer plugin (jeremyevans)
139
+ * Support generated columns on SQLite 3.31+ using :generated_always_as and :generated_type options (jeremyevans)
1426
140
 
1427
- * Allow create_enum in the pg_enum extension be reversible in migrations (celsworth) (#951)
141
+ === 5.29.0 (2020-02-01)
1428
142
 
1429
- * Have swift adapter respect database and application timezone settings (asppsa, jeremyevans) (#946)
1430
-
1431
- * Don't have the static cache plugin attempt to validate objects (jeremyevans)
1432
-
1433
- * Make freeze not validate objects if their errors are already frozen (jeremyevans)
1434
-
1435
- * Only use prepared statements for associations if caching association metadata (jeremyevans)
1436
-
1437
- * Set parent association when loading descendants in the rcte_tree plugin (jeremyevans)
1438
-
1439
- * Add Database#transaction :before_retry option, specifying a proc to call before retrying (uhoh-itsmaciek) (#941)
1440
-
1441
- === 4.19.0 (2015-02-01)
1442
-
1443
- * Make jdbc/sqlanywhere correctly set :auto_increment entry in schema hashes (jeremyevans)
1444
-
1445
- * Add Model#cancel_action for canceling actions in before hooks, instead of having the hooks return false (jeremyevans)
1446
-
1447
- * Support not setting @@wait_timeout on MySQL via :timeout=>nil Database option (jeremyevans)
1448
-
1449
- * Add accessed_columns plugin, recording which columns have been accessed for a model instance (jeremyevans)
1450
-
1451
- * Use correct migration version when using IntegerMigrator with :allow_missing_migration_files (blerins) (#938)
1452
-
1453
- * Make Dataset#union, #intersect, and #except automatically handle datasets with raw SQL (jeremyevans) (#934)
1454
-
1455
- * Add column_conflicts plugin to automatically handle columns that conflict with method names (jeremyevans) (#929)
1456
-
1457
- * Add Model#get_column_value and #set_column_value to get/set column values (jeremyevans) (#929)
1458
-
1459
- === 4.18.0 (2015-01-02)
1460
-
1461
- * Make Dataset#empty? work when the dataset is ordered by a non-column expression (pete) (#923)
1462
-
1463
- * Fix passing a hash value to :eager association option (jeremyevans)
1464
-
1465
- * Treat all PG::ConnectionBad exceptions as disconnect errors in the postgres adapter (jeremyevans)
1466
-
1467
- * Add :auto_increment key to schema information for primary key columns (jeremyevans) (#919)
1468
-
1469
- * Fix handling of schema qualified tables in many_through_many associations (jeremyevans)
1470
-
1471
- === 4.17.0 (2014-12-01)
1472
-
1473
- * Fix handling of Sequel::SQL::Blob instances in bound variables in the postgres adapter (jeremyevans) (#917)
1474
-
1475
- * Add :preconnect Database option for immediately creating the maximum number of connections (jeremyevans)
1476
-
1477
- * Support DB.pool.max_size for the single connection pools (jeremyevans)
1478
-
1479
- * Work around regression in jdbc-sqlite3 3.8.7 where empty blobs are returned as nil (jeremyevans)
1480
-
1481
- * Work around regression in jdbc-sqlite3 3.8.7 when using JDBC getDate method for date parsing (jeremyevans)
1482
-
1483
- * Make Model#update_or_create return object if existing object exists but updates are not necessary (contentfree) (#916)
1484
-
1485
- * Add Dataset#server? for conditionally setting a default server to use if no default is present (jeremyevans)
1486
-
1487
- * Add Database#sharded? for determining if database uses sharding (jeremyevans)
1488
-
1489
- * Fix server used by Dataset#insert_select on PostgreSQL (jeremyevans)
1490
-
1491
- * Fix server used for deleting model instances when using sharding (jeremyevans)
1492
-
1493
- === 4.16.0 (2014-11-01)
1494
-
1495
- * Make Database#create_table? and #create_join_table? not use IF NOT EXISTS if indexes are being added (jeremyevans) (#904)
1496
-
1497
- * Dataset#distinct now accepts virtual row blocks (chanks) (#901)
1498
-
1499
- * Recognize disconnect errors in the postgres adapter when SSL is used (jeremyevans) (#900)
1500
-
1501
- * Stop converting '' default values to nil default values on MySQL (jeremyevans)
1502
-
1503
- * Add Model#qualified_pk_hash, for returning a hash with qualified pk keys (jeremyevans)
1504
-
1505
- * Make validates_unique use a qualified primary key if the dataset is joined (jeremyevans) (#895)
1506
-
1507
- * Make Sequel::Model.cache_associations = false skip the database's schema cache when loading the schema (jeremyevans)
1508
-
1509
- * Make Database#foreign_key_list work on Microsoft SQL Server 2005 (jeremyevans)
1510
-
1511
- * Make create_table with :foreign option reversible on PostgreSQL (jeremyevans)
1512
-
1513
- * Make drop_table with :foreign option on PostgreSQL drop a foreign table (johnnyt) (#892)
1514
-
1515
- === 4.15.0 (2014-10-01)
1516
-
1517
- * Make AssociationReflection#reciprocal not raise error if associated class contains association with invalid associated class (jeremyevans)
1518
-
1519
- * Make create_view(:view_name, dataset, :materialized=>true) reversible on PostgreSQL (jeremyevans)
1520
-
1521
- * Add support for creating foreign tables on PostgreSQL using :foreign and :options create_table options (jeremyevans)
1522
-
1523
- * Raise Error if a primary key is necessary to use an association, but the model doesn't have a primary key (jeremyevans)
1524
-
1525
- * Make tactical_eager_loading plugin work for limited associations (jeremyevans)
1526
-
1527
- * Add PlaceholderLiteralizer#with_dataset, for returning a new literalizer using a modified dataset (jeremyevans)
1528
-
1529
- * Support active_model 4.2.0beta1 in the active_model plugin (jeremyevans)
143
+ * Recognize another disconnect error in the tinytds adapter (jeremyevans)
1530
144
 
1531
- * Make Dataset#insert in the informix adapter return last inserted id (jihwans) (#887)
145
+ * Fix verbose warning in postgres adapter when using prepared statements and recent versions of ruby-pg (jeremyevans)
1532
146
 
1533
- * Support :nolog option in the informix adapter to disable transactions (jihwans) (#887)
147
+ * Work correctly on Ruby 2.8+ by supporting second argument for initialize_clone (jeremyevans)
1534
148
 
1535
- * Remove optional argument for Postgres::{JSON,JSONB}Op#to_record and #to_recordset (jeremyevans)
149
+ * Add empty_failure_backtraces plugin for empty backtraces for ValidationFailed and HookFailed exceptions, much faster on JRuby (jeremyevans)
1536
150
 
1537
- * Add support for FoundationDB SQL Layer, via fdbsql and jdbc/fdbsql adapters (ScottDugas, jeremyevans) (#884)
151
+ * Add Dataset#json_serializer_opts to json_serializer plugin, allowing to set json_serializer options on a per-dataset basis (jeremyevans)
1538
152
 
1539
- * Work around bug in old versions of MySQL when schema dumping a table with multiple timestamp columns (jeremyevans) (#882)
153
+ === 5.28.0 (2020-01-01)
1540
154
 
1541
- * Support more array types by default in the pg_array extension, such as xml[] and uuid[] (jeremyevans)
155
+ * Warn when calling Sequel::JDBC::Postgres::Dataset#with_fetch_size (jeremyevans) (#1665)
1542
156
 
1543
- * Add Sequel::Model.cache_associations accessor, which can be set to false to not cache association metadata (jeremyevans)
157
+ * Add exclude_or_null extension, for filtering datasets where the condition is false or NULL (jeremyevans)
1544
158
 
1545
- * Add split_values plugin, for moving noncolumn entries from the values hash into a separate hash (jeremyevans) (#868)
159
+ * Add any_not_empty extension, for making Dataset#any? without a block mean !empty? (jeremyevans)
1546
160
 
1547
- === 4.14.0 (2014-09-01)
161
+ === 5.27.0 (2019-12-01)
1548
162
 
1549
- * Raise original exception if there is an exception raised when rolling back transaction/savepoint (jeremyevans) (#875)
163
+ * Add Sequel::DEFAULT for a DEFAULT expression, useful for assigning to default values (jeremyevans)
1550
164
 
1551
- * Allow delayed evaluation blocks to take dataset as an argument (jeremyevans)
165
+ * Make Postgres::ArrayOp#join in pg_array_ops extension work correctly on PostgreSQL <9.1 (jeremyevans)
1552
166
 
1553
- * Allow more types as filter expressions, only specifically disallow Numeric/String expressions (jeremyevans)
167
+ * Make pg_enum extension work correctly on PostgreSQL 8.3-9.0 (jeremyevans)
1554
168
 
1555
- * Remove objects from cached association array at time of nested_attributes call instead of waiting until save (jeremyevans)
169
+ * Emulate FILTER clause for aggregate functions using CASE on databases not supporting it directly (jeremyevans)
1556
170
 
1557
- * Handle composite primary keys when working around validation issues for one_to_(one|many) associations in nested_attributes plugin (jeremyevans) (#870)
171
+ * Support ordering by NULLS FIRST/NULLS LAST without emulation on SQLite 3.30+ (jeremyevans)
1558
172
 
1559
- * Recognize additional disconnect error in jdbc/jtds adapter (jeremyevans)
173
+ === 5.26.0 (2019-11-01)
1560
174
 
1561
- * Have association_join work with existing model selections (jeremyevans)
175
+ * Recognize two additional foreign key constraint violation codes on MySQL 8.0.13+ (rianmcguire) (#1657)
1562
176
 
1563
- * Fix regression in class_table_inheritance plugin when lazily loading column in middle table (jeremyevans) (#862)
177
+ * Support table aliases for single-table INSERT statements on PostgreSQL 9.5+ (jeremyevans) (#1656)
1564
178
 
1565
- * Add cache_key_prefix method to caching plugin, which can be overridden for custom handling (pete) (#861)
179
+ * Implement Sequel::Postgres::PGRange#hash so instances work correctly in hashes (jeremyevans) (#1648)
1566
180
 
1567
- * Add :when option to PostgreSQL create_trigger method, for adding a filter to the trigger (aschrab) (#860)
181
+ * Make dirty plugin work correctly with typecast_on_load plugin (jeremyevans) (#1647)
1568
182
 
1569
- * Recognize an additional serialization failure on PostgreSQL (tmtm) (#857)
183
+ * Add support for :require_modification option when setting up nested_attributes (jeremyevans)
1570
184
 
1571
- === 4.13.0 (2014-08-01)
185
+ * Add support for SQL/JSON path expressions to the pg_json_ops extension, supported by PostgreSQL 12+ (jeremyevans)
1572
186
 
1573
- * Use copy constructors instead of overriding Model#dup and #clone (ged, jeremyevans) (#852)
187
+ === 5.25.0 (2019-10-01)
1574
188
 
1575
- * Fix handling of MySQL create_table foreign_key calls using :key option (mimperatore, jeremyevans) (#850)
189
+ * Fix Sequel::SQL::NumericMethods#coerce to not raise NoMethodError if super method is not defined (jeremyevans) (#1645)
1576
190
 
1577
- * Handle another disconnection error in the postgres adapter (lbosque) (#848)
191
+ * Allow setting a default for a column that already has a default on Microsoft SQL Server (jeremyevans)
1578
192
 
1579
- * Make list plugin update remaining positions after destroying an instance (ehq, jeremyevans) (#847)
193
+ * Fix keyword argument separation warnings on Ruby master branch in csv_serializer plugin (jeremyevans)
1580
194
 
1581
- * Unalias aliased tables in Dataset#insert (jeremyevans)
195
+ * Add association_multi_add_remove plugin for adding/removing multiple associated objects in a single method call (AlexWayfer, jeremyevans) (#1641, #1643)
1582
196
 
1583
- * Add insert_returning_select plugin, for setting up RETURNING for inserts for models selecting explicit columns (jeremyevans)
197
+ * Make sharding plugin integrate with server_block extension (jeremyevans)
1584
198
 
1585
- * Make Model#save use insert_select if the dataset used for inserting already uses returning (jeremyevans)
199
+ === 5.24.0 (2019-09-01)
1586
200
 
1587
- * Add Dataset#unqualified_column_for helper method, returning unqualified version of possibly qualified column (jeremyevans)
201
+ * Add Database#skip_logging? private method designed for extensions to force query timing even if no logger is present (adam12) (#1640)
1588
202
 
1589
- * Calling Dataset#returning when the Database does not support or emulate RETURNING now raises an Error (jeremyevans)
203
+ * Allow a hostname specified in a defaults_file in the mysql2 adapter, by not explicitly setting :host (sapio-bdeamer) (#1638)
1590
204
 
1591
- * Emulate RETURNING on Microsoft SQL Server using OUTPUT, as long as only simple column references are used (jeremyevans)
205
+ * Convert all database array types to Ruby arrays in the jdbc adapter (jeremyevans)
1592
206
 
1593
- * Switch class_table_inheritance plugin to use JOIN ON instead of JOIN USING (jeremyevans)
207
+ * Add static_cache_cache plugin for caching rows for static_cache models to a file to avoid database queries during model initialization (jeremyevans)
1594
208
 
1595
- * Qualify primary keys for models with joined datasets when looking up model instances by primary key (jeremyevans)
209
+ * Add :cache_file plugin option to pg_auto_constraint_validations plugin, for caching metadata to a file for faster initialization (jeremyevans)
1596
210
 
1597
- * Fix qualification of columns when Dataset#graph automatically wraps the initially graphed dataset in a subselect (jeremyevans)
211
+ * Support :unique_deferrable and :primary_key_deferrable column options (jeremyevans)
1598
212
 
1599
- * Make Dataset#joined_dataset? a public method (jeremyevans)
213
+ * Support :generated_always_as column option on PostgreSQL 12+ (jeremyevans)
1600
214
 
1601
- * Allow external jdbc, odbc, and do subadapters to be loaded automatically (jeremyevans)
215
+ === 5.23.0 (2019-08-01)
1602
216
 
1603
- * Recognize another disconnect error in the jdbc/mysql adapter (jeremyevans)
217
+ * Work around a bug on jdbc-sqlite3 3.27.2.1 when parsing schema for tables with columns with default values (jeremyevans)
1604
218
 
1605
- * Set primary keys correctly for models even if datasets select specific columns (jeremyevans)
219
+ * Work around a bug in jdbc-sqlite3 3.27.2.1 when in Database#foreign_key_list in the jdbc/sqlite3 adapter (jeremyevans)
1606
220
 
1607
- * Add dataset_source_alias extension, for automatically aliasing datasets to their first source (jeremyevans)
221
+ * Make Dataset#execute* private methods respect explicit servers option, fixing Dataset#paged_each in the postgres adapter when sharding (jeremyevans) (#1632)
1608
222
 
1609
- * Use qualified columns in the lazy_attributes plugin (jeremyevans)
223
+ * Handle instances of subclasses of core classes when wrapping objects in the pg_json extension (jeremyevans) (#1631)
1610
224
 
1611
- * Add column_select plugin, for using explicit column selections in model datasets (jeremyevans)
225
+ * Support :ansi Database option in the tinytds adapter (kenaniah) (#1629)
1612
226
 
1613
- * Use associated model's existing selection for join associations if it consists solely of explicitly quailfied columns (jeremyevans)
227
+ * Support cross-database and linked servers when parsing schema on Microsoft SQL Server (kenaniah) (#1629)
1614
228
 
1615
- * Add round_timestamps extension for automatically rounding timestamp values to database precision before literalizing (jeremyevans)
229
+ * Add insert_conflict plugin for automatically handling unique constraint conflicts when saving new model instances on PostgreSQL 9.5+ and SQLite 3.24.0+ (jeremyevans)
1616
230
 
1617
- * Make rake default task run plugin specs as well as core/model specs (jeremyevans)
231
+ * Avoid errors when parsing schema in the mock sqlite adapter (jeremyevans)
1618
232
 
1619
- * Use all_tables and all_views for Database#tables and #views on Oracle (jeremyevans)
233
+ * Avoid possible thread-safety issue in the timezones support (jeremyevans)
1620
234
 
1621
- * Use all_tab_cols instead of user_tab cols for defaults parsing in the oracle adapter (jeremyevans)
235
+ * Handle offsets when typecasting an array or hash to datetime when Sequel.datetime_class = Time (jeremyevans)
1622
236
 
1623
- * Fix recursive mutex locking issue on JRuby when using Sequel::Model(dataset) (jeremyevans) (#841)
237
+ * Support Sequel.datetime_class = Time when using the named_timezones extension (jeremyevans)
1624
238
 
1625
- * Make composition and serialization plugins support validations on underlying columns (jeremyevans)
239
+ === 5.22.0 (2019-07-01)
1626
240
 
1627
- * Fix regression in timestamps and table inheritance plugin where column values would not be saved if validation is skipped (jeremyevans) (#839)
241
+ * Fix Dataset#multi_insert and #import with return: :primary_key on MSSQL when the dataset has a row_proc (jeremyevans) (#1627)
1628
242
 
1629
- * Add pg_enum extension, for dealing with PostgreSQL enums (jeremyevans)
243
+ * Support Dataset#with :materialized option on PostgreSQL 12 for [NOT] MATERIALIZED (jeremyevans)
1630
244
 
1631
- * Add modification_detection plugin, for automatic detection of in-place column value modifications (jeremyevans)
245
+ * Make Database#primary_key_sequence work on tables without serial sequences on PostgreSQL 12 (jeremyevans)
1632
246
 
1633
- * Speed up using plain strings, numbers, true, false, and nil in json columns if underlying json library supports them (jeremyevans) (#834)
247
+ * Support ruby 2.7+ startless ranges in the pg_range extension (jeremyevans)
1634
248
 
1635
- === 4.12.0 (2014-07-01)
249
+ * Support ruby 2.7+ startless, endless ranges in filters, using an always true condition for them (jeremyevans)
1636
250
 
1637
- * Support :readonly Database option in sqlite adapter (ippeiukai, jeremyevans) (#832)
251
+ * Support ruby 2.7+ startless ranges in filters, using just a <= or < operator for them (jeremyevans)
1638
252
 
1639
- * Automatically setup max_length validations for string columns in the auto_validations plugin (jeremyevans)
253
+ === 5.21.0 (2019-06-01)
1640
254
 
1641
- * Add :max_length entry to column schema hashes for string types (jeremyevans)
255
+ * Recognize additional DatabaseLockTimeout errors in mysql and mysql2 adapters (jeremyevans)
1642
256
 
1643
- * Add :before_thread_exit option to Database#listen_for_static_cache_updates in pg_static_cache_updater extension (jeremyevans)
257
+ * Disallow eager_graph of ancestors and descendants associations when using the rcte_tree plugin (jeremyevans)
1644
258
 
1645
- * Add Database#values on PostgreSQL to create a dataset that uses VALUES instead of SELECT (jeremyevans)
259
+ * Make jdbc/mysql adapter work when using JRuby with Java 11 (jeremyevans)
1646
260
 
1647
- * Add Model#set_nested_attributes to nested_attributes, allowing setting nested attributes options per-call (jeremyevans)
261
+ * Support window function options :window, :exclude, and :frame :type=>:groups, :start, and :end on SQLite 3.28.0+ (jeremyevans)
1648
262
 
1649
- * Use explicit columns when using automatically prepared SELECT statements in the prepared statement plugins (jeremyevans)
263
+ * Make the server_block extension respect the :servers_hash Database option (jeremyevans)
1650
264
 
1651
- * Make Dataset#insert_select on PostgreSQL respect existing RETURNING clause (jeremyevans)
265
+ * Typecast string input for json/jsonb types as JSON strings instead of parsing as JSON in the pg_json extension when Database#typecast_json_strings is set to true (jeremyevans)
1652
266
 
1653
- * Fix eager loading limited associations via a UNION when an association block is used (jeremyevans)
267
+ * Wrap JSON primitives (string, number, true, false, nil) in the pg_json extension when Database#wrap_json_primitives is set to true (jeremyevans)
1654
268
 
1655
- * Associate reciprocal object before saving associated object when creating new objects in nested_attributes (chanks, jeremyevans) (#831)
269
+ * Convert the Database :timeout option to an integer in the sqlite adapter (jeremyevans) (#1620)
1656
270
 
1657
- * Handle intervals containing more than 100 hours in the pg_interval extension's parser (will) (#827)
271
+ * Improve performance in ado adapter using more efficient inner loop (jeremyevans)
1658
272
 
1659
- * Remove methods/class deprecated in 4.11.0 (jeremyevans)
273
+ * Improve performance in ado adapter using faster callables for type conversion (jeremyevans)
1660
274
 
1661
- * Allow Dataset#natural_join/cross_join and related methods to take a options hash passed to join_table (jeremyevans)
275
+ * Fix handling of decimal values in the ado adapter when using locales where the decimal separator is , and not . (jeremyevans) (#1619)
1662
276
 
1663
- * Add :reset_implicit_qualifier option to Dataset#join_table, to set false to not reset the implicit qualifier (jeremyevans)
277
+ === 5.20.0 (2019-05-01)
1664
278
 
1665
- * Support :notice_receiver Database option when postgres adapter is used with pg driver (jeltz, jeremyevans) (#825)
279
+ * Fix reversing of alter_table add_foreign_key when :type option is used (jeremyevans) (#1615)
1666
280
 
1667
- === 4.11.0 (2014-06-03)
281
+ * Switch from using instance_exec to define_method for model associations and in some plugins (jeremyevans)
1668
282
 
1669
- * Add :model_map option to class_table_inheritance plugin so class names don't need to be stored in the database (jeremyevans)
283
+ * Fix Database#server_version when using mysql2 adapter with mysql driver on MariaDB 10+ database (v-kolesnikov) (#1614)
1670
284
 
1671
- * Set version when using for MySQL/SQLite emulation in the mock adapter (jeremyevans)
285
+ * Make one_to_one setter method handle models that use joined datasets (jeremyevans) (#1612)
1672
286
 
1673
- * Add support for CUBRID/SQLAnywhere emulation to the mock adapter (jeremyevans)
287
+ * Make auto_validations plugin work with the class_table_inheritance plugin (jeremyevans) (#1611)
1674
288
 
1675
- * Add support for the jsonb operators added in PostgreSQL 9.4 to the pg_json_ops extension (jeremyevans)
289
+ * Avoid use of instance_exec for PlaceholderLiteralString#with_dataset (jeremyevans)
1676
290
 
1677
- * Add support for new json/jsonb functions added in PostgreSQL 9.4 to the pg_json_ops extension (jeremyevans)
291
+ * Recognize float unsigned database types as float (keeguon, jeremyevans) (#1609)
1678
292
 
1679
- * Add support for the PostgreSQL 9.4+ jsonb type to the pg_json_ops extension (jeremyevans)
293
+ * Support :savepoint options to Database#{after_commit,after_rollback} for making the hooks handle savepoints (jeremyevans)
1680
294
 
1681
- * Add support for derived column lists to Sequel.as and SQL::AliasMethods#as (jeremyevans)
295
+ * Avoid use of instance_exec in association_dependencies plugin (jeremyevans)
1682
296
 
1683
- * Support connecting to a DB2 catalog name in the ibmdb adapter (calh) (#821)
297
+ * Add pg_auto_constraint_validation_override to the pg_auto_constraint_validations plugin, for customizing columns and error message per constraint (jeremyevans)
1684
298
 
1685
- * Fix warnings in some cases in the ibmdb adapter (calh) (#820)
299
+ * Make Database#check_constraints on PostgreSQL also include constraints where the related columns are not known (jeremyevans)
1686
300
 
1687
- * Add SQL::Function#with_ordinality for creating set returning functions WITH ORDINALITY (jeremyevans)
301
+ === 5.19.0 (2019-04-02)
1688
302
 
1689
- * Add SQL::Function#filter for creating filtered aggregate function calls (jeremyevans)
303
+ * Use more optimized approach to merging hashes in ruby 2.5+ (jeremyevans)
1690
304
 
1691
- * Add SQL::Function#within_group for creating ordered-set and hypothetical-set aggregate functions (jeremyevans)
305
+ * Use SQLite extended result codes when using ruby-sqlite3 1.4.0+ (jeremyevans)
1692
306
 
1693
- * Add SQL::Function#lateral, for creating set returning functions that will be preceded by LATERAL (jeremyevans)
307
+ * Recognize additional SQLite extended result codes in the shared sqlite adapter (jeremyevans)
1694
308
 
1695
- * Add SQL::Function#quoted and #unquoted methods, to enable/disable quoting of function names (jeremyevans)
309
+ * Add Database#rename_enum_value to the pg_enum extension (AlexWayfer) (#1603)
1696
310
 
1697
- * Deprecate Dataset#{window,emulated,}_function_sql_append (jeremyevans)
311
+ * Make Database#drop_table delete constraint validations metadata for that table if using the constraint_validations extension (jeremyevans)
1698
312
 
1699
- * Deprecate SQL::WindowFunction and SQL::EmulatedFunction classes, switch to using options on SQL::Function (jeremyevans)
313
+ * Speed up row fetching in the sqlite adapter (jeremyevans)
1700
314
 
1701
- * Only modify changed_columns if deserialized value changes in the serialization plugin (jeremyevans) (#818)
315
+ * Speed up row fetching and type conversion in the sqlanywhere adapter (jeremyevans)
1702
316
 
1703
- * Support PostgreSQL 9.4+ jsonb type in the pg_json extension (jeremyevans)
317
+ === 5.18.0 (2019-03-01)
1704
318
 
1705
- * Allow Postgres::ArrayOp#unnest to accept arguments in the pg_array_ops extension (jeremyevans)
319
+ * Use singleton .call methods on plain objects instead of procs/methods for faster type conversion (jeremyevans)
1706
320
 
1707
- * Add Postgres::ArrayOp#cardinality to the pg_array_ops extension (jeremyevans)
321
+ * Add Sequel::SQL::Blob.call to avoid indirection when converting values from the database (jeremyevans)
1708
322
 
1709
- * Add :check option to Database#create_view for WITH [LOCAL] CHECK OPTION support (jeremyevans)
323
+ * Use while instead of each for inner loops in sqlite and jdbc adapters for better performance (jeremyevans)
1710
324
 
1711
- * Add :concurrently option to Database#refresh_view on PostgreSQL to support concurrent refresh of materialized views (jeremyevans)
325
+ * Make after_initialize plugin not make the argument to Model.call optional (jeremyevans)
1712
326
 
1713
- * Call the :after_connect Database option proc with both the connection and server/shard if it accepts 2 arguments (pedro, jeremyevans) (#813)
327
+ * Allow Dataset#paged_each to be called without a block in the postgres and mysql2 adapters (jeremyevans)
1714
328
 
1715
- * Make multiple plugins set values before validation instead of before create, works better with auto_validations (jeremyevans)
329
+ * Remove flow-control exceptions in connection_expiration and connection_validator extensions (jeremyevans)
1716
330
 
1717
- * Support a default Dataset#import slice size, set to 500 on SQLite (jeremyevans) (#810)
331
+ * Add throw_failures plugin for throwing ValidationFailed and HookFailed exceptions instead of raising them, up to 10x performance increase on JRuby (jeremyevans)
1718
332
 
1719
- * Make :read_only transaction option be per-savepoint on PostgreSQL (jeremyevans) (#807)
333
+ * Support tzinfo 2 in addition to tzinfo 1 in the named_timezones extension (jeremyevans) (#1596)
1720
334
 
1721
- * Add :rank option to Dataset#full_text_search on PostgreSQL, to order by the ranking (jeremyevans) (#809)
335
+ === 5.17.0 (2019-02-01)
1722
336
 
1723
- * Remove methods deprecated in 4.10.0 (jeremyevans)
337
+ * Support skip_auto_validations instance method in auto_validations plugin (oldgreen, jeremyevans) (#1592)
1724
338
 
1725
- === 4.10.0 (2014-05-01)
339
+ * Support :preconnect_extensions Database option for loading extensions before :preconnect option (jeremyevans)
1726
340
 
1727
- * Make Model.include API same as Module.include (ged) (#803)
341
+ * Avoid usage of Proc.new with implicit block as ruby 2.7+ deprecates this behavior (jeremyevans)
1728
342
 
1729
- * Dataset::PlaceholderLiteralizer now handles DelayedEvaluations correctly (jeremyevans)
343
+ * Allow Sequel[].as to be used for constructing aliases with eager_graph (e.g. Model.eager_graph(Sequel[:a].as(:b))) (jeremyevans) (#1588)
1730
344
 
1731
- * Refactor type conversion in the jdbc adapter, for up to a 20% speedup (jeremyevans)
345
+ === 5.16.0 (2019-01-02)
1732
346
 
1733
- * Add Dataset#with_fetch_size to jdbc adapter, for setting fetch size for JDBC ResultSets (jeremyevans)
347
+ * Convert integer columns to bigint columns when copying SQLite databases to other databases using bin/sequel -C (jeremyevans) (#1584)
1734
348
 
1735
- * Default to a fetch_size of 100 in the jdbc/oracle adapter, similar to the oci8-based oracle adapter (jeremyevans)
349
+ * Use nicer error messages for missing or empty migration directories (Lavode) (#1585)
1736
350
 
1737
- * Add Database#fetch_size accessor and :fetch_size option to jdbc adapter, for setting JDBC Statement fetch size (jeremyevans)
351
+ * Make alter table emulation work correctly in SQLite 3.26.0+ (jeremyevans) (#1582)
1738
352
 
1739
- * Automatically determine array type in pg_array_associations plugin, explicitly cast arrays in more places (jeremyevans, maccman) (#800)
353
+ * Do not unset new one_to_one associated objects' reciprocal associations before saving associated objects in the nested_attributes plugin (jeremyevans)
1740
354
 
1741
- * Speed up Dataset#literal for symbols 60% by caching results, speeding up dataset literalization up to 40% or more (jeremyevans)
355
+ * Do not validate new one_to_one associated objects twice when saving in the nested_attributes plugin (jeremyevans)
1742
356
 
1743
- * Speed up Sequel.split_symbol 10-20x by caching results, speeding up dataset literalization up to 80% or more (jeremyevans)
357
+ * Fix :qualify_tables option to class_table_inheritance plugin to work correctly with subclasses of subclasses (benalavi) (#1581)
1744
358
 
1745
- * Speed up dataset literalization for simple datasets by up to 100% (jeremyevans)
359
+ * Make class_table_inheritance plugin use the schema cache instead of sending a query to get columns for tables (kenaniah) (#1580)
1746
360
 
1747
- * Support :fractional_seconds Database option on MySQL 5.6.5+ to support fractional seconds by default (jeremyevans) (#797)
361
+ * Remove loading of mysqlplus in the mysql adapter (jeremyevans)
1748
362
 
1749
- * Work around MySQL 5.6+ bug when combining DROP FOREIGN KEY and DROP INDEX in same ALTER TABLE statement (jeremyevans)
363
+ * Make mysql adapter work correctly on ruby 2.6+ (jeremyevans)
1750
364
 
1751
- * Make auto_validations plugin handle models that select from subqueries (jeremyevans)
365
+ * Add Database#rollback_on_exit to rollback transactions instead of committing them when exiting the transaction block (jeremyevans)
1752
366
 
1753
- * Recognize additional disconnect errors in the postgres adapter (jeremyevans)
367
+ * Enable window functions in SQLite 3.26.0+ (jeremyevans)
1754
368
 
1755
- * Make import/multi_insert insert multiple rows in a single query using a UNION on Oracle, DB2, and Firebird (jeremyevans)
369
+ * Do not override existing methods when creating Sequel::Model attribute getter/setter methods (jeremyevans) (#1578)
1756
370
 
1757
- * Speed up association_pks many_to_many setter method by using Dataset#import (jeremyevans)
371
+ * Use parentheses for expressions being subscripted (e.g. (array_agg(column))[1]) (jeremyevans)
1758
372
 
1759
- * Add Model.prepared_finder, similar to .finder but using a prepared statement (jeremyevans)
373
+ === 5.15.0 (2018-12-01)
1760
374
 
1761
- * Model.def_{add_method,association_dataset_methods,remove_methods} are now deprecated (jeremyevans)
375
+ * Add :conn_str option in the postgres adapter for PostgreSQL connection strings, if the pg driver is used (graywolf) (#1572)
1762
376
 
1763
- * Model.eager_loading_dataset and Model.apply_association_dataset_opts are now deprecated (jeremyevans)
377
+ * Add :qualify_tables option to class_table_inheritance plugin to automatically qualify subclass tables with superclass qualifier (benalavi) (#1571)
1764
378
 
1765
- * Make prepared_statement_associations plugin handle one_through_one and one_through_many associations (jeremyevans)
379
+ * Access already allocated connections in a thread safe manner when checking out connections in the sharded threaded connection pool (jeremyevans)
1766
380
 
1767
- * Use placeholder literalizer for regular association loading for up to 85% speedup (jeremyevans)
381
+ * Automatically support datasets using qualified tables in the class_table_inheritance plugin without having to use the :alias option (benalavi) (#1565)
1768
382
 
1769
- * Use placeholder literalizer for eager association loading for up to 20% speedup (jeremyevans)
383
+ * Support rename_column without emulation on SQLite 3.25+ (jeremyevans)
1770
384
 
1771
- * Make Model#marshallable! work correctly when using the tactical_eager_loading plugin (jeremyevans)
385
+ * Do not remove currently cached many_to_one associated objects when changing the related foreign key value from nil to non-nil (jeremyevans)
1772
386
 
1773
- * Respect :foreign_key_constraint_name option when adding columns to existing table on MySQL (noah256) (#795)
387
+ * Do not validate new *_to_many associated objects twice when saving in the nested_attributes plugin (jeremyevans)
1774
388
 
1775
- * AssociationReflection#association_dataset now handles joining tables if necessary (jeremyevans)
389
+ * Add Model#skip_validation_on_next_save! for skipping validation on next save call (jeremyevans)
1776
390
 
1777
- * Support drop_view :if_exists option on SQLite, MySQL, H2, and HSQLDB (jeremyevans) (#793)
391
+ === 5.14.0 (2018-11-01)
1778
392
 
1779
- * Support drop_table :if_exists option on HSQLDB (jeremyevans)
393
+ * Drop defaulting the :port option to 5432 in the postgres adapter, so that setting the :service option in :driver_options works (jeremyevans) (#1558)
1780
394
 
1781
- * Add Database#transaction :auto_savepoint option, for automatically using a savepoint in nested transactions (jeremyevans)
395
+ * Do not cache values for columns without parseable defaults when using :cache option in defaults_setter plugin (jeremyevans)
1782
396
 
1783
- * Add :server_version Database option on Microsoft SQL Server, instead of querying the database for it (jeremyevans)
397
+ * Emulate NULLS FIRST/LAST ordering on databases that do not natively support it (jeremyevans)
1784
398
 
1785
- * Support :correlated_subquery as an eager_graph and filter by associations limit strategy for one_to_* associations (jeremyevans)
399
+ * Do not modify boolean expressions created from string or array if string or array is modified (jeremyevans)
1786
400
 
1787
- * Support named paramters in call_mssql_sproc on Microsoft SQL Server (y.zemlyanukhin, jeremyevans) (#792)
401
+ * Make roots and roots_dataset dataset methods instead of class methods in the tree plugin (JelF) (#1554)
1788
402
 
1789
- * Handle placeholder literalizer arguments when emulating offsets (jeremyevans)
403
+ * Do not cache dataset SQL if dataset uses subquery that cannot cache SQL (jeremyevans)
1790
404
 
1791
- * Don't attempt to emulate offsets if the dataset uses literal SQL (jeremyevans)
405
+ * Make Model#=== work correctly for models with composite primary keys (jeremyevans)
1792
406
 
1793
- * Use a UNION-based strategy by default to eagerly load limited associations (jeremyevans)
407
+ * Add Model#pk_equal? as a more descriptive name for Model#=== (AlexWayfer) (#1550)
1794
408
 
1795
- * Support offsets without limits on MySQL, SQLite, H2, SQLAnywhere and CUBRID (jeremyevans)
409
+ * Do not push down expression inversion in cases where it may result in incorrect behavior (e.g. ANY/SOME/ALL operators) (jeremyevans) (#1549)
1796
410
 
1797
- * Remove the install/uninstall rake tasks (jeremyevans)
411
+ === 5.13.0 (2018-10-01)
1798
412
 
1799
- * Use INSERT VALUES with multiple rows for Dataset#import and #multi_insert on more databases (jeremyevans)
413
+ * Support :single_value type in prepared statements (rintaun) (#1547)
1800
414
 
1801
- * Support common table expressions (WITH clause) on SQLite >=3.8.3 (jeremyevans)
415
+ * Make Model.all in static_cache plugin accept a block (AlexWayfer, jeremyevans) (#1543)
1802
416
 
1803
- === 4.9.0 (2014-04-01)
417
+ * Add constant_sql_override extension for overriding SQL used for constants such as CURRENT_TIMESTAMP (celsworth) (#1538)
1804
418
 
1805
- * Recognize CHECK constraint violations on newer versions of SQLite (jeremyevans)
419
+ * Do not cache from_self datasets if options are given (jeremyevans)
1806
420
 
1807
- * Do not attempt to eager load when calling Dataset#columns in the eager_each plugin (jeremyevans)
421
+ === 5.12.0 (2018-08-31)
1808
422
 
1809
- * Support :driver option for jdbc adapter, for specifying driver class for cases where getConnection doesn't work (jeremyevans) (#785)
423
+ * Make constraint_validations extension respect Database#constraint_validations_table setting (jeremyevans)
1810
424
 
1811
- * Massive speedup for PostgreSQL array parser (jeremyevans) (#788)
425
+ * Make Sequel.extension load files from gems (jeremyevans)
1812
426
 
1813
- * Add current_datetime_timestamp extension, for current Time/DateTime instances that are literalized as CURRENT_TIMESTAMP (jeremyevans)
427
+ * Map clob prepared statement argument type to OCI8::CLOB in the oracle adapter (pipistrellka) (#1534)
1814
428
 
1815
- * Recognize additional unique constraint violations on SQLite (jeremyevans) (#782)
429
+ * Make Model.load_cache public in the static_cache plugin (AlexWayfer) (#1533)
1816
430
 
1817
- * Don't remove column value when validating nested attributes for one_to_* association where association foreign key is the model's primary key (jeremyevans)
431
+ * Enable support for NOWAIT on MariaDB 10.3+ (jeremyevans)
1818
432
 
1819
- * Add Dataset#disable_insert_returning on PostgreSQL for skipping implicit use of RETURNING (jeremyevans)
433
+ * Enable support for INTERSECT and EXCEPT on MariaDB 10.3+ (jeremyevans)
1820
434
 
1821
- * Automatically optimize Model.[], .with_pk, and .with_pk! for models with composite keys (jeremyevans)
435
+ * Make tactical_eager_loading plugin handle automatic eager loading for associated objects created by eager_graph (jeremyevans)
1822
436
 
1823
- * Automatically optimize Model.[] when called with a hash (jeremyevans)
437
+ * Cache eager_graph loader to speed up subsequent loads from the same dataset (jeremyevans)
1824
438
 
1825
- * Automatically optimize Model.find, .first, and .first! when called with a single argument (jeremyevans)
439
+ * Add caller_logging database extension to log callers before queries, useful during development (jeremyevans)
1826
440
 
1827
- * Add Model.finder for creating optimized finder methods using Dataset::PlaceholderLiteralizer (jeremyevans)
441
+ * Add Database#call_procedure in the postgres adapter for calling PostgreSQL 11+ procedures (jeremyevans)
1828
442
 
1829
- * Add Dataset::PlaceholderLiteralizer optimization framework (jeremyevans)
443
+ * Add eager_graph_eager plugin for chaining eager association loads after eager_graph association loads (jeremyevans)
1830
444
 
1831
- * Add Dataset#with_sql_{each,all,first,single_value,insert,update} optimized methods (jeremyevans)
445
+ * Support using Dataset#eager_graph in eager load callback for associations using join tables (jeremyevans)
1832
446
 
1833
- * Make pg_array extension use correct type when typecasting column values for smallint, oid, real, character, and varchar arrays (jeremyevans)
447
+ * Make Dataset#graph handle existing selections without determinable aliases by forcing a subselect (jeremyevans)
1834
448
 
1835
- * Make Database#column_schema_to_ruby_default a public method in the schema_dumper extension (jeremyevans) (#776)
449
+ * Freeze prepared statement arguments before returning the prepared statement (jeremyevans)
1836
450
 
1837
- * Fix multiple corner cases in the eager_graph support (jeremyevans) (#771)
451
+ * Refactor emulated prepared statement internals to use a placeholder literalizer (jeremyevans)
1838
452
 
1839
- * Use streaming to implement paging for Dataset#paged_each in the mysql2 adapter (jeremyevans)
453
+ === 5.11.0 (2018-08-01)
1840
454
 
1841
- * Use a cursor to implement paging for Dataset#paged_each in the postgres adapter (jeremyevans)
455
+ * Fix using the jdbc/sqlserver adapter on JRuby 9.2+ (jeremyevans)
1842
456
 
1843
- * Add Database#create_join_table? and #create_join_table! for consistency (jeremyevans)
457
+ * Fix dumping schema for numeric/decimal columns with default values, broken starting in 5.9.0 (jeremyevans)
1844
458
 
1845
- * Add Dataset#where_current_of to the postgres adapter for supporting updating rows based on a cursor's current position (jeremyevans)
459
+ * Recognize additional check constraint violations on certain versions of SQLite (jeremyevans)
1846
460
 
1847
- * Add Dataset#use_cursor :hold option in the postgres adapter for supporting cursor use outside of a transaction (jeremyevans)
461
+ * Use cached model instances for Model.first calls without an argument or with a single integer argument in the static_cache plugin (AlexWayfer) (#1529)
1848
462
 
1849
- * Add Dataset#paged_each :strategy=>:filter option for increased performance (jeremyevans)
463
+ * Support ON CONFLICT clause for INSERT on SQLite 3.24+ (jeremyevans)
1850
464
 
1851
- === 4.8.0 (2014-03-01)
465
+ * Support Dataset#window for WINDOW clause on MySQL 8 and SQLAnywhere (jeremyevans)
1852
466
 
1853
- * Add SQL::AliasedExpression#alias alias for #aliaz (jeremyevans)
467
+ * Enable window function support on SQLAnywhere (jeremyevans)
1854
468
 
1855
- * Handle SQL::Identifier, SQL::QualifiedIdentifier, and SQL::AliasedExpression objects as first argument to Dataset#graph (jeremyevans)
469
+ * Support using a hash as a window function :frame option value, with support for ROWS/RANGE/GROUPS, numeric offsets, and EXCLUDE (jeremyevans)
1856
470
 
1857
- * Respect qualification and aliases in symbols passed as first argument to Dataset#graph (dividedmind) (#769)
471
+ * Allow using set_column_default with a nil value to remove the default value for a column on MySQL when the column is NOT NULL (jeremyevans)
1858
472
 
1859
- * Recognize new constraint violation error messages in SQLite 3.8.2+ (itswindtw) (#766)
473
+ === 5.10.0 (2018-07-01)
1860
474
 
1861
- * Use limit strategy to correctly handle limited associations in the dataset_associations plugin (jeremyevans)
475
+ * Use input type casts when using the postgres adapter with pg 0.18+ to reduce string allocations for some primitive types used as prepared statement arguments (jeremyevans)
1862
476
 
1863
- * Handle issues in dataset_associations plugin when dataset uses unqualified identifiers for associations requiring joins (jeremyevans)
477
+ * Assume local time if database timezone not specified when handling BC timestamps on JRuby 9.2.0.0 in the pg_extended_date_support extension (jeremyevans)
1864
478
 
1865
- * Handle fractional seconds in input timestamps in the odbc/mssql adapter (Ross Attrill, jeremyevans)
479
+ * Fix parsing of timetz types in the jdbc/postgresql adapter (jeremyevans)
1866
480
 
1867
- * Return fractional seconds in timestamps in the odbc adapter (jeremyevans)
481
+ * Make SQLTime.parse respect SQLTime.date and Sequel.application_timezone (jeremyevans)
1868
482
 
1869
- * Support :plain and :phrase options to Dataset#full_text_search on PostgreSQL (jeremyevans)
483
+ * Add :top as an option in the list plugin (celsworth) (#1526)
1870
484
 
1871
- * Use limit strategy to correctly handle filtering by limited associations (jeremyevans)
485
+ * Fix Model#{ancestors,descendants,self_and_siblings} in the tree plugin when custom parent/children association names are used (jeremyevans) (#1525)
1872
486
 
1873
- * Simplify queries used for filtering by associations with conditions (jeremyevans)
487
+ * Treat read-only mode error as disconnect error on mysql and mysql2 adapters, for better behavior on AWS Aurora cluster (jeremyevans)
1874
488
 
1875
- * Use an eager limit strategy by default for *_one associations with orders (jeremyevans)
489
+ * Don't use cached placeholder literalizers for in Dataset#{first,where_all,where_each,where_single_value} if argument is empty array or hash (jeremyevans)
1876
490
 
1877
- * Support :limit_strategy eager_graph option, for specifying strategy used for limited associations in that eager graph (jeremyevans)
491
+ * Support :tablespace option when adding tables, indexes, and materialized views on PostgreSQL (jeremyevans)
1878
492
 
1879
- * Add eager_graph_with_options to model datasets, for specifying options specific to the eager_graph call (jeremyevans)
493
+ * Support :include option for indexes on PostgreSQL 11+ (jeremyevans)
1880
494
 
1881
- * Handle offsets on *_many associations when eager graphing when there are no associated results (jeremyevans)
495
+ * Allow the use of IN/NOT IN operators with set returning functions for Sequel::Model datasets (jeremyevans)
1882
496
 
1883
- * Make Database#register_array_type work without existing scalar conversion proc in the pg_array extension (jeremyevans)
497
+ * Make many_to_pg_array associations in the pg_array_associations plugin work on PostgreSQL 11 (jeremyevans)
1884
498
 
1885
- * Handle presence validations on foreign keys in associated objects when creating new associated objects in the nested_attributes plugin (jeremyevans)
499
+ * Only load strscan library in pg_array extension if it is needed (jeremyevans)
1886
500
 
1887
- * Respect offsets when eager graphing *_one associations (jeremyevans)
501
+ * Don't remove related many_to_one associations from cache when setting column value to existing value for model instances that have not been persisted (jeremyevans) (#1521)
1888
502
 
1889
- * Add association_join to model datasets, for setting up joins based on associations (jeremyevans)
503
+ * Support ruby 2.6+ endless ranges in the pg_range extension (jeremyevans)
1890
504
 
1891
- * Add one_through_many association to many_through_many plugin, for only returning a single record (jeremyevans)
505
+ * Support ruby 2.6+ endless ranges in filters, using just a >= operator for them (jeremyevans)
1892
506
 
1893
- * Add :graph_order association option, useful when :order needs to contain qualified identifiers (jeremyevans)
507
+ === 5.9.0 (2018-06-01)
1894
508
 
1895
- * Add one_through_one association, similar to many_to_many but only returning a single record (jeremyevans)
509
+ * Support generated columns on MySQL 5.7+ and MariaDB 5.2+ (wjordan, jeremyevans) (#1517)
1896
510
 
1897
- === 4.7.0 (2014-02-01)
511
+ * Add escaped_like extension for creation of LIKE expressions with placeholders in the pattern without access to a dataset (jeremyevans)
1898
512
 
1899
- * Don't swallow underlying exception if there is an exception closing the cursor on PostgreSQL (jeremyevans) (#761)
513
+ * Modify jdbc adapter exception handling to work around ::NativeException deprecation in JRuby 9.2 (jeremyevans)
1900
514
 
1901
- * Recognize primary key unique constraint violations on MSSQL and SQLAnywhere (jeremyevans)
515
+ * Work around broken BC date handling in JRuby 9.2.0.0 (jeremyevans)
1902
516
 
1903
- * Recognize composite unique constraint violations on SQLite (timcraft) (#758)
517
+ * Switch use of BigDecimal.new() to BigDecimal(), since the former is deprecated (jeremyevans)
1904
518
 
1905
- * Make #* method without arguments on SQL::Function return a Function with * prepended to the arguments (jeremyevans)
519
+ * Add Sequel::VERSION_NUMBER for easier version comparisons (jeremyevans)
1906
520
 
1907
- * Add #function to SQL::Identifier and SQL::QualifiedIdentifier, allowing for easy use of schema qualified functions or functions names that need quoting (jeremyevans)
521
+ * Add Model.has_dataset? to determine if the model class has a dataset (AlexWayfer) (#1508)
1908
522
 
1909
- * Add SQL::Function#distinct for easier creation of aggregate functions using DISTINCT (jeremyevans)
523
+ * Support use of LIKE with ANY function on PostgreSQL by avoiding unnecessary use of ESCAPE syntax (jeremyevans)
1910
524
 
1911
- * Add SQL::Function#over for easier creation of window functions (jeremyevans)
525
+ * Disconnect connections left allocated by dead threads instead of returning the connections to the pool (jeremyevans)
1912
526
 
1913
- * Don't clear validation instance_hooks until after a successful save (jeremyevans)
527
+ * Make both threaded connection pools avoid disconnecting connections while holding the connection pool mutex (jeremyevans)
1914
528
 
1915
- * Support :raise_on_save_failure option for one_to_many, pg_array_to_many, and many_to_pg_array associations (jeremyevans)
529
+ * Don't deadlock when disconnecting connections in the sharded_threaded connection pool when using connection_validator or connection_expiration extensions (jeremyevans)
1916
530
 
1917
- * Make SQLTime#to_s return a string in HH:MM:SS format, since it shouldn't include date information (jeremyevans)
531
+ * Don't modify hash argument passed in Model.nested_attributes in the nested_attributes plugin (jeremyevans)
1918
532
 
1919
- * Support the Database#tables :schema option in the jdbc adapter (robbiegill, jeremyevans) (#755)
533
+ * Avoid unnecessary hash creation in many places (jeremyevans)
1920
534
 
1921
- * Automatically rollback transactions in killed threads in ruby 2.0+ (chanks) (#752)
535
+ * Fix duplicate objects in nested associations when eager_graphing cascaded many_to_one=>one_to_many associations (jeremyevans)
1922
536
 
1923
- * Add update_or_create plugin, for updating an object if it exists, or creating such an object if it does not (jeremyevans)
537
+ === 5.8.0 (2018-05-01)
1924
538
 
1925
- * Make auto_validations uniqueness validations work correctly for STI subclasses (jeremyevans)
539
+ * Don't mark SQLAnywhere as supporting WITH in INSERT statement (jeremyevans)
1926
540
 
1927
- * Support :dataset option to validates_unique vaildation (jeremyevans)
541
+ * Support :search_path as a shard option on PostgreSQL (jeremyevans)
1928
542
 
1929
- === 4.6.0 (2014-01-02)
543
+ * Add Dataset#nowait for raising a Sequel::DatabaseLockTimeout when a locked row is encountered, supported on PostgreSQL, MySQL 8+, MSSQL, and Oracle (jeremyevans)
1930
544
 
1931
- * Add Database#call_mssql_sproc on MSSQL for calling stored procedures and handling output parameters (jrgns, jeremyevans) (#748)
545
+ * Support Dataset#skip_locked on MySQL 8+ (jeremyevans)
1932
546
 
1933
- * Handle RuntimeErrors raised by oci8 in the oracle adapter (jeremyevans)
547
+ * Make schema modification methods in the pg_enum extension work on a frozen Database object (jeremyevans)
1934
548
 
1935
- * Support OFFSET/FETCH on Microsoft SQL Server 2012 (jeremyevans)
549
+ * Support common table expressions and window functions on MySQL 8+ (jeremyevans)
1936
550
 
1937
- * Support :server option for Database#{commit,rollback}_prepared_transaction on PostgreSQL, MySQL, and H2 (jeremyevans) (#743)
551
+ * Ignore Dataset#explain :extended option on MySQL 5.7+, since extended output is then the MySQL default (jeremyevans)
1938
552
 
1939
- * Do not attempt to eager load and raise an exception when doing Model.eager(...).naked.all (jeremyevans)
553
+ * Work around REGEXP BINARY not working correctly on MySQL 8+ by using REGEXP_LIKE with the 'c' match_type (jeremyevans)
1940
554
 
1941
- * Recognize a couple additional disconnect errors in the jdbc/postgresql adapter (jeremyevans) (#742)
555
+ * Force correct column order in Database#foreign_key_list on MySQL (jeremyevans)
1942
556
 
1943
- === 4.5.0 (2013-12-02)
557
+ * Add ConnectionPool#connection_expiration_random_delay to connection_expiration extension, to avoid thundering herd if preallocating connections (hex2a, jeremyevans) (#1503)
1944
558
 
1945
- * Support :on_commit=>(:drop|:delete_rows|:preserve_rows) options when creating temp tables on PostgreSQL (rosenfeld) (#737)
559
+ * Emit deprecation warning in association_proxies plugin if using #filter on an association proxy, since behavior will change on ruby 2.6+ (utilum) (#1497)
1946
560
 
1947
- * Make Dataset#insert work on PostgreSQL if the table name is a SQL::PlaceholderLiteralString (jeremyevans) (#736)
561
+ * Handle multiple add_constraint calls and a set_column_null call in the same alter_table block on SQLite (jeremyevans) (#1498)
1948
562
 
1949
- * Copy unique constraints when emulating alter_table operations on SQLite (jeremyevans) (#735)
563
+ * Add Database#rename_enum to the pg_enum extension (AlexWayfer) (#1495)
1950
564
 
1951
- * Don't return clob column values as SQL::Blob instances in the db2 and ibmdb adapters unless use_clob_as_blob is true (jeremyevans)
565
+ * Make tactical_eager_loading plugin respect the :allow_eager association option (jeremyevans) (#1494)
1952
566
 
1953
- * Make use_clob_as_blob false by default on DB2 (jeremyevans)
567
+ * Add pg_auto_constraint_validations plugin, for automatically converting constraint violations to validation failures on PostgreSQL (jeremyevans)
1954
568
 
1955
- * Fix usage of Sequel::SQL::Blob objects as prepared statement arguments in jdbc/db2 adapter when use_clob_as_blob is false (jeremyevans)
569
+ * Don't make Model#_valid? public in the error_splitter plugin (jeremyevans)
1956
570
 
1957
- * Add mssql_optimistic_locking plugin, using a timestamp/rowversion column to protect against concurrent updates (pinx, jeremyevans) (#731)
571
+ * Support Database#indexes :include_partial option on PostgreSQL for including partial indexes (jeremyevans)
1958
572
 
1959
- * Make Model.primary_key array immutable for composite keys (chanks) (#730)
573
+ * Include more diagnostic information in Database#error_info on PostgreSQL (jeremyevans)
1960
574
 
1961
- === 4.4.0 (2013-11-01)
575
+ * Support Database#foreign_key_list :reverse option on PostgreSQL for parsing foreign key constraints that reference a given table (jeremyevans)
1962
576
 
1963
- * Make Database#tables not show tables in the recycle bin on Oracle (jeremyevans) (#728)
577
+ * Add Database#check_constraints on PostgreSQL for parsing CHECK constraints (jeremyevans)
1964
578
 
1965
- * Don't automatically order on all columns when emulating offsets for unordered datasets on DB2 (jeremyevans)
579
+ * Don't use identity columns if :serial=>true or :type=>:serial|:bigserial column options are used (#1490) (jeremyevans)
1966
580
 
1967
- * Improve PostgreSQL type support in the jdbc/postgresql adapter (jeremyevans)
581
+ * Cache Dataset#select_all datasets if no arguments are given (jeremyevans)
1968
582
 
1969
- * Make offset emulation on Oracle work when using columns that can't be ordered (jeremyevans, sdeming) (#724, #725)
583
+ * Cache Dataset#returning datasets if no arguments are given (jeremyevans)
1970
584
 
1971
- * Make filter by associations support handle associations with :conditions or block (jeremyevans)
585
+ * Cache Dataset#qualify datasets if no argument is given (jeremyevans)
1972
586
 
1973
- * Make association cloning handle :block correctly for clones of clones (jeremyevans)
587
+ * Cache Dataset#lateral datasets (jeremyevans)
1974
588
 
1975
- * Make association cloning handle :eager_block option correctly (jeremyevans)
589
+ * Cache Dataset#from_self datasets if no options are given (jeremyevans)
1976
590
 
1977
- * Make add_primary_key work on h2 (jeremyevans)
591
+ * Cache Dataset#distinct datasets if no arguments or block is given (jeremyevans)
1978
592
 
1979
- * Add support for foreign key parsing on Oracle (jeremyevans)
593
+ === 5.7.0 (2018-04-01)
1980
594
 
1981
- * Add support for foreign key parsing to the jdbc adapter (jeremyevans)
595
+ * Add Sequel.start_timer and .elapsed_seconds_since for more accurate elapsed time calculations on ruby 2.1+ (jeremyevans)
1982
596
 
1983
- * Make add_foreign_key work on HSQLDB (jeremyevans)
597
+ * Run Dataset#with_sql_{all,each,first,single_value} using a cached dataset to avoid clobbering the dataset's columns (jeremyevans)
1984
598
 
1985
- * Add table_select plugin for selecting table.* instead of * for model datasets (jeremyevans)
599
+ * Add Database#convert_serial_to_identity on PostgreSQL 10.2+, which requires superuser access (jeremyevans)
1986
600
 
1987
- * Issue constraint_validation table deletes before inserts, so modifying constraint via drop/add in same alter_table block works (jeremyevans)
601
+ * Fix Database#server_version when connecting to PostgreSQL 10.1+ in certain cases (jeremyevans)
1988
602
 
1989
- * Support add_*/remove_*/remove_all_* pg_array_to_many association methods on unsaved model objects (jeremyevans)
603
+ * Free temporary clobs in the jdbc/oracle adapter to prevent a memory leak (jeremyevans) (#1482)
1990
604
 
1991
- * Add Sybase SQLAnywhere support via new sqlanywhere and jdbc/sqlanywhere adapters (gditrick, jeremyevans)
605
+ * Treat prepared statement errors due to changing types as disconnect errors in the postgres adapter (jeremyevans) (#1481)
1992
606
 
1993
- * Add Dataset#offset for setting the offset separately from the limit (Paul Henry, jeremyevans) (#717)
607
+ * Add integer64 extension for treating Integer as a 64-bit integer when used as a generic type (jeremyevans)
1994
608
 
1995
- === 4.3.0 (2013-10-02)
609
+ * Allow many_to_pg_array remove_all_* method cast appropriately to work correctly for non-integer types (jeremyevans)
1996
610
 
1997
- * Fix literalization of empty blobs on MySQL (jeremyevans) (#715)
611
+ * Fix array_type for pg_array_to_many and many_to_pg_array associations in pg_array_associations plugin (jeremyevans)
1998
612
 
1999
- * Ensure Dataset#page_count in pagination extension is at least one (jeremyevans) (#714)
613
+ * Use identity columns instead of serial columns for primary keys on PostgreSQL 10.2+ (jeremyevans)
2000
614
 
2001
- * Recognize another disconnect error in the jdbc/as400 adapter (jeremyevans)
615
+ * Support :identity option when creating columns on PostgreSQL 10+ to create identity columns (jeremyevans)
2002
616
 
2003
- * Make Dataset#qualify and Sequel.delay work together (jeremyevans)
617
+ * Add Dataset#overriding_{system,user}_value on PostgreSQL for use with PostgreSQL 10+ identity columns (jeremyevans)
2004
618
 
2005
- * Recognize citext type as string on PostgreSQL (isc) (#710)
619
+ * Set :auto_increment schema entry correctly for PostgreSQL 10+ identity columns (jeremyevans)
2006
620
 
2007
- * Support composite keys in the rcte_tree plugin (jeremyevans)
621
+ === 5.6.0 (2018-03-01)
2008
622
 
2009
- * Support composite keys in the tree plugin (jeremyevans)
623
+ * Dedup :db_type strings in schema hashes on Ruby 2.5+ (jeremyevans)
2010
624
 
2011
- * Make Migrator.migrator_class public (robertjpayne, jeremyevans) (#708)
625
+ * Make schema_caching extension work with :callable_default schema values (jeremyevans)
2012
626
 
2013
- * Make PostgreSQL empty array literalization work correctly on PostgreSQL <8.4 (jeremyevans)
627
+ * Freeze string valuse in hashes returned by Database#schema when using the schema_caching extension (jeremyevans)
2014
628
 
2015
- * Add Sequel extensions guide (jeremyevans)
629
+ * Protect migration file loading with a mutex to not break when multiple threads load migration files simultaneously (jeremyevans)
2016
630
 
2017
- * Add model plugins guide (jeremyevans)
631
+ * Respect identifier mangling rules when renaming columns on Microsoft SQL Server (jeremyevans)
2018
632
 
2019
- * Add error_sql Database extension, allowing DatabaseError#sql to return SQL query that caused underlying exception (jeremyevans)
633
+ === 5.5.0 (2018-01-31)
2020
634
 
2021
- * Make Dataset#each_page in pagination extension return enumerator if no block is given (justinj) (#702)
635
+ * Make Database#copy_table in the postgres adapter handle errors that occur while processing rows (jeremyevans) (#1470)
2022
636
 
2023
- === 4.2.0 (2013-09-01)
637
+ * Cache results of changed_columns method in local variables in many places for better performance (jeremyevans)
2024
638
 
2025
- * Support custom :flags option in mysql2 adapter (jeremyevans) (#700)
639
+ * Make modification_detection plugin not break column change detection for new objects (jeremyevans) (#1468)
2026
640
 
2027
- * Add implementations of Dataset#freeze and Dataset#dup (jeremyevans)
641
+ * Make pg_range extension set :ruby_default schema value for recognized range defaults (jeremyevans)
2028
642
 
2029
- * Add implementations of Model#dup and Model#clone (jeremyevans)
643
+ * Make pg_interval extension set :ruby_default schema value for recognized interval defaults (jeremyevans)
2030
644
 
2031
- * Don't have partial_indexes returned by Database#indexes on MSSQL 2008+ (jeremyevans)
645
+ * Make pg_json extension set :callable_default schema value for empty json/jsonb array/hash defaults (jeremyevans)
2032
646
 
2033
- * Support partial indexes on SQLite 3.8.0+ (jeremyevans)
647
+ * Make pg_inet extension set :ruby_default schema value for recognized inet/cidr defaults (jeremyevans)
2034
648
 
2035
- * Add Database#supports_partial_indexes? to check for partial index support (mluu, jeremyevans) (#698)
649
+ * Make pg_hstore extension set :callable_default schema value for empty hstore defaults (jeremyevans)
2036
650
 
2037
- * The static_cache plugin now disallows saving/destroying if the :frozen=>false option is not used (jeremyevans)
651
+ * Make pg_array extension set :callable_default schema value for recognized empty array defaults (jeremyevans) (#1466)
2038
652
 
2039
- * Support :frozen=>false option in static_cache plugin, for having new instances returned instead of frozen cached instances (jeremyevans)
653
+ * Make defaults_setter plugin prefer :callable_default db_schema values over :ruby_default db_schema values (jeremyevans)
2040
654
 
2041
- * Add pg_static_cache_updater Database extension for listening for changes to tables and updating static_cache caches automatically (jeremyevans)
655
+ * Add defaults_setter plugin :cache option for caching default values returned (jeremyevans)
2042
656
 
2043
- * Add mssql_emulate_lateral_with_apply extension for emulating LATERAL queries using CROSS/OUTER APPLY (jeremyevans)
657
+ * Freeze string values in hashes returned by Database#schema (jeremyevans)
2044
658
 
2045
- * Support LATERAL queries via Dataset#lateral (jeremyevans)
659
+ === 5.4.0 (2018-01-04)
2046
660
 
2047
- * Add pg_loose_count Database extension, for fast approximate counts of PostgreSQL tables (jeremyevans)
661
+ * Enable fractional seconds in timestamps on DB2 (jeremyevans) (#1463)
2048
662
 
2049
- * Add from_block Database extension, for having Database#from block affect FROM instead of WHERE (jeremyevans)
663
+ * Don't attempt to insert a second time if insert_select runs a query that doesn't return results, which can happen when triggers are used (jeremyevans)
2050
664
 
2051
- * Support :cursor_name option in postgres adapter Dataset#use_cursor (heeringa, jeremyevans) (#696)
665
+ * Make Dataset#insert_select on PostgreSQL and MSSQL return false instead of nil if the INSERT query is sent to the database but returns no rows (jeremyevans)
2052
666
 
2053
- * Fix placeholder literal strings when used with an empty placeholder hash (trydionel, jeremyevans) (#695)
667
+ * Add index_caching extension for caching calls to Database#indexes (kenaniah, jeremyevans) (#1461)
2054
668
 
2055
- === 4.1.1 (2013-08-01)
669
+ * Allow Database#indexes on SQLite, MSSQL, SQLAnywhere, and DB2 to handle SQL::Identifier values (jeremyevans)
2056
670
 
2057
- * Fix select_map, select_order_map, and single_value methods on eager_graphed datasets (jeremyevans)
671
+ * Add pg_timestamptz extension for using timestamptz (timestamp with time zone) as the default timestamp type (jeremyevans)
2058
672
 
2059
- === 4.1.0 (2013-08-01)
673
+ * Support Sequel.date_{add,sub} :cast option for setting cast type in date_arithmetic extension (jeremyevans)
2060
674
 
2061
- * Support :inherits option in Database#create_table on PostgreSQL, for table inheritance (jeremyevans)
675
+ * Optimize Database#synchronize implementation on ruby 2.5+ (jeremyevans)
2062
676
 
2063
- * Handle dropping indexes for schema qualified tables on PostgreSQL (jeremyevans)
677
+ * Add class_table_inheritance plugin :ignore_subclass_columns option (brianphillips) (#1459)
2064
678
 
2065
- * 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)
679
+ * Make Dataset#to_xml in xml_serializer work with eager_graphed datasets (jeremyevans)
2066
680
 
2067
- * Allow prepared_statements plugin to work with instance_filters and update_primary_key plugins (jeremyevans)
681
+ * Make Dataset#to_json in json_serializer work with eager_graphed datasets (jeremyevans)
2068
682
 
2069
- * Support deferrable exclusion constraints on PostgreSQL using the :deferrable option (mfoody) (#687)
683
+ * Cache Dataset#nullify dataset in the null_dataset extension (chanks) (#1456)
2070
684
 
2071
- * Make Database#run and #<< accept SQL::PlaceholderLiteralString values (jeremyevans)
685
+ * Add datetime_parse_to_time extension, for parsing timestamp strings without offsets using DateTime.parse.to_time (jeremyevans) (#1455)
2072
686
 
2073
- * Deprecate :driver option in odbc adapter since it appears to be broken (jeremyevans)
687
+ * Add WHERE NULL filter for Dataset#where calls with no existing filter, no argument, and where the virtual row block returns nil (jeremyevans)
2074
688
 
2075
- * Support :drvconnect option in odbc adapter for supplying the ODBC connection string directly (jeremyevans)
689
+ === 5.3.0 (2017-12-01)
2076
690
 
2077
- * Support mysql2 0.3.12+ result streaming via Dataset#stream (jeremyevans)
691
+ * Add logger to Database instance before making first connection in bin/sequel (jeremyevans)
2078
692
 
2079
- * Convert Java::JavaUtil::HashMap to ruby Hash in jdbc adapter, for better handling of PostgreSQL hstore type (jeremyevans) (#686)
693
+ * Drop support for PostgreSQL <8.1 in Database#indexes (jeremyevans)
2080
694
 
2081
- * Raise NoMatchingRow if calling add_association with a primary key value that doesn't match an existing row (jeremyevans)
695
+ * Add synchronize_sql extension, for checking out a connection around SQL generation (KJTsanaktsidis, jeremyevans) (#1451)
2082
696
 
2083
- * Allow PostgreSQL add_constraint to support :not_valid option (jeremyevans)
697
+ * Deprecate Dataset#where calls with no existing filter, no argument, and where the virtual row block returns nil (jeremyevans) (#1454)
2084
698
 
2085
- * Allow CHECK constraints to have options by using an options hash as the constraint name (jeremyevans)
699
+ * Add DatasetModule#reverse for simpler use of descending orders (jeremyevans)
2086
700
 
2087
- * Correctly raise error when using an invalid virtual row block function call (jeremyevans)
701
+ * Support WITH clauses in subqueries on SQLite, but not in UNION/INTERSECT/EXCEPT (jeremyevans)
2088
702
 
2089
- * Support REPLACE on SQLite via Dataset#replace and #multi_replace (etehtsea) (#681)
703
+ * Hoist WITH clauses to INSERT statement level if INSERT subquery uses a CTE on MSSQL (jeremyevans)
2090
704
 
2091
- === 4.0.0 (2013-07-01)
705
+ * Respect indislive and ignore indcheckxmin index attributes when using Database#indexes on PostgreSQL (jeremyevans)
2092
706
 
2093
- * Correctly parse composite primary keys on SQLite 3.7.16+ (jeremyevans)
707
+ * Explicitly disallow use of server-side prepared statements when using Dataset#call in the jdbc/postgresql adapter (jeremyevans) (#1448)
2094
708
 
2095
- * Recognize another disconnect error in the jdbc/oracle adapter (jeremyevans)
709
+ * Support common table expressions, window functions, dropping CHECK constraints, and recognizing CURRENT_DATE defaults on MariaDB 10.2+ (jeremyevans)
2096
710
 
2097
- * Add pg_json_ops extension for calling JSON functions and operators in PostgreSQL 9.3+ (jeremyevans)
711
+ * Make Database#reset_primary_key_sequence work on PostgreSQL 10+ (jeremyevans)
2098
712
 
2099
- * Handle non-JSON plain strings, integers, and floats in PostgreSQL JSON columns in pg_json extension (jeremyevans)
713
+ * Support :connect_sqls Database option for easily issuing sql commands on all new connections (jeremyevans)
2100
714
 
2101
- * Dataset#from now accepts virtual row blocks (jeremyevans)
715
+ * Support :extensions Database option for loading extensions when initializing, useful in connection strings (jeremyevans)
2102
716
 
2103
- * Add Database#refresh_view on PostgreSQL to support refreshing materialized views (jeremyevans)
717
+ * Avoid warning if trying to rollback after a commit or rollback raises an exception in the postgres adapter (jeremyevans)
2104
718
 
2105
- * Support the Database#drop_view :if_exists option on PostgreSQL (jeremyevans)
719
+ * Support Date::Infinity values in the pg_extended_date_support extension (jeremyevans)
2106
720
 
2107
- * Support the Database#{create,drop}_view :materialized option for creating materialized views in PostgreSQL 9.3+ (jeremyevans)
721
+ === 5.2.0 (2017-10-27)
2108
722
 
2109
- * Support the Database#create_view :recursive option for creating recursive views in PostgreSQL 9.3+ (jeremyevans)
723
+ * Fix type conversion for smallint unsigned and integer unsigned types on jdbc/mysql (jeremyevans) (#1443)
2110
724
 
2111
- * Support the Database#create_view :columns option for using explicit columns (jeremyevans)
725
+ * Add pg_extended_date_support extension, for handling infinite and BC dates/timestamps (jeremyevans)
2112
726
 
2113
- * Support the Database#create_schema :owner and :if_not_exists options on PostgreSQL (jeremyevans)
727
+ * Do not ignore existing @dataset instance variable when subclassing Sequel::Model (bjmllr) (#1435)
2114
728
 
2115
- * Support :index_type=>:gist option to create GIST full text indexes on PostgreSQL (jeremyevans)
729
+ === 5.1.0 (2017-10-01)
2116
730
 
2117
- * Add Postgres::ArrayOp#replace for the array_replace function in PostgreSQL 9.3+ (jeremyevans)
731
+ * Make jdbc/h2 and jdbc/hsqldb adapters respect :foreign_key_constraint_name option when adding new foreign key column (jeremyevans)
2118
732
 
2119
- * Add Postgres::ArrayOp#remove for the array_remove function in PostgreSQL 9.3+ (jeremyevans)
733
+ * Do not issue unnecessary query for macaddr type oid when loading the pg_inet extension (jeltz) (#1423)
2120
734
 
2121
- * Add Postgres::ArrayOp#hstore for creating hstores from arrays (jeremyevans)
735
+ * Make alter_table add_foreign_key with a column symbol reversible when using the :foreign_key_constraint_name option (jeremyevans) (#1422)
2122
736
 
2123
- * Make Postgres::ArrayOp#[] return ArrayOp if given a range (jeremyevans)
737
+ * Do not raise an error if calling Model.freeze on a frozen model (jeremyevans) (#1421)
2124
738
 
2125
- * Ensure that CHECK constraints are surrounded with parentheses (jeremyevans)
739
+ * Make Database#copy_into in the jdbc/postgresql adapter handle multi-byte strings (ckoenig) (#1416)
2126
740
 
2127
- * Ensure Dataset#unbind returned variable hash uses symbol keys (jeremyevans)
741
+ * Remove deprecated Model use_after_commit_rollback class and instance methods (jeremyevans)
2128
742
 
2129
- * Add pg_array_associations plugin, for associations based on PostgreSQL arrays containing foreign keys (jeremyevans)
743
+ * Remove deprecated Model.allowed_columns method in the base model support (jeremyevans)
2130
744
 
2131
- * Add Sequel.deep_qualify, for easily doing a deep qualification (jeremyevans)
745
+ * Remove deprecated Model.plugin_module_defined? private method (jeremyevans)
2132
746
 
2133
- * Enable use of window functions for limited eager loading by default (jeremyevans)
747
+ * Remove deprecated support for Model#_before_validation private method (jeremyevans)
2134
748
 
2135
- * Handle offsets correctly when eager loading one_to_one associations (jeremyevans)
749
+ === 5.0.0 (2017-09-01)
2136
750
 
2137
- * Raise exception for infinite and NaN floats on MySQL (jeremyevans) (#677)
751
+ * Make bin/sequel -M option always use base 10 (jeremyevans)
2138
752
 
2139
- * Make dataset string literalization that requires database connection use dataset's chosen server (jeremyevans)
753
+ * Don't use savepoints when creating indexes inside a transaction on databases that don't support transactional schema modifications (jeremyevans) (#1407)
2140
754
 
2141
- * Make sure an offset without a limit is handled correctly when eager loading (jeremyevans)
755
+ * Support :if_not_exists option when creating indexes on PostgreSQL 9.5+ (DyegoCosta) (#1405)
2142
756
 
2143
- * Allow providing ranges as subscripts for array[start:end] (jeremyevans)
757
+ * Make threaded connection pools not block while connections are being made (jeremyevans)
2144
758
 
2145
- * Prepare one_to_one associations in the prepared_statements_associations plugin (jeremyevans)
759
+ * SQL::Expression#clone and #dup now return self, since all expressions should be frozen value objects (jeremyevans)
2146
760
 
2147
- * Use prepared statements when the association has :conditions in the prepared_statements_associations plugin (jeremyevans)
761
+ * Don't create empty arrays for unused association callbacks (jeremyevans)
2148
762
 
2149
- * Fix prepared statement usage in some additional cases in the prepared_statements_associations plugin (jeremyevans)
763
+ * Cache association method name symbols instead of recomputing them everytime (jeremyevans)
2150
764
 
2151
- * Hex escape blob input on MySQL (jeremyevans)
765
+ * Raise an exception if attempting to create a prepared statement using a dataset with a delayed evaluation (jeremyevans)
2152
766
 
2153
- * Handle more disconnect errors when using the postgres adapter with the postgres-pr driver (jeremyevans)
767
+ * Make ConnectionPool#size thread safe by using the pool mutex (jeremyevans)
2154
768
 
2155
- * Model#setter_methods private method now accepts 1 argument instead of 2 (jeremyevans)
769
+ * Use instance_exec instead of instance_eval when passing a block, to work with lambdas that accept no arguments (jeremyevans)
2156
770
 
2157
- * Model#set_restricted and #update_restricted private methods now accept 2 arguments instead of 3 (jeremyevans)
771
+ * Freeze SQL::StringAgg instances in string_agg extension (jeremyevans)
2158
772
 
2159
- * ungraphed on an eager_graph dataset now resets the original row_proc (jeremyevans)
773
+ * Freeze SQL::DateAdd instances in date_arithmetic extension (jeremyevans)
2160
774
 
2161
- * eager_graph now returns a naked dataset (jeremyevans)
775
+ * Freeze SQL::Expression.comparison_attrs (jeremyevans)
2162
776
 
2163
- * All behavior deprecated in Sequel 3.48.0 has been removed (jeremyevans)
777
+ * Rename SQL::Subscript#f to #expression, keeping #f as an alias (jeremyevans)
2164
778
 
2165
- * Make adapter/integration spec environment variables more consistent (jeremyevans)
779
+ * Require the :pool_class Database option be a class to use a custom connection pool (jeremyevans)
2166
780
 
2167
- * Sequel no longer provides default databases for adapter/integration specs (jeremyevans)
781
+ * Make the class_table_inheritance plugin raise an Error during update if any UPDATE query does not affect a single row (jeremyevans)
2168
782
 
2169
- * Model#save no longer calls #_refresh internally (jeremyevans)
783
+ * Change most send calls to public_send unless calling private methods is expected (jeremyevans)
2170
784
 
2171
- * Model#set_all and #update_all can now update the primary key (jeremyevans)
785
+ * Database schema and schema generator methods now return nil (jeremyevans)
2172
786
 
2173
- * Integrate many_to_one_pk_lookup and association_autoreloading plugins into main associations plugin (jeremyevans)
787
+ * Model#validates_unique in the validation helpers plugin now defaults to only checking on new or modified values (jeremyevans)
2174
788
 
2175
- * Make defaults_setter plugin operate in a lazy manner (jeremyevans)
789
+ * Deprecate Model#_before_validation (private_method), use Model#before_validation now (jeremyevans)
2176
790
 
2177
- * Plugins now extend the model class with ClassMethods before including InstanceMethods (jeremyevans)
791
+ * Always run before/after/around validation hooks when saving, even when not validating the object (jeremyevans)
2178
792
 
2179
- * Remove Model::EMPTY_INSTANCE_VARIABLES (jeremyevans)
793
+ * Deprecate Model use_after_commit_rollback class and instance accessors (jeremyevans)
2180
794
 
2181
- * Model.raise_on_typecast_failure now defaults to false (jeremyevans)
795
+ * Deprecate Model.allowed_columns reader (jeremyevans)
2182
796
 
2183
- * Model#_save private method now only takes a single argument (jeremyevans)
797
+ * Freeze internal constants that shouldn't be modified at runtime (jeremyevans)
2184
798
 
2185
- * Remove Dataset#columns_without_introspection from columns_introspection extension (jeremyevans)
799
+ * Attempt to connect to the database immediately when creating the Database instance (jeremyevans)
2186
800
 
2187
- * Make boolean prepared statement arguments work on sqlite adapter when integer_booleans is true (jeremyevans)
801
+ * Make association_pks plugin delay the setting of associated objects until the current object is saved by default (jeremyevans)
2188
802
 
2189
- * Make Database#tables and #views reflect search_path on PostgreSQL (jeremyevans)
803
+ * Joined datasets used as model datasets are now automatically wrapped in a subquery (jeremyevans)
2190
804
 
2191
- * SQLite now defaults to true for integer_booleans and false for use_timestamp_timezones (jeremyevans)
805
+ * Setting an invalid dataset for a model class now raises an exception by default (jeremyevans)
2192
806
 
2193
- * Make the default value for most option hashes a shared frozen hash (jeremyevans)
807
+ * Getting all values for newly created models now happens before calling after_create, instead of after (jeremyevans)
2194
808
 
2195
- * Remove Sequel::NotImplemented exception (jeremyevans)
809
+ * Remove use of @was_new/@columns_updated instance variables when saving model objects (jeremyevans)
2196
810
 
2197
- * Automatically alias single expressions in Dataset#get, #select_map, and #select_order_map, to work around possible DoS issues (jeremyevans)
811
+ * Disable symbol splitting by default (jeremyevans)
2198
812
 
2199
- * Use a connection queue instead of stack by default for threaded connection pools (jeremyevans)
813
+ * Make datasets frozen by default (jeremyevans)
2200
814
 
2201
- * Remove SQL::SQLArray alias for SQL::ValueList (jeremyevans)
815
+ * Drop support for ruby 1.8.7, minimum now is 1.9.2 (jeremyevans)
2202
816
 
2203
- * Remove SQL::NoBooleanInputMethods empty module (jeremyevans)
817
+ * Remove deprecated adapters, extensions, plugins, constants, and features (jeremyevans)
2204
818
 
2205
819
  === Older
2206
820