sequel 4.26.0 → 5.37.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 (692) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG +405 -5656
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +232 -157
  5. data/bin/sequel +32 -9
  6. data/doc/advanced_associations.rdoc +252 -188
  7. data/doc/association_basics.rdoc +231 -273
  8. data/doc/bin_sequel.rdoc +5 -3
  9. data/doc/cheat_sheet.rdoc +75 -48
  10. data/doc/code_order.rdoc +28 -10
  11. data/doc/core_extensions.rdoc +104 -63
  12. data/doc/dataset_basics.rdoc +12 -21
  13. data/doc/dataset_filtering.rdoc +99 -86
  14. data/doc/extensions.rdoc +3 -10
  15. data/doc/mass_assignment.rdoc +74 -31
  16. data/doc/migration.rdoc +72 -46
  17. data/doc/model_dataset_method_design.rdoc +129 -0
  18. data/doc/model_hooks.rdoc +15 -25
  19. data/doc/model_plugins.rdoc +12 -12
  20. data/doc/mssql_stored_procedures.rdoc +3 -3
  21. data/doc/object_model.rdoc +59 -69
  22. data/doc/opening_databases.rdoc +84 -94
  23. data/doc/postgresql.rdoc +268 -38
  24. data/doc/prepared_statements.rdoc +29 -24
  25. data/doc/querying.rdoc +184 -164
  26. data/doc/reflection.rdoc +5 -6
  27. data/doc/release_notes/5.0.0.txt +159 -0
  28. data/doc/release_notes/5.1.0.txt +31 -0
  29. data/doc/release_notes/5.10.0.txt +84 -0
  30. data/doc/release_notes/5.11.0.txt +83 -0
  31. data/doc/release_notes/5.12.0.txt +141 -0
  32. data/doc/release_notes/5.13.0.txt +27 -0
  33. data/doc/release_notes/5.14.0.txt +63 -0
  34. data/doc/release_notes/5.15.0.txt +39 -0
  35. data/doc/release_notes/5.16.0.txt +110 -0
  36. data/doc/release_notes/5.17.0.txt +31 -0
  37. data/doc/release_notes/5.18.0.txt +69 -0
  38. data/doc/release_notes/5.19.0.txt +28 -0
  39. data/doc/release_notes/5.2.0.txt +33 -0
  40. data/doc/release_notes/5.20.0.txt +89 -0
  41. data/doc/release_notes/5.21.0.txt +87 -0
  42. data/doc/release_notes/5.22.0.txt +48 -0
  43. data/doc/release_notes/5.23.0.txt +56 -0
  44. data/doc/release_notes/5.24.0.txt +56 -0
  45. data/doc/release_notes/5.25.0.txt +32 -0
  46. data/doc/release_notes/5.26.0.txt +35 -0
  47. data/doc/release_notes/5.27.0.txt +21 -0
  48. data/doc/release_notes/5.28.0.txt +16 -0
  49. data/doc/release_notes/5.29.0.txt +22 -0
  50. data/doc/release_notes/5.3.0.txt +121 -0
  51. data/doc/release_notes/5.30.0.txt +20 -0
  52. data/doc/release_notes/5.31.0.txt +148 -0
  53. data/doc/release_notes/5.32.0.txt +46 -0
  54. data/doc/release_notes/5.33.0.txt +24 -0
  55. data/doc/release_notes/5.34.0.txt +40 -0
  56. data/doc/release_notes/5.35.0.txt +56 -0
  57. data/doc/release_notes/5.36.0.txt +60 -0
  58. data/doc/release_notes/5.37.0.txt +30 -0
  59. data/doc/release_notes/5.4.0.txt +80 -0
  60. data/doc/release_notes/5.5.0.txt +61 -0
  61. data/doc/release_notes/5.6.0.txt +31 -0
  62. data/doc/release_notes/5.7.0.txt +108 -0
  63. data/doc/release_notes/5.8.0.txt +170 -0
  64. data/doc/release_notes/5.9.0.txt +99 -0
  65. data/doc/schema_modification.rdoc +102 -77
  66. data/doc/security.rdoc +160 -87
  67. data/doc/sharding.rdoc +74 -47
  68. data/doc/sql.rdoc +135 -122
  69. data/doc/testing.rdoc +34 -18
  70. data/doc/thread_safety.rdoc +2 -4
  71. data/doc/transactions.rdoc +101 -19
  72. data/doc/validations.rdoc +64 -51
  73. data/doc/virtual_rows.rdoc +90 -109
  74. data/lib/sequel.rb +3 -1
  75. data/lib/sequel/adapters/ado.rb +154 -22
  76. data/lib/sequel/adapters/ado/access.rb +21 -21
  77. data/lib/sequel/adapters/ado/mssql.rb +8 -15
  78. data/lib/sequel/adapters/amalgalite.rb +17 -25
  79. data/lib/sequel/adapters/ibmdb.rb +52 -58
  80. data/lib/sequel/adapters/jdbc.rb +149 -127
  81. data/lib/sequel/adapters/jdbc/db2.rb +32 -40
  82. data/lib/sequel/adapters/jdbc/derby.rb +56 -58
  83. data/lib/sequel/adapters/jdbc/h2.rb +40 -30
  84. data/lib/sequel/adapters/jdbc/hsqldb.rb +22 -33
  85. data/lib/sequel/adapters/jdbc/jtds.rb +4 -10
  86. data/lib/sequel/adapters/jdbc/mssql.rb +6 -12
  87. data/lib/sequel/adapters/jdbc/mysql.rb +17 -18
  88. data/lib/sequel/adapters/jdbc/oracle.rb +25 -19
  89. data/lib/sequel/adapters/jdbc/postgresql.rb +90 -69
  90. data/lib/sequel/adapters/jdbc/sqlanywhere.rb +14 -24
  91. data/lib/sequel/adapters/jdbc/sqlite.rb +50 -12
  92. data/lib/sequel/adapters/jdbc/sqlserver.rb +36 -9
  93. data/lib/sequel/adapters/jdbc/transactions.rb +25 -39
  94. data/lib/sequel/adapters/mock.rb +104 -113
  95. data/lib/sequel/adapters/mysql.rb +42 -61
  96. data/lib/sequel/adapters/mysql2.rb +126 -35
  97. data/lib/sequel/adapters/odbc.rb +21 -28
  98. data/lib/sequel/adapters/odbc/db2.rb +3 -1
  99. data/lib/sequel/adapters/odbc/mssql.rb +11 -15
  100. data/lib/sequel/adapters/odbc/oracle.rb +11 -0
  101. data/lib/sequel/adapters/oracle.rb +62 -68
  102. data/lib/sequel/adapters/postgres.rb +257 -311
  103. data/lib/sequel/adapters/postgresql.rb +3 -1
  104. data/lib/sequel/adapters/shared/access.rb +75 -79
  105. data/lib/sequel/adapters/shared/db2.rb +96 -74
  106. data/lib/sequel/adapters/shared/mssql.rb +258 -213
  107. data/lib/sequel/adapters/shared/mysql.rb +284 -216
  108. data/lib/sequel/adapters/shared/oracle.rb +175 -60
  109. data/lib/sequel/adapters/shared/postgres.rb +829 -383
  110. data/lib/sequel/adapters/shared/sqlanywhere.rb +105 -127
  111. data/lib/sequel/adapters/shared/sqlite.rb +382 -159
  112. data/lib/sequel/adapters/sqlanywhere.rb +53 -38
  113. data/lib/sequel/adapters/sqlite.rb +111 -105
  114. data/lib/sequel/adapters/tinytds.rb +38 -46
  115. data/lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb +8 -9
  116. data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +7 -5
  117. data/lib/sequel/adapters/utils/mysql_mysql2.rb +87 -0
  118. data/lib/sequel/adapters/utils/mysql_prepared_statements.rb +56 -0
  119. data/lib/sequel/adapters/utils/replace.rb +3 -4
  120. data/lib/sequel/adapters/utils/split_alter_table.rb +2 -0
  121. data/lib/sequel/adapters/utils/stored_procedures.rb +9 -22
  122. data/lib/sequel/adapters/utils/unmodified_identifiers.rb +28 -0
  123. data/lib/sequel/ast_transformer.rb +13 -89
  124. data/lib/sequel/connection_pool.rb +54 -26
  125. data/lib/sequel/connection_pool/sharded_single.rb +19 -12
  126. data/lib/sequel/connection_pool/sharded_threaded.rb +160 -111
  127. data/lib/sequel/connection_pool/single.rb +21 -12
  128. data/lib/sequel/connection_pool/threaded.rb +137 -119
  129. data/lib/sequel/core.rb +352 -320
  130. data/lib/sequel/database.rb +19 -2
  131. data/lib/sequel/database/connecting.rb +70 -55
  132. data/lib/sequel/database/dataset.rb +15 -5
  133. data/lib/sequel/database/dataset_defaults.rb +20 -102
  134. data/lib/sequel/database/features.rb +20 -4
  135. data/lib/sequel/database/logging.rb +25 -7
  136. data/lib/sequel/database/misc.rb +132 -118
  137. data/lib/sequel/database/query.rb +51 -28
  138. data/lib/sequel/database/schema_generator.rb +188 -75
  139. data/lib/sequel/database/schema_methods.rb +161 -92
  140. data/lib/sequel/database/transactions.rb +260 -58
  141. data/lib/sequel/dataset.rb +28 -12
  142. data/lib/sequel/dataset/actions.rb +354 -170
  143. data/lib/sequel/dataset/dataset_module.rb +46 -0
  144. data/lib/sequel/dataset/features.rb +81 -34
  145. data/lib/sequel/dataset/graph.rb +82 -58
  146. data/lib/sequel/dataset/misc.rb +139 -47
  147. data/lib/sequel/dataset/placeholder_literalizer.rb +66 -26
  148. data/lib/sequel/dataset/prepared_statements.rb +188 -85
  149. data/lib/sequel/dataset/query.rb +428 -214
  150. data/lib/sequel/dataset/sql.rb +446 -339
  151. data/lib/sequel/deprecated.rb +14 -2
  152. data/lib/sequel/exceptions.rb +48 -16
  153. data/lib/sequel/extensions/_model_constraint_validations.rb +16 -0
  154. data/lib/sequel/extensions/_model_pg_row.rb +43 -0
  155. data/lib/sequel/extensions/_pretty_table.rb +10 -9
  156. data/lib/sequel/extensions/any_not_empty.rb +45 -0
  157. data/lib/sequel/extensions/arbitrary_servers.rb +15 -11
  158. data/lib/sequel/extensions/auto_literal_strings.rb +74 -0
  159. data/lib/sequel/extensions/blank.rb +2 -0
  160. data/lib/sequel/extensions/caller_logging.rb +79 -0
  161. data/lib/sequel/extensions/columns_introspection.rb +9 -4
  162. data/lib/sequel/extensions/connection_expiration.rb +99 -0
  163. data/lib/sequel/extensions/connection_validator.rb +26 -13
  164. data/lib/sequel/extensions/constant_sql_override.rb +65 -0
  165. data/lib/sequel/extensions/constraint_validations.rb +93 -38
  166. data/lib/sequel/extensions/core_extensions.rb +45 -53
  167. data/lib/sequel/extensions/core_refinements.rb +44 -46
  168. data/lib/sequel/extensions/current_datetime_timestamp.rb +5 -4
  169. data/lib/sequel/extensions/dataset_source_alias.rb +4 -0
  170. data/lib/sequel/extensions/date_arithmetic.rb +42 -16
  171. data/lib/sequel/extensions/datetime_parse_to_time.rb +37 -0
  172. data/lib/sequel/extensions/duplicate_columns_handler.rb +94 -0
  173. data/lib/sequel/extensions/empty_array_consider_nulls.rb +7 -3
  174. data/lib/sequel/extensions/error_sql.rb +7 -3
  175. data/lib/sequel/extensions/escaped_like.rb +100 -0
  176. data/lib/sequel/extensions/eval_inspect.rb +14 -15
  177. data/lib/sequel/extensions/exclude_or_null.rb +68 -0
  178. data/lib/sequel/extensions/fiber_concurrency.rb +24 -0
  179. data/lib/sequel/extensions/freeze_datasets.rb +3 -0
  180. data/lib/sequel/extensions/from_block.rb +2 -31
  181. data/lib/sequel/extensions/graph_each.rb +19 -6
  182. data/lib/sequel/extensions/identifier_mangling.rb +180 -0
  183. data/lib/sequel/extensions/implicit_subquery.rb +48 -0
  184. data/lib/sequel/extensions/index_caching.rb +109 -0
  185. data/lib/sequel/extensions/inflector.rb +8 -4
  186. data/lib/sequel/extensions/integer64.rb +32 -0
  187. data/lib/sequel/extensions/looser_typecasting.rb +19 -9
  188. data/lib/sequel/extensions/migration.rb +132 -80
  189. data/lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb +4 -0
  190. data/lib/sequel/extensions/named_timezones.rb +88 -23
  191. data/lib/sequel/extensions/no_auto_literal_strings.rb +4 -0
  192. data/lib/sequel/extensions/null_dataset.rb +12 -8
  193. data/lib/sequel/extensions/pagination.rb +35 -28
  194. data/lib/sequel/extensions/pg_array.rb +227 -316
  195. data/lib/sequel/extensions/pg_array_ops.rb +19 -7
  196. data/lib/sequel/extensions/pg_enum.rb +69 -24
  197. data/lib/sequel/extensions/pg_extended_date_support.rb +250 -0
  198. data/lib/sequel/extensions/pg_hstore.rb +50 -59
  199. data/lib/sequel/extensions/pg_hstore_ops.rb +9 -3
  200. data/lib/sequel/extensions/pg_inet.rb +34 -15
  201. data/lib/sequel/extensions/pg_inet_ops.rb +5 -1
  202. data/lib/sequel/extensions/pg_interval.rb +26 -26
  203. data/lib/sequel/extensions/pg_json.rb +422 -141
  204. data/lib/sequel/extensions/pg_json_ops.rb +248 -9
  205. data/lib/sequel/extensions/pg_loose_count.rb +5 -1
  206. data/lib/sequel/extensions/pg_range.rb +162 -146
  207. data/lib/sequel/extensions/pg_range_ops.rb +10 -5
  208. data/lib/sequel/extensions/pg_row.rb +53 -87
  209. data/lib/sequel/extensions/pg_row_ops.rb +36 -13
  210. data/lib/sequel/extensions/pg_static_cache_updater.rb +6 -2
  211. data/lib/sequel/extensions/pg_timestamptz.rb +28 -0
  212. data/lib/sequel/extensions/pretty_table.rb +4 -0
  213. data/lib/sequel/extensions/query.rb +12 -7
  214. data/lib/sequel/extensions/round_timestamps.rb +6 -9
  215. data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
  216. data/lib/sequel/extensions/s.rb +59 -0
  217. data/lib/sequel/extensions/schema_caching.rb +14 -1
  218. data/lib/sequel/extensions/schema_dumper.rb +83 -55
  219. data/lib/sequel/extensions/select_remove.rb +8 -4
  220. data/lib/sequel/extensions/sequel_4_dataset_methods.rb +85 -0
  221. data/lib/sequel/extensions/server_block.rb +50 -17
  222. data/lib/sequel/extensions/server_logging.rb +61 -0
  223. data/lib/sequel/extensions/split_array_nil.rb +8 -4
  224. data/lib/sequel/extensions/sql_comments.rb +96 -0
  225. data/lib/sequel/extensions/sql_expr.rb +4 -1
  226. data/lib/sequel/extensions/string_agg.rb +181 -0
  227. data/lib/sequel/extensions/string_date_time.rb +2 -0
  228. data/lib/sequel/extensions/symbol_aref.rb +53 -0
  229. data/lib/sequel/extensions/symbol_aref_refinement.rb +43 -0
  230. data/lib/sequel/extensions/symbol_as.rb +23 -0
  231. data/lib/sequel/extensions/symbol_as_refinement.rb +37 -0
  232. data/lib/sequel/extensions/synchronize_sql.rb +45 -0
  233. data/lib/sequel/extensions/thread_local_timezones.rb +4 -0
  234. data/lib/sequel/extensions/to_dot.rb +15 -5
  235. data/lib/sequel/extensions/virtual_row_method_block.rb +44 -0
  236. data/lib/sequel/model.rb +36 -126
  237. data/lib/sequel/model/associations.rb +850 -257
  238. data/lib/sequel/model/base.rb +652 -764
  239. data/lib/sequel/model/dataset_module.rb +13 -10
  240. data/lib/sequel/model/default_inflections.rb +3 -1
  241. data/lib/sequel/model/errors.rb +3 -3
  242. data/lib/sequel/model/exceptions.rb +12 -12
  243. data/lib/sequel/model/inflections.rb +8 -19
  244. data/lib/sequel/model/plugins.rb +111 -0
  245. data/lib/sequel/plugins/accessed_columns.rb +2 -0
  246. data/lib/sequel/plugins/active_model.rb +32 -7
  247. data/lib/sequel/plugins/after_initialize.rb +3 -1
  248. data/lib/sequel/plugins/association_dependencies.rb +27 -18
  249. data/lib/sequel/plugins/association_lazy_eager_option.rb +66 -0
  250. data/lib/sequel/plugins/association_multi_add_remove.rb +85 -0
  251. data/lib/sequel/plugins/association_pks.rb +181 -83
  252. data/lib/sequel/plugins/association_proxies.rb +33 -9
  253. data/lib/sequel/plugins/auto_validations.rb +58 -23
  254. data/lib/sequel/plugins/before_after_save.rb +8 -0
  255. data/lib/sequel/plugins/blacklist_security.rb +23 -12
  256. data/lib/sequel/plugins/boolean_readers.rb +9 -6
  257. data/lib/sequel/plugins/boolean_subsets.rb +64 -0
  258. data/lib/sequel/plugins/caching.rb +27 -16
  259. data/lib/sequel/plugins/class_table_inheritance.rb +192 -94
  260. data/lib/sequel/plugins/column_conflicts.rb +18 -3
  261. data/lib/sequel/plugins/column_select.rb +9 -5
  262. data/lib/sequel/plugins/columns_updated.rb +42 -0
  263. data/lib/sequel/plugins/composition.rb +36 -24
  264. data/lib/sequel/plugins/constraint_validations.rb +37 -16
  265. data/lib/sequel/plugins/csv_serializer.rb +58 -35
  266. data/lib/sequel/plugins/dataset_associations.rb +60 -18
  267. data/lib/sequel/plugins/def_dataset_method.rb +90 -0
  268. data/lib/sequel/plugins/defaults_setter.rb +74 -13
  269. data/lib/sequel/plugins/delay_add_association.rb +4 -1
  270. data/lib/sequel/plugins/dirty.rb +65 -24
  271. data/lib/sequel/plugins/eager_each.rb +27 -3
  272. data/lib/sequel/plugins/eager_graph_eager.rb +139 -0
  273. data/lib/sequel/plugins/empty_failure_backtraces.rb +38 -0
  274. data/lib/sequel/plugins/error_splitter.rb +19 -12
  275. data/lib/sequel/plugins/finder.rb +246 -0
  276. data/lib/sequel/plugins/forbid_lazy_load.rb +216 -0
  277. data/lib/sequel/plugins/force_encoding.rb +9 -12
  278. data/lib/sequel/plugins/hook_class_methods.rb +39 -54
  279. data/lib/sequel/plugins/input_transformer.rb +20 -10
  280. data/lib/sequel/plugins/insert_conflict.rb +72 -0
  281. data/lib/sequel/plugins/insert_returning_select.rb +4 -2
  282. data/lib/sequel/plugins/instance_filters.rb +12 -8
  283. data/lib/sequel/plugins/instance_hooks.rb +36 -17
  284. data/lib/sequel/plugins/instance_specific_default.rb +113 -0
  285. data/lib/sequel/plugins/inverted_subsets.rb +24 -13
  286. data/lib/sequel/plugins/json_serializer.rb +123 -47
  287. data/lib/sequel/plugins/lazy_attributes.rb +20 -14
  288. data/lib/sequel/plugins/list.rb +40 -26
  289. data/lib/sequel/plugins/many_through_many.rb +28 -12
  290. data/lib/sequel/plugins/modification_detection.rb +17 -5
  291. data/lib/sequel/plugins/mssql_optimistic_locking.rb +8 -5
  292. data/lib/sequel/plugins/nested_attributes.rb +55 -28
  293. data/lib/sequel/plugins/optimistic_locking.rb +5 -3
  294. data/lib/sequel/plugins/pg_array_associations.rb +52 -18
  295. data/lib/sequel/plugins/pg_auto_constraint_validations.rb +348 -0
  296. data/lib/sequel/plugins/pg_row.rb +7 -51
  297. data/lib/sequel/plugins/prepared_statements.rb +53 -72
  298. data/lib/sequel/plugins/prepared_statements_safe.rb +13 -5
  299. data/lib/sequel/plugins/rcte_tree.rb +43 -63
  300. data/lib/sequel/plugins/serialization.rb +37 -44
  301. data/lib/sequel/plugins/serialization_modification_detection.rb +3 -1
  302. data/lib/sequel/plugins/sharding.rb +17 -10
  303. data/lib/sequel/plugins/single_table_inheritance.rb +62 -28
  304. data/lib/sequel/plugins/singular_table_names.rb +2 -0
  305. data/lib/sequel/plugins/skip_create_refresh.rb +5 -3
  306. data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
  307. data/lib/sequel/plugins/split_values.rb +13 -6
  308. data/lib/sequel/plugins/static_cache.rb +79 -53
  309. data/lib/sequel/plugins/static_cache_cache.rb +53 -0
  310. data/lib/sequel/plugins/string_stripper.rb +5 -3
  311. data/lib/sequel/plugins/subclasses.rb +20 -2
  312. data/lib/sequel/plugins/subset_conditions.rb +48 -0
  313. data/lib/sequel/plugins/table_select.rb +4 -2
  314. data/lib/sequel/plugins/tactical_eager_loading.rb +120 -6
  315. data/lib/sequel/plugins/throw_failures.rb +110 -0
  316. data/lib/sequel/plugins/timestamps.rb +22 -8
  317. data/lib/sequel/plugins/touch.rb +21 -8
  318. data/lib/sequel/plugins/tree.rb +57 -30
  319. data/lib/sequel/plugins/typecast_on_load.rb +14 -4
  320. data/lib/sequel/plugins/unlimited_update.rb +3 -7
  321. data/lib/sequel/plugins/update_or_create.rb +6 -4
  322. data/lib/sequel/plugins/update_primary_key.rb +3 -1
  323. data/lib/sequel/plugins/update_refresh.rb +28 -15
  324. data/lib/sequel/plugins/uuid.rb +70 -0
  325. data/lib/sequel/plugins/validate_associated.rb +20 -0
  326. data/lib/sequel/plugins/validation_class_methods.rb +40 -19
  327. data/lib/sequel/plugins/validation_contexts.rb +49 -0
  328. data/lib/sequel/plugins/validation_helpers.rb +49 -31
  329. data/lib/sequel/plugins/whitelist_security.rb +122 -0
  330. data/lib/sequel/plugins/xml_serializer.rb +31 -30
  331. data/lib/sequel/sql.rb +479 -329
  332. data/lib/sequel/timezones.rb +62 -32
  333. data/lib/sequel/version.rb +10 -3
  334. metadata +177 -477
  335. data/Rakefile +0 -165
  336. data/doc/active_record.rdoc +0 -912
  337. data/doc/release_notes/1.0.txt +0 -38
  338. data/doc/release_notes/1.1.txt +0 -143
  339. data/doc/release_notes/1.3.txt +0 -101
  340. data/doc/release_notes/1.4.0.txt +0 -53
  341. data/doc/release_notes/1.5.0.txt +0 -155
  342. data/doc/release_notes/2.0.0.txt +0 -298
  343. data/doc/release_notes/2.1.0.txt +0 -271
  344. data/doc/release_notes/2.10.0.txt +0 -328
  345. data/doc/release_notes/2.11.0.txt +0 -215
  346. data/doc/release_notes/2.12.0.txt +0 -534
  347. data/doc/release_notes/2.2.0.txt +0 -253
  348. data/doc/release_notes/2.3.0.txt +0 -88
  349. data/doc/release_notes/2.4.0.txt +0 -106
  350. data/doc/release_notes/2.5.0.txt +0 -137
  351. data/doc/release_notes/2.6.0.txt +0 -157
  352. data/doc/release_notes/2.7.0.txt +0 -166
  353. data/doc/release_notes/2.8.0.txt +0 -171
  354. data/doc/release_notes/2.9.0.txt +0 -97
  355. data/doc/release_notes/3.0.0.txt +0 -221
  356. data/doc/release_notes/3.1.0.txt +0 -406
  357. data/doc/release_notes/3.10.0.txt +0 -286
  358. data/doc/release_notes/3.11.0.txt +0 -254
  359. data/doc/release_notes/3.12.0.txt +0 -304
  360. data/doc/release_notes/3.13.0.txt +0 -210
  361. data/doc/release_notes/3.14.0.txt +0 -118
  362. data/doc/release_notes/3.15.0.txt +0 -78
  363. data/doc/release_notes/3.16.0.txt +0 -45
  364. data/doc/release_notes/3.17.0.txt +0 -58
  365. data/doc/release_notes/3.18.0.txt +0 -120
  366. data/doc/release_notes/3.19.0.txt +0 -67
  367. data/doc/release_notes/3.2.0.txt +0 -268
  368. data/doc/release_notes/3.20.0.txt +0 -41
  369. data/doc/release_notes/3.21.0.txt +0 -87
  370. data/doc/release_notes/3.22.0.txt +0 -39
  371. data/doc/release_notes/3.23.0.txt +0 -172
  372. data/doc/release_notes/3.24.0.txt +0 -420
  373. data/doc/release_notes/3.25.0.txt +0 -88
  374. data/doc/release_notes/3.26.0.txt +0 -88
  375. data/doc/release_notes/3.27.0.txt +0 -82
  376. data/doc/release_notes/3.28.0.txt +0 -304
  377. data/doc/release_notes/3.29.0.txt +0 -459
  378. data/doc/release_notes/3.3.0.txt +0 -192
  379. data/doc/release_notes/3.30.0.txt +0 -135
  380. data/doc/release_notes/3.31.0.txt +0 -146
  381. data/doc/release_notes/3.32.0.txt +0 -202
  382. data/doc/release_notes/3.33.0.txt +0 -157
  383. data/doc/release_notes/3.34.0.txt +0 -671
  384. data/doc/release_notes/3.35.0.txt +0 -144
  385. data/doc/release_notes/3.36.0.txt +0 -245
  386. data/doc/release_notes/3.37.0.txt +0 -338
  387. data/doc/release_notes/3.38.0.txt +0 -234
  388. data/doc/release_notes/3.39.0.txt +0 -237
  389. data/doc/release_notes/3.4.0.txt +0 -325
  390. data/doc/release_notes/3.40.0.txt +0 -73
  391. data/doc/release_notes/3.41.0.txt +0 -155
  392. data/doc/release_notes/3.42.0.txt +0 -74
  393. data/doc/release_notes/3.43.0.txt +0 -105
  394. data/doc/release_notes/3.44.0.txt +0 -152
  395. data/doc/release_notes/3.45.0.txt +0 -179
  396. data/doc/release_notes/3.46.0.txt +0 -122
  397. data/doc/release_notes/3.47.0.txt +0 -270
  398. data/doc/release_notes/3.48.0.txt +0 -477
  399. data/doc/release_notes/3.5.0.txt +0 -510
  400. data/doc/release_notes/3.6.0.txt +0 -366
  401. data/doc/release_notes/3.7.0.txt +0 -179
  402. data/doc/release_notes/3.8.0.txt +0 -151
  403. data/doc/release_notes/3.9.0.txt +0 -233
  404. data/doc/release_notes/4.0.0.txt +0 -262
  405. data/doc/release_notes/4.1.0.txt +0 -85
  406. data/doc/release_notes/4.10.0.txt +0 -226
  407. data/doc/release_notes/4.11.0.txt +0 -147
  408. data/doc/release_notes/4.12.0.txt +0 -105
  409. data/doc/release_notes/4.13.0.txt +0 -169
  410. data/doc/release_notes/4.14.0.txt +0 -68
  411. data/doc/release_notes/4.15.0.txt +0 -56
  412. data/doc/release_notes/4.16.0.txt +0 -36
  413. data/doc/release_notes/4.17.0.txt +0 -38
  414. data/doc/release_notes/4.18.0.txt +0 -36
  415. data/doc/release_notes/4.19.0.txt +0 -45
  416. data/doc/release_notes/4.2.0.txt +0 -129
  417. data/doc/release_notes/4.20.0.txt +0 -79
  418. data/doc/release_notes/4.21.0.txt +0 -94
  419. data/doc/release_notes/4.22.0.txt +0 -72
  420. data/doc/release_notes/4.23.0.txt +0 -65
  421. data/doc/release_notes/4.24.0.txt +0 -99
  422. data/doc/release_notes/4.25.0.txt +0 -181
  423. data/doc/release_notes/4.26.0.txt +0 -44
  424. data/doc/release_notes/4.3.0.txt +0 -40
  425. data/doc/release_notes/4.4.0.txt +0 -92
  426. data/doc/release_notes/4.5.0.txt +0 -34
  427. data/doc/release_notes/4.6.0.txt +0 -30
  428. data/doc/release_notes/4.7.0.txt +0 -103
  429. data/doc/release_notes/4.8.0.txt +0 -175
  430. data/doc/release_notes/4.9.0.txt +0 -190
  431. data/lib/sequel/adapters/cubrid.rb +0 -142
  432. data/lib/sequel/adapters/do.rb +0 -156
  433. data/lib/sequel/adapters/do/mysql.rb +0 -64
  434. data/lib/sequel/adapters/do/postgres.rb +0 -42
  435. data/lib/sequel/adapters/do/sqlite3.rb +0 -40
  436. data/lib/sequel/adapters/jdbc/as400.rb +0 -82
  437. data/lib/sequel/adapters/jdbc/cubrid.rb +0 -62
  438. data/lib/sequel/adapters/jdbc/firebirdsql.rb +0 -34
  439. data/lib/sequel/adapters/jdbc/informix-sqli.rb +0 -31
  440. data/lib/sequel/adapters/jdbc/jdbcprogress.rb +0 -31
  441. data/lib/sequel/adapters/odbc/progress.rb +0 -8
  442. data/lib/sequel/adapters/shared/cubrid.rb +0 -243
  443. data/lib/sequel/adapters/shared/firebird.rb +0 -245
  444. data/lib/sequel/adapters/shared/informix.rb +0 -52
  445. data/lib/sequel/adapters/shared/mysql_prepared_statements.rb +0 -150
  446. data/lib/sequel/adapters/shared/progress.rb +0 -38
  447. data/lib/sequel/adapters/swift.rb +0 -158
  448. data/lib/sequel/adapters/swift/mysql.rb +0 -47
  449. data/lib/sequel/adapters/swift/postgres.rb +0 -45
  450. data/lib/sequel/adapters/swift/sqlite.rb +0 -47
  451. data/lib/sequel/adapters/utils/pg_types.rb +0 -68
  452. data/lib/sequel/dataset/mutation.rb +0 -109
  453. data/lib/sequel/extensions/empty_array_ignore_nulls.rb +0 -3
  454. data/lib/sequel/extensions/filter_having.rb +0 -59
  455. data/lib/sequel/extensions/hash_aliases.rb +0 -45
  456. data/lib/sequel/extensions/meta_def.rb +0 -31
  457. data/lib/sequel/extensions/query_literals.rb +0 -80
  458. data/lib/sequel/extensions/ruby18_symbol_extensions.rb +0 -22
  459. data/lib/sequel/extensions/sequel_3_dataset_methods.rb +0 -118
  460. data/lib/sequel/extensions/set_overrides.rb +0 -72
  461. data/lib/sequel/no_core_ext.rb +0 -1
  462. data/lib/sequel/plugins/association_autoreloading.rb +0 -7
  463. data/lib/sequel/plugins/many_to_one_pk_lookup.rb +0 -7
  464. data/lib/sequel/plugins/pg_typecast_on_load.rb +0 -78
  465. data/lib/sequel/plugins/prepared_statements_associations.rb +0 -117
  466. data/lib/sequel/plugins/prepared_statements_with_pk.rb +0 -59
  467. data/lib/sequel/plugins/schema.rb +0 -80
  468. data/lib/sequel/plugins/scissors.rb +0 -33
  469. data/spec/adapters/db2_spec.rb +0 -160
  470. data/spec/adapters/firebird_spec.rb +0 -411
  471. data/spec/adapters/informix_spec.rb +0 -100
  472. data/spec/adapters/mssql_spec.rb +0 -706
  473. data/spec/adapters/mysql_spec.rb +0 -1287
  474. data/spec/adapters/oracle_spec.rb +0 -313
  475. data/spec/adapters/postgres_spec.rb +0 -3725
  476. data/spec/adapters/spec_helper.rb +0 -43
  477. data/spec/adapters/sqlanywhere_spec.rb +0 -170
  478. data/spec/adapters/sqlite_spec.rb +0 -653
  479. data/spec/bin_spec.rb +0 -254
  480. data/spec/core/connection_pool_spec.rb +0 -1016
  481. data/spec/core/database_spec.rb +0 -2531
  482. data/spec/core/dataset_spec.rb +0 -5098
  483. data/spec/core/deprecated_spec.rb +0 -70
  484. data/spec/core/expression_filters_spec.rb +0 -1243
  485. data/spec/core/mock_adapter_spec.rb +0 -462
  486. data/spec/core/object_graph_spec.rb +0 -303
  487. data/spec/core/placeholder_literalizer_spec.rb +0 -163
  488. data/spec/core/schema_generator_spec.rb +0 -179
  489. data/spec/core/schema_spec.rb +0 -1659
  490. data/spec/core/spec_helper.rb +0 -34
  491. data/spec/core/version_spec.rb +0 -7
  492. data/spec/core_extensions_spec.rb +0 -699
  493. data/spec/extensions/accessed_columns_spec.rb +0 -51
  494. data/spec/extensions/active_model_spec.rb +0 -123
  495. data/spec/extensions/after_initialize_spec.rb +0 -24
  496. data/spec/extensions/arbitrary_servers_spec.rb +0 -109
  497. data/spec/extensions/association_dependencies_spec.rb +0 -117
  498. data/spec/extensions/association_pks_spec.rb +0 -365
  499. data/spec/extensions/association_proxies_spec.rb +0 -86
  500. data/spec/extensions/auto_validations_spec.rb +0 -192
  501. data/spec/extensions/blacklist_security_spec.rb +0 -88
  502. data/spec/extensions/blank_spec.rb +0 -69
  503. data/spec/extensions/boolean_readers_spec.rb +0 -93
  504. data/spec/extensions/caching_spec.rb +0 -270
  505. data/spec/extensions/class_table_inheritance_spec.rb +0 -420
  506. data/spec/extensions/column_conflicts_spec.rb +0 -60
  507. data/spec/extensions/column_select_spec.rb +0 -108
  508. data/spec/extensions/columns_introspection_spec.rb +0 -91
  509. data/spec/extensions/composition_spec.rb +0 -242
  510. data/spec/extensions/connection_validator_spec.rb +0 -120
  511. data/spec/extensions/constraint_validations_plugin_spec.rb +0 -274
  512. data/spec/extensions/constraint_validations_spec.rb +0 -325
  513. data/spec/extensions/core_refinements_spec.rb +0 -519
  514. data/spec/extensions/csv_serializer_spec.rb +0 -173
  515. data/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
  516. data/spec/extensions/dataset_associations_spec.rb +0 -311
  517. data/spec/extensions/dataset_source_alias_spec.rb +0 -51
  518. data/spec/extensions/date_arithmetic_spec.rb +0 -150
  519. data/spec/extensions/defaults_setter_spec.rb +0 -101
  520. data/spec/extensions/delay_add_association_spec.rb +0 -52
  521. data/spec/extensions/dirty_spec.rb +0 -180
  522. data/spec/extensions/eager_each_spec.rb +0 -42
  523. data/spec/extensions/empty_array_consider_nulls_spec.rb +0 -24
  524. data/spec/extensions/error_splitter_spec.rb +0 -18
  525. data/spec/extensions/error_sql_spec.rb +0 -20
  526. data/spec/extensions/eval_inspect_spec.rb +0 -73
  527. data/spec/extensions/filter_having_spec.rb +0 -40
  528. data/spec/extensions/force_encoding_spec.rb +0 -114
  529. data/spec/extensions/from_block_spec.rb +0 -21
  530. data/spec/extensions/graph_each_spec.rb +0 -109
  531. data/spec/extensions/hash_aliases_spec.rb +0 -24
  532. data/spec/extensions/hook_class_methods_spec.rb +0 -429
  533. data/spec/extensions/inflector_spec.rb +0 -183
  534. data/spec/extensions/input_transformer_spec.rb +0 -54
  535. data/spec/extensions/insert_returning_select_spec.rb +0 -46
  536. data/spec/extensions/instance_filters_spec.rb +0 -79
  537. data/spec/extensions/instance_hooks_spec.rb +0 -276
  538. data/spec/extensions/inverted_subsets_spec.rb +0 -33
  539. data/spec/extensions/json_serializer_spec.rb +0 -291
  540. data/spec/extensions/lazy_attributes_spec.rb +0 -170
  541. data/spec/extensions/list_spec.rb +0 -267
  542. data/spec/extensions/looser_typecasting_spec.rb +0 -43
  543. data/spec/extensions/many_through_many_spec.rb +0 -2172
  544. data/spec/extensions/meta_def_spec.rb +0 -21
  545. data/spec/extensions/migration_spec.rb +0 -712
  546. data/spec/extensions/modification_detection_spec.rb +0 -80
  547. data/spec/extensions/mssql_optimistic_locking_spec.rb +0 -91
  548. data/spec/extensions/named_timezones_spec.rb +0 -108
  549. data/spec/extensions/nested_attributes_spec.rb +0 -697
  550. data/spec/extensions/null_dataset_spec.rb +0 -85
  551. data/spec/extensions/optimistic_locking_spec.rb +0 -128
  552. data/spec/extensions/pagination_spec.rb +0 -118
  553. data/spec/extensions/pg_array_associations_spec.rb +0 -736
  554. data/spec/extensions/pg_array_ops_spec.rb +0 -143
  555. data/spec/extensions/pg_array_spec.rb +0 -395
  556. data/spec/extensions/pg_enum_spec.rb +0 -92
  557. data/spec/extensions/pg_hstore_ops_spec.rb +0 -236
  558. data/spec/extensions/pg_hstore_spec.rb +0 -206
  559. data/spec/extensions/pg_inet_ops_spec.rb +0 -101
  560. data/spec/extensions/pg_inet_spec.rb +0 -52
  561. data/spec/extensions/pg_interval_spec.rb +0 -76
  562. data/spec/extensions/pg_json_ops_spec.rb +0 -229
  563. data/spec/extensions/pg_json_spec.rb +0 -218
  564. data/spec/extensions/pg_loose_count_spec.rb +0 -17
  565. data/spec/extensions/pg_range_ops_spec.rb +0 -58
  566. data/spec/extensions/pg_range_spec.rb +0 -404
  567. data/spec/extensions/pg_row_ops_spec.rb +0 -60
  568. data/spec/extensions/pg_row_plugin_spec.rb +0 -62
  569. data/spec/extensions/pg_row_spec.rb +0 -360
  570. data/spec/extensions/pg_static_cache_updater_spec.rb +0 -92
  571. data/spec/extensions/pg_typecast_on_load_spec.rb +0 -63
  572. data/spec/extensions/prepared_statements_associations_spec.rb +0 -159
  573. data/spec/extensions/prepared_statements_safe_spec.rb +0 -61
  574. data/spec/extensions/prepared_statements_spec.rb +0 -103
  575. data/spec/extensions/prepared_statements_with_pk_spec.rb +0 -31
  576. data/spec/extensions/pretty_table_spec.rb +0 -92
  577. data/spec/extensions/query_literals_spec.rb +0 -183
  578. data/spec/extensions/query_spec.rb +0 -102
  579. data/spec/extensions/rcte_tree_spec.rb +0 -392
  580. data/spec/extensions/round_timestamps_spec.rb +0 -43
  581. data/spec/extensions/schema_caching_spec.rb +0 -41
  582. data/spec/extensions/schema_dumper_spec.rb +0 -789
  583. data/spec/extensions/schema_spec.rb +0 -117
  584. data/spec/extensions/scissors_spec.rb +0 -26
  585. data/spec/extensions/select_remove_spec.rb +0 -38
  586. data/spec/extensions/sequel_3_dataset_methods_spec.rb +0 -101
  587. data/spec/extensions/serialization_modification_detection_spec.rb +0 -98
  588. data/spec/extensions/serialization_spec.rb +0 -362
  589. data/spec/extensions/server_block_spec.rb +0 -90
  590. data/spec/extensions/set_overrides_spec.rb +0 -61
  591. data/spec/extensions/sharding_spec.rb +0 -198
  592. data/spec/extensions/shared_caching_spec.rb +0 -175
  593. data/spec/extensions/single_table_inheritance_spec.rb +0 -297
  594. data/spec/extensions/singular_table_names_spec.rb +0 -22
  595. data/spec/extensions/skip_create_refresh_spec.rb +0 -17
  596. data/spec/extensions/spec_helper.rb +0 -71
  597. data/spec/extensions/split_array_nil_spec.rb +0 -24
  598. data/spec/extensions/split_values_spec.rb +0 -22
  599. data/spec/extensions/sql_expr_spec.rb +0 -60
  600. data/spec/extensions/static_cache_spec.rb +0 -361
  601. data/spec/extensions/string_date_time_spec.rb +0 -95
  602. data/spec/extensions/string_stripper_spec.rb +0 -68
  603. data/spec/extensions/subclasses_spec.rb +0 -66
  604. data/spec/extensions/table_select_spec.rb +0 -71
  605. data/spec/extensions/tactical_eager_loading_spec.rb +0 -82
  606. data/spec/extensions/thread_local_timezones_spec.rb +0 -67
  607. data/spec/extensions/timestamps_spec.rb +0 -175
  608. data/spec/extensions/to_dot_spec.rb +0 -154
  609. data/spec/extensions/touch_spec.rb +0 -203
  610. data/spec/extensions/tree_spec.rb +0 -274
  611. data/spec/extensions/typecast_on_load_spec.rb +0 -80
  612. data/spec/extensions/unlimited_update_spec.rb +0 -20
  613. data/spec/extensions/update_or_create_spec.rb +0 -87
  614. data/spec/extensions/update_primary_key_spec.rb +0 -100
  615. data/spec/extensions/update_refresh_spec.rb +0 -53
  616. data/spec/extensions/validate_associated_spec.rb +0 -52
  617. data/spec/extensions/validation_class_methods_spec.rb +0 -1027
  618. data/spec/extensions/validation_helpers_spec.rb +0 -541
  619. data/spec/extensions/xml_serializer_spec.rb +0 -207
  620. data/spec/files/bad_down_migration/001_create_alt_basic.rb +0 -4
  621. data/spec/files/bad_down_migration/002_create_alt_advanced.rb +0 -4
  622. data/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  623. data/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  624. data/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +0 -3
  625. data/spec/files/bad_up_migration/001_create_alt_basic.rb +0 -4
  626. data/spec/files/bad_up_migration/002_create_alt_advanced.rb +0 -3
  627. data/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +0 -9
  628. data/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +0 -9
  629. data/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +0 -4
  630. data/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +0 -9
  631. data/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +0 -9
  632. data/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +0 -4
  633. data/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +0 -4
  634. data/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  635. data/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +0 -9
  636. data/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +0 -4
  637. data/spec/files/integer_migrations/001_create_sessions.rb +0 -9
  638. data/spec/files/integer_migrations/002_create_nodes.rb +0 -9
  639. data/spec/files/integer_migrations/003_3_create_users.rb +0 -4
  640. data/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  641. data/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +0 -9
  642. data/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  643. data/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +0 -9
  644. data/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  645. data/spec/files/missing_integer_migrations/001_create_alt_basic.rb +0 -4
  646. data/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +0 -4
  647. data/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  648. data/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  649. data/spec/files/reversible_migrations/001_reversible.rb +0 -5
  650. data/spec/files/reversible_migrations/002_reversible.rb +0 -5
  651. data/spec/files/reversible_migrations/003_reversible.rb +0 -5
  652. data/spec/files/reversible_migrations/004_reversible.rb +0 -5
  653. data/spec/files/reversible_migrations/005_reversible.rb +0 -10
  654. data/spec/files/timestamped_migrations/1273253849_create_sessions.rb +0 -9
  655. data/spec/files/timestamped_migrations/1273253851_create_nodes.rb +0 -9
  656. data/spec/files/timestamped_migrations/1273253853_3_create_users.rb +0 -4
  657. data/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +0 -4
  658. data/spec/files/transaction_specified_migrations/002_create_basic.rb +0 -4
  659. data/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +0 -3
  660. data/spec/files/transaction_unspecified_migrations/002_create_basic.rb +0 -3
  661. data/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +0 -9
  662. data/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +0 -9
  663. data/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +0 -4
  664. data/spec/guards_helper.rb +0 -55
  665. data/spec/integration/associations_test.rb +0 -2454
  666. data/spec/integration/database_test.rb +0 -113
  667. data/spec/integration/dataset_test.rb +0 -1808
  668. data/spec/integration/eager_loader_test.rb +0 -687
  669. data/spec/integration/migrator_test.rb +0 -240
  670. data/spec/integration/model_test.rb +0 -226
  671. data/spec/integration/plugin_test.rb +0 -2240
  672. data/spec/integration/prepared_statement_test.rb +0 -467
  673. data/spec/integration/schema_test.rb +0 -817
  674. data/spec/integration/spec_helper.rb +0 -48
  675. data/spec/integration/timezone_test.rb +0 -86
  676. data/spec/integration/transaction_test.rb +0 -374
  677. data/spec/integration/type_test.rb +0 -133
  678. data/spec/model/association_reflection_spec.rb +0 -525
  679. data/spec/model/associations_spec.rb +0 -4426
  680. data/spec/model/base_spec.rb +0 -759
  681. data/spec/model/class_dataset_methods_spec.rb +0 -146
  682. data/spec/model/dataset_methods_spec.rb +0 -149
  683. data/spec/model/eager_loading_spec.rb +0 -2137
  684. data/spec/model/hooks_spec.rb +0 -604
  685. data/spec/model/inflector_spec.rb +0 -26
  686. data/spec/model/model_spec.rb +0 -982
  687. data/spec/model/plugins_spec.rb +0 -299
  688. data/spec/model/record_spec.rb +0 -2147
  689. data/spec/model/spec_helper.rb +0 -46
  690. data/spec/model/validations_spec.rb +0 -193
  691. data/spec/sequel_coverage.rb +0 -15
  692. data/spec/spec_config.rb +0 -10
