sequel 5.20.0 → 5.49.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 (511) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +398 -1922
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +7 -7
  5. data/doc/advanced_associations.rdoc +4 -4
  6. data/doc/association_basics.rdoc +80 -16
  7. data/doc/cheat_sheet.rdoc +6 -5
  8. data/doc/code_order.rdoc +10 -12
  9. data/doc/dataset_filtering.rdoc +17 -2
  10. data/doc/fork_safety.rdoc +84 -0
  11. data/doc/migration.rdoc +11 -5
  12. data/doc/model_dataset_method_design.rdoc +1 -1
  13. data/doc/model_plugins.rdoc +1 -1
  14. data/doc/opening_databases.rdoc +10 -2
  15. data/doc/postgresql.rdoc +82 -3
  16. data/doc/querying.rdoc +4 -4
  17. data/doc/release_notes/5.21.0.txt +87 -0
  18. data/doc/release_notes/5.22.0.txt +48 -0
  19. data/doc/release_notes/5.23.0.txt +56 -0
  20. data/doc/release_notes/5.24.0.txt +56 -0
  21. data/doc/release_notes/5.25.0.txt +32 -0
  22. data/doc/release_notes/5.26.0.txt +35 -0
  23. data/doc/release_notes/5.27.0.txt +21 -0
  24. data/doc/release_notes/5.28.0.txt +16 -0
  25. data/doc/release_notes/5.29.0.txt +22 -0
  26. data/doc/release_notes/5.30.0.txt +20 -0
  27. data/doc/release_notes/5.31.0.txt +148 -0
  28. data/doc/release_notes/5.32.0.txt +46 -0
  29. data/doc/release_notes/5.33.0.txt +24 -0
  30. data/doc/release_notes/5.34.0.txt +40 -0
  31. data/doc/release_notes/5.35.0.txt +56 -0
  32. data/doc/release_notes/5.36.0.txt +60 -0
  33. data/doc/release_notes/5.37.0.txt +30 -0
  34. data/doc/release_notes/5.38.0.txt +28 -0
  35. data/doc/release_notes/5.39.0.txt +19 -0
  36. data/doc/release_notes/5.40.0.txt +40 -0
  37. data/doc/release_notes/5.41.0.txt +25 -0
  38. data/doc/release_notes/5.42.0.txt +136 -0
  39. data/doc/release_notes/5.43.0.txt +98 -0
  40. data/doc/release_notes/5.44.0.txt +32 -0
  41. data/doc/release_notes/5.45.0.txt +34 -0
  42. data/doc/release_notes/5.46.0.txt +87 -0
  43. data/doc/release_notes/5.47.0.txt +59 -0
  44. data/doc/release_notes/5.48.0.txt +14 -0
  45. data/doc/release_notes/5.49.0.txt +59 -0
  46. data/doc/sharding.rdoc +2 -0
  47. data/doc/sql.rdoc +13 -1
  48. data/doc/testing.rdoc +20 -7
  49. data/doc/transactions.rdoc +0 -8
  50. data/doc/validations.rdoc +1 -1
  51. data/doc/virtual_rows.rdoc +1 -1
  52. data/lib/sequel/adapters/ado/access.rb +1 -1
  53. data/lib/sequel/adapters/ado.rb +43 -35
  54. data/lib/sequel/adapters/ibmdb.rb +2 -2
  55. data/lib/sequel/adapters/jdbc/mysql.rb +6 -6
  56. data/lib/sequel/adapters/jdbc/postgresql.rb +11 -17
  57. data/lib/sequel/adapters/jdbc/sqlite.rb +29 -0
  58. data/lib/sequel/adapters/jdbc.rb +24 -6
  59. data/lib/sequel/adapters/mysql.rb +1 -1
  60. data/lib/sequel/adapters/mysql2.rb +2 -3
  61. data/lib/sequel/adapters/odbc.rb +8 -6
  62. data/lib/sequel/adapters/oracle.rb +5 -4
  63. data/lib/sequel/adapters/postgres.rb +15 -9
  64. data/lib/sequel/adapters/shared/access.rb +6 -6
  65. data/lib/sequel/adapters/shared/mssql.rb +66 -21
  66. data/lib/sequel/adapters/shared/mysql.rb +27 -10
  67. data/lib/sequel/adapters/shared/oracle.rb +29 -23
  68. data/lib/sequel/adapters/shared/postgres.rb +271 -32
  69. data/lib/sequel/adapters/shared/sqlanywhere.rb +9 -9
  70. data/lib/sequel/adapters/shared/sqlite.rb +161 -19
  71. data/lib/sequel/adapters/sqlanywhere.rb +1 -1
  72. data/lib/sequel/adapters/sqlite.rb +1 -1
  73. data/lib/sequel/adapters/tinytds.rb +15 -2
  74. data/lib/sequel/adapters/utils/mysql_mysql2.rb +4 -1
  75. data/lib/sequel/ast_transformer.rb +6 -0
  76. data/lib/sequel/connection_pool/sharded_single.rb +4 -1
  77. data/lib/sequel/connection_pool/sharded_threaded.rb +12 -12
  78. data/lib/sequel/connection_pool/single.rb +1 -1
  79. data/lib/sequel/connection_pool/threaded.rb +2 -2
  80. data/lib/sequel/core.rb +333 -319
  81. data/lib/sequel/database/connecting.rb +3 -4
  82. data/lib/sequel/database/logging.rb +7 -1
  83. data/lib/sequel/database/misc.rb +31 -12
  84. data/lib/sequel/database/query.rb +3 -1
  85. data/lib/sequel/database/schema_generator.rb +53 -51
  86. data/lib/sequel/database/schema_methods.rb +38 -23
  87. data/lib/sequel/database/transactions.rb +17 -18
  88. data/lib/sequel/dataset/actions.rb +14 -9
  89. data/lib/sequel/dataset/features.rb +16 -0
  90. data/lib/sequel/dataset/misc.rb +2 -2
  91. data/lib/sequel/dataset/placeholder_literalizer.rb +3 -7
  92. data/lib/sequel/dataset/prepared_statements.rb +2 -0
  93. data/lib/sequel/dataset/query.rb +26 -9
  94. data/lib/sequel/dataset/sql.rb +76 -25
  95. data/lib/sequel/dataset.rb +4 -2
  96. data/lib/sequel/deprecated.rb +3 -1
  97. data/lib/sequel/exceptions.rb +2 -0
  98. data/lib/sequel/extensions/_pretty_table.rb +1 -2
  99. data/lib/sequel/extensions/any_not_empty.rb +45 -0
  100. data/lib/sequel/extensions/async_thread_pool.rb +438 -0
  101. data/lib/sequel/extensions/blank.rb +8 -0
  102. data/lib/sequel/extensions/columns_introspection.rb +1 -2
  103. data/lib/sequel/extensions/connection_expiration.rb +2 -2
  104. data/lib/sequel/extensions/connection_validator.rb +2 -2
  105. data/lib/sequel/extensions/core_refinements.rb +2 -0
  106. data/lib/sequel/extensions/date_arithmetic.rb +36 -24
  107. data/lib/sequel/extensions/duplicate_columns_handler.rb +3 -1
  108. data/lib/sequel/extensions/eval_inspect.rb +2 -0
  109. data/lib/sequel/extensions/exclude_or_null.rb +68 -0
  110. data/lib/sequel/extensions/fiber_concurrency.rb +24 -0
  111. data/lib/sequel/extensions/index_caching.rb +9 -7
  112. data/lib/sequel/extensions/inflector.rb +9 -1
  113. data/lib/sequel/extensions/integer64.rb +2 -0
  114. data/lib/sequel/extensions/migration.rb +11 -3
  115. data/lib/sequel/extensions/named_timezones.rb +56 -8
  116. data/lib/sequel/extensions/pagination.rb +1 -1
  117. data/lib/sequel/extensions/pg_array.rb +5 -0
  118. data/lib/sequel/extensions/pg_array_ops.rb +14 -6
  119. data/lib/sequel/extensions/pg_enum.rb +11 -3
  120. data/lib/sequel/extensions/pg_extended_date_support.rb +2 -2
  121. data/lib/sequel/extensions/pg_hstore.rb +6 -0
  122. data/lib/sequel/extensions/pg_hstore_ops.rb +54 -2
  123. data/lib/sequel/extensions/pg_inet.rb +15 -5
  124. data/lib/sequel/extensions/pg_interval.rb +36 -8
  125. data/lib/sequel/extensions/pg_json.rb +387 -123
  126. data/lib/sequel/extensions/pg_json_ops.rb +238 -0
  127. data/lib/sequel/extensions/pg_loose_count.rb +3 -1
  128. data/lib/sequel/extensions/pg_range.rb +17 -9
  129. data/lib/sequel/extensions/pg_range_ops.rb +2 -0
  130. data/lib/sequel/extensions/pg_row.rb +4 -2
  131. data/lib/sequel/extensions/pg_row_ops.rb +24 -0
  132. data/lib/sequel/extensions/pg_timestamptz.rb +2 -0
  133. data/lib/sequel/extensions/query.rb +3 -0
  134. data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
  135. data/lib/sequel/extensions/s.rb +2 -0
  136. data/lib/sequel/extensions/schema_dumper.rb +24 -7
  137. data/lib/sequel/extensions/server_block.rb +18 -7
  138. data/lib/sequel/extensions/sql_comments.rb +2 -2
  139. data/lib/sequel/extensions/string_agg.rb +1 -1
  140. data/lib/sequel/extensions/symbol_aref_refinement.rb +2 -0
  141. data/lib/sequel/extensions/symbol_as_refinement.rb +2 -0
  142. data/lib/sequel/extensions/to_dot.rb +9 -3
  143. data/lib/sequel/model/associations.rb +356 -117
  144. data/lib/sequel/model/base.rb +107 -68
  145. data/lib/sequel/model/errors.rb +10 -1
  146. data/lib/sequel/model/inflections.rb +1 -1
  147. data/lib/sequel/model/plugins.rb +9 -3
  148. data/lib/sequel/model.rb +3 -1
  149. data/lib/sequel/plugins/association_lazy_eager_option.rb +66 -0
  150. data/lib/sequel/plugins/association_multi_add_remove.rb +85 -0
  151. data/lib/sequel/plugins/association_pks.rb +60 -18
  152. data/lib/sequel/plugins/association_proxies.rb +8 -2
  153. data/lib/sequel/plugins/async_thread_pool.rb +39 -0
  154. data/lib/sequel/plugins/auto_validations.rb +39 -5
  155. data/lib/sequel/plugins/auto_validations_constraint_validations_presence_message.rb +68 -0
  156. data/lib/sequel/plugins/blacklist_security.rb +1 -2
  157. data/lib/sequel/plugins/boolean_subsets.rb +4 -1
  158. data/lib/sequel/plugins/caching.rb +3 -0
  159. data/lib/sequel/plugins/class_table_inheritance.rb +33 -28
  160. data/lib/sequel/plugins/column_encryption.rb +728 -0
  161. data/lib/sequel/plugins/composition.rb +7 -2
  162. data/lib/sequel/plugins/concurrent_eager_loading.rb +174 -0
  163. data/lib/sequel/plugins/constraint_validations.rb +2 -1
  164. data/lib/sequel/plugins/csv_serializer.rb +28 -9
  165. data/lib/sequel/plugins/dataset_associations.rb +4 -1
  166. data/lib/sequel/plugins/dirty.rb +60 -22
  167. data/lib/sequel/plugins/empty_failure_backtraces.rb +38 -0
  168. data/lib/sequel/plugins/forbid_lazy_load.rb +216 -0
  169. data/lib/sequel/plugins/insert_conflict.rb +72 -0
  170. data/lib/sequel/plugins/instance_specific_default.rb +113 -0
  171. data/lib/sequel/plugins/json_serializer.rb +57 -35
  172. data/lib/sequel/plugins/lazy_attributes.rb +1 -1
  173. data/lib/sequel/plugins/many_through_many.rb +108 -9
  174. data/lib/sequel/plugins/nested_attributes.rb +15 -3
  175. data/lib/sequel/plugins/pg_array_associations.rb +58 -41
  176. data/lib/sequel/plugins/pg_auto_constraint_validations.rb +91 -30
  177. data/lib/sequel/plugins/prepared_statements.rb +15 -12
  178. data/lib/sequel/plugins/prepared_statements_safe.rb +1 -3
  179. data/lib/sequel/plugins/rcte_tree.rb +43 -35
  180. data/lib/sequel/plugins/serialization.rb +8 -3
  181. data/lib/sequel/plugins/serialization_modification_detection.rb +1 -1
  182. data/lib/sequel/plugins/sharding.rb +11 -5
  183. data/lib/sequel/plugins/single_table_inheritance.rb +22 -15
  184. data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
  185. data/lib/sequel/plugins/static_cache.rb +9 -4
  186. data/lib/sequel/plugins/static_cache_cache.rb +53 -0
  187. data/lib/sequel/plugins/string_stripper.rb +1 -1
  188. data/lib/sequel/plugins/subclasses.rb +2 -0
  189. data/lib/sequel/plugins/throw_failures.rb +1 -1
  190. data/lib/sequel/plugins/timestamps.rb +1 -1
  191. data/lib/sequel/plugins/tree.rb +9 -4
  192. data/lib/sequel/plugins/typecast_on_load.rb +3 -2
  193. data/lib/sequel/plugins/unused_associations.rb +521 -0
  194. data/lib/sequel/plugins/update_or_create.rb +1 -1
  195. data/lib/sequel/plugins/validation_class_methods.rb +5 -1
  196. data/lib/sequel/plugins/validation_helpers.rb +18 -11
  197. data/lib/sequel/plugins/xml_serializer.rb +1 -1
  198. data/lib/sequel/sql.rb +20 -5
  199. data/lib/sequel/timezones.rb +63 -17
  200. data/lib/sequel/version.rb +1 -1
  201. metadata +113 -381
  202. data/Rakefile +0 -151
  203. data/doc/release_notes/4.0.0.txt +0 -262
  204. data/doc/release_notes/4.1.0.txt +0 -85
  205. data/doc/release_notes/4.10.0.txt +0 -226
  206. data/doc/release_notes/4.11.0.txt +0 -147
  207. data/doc/release_notes/4.12.0.txt +0 -105
  208. data/doc/release_notes/4.13.0.txt +0 -169
  209. data/doc/release_notes/4.14.0.txt +0 -68
  210. data/doc/release_notes/4.15.0.txt +0 -56
  211. data/doc/release_notes/4.16.0.txt +0 -36
  212. data/doc/release_notes/4.17.0.txt +0 -38
  213. data/doc/release_notes/4.18.0.txt +0 -36
  214. data/doc/release_notes/4.19.0.txt +0 -45
  215. data/doc/release_notes/4.2.0.txt +0 -129
  216. data/doc/release_notes/4.20.0.txt +0 -79
  217. data/doc/release_notes/4.21.0.txt +0 -94
  218. data/doc/release_notes/4.22.0.txt +0 -72
  219. data/doc/release_notes/4.23.0.txt +0 -65
  220. data/doc/release_notes/4.24.0.txt +0 -99
  221. data/doc/release_notes/4.25.0.txt +0 -181
  222. data/doc/release_notes/4.26.0.txt +0 -44
  223. data/doc/release_notes/4.27.0.txt +0 -78
  224. data/doc/release_notes/4.28.0.txt +0 -57
  225. data/doc/release_notes/4.29.0.txt +0 -41
  226. data/doc/release_notes/4.3.0.txt +0 -40
  227. data/doc/release_notes/4.30.0.txt +0 -37
  228. data/doc/release_notes/4.31.0.txt +0 -57
  229. data/doc/release_notes/4.32.0.txt +0 -132
  230. data/doc/release_notes/4.33.0.txt +0 -88
  231. data/doc/release_notes/4.34.0.txt +0 -86
  232. data/doc/release_notes/4.35.0.txt +0 -130
  233. data/doc/release_notes/4.36.0.txt +0 -116
  234. data/doc/release_notes/4.37.0.txt +0 -50
  235. data/doc/release_notes/4.38.0.txt +0 -67
  236. data/doc/release_notes/4.39.0.txt +0 -127
  237. data/doc/release_notes/4.4.0.txt +0 -92
  238. data/doc/release_notes/4.40.0.txt +0 -179
  239. data/doc/release_notes/4.41.0.txt +0 -77
  240. data/doc/release_notes/4.42.0.txt +0 -221
  241. data/doc/release_notes/4.43.0.txt +0 -87
  242. data/doc/release_notes/4.44.0.txt +0 -125
  243. data/doc/release_notes/4.45.0.txt +0 -370
  244. data/doc/release_notes/4.46.0.txt +0 -404
  245. data/doc/release_notes/4.47.0.txt +0 -56
  246. data/doc/release_notes/4.48.0.txt +0 -293
  247. data/doc/release_notes/4.49.0.txt +0 -222
  248. data/doc/release_notes/4.5.0.txt +0 -34
  249. data/doc/release_notes/4.6.0.txt +0 -30
  250. data/doc/release_notes/4.7.0.txt +0 -103
  251. data/doc/release_notes/4.8.0.txt +0 -175
  252. data/doc/release_notes/4.9.0.txt +0 -190
  253. data/spec/adapter_spec.rb +0 -4
  254. data/spec/adapters/db2_spec.rb +0 -170
  255. data/spec/adapters/mssql_spec.rb +0 -804
  256. data/spec/adapters/mysql_spec.rb +0 -1065
  257. data/spec/adapters/oracle_spec.rb +0 -371
  258. data/spec/adapters/postgres_spec.rb +0 -4125
  259. data/spec/adapters/spec_helper.rb +0 -44
  260. data/spec/adapters/sqlanywhere_spec.rb +0 -97
  261. data/spec/adapters/sqlite_spec.rb +0 -652
  262. data/spec/bin_spec.rb +0 -278
  263. data/spec/core/connection_pool_spec.rb +0 -1250
  264. data/spec/core/database_spec.rb +0 -2865
  265. data/spec/core/dataset_spec.rb +0 -5515
  266. data/spec/core/deprecated_spec.rb +0 -70
  267. data/spec/core/expression_filters_spec.rb +0 -1455
  268. data/spec/core/mock_adapter_spec.rb +0 -722
  269. data/spec/core/object_graph_spec.rb +0 -336
  270. data/spec/core/placeholder_literalizer_spec.rb +0 -166
  271. data/spec/core/schema_generator_spec.rb +0 -214
  272. data/spec/core/schema_spec.rb +0 -1826
  273. data/spec/core/spec_helper.rb +0 -24
  274. data/spec/core/version_spec.rb +0 -14
  275. data/spec/core_extensions_spec.rb +0 -763
  276. data/spec/core_model_spec.rb +0 -2
  277. data/spec/core_spec.rb +0 -1
  278. data/spec/deprecation_helper.rb +0 -30
  279. data/spec/extensions/accessed_columns_spec.rb +0 -51
  280. data/spec/extensions/active_model_spec.rb +0 -99
  281. data/spec/extensions/after_initialize_spec.rb +0 -28
  282. data/spec/extensions/arbitrary_servers_spec.rb +0 -109
  283. data/spec/extensions/association_dependencies_spec.rb +0 -125
  284. data/spec/extensions/association_pks_spec.rb +0 -423
  285. data/spec/extensions/association_proxies_spec.rb +0 -100
  286. data/spec/extensions/auto_literal_strings_spec.rb +0 -205
  287. data/spec/extensions/auto_validations_spec.rb +0 -229
  288. data/spec/extensions/blacklist_security_spec.rb +0 -95
  289. data/spec/extensions/blank_spec.rb +0 -69
  290. data/spec/extensions/boolean_readers_spec.rb +0 -93
  291. data/spec/extensions/boolean_subsets_spec.rb +0 -47
  292. data/spec/extensions/caching_spec.rb +0 -273
  293. data/spec/extensions/caller_logging_spec.rb +0 -52
  294. data/spec/extensions/class_table_inheritance_spec.rb +0 -750
  295. data/spec/extensions/column_conflicts_spec.rb +0 -75
  296. data/spec/extensions/column_select_spec.rb +0 -129
  297. data/spec/extensions/columns_introspection_spec.rb +0 -90
  298. data/spec/extensions/columns_updated_spec.rb +0 -35
  299. data/spec/extensions/composition_spec.rb +0 -248
  300. data/spec/extensions/connection_expiration_spec.rb +0 -151
  301. data/spec/extensions/connection_validator_spec.rb +0 -144
  302. data/spec/extensions/constant_sql_override_spec.rb +0 -24
  303. data/spec/extensions/constraint_validations_plugin_spec.rb +0 -300
  304. data/spec/extensions/constraint_validations_spec.rb +0 -439
  305. data/spec/extensions/core_refinements_spec.rb +0 -528
  306. data/spec/extensions/csv_serializer_spec.rb +0 -183
  307. data/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
  308. data/spec/extensions/dataset_associations_spec.rb +0 -365
  309. data/spec/extensions/dataset_source_alias_spec.rb +0 -51
  310. data/spec/extensions/date_arithmetic_spec.rb +0 -181
  311. data/spec/extensions/datetime_parse_to_time_spec.rb +0 -169
  312. data/spec/extensions/def_dataset_method_spec.rb +0 -100
  313. data/spec/extensions/defaults_setter_spec.rb +0 -150
  314. data/spec/extensions/delay_add_association_spec.rb +0 -73
  315. data/spec/extensions/dirty_spec.rb +0 -189
  316. data/spec/extensions/duplicate_columns_handler_spec.rb +0 -104
  317. data/spec/extensions/eager_each_spec.rb +0 -62
  318. data/spec/extensions/eager_graph_eager_spec.rb +0 -100
  319. data/spec/extensions/empty_array_consider_nulls_spec.rb +0 -24
  320. data/spec/extensions/error_splitter_spec.rb +0 -18
  321. data/spec/extensions/error_sql_spec.rb +0 -20
  322. data/spec/extensions/escaped_like_spec.rb +0 -40
  323. data/spec/extensions/eval_inspect_spec.rb +0 -81
  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 -402
  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 -291
  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 -864
  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 -111
  348. data/spec/extensions/nested_attributes_spec.rb +0 -767
  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 -172
  356. data/spec/extensions/pg_enum_spec.rb +0 -118
  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 -519
  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 -177
  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 -870
  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 -63
  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 -471
  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 -402
  409. data/spec/extensions/thread_local_timezones_spec.rb +0 -67
  410. data/spec/extensions/throw_failures_spec.rb +0 -74
  411. data/spec/extensions/timestamps_spec.rb +0 -209
  412. data/spec/extensions/to_dot_spec.rb +0 -153
  413. data/spec/extensions/touch_spec.rb +0 -226
  414. data/spec/extensions/tree_spec.rb +0 -334
  415. data/spec/extensions/typecast_on_load_spec.rb +0 -86
  416. data/spec/extensions/unlimited_update_spec.rb +0 -21
  417. data/spec/extensions/update_or_create_spec.rb +0 -83
  418. data/spec/extensions/update_primary_key_spec.rb +0 -105
  419. data/spec/extensions/update_refresh_spec.rb +0 -59
  420. data/spec/extensions/uuid_spec.rb +0 -101
  421. data/spec/extensions/validate_associated_spec.rb +0 -52
  422. data/spec/extensions/validation_class_methods_spec.rb +0 -1040
  423. data/spec/extensions/validation_contexts_spec.rb +0 -31
  424. data/spec/extensions/validation_helpers_spec.rb +0 -525
  425. data/spec/extensions/whitelist_security_spec.rb +0 -157
  426. data/spec/extensions/xml_serializer_spec.rb +0 -213
  427. data/spec/files/bad_down_migration/001_create_alt_basic.rb +0 -4
  428. data/spec/files/bad_down_migration/002_create_alt_advanced.rb +0 -4
  429. data/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  430. data/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  431. data/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +0 -3
  432. data/spec/files/bad_up_migration/001_create_alt_basic.rb +0 -4
  433. data/spec/files/bad_up_migration/002_create_alt_advanced.rb +0 -3
  434. data/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +0 -9
  435. data/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +0 -9
  436. data/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +0 -4
  437. data/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +0 -9
  438. data/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +0 -9
  439. data/spec/files/double_migration/001_create_sessions.rb +0 -9
  440. data/spec/files/double_migration/002_create_nodes.rb +0 -19
  441. data/spec/files/double_migration/003_3_create_users.rb +0 -4
  442. data/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +0 -4
  443. data/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +0 -4
  444. data/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  445. data/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +0 -9
  446. data/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +0 -4
  447. data/spec/files/empty_migration/001_create_sessions.rb +0 -9
  448. data/spec/files/empty_migration/002_create_nodes.rb +0 -0
  449. data/spec/files/empty_migration/003_3_create_users.rb +0 -4
  450. data/spec/files/integer_migrations/001_create_sessions.rb +0 -9
  451. data/spec/files/integer_migrations/002_create_nodes.rb +0 -9
  452. data/spec/files/integer_migrations/003_3_create_users.rb +0 -4
  453. data/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  454. data/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +0 -9
  455. data/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  456. data/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +0 -9
  457. data/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  458. data/spec/files/missing_integer_migrations/001_create_alt_basic.rb +0 -4
  459. data/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +0 -4
  460. data/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  461. data/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  462. data/spec/files/reversible_migrations/001_reversible.rb +0 -5
  463. data/spec/files/reversible_migrations/002_reversible.rb +0 -5
  464. data/spec/files/reversible_migrations/003_reversible.rb +0 -5
  465. data/spec/files/reversible_migrations/004_reversible.rb +0 -5
  466. data/spec/files/reversible_migrations/005_reversible.rb +0 -10
  467. data/spec/files/reversible_migrations/006_reversible.rb +0 -10
  468. data/spec/files/reversible_migrations/007_reversible.rb +0 -10
  469. data/spec/files/timestamped_migrations/1273253849_create_sessions.rb +0 -9
  470. data/spec/files/timestamped_migrations/1273253851_create_nodes.rb +0 -9
  471. data/spec/files/timestamped_migrations/1273253853_3_create_users.rb +0 -4
  472. data/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +0 -4
  473. data/spec/files/transaction_specified_migrations/002_create_basic.rb +0 -4
  474. data/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +0 -3
  475. data/spec/files/transaction_unspecified_migrations/002_create_basic.rb +0 -3
  476. data/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +0 -9
  477. data/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +0 -9
  478. data/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +0 -4
  479. data/spec/guards_helper.rb +0 -59
  480. data/spec/integration/associations_test.rb +0 -2597
  481. data/spec/integration/database_test.rb +0 -113
  482. data/spec/integration/dataset_test.rb +0 -1981
  483. data/spec/integration/eager_loader_test.rb +0 -687
  484. data/spec/integration/migrator_test.rb +0 -262
  485. data/spec/integration/model_test.rb +0 -203
  486. data/spec/integration/plugin_test.rb +0 -2396
  487. data/spec/integration/prepared_statement_test.rb +0 -405
  488. data/spec/integration/schema_test.rb +0 -889
  489. data/spec/integration/spec_helper.rb +0 -65
  490. data/spec/integration/timezone_test.rb +0 -86
  491. data/spec/integration/transaction_test.rb +0 -603
  492. data/spec/integration/type_test.rb +0 -127
  493. data/spec/model/association_reflection_spec.rb +0 -803
  494. data/spec/model/associations_spec.rb +0 -4738
  495. data/spec/model/base_spec.rb +0 -875
  496. data/spec/model/class_dataset_methods_spec.rb +0 -146
  497. data/spec/model/dataset_methods_spec.rb +0 -198
  498. data/spec/model/eager_loading_spec.rb +0 -2377
  499. data/spec/model/hooks_spec.rb +0 -370
  500. data/spec/model/inflector_spec.rb +0 -26
  501. data/spec/model/model_spec.rb +0 -956
  502. data/spec/model/plugins_spec.rb +0 -429
  503. data/spec/model/record_spec.rb +0 -2118
  504. data/spec/model/spec_helper.rb +0 -46
  505. data/spec/model/validations_spec.rb +0 -220
  506. data/spec/model_no_assoc_spec.rb +0 -1
  507. data/spec/model_spec.rb +0 -1
  508. data/spec/plugin_spec.rb +0 -1
  509. data/spec/sequel_coverage.rb +0 -15
  510. data/spec/sequel_warning.rb +0 -4
  511. data/spec/spec_config.rb +0 -12
