sequel 5.28.0 → 5.33.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 (380) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +64 -1922
  3. data/MIT-LICENSE +1 -1
  4. data/README.rdoc +1 -1
  5. data/doc/advanced_associations.rdoc +4 -4
  6. data/doc/association_basics.rdoc +3 -3
  7. data/doc/code_order.rdoc +12 -2
  8. data/doc/model_dataset_method_design.rdoc +1 -1
  9. data/doc/postgresql.rdoc +71 -0
  10. data/doc/release_notes/5.29.0.txt +22 -0
  11. data/doc/release_notes/5.30.0.txt +20 -0
  12. data/doc/release_notes/5.31.0.txt +148 -0
  13. data/doc/release_notes/5.32.0.txt +46 -0
  14. data/doc/release_notes/5.33.0.txt +24 -0
  15. data/doc/testing.rdoc +1 -1
  16. data/lib/sequel/adapters/postgres.rb +5 -1
  17. data/lib/sequel/adapters/shared/access.rb +6 -6
  18. data/lib/sequel/adapters/shared/mssql.rb +5 -5
  19. data/lib/sequel/adapters/shared/mysql.rb +10 -10
  20. data/lib/sequel/adapters/shared/oracle.rb +16 -16
  21. data/lib/sequel/adapters/shared/postgres.rb +169 -14
  22. data/lib/sequel/adapters/shared/sqlanywhere.rb +9 -9
  23. data/lib/sequel/adapters/shared/sqlite.rb +32 -5
  24. data/lib/sequel/adapters/tinytds.rb +1 -1
  25. data/lib/sequel/connection_pool/sharded_threaded.rb +2 -2
  26. data/lib/sequel/connection_pool/threaded.rb +1 -1
  27. data/lib/sequel/core.rb +318 -314
  28. data/lib/sequel/database/query.rb +1 -1
  29. data/lib/sequel/database/schema_generator.rb +1 -1
  30. data/lib/sequel/database/transactions.rb +8 -12
  31. data/lib/sequel/dataset/misc.rb +2 -2
  32. data/lib/sequel/extensions/connection_expiration.rb +2 -2
  33. data/lib/sequel/extensions/connection_validator.rb +2 -2
  34. data/lib/sequel/extensions/fiber_concurrency.rb +24 -0
  35. data/lib/sequel/extensions/index_caching.rb +9 -7
  36. data/lib/sequel/extensions/integer64.rb +2 -0
  37. data/lib/sequel/extensions/migration.rb +1 -1
  38. data/lib/sequel/extensions/pg_enum.rb +5 -2
  39. data/lib/sequel/extensions/pg_hstore.rb +6 -0
  40. data/lib/sequel/extensions/pg_inet.rb +13 -5
  41. data/lib/sequel/extensions/pg_interval.rb +2 -0
  42. data/lib/sequel/extensions/pg_range.rb +2 -0
  43. data/lib/sequel/extensions/pg_timestamptz.rb +2 -0
  44. data/lib/sequel/extensions/run_transaction_hooks.rb +72 -0
  45. data/lib/sequel/extensions/schema_dumper.rb +10 -4
  46. data/lib/sequel/extensions/server_block.rb +3 -3
  47. data/lib/sequel/model/associations.rb +18 -5
  48. data/lib/sequel/model/base.rb +60 -53
  49. data/lib/sequel/model/plugins.rb +1 -0
  50. data/lib/sequel/plugins/association_lazy_eager_option.rb +66 -0
  51. data/lib/sequel/plugins/association_multi_add_remove.rb +2 -0
  52. data/lib/sequel/plugins/association_proxies.rb +2 -0
  53. data/lib/sequel/plugins/boolean_subsets.rb +4 -1
  54. data/lib/sequel/plugins/class_table_inheritance.rb +26 -26
  55. data/lib/sequel/plugins/dirty.rb +13 -13
  56. data/lib/sequel/plugins/empty_failure_backtraces.rb +38 -0
  57. data/lib/sequel/plugins/forbid_lazy_load.rb +214 -0
  58. data/lib/sequel/plugins/json_serializer.rb +18 -11
  59. data/lib/sequel/plugins/single_table_inheritance.rb +15 -15
  60. data/lib/sequel/plugins/skip_saving_columns.rb +108 -0
  61. data/lib/sequel/plugins/subclasses.rb +2 -0
  62. data/lib/sequel/plugins/throw_failures.rb +1 -1
  63. data/lib/sequel/timezones.rb +6 -4
  64. data/lib/sequel/version.rb +1 -1
  65. metadata +18 -367
  66. data/Rakefile +0 -151
  67. data/doc/release_notes/4.0.0.txt +0 -262
  68. data/doc/release_notes/4.1.0.txt +0 -85
  69. data/doc/release_notes/4.10.0.txt +0 -226
  70. data/doc/release_notes/4.11.0.txt +0 -147
  71. data/doc/release_notes/4.12.0.txt +0 -105
  72. data/doc/release_notes/4.13.0.txt +0 -169
  73. data/doc/release_notes/4.14.0.txt +0 -68
  74. data/doc/release_notes/4.15.0.txt +0 -56
  75. data/doc/release_notes/4.16.0.txt +0 -36
  76. data/doc/release_notes/4.17.0.txt +0 -38
  77. data/doc/release_notes/4.18.0.txt +0 -36
  78. data/doc/release_notes/4.19.0.txt +0 -45
  79. data/doc/release_notes/4.2.0.txt +0 -129
  80. data/doc/release_notes/4.20.0.txt +0 -79
  81. data/doc/release_notes/4.21.0.txt +0 -94
  82. data/doc/release_notes/4.22.0.txt +0 -72
  83. data/doc/release_notes/4.23.0.txt +0 -65
  84. data/doc/release_notes/4.24.0.txt +0 -99
  85. data/doc/release_notes/4.25.0.txt +0 -181
  86. data/doc/release_notes/4.26.0.txt +0 -44
  87. data/doc/release_notes/4.27.0.txt +0 -78
  88. data/doc/release_notes/4.28.0.txt +0 -57
  89. data/doc/release_notes/4.29.0.txt +0 -41
  90. data/doc/release_notes/4.3.0.txt +0 -40
  91. data/doc/release_notes/4.30.0.txt +0 -37
  92. data/doc/release_notes/4.31.0.txt +0 -57
  93. data/doc/release_notes/4.32.0.txt +0 -132
  94. data/doc/release_notes/4.33.0.txt +0 -88
  95. data/doc/release_notes/4.34.0.txt +0 -86
  96. data/doc/release_notes/4.35.0.txt +0 -130
  97. data/doc/release_notes/4.36.0.txt +0 -116
  98. data/doc/release_notes/4.37.0.txt +0 -50
  99. data/doc/release_notes/4.38.0.txt +0 -67
  100. data/doc/release_notes/4.39.0.txt +0 -127
  101. data/doc/release_notes/4.4.0.txt +0 -92
  102. data/doc/release_notes/4.40.0.txt +0 -179
  103. data/doc/release_notes/4.41.0.txt +0 -77
  104. data/doc/release_notes/4.42.0.txt +0 -221
  105. data/doc/release_notes/4.43.0.txt +0 -87
  106. data/doc/release_notes/4.44.0.txt +0 -125
  107. data/doc/release_notes/4.45.0.txt +0 -370
  108. data/doc/release_notes/4.46.0.txt +0 -404
  109. data/doc/release_notes/4.47.0.txt +0 -56
  110. data/doc/release_notes/4.48.0.txt +0 -293
  111. data/doc/release_notes/4.49.0.txt +0 -222
  112. data/doc/release_notes/4.5.0.txt +0 -34
  113. data/doc/release_notes/4.6.0.txt +0 -30
  114. data/doc/release_notes/4.7.0.txt +0 -103
  115. data/doc/release_notes/4.8.0.txt +0 -175
  116. data/doc/release_notes/4.9.0.txt +0 -190
  117. data/spec/adapter_spec.rb +0 -4
  118. data/spec/adapters/db2_spec.rb +0 -170
  119. data/spec/adapters/mssql_spec.rb +0 -828
  120. data/spec/adapters/mysql_spec.rb +0 -1060
  121. data/spec/adapters/oracle_spec.rb +0 -371
  122. data/spec/adapters/postgres_spec.rb +0 -4476
  123. data/spec/adapters/spec_helper.rb +0 -44
  124. data/spec/adapters/sqlanywhere_spec.rb +0 -97
  125. data/spec/adapters/sqlite_spec.rb +0 -652
  126. data/spec/bin_spec.rb +0 -278
  127. data/spec/core/connection_pool_spec.rb +0 -1250
  128. data/spec/core/database_spec.rb +0 -2915
  129. data/spec/core/dataset_spec.rb +0 -5547
  130. data/spec/core/deprecated_spec.rb +0 -70
  131. data/spec/core/expression_filters_spec.rb +0 -1498
  132. data/spec/core/mock_adapter_spec.rb +0 -722
  133. data/spec/core/object_graph_spec.rb +0 -336
  134. data/spec/core/placeholder_literalizer_spec.rb +0 -166
  135. data/spec/core/schema_generator_spec.rb +0 -214
  136. data/spec/core/schema_spec.rb +0 -1844
  137. data/spec/core/spec_helper.rb +0 -24
  138. data/spec/core/version_spec.rb +0 -14
  139. data/spec/core_extensions_spec.rb +0 -763
  140. data/spec/core_model_spec.rb +0 -2
  141. data/spec/core_spec.rb +0 -1
  142. data/spec/deprecation_helper.rb +0 -30
  143. data/spec/extensions/accessed_columns_spec.rb +0 -51
  144. data/spec/extensions/active_model_spec.rb +0 -99
  145. data/spec/extensions/after_initialize_spec.rb +0 -28
  146. data/spec/extensions/any_not_empty_spec.rb +0 -23
  147. data/spec/extensions/arbitrary_servers_spec.rb +0 -109
  148. data/spec/extensions/association_dependencies_spec.rb +0 -125
  149. data/spec/extensions/association_multi_add_remove_spec.rb +0 -1041
  150. data/spec/extensions/association_pks_spec.rb +0 -423
  151. data/spec/extensions/association_proxies_spec.rb +0 -100
  152. data/spec/extensions/auto_literal_strings_spec.rb +0 -205
  153. data/spec/extensions/auto_validations_spec.rb +0 -229
  154. data/spec/extensions/blacklist_security_spec.rb +0 -95
  155. data/spec/extensions/blank_spec.rb +0 -69
  156. data/spec/extensions/boolean_readers_spec.rb +0 -93
  157. data/spec/extensions/boolean_subsets_spec.rb +0 -47
  158. data/spec/extensions/caching_spec.rb +0 -273
  159. data/spec/extensions/caller_logging_spec.rb +0 -52
  160. data/spec/extensions/class_table_inheritance_spec.rb +0 -750
  161. data/spec/extensions/column_conflicts_spec.rb +0 -75
  162. data/spec/extensions/column_select_spec.rb +0 -129
  163. data/spec/extensions/columns_introspection_spec.rb +0 -90
  164. data/spec/extensions/columns_updated_spec.rb +0 -35
  165. data/spec/extensions/composition_spec.rb +0 -248
  166. data/spec/extensions/connection_expiration_spec.rb +0 -151
  167. data/spec/extensions/connection_validator_spec.rb +0 -144
  168. data/spec/extensions/constant_sql_override_spec.rb +0 -24
  169. data/spec/extensions/constraint_validations_plugin_spec.rb +0 -300
  170. data/spec/extensions/constraint_validations_spec.rb +0 -439
  171. data/spec/extensions/core_refinements_spec.rb +0 -528
  172. data/spec/extensions/csv_serializer_spec.rb +0 -183
  173. data/spec/extensions/current_datetime_timestamp_spec.rb +0 -27
  174. data/spec/extensions/dataset_associations_spec.rb +0 -365
  175. data/spec/extensions/dataset_source_alias_spec.rb +0 -51
  176. data/spec/extensions/date_arithmetic_spec.rb +0 -181
  177. data/spec/extensions/datetime_parse_to_time_spec.rb +0 -169
  178. data/spec/extensions/def_dataset_method_spec.rb +0 -100
  179. data/spec/extensions/defaults_setter_spec.rb +0 -150
  180. data/spec/extensions/delay_add_association_spec.rb +0 -73
  181. data/spec/extensions/dirty_spec.rb +0 -222
  182. data/spec/extensions/duplicate_columns_handler_spec.rb +0 -104
  183. data/spec/extensions/eager_each_spec.rb +0 -62
  184. data/spec/extensions/eager_graph_eager_spec.rb +0 -100
  185. data/spec/extensions/empty_array_consider_nulls_spec.rb +0 -24
  186. data/spec/extensions/error_splitter_spec.rb +0 -18
  187. data/spec/extensions/error_sql_spec.rb +0 -20
  188. data/spec/extensions/escaped_like_spec.rb +0 -40
  189. data/spec/extensions/eval_inspect_spec.rb +0 -81
  190. data/spec/extensions/exclude_or_null_spec.rb +0 -15
  191. data/spec/extensions/finder_spec.rb +0 -260
  192. data/spec/extensions/force_encoding_spec.rb +0 -126
  193. data/spec/extensions/freeze_datasets_spec.rb +0 -31
  194. data/spec/extensions/graph_each_spec.rb +0 -113
  195. data/spec/extensions/hook_class_methods_spec.rb +0 -402
  196. data/spec/extensions/identifier_mangling_spec.rb +0 -201
  197. data/spec/extensions/implicit_subquery_spec.rb +0 -58
  198. data/spec/extensions/index_caching_spec.rb +0 -66
  199. data/spec/extensions/inflector_spec.rb +0 -183
  200. data/spec/extensions/input_transformer_spec.rb +0 -69
  201. data/spec/extensions/insert_conflict_spec.rb +0 -103
  202. data/spec/extensions/insert_returning_select_spec.rb +0 -72
  203. data/spec/extensions/instance_filters_spec.rb +0 -79
  204. data/spec/extensions/instance_hooks_spec.rb +0 -246
  205. data/spec/extensions/integer64_spec.rb +0 -22
  206. data/spec/extensions/inverted_subsets_spec.rb +0 -33
  207. data/spec/extensions/json_serializer_spec.rb +0 -336
  208. data/spec/extensions/lazy_attributes_spec.rb +0 -183
  209. data/spec/extensions/list_spec.rb +0 -291
  210. data/spec/extensions/looser_typecasting_spec.rb +0 -43
  211. data/spec/extensions/many_through_many_spec.rb +0 -2177
  212. data/spec/extensions/migration_spec.rb +0 -864
  213. data/spec/extensions/modification_detection_spec.rb +0 -93
  214. data/spec/extensions/mssql_optimistic_locking_spec.rb +0 -92
  215. data/spec/extensions/named_timezones_spec.rb +0 -218
  216. data/spec/extensions/nested_attributes_spec.rb +0 -815
  217. data/spec/extensions/null_dataset_spec.rb +0 -85
  218. data/spec/extensions/optimistic_locking_spec.rb +0 -127
  219. data/spec/extensions/pagination_spec.rb +0 -116
  220. data/spec/extensions/pg_array_associations_spec.rb +0 -802
  221. data/spec/extensions/pg_array_ops_spec.rb +0 -144
  222. data/spec/extensions/pg_array_spec.rb +0 -398
  223. data/spec/extensions/pg_auto_constraint_validations_spec.rb +0 -209
  224. data/spec/extensions/pg_enum_spec.rb +0 -118
  225. data/spec/extensions/pg_extended_date_support_spec.rb +0 -126
  226. data/spec/extensions/pg_hstore_ops_spec.rb +0 -238
  227. data/spec/extensions/pg_hstore_spec.rb +0 -219
  228. data/spec/extensions/pg_inet_ops_spec.rb +0 -102
  229. data/spec/extensions/pg_inet_spec.rb +0 -72
  230. data/spec/extensions/pg_interval_spec.rb +0 -103
  231. data/spec/extensions/pg_json_ops_spec.rb +0 -356
  232. data/spec/extensions/pg_json_spec.rb +0 -451
  233. data/spec/extensions/pg_loose_count_spec.rb +0 -23
  234. data/spec/extensions/pg_range_ops_spec.rb +0 -60
  235. data/spec/extensions/pg_range_spec.rb +0 -600
  236. data/spec/extensions/pg_row_ops_spec.rb +0 -61
  237. data/spec/extensions/pg_row_plugin_spec.rb +0 -60
  238. data/spec/extensions/pg_row_spec.rb +0 -363
  239. data/spec/extensions/pg_static_cache_updater_spec.rb +0 -93
  240. data/spec/extensions/pg_timestamptz_spec.rb +0 -17
  241. data/spec/extensions/prepared_statements_safe_spec.rb +0 -66
  242. data/spec/extensions/prepared_statements_spec.rb +0 -177
  243. data/spec/extensions/pretty_table_spec.rb +0 -123
  244. data/spec/extensions/query_spec.rb +0 -94
  245. data/spec/extensions/rcte_tree_spec.rb +0 -387
  246. data/spec/extensions/round_timestamps_spec.rb +0 -39
  247. data/spec/extensions/s_spec.rb +0 -60
  248. data/spec/extensions/schema_caching_spec.rb +0 -64
  249. data/spec/extensions/schema_dumper_spec.rb +0 -870
  250. data/spec/extensions/select_remove_spec.rb +0 -38
  251. data/spec/extensions/sequel_4_dataset_methods_spec.rb +0 -121
  252. data/spec/extensions/serialization_modification_detection_spec.rb +0 -98
  253. data/spec/extensions/serialization_spec.rb +0 -365
  254. data/spec/extensions/server_block_spec.rb +0 -135
  255. data/spec/extensions/server_logging_spec.rb +0 -45
  256. data/spec/extensions/sharding_spec.rb +0 -197
  257. data/spec/extensions/shared_caching_spec.rb +0 -151
  258. data/spec/extensions/single_table_inheritance_spec.rb +0 -347
  259. data/spec/extensions/singular_table_names_spec.rb +0 -22
  260. data/spec/extensions/skip_create_refresh_spec.rb +0 -18
  261. data/spec/extensions/spec_helper.rb +0 -70
  262. data/spec/extensions/split_array_nil_spec.rb +0 -24
  263. data/spec/extensions/split_values_spec.rb +0 -57
  264. data/spec/extensions/sql_comments_spec.rb +0 -33
  265. data/spec/extensions/sql_expr_spec.rb +0 -59
  266. data/spec/extensions/static_cache_cache_spec.rb +0 -35
  267. data/spec/extensions/static_cache_spec.rb +0 -471
  268. data/spec/extensions/string_agg_spec.rb +0 -90
  269. data/spec/extensions/string_date_time_spec.rb +0 -95
  270. data/spec/extensions/string_stripper_spec.rb +0 -68
  271. data/spec/extensions/subclasses_spec.rb +0 -79
  272. data/spec/extensions/subset_conditions_spec.rb +0 -38
  273. data/spec/extensions/symbol_aref_refinement_spec.rb +0 -28
  274. data/spec/extensions/symbol_as_refinement_spec.rb +0 -21
  275. data/spec/extensions/synchronize_sql_spec.rb +0 -124
  276. data/spec/extensions/table_select_spec.rb +0 -83
  277. data/spec/extensions/tactical_eager_loading_spec.rb +0 -402
  278. data/spec/extensions/thread_local_timezones_spec.rb +0 -67
  279. data/spec/extensions/throw_failures_spec.rb +0 -74
  280. data/spec/extensions/timestamps_spec.rb +0 -209
  281. data/spec/extensions/to_dot_spec.rb +0 -153
  282. data/spec/extensions/touch_spec.rb +0 -226
  283. data/spec/extensions/tree_spec.rb +0 -334
  284. data/spec/extensions/typecast_on_load_spec.rb +0 -86
  285. data/spec/extensions/unlimited_update_spec.rb +0 -21
  286. data/spec/extensions/update_or_create_spec.rb +0 -83
  287. data/spec/extensions/update_primary_key_spec.rb +0 -105
  288. data/spec/extensions/update_refresh_spec.rb +0 -59
  289. data/spec/extensions/uuid_spec.rb +0 -101
  290. data/spec/extensions/validate_associated_spec.rb +0 -52
  291. data/spec/extensions/validation_class_methods_spec.rb +0 -1040
  292. data/spec/extensions/validation_contexts_spec.rb +0 -31
  293. data/spec/extensions/validation_helpers_spec.rb +0 -525
  294. data/spec/extensions/whitelist_security_spec.rb +0 -157
  295. data/spec/extensions/xml_serializer_spec.rb +0 -213
  296. data/spec/files/bad_down_migration/001_create_alt_basic.rb +0 -4
  297. data/spec/files/bad_down_migration/002_create_alt_advanced.rb +0 -4
  298. data/spec/files/bad_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  299. data/spec/files/bad_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  300. data/spec/files/bad_timestamped_migrations/1273253853_3_create_users.rb +0 -3
  301. data/spec/files/bad_up_migration/001_create_alt_basic.rb +0 -4
  302. data/spec/files/bad_up_migration/002_create_alt_advanced.rb +0 -3
  303. data/spec/files/convert_to_timestamp_migrations/001_create_sessions.rb +0 -9
  304. data/spec/files/convert_to_timestamp_migrations/002_create_nodes.rb +0 -9
  305. data/spec/files/convert_to_timestamp_migrations/003_3_create_users.rb +0 -4
  306. data/spec/files/convert_to_timestamp_migrations/1273253850_create_artists.rb +0 -9
  307. data/spec/files/convert_to_timestamp_migrations/1273253852_create_albums.rb +0 -9
  308. data/spec/files/double_migration/001_create_sessions.rb +0 -9
  309. data/spec/files/double_migration/002_create_nodes.rb +0 -19
  310. data/spec/files/double_migration/003_3_create_users.rb +0 -4
  311. data/spec/files/duplicate_integer_migrations/001_create_alt_advanced.rb +0 -4
  312. data/spec/files/duplicate_integer_migrations/001_create_alt_basic.rb +0 -4
  313. data/spec/files/duplicate_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  314. data/spec/files/duplicate_timestamped_migrations/1273253853_create_nodes.rb +0 -9
  315. data/spec/files/duplicate_timestamped_migrations/1273253853_create_users.rb +0 -4
  316. data/spec/files/empty_migration/001_create_sessions.rb +0 -9
  317. data/spec/files/empty_migration/002_create_nodes.rb +0 -0
  318. data/spec/files/empty_migration/003_3_create_users.rb +0 -4
  319. data/spec/files/integer_migrations/001_create_sessions.rb +0 -9
  320. data/spec/files/integer_migrations/002_create_nodes.rb +0 -9
  321. data/spec/files/integer_migrations/003_3_create_users.rb +0 -4
  322. data/spec/files/interleaved_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  323. data/spec/files/interleaved_timestamped_migrations/1273253850_create_artists.rb +0 -9
  324. data/spec/files/interleaved_timestamped_migrations/1273253851_create_nodes.rb +0 -9
  325. data/spec/files/interleaved_timestamped_migrations/1273253852_create_albums.rb +0 -9
  326. data/spec/files/interleaved_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  327. data/spec/files/missing_integer_migrations/001_create_alt_basic.rb +0 -4
  328. data/spec/files/missing_integer_migrations/003_create_alt_advanced.rb +0 -4
  329. data/spec/files/missing_timestamped_migrations/1273253849_create_sessions.rb +0 -9
  330. data/spec/files/missing_timestamped_migrations/1273253853_3_create_users.rb +0 -4
  331. data/spec/files/reversible_migrations/001_reversible.rb +0 -5
  332. data/spec/files/reversible_migrations/002_reversible.rb +0 -5
  333. data/spec/files/reversible_migrations/003_reversible.rb +0 -5
  334. data/spec/files/reversible_migrations/004_reversible.rb +0 -5
  335. data/spec/files/reversible_migrations/005_reversible.rb +0 -10
  336. data/spec/files/reversible_migrations/006_reversible.rb +0 -10
  337. data/spec/files/reversible_migrations/007_reversible.rb +0 -10
  338. data/spec/files/timestamped_migrations/1273253849_create_sessions.rb +0 -9
  339. data/spec/files/timestamped_migrations/1273253851_create_nodes.rb +0 -9
  340. data/spec/files/timestamped_migrations/1273253853_3_create_users.rb +0 -4
  341. data/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +0 -4
  342. data/spec/files/transaction_specified_migrations/002_create_basic.rb +0 -4
  343. data/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +0 -3
  344. data/spec/files/transaction_unspecified_migrations/002_create_basic.rb +0 -3
  345. data/spec/files/uppercase_timestamped_migrations/1273253849_CREATE_SESSIONS.RB +0 -9
  346. data/spec/files/uppercase_timestamped_migrations/1273253851_CREATE_NODES.RB +0 -9
  347. data/spec/files/uppercase_timestamped_migrations/1273253853_3_CREATE_USERS.RB +0 -4
  348. data/spec/guards_helper.rb +0 -59
  349. data/spec/integration/associations_test.rb +0 -2597
  350. data/spec/integration/database_test.rb +0 -113
  351. data/spec/integration/dataset_test.rb +0 -2037
  352. data/spec/integration/eager_loader_test.rb +0 -687
  353. data/spec/integration/migrator_test.rb +0 -262
  354. data/spec/integration/model_test.rb +0 -203
  355. data/spec/integration/plugin_test.rb +0 -2423
  356. data/spec/integration/prepared_statement_test.rb +0 -405
  357. data/spec/integration/schema_test.rb +0 -903
  358. data/spec/integration/spec_helper.rb +0 -71
  359. data/spec/integration/timezone_test.rb +0 -86
  360. data/spec/integration/transaction_test.rb +0 -603
  361. data/spec/integration/type_test.rb +0 -127
  362. data/spec/model/association_reflection_spec.rb +0 -803
  363. data/spec/model/associations_spec.rb +0 -4738
  364. data/spec/model/base_spec.rb +0 -875
  365. data/spec/model/class_dataset_methods_spec.rb +0 -146
  366. data/spec/model/dataset_methods_spec.rb +0 -198
  367. data/spec/model/eager_loading_spec.rb +0 -2377
  368. data/spec/model/hooks_spec.rb +0 -370
  369. data/spec/model/inflector_spec.rb +0 -26
  370. data/spec/model/model_spec.rb +0 -956
  371. data/spec/model/plugins_spec.rb +0 -429
  372. data/spec/model/record_spec.rb +0 -2118
  373. data/spec/model/spec_helper.rb +0 -46
  374. data/spec/model/validations_spec.rb +0 -220
  375. data/spec/model_no_assoc_spec.rb +0 -1
  376. data/spec/model_spec.rb +0 -1
  377. data/spec/plugin_spec.rb +0 -1
  378. data/spec/sequel_coverage.rb +0 -15
  379. data/spec/sequel_warning.rb +0 -4
  380. data/spec/spec_config.rb +0 -12