@@ -1,151 +0,0 @@
1
- New Features
2
- ------------
3
-
4
- * Dataset#each_server was added, allowing you to run the same query
5
- (most likely insert/update/delete) on all shards. This is useful
6
- if you have a sharded database but have lookup tables that should
7
- be identical on all shards. It works by yielding copies of the
8
- current dataset that are tied to each server/shard:
9
-
10
- DB[:table].filter(:id=>1).each_server do |ds|
11
- ds.update(:name=>'foo')
12
- end
13
-
14
- * Database#each_server was added, allowing you to run schema
15
- modification methods on all shards. It works by yielding a
16
- new Sequel::Database object for each shard, that will connect to
17
- only that shard:
18
-
19
- DB.each_server do |db|
20
- db.create_table(:t){Integer :num}
21
- end
22
-
23
- * You can now add and remove servers/shards from the connection
24
- pool while Sequel is running:
25
-
26
- DB.add_servers(:shard1=>{:host=>'s1'}, :shard2=>{:host=>'s2'})
27
- DB.remove_servers(:shard1, :shard2)
28
-
29
- * When you attempt to disconnect from a server that has connections
30
- currently in use, Sequel will now schedule those connections to
31
- be disconnected when they are returned to the pool. Previously,
32
- Sequel disconnected available connections, but ignored connections
33
- currently in use, so it wasn't possible to guarantee complete
34
- disconnection from the server. Even with this new feature, you can
35
- only guarantee eventual disconnection, since disconnection of
36
- connections in use happens asynchronously.
37
-
38
- * Database#disconnect now accepts a :servers option specifying the
39
- server(s) from which to disconnect. This should be a symbol or
40
- array of symbols representing servers/shards. Only those specified
41
- will be disconnected:
42
-
43
- DB.disconnect(:servers=>[:shard1, :shard2])
44
-
45
- * A validates_type validation was added to the validation_helpers
46
- plugin. It allows you to check that a given column contains
47
- the correct type. I can be helpful if you are also using the
48
- serialization plugin to store serialized ruby objects, by making
49
- sure that the objects are of the correct type (e.g. Hash):
50
-
51
- def validate
52
- validates_type(Hash, :options)
53
- end
54
-
55
- * Sequel::SQL::Expression#== is now supported for all expressions:
56
-
57
- :column.qualify(:table).cast(:type) == \
58
- :column.qualify(:table).cast(:type)
59
- # => true
60
- :column.qualify(:table).cast(:type) == \
61
- :other_column.qualify(:table).cast(:type)
62
- # => false
63
-
64
- * When using the generic File type to create blob columns on
65
- MySQL, you can specify the specific database type by using the
66
- :size option (with :tiny, :medium, and :long values recognized):
67
-
68
- DB.create_table(:docs){File :body, :size=>:long} # longblob
69
-
70
- * The mysql adapter will now default to using mysqlplus, falling
71
- back to use mysql. mysqlplus is significantly better for threaded
72
- code because queries do not block the entire interpreter.
73
-
74
- * The JDBC adapter is now able to detect certain types of disconnect
75
- errors.
76
-
77
- * ConnectionPool.servers and Database.servers were added, which
78
- return an array of symbols specifying the servers/shards in use.
79
-
80
- Other Improvements
81
- ------------------
82
-
83
- * The single-threaded connection pool now raises
84
- DatabaseConnectionErrors if unable to connect, so it now operates
85
- more similarly to the default connection pool.
86
-
87
- * The single-threaded connection pool now operates more similar
88
- to the default connection pool when given a nonexistent server.
89
-
90
- * PGErrors are now correctly converted to DatabaseErrors in the
91
- postgres adapter when preparing statements or executing prepared
92
- statements.
93
-
94
- * DatabaseDisconnectErrors are now raised correctly in the postgres
95
- adapter if the connection status is not OK after a query raises an
96
- error.
97
-
98
- * In the mysql adapter, multiple statements in a single query should
99
- now be handled correctly in the all cases, not just when using
100
- Dataset#each. So you can now submit multiple queries in a single
101
- string to Database#run.
102
-
103
- * Model object creation on Microsoft SQL Server 2000 once again
104
- works correctly. Previously, an optimization was used that was
105
- only supported on 2005+.
106
-
107
- * Backslashes are no longer doubled inside string literals when
108
- connecting to Microsoft SQL Server.
109
-
110
- * The ORDER clause now correctly comes after the HAVING clause on
111
- Microsoft SQL Server.
112
-
113
- * Sequel now checks that there is an active transaction before
114
- rolling back transactions on Microsoft SQL Server, since
115
- there are cases where Microsoft SQL Server will roll back
116
- transactions implicitly.
117
-
118
- * Blobs are now handled correctly when connecting to H2.
119
-
120
- * 64-bit integers are now handled correctly in JDBC prepared
121
- statements.
122
-
123
- * In the boolean_readers plugin, correctly handle columns not in
124
- the db_schema, and don't raise an error if the model's columns
125
- can't be determined.
126
-
127
- * In the identity_map plugin, remove instances from the cache if they
128
- are deleted or destroyed.
129
-
130
- Backwards Compatibility
131
- -----------------------
132
-
133
- * Dataset::FROM_SELF_KEEP_OPTS was merged into
134
- Dataset::NON_SQL_OPTIONS. While used in different places, they
135
- were used for the same purpose, and entries missing from one should
136
- have been included in the other.
137
-
138
- * The connection pool internals changed substantially. Now,
139
- ConnectionPool #allocated and #available_connections will return
140
- nil instead of an array or hash if they are called with a
141
- nonexistent server. These are generally only used internally,
142
- though they are part of the public API. #created_count and #size
143
- still return the size of the :default server when called with a
144
- nonexistent server, though.
145
-
146
- * The meta_eval and metaclass private methods were removed from
147
- Sequel::MetaProgramming (only the meta_def public method remains).
148
- If you want these methods, use the metaid gem.
149
-
150
- * The irregular ox->oxen pluralization rule was removed from the
151
- default inflections, as it screws up the more common box->boxes.
@@ -1,233 +0,0 @@
1
- New Features
2
- ------------
3
-
4
- * The ConnectionPool classes were refactored from 2 separate
5
- classes to a 5 class hierarchy, with one main class and 4
6
- subclasses, one for each combination of sharding and threading.
7
-
8
- The primary reason for this refactoring is to make it so that
9
- the user doesn't have to pay a performance penalty for sharding
10
- if they aren't using it. A connection pool that supports sharding
11
- is automatically used if the :servers option is used when setting
12
- up the database connection.
13
-
14
- In addition, the default connection pool no longer contains
15
- the code to schedule future disconnections of currently allocated
16
- connections. The sharded connection pool must be used if that
17
- feature is desired.
18
-
19
- The unsharded connection pools are about 25-30% faster than the
20
- sharded versions.
21
-
22
- * An optimistic_locking plugin was added to Sequel::Model. This
23
- plugin implements a simple database-independent locking mechanism
24
- to ensure that concurrent updates do not override changes:
25
-
26
- class Person < Sequel::Model
27
- plugin :optimistic_locking
28
- end
29
- p1 = Person[1]
30
- p2 = Person[1]
31
- # works
32
- p1.update(:name=>'Jim')
33
- # raises Sequel::Plugins::OptimisticLocking::Error
34
- p2.update(:name=>'Bob')
35
-
36
- In order for this plugin to work, you need to make sure that the
37
- database table has a lock_version column (or other column you name
38
- via the lock_column class level accessor) that defaults to 0.
39
-
40
- The optimistic_locking plugin does not work with the
41
- class_table_inheritance plugin.
42
-
43
- * Dataset#unused_table_alias was added, which takes a symbol and
44
- returns either that symbol or a new symbol which can be used as
45
- a table alias when joining a table to the dataset. The symbol
46
- returned is guaranteed to not already be used by the dataset:
47
-
48
- DB[:test].unused_table_alias(:blah) # => :blah
49
- DB[:test].unused_table_alias(:test) # => :test_0
50
-
51
- The use case is when you need to join a table to a dataset, where
52
- the table may already be used inside the dataset, and you want
53
- to generate a unique alias:
54
-
55
- ds.join(:table.as(ds.unused_table_alias(:table)), ...)
56
-
57
- * The Sequel::ValidationFailed exception now has an errors accessor
58
- which returns the Sequel::Model::Errors instance with the
59
- validation errors. This can be helpful in situations where a
60
- generalized rescue is done where the model object reference is
61
- not available.
62
-
63
- * bin/sequel now works without an argument, which is useful for
64
- testing SQL generation (and not much else).
65
-
66
- * Support SELECT ... INTO in the MSSQL adapter, using Dataset#into,
67
- which takes a table argument.
68
-
69
- * You can now provide your own connection pool class via the
70
- :pool_class option when instantiating the database.
71
-
72
- Other Improvements
73
- ------------------
74
-
75
- * IN/NOT IN constructs with an empty array are now handled properly.
76
-
77
- DB[:table].filter(:id=>[]) # IN
78
- DB[:table].exclude(:id=>[]) # NOT IN
79
-
80
- Before, the IN construct would mostly work, other than some minor
81
- differences in NULL semantics. However, the NOT IN construct
82
- would not work. Sequel now handles the NOT IN case using an
83
- expression that evaluates to true.
84
-
85
- * If using an IN/NOT IN construct with multiple columns and a dataset
86
- argument, where multiple column IN/NOT IN support is emulated, a
87
- separate query is done to get the records, which is then handled
88
- like an array of values. This means that the following type of
89
- query now works on all tested databases:
90
-
91
- DB[:table1].filter([:id1, :id2]=>DB[:table2].select(:id1, :id2))
92
-
93
- * Schemas and aliases are now handled correctly when eager graphing.
94
-
95
- * Implicitly qualified symbols are now handled correctly in update
96
- statements, useful if you are updating a joined dataset and need
97
- to reference a column that appears in multiple tables.
98
-
99
- * The active_model plugin has been brought up to date with
100
- activemodel 3.0 beta (though it doesn't work on edge).
101
- Additionally, the active_model plugin now requires active_model
102
- in order to use ActiveModel::Naming.
103
-
104
- * In the schema_dumper extension, always include the varchar limit,
105
- even if it is 255 columns (the default). This makes it so that
106
- PostgreSQL will use a varchar(255) column instead of a text column
107
- when restoring a schema dump of a varchar(255) column from another
108
- database.
109
-
110
- * You can now load adapters from outside the Sequel lib directory,
111
- now they just need to be in a sequel/adapters directory somewhere
112
- in the LOAD_PATH.
113
-
114
- * You can now load extensions from outside the Sequel lib directory
115
- using Sequel.extension. External extensions need to be in a
116
- sequel/extensions directory somewhere in the LOAD_PATH.
117
-
118
- * Using bound variables for limit and offset in prepared statements
119
- now works correctly.
120
-
121
- * Performance of prepared statements was improved in the native
122
- SQLite adapter.
123
-
124
- * The schema_dumper extension now passes the options hash from
125
- dump_*_migration to Database#tables.
126
-
127
- * In the single_table_inheritance plugin, qualify the sti_key column
128
- with the table name, so that subclass datasets can safely be joined
129
- to other tables having the same column name.
130
-
131
- * In the single_table_inheritance plugin, handle case where the
132
- sti_key value is nil or '' specially, so that those cases
133
- always return an instance of the main model class. This fixes
134
- issues if constantize(nil) returns Object instead of raising
135
- an exception.
136
-
137
- * No longer use Date#to_s for literalization, always use ISO8601
138
- format for dates.
139
-
140
- * A couple lambdas which were instance_evaled were changed to procs
141
- for ruby 1.9.2 compatibility.
142
-
143
- * MSSQL emulated offset support was simplified to only use one
144
- subquery, and made to work correctly on ruby 1.9.
145
-
146
- * Emulate multiple column IN/NOT IN on H2, since it doesn't handle
147
- all cases correctly.
148
-
149
- * ODBC timestamps are now handled correctly if the database_timezone
150
- is nil.
151
-
152
- * ArgumentErrors raised when running queries in the ODBC adapter are
153
- now raised as DatabaseErrors.
154
-
155
- * Attempting to use DISTINCT ON on SQLite now raises an error before
156
- sending the query to the database.
157
-
158
- * The options hash passed to the database connection method is no
159
- longer modified. However, there may be additional options
160
- present in Database#opts that weren't specified by the options
161
- hash passed to the database connection method.
162
-
163
- * Make Dataset#add_graph_aliases handle the case where the dataset
164
- has not yet been graphed.
165
-
166
- * You can now provide an SQL::Identifier as a 4th argument to
167
- Dataset#join_table, and unsupported arguments are caught and an
168
- exception is raised.
169
-
170
- * The gem specification has been moved out of the Rakefile, so
171
- that the gem can now be built without rake, and works well with
172
- gem build and bundler.
173
-
174
- * The Rakefile no longer assumes the current directory is in the
175
- $LOAD_PATH, so it should work correctly on ruby 1.9.2.
176
-
177
- * All internal uses of require are now thread safe.
178
-
179
- * Empty query parameter keys in connection strings are now ignored
180
- instead of raising an exception.
181
-
182
- * The specs were changed so that you can run them in parallel.
183
- Previously there was a race condition in the migration extension
184
- specs.
185
-
186
- Backwards Compatibility
187
- -----------------------
188
-
189
- * If you plan on using sharding at any point, you now must pass
190
- a :servers option when connecting to the database, even if it is
191
- an empty hash. You can no longer just call Database#add_servers
192
- later.
193
-
194
- * The connection_proc and disconnection_proc accessors were removed
195
- from the connection pools, so you can no longer modify the procs
196
- after the connection pool has been instantiated. You must now
197
- provide the connection_proc as the block argument when
198
- instantiating the pool, and the disconnection_proc via the
199
- :disconnection_proc option.
200
-
201
- * In the hash passed to Dataset#update, symbol keys with a double
202
- embedded underscore are now considerated as implicit qualifiers,
203
- instead of being used verbatim. If you have a column that includes
204
- a double underscore, you now need to wrap it in an SQL::Identifier
205
- or use a String instead.
206
-
207
- * The connection pools no longer convert non-StandardError based
208
- exceptions to RuntimeErrors. Previously, all of the common adapters
209
- turned this feature off, so there is no change for most users.
210
-
211
- * Sequel::ConnectionPool is now considered an abstract class and
212
- should not be instantiated directly. Use ConnectionPool.get_pool
213
- to return an instance of the appropriate subclass.
214
-
215
- * The Sequel::SingleThreadedPool constant is no longer defined.
216
-
217
- * The private Dataset#eager_unique_table_alias method was removed,
218
- use the new public Dataset#unused_table_alias method instead, which
219
- has a slightly different API.
220
-
221
- * The private Dataset#eager_graph_qualify_order method was removed,
222
- used Dataset#qualified_expression instead.
223
-
224
- * The private Sequel::Model class methods plugin_gem_location and
225
- plugin_gem_location_old have been removed.
226
-
227
- * Gems built with the rake tasks now show up in the root directory
228
- instead of the pkg subdirectory, and no tarball package is created.
229
-
230
- Other News
231
- ----------
232
-
233
- * Sequel now has an official blog at http://sequel.jeremyevans.net/blog.html.
@@ -1,262 +0,0 @@
1
- = Backwards Compatibility
2
-
3
- * All behavior resulting in deprecation messages in 3.48.0 has been
4
- removed or modified. If you plan on upgrading to Sequel 4.0.0 and
5
- have not yet upgraded to 3.48.0, upgrade to 3.48.0 first, fix code
6
- that results in deprecation warnings, and then upgrade to 4.0.0.
7
-
8
- * The threaded connection pools now default to
9
- :connection_handling=>:queue. You can manually set
10
- :connection_handling=>:stack to get the previous behavior.
11
-
12
- * Model.raise_on_typecast_failure now defaults to false. Set this to
13
- true to get the previous behavior of raising typecast errors in the
14
- setter methods.
15
-
16
- * Model#save no longer calls Model#_refresh or Model#set_values
17
- internally after an insert. Manual refreshes are now treated
18
- differently than after creation refreshes.
19
-
20
- * On SQLite, integer_booleans now defaults to true. Set this to
21
- false to get the previous behavior of 't' for true and 'f' for
22
- false. Sequel will not automatically upgrade your data, users
23
- are responsible for doing that if they want to switch the
24
- integer_booleans setting. Note that regardless of the setting,
25
- Sequel will return the correct ruby values when retrieving the
26
- rows.
27
-
28
- Example Code to Migrate Existing Data:
29
-
30
- DB[:table].where(:column=>'t').update(:column=>1)
31
- DB[:table].where(:column=>'f').update(:column=>0)
32
-
33
- * On SQLite, use_timestamp_timezones is now false by default. Set
34
- this to true to get the previous behavior with timezone information
35
- in timestamps. Sequel will not automatically upgrade your data,
36
- users are responsible for doing that if they want to switch the
37
- use_timestamp_timezones setting. Note that regardless of the
38
- setting, Sequel will return the correct ruby values when
39
- retrieving the rows.
40
-
41
- * Using window functions when eagerly loading associations with
42
- limits or offsets is now done automatically if the database
43
- supports it. Previously, this had to be enabled manually. If
44
- you would like to disable this optimization and just do the
45
- slicing in ruby, set default_eager_limit_strategy = nil.
46
-
47
- * The default value for most option hash arguments is now an shared
48
- empty frozen hash. If you are overriding methods and modifying
49
- option hashes, fix your code.
50
-
51
- * The defaults_setter plugin now works in a lazy manner instead of
52
- an eager manner. So calling the related method returns the
53
- default value if there is no value stored, but Sequel does not
54
- add the default values to the internal values hash, and will not
55
- attempt to insert what it thinks is the default value when
56
- saving the new object.
57
-
58
- * Model#set_all and #update_all now allow setting the primary key
59
- columns.
60
-
61
- * The many_to_one_pk_lookup and association_autoreloading plugins
62
- are now integrated into the default associations support.
63
-
64
- * Plugins now extend the class with ClassMethods before including
65
- InstanceMethods in the class.
66
-
67
- * Dataset#get, #select_map, and #select_order_map now automatically
68
- add aliases for unaliased expressions if given a single expression.
69
-
70
- * Database#tables and #views on PostgreSQL now check against
71
- the current schemas in the search path.
72
-
73
- * Calling ungraphed on an eager_graph dataset will restore the
74
- row_proc for that dataset. This is not backwards compatible if
75
- your method chain does:
76
-
77
- dataset.eager_graph.naked.ungraphed
78
-
79
- Switch such code to:
80
-
81
- dataset.eager_graph.ungraphed.naked
82
-
83
- * The Model#set_restricted and #update_restricted private methods
84
- have a slightly different API now.
85
-
86
- * Sequel::SQL::SQLArray alias for ValueList has been removed.
87
-
88
- * Sequel::SQL::NoBooleanInputMethods has been removed.
89
-
90
- * Sequel::NotImplemented has been removed. Default implementations
91
- of methods that used to raise this exception have been removed.
92
-
93
- * Sequel::Model::EMPTY_INSTANCE_VARIABLES has been removed.
94
-
95
- * The Sequel::Postgres::DatabaseMethods::EXCLUDE_SCHEMAS and
96
- SYSTEM_TABLE_REGEXP constants have been removed.
97
-
98
- * Dataset#columns_without_introspection has been removed from the
99
- columns_introspection extension.
100
-
101
- * Sequel no longer provides a default database for the adapter or
102
- integration specs. Additionally, if you are using spec_config.rb
103
- to configure a database to use when adapter/integration testing,
104
- you may need to modify it, as Sequel now uses the DB constant for
105
- the database being tested.
106
-
107
- * The SEQUEL_MSSQL_SPEC_REQUIRE and SEQUEL_DB2_SPEC_REQUIRE
108
- environment variables are no longer respected when
109
- adapter/integration testing those databases. Use RUBYOPT with the
110
- -r flag.
111
-
112
- * In the 3.48.0 release notes, it was announced that
113
- Dataset#join_table would default to :qualify=>:deep in 4.0.0. This
114
- change was made but reverted before the release of 4.0.0 as it was
115
- determined too likely to break existing code, there was no
116
- deprecation warning (since it just changed a setting), and the
117
- benefit was minimal. You can make deep qualification the default by
118
- by overriding Dataset#default_join_table_qualification.
119
-
120
- = New Features
121
-
122
- * A pg_array_associations plugin has been added, for creating
123
- an association based on a PostgreSQL array column containing
124
- foreign keys. Example:
125
-
126
- # Database schema:
127
- # tags albums
128
- # :id (int4) <--\ :id
129
- # :name \-- :tag_ids (int4[])
130
- # :name
131
-
132
- class Album
133
- plugin :pg_array_associations
134
- pg_array_to_many :tags
135
- end
136
- class Tag
137
- plugin :pg_array_associations
138
- many_to_pg_array :albums
139
- end
140
-
141
- This operates similarly to a many_to_many association, but does not
142
- require a join table. All of the usual Sequel association features
143
- are supported, such as adding, removing, and clearing associations,
144
- eager loading via eager and eager_graph, filtering by associations,
145
- and dataset associations.
146
-
147
- Note that until PostgreSQL gains the ability to enforce foreign key
148
- constraints in array columns, this plugin is not recommended for
149
- production use unless you plan on emulating referential integrity
150
- constraints via triggers.
151
-
152
- * Dataset#from now accepts virtual_row blocks, making it easy to use
153
- with table returning functions:
154
-
155
- DB.from{table_returning_function(arg)}
156
-
157
- * Sequel.deep_qualify has been added, for easily doing a deep
158
- qualification of objects:
159
-
160
- Sequel.deep_qualify(:table, Sequel.+(:column, 1))
161
- # ("table"."column" + 1)
162
- Sequel.deep_qualify(:table, Sequel.like(:a, 'b'))
163
- # ("table"."a" LIKE 'b' ESCAPE '\')
164
-
165
- * The prepared_statements_associations plugin now handles one_to_one
166
- associations.
167
-
168
- * SQL::Subscript objects now handle ruby range arguments, operating as
169
- an SQL array slice:
170
-
171
- Sequel.subscript(:a, 1..2) # a[1:2]
172
-
173
- * Database#create_view now accepts a :columns option to provide
174
- explicit column names for the view.
175
-
176
- * Postgres::ArrayOp#[] now returns an ArrayOp if given a range, since
177
- a PostgreSQL array slice can be treated as an array.
178
-
179
- * Postgres::ArrayOp#hstore has been added for creating hstores from
180
- PostgreSQL arrays.
181
-
182
- * When creating full text indexes on PostgreSQL, the :index_type=>:gist
183
- option can be used to use a gist index instead of the default gin
184
- index. This can be useful if insert/update speed is more important
185
- than lookup speed.
186
-
187
- * You can now provide the :owner option to Database#create_schema on
188
- PostgreSQL to specify the owner of the schema.
189
-
190
- * You can now provide the :if_exists option to Database#drop_view
191
- on PostgreSQL to not raise an error if the view doesn't exist.
192
-
193
- * The pg_json extension now handles non-JSON plain strings, integers
194
- and floats in PostgreSQL JSON columns.
195
-
196
- = Support for New Features in PostgreSQL 9.3
197
-
198
- * A pg_json_ops extension has been added to support the new json
199
- operators and functions.
200
-
201
- * Postgres::ArrayOp#replace and #remove have been added for using the
202
- array_replace and array_remove functions.
203
-
204
- * You can now provide the :if_not_exists option when using
205
- Database#create_schema on PostgreSQL to not raise an error if the
206
- schema already exists.
207
-
208
- * Database#create_view now supports a :recursive option on PostgreSQL
209
- for creating recursive views.
210
-
211
- * Database#create_view and #drop_view now support a :materialized option
212
- on PostgreSQL for creating/dropping materialized views.
213
-
214
- * Database#refresh_view has been added on PostgreSQL for refreshing
215
- materialized views.
216
-
217
- = Other Improvements
218
-
219
- * Check constraints are now always surrounded by parantheses, since that
220
- is required by the SQL standard. This fixes issues in the cases where
221
- parentheses were not used automatically, such as when a function call
222
- was used.
223
-
224
- * Using an offset without a limit when eager loading now works
225
- correctly.
226
-
227
- * The prepared_statements_associations plugin now works correctly when
228
- the associated class uses a filtered dataset.
229
-
230
- * The prepared_statements_associations plugin can now use a prepared
231
- statement for cases where the association uses :conditions.
232
-
233
- * Boolean prepared statement arguments now work correctly in the sqlite
234
- adapter when the integer_booleans setting is true.
235
-
236
- * Dataset#inspect on prepared statements now handles anonymous dataset
237
- classes correctly.
238
-
239
- * When dataset string/blob literalization depends on having a database
240
- connection and the dataset has an assigned server, a connection to
241
- the assigned server is used.
242
-
243
- * More disconnect errors are now handled when using the postgres
244
- adapter with the postgres-pr driver, and in the jdbc/oracle adapter.
245
-
246
- * Composite primary keys are now parsed correctly on SQLite 3.7.16+.
247
-
248
- * Blobs are now hex escaped on MySQL, which can solve some encoding
249
- issues when blobs are used as literals in the same SQL query with
250
- UTF-8 strings.
251
-
252
- * BigDecimals instances are now formatted nicer in the pretty_table
253
- extension.
254
-
255
- * Sequel now raises an exception when attempting to literalize infinite
256
- and NaN floats on MySQL. In general, this would result in MySQL
257
- raising an error, but in extreme cases it could have failed silently.
258
-
259
- * You can now use a NO_SEQUEL_PG environment variable to not
260
- automatically require sequel_pg in the postgres adapter.
261
-
262
- * Dataset#unbind now always uses symbol keys in the bind variable hash.