@@ -1,404 +0,0 @@
1
- = Deprecated Features
2
-
3
- * Symbol splitting is now deprecated by default. Sequel has
4
- split symbols since the very first version, but it has caused
5
- many problems over the years and while terse, it isn't
6
- intuitive to new Sequel users and causes significant
7
- problems when using databases that use double/triple
8
- underscores in identifiers.
9
-
10
- If you are using symbols with embedded double/triple
11
- underscores, such as:
12
-
13
- :table__column
14
- :column___alias
15
- :table__column___alias
16
-
17
- you either need to turn symbol splitting on by doing:
18
-
19
- Sequel.split_symbols = true
20
-
21
- or you need to convert the symbols to Sequel objects:
22
-
23
- Sequel[:table][:column]
24
- Sequel[:column].as(:alias)
25
- Sequel[:table][:column].as(:alias)
26
-
27
- Sequel ships with multiple extensions that make creation
28
- of those Sequel objects less verbose, so consider using
29
- the symbol_aref, symbol_aref_refinement, symbol_as,
30
- symbol_as_refinement, and/or s extensions.
31
-
32
- To automatically convert symbols with double/triple
33
- underscores to their Sequel object equivalents, you can
34
- use the sequel-unsplit tool available at
35
- https://github.com/jeremyevans/sequel-unsplit.
36
-
37
- This deprecation also affects virtual row block methods that use
38
- double underscores. For example:
39
-
40
- DB[:table].where{table__column > 3}
41
-
42
- should be changed to:
43
-
44
- DB[:table].where{table[:column] > 3}
45
-
46
- * Automatically treating plain strings passed to filtering/update
47
- methods as literal strings has been deprecated, with support moved
48
- to the auto_literal_strings extension. The automatic conversion
49
- of plain strings to literal SQL is the most common cause of
50
- SQL injections in applications using Sequel, since many methods
51
- pass their arguments down to the filtering methods, without
52
- considering whether the argument might be a string derived from
53
- user input. By requiring explicit marking of literal SQL strings,
54
- SQL injections are less likely and easier to audit for.
55
-
56
- This change means that unless you want to use the
57
- auto_literal_strings extension, code such as:
58
-
59
- DB[:table].where("a = 1")
60
- DB[:table].where("a > ?", 1)
61
-
62
- should to be converted to:
63
-
64
- DB[:table].where(Sequel.lit("a = 1"))
65
- DB[:table].where(Sequel.lit("a > ?", 1))
66
-
67
- or even better, avoid literal SQL completely by converting it to
68
- use equivalent Sequel expressions:
69
-
70
- DB[:table].where(:a => 1)
71
- DB[:table].where{a > 1}
72
-
73
- This change also affects passing Dataset#update a string:
74
-
75
- # Before
76
- DB[:table].update("a = a + 1")
77
-
78
- # Change to
79
- DB[:table].update(Sequel.lit("a = a + 1"))
80
- DB[:table].update(:a => Sequel[:a] + 1)
81
-
82
- Note that this deprecation does not affect cases where literal
83
- SQL is used for the entire query, such as when using any of the
84
- following:
85
-
86
- DB["SELECT * FROM foo"]
87
- DB.fetch("SELECT * FROM foo WHERE a = ?", 1)
88
- DB.dataset.with_sql("SELECT * FROM foo WHERE a = ?", 1)
89
-
90
- * Passing blocks to virtual row methods has been deprecated,
91
- with support moved to the virtual_row_method_block
92
- extension. Historically, passing blocks to virtual row methods
93
- changed how the methods were handled, but in recent years
94
- alternative methods have been added to get the same results.
95
- If you don't want to use the virtual_row_method_block extension,
96
- conversion is fairly simple:
97
-
98
- # WHERE a()
99
- # Before
100
- where{a{}}
101
- # Change to
102
- where{a.function}
103
-
104
- # SELECT count(*)
105
- # Before
106
- select{count(:*){}}
107
- # Change to
108
- select{count.function.*}
109
-
110
- # SELECT count(DISTINCT c)
111
- # Before
112
- select{count(:distinct, :c){}}
113
- # Change to
114
- select{count(:c).distinct}
115
-
116
- # SELECT sum(c) OVER (PARTITION BY a)
117
- # Before
118
- select{count(:over, :args=>c, :partition=>:a){}}
119
- # Change to
120
- select{count(:c).over(:partition=>:a)}
121
-
122
- * Model.set_allowed_columns and Model#{set,update}_{all,only}
123
- have been deprecated, with support moved to the
124
- whitelist_security plugin. These were the historical mass
125
- assignment methods supported by Sequel, but set_fields and
126
- update_fields have been recommended instead for many years.
127
-
128
- * Model.finder and .prepared_finder have been deprecated by default,
129
- with support moved to the finder plugin. Model.finder was
130
- originally added to make it easy to create optimized finder
131
- methods, but few Sequel users actually use it, so it makes more
132
- sense to move it to a plugin.
133
-
134
- * Model.def_dataset_method and Model.subset have been deprecated
135
- by default, with support moved to the def_dataset_method plugin.
136
- It's been recommended for many years to use Model.dataset_module
137
- to define dataset methods, instead of calling def_dataset_method
138
- and subset on the model class.
139
-
140
- * Using ` in virtual rows to create literal SQL is now deprecated,
141
- switch to using Sequel.lit instead:
142
-
143
- # Before
144
- DB[:table].where{`a = 1`}
145
- # Change to
146
- DB[:table].where(Sequel.lit('a = 1'))
147
-
148
- * Corner cases in argument handling in the filtering methods are now
149
- deprecated, including:
150
-
151
- * Ignoring a filtering method called without an argument or block.
152
- In Sequel 5, this will raise an exception.
153
-
154
- * Ignoring empty string arguments or other objects that respond to
155
- empty? and return true. In Sequel 5, only an empty array or hash
156
- will be ignored.
157
-
158
- * Ignoring an explicit nil argument when a block is passed. In
159
- Sequel 5, this will use a NULL filter.
160
-
161
- * Ignoring an explicit nil argument when there is no existing
162
- filter on the dataset. In Sequel 5, this will use a NULL
163
- filter.
164
-
165
- * Using a joined dataset as a Sequel::Model dataset is now
166
- deprecated. Such datasets should now be wrapped in a subquery.
167
- In Sequel 5, such datasets will automatically be wrapped in
168
- a subquery aliased to the first table.
169
-
170
- # Before
171
- Model.dataset = DB[:a].join(:b, :id=>:b_id)
172
- # Change to
173
- Model.dataset = DB[:a].join(:b, :id=>:b_id).from_self(:alias=>:a)
174
-
175
- * Model.first_where has been deprecated, Model.first should be used
176
- instead.
177
-
178
- * Database#log_yield is now deprecated. This does not affect any of
179
- the adapters that ship with Sequel, but external adapters that
180
- have not yet been updated to support #log_connection_yield will need
181
- to be updated.
182
-
183
- * The set_overrides extension is now deprecated. Anyone using it
184
- should consider supporting it as an external extension.
185
-
186
- * Many internal Database and Dataset regexp and string constants
187
- that were previously used internally have been deprecated.
188
- Additionally, some historical aliases for existing constants
189
- have also been deprecated, such as Sequel::Schema::Generator.
190
- Ruby 2.3+ is required to receive deprecation warnings related to
191
- these constants.
192
-
193
- * Passing model classes as the first argument to Dataset#join_table
194
- and Dataset#graph is now deprecated. Pass the model's table name
195
- or the model's datasets instead.
196
-
197
- * Passing model instances to Dataset#insert and #insert_sql is now
198
- deprecated. Call values on the model instance to get the values
199
- hash, and pass that as the argument instead.
200
-
201
- * Calling Dataset#set_graph_aliases before Dataset#graph is now
202
- deprecated. Dataset#set_graph_aliases should now be called
203
- after Dataset#graph, not before.
204
-
205
- * The sequel/no_core_ext file is deprecated. Sequel hasn't loaded
206
- the core extensions by default since Sequel 3. You can use the
207
- following if you want to support both Sequel 3 and Sequel 5:
208
-
209
- begin
210
- require 'sequel/no_core_ext'
211
- rescue LoadError
212
- require 'sequel'
213
- end
214
-
215
- * Database#pragma_get and #pragma_set on SQLite are now deprecated,
216
- along with any method that calls them, such as auto_vacuum,
217
- temp_store, foreign_keys, case_sensitive_like, synchronous, and
218
- their setter methods. To set these pragrams for all SQLite
219
- database connections, the appropriate options should be passed
220
- when creating the Database instance.
221
-
222
- * Automatically looking up the dataset class for a Database
223
- instance by looking for a DatasetClass constant in the Database's
224
- class is now deprecated. All adapters that ship with Sequel have
225
- been converted, but external adapters should now define the
226
- Database#dataset_class_default private method appropriately
227
- to return the correct dataset class.
228
-
229
- * Calling Model.db= on a model with a dataset is now deprecated.
230
- If a model already has a dataset, you must now use set_dataset
231
- or dataset= to change the dataset, not db=.
232
-
233
- * Sequel::SQL::Expression#sql_literal and #lit are now deprecated.
234
- These aren't used internally and aren't expected to be used
235
- externally.
236
-
237
- * {Integer,Timestamp}Migrator::DEFAULT_SCHEMA_{COLUMN,TABLE}
238
- are now deprecated. They have been replaced by
239
- default_schema_column and default_schema_table instance methods.
240
-
241
- * Passing a Schema::CreateTableGenerator instance as the
242
- second argument to Database#create_table is now
243
- deprecated. Database#create_table still supports passing the
244
- generator via the :generator option.
245
-
246
- * Passing a second argument to Database#alter_table is now
247
- deprecated.
248
-
249
- * Sequel::BasicObject.remove_methods! is now deprecated. It has
250
- always been a no-op on ruby 1.9+.
251
-
252
- * Referencing the PG_NAMED_TYPES constant in your code is now
253
- deprecated. Previously, adding entries to the PG_NAMED_TYPES
254
- was deprecated, but no deprecation message would be issued by
255
- referencing the constant.
256
-
257
- * The conversion of - to _ in adapter schemes is now deprecated.
258
- This does not affect any internal adapters, but it may affect
259
- external ones.
260
-
261
- * The Database#jdbc_* methods in the jdbc/db2 adapter (e.g.
262
- jdbc_tables) are now deprecated. Call the regular versions
263
- instead (e.g. tables).
264
-
265
- * Dataset#_filter and #_filter_or_exclude private methods have
266
- been deprecated. If you have an extension that was calling these
267
- methods, switch to the new #add_filter private method.
268
-
269
- = New Features
270
-
271
- * The class_table_inheritance plugin now supports an :alias option.
272
- If provided, this wraps subclass datasets in subqueries, avoiding
273
- problems with ambiguous columns and cases where the wrong table
274
- name is used. Due to the deprecation of joined datasets for
275
- models, use of the class_table_inheritance plugin without this
276
- :alias option will result in deprecation warnings. In Sequel 5,
277
- class_table_inheritance will default to using an :alias option
278
- with the same as the name of the parent table.
279
-
280
- * The Dataset#sqltime_precision private method has been added.
281
- Adapters can use override this if the precision for time values
282
- is different from the precision for timestamp values. Sequel
283
- uses this support on Microsoft SQL Server, so that time values
284
- now support microsecond precision, instead of millisecond
285
- precision.
286
-
287
- = Other Improvements
288
-
289
- * Sequel::Model classes that use a SQL::Identifier or
290
- SQL::QualifiedIdentifier FROM table value will now use optimized
291
- lookups and deletes, just as is done for those that use a
292
- Symbol or String.
293
-
294
- * Dataset#simple_select_all? now handles aliased subqueries
295
- correctly, returning false instead of true.
296
-
297
- * If Sequel.application_timezone is set to :utc,
298
- Sequel::SQLTime.create will create instances using utc time
299
- instead of local time.
300
-
301
- * If there is an exception while rolling back a transaction when
302
- using the :rollback=>:always option, the exception is now
303
- raised instead of being ignored.
304
-
305
- * If a migration file does not contain a migration or contains
306
- multiple migrations, the exception raised will now include
307
- the file name in the exception message.
308
-
309
- * In the jdbc/sqlserver adapter, time values with fractional
310
- seconds and datetimeoffset values are now handled better when
311
- using some versions of the underlying JDBC driver.
312
-
313
- * An additional disconnect error is recognized when using the
314
- mysql and mysql2 adapters.
315
-
316
- * Dataset#full_text_search on Microsoft SQL Server now works
317
- correctly if the no_auto_literal_strings extension is used.
318
-
319
- * Calling Database#disconnect when using the single connection
320
- pool without an active connection works correctly again. It was
321
- broken starting in 4.43.0 during changes to implement
322
- Database#freeze.
323
-
324
- * Model class methods are no longer added for private methods
325
- defined in a dataset_module block. Previously, a public model
326
- class method was defined, but it would raise an error when
327
- called.
328
-
329
- * Fixnum is no longer referenced in the sqlanywhere shared
330
- adapter, fixing deprecation warnings on ruby 2.4.
331
-
332
- * Sequel no longer uses constants for building SQL queries,
333
- relying on frozen string literal support for better
334
- performance on ruby 2.3+. However, this decreases SQL
335
- query building performance on ruby <2.3. For the fastest
336
- SQL query building, update to a recent version of ruby.
337
-
338
- * Sequel no longer ignores an empty object argument to a
339
- filtering method if a block is provided. Previously,
340
- this could raise an exception or produce invalid SQL.
341
-
342
- * Many small modifications were made to reduce array
343
- allocations, providing minor speedups.
344
-
345
- * Internal use of Array#at has been replaced with Array#[],
346
- providing minor speedups on recent ruby versions.
347
-
348
- * The jdbc/db2 adapter no longer adds jdbc_* methods to
349
- JDBC::Database.
350
-
351
- * Sequel no longer issues deprecation warnings on ruby 1.8.7.
352
- Sequel 5 will drop support for ruby 1.8.7, and it doesn't make
353
- sense to issue a deprecation warning if you couldn't upgrade
354
- anyway.
355
-
356
- = Backwards Compatibility
357
-
358
- * When specifying the :fields option to a nested_attributes
359
- setter, set_fields is now used internally instead of set_only.
360
- set_fields has been recommended over set_fields since it's
361
- introduction in Sequel 3.12, but nested_attributes was added
362
- in Sequel 3.4, before set_fields was available. The result
363
- of this change is that if additional fields are provided that
364
- do not match the fields in the :fields option, they will be
365
- ignored instead of an exception being raised.
366
-
367
- * When specifying a function name using a Sequel::SQL::Identifier
368
- instance, the function name is no longer quoted unless
369
- Sequel::SQL::Function#quoted is used to create a quoted
370
- function. The reason for this is to make converting virtual
371
- row method block code easier.
372
-
373
- # Before
374
- Sequel.function(Sequel[:a]) # "a"()
375
-
376
- # Now
377
- Sequel.function(Sequel[:a]) # a()
378
- Sequel.function(Sequel[:a]).quoted # "a"()
379
-
380
- * When passing an SQL::PlaceholderLiteralString instance to a
381
- dataset filtering method, the placeholder string is now always
382
- wrapped in parentheses:
383
-
384
- ds.where(Sequel.lit('? OR ?', :a, :b)).where(:c)
385
- # Before: WHERE a OR b AND c
386
- # Now: WHERE (a OR b) AND c
387
-
388
- This is more of a bugfix than a backwards compatibility issue,
389
- but is listed in the backwards compatibility section as there
390
- may be applications that could break due to this change.
391
-
392
- * Model.subset now calls Model.dataset_module.subset, instead of
393
- the other way around. If your code depends on this, you will
394
- need to make modifications.
395
-
396
- * The private Database#column_definition_order method no longer
397
- uses const_get(:COLUMN_DEFINITION_ORDER). External adapters
398
- that defined COLUMN_DEFINITION_ORDER but did not override
399
- this method must now override this method.
400
-
401
- * The private Database#native_function_name method no longer
402
- uses const_get(:EMULATED_FUNCTION_MAP). External adapters
403
- that defined EMULATED_FUNCTION_MAP but did not override
404
- this method must now override this method.
@@ -1,56 +0,0 @@
1
- = Deprecated Features
2
-
3
- * Setting an invalid dataset for a model is now deprecated.
4
- Historically, Sequel has swallowed exceptions for this to keep
5
- backwards compatibility, but it generally just results in code
6
- breaking later. To allow invalid datasets to be used:
7
-
8
- Sequel::Model.require_valid_table = false
9
-
10
- * The association_autoreloading and many_to_one_pk_lookup plugins
11
- are now deprecated. They were moved from plugins to standard
12
- model behavior in Sequel 4.0, and have been no-ops since.
13
-
14
- * The pg_typecast_on_load plugin is now deprecated. It is only useful
15
- on the already deprecated do and swift adapters.
16
-
17
- = New Features
18
-
19
- * Database#with_server in the server_block extension now accepts an
20
- optional second argument for the read only server to use. This
21
- allows for overriding the default server while providing a separate
22
- default for read only queries:
23
-
24
- DB.with_server(:server1, :server1ro) do
25
- DB[:a].all # Uses server1ro
26
- DB[:b].insert(1) # Uses server1
27
- end
28
-
29
- * Model.default_association_type_options has been added, allowing the
30
- ability to set default options per association type. This can be
31
- used to make some association types read_only by default:
32
-
33
- opts = Sequel::Model.default_association_type_options
34
- opts[:one_to_many] = opts[:many_to_many] = {:read_only=>true}
35
-
36
- * Database#views on PostgreSQL now accepts a :materialized option to
37
- return materialized views instead of regular views.
38
-
39
- = Other Improvements
40
-
41
- * Setting Sequel::Model.require_valid_table = true no longer raises
42
- an exception when using a valid dataset that selects from a subquery
43
- or table returning function or uses a join.
44
-
45
- * The defaults_setter plugin now inherits any custom default
46
- values when subclassing.
47
-
48
- * The schema_dumper extension now handles Oracle 11g XE behavior of
49
- appending not null to the database type.
50
-
51
- = Backwards Compatibility
52
-
53
- * External callers of Database#check_non_connection_error (private
54
- method) should update their code to call it with a true or false
55
- argument specifying whether to raise an error for exceptions that
56
- are not connection errors.