@@ -1,293 +0,0 @@
1
- = Deprecated Features
2
-
3
- * The identifier_columns plugin is now deprecated. There is no reason
4
- to use it when Sequel.split_symbols = false, which will be the
5
- default in Sequel 5.
6
-
7
- * The filter_having, hash_aliases, and sequel_3_dataset_methods
8
- extensions are now deprecated. They only existed for backwards
9
- compatibility with Sequel 3.
10
-
11
- * The query_literals extension is now deprecated. It changes behavior
12
- in a way that makes SQL injections more likely.
13
-
14
- * The meta_def extension is now deprecated. It is no longer necessary,
15
- since on ruby 1.9+ you can use define_singleton_method.
16
-
17
- * The empty_array_ignore_nulls extension has been deprecated. It
18
- has been a no-op since Sequel 4.25.0.
19
-
20
- * The cti_base_model, cti_key, and cti_model_map class methods in
21
- the class_table_inheritance plugin are now deprecated. Use
22
- cti_models.first instead of cti_base_model, sti_key
23
- instead of cti_key, and sti_model_map instead of cti_model_map.
24
-
25
- * The :strict option in the nested_attributes plugin is now deprecated.
26
- Switch to using the :unmatched_pk option.
27
-
28
- * Database#reset_conversion_procs on PostgreSQL is now deprecated.
29
- There will be no need to call it in Sequel 5.
30
-
31
- * Using global conversion procs added by the pg_* extensions, without
32
- loading the pg_* extension into the Database instance, are now
33
- deprecated. Additionally, using PGArray.register or PGRange.register
34
- to register global types is now also deprecated. Use
35
- Database#register_array_type or Database#register_range_type instead
36
- to register the types on a per-Database basis.
37
-
38
- * Treating :natural_inner join type as NATURAL LEFT JOIN on MySQL is
39
- now deprecated. MySQL doesn't support NATURAL INNER JOIN, but if
40
- you were going to convert it, NATURAL JOIN would make more sense.
41
-
42
- * Unexpected values passed to Dataset#insert_conflict on SQLite are
43
- now deprecated. Only values that result in one of the following
44
- strings will be allowed in Sequel 5: ROLLBACK, ABORT, FAIL, IGNORE,
45
- and REPLACE.
46
-
47
- * The Dataset#and, #exclude_where, #interval, and #range methods
48
- are now deprecated. Undeprecated copies are now available in the
49
- new sequel_4_dataset_methods extension.
50
-
51
- * Model.<< is now deprecated. Intuitivately, you would except this
52
- to call Model.create and return the Model class, but it calls <<
53
- on the model's dataset and returns the dataset.
54
-
55
- * The Sequel::Postgres::PG_TYPES constant is now deprecated. All
56
- conversion procs should now be added on a per-Database basis using
57
- add_conversion_proc or add_named_conversion_proc. The following
58
- private Database methods related to conversion procs are now
59
- deprecated, though some are still called internally and therefore
60
- do not have deprecation warnings:
61
-
62
- * add_named_conversion_procs
63
- * conversion_procs_updated
64
- * convert_named_procs_to_procs
65
- * copy_conversion_procs
66
- * get_conversion_procs
67
-
68
- Related to this, loading the sequel/adapters/utils/pg_types.rb file
69
- is now deprecated.
70
-
71
- * The following adapter or database specific global accessors for setting
72
- defaults are now deprecated:
73
-
74
- * Sequel::DB2.use_clob_as_blob
75
- * Sequel::IBMDB.convert_smallint_to_bool
76
- * Sequel::MySQL.convert_invalid_date_time
77
- * Sequel::MySQL.convert_tinyint_to_bool
78
- * Sequel::MySQL.default_charset
79
- * Sequel::MySQL.default_collate
80
- * Sequel::MySQL.default_engine
81
- * Sequel::Postgres.use_iso_date_format
82
- * Sequel::Postgres.client_min_messages
83
- * Sequel::Postgres.force_standard_strings
84
- * Sequel::SqlAnywhere.convert_smallint_to_bool
85
-
86
- Use the Database instance accessors or Database options instead to
87
- change behavior.
88
-
89
- * The following adapter or database specific dataset mutation methods are
90
- now deprecated:
91
-
92
- * convert_smallint_to_bool= (ibmdb adapter, SQLAnywhere)
93
- * convert_types= (jdbc adapter)
94
- * mssql_unicode_strings= (Microsoft SQL Server)
95
-
96
- Use the with_* methods which return a modified copy of the dataset
97
- instead of these mutation methods.
98
-
99
- * The Dataset#non_sql_options private method is now deprecated.
100
- External adapters that overrode this method should switch to
101
- overriding Dataset#non_sql_option?.
102
-
103
- * The Database#timestamp_convertor private method in the jdbc adapter
104
- is now deprecated. Users should switch to method(:timestamp_convert).
105
-
106
- * Modification of the Sequel::JDBC::TypeConvertor class is now
107
- deprecated. External jdbc subadapters that were using this to add
108
- custom conversion procs should be modified.
109
-
110
- * Having the pg_row extension respect conversion procs for subtypes
111
- added after the registeration of the composite type is now deprecated.
112
- Now, all subtypes should have the appropriate conversion proc added
113
- before the composite type is registered.
114
-
115
- * Array#sql_array in the core_extensions extension is now deprecated.
116
- Switch to using Array#sql_value_list.
117
-
118
- * The SEQUEL_POSTGRES_USES_PG constant added by the postgres adapter
119
- is now deprecated. Sequel::Postgres::USES_PG should be used instead.
120
-
121
- * Many more internal Sequel constants have been deprecated.
122
-
123
- = New Features
124
-
125
- * The Model#to_json and Dataset#to_json methods in the json_serializer
126
- plugin now support a block. This block is called with the
127
- hash/array that would have be serialized to JSON, and the block
128
- should return the object to serialize. This makes it easy to
129
- customize the JSON output by adding new entries, or wrapping the
130
- object in other object.
131
-
132
- The Dataset#to_json method supports an :instance_block option, which
133
- should be a proc that will be passed to Model#to_json.
134
-
135
- In order to implement this, Sequel.object_to_json now passes any
136
- block given to the to_json call on the object. If you are
137
- overriding Sequel.object_to_json, you are responsible for making
138
- sure the block is passed appropriately.
139
-
140
- * The association_pks plugin now supports a
141
- :association_pks_use_associated_table association option for
142
- many_to_many associations. If this option is used, instead of just
143
- looking at the join table, the association_pks getter will get the
144
- primary keys from the associated table. This can be useful if the
145
- association's right_primary_key does not match the associated
146
- model's primary key, and you are interested in the primary keys of
147
- the associated objects. If this option is used, no association_pks
148
- setter method is created.
149
-
150
- * Dataset#as_hash has been added as a replacement to #to_hash.
151
- If you want, you can now undef_method :to_hash and use
152
- as_hash and things will work. Doing so can work around
153
- problems when using keyword argument splats in ruby 2.0+.
154
- For example:
155
-
156
- def foo(*a, **b)
157
- end
158
-
159
- foo(City.order(:id))
160
-
161
- results in foo being called with a being [] and b being
162
- City.order(:id).to_hash, which is unexpected and undesired
163
- behavior. If you want to use keyword argument splats or other
164
- places where ruby will call to_hash implicitly if it is defined,
165
- using undef_method :to_hash is recommended.
166
-
167
- * A Database#add_conversion_proc method has been added on
168
- PostgreSQL. This method takes a type OID and either a block
169
- or a callable argument to use as the conversion proc for the
170
- type OID.
171
-
172
- * The following adapter or database specific Database accessors
173
- have been added for changing settings on a per-Database basis:
174
-
175
- * convert_smallint_to_bool (ibmdb adapter)
176
- * default_charset (MySQL)
177
- * default_collate (MySQL)
178
- * default_engine (MySQL)
179
- * use_clob_as_blob (DB2)
180
-
181
- * A Dataset#with_convert_types method has been added to the jdbc
182
- adapter, for returning a modified dataset with the convert_types
183
- setting changed.
184
-
185
- = Other Improvements
186
-
187
- * Using the postgres adapter with pg 0.21.0 no longer results in
188
- deprecation warnings.
189
-
190
- * When using the class_table_inheritance plugin and using a direct
191
- subclass of the parent class that does not use a separate table,
192
- as well as using the :alias option, the insert SQL used is now
193
- correct. Previously, it attempted to insert into a subquery,
194
- which is not valid SQL.
195
-
196
- Additionally, the dataset for such a model no longer uses a
197
- subquery, since there is no reason to do so as there is no join.
198
-
199
- * Model.skip_auto_validations(:not_null) in the auto_validations
200
- plugin now skips not null checks for columns with default
201
- values, in addition to skipping not null checks for columns
202
- without default values.
203
-
204
- * The static_cache plugin now supports the options hash argument
205
- to to_hash and to_hash_groups. Currently, it only supports
206
- the :hash option, since the :all option doesn't make sense.
207
-
208
- * When touching associations in the touch plugin, clear the
209
- cached association, because otherwise the cached values will
210
- be stale.
211
-
212
- * The validation_class_methods plugin no longer requires the
213
- blank extension.
214
-
215
- * The validation_helpers plugin methods that support the
216
- :allow_blank option now work correctly if the blank extension
217
- is not loaded.
218
-
219
- * Loading the column_conflicts plugin into a model a second time
220
- no longer removes existing column conflict settings.
221
-
222
- * On SQLite 3.8.8+, indexes automatically created from unique
223
- constraints are now included in Database#indexes output.
224
-
225
- * On SQLite 3.8.8+, partial indexes are now excluded from
226
- Database#indexes output.
227
-
228
- * Database#indexes on PostgreSQL 9.5+ now uses a simpler query
229
- with the array_position function.
230
-
231
- * Database#foreign_key_list on PostgreSQL now uses a single
232
- query instead of two queries, and also uses the array_position
233
- function on PostgreSQL 9.5+ to simplify the queries.
234
-
235
- * On PostgreSQL and Derby, when calling Database#create_table
236
- with the :ignore_index_errors option inside a transaction,
237
- a savepoint is used around each index creation so that an
238
- index error does not cause the entire transaction to fail.
239
- A savepoint is also used on Microsoft SQL Server, but it
240
- appears that Microsoft SQL Server rolls back the entire
241
- transaction if CREATE INDEX returns an error, instead of
242
- just rolling back to the savepoint.
243
-
244
- * Encoding is now preserved when parsing PostgreSQL arrays in the
245
- pg_array extension.
246
-
247
- * Database#copy_table in the postgres adapter now does not
248
- hide the underlying exception if an exception is raised
249
- during processing.
250
-
251
- * Database#copy_into in the jdbc/postgresql adapter now does not
252
- hide the underlying exception if an exception is raised
253
- during processing.
254
-
255
- * Database#copy_into in the jdbc/postgresql adapter now
256
- respects the :server option for using a specific shard.
257
-
258
- * Calling #reset_conversion_procs on Database instance that
259
- uses the pg_hstore extension now results in the hstore
260
- type still being parsed. Previously, the hstore conversion
261
- proc would be dropped.
262
-
263
- * The postgres adapter no longer monkey-patches postgres-pr if it
264
- uses that as the driver.
265
-
266
- * Multiple thread-safety issues in the mock adapter have been
267
- fixed.
268
-
269
- * Thread safety issues when simultaneously loading multiple
270
- adapters that access PostgreSQL have been fixed.
271
-
272
- * Hash allocations have been reduced in the csv_serializer,
273
- json_serializer, and xml_serializer plugins.
274
-
275
- * The deprecated Sequel::Model::ANONYMOUS_MODEL_CLASSES
276
- constant is now correctly populated with classes created
277
- by Sequel::Model(). This was broken in starting in
278
- Sequel 4.45.0.
279
-
280
- = Backwards Compatibility
281
-
282
- * The pg_array_associations plugin now loads the pg_array
283
- extension into the Database instance if it is not already
284
- loaded. This can break cases where the pg_array_associations
285
- plugin is used on a non-PostgreSQL database.
286
-
287
- * Support for using the old postgres driver has been removed
288
- from the postgres adapter. The postgres adapter now only
289
- supports pg and postgres-pr.
290
-
291
- * When the postgres-pr driver is being used by the postgres
292
- adapter, connecting to a database is only allowed if
293
- standard strings are being forced (the default).
@@ -1,222 +0,0 @@
1
- = Forward Compatibility
2
-
3
- Sequel 4.49.0 will be the last minor release of Sequel 4. While the
4
- vast majority of backwards incompatible changes in Sequel 5 have
5
- deprecation warnings in 4.49.0, there are a few changes that do
6
- not. Here is a brief list of changes coming in Sequel 5 that
7
- do not have deprecation warnings (note that this list may not be
8
- exhaustive):
9
-
10
- * The {before,after,around}_validation hooks will always be called
11
- when saving, even if the validate: false option is used. This
12
- will allow you to use the before_validation hook to make changes
13
- to the model instance that are required before validation and
14
- before saving even if not validating. Currently, you would have
15
- to use both a before_save and before_validation hook, which would
16
- both be run on normal instance saving.
17
-
18
- * Getting values for newly created model instances after insertion
19
- now happens before after_create is called, instead of after.
20
- This behavior is currently available via the before_after_save
21
- plugin, and and will become the default behavior.
22
-
23
- * Sequel will now immediately attempt to the connect to the database
24
- when a Database instance is created, in order to fail fast. This
25
- behavior is currently available via the test: true option, and
26
- will become the default behavior. You can force not testing the
27
- connection by using the test: false option.
28
-
29
- * The validates_unique method in the validation_helpers plugin will
30
- now only check for uniqueness by default if the record is new or
31
- one of the related columns has been modified by default. You can
32
- use only_if_modified: false to force the uniqueness check.
33
-
34
- * Database schema methods and schema generator methods will return
35
- nil instead of some internal value.
36
-
37
- * Many cases where Sequel uses send internally will be switched to
38
- public_send so they only call public methods, unless it is
39
- specifically expected that they will call private methods.
40
-
41
- * Model association hooks will be nil instead of empty arrays by
42
- default. They will only be arrays if that hook has been set for
43
- the association.
44
-
45
- * Internal uses of instance_eval with a block will be changed to
46
- instance_exec. This will allow them to be used with lambdas that
47
- take no arguments. Unfortunately, it will break the case where a
48
- lambda is currently used that takes one argument.
49
-
50
- * Most internal constants will be frozen, unless there is a
51
- requirement that they be modified at runtime.
52
-
53
- * The @was_new instance variable set during model instance creation
54
- will be removed.
55
-
56
- = Deprecated Features
57
-
58
- * Model association before callbacks returning false canceling the
59
- action is now deprecated. The callbacks should now call
60
- Model#cancel_action to cancel the action.
61
-
62
- * Loading plugins by requiring them via sequel_#{plugin} is now
63
- deprecated. Affected plugins should move the plugin file so it can
64
- be required via sequel/plugins/#{plugin}.
65
-
66
- * In the mock adapter, Dataset#autoid=, #_fetch=, and #numrows= are
67
- now deprecated. They modified the dataset itself, which would not
68
- work for frozen datasets. Dataset#with_autoid, #with_fetch,
69
- and #with_numrows should be used instead, which return a modified
70
- copy.
71
-
72
- * In the null_dataset extension, Dataset#nullify! is now deprecated.
73
- It modified the dataset itself, which would not work for frozen
74
- datasets. Dataset#nullify should be used instead, which returns a
75
- modified copy.
76
-
77
- * Modifying the validation_helpers plugin DEFAULT_OPTIONS hash is now
78
- deprecated. Any change to the default options should be done by
79
- overriding the Model#default_validation_helpers_options private
80
- method.
81
-
82
- * Modifying ConnectionPool::CONNECTION_POOL_MAP to support an
83
- external connection pool is now deprecated. To use an external
84
- connection pool, pass the pool class via the :pool_class
85
- Database option. Additionally, using a :pool_class option that
86
- is not a class or a symbol for one of the default connection
87
- pools is also deprecated.
88
-
89
- * ConnectionPool#created_count is now deprecated. This method was
90
- misnamed, as it was in alias to size, but the name implies it
91
- returns how many connections have been created, as opposed to how
92
- many connections are still in the pool.
93
-
94
- * Sequel::SQL::Function#f is now deprecated, switch to using #name
95
- instead.
96
-
97
- * Sequel::SQL::AliasedExpression#aliaz is now deprecated, switch
98
- to using #alias instead.
99
-
100
- * The :eager_loading_predicate_key association option and
101
- eager_loading_predicate_key association method are now deprecated.
102
- The predicate_key option and method should be used instead.
103
-
104
- * The cti_columns class method in the class_table_inheritance plugin
105
- is now deprecated.
106
-
107
- * The serialized_columns class method in the serialization plugin
108
- is now deprecated.
109
-
110
- * Having ds.join_table(:table, :cross, :a=>:b) be treated as an
111
- inner join on MySQL is now deprecated.
112
-
113
- * Sequel::IBMDB::Connection#prepared_statements= in the ibmdb
114
- adapter is now deprecated.
115
-
116
- * Additional internal constants are now deprecated.
117
-
118
- = New Features
119
-
120
- * Database#extend_datasets and Database#with_extend if given a block
121
- now use a Dataset::DatasetModule instance instead of a plain Module
122
- instance. Dataset::DatasetModule is a subset of
123
- Model::DatasetModule, and allows for the easy creation of dataset
124
- methods that can perform caching for frozen datasets.
125
-
126
- Defining dataset methods is done by calling methods with the same
127
- name as dataset methods inside the extend_datasets or with_extend
128
- block:
129
-
130
- DB.extend_datasets do
131
- order :by_id, :id
132
- select :with_id_and_name, :id, :name
133
- where :active, :active
134
- end
135
-
136
- This is equivalent to:
137
-
138
- DB.extend_datasets do
139
- def by_id
140
- order(:id)
141
- end
142
-
143
- def with_id_and_name
144
- select(:id, :name)
145
- end
146
-
147
- def active
148
- where(:active)
149
- end
150
- end
151
-
152
- Except that for frozen datasets (the default in Sequel 5),
153
- code like:
154
-
155
- 100.times do
156
- DB[:table].active.with_id_and_name.by_id
157
- end
158
-
159
- will only allocate 4 datasets instead of 400, and can be
160
- 3-4 times faster.
161
-
162
- * Dataset#where_{all,each,single_value} are now core dataset methods
163
- instead of just model dataset methods. These methods allow you to
164
- replace:
165
-
166
- dataset.where(cond).all
167
- dataset.where(cond).each{}
168
- dataset.where(cond).single_value
169
-
170
- with:
171
-
172
- dataset.where_all(cond)
173
- dataset.where_each(cond){}
174
- dataset.where_single_value(cond)
175
-
176
- The advantage of #where_{all,each,single_value} is that frozen
177
- datasets can take potentially advantage of caching and perform
178
- 70%-300% faster.
179
-
180
- * Oracle 12 native limit/offset support is now supported, which
181
- in particular makes offset queries much faster as they don't
182
- have to be emulated using the row_number window function.
183
-
184
- * Dataset#paged_each in the mysql2 adapter now supports a
185
- :stream=>false option to disable streaming and fallback to
186
- the default implementation.
187
-
188
- * The postgres adapter now supports the :sslrootcert option
189
- directly, you no longer need to specify it using the
190
- :driver_options hash.
191
-
192
- * The single_table_inheritance plugin now supports an
193
- sti_class_from_sti_key method for getting the appropriate
194
- subclass for the given key.
195
-
196
- = Other Improvements
197
-
198
- * Using the dataset_associations plugin with a many_through_many
199
- association that joins to the same table multiple times is now
200
- handled correctly by automatically aliasing the table
201
- appropriately.
202
-
203
- * On Ruby 2.1+, Sequel::Error#cause will use wrapped_exception
204
- if one is set. This doesn't result in different behavior in
205
- most cases, but it can in cases where nested exception handling
206
- is done and Sequel tries to raise the most relevant exception.
207
-
208
- * Using the composition plugin with the :mapping option now works
209
- correctly when using the column_conflicts plugin.
210
-
211
- * The validation_helpers plugin's validates_max_length method
212
- now correctly gets the default :nil_message option from
213
- the default_validation_helpers_options method instead of
214
- looking at the plugin defaults.
215
-
216
- * The duplicate_columns_handler extension no longer makes the
217
- Dataset#columns= method public.
218
-
219
- * On H2 1.4+, alter_table add_primary_key now works correctly.
220
-
221
- * The jdbc/sqlserver adapter's datetimeoffset type handling now
222
- works with more JDBC driver versions.