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,169 +0,0 @@
1
- = New Features
2
-
3
- * A modification_detection plugin has been added, for automatic
4
- detection of in-place column value modifications. This makes
5
- it so you don't have to call Model#modified! manually when
6
- changing a value in place.
7
-
8
- * A column_select plugin has been added, for automatically
9
- selecting explicitly qualified columns in model datasets.
10
- Example:
11
-
12
- Sequel::Model.plugin :column_select
13
- class Album < Sequel::Model
14
- end
15
- Album.dataset.sql
16
- # SELECT albums.id, albums.name, albums.artist_id
17
- # FROM albums
18
-
19
- * An insert_returning_select plugin has been added, for automatically
20
- setting up RETURNING clauses for models that select explicit
21
- columns. This is useful when using the column_select or
22
- lazy_attributes plugins.
23
-
24
- * A pg_enum extension has been added, for easier dealing with
25
- PostgreSQL enum types. The possible values for the type
26
- are then returned in the schema hashes under the :enum_values
27
- key. It also adds create_enum, drop_enum, and add_enum_value
28
- Database methods for migration support.
29
-
30
- * A round_timestamps extension has been added, for automatically
31
- rounding timestamps to database supported precision when
32
- literalizing.
33
-
34
- * A dataset_source_alias extension has been added, for automatically
35
- aliasing datasets to their first source, instead of using t1, t2.
36
- Example:
37
-
38
- DB.from(:a, DB[:b]).sql
39
- # SELECT * FROM a, (SELECT * FROM b) AS t1
40
-
41
- DB.extension(:dataset_source_alias)
42
- DB.from(:a, DB[:b]).sql
43
- # SELECT * FROM a, (SELECT * FROM b) AS b
44
-
45
- * On Microsoft SQL Server, Sequel now emulates RETURNING support
46
- using the OUTPUT clause, as long as only simple column references
47
- are used.
48
-
49
- = Other Improvements
50
-
51
- * A regression has been fixed in the timestamps and table
52
- inheritance plugins, where column values would not be
53
- saved when skipping validations. This was first broken in
54
- 4.11.0.
55
-
56
- * A regression has been fixed on JRuby and Rubinius when using
57
- Sequel::Model(dataset) if the dataset needs to literalize a
58
- symbol (and most do). This was first broken in 4.10.0.
59
-
60
- * Primary keys are now automatically setup for models even if
61
- the models select specific columns.
62
-
63
- * The lazy_attributes plugin now uses qualified columns in its
64
- selection, instead of unqualified columns.
65
-
66
- * When looking up model instances by primary key, Sequel now uses a
67
- qualified primary key if the model uses a joined dataset.
68
-
69
- * For associations that require joins, Sequel will now use the
70
- associated model's selection directly (instead of
71
- associated_table.*) if the associated model's selection consists
72
- solely of qualified columns.
73
-
74
- Among other things, this means that a many_to_many association to
75
- a model that uses lazy attributes will not eagerly load the lazy
76
- attributes by default.
77
-
78
- * Model#save now uses insert_select if there is an existing
79
- RETURNING clause used by the underlying dataset, even if the model
80
- selects specific columns.
81
-
82
- * In Dataset#insert, aliased tables are now automatically unaliased.
83
- This allows you to use a dataset with an aliased table and have
84
- full SELECT/INSERT/UPDATE/DELETE support, assuming the database
85
- supports aliased tables in UPDATE and DELETE.
86
-
87
- * Dataset#graph now qualifies columns correctly if the current
88
- dataset is a joined dataset and it moves the current dataset to
89
- a subselect.
90
-
91
- * Dataset#joined_dataset? is now a public method, and can be used to
92
- determine whether the dataset uses a join, either explicitly via
93
- JOIN or implicitly via multiple FROM tables.
94
-
95
- * The Dataset#unqualified_column_for helper method has been added,
96
- returning the unqualified version of a possibly qualified column.
97
-
98
- * The composition and serialization plugins now support validations
99
- on the underlying columns. Previously, they didn't update the
100
- underlying columns until after validations were performed. This
101
- works better when using the auto_validations plugin.
102
-
103
- * The class_table_inheritance plugin now uses JOIN ON instead of
104
- JOIN USING, which makes it work on all databases that Sequel
105
- supports. Additionally, the plugin now explicitly selects
106
- qualified columns from all of the tables.
107
-
108
- * The list plugin now adds an after_destroy hook that will renumber
109
- rows after the current row, similar to how moving existing values
110
- in the list works.
111
-
112
- * The pg_json extension is now faster when json column value is a
113
- plain string, number, true, false, or nil, if the underlying json
114
- library handles such values natively.
115
-
116
- * External jdbc, odbc, and do subadapters can now be loaded
117
- automatically without requiring them first, assuming proper
118
- support in the external subadapter.
119
-
120
- * When using create_table on MySQL, correctly handle the :key
121
- option to when calling foreign_key with a column reference.
122
-
123
- * On Oracle, use all_tab_cols instead of user_tab_cols for getting
124
- default values when parsing the schema. This makes it work if the
125
- user does not own the table.
126
-
127
- * On Oracle, use all_tables and all_views for Database#tables and
128
- Database#views. This works better for users with limited rights.
129
-
130
- * Additional disconnect errors are now recognized in the postgres and
131
- jdbc/mysql adapters.
132
-
133
- * Sequel::Model now uses copy constructors (e.g. initialize_copy)
134
- instead of overriding #dup and #clone.
135
-
136
- * The rake default task now runs plugin specs in addition to
137
- core and model specs.
138
-
139
- = bin/sequel Improvements
140
-
141
- * Add the sequel lib directory to the front of the load path
142
- instead of the end, fixing cases where you end up requiring an
143
- old version of the sequel gem (e.g. by using sequel_pg).
144
-
145
- * Add the sequel lib directory as an absolute path, fixing cases
146
- where you later change the current directory.
147
-
148
- * Require sequel later in the code, so that bin/sequel -h doesn't
149
- need to require sequel, and full backtrace is not printed if
150
- requiring sequel raises an error (unless -t is used).
151
-
152
- * If an exception is raised, put a newline between the exception
153
- message and backtrace.
154
-
155
- * Don't allow usage of -C with any of -cdDmS.
156
-
157
- * If sequel -v is given along with a database or code string to
158
- execute, print the Sequel version but also continue, similar
159
- to how ruby -v works.
160
-
161
- = Backwards Compatibility
162
-
163
- * The switch from JOIN ON to JOIN USING in the
164
- class_table_inheritance can break certain usage, such as querying
165
- using unqualified primary key. Users should switch to using a
166
- qualified primary key instead.
167
-
168
- * Calling Dataset#returning when the underlying database does not
169
- support it now raises an Error.
@@ -1,68 +0,0 @@
1
- = New Features
2
-
3
- * Delayed evaluation blocks can now accept the dataset literalizing
4
- the delayed evaluation as an argument. This makes it so the
5
- delayed evaluation result can depend on the dataset doing the
6
- literalization:
7
-
8
- ds = DB[:a].where(Sequel.delay do |ds|
9
- {Sequel.qualify(ds.first_source, :col)=>1}
10
- end)
11
- ds.sql # SELECT * FROM a WHERE (a.col = 1)
12
- ds.from(:b).sql # SELECT * FROM b WHERE (b.col = 1)
13
-
14
- * Database#create_trigger on PostgreSQL now supports a :when option
15
- to create a filter for the trigger, so that it is only triggered
16
- when the filter condition is true.
17
-
18
- * You can now override the cache key prefix in the caching plugin
19
- by overriding the cache_key_prefix class method. This can be
20
- useful when using a table inheritance plugin.
21
-
22
- = Other Improvements
23
-
24
- * You can now pass arbitrary types to Dataset#where and related
25
- methods. Previously, if a type was not explicitly handled, an
26
- exception would be raised. Now you can pass any object that can
27
- be literalized. The only exception is that you can't pass
28
- Numeric objects, since #where and similar methods should
29
- only deal with boolean expressions.
30
-
31
- * association_join and related methods now work correctly if the
32
- dataset already has an explicit selection.
33
-
34
- * A regression has been fixed in the class_table_inheritance plugin
35
- when using a hierarchy of more than 2 levels, when using the
36
- superclass to load a subclass instance more than 2 levels below,
37
- and later attempting to load a column contained in one of the
38
- middle tables.
39
-
40
- * When using _delete or _remove keys in the nested_attributes plugin
41
- to remove existing associated objects, the associated objects are
42
- now deleted from the cached association array at time of call.
43
- This is for consistency when adding new associated objects, where
44
- the new associated objects are added to the cached association
45
- array at time of call.
46
-
47
- * The nested_attributes plugin now handles composite primary keys
48
- correctly when working around validation issues for one_to_one
49
- and one_to_many associations.
50
-
51
- * If exception A is raised during a transaction, and exception B
52
- is raised while attempting to rollback the transaction, the
53
- transaction code will now raise exception A instead of exception B.
54
-
55
- * An additional serialization failure is now detected on PostgreSQL.
56
-
57
- * An additional disconnect error is now recognized in the jdbc/jtds
58
- adapter.
59
-
60
- * The code examples in the RDoc are now syntax highlighted, and
61
- many minor fixes to the code examples in the RDoc were made.
62
- Additionally, many other improvements were made to the RDoc.
63
-
64
- = Backwards Compatibility
65
-
66
- * Dataset#delayed_evaluation_sql_append now accepts the delayed
67
- evaluation as an argument, instead of the callable contained by the
68
- delayed evaluation.
@@ -1,56 +0,0 @@
1
- = New Features
2
-
3
- * fdbsql and jdbc/fdbsql adapters have been added, for connecting to
4
- FoundationDB SQL Layer.
5
-
6
- * A split_values plugin has been added, for moving non-column entries
7
- from the values hash into a separate hash. This allows you to
8
- select additional columns (e.g. computed columns) when retrieving
9
- model instances, and be able to save those instances without
10
- removing the additional columns.
11
-
12
- * A Sequel::Model.cache_associations accessor has been added, which
13
- can be set to false to not cache any association metadata. This
14
- can fix issues in a development environment that uses code
15
- reloading.
16
-
17
- * The active_model plugin now supports activemodel 4.2.0beta1.
18
-
19
- * More PostgreSQL array types are handled automatically by the
20
- pg_array extension, such as xml[] and uuid[].
21
-
22
- * Creating foreign tables is now supported on PostgreSQL via the
23
- :foreign and :options create_table options.
24
-
25
- * The :nolog Database option is now supported in the informix
26
- adapter, where it disables the use of transactions.
27
-
28
- * PlaceholderLiteralizer#with_dataset has been added, allowing you
29
- to create another PlaceholderLiteralizer with a modified dataset,
30
- useful if you want to change the row_proc or any non-SQL dataset
31
- options.
32
-
33
- = Other Improvements
34
-
35
- * The tactical_eager_loading plugin once again works correctly with
36
- limited associations.
37
-
38
- * A bug in older versions of MySQL is now worked around when schema
39
- dumping a table with multiple timestamp columns.
40
-
41
- * On PostgreSQL, create_view(:view_name, dataset, :materialized=>true)
42
- is now reversible.
43
-
44
- * Postgres::{JSON,JSONB}Op#to_record and #to_recordset no longer take
45
- an optional argument. This was supported in PostgreSQL 9.4beta1,
46
- but removed before PostgreSQL 9.4beta2.
47
-
48
- * Dataset#insert now returns the last inserted id in the informix
49
- adapter.
50
-
51
- * Sequel no longer raises an exception in
52
- AssociationReflection#reciprocal if the associated class has an
53
- association that does not have a valid associated class.
54
-
55
- * Sequel now raises an exception if a primary key is necessary to use
56
- an association, but the model does not have a primary key.
@@ -1,36 +0,0 @@
1
- = New Features
2
-
3
- * Model#qualified_pk_hash has been added, which is similar to
4
- Model#pk_hash, but uses qualified keys.
5
-
6
- * Dataset#distinct now accepts a virtual row block.
7
-
8
- * Database#drop_table with :foreign=>true option now drops foreign
9
- tables on PostgreSQL. Database#create_table with :foreign option
10
- is now reversible on PostgreSQL.
11
-
12
- = Other Improvements
13
-
14
- * Sequel::Model.cache_associations = false now skips the database's
15
- schema cache when loading the schema for a model. This fixes
16
- some issues in environments that use code reloading.
17
-
18
- * Database#create_table? and #create_join_table? no longer use
19
- IF NOT EXISTS if indexes are being created.
20
-
21
- * Model.primary_key_hash and .qualified_primary_key_hash have been
22
- optimized.
23
-
24
- * validates_unique in the validation_helpers plugin now uses a
25
- qualified primary key if the model's dataset is joined. This fixes
26
- a case when the auto_validations and class_table_inheritance
27
- plugins are used together.
28
-
29
- * Disconnect errors are now recognized in the postgres adapter when
30
- SSL is used for connecting.
31
-
32
- * Empty string default values are no longer converted to nil default
33
- values on MySQL.
34
-
35
- * Database#foreign_key_list now works correctly on Microsoft SQL
36
- Server 2005.
@@ -1,38 +0,0 @@
1
- = New Features
2
-
3
- * A :preconnect Database option has been added, for automatically
4
- creating the maximum number of connections to the database on
5
- instantiation. This is useful when there is high latency for
6
- initial connection setup, where Sequel's usual approach of
7
- connecting as needed can cause pauses at runtime.
8
-
9
- * Database#sharded? has been added for checking whether the Database
10
- object uses multiple servers.
11
-
12
- * Dataset#server? has been added, for returning a cloned dataset
13
- associated with the given server/shard if the dataset does not
14
- already have a server set. This returns the receiver if the
15
- server has already been set or the Database is not sharded.
16
-
17
- = Other Improvements
18
-
19
- * Sequel now uses the correct shard when deleting model instances.
20
- Previously, the correct shard was only used in the unoptimized
21
- case, not in the optimized case.
22
-
23
- * Sequel now uses the correct shard when using Dataset#insert_select
24
- on PostgreSQL. This was first broken in the 4.13.0 release.
25
-
26
- * Sequel now correctly handles Sequel::SQL::Blob instances used in
27
- bound variables in the postgres adapter. Previously this resulted
28
- in duplicate apostrophes being used.
29
-
30
- * When using the jdbc/sqlite3 adapter with jdbc-sqlite3 3.8.7, Sequel
31
- now handles date objects and empty blobs correctly, working around
32
- bugs in the driver.
33
-
34
- = Backwards Compatibility
35
-
36
- * In the update_or_create plugin, Model.update_or_create now always
37
- returns the object. Previously it would not return the object if
38
- the object already existed but no updates were necessary.
@@ -1,36 +0,0 @@
1
- = New Features
2
-
3
- * An :auto_increment key has been added to the schema information for
4
- primary key columns on JDBC, PostgreSQL, MySQL, MSSQL, DB2, and
5
- SQLite. This fixes issues in the schema_dumper extension where
6
- non-auto-incrementing integer primary keys are no longer dumped as
7
- auto-incrementing.
8
-
9
- For adapters that don't have specific support for detecting
10
- auto incrementing primary keys, Sequel now assumes a primary key
11
- is auto incrementing only if it is not a composite primary key
12
- and the type contains int (e.g. int, integer, bigint).
13
-
14
- = Other Improvements
15
-
16
- * Dataset#empty? now ignores any order on the dataset. Previously,
17
- calling empty? on a dataset ordered by an alias in the SELECT list
18
- could raise an exception.
19
-
20
- * Schema qualified tables are now handled correctly in
21
- many_through_many associations.
22
-
23
- * Using a hash as the value for the :eager association option now
24
- works correctly.
25
-
26
- * All PG::ConnectionBad exceptions are now treated as disconnect
27
- errors in the postgres adapter. This should be more robust than
28
- the previous method of trying to recognize disconnect errors by
29
- trying to parse the exception message.
30
-
31
- * Sequel now skips a hash allocation when issuing queries through
32
- datasets if sharding is not used.
33
-
34
- * Sequel no longer uses the JDBC schema parsing in the jdbc/sqlserver
35
- adapter. Instead, it uses the MSSQL schema parsing, which should
36
- be more accurate than the generic JDBC schema parsing.
@@ -1,45 +0,0 @@
1
- = New Features
2
-
3
- * Model#get_column_value and #set_column_value have been added for
4
- getting/setting column values. Historically, to get column
5
- values, you would just send the column name, and to set column
6
- values you would send the column name suffixed by =. However,
7
- this doesn't work when such methods are already defined by
8
- ruby or Sequel itself (e.g. class, model, object_id).
9
-
10
- Both #get_column_value and #set_column_value are just aliases to
11
- #send, but you can safely override the methods to handle column
12
- names that conflict with existing method names. Both the core
13
- model code and all of the plugins that ship with Sequel have
14
- been updated to use these new methods. External plugins are
15
- strongly encouraged to switch to these new methods.
16
-
17
- * A column_conflicts plugin has been added to automatically handle
18
- columns that conflict with existing method names. So if you
19
- have a column named "model" in your table, you can just load the
20
- column_conflicts plugin and Sequel will handle things correctly.
21
-
22
- * A accessed_columns plugin has been added, which records which
23
- columns have been accessed for a model instance. This is useful
24
- in development when you are planning on restricted the columns
25
- selected by the dataset that retrieved the instance. SELECTing
26
- only the columns you need can result in significant performance
27
- increases, and the accessed_columns plugin makes that easier.
28
-
29
- * Model#cancel_action has been added for canceling actions in
30
- before hooks, instead of having the before hook methods return
31
- false (which is still supported). In addition to being easier to
32
- use, this also makes it possible to use custom exception messages
33
- for hook failures, if you are using the default behavior of raising
34
- exceptions on save failures.
35
-
36
- = Other Improvements
37
-
38
- * Dataset#union, #intersect, and #except now automatically handle
39
- datasets with raw SQL, by wrapping such datasets in subqueries.
40
-
41
- * The integer migrator now stores the correct migration number
42
- when migrating with allow_missing_migration_files set.
43
-
44
- * A :timeout=>nil Database option on MySQL no longer sets a
45
- wait_timeout.