sequel 4.49.0 → 5.3.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 (484) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +130 -0
  3. data/README.rdoc +195 -136
  4. data/Rakefile +26 -42
  5. data/bin/sequel +6 -9
  6. data/doc/advanced_associations.rdoc +91 -168
  7. data/doc/association_basics.rdoc +197 -274
  8. data/doc/bin_sequel.rdoc +5 -3
  9. data/doc/cheat_sheet.rdoc +66 -43
  10. data/doc/code_order.rdoc +1 -8
  11. data/doc/core_extensions.rdoc +81 -56
  12. data/doc/dataset_basics.rdoc +8 -17
  13. data/doc/dataset_filtering.rdoc +81 -86
  14. data/doc/extensions.rdoc +3 -10
  15. data/doc/mass_assignment.rdoc +73 -30
  16. data/doc/migration.rdoc +19 -36
  17. data/doc/model_dataset_method_design.rdoc +14 -17
  18. data/doc/model_hooks.rdoc +15 -25
  19. data/doc/model_plugins.rdoc +10 -10
  20. data/doc/mssql_stored_procedures.rdoc +3 -3
  21. data/doc/object_model.rdoc +52 -70
  22. data/doc/opening_databases.rdoc +39 -32
  23. data/doc/postgresql.rdoc +48 -38
  24. data/doc/prepared_statements.rdoc +27 -22
  25. data/doc/querying.rdoc +173 -150
  26. data/doc/reflection.rdoc +5 -6
  27. data/doc/release_notes/5.0.0.txt +159 -0
  28. data/doc/release_notes/5.1.0.txt +31 -0
  29. data/doc/release_notes/5.2.0.txt +33 -0
  30. data/doc/release_notes/5.3.0.txt +121 -0
  31. data/doc/schema_modification.rdoc +78 -64
  32. data/doc/security.rdoc +97 -88
  33. data/doc/sharding.rdoc +43 -30
  34. data/doc/sql.rdoc +53 -65
  35. data/doc/testing.rdoc +4 -5
  36. data/doc/thread_safety.rdoc +2 -4
  37. data/doc/transactions.rdoc +18 -17
  38. data/doc/validations.rdoc +48 -45
  39. data/doc/virtual_rows.rdoc +87 -115
  40. data/lib/sequel/adapters/ado/access.rb +7 -13
  41. data/lib/sequel/adapters/ado/mssql.rb +2 -9
  42. data/lib/sequel/adapters/ado.rb +9 -25
  43. data/lib/sequel/adapters/amalgalite.rb +3 -18
  44. data/lib/sequel/adapters/ibmdb.rb +9 -45
  45. data/lib/sequel/adapters/jdbc/db2.rb +8 -37
  46. data/lib/sequel/adapters/jdbc/derby.rb +4 -50
  47. data/lib/sequel/adapters/jdbc/h2.rb +6 -26
  48. data/lib/sequel/adapters/jdbc/hsqldb.rb +2 -27
  49. data/lib/sequel/adapters/jdbc/jtds.rb +2 -9
  50. data/lib/sequel/adapters/jdbc/mssql.rb +1 -11
  51. data/lib/sequel/adapters/jdbc/mysql.rb +11 -15
  52. data/lib/sequel/adapters/jdbc/oracle.rb +4 -26
  53. data/lib/sequel/adapters/jdbc/postgresql.rb +23 -33
  54. data/lib/sequel/adapters/jdbc/sqlanywhere.rb +4 -17
  55. data/lib/sequel/adapters/jdbc/sqlite.rb +1 -7
  56. data/lib/sequel/adapters/jdbc/sqlserver.rb +1 -13
  57. data/lib/sequel/adapters/jdbc/transactions.rb +1 -14
  58. data/lib/sequel/adapters/jdbc.rb +18 -74
  59. data/lib/sequel/adapters/mock.rb +4 -30
  60. data/lib/sequel/adapters/mysql.rb +7 -44
  61. data/lib/sequel/adapters/mysql2.rb +5 -23
  62. data/lib/sequel/adapters/odbc/db2.rb +1 -1
  63. data/lib/sequel/adapters/odbc/mssql.rb +4 -12
  64. data/lib/sequel/adapters/odbc/oracle.rb +1 -1
  65. data/lib/sequel/adapters/odbc.rb +0 -19
  66. data/lib/sequel/adapters/oracle.rb +8 -13
  67. data/lib/sequel/adapters/postgres.rb +28 -150
  68. data/lib/sequel/adapters/postgresql.rb +1 -1
  69. data/lib/sequel/adapters/shared/access.rb +11 -51
  70. data/lib/sequel/adapters/shared/db2.rb +3 -61
  71. data/lib/sequel/adapters/shared/mssql.rb +21 -157
  72. data/lib/sequel/adapters/shared/mysql.rb +61 -227
  73. data/lib/sequel/adapters/shared/oracle.rb +13 -41
  74. data/lib/sequel/adapters/shared/postgres.rb +58 -264
  75. data/lib/sequel/adapters/shared/sqlanywhere.rb +4 -96
  76. data/lib/sequel/adapters/shared/sqlite.rb +22 -101
  77. data/lib/sequel/adapters/sqlanywhere.rb +4 -23
  78. data/lib/sequel/adapters/sqlite.rb +2 -19
  79. data/lib/sequel/adapters/tinytds.rb +5 -15
  80. data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +1 -1
  81. data/lib/sequel/adapters/utils/mysql_mysql2.rb +4 -4
  82. data/lib/sequel/adapters/utils/mysql_prepared_statements.rb +3 -6
  83. data/lib/sequel/adapters/utils/replace.rb +0 -5
  84. data/lib/sequel/adapters/utils/stored_procedures.rb +0 -2
  85. data/lib/sequel/adapters/utils/unmodified_identifiers.rb +2 -0
  86. data/lib/sequel/ast_transformer.rb +3 -94
  87. data/lib/sequel/connection_pool/sharded_single.rb +1 -4
  88. data/lib/sequel/connection_pool/sharded_threaded.rb +97 -95
  89. data/lib/sequel/connection_pool/single.rb +0 -2
  90. data/lib/sequel/connection_pool/threaded.rb +94 -110
  91. data/lib/sequel/connection_pool.rb +38 -28
  92. data/lib/sequel/core.rb +42 -101
  93. data/lib/sequel/database/connecting.rb +23 -60
  94. data/lib/sequel/database/dataset.rb +6 -9
  95. data/lib/sequel/database/dataset_defaults.rb +4 -48
  96. data/lib/sequel/database/features.rb +5 -4
  97. data/lib/sequel/database/logging.rb +2 -9
  98. data/lib/sequel/database/misc.rb +36 -55
  99. data/lib/sequel/database/query.rb +8 -13
  100. data/lib/sequel/database/schema_generator.rb +93 -64
  101. data/lib/sequel/database/schema_methods.rb +61 -79
  102. data/lib/sequel/database/transactions.rb +4 -24
  103. data/lib/sequel/database.rb +12 -2
  104. data/lib/sequel/dataset/actions.rb +57 -107
  105. data/lib/sequel/dataset/dataset_module.rb +4 -16
  106. data/lib/sequel/dataset/features.rb +35 -30
  107. data/lib/sequel/dataset/graph.rb +40 -49
  108. data/lib/sequel/dataset/misc.rb +12 -37
  109. data/lib/sequel/dataset/placeholder_literalizer.rb +4 -4
  110. data/lib/sequel/dataset/prepared_statements.rb +23 -51
  111. data/lib/sequel/dataset/query.rb +91 -161
  112. data/lib/sequel/dataset/sql.rb +33 -225
  113. data/lib/sequel/dataset.rb +18 -10
  114. data/lib/sequel/deprecated.rb +18 -27
  115. data/lib/sequel/exceptions.rb +1 -17
  116. data/lib/sequel/extensions/_model_pg_row.rb +0 -7
  117. data/lib/sequel/extensions/_pretty_table.rb +1 -3
  118. data/lib/sequel/extensions/arbitrary_servers.rb +10 -10
  119. data/lib/sequel/extensions/connection_expiration.rb +1 -1
  120. data/lib/sequel/extensions/connection_validator.rb +1 -1
  121. data/lib/sequel/extensions/constraint_validations.rb +11 -11
  122. data/lib/sequel/extensions/core_extensions.rb +39 -49
  123. data/lib/sequel/extensions/core_refinements.rb +39 -45
  124. data/lib/sequel/extensions/current_datetime_timestamp.rb +0 -4
  125. data/lib/sequel/extensions/date_arithmetic.rb +7 -7
  126. data/lib/sequel/extensions/duplicate_columns_handler.rb +12 -9
  127. data/lib/sequel/extensions/empty_array_consider_nulls.rb +2 -2
  128. data/lib/sequel/extensions/eval_inspect.rb +4 -11
  129. data/lib/sequel/extensions/freeze_datasets.rb +1 -69
  130. data/lib/sequel/extensions/from_block.rb +1 -35
  131. data/lib/sequel/extensions/graph_each.rb +2 -2
  132. data/lib/sequel/extensions/identifier_mangling.rb +9 -19
  133. data/lib/sequel/extensions/implicit_subquery.rb +2 -2
  134. data/lib/sequel/extensions/inflector.rb +4 -4
  135. data/lib/sequel/extensions/migration.rb +27 -43
  136. data/lib/sequel/extensions/no_auto_literal_strings.rb +2 -84
  137. data/lib/sequel/extensions/null_dataset.rb +2 -8
  138. data/lib/sequel/extensions/pagination.rb +1 -17
  139. data/lib/sequel/extensions/pg_array.rb +20 -189
  140. data/lib/sequel/extensions/pg_extended_date_support.rb +230 -0
  141. data/lib/sequel/extensions/pg_hstore.rb +11 -50
  142. data/lib/sequel/extensions/pg_hstore_ops.rb +2 -2
  143. data/lib/sequel/extensions/pg_inet.rb +3 -16
  144. data/lib/sequel/extensions/pg_interval.rb +1 -20
  145. data/lib/sequel/extensions/pg_json.rb +7 -27
  146. data/lib/sequel/extensions/pg_loose_count.rb +1 -1
  147. data/lib/sequel/extensions/pg_range.rb +6 -121
  148. data/lib/sequel/extensions/pg_range_ops.rb +1 -3
  149. data/lib/sequel/extensions/pg_row.rb +5 -77
  150. data/lib/sequel/extensions/pg_row_ops.rb +2 -13
  151. data/lib/sequel/extensions/query.rb +3 -4
  152. data/lib/sequel/extensions/round_timestamps.rb +0 -6
  153. data/lib/sequel/extensions/schema_dumper.rb +13 -13
  154. data/lib/sequel/extensions/select_remove.rb +3 -3
  155. data/lib/sequel/extensions/split_array_nil.rb +2 -2
  156. data/lib/sequel/extensions/sql_comments.rb +2 -2
  157. data/lib/sequel/extensions/string_agg.rb +11 -8
  158. data/lib/sequel/extensions/symbol_aref.rb +6 -20
  159. data/lib/sequel/extensions/synchronize_sql.rb +45 -0
  160. data/lib/sequel/model/associations.rb +129 -131
  161. data/lib/sequel/model/base.rb +133 -731
  162. data/lib/sequel/model/default_inflections.rb +1 -1
  163. data/lib/sequel/model/errors.rb +0 -3
  164. data/lib/sequel/model/exceptions.rb +2 -6
  165. data/lib/sequel/model/inflections.rb +1 -26
  166. data/lib/sequel/model/plugins.rb +1 -0
  167. data/lib/sequel/model.rb +27 -62
  168. data/lib/sequel/plugins/active_model.rb +2 -5
  169. data/lib/sequel/plugins/association_dependencies.rb +15 -15
  170. data/lib/sequel/plugins/association_pks.rb +14 -28
  171. data/lib/sequel/plugins/association_proxies.rb +6 -7
  172. data/lib/sequel/plugins/auto_validations.rb +4 -4
  173. data/lib/sequel/plugins/before_after_save.rb +0 -43
  174. data/lib/sequel/plugins/blacklist_security.rb +9 -8
  175. data/lib/sequel/plugins/boolean_readers.rb +3 -3
  176. data/lib/sequel/plugins/boolean_subsets.rb +2 -2
  177. data/lib/sequel/plugins/caching.rb +5 -5
  178. data/lib/sequel/plugins/class_table_inheritance.rb +71 -102
  179. data/lib/sequel/plugins/column_conflicts.rb +2 -2
  180. data/lib/sequel/plugins/column_select.rb +2 -2
  181. data/lib/sequel/plugins/composition.rb +15 -24
  182. data/lib/sequel/plugins/constraint_validations.rb +4 -3
  183. data/lib/sequel/plugins/csv_serializer.rb +13 -20
  184. data/lib/sequel/plugins/dataset_associations.rb +2 -2
  185. data/lib/sequel/plugins/def_dataset_method.rb +5 -5
  186. data/lib/sequel/plugins/defaults_setter.rb +1 -1
  187. data/lib/sequel/plugins/delay_add_association.rb +1 -1
  188. data/lib/sequel/plugins/finder.rb +16 -10
  189. data/lib/sequel/plugins/force_encoding.rb +1 -7
  190. data/lib/sequel/plugins/hook_class_methods.rb +4 -106
  191. data/lib/sequel/plugins/input_transformer.rb +10 -11
  192. data/lib/sequel/plugins/insert_returning_select.rb +1 -9
  193. data/lib/sequel/plugins/instance_filters.rb +5 -5
  194. data/lib/sequel/plugins/instance_hooks.rb +7 -52
  195. data/lib/sequel/plugins/inverted_subsets.rb +3 -1
  196. data/lib/sequel/plugins/json_serializer.rb +19 -19
  197. data/lib/sequel/plugins/lazy_attributes.rb +1 -10
  198. data/lib/sequel/plugins/list.rb +6 -6
  199. data/lib/sequel/plugins/many_through_many.rb +11 -8
  200. data/lib/sequel/plugins/mssql_optimistic_locking.rb +3 -3
  201. data/lib/sequel/plugins/nested_attributes.rb +18 -31
  202. data/lib/sequel/plugins/optimistic_locking.rb +3 -3
  203. data/lib/sequel/plugins/pg_array_associations.rb +8 -2
  204. data/lib/sequel/plugins/pg_row.rb +2 -11
  205. data/lib/sequel/plugins/prepared_statements.rb +13 -66
  206. data/lib/sequel/plugins/prepared_statements_safe.rb +1 -1
  207. data/lib/sequel/plugins/rcte_tree.rb +7 -7
  208. data/lib/sequel/plugins/serialization.rb +15 -33
  209. data/lib/sequel/plugins/serialization_modification_detection.rb +1 -1
  210. data/lib/sequel/plugins/sharding.rb +2 -8
  211. data/lib/sequel/plugins/single_table_inheritance.rb +10 -13
  212. data/lib/sequel/plugins/skip_create_refresh.rb +3 -3
  213. data/lib/sequel/plugins/static_cache.rb +8 -9
  214. data/lib/sequel/plugins/string_stripper.rb +3 -3
  215. data/lib/sequel/plugins/subclasses.rb +1 -1
  216. data/lib/sequel/plugins/subset_conditions.rb +2 -2
  217. data/lib/sequel/plugins/table_select.rb +2 -2
  218. data/lib/sequel/plugins/tactical_eager_loading.rb +4 -4
  219. data/lib/sequel/plugins/timestamps.rb +6 -7
  220. data/lib/sequel/plugins/touch.rb +4 -8
  221. data/lib/sequel/plugins/tree.rb +3 -3
  222. data/lib/sequel/plugins/typecast_on_load.rb +2 -2
  223. data/lib/sequel/plugins/unlimited_update.rb +1 -7
  224. data/lib/sequel/plugins/update_or_create.rb +3 -3
  225. data/lib/sequel/plugins/update_refresh.rb +3 -3
  226. data/lib/sequel/plugins/uuid.rb +7 -11
  227. data/lib/sequel/plugins/validation_class_methods.rb +10 -9
  228. data/lib/sequel/plugins/validation_contexts.rb +4 -4
  229. data/lib/sequel/plugins/validation_helpers.rb +26 -25
  230. data/lib/sequel/plugins/whitelist_security.rb +13 -9
  231. data/lib/sequel/plugins/xml_serializer.rb +24 -25
  232. data/lib/sequel/sql.rb +145 -276
  233. data/lib/sequel/timezones.rb +8 -23
  234. data/lib/sequel/version.rb +2 -2
  235. data/lib/sequel.rb +1 -1
  236. data/spec/adapter_spec.rb +1 -1
  237. data/spec/adapters/db2_spec.rb +2 -103
  238. data/spec/adapters/mssql_spec.rb +89 -68
  239. data/spec/adapters/mysql_spec.rb +111 -478
  240. data/spec/adapters/oracle_spec.rb +1 -9
  241. data/spec/adapters/postgres_spec.rb +459 -664
  242. data/spec/adapters/spec_helper.rb +12 -31
  243. data/spec/adapters/sqlanywhere_spec.rb +2 -77
  244. data/spec/adapters/sqlite_spec.rb +8 -146
  245. data/spec/bin_spec.rb +11 -16
  246. data/spec/core/connection_pool_spec.rb +173 -74
  247. data/spec/core/database_spec.rb +96 -244
  248. data/spec/core/dataset_spec.rb +99 -414
  249. data/spec/core/deprecated_spec.rb +3 -3
  250. data/spec/core/expression_filters_spec.rb +37 -144
  251. data/spec/core/mock_adapter_spec.rb +241 -4
  252. data/spec/core/object_graph_spec.rb +11 -60
  253. data/spec/core/placeholder_literalizer_spec.rb +1 -14
  254. data/spec/core/schema_generator_spec.rb +51 -40
  255. data/spec/core/schema_spec.rb +88 -77
  256. data/spec/core/spec_helper.rb +6 -24
  257. data/spec/core/version_spec.rb +1 -1
  258. data/spec/core_extensions_spec.rb +7 -83
  259. data/spec/core_model_spec.rb +2 -2
  260. data/spec/deprecation_helper.rb +2 -14
  261. data/spec/extensions/accessed_columns_spec.rb +1 -1
  262. data/spec/extensions/active_model_spec.rb +3 -3
  263. data/spec/extensions/after_initialize_spec.rb +1 -1
  264. data/spec/extensions/arbitrary_servers_spec.rb +2 -2
  265. data/spec/extensions/association_dependencies_spec.rb +1 -1
  266. data/spec/extensions/association_pks_spec.rb +30 -92
  267. data/spec/extensions/association_proxies_spec.rb +1 -1
  268. data/spec/extensions/auto_literal_strings_spec.rb +1 -12
  269. data/spec/extensions/auto_validations_spec.rb +1 -1
  270. data/spec/extensions/blacklist_security_spec.rb +1 -1
  271. data/spec/extensions/blank_spec.rb +1 -1
  272. data/spec/extensions/boolean_readers_spec.rb +1 -1
  273. data/spec/extensions/boolean_subsets_spec.rb +1 -1
  274. data/spec/extensions/caching_spec.rb +1 -1
  275. data/spec/extensions/class_table_inheritance_spec.rb +53 -1118
  276. data/spec/extensions/column_conflicts_spec.rb +1 -1
  277. data/spec/extensions/column_select_spec.rb +4 -4
  278. data/spec/extensions/columns_introspection_spec.rb +1 -1
  279. data/spec/extensions/columns_updated_spec.rb +1 -1
  280. data/spec/extensions/composition_spec.rb +8 -30
  281. data/spec/extensions/connection_expiration_spec.rb +3 -3
  282. data/spec/extensions/connection_validator_spec.rb +3 -3
  283. data/spec/extensions/constraint_validations_plugin_spec.rb +1 -1
  284. data/spec/extensions/constraint_validations_spec.rb +1 -1
  285. data/spec/extensions/core_refinements_spec.rb +1 -3
  286. data/spec/extensions/csv_serializer_spec.rb +4 -9
  287. data/spec/extensions/current_datetime_timestamp_spec.rb +1 -1
  288. data/spec/extensions/dataset_associations_spec.rb +2 -1
  289. data/spec/extensions/dataset_source_alias_spec.rb +1 -1
  290. data/spec/extensions/date_arithmetic_spec.rb +3 -3
  291. data/spec/extensions/def_dataset_method_spec.rb +1 -1
  292. data/spec/extensions/defaults_setter_spec.rb +2 -2
  293. data/spec/extensions/delay_add_association_spec.rb +8 -9
  294. data/spec/extensions/dirty_spec.rb +1 -1
  295. data/spec/extensions/duplicate_columns_handler_spec.rb +1 -1
  296. data/spec/extensions/eager_each_spec.rb +2 -2
  297. data/spec/extensions/empty_array_consider_nulls_spec.rb +1 -1
  298. data/spec/extensions/error_splitter_spec.rb +1 -1
  299. data/spec/extensions/error_sql_spec.rb +1 -1
  300. data/spec/extensions/eval_inspect_spec.rb +1 -1
  301. data/spec/extensions/finder_spec.rb +1 -1
  302. data/spec/extensions/force_encoding_spec.rb +2 -5
  303. data/spec/extensions/freeze_datasets_spec.rb +1 -1
  304. data/spec/extensions/graph_each_spec.rb +5 -5
  305. data/spec/extensions/hook_class_methods_spec.rb +1 -194
  306. data/spec/extensions/identifier_mangling_spec.rb +17 -170
  307. data/spec/extensions/implicit_subquery_spec.rb +1 -5
  308. data/spec/extensions/inflector_spec.rb +1 -1
  309. data/spec/extensions/input_transformer_spec.rb +7 -2
  310. data/spec/extensions/insert_returning_select_spec.rb +1 -1
  311. data/spec/extensions/instance_filters_spec.rb +1 -1
  312. data/spec/extensions/instance_hooks_spec.rb +1 -95
  313. data/spec/extensions/inverted_subsets_spec.rb +1 -1
  314. data/spec/extensions/json_serializer_spec.rb +1 -1
  315. data/spec/extensions/lazy_attributes_spec.rb +1 -7
  316. data/spec/extensions/list_spec.rb +5 -6
  317. data/spec/extensions/looser_typecasting_spec.rb +1 -1
  318. data/spec/extensions/many_through_many_spec.rb +25 -33
  319. data/spec/extensions/migration_spec.rb +12 -2
  320. data/spec/extensions/modification_detection_spec.rb +1 -1
  321. data/spec/extensions/mssql_optimistic_locking_spec.rb +1 -1
  322. data/spec/extensions/named_timezones_spec.rb +3 -3
  323. data/spec/extensions/nested_attributes_spec.rb +1 -29
  324. data/spec/extensions/null_dataset_spec.rb +1 -11
  325. data/spec/extensions/optimistic_locking_spec.rb +2 -2
  326. data/spec/extensions/pagination_spec.rb +1 -1
  327. data/spec/extensions/pg_array_associations_spec.rb +22 -26
  328. data/spec/extensions/pg_array_ops_spec.rb +1 -1
  329. data/spec/extensions/pg_array_spec.rb +3 -48
  330. data/spec/extensions/pg_enum_spec.rb +1 -1
  331. data/spec/extensions/pg_extended_date_support_spec.rb +122 -0
  332. data/spec/extensions/pg_hstore_ops_spec.rb +1 -1
  333. data/spec/extensions/pg_hstore_spec.rb +22 -31
  334. data/spec/extensions/pg_inet_ops_spec.rb +1 -1
  335. data/spec/extensions/pg_inet_spec.rb +1 -14
  336. data/spec/extensions/pg_interval_spec.rb +3 -13
  337. data/spec/extensions/pg_json_ops_spec.rb +1 -1
  338. data/spec/extensions/pg_json_spec.rb +1 -13
  339. data/spec/extensions/pg_loose_count_spec.rb +1 -1
  340. data/spec/extensions/pg_range_ops_spec.rb +1 -1
  341. data/spec/extensions/pg_range_spec.rb +3 -88
  342. data/spec/extensions/pg_row_ops_spec.rb +1 -1
  343. data/spec/extensions/pg_row_plugin_spec.rb +1 -1
  344. data/spec/extensions/pg_row_spec.rb +1 -44
  345. data/spec/extensions/pg_static_cache_updater_spec.rb +1 -1
  346. data/spec/extensions/prepared_statements_safe_spec.rb +7 -7
  347. data/spec/extensions/prepared_statements_spec.rb +13 -48
  348. data/spec/extensions/pretty_table_spec.rb +40 -9
  349. data/spec/extensions/query_spec.rb +1 -12
  350. data/spec/extensions/rcte_tree_spec.rb +23 -34
  351. data/spec/extensions/round_timestamps_spec.rb +1 -5
  352. data/spec/extensions/s_spec.rb +1 -1
  353. data/spec/extensions/schema_caching_spec.rb +1 -1
  354. data/spec/extensions/schema_dumper_spec.rb +43 -32
  355. data/spec/extensions/select_remove_spec.rb +1 -1
  356. data/spec/extensions/sequel_4_dataset_methods_spec.rb +1 -1
  357. data/spec/extensions/serialization_modification_detection_spec.rb +1 -1
  358. data/spec/extensions/serialization_spec.rb +5 -17
  359. data/spec/extensions/server_block_spec.rb +1 -1
  360. data/spec/extensions/server_logging_spec.rb +2 -2
  361. data/spec/extensions/sharding_spec.rb +1 -1
  362. data/spec/extensions/shared_caching_spec.rb +1 -28
  363. data/spec/extensions/single_table_inheritance_spec.rb +2 -5
  364. data/spec/extensions/singular_table_names_spec.rb +1 -1
  365. data/spec/extensions/skip_create_refresh_spec.rb +1 -1
  366. data/spec/extensions/spec_helper.rb +5 -27
  367. data/spec/extensions/split_array_nil_spec.rb +1 -1
  368. data/spec/extensions/split_values_spec.rb +1 -1
  369. data/spec/extensions/sql_comments_spec.rb +1 -1
  370. data/spec/extensions/sql_expr_spec.rb +1 -1
  371. data/spec/extensions/static_cache_spec.rb +1 -1
  372. data/spec/extensions/string_agg_spec.rb +2 -2
  373. data/spec/extensions/string_date_time_spec.rb +1 -1
  374. data/spec/extensions/string_stripper_spec.rb +1 -1
  375. data/spec/extensions/subclasses_spec.rb +1 -1
  376. data/spec/extensions/subset_conditions_spec.rb +1 -1
  377. data/spec/extensions/symbol_aref_refinement_spec.rb +1 -1
  378. data/spec/extensions/symbol_as_refinement_spec.rb +1 -1
  379. data/spec/extensions/synchronize_sql_spec.rb +124 -0
  380. data/spec/extensions/table_select_spec.rb +4 -4
  381. data/spec/extensions/tactical_eager_loading_spec.rb +1 -6
  382. data/spec/extensions/thread_local_timezones_spec.rb +1 -1
  383. data/spec/extensions/timestamps_spec.rb +5 -7
  384. data/spec/extensions/to_dot_spec.rb +1 -1
  385. data/spec/extensions/touch_spec.rb +1 -1
  386. data/spec/extensions/tree_spec.rb +1 -1
  387. data/spec/extensions/typecast_on_load_spec.rb +1 -1
  388. data/spec/extensions/unlimited_update_spec.rb +1 -1
  389. data/spec/extensions/update_or_create_spec.rb +12 -16
  390. data/spec/extensions/update_primary_key_spec.rb +4 -3
  391. data/spec/extensions/update_refresh_spec.rb +1 -1
  392. data/spec/extensions/uuid_spec.rb +10 -13
  393. data/spec/extensions/validate_associated_spec.rb +1 -1
  394. data/spec/extensions/validation_class_methods_spec.rb +3 -3
  395. data/spec/extensions/validation_contexts_spec.rb +1 -1
  396. data/spec/extensions/validation_helpers_spec.rb +10 -44
  397. data/spec/extensions/whitelist_security_spec.rb +5 -5
  398. data/spec/extensions/xml_serializer_spec.rb +8 -13
  399. data/spec/guards_helper.rb +2 -1
  400. data/spec/integration/associations_test.rb +1 -23
  401. data/spec/integration/database_test.rb +7 -7
  402. data/spec/integration/dataset_test.rb +12 -47
  403. data/spec/integration/eager_loader_test.rb +1 -1
  404. data/spec/integration/migrator_test.rb +1 -1
  405. data/spec/integration/model_test.rb +4 -82
  406. data/spec/integration/plugin_test.rb +7 -23
  407. data/spec/integration/prepared_statement_test.rb +8 -88
  408. data/spec/integration/schema_test.rb +10 -10
  409. data/spec/integration/spec_helper.rb +17 -21
  410. data/spec/integration/timezone_test.rb +5 -5
  411. data/spec/integration/transaction_test.rb +3 -55
  412. data/spec/integration/type_test.rb +9 -9
  413. data/spec/model/association_reflection_spec.rb +24 -9
  414. data/spec/model/associations_spec.rb +124 -303
  415. data/spec/model/base_spec.rb +43 -137
  416. data/spec/model/class_dataset_methods_spec.rb +2 -20
  417. data/spec/model/dataset_methods_spec.rb +1 -20
  418. data/spec/model/eager_loading_spec.rb +48 -17
  419. data/spec/model/hooks_spec.rb +5 -300
  420. data/spec/model/inflector_spec.rb +1 -1
  421. data/spec/model/model_spec.rb +29 -339
  422. data/spec/model/plugins_spec.rb +2 -16
  423. data/spec/model/record_spec.rb +33 -129
  424. data/spec/model/spec_helper.rb +5 -15
  425. data/spec/model/validations_spec.rb +1 -1
  426. data/spec/sequel_warning.rb +1 -12
  427. metadata +19 -65
  428. data/doc/active_record.rdoc +0 -927
  429. data/lib/sequel/adapters/cubrid.rb +0 -160
  430. data/lib/sequel/adapters/do/mysql.rb +0 -69
  431. data/lib/sequel/adapters/do/postgres.rb +0 -46
  432. data/lib/sequel/adapters/do/sqlite3.rb +0 -41
  433. data/lib/sequel/adapters/do.rb +0 -166
  434. data/lib/sequel/adapters/jdbc/as400.rb +0 -92
  435. data/lib/sequel/adapters/jdbc/cubrid.rb +0 -65
  436. data/lib/sequel/adapters/jdbc/firebirdsql.rb +0 -37
  437. data/lib/sequel/adapters/jdbc/informix-sqli.rb +0 -34
  438. data/lib/sequel/adapters/jdbc/jdbcprogress.rb +0 -34
  439. data/lib/sequel/adapters/odbc/progress.rb +0 -12
  440. data/lib/sequel/adapters/shared/cubrid.rb +0 -245
  441. data/lib/sequel/adapters/shared/firebird.rb +0 -261
  442. data/lib/sequel/adapters/shared/informix.rb +0 -63
  443. data/lib/sequel/adapters/shared/progress.rb +0 -40
  444. data/lib/sequel/adapters/swift/mysql.rb +0 -50
  445. data/lib/sequel/adapters/swift/postgres.rb +0 -49
  446. data/lib/sequel/adapters/swift/sqlite.rb +0 -48
  447. data/lib/sequel/adapters/swift.rb +0 -169
  448. data/lib/sequel/adapters/utils/pg_types.rb +0 -4
  449. data/lib/sequel/dataset/mutation.rb +0 -98
  450. data/lib/sequel/extensions/_deprecated_identifier_mangling.rb +0 -117
  451. data/lib/sequel/extensions/empty_array_ignore_nulls.rb +0 -8
  452. data/lib/sequel/extensions/filter_having.rb +0 -65
  453. data/lib/sequel/extensions/hash_aliases.rb +0 -51
  454. data/lib/sequel/extensions/meta_def.rb +0 -37
  455. data/lib/sequel/extensions/query_literals.rb +0 -86
  456. data/lib/sequel/extensions/ruby18_symbol_extensions.rb +0 -26
  457. data/lib/sequel/extensions/sequel_3_dataset_methods.rb +0 -133
  458. data/lib/sequel/extensions/set_overrides.rb +0 -82
  459. data/lib/sequel/no_core_ext.rb +0 -4
  460. data/lib/sequel/plugins/association_autoreloading.rb +0 -11
  461. data/lib/sequel/plugins/identifier_columns.rb +0 -49
  462. data/lib/sequel/plugins/many_to_one_pk_lookup.rb +0 -11
  463. data/lib/sequel/plugins/pg_typecast_on_load.rb +0 -90
  464. data/lib/sequel/plugins/prepared_statements_associations.rb +0 -137
  465. data/lib/sequel/plugins/prepared_statements_with_pk.rb +0 -71
  466. data/lib/sequel/plugins/schema.rb +0 -84
  467. data/lib/sequel/plugins/scissors.rb +0 -37
  468. data/spec/core/dataset_mutation_spec.rb +0 -253
  469. data/spec/extensions/_deprecated_identifier_mangling_spec.rb +0 -314
  470. data/spec/extensions/before_after_save_spec.rb +0 -40
  471. data/spec/extensions/filter_having_spec.rb +0 -42
  472. data/spec/extensions/from_block_spec.rb +0 -21
  473. data/spec/extensions/hash_aliases_spec.rb +0 -26
  474. data/spec/extensions/identifier_columns_spec.rb +0 -19
  475. data/spec/extensions/meta_def_spec.rb +0 -35
  476. data/spec/extensions/no_auto_literal_strings_spec.rb +0 -69
  477. data/spec/extensions/pg_typecast_on_load_spec.rb +0 -70
  478. data/spec/extensions/prepared_statements_associations_spec.rb +0 -212
  479. data/spec/extensions/prepared_statements_with_pk_spec.rb +0 -40
  480. data/spec/extensions/query_literals_spec.rb +0 -185
  481. data/spec/extensions/schema_spec.rb +0 -123
  482. data/spec/extensions/scissors_spec.rb +0 -27
  483. data/spec/extensions/sequel_3_dataset_methods_spec.rb +0 -118
  484. data/spec/extensions/set_overrides_spec.rb +0 -75
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
1
+ require_relative "spec_helper"
2
2
 
3
3
  describe "Model#values" do
4
4
  before do
@@ -33,7 +33,7 @@ end
33
33
 
34
34
  describe "Model#save server use" do
35
35
  before do
36
- @db = Sequel.mock(:autoid=>proc{|sql| 10}, :fetch=>{:x=>1, :id=>10}, :servers=>{:blah=>{}, :read_only=>{}})
36
+ @db = Sequel.mock(:autoid=>proc{|sql| 10}, :fetch=>{:x=>1, :id=>10}, :numrows=>1, :servers=>{:blah=>{}, :read_only=>{}})
37
37
  @c = Class.new(Sequel::Model(@db[:items]))
38
38
  @c.columns :id, :x, :y
39
39
  @c.dataset.columns(:id, :x, :y)
@@ -50,6 +50,19 @@ describe "Model#save server use" do
50
50
  @c.new(:x=>1).save.must_equal @c.load(:x=>1, :id=>10)
51
51
  @db.sqls.must_equal ["INSERT INTO items (x) VALUES (1) -- blah", 'SELECT * FROM items WHERE (id = 10) LIMIT 1 -- blah']
52
52
  end
53
+
54
+ it "should use transactions on the correct server" do
55
+ @c.use_transactions = true
56
+ @c.dataset = @c.dataset.server(:blah)
57
+ @c.new(:x=>1).save.must_equal @c.load(:x=>1, :id=>10)
58
+ @db.sqls.must_equal ["BEGIN -- blah", "INSERT INTO items (x) VALUES (1) -- blah", 'SELECT * FROM items WHERE (id = 10) LIMIT 1 -- blah', 'COMMIT -- blah']
59
+
60
+ o = @c.load(:id=>1)
61
+ o.x = 2
62
+ o.this
63
+ o.save
64
+ @db.sqls.must_equal ["BEGIN -- blah", "UPDATE items SET x = 2 WHERE (id = 1) -- blah", 'COMMIT -- blah']
65
+ end
53
66
  end
54
67
 
55
68
  describe "Model#save" do
@@ -88,12 +101,12 @@ describe "Model#save" do
88
101
  end
89
102
 
90
103
  it "should not use dataset's insert_select method if specific columns are selected" do
91
- ds = @c.dataset = @c.dataset.select(:y).with_extend{def insert_select(*) raise; end}
104
+ @c.dataset = @c.dataset.select(:y).with_extend{def insert_select(*) raise; end}
92
105
  @c.new(:x => 1).save
93
106
  end
94
107
 
95
108
  it "should use dataset's insert_select method if the dataset uses returning, even if specific columns are selected" do
96
- ds = @c.dataset = @c.dataset.select(:y).with_fetch(:y=>2).with_extend do
109
+ @c.dataset = @c.dataset.select(:y).with_fetch(:y=>2).with_extend do
97
110
  def supports_returning?(_) true end
98
111
  def supports_insert_select?; true end
99
112
  def insert_select(hash)
@@ -133,10 +146,8 @@ describe "Model#save" do
133
146
  o = @c.new(:x => 11)
134
147
  def o.autoincrementing_primary_key() :y end
135
148
  o.save
136
- sqls = DB.sqls
137
- sqls.length.must_equal 2
138
- sqls.first.must_equal "INSERT INTO items (x) VALUES (11)"
139
- sqls.last.must_match %r{SELECT \* FROM items WHERE \(\([xy] = 1[13]\) AND \([xy] = 1[13]\)\) LIMIT 1}
149
+ DB.sqls.must_equal ["INSERT INTO items (x) VALUES (11)",
150
+ 'SELECT * FROM items WHERE ((x = 11) AND (y = 13)) LIMIT 1']
140
151
  end
141
152
 
142
153
  it "should update a record for an existing model instance" do
@@ -187,7 +198,7 @@ describe "Model#save" do
187
198
  end
188
199
 
189
200
  it "should mark all columns as not changed if this is a new record and insert_select was used" do
190
- ds = @c.dataset = @c.dataset.with_extend{def insert_select(h) h.merge(:id=>1) end}
201
+ @c.dataset = @c.dataset.with_extend{def insert_select(h) h.merge(:id=>1) end}
191
202
  o = @c.new(:x => 1, :y => nil)
192
203
  o.x = 4
193
204
  o.changed_columns.must_equal [:x]
@@ -195,37 +206,6 @@ describe "Model#save" do
195
206
  o.changed_columns.must_equal []
196
207
  end
197
208
 
198
- deprecated "should store previous value of @new in @was_new and as well as the hash used for updating in @columns_updated until after hooks finish running" do
199
- res = nil
200
- @c.send(:define_method, :after_save){ res = [@columns_updated, @was_new]}
201
- o = @c.new(:x => 1, :y => nil)
202
- o[:x] = 2
203
- o.save
204
- res.must_equal [nil, true]
205
- o.after_save
206
- res.must_equal [nil, nil]
207
-
208
- res = nil
209
- o = @c.load(:id => 23,:x => 1, :y => nil)
210
- o[:x] = 2
211
- o.save
212
- res[0].fetch(:x).must_equal 2
213
- res[0].fetch(:y).must_be_nil
214
- res.fetch(1).must_be_nil
215
- o.after_save
216
- res.must_equal [nil, nil]
217
-
218
- res = nil
219
- o = @c.load(:id => 23,:x => 2, :y => nil)
220
- o[:x] = 2
221
- o[:y] = 22
222
- o.save(:columns=>:x)
223
- res[0].fetch(:x).must_equal 2
224
- res.fetch(1).must_be_nil
225
- o.after_save
226
- res.must_equal [nil, nil]
227
- end
228
-
229
209
  it "should use Model's use_transactions setting by default" do
230
210
  @c.use_transactions = true
231
211
  @c.load(:id => 3, :x => 1, :y => nil).save(:columns=>:y)
@@ -268,17 +248,6 @@ describe "Model#save" do
268
248
  DB.sqls.must_equal ["BEGIN", "UPDATE items SET y = NULL WHERE (id = 3)", "COMMIT"]
269
249
  end
270
250
 
271
- deprecated "should rollback if before_save returns false and raise_on_save_failure = true" do
272
- o = @c.load(:id => 3, :x => 1, :y => nil)
273
- o.use_transactions = true
274
- o.raise_on_save_failure = true
275
- def o.before_save
276
- false
277
- end
278
- proc { o.save(:columns=>:y) }.must_raise(Sequel::HookFailed)
279
- DB.sqls.must_equal ["BEGIN", "ROLLBACK"]
280
- end
281
-
282
251
  it "should rollback if before_save calls cancel_action and raise_on_save_failure = true" do
283
252
  o = @c.load(:id => 3, :x => 1, :y => nil)
284
253
  o.use_transactions = true
@@ -686,12 +655,14 @@ describe "Model#save_changes" do
686
655
  end
687
656
 
688
657
  it "should take options passed to save" do
689
- o = @c.new(:x => 1)
690
- def o.before_validation; cancel_action; end
691
- proc{o.save_changes}.must_raise(Sequel::HookFailed)
692
- DB.sqls.must_equal []
693
- o.save_changes(:validate=>false)
694
- DB.sqls.first.must_equal "INSERT INTO items (x) VALUES (1)"
658
+ o = @c.load(:id=>1, :x => 1)
659
+ o.x = 2
660
+ o.save_changes
661
+ DB.sqls.must_equal ["UPDATE items SET x = 2 WHERE (id = 1)"]
662
+
663
+ o.x = 3
664
+ o.save_changes(:transaction=>true)
665
+ DB.sqls.must_equal ["BEGIN", "UPDATE items SET x = 3 WHERE (id = 1)", "COMMIT"]
695
666
  end
696
667
 
697
668
  it "should do nothing if no changed columns" do
@@ -849,10 +820,10 @@ describe Sequel::Model, "#this" do
849
820
  instance.this.sql.must_equal "SELECT * FROM examples WHERE (a = 3) LIMIT 1"
850
821
  end
851
822
 
852
- deprecated "should use a qualified primary key if the dataset is joined" do
823
+ it "should use a subquery if the dataset is joined" do
853
824
  @example.dataset = @example.dataset.cross_join(:a)
854
825
  instance = @example.load(:id => 3)
855
- instance.this.sql.must_equal "SELECT * FROM examples CROSS JOIN a WHERE (examples.id = 3) LIMIT 1"
826
+ instance.this.sql.must_equal "SELECT * FROM (SELECT * FROM examples CROSS JOIN a) AS examples WHERE (id = 3) LIMIT 1"
856
827
  end
857
828
 
858
829
  it "should use a primary key if the dataset uses a subquery" do
@@ -864,7 +835,7 @@ describe Sequel::Model, "#this" do
864
835
  it "should support composite primary keys" do
865
836
  @example.set_primary_key [:x, :y]
866
837
  instance = @example.load(:x => 4, :y => 5)
867
- instance.this.sql.must_match(/SELECT \* FROM examples WHERE \(\([xy] = [45]\) AND \([xy] = [45]\)\) LIMIT 1/)
838
+ instance.this.sql.must_equal 'SELECT * FROM examples WHERE ((x = 4) AND (y = 5)) LIMIT 1'
868
839
  end
869
840
  end
870
841
 
@@ -1250,9 +1221,7 @@ describe Sequel::Model, "#update_fields" do
1250
1221
  it "should set only the given fields, and then save the changes to the record" do
1251
1222
  @o1.update_fields({:x => 1, :y => 2, :z=>3, :id=>4}, [:x, :y])
1252
1223
  @o1.values.must_equal(:x => 1, :y => 2, :id=>1)
1253
- sqls = DB.sqls
1254
- sqls.pop.must_match(/UPDATE items SET [xy] = [12], [xy] = [12] WHERE \(id = 1\)/)
1255
- sqls.must_equal []
1224
+ DB.sqls.must_equal ['UPDATE items SET x = 1, y = 2 WHERE (id = 1)']
1256
1225
 
1257
1226
  @o1.update_fields({:x => 1, :y => 5, :z=>6, :id=>7}, [:x, :y])
1258
1227
  @o1.values.must_equal(:x => 1, :y => 5, :id=>1)
@@ -1281,71 +1250,6 @@ describe Sequel::Model, "#update_fields" do
1281
1250
  end
1282
1251
  end
1283
1252
 
1284
- describe Sequel::Model, "#(set|update)_(all|only)" do
1285
- before do
1286
- deprecated do
1287
- @c = Class.new(Sequel::Model(:items)) do
1288
- set_primary_key :id
1289
- columns :x, :y, :z, :id
1290
- set_allowed_columns :x
1291
- end
1292
- end
1293
- @c.strict_param_setting = false
1294
- @o1 = @c.new
1295
- DB.reset
1296
- end
1297
-
1298
- deprecated "should raise errors if not all hash fields can be set and strict_param_setting is true" do
1299
- @c.strict_param_setting = true
1300
-
1301
- proc{@c.new.set_all(:x => 1, :y => 2, :z=>3, :use_after_commit_rollback => false)}.must_raise(Sequel::MassAssignmentRestriction)
1302
- (o = @c.new).set_all(:x => 1, :y => 2, :z=>3)
1303
- o.values.must_equal(:x => 1, :y => 2, :z=>3)
1304
-
1305
- proc{@c.new.set_only({:x => 1, :y => 2, :z=>3, :id=>4}, :x, :y)}.must_raise(Sequel::MassAssignmentRestriction)
1306
- proc{@c.new.set_only({:x => 1, :y => 2, :z=>3}, :x, :y)}.must_raise(Sequel::MassAssignmentRestriction)
1307
- (o = @c.new).set_only({:x => 1, :y => 2}, :x, :y)
1308
- o.values.must_equal(:x => 1, :y => 2)
1309
- end
1310
-
1311
- deprecated "#set_all should set all attributes including the primary key" do
1312
- @o1.set_all(:x => 1, :y => 2, :z=>3, :id=>4)
1313
- @o1.values.must_equal(:id =>4, :x => 1, :y => 2, :z=>3)
1314
- end
1315
-
1316
- deprecated "#set_all should set not set restricted fields" do
1317
- @o1.use_after_commit_rollback.must_be_nil
1318
- @o1.set_all(:x => 1, :use_after_commit_rollback => true)
1319
- @o1.use_after_commit_rollback.must_be_nil
1320
- @o1.values.must_equal(:x => 1)
1321
- end
1322
-
1323
- deprecated "#set_only should only set given attributes" do
1324
- @o1.set_only({:x => 1, :y => 2, :z=>3, :id=>4}, [:x, :y])
1325
- @o1.values.must_equal(:x => 1, :y => 2)
1326
- @o1.set_only({:x => 4, :y => 5, :z=>6, :id=>7}, :x, :y)
1327
- @o1.values.must_equal(:x => 4, :y => 5)
1328
- @o1.set_only({:x => 9, :y => 8, :z=>6, :id=>7}, :x, :y, :id)
1329
- @o1.values.must_equal(:x => 9, :y => 8, :id=>7)
1330
- end
1331
-
1332
- deprecated "#update_all should update all attributes" do
1333
- @c.new.update_all(:x => 1)
1334
- DB.sqls.must_equal ["INSERT INTO items (x) VALUES (1)", "SELECT * FROM items WHERE id = 10"]
1335
- @c.new.update_all(:y => 1)
1336
- DB.sqls.must_equal ["INSERT INTO items (y) VALUES (1)", "SELECT * FROM items WHERE id = 10"]
1337
- @c.new.update_all(:z => 1)
1338
- DB.sqls.must_equal ["INSERT INTO items (z) VALUES (1)", "SELECT * FROM items WHERE id = 10"]
1339
- end
1340
-
1341
- deprecated "#update_only should only update given attributes" do
1342
- @o1.update_only({:x => 1, :y => 2, :z=>3, :id=>4}, [:x])
1343
- DB.sqls.must_equal ["INSERT INTO items (x) VALUES (1)", "SELECT * FROM items WHERE id = 10"]
1344
- @c.new.update_only({:x => 1, :y => 2, :z=>3, :id=>4}, :x)
1345
- DB.sqls.must_equal ["INSERT INTO items (x) VALUES (1)", "SELECT * FROM items WHERE id = 10"]
1346
- end
1347
- end
1348
-
1349
1253
  describe Sequel::Model, "#destroy with filtered dataset" do
1350
1254
  before do
1351
1255
  @model = Class.new(Sequel::Model(DB[:items].where(:a=>1)))
@@ -1467,7 +1371,7 @@ describe Sequel::Model, "#each" do
1467
1371
  @m = @model.load(:a => 1, :b => 2, :id => 4444)
1468
1372
  end
1469
1373
 
1470
- deprecated "should iterate over the values" do
1374
+ it "should iterate over the values" do
1471
1375
  h = {}
1472
1376
  @m.each{|k, v| h[k] = v}
1473
1377
  h.must_equal(:a => 1, :b => 2, :id => 4444)
@@ -1,25 +1,15 @@
1
- require 'rubygems'
2
- require "#{File.dirname(File.dirname(__FILE__))}/sequel_warning.rb"
1
+ require_relative "../sequel_warning"
2
+
3
+ $:.unshift(File.join(File.dirname(File.expand_path(__FILE__)), "../../lib/"))
4
+ require_relative "../../lib/sequel"
3
5
 
4
- unless Object.const_defined?('Sequel') && Sequel.const_defined?('Model')
5
- $:.unshift(File.join(File.dirname(File.expand_path(__FILE__)), "../../lib/"))
6
- require 'sequel'
7
- end
8
6
  Sequel::Deprecation.backtrace_filter = lambda{|line, lineno| lineno < 4 || line =~ /_spec\.rb/}
9
7
 
10
8
  gem 'minitest'
11
9
  require 'minitest/autorun'
12
10
  require 'minitest/hooks/default'
13
11
 
14
- require "#{File.dirname(File.dirname(__FILE__))}/deprecation_helper.rb"
15
-
16
- # SEQUEL5: Remove
17
- output = Sequel::Deprecation.output
18
- Sequel::Deprecation.output = nil
19
- Sequel.quote_identifiers = false
20
- Sequel.identifier_input_method = nil
21
- Sequel.identifier_output_method = nil
22
- Sequel::Deprecation.output = output
12
+ require_relative '../deprecation_helper'
23
13
 
24
14
  class << Sequel::Model
25
15
  attr_writer :db_schema
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
1
+ require_relative "spec_helper"
2
2
 
3
3
  describe Sequel::Model::Errors do
4
4
  before do
@@ -1,15 +1,4 @@
1
1
  if ENV['WARNING']
2
2
  require 'warning'
3
- Warning.ignore([:missing_ivar, :method_redefined], File.dirname(File.dirname(__FILE__)))
4
- end
5
-
6
- # SEQUEL5: Remove
7
- if RUBY_VERSION >= '2.4'
8
- begin
9
- require 'warning'
10
- rescue LoadError
11
- # nothing
12
- else
13
- Warning.ignore(/warning: constant Sequel::[a-zA-z:]+ is deprecated/, File.dirname(File.dirname(__FILE__)))
14
- end
3
+ Warning.ignore([:missing_ivar, :method_redefined, :not_reached], File.dirname(File.dirname(__FILE__)))
15
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.49.0
4
+ version: 5.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-01 00:00:00.000000000 Z
11
+ date: 2017-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -103,9 +103,9 @@ extra_rdoc_files:
103
103
  - README.rdoc
104
104
  - CHANGELOG
105
105
  - MIT-LICENSE
106
- - doc/active_record.rdoc
107
106
  - doc/advanced_associations.rdoc
108
107
  - doc/association_basics.rdoc
108
+ - doc/bin_sequel.rdoc
109
109
  - doc/cheat_sheet.rdoc
110
110
  - doc/dataset_basics.rdoc
111
111
  - doc/dataset_filtering.rdoc
@@ -126,12 +126,11 @@ extra_rdoc_files:
126
126
  - doc/thread_safety.rdoc
127
127
  - doc/object_model.rdoc
128
128
  - doc/core_extensions.rdoc
129
- - doc/bin_sequel.rdoc
129
+ - doc/code_order.rdoc
130
130
  - doc/security.rdoc
131
131
  - doc/postgresql.rdoc
132
- - doc/code_order.rdoc
133
- - doc/model_plugins.rdoc
134
132
  - doc/extensions.rdoc
133
+ - doc/model_plugins.rdoc
135
134
  - doc/mssql_stored_procedures.rdoc
136
135
  - doc/model_dataset_method_design.rdoc
137
136
  - doc/release_notes/1.0.txt
@@ -251,13 +250,16 @@ extra_rdoc_files:
251
250
  - doc/release_notes/4.47.0.txt
252
251
  - doc/release_notes/4.48.0.txt
253
252
  - doc/release_notes/4.49.0.txt
253
+ - doc/release_notes/5.0.0.txt
254
+ - doc/release_notes/5.1.0.txt
255
+ - doc/release_notes/5.2.0.txt
256
+ - doc/release_notes/5.3.0.txt
254
257
  files:
255
258
  - CHANGELOG
256
259
  - MIT-LICENSE
257
260
  - README.rdoc
258
261
  - Rakefile
259
262
  - bin/sequel
260
- - doc/active_record.rdoc
261
263
  - doc/advanced_associations.rdoc
262
264
  - doc/association_basics.rdoc
263
265
  - doc/bin_sequel.rdoc
@@ -396,6 +398,10 @@ files:
396
398
  - doc/release_notes/4.7.0.txt
397
399
  - doc/release_notes/4.8.0.txt
398
400
  - doc/release_notes/4.9.0.txt
401
+ - doc/release_notes/5.0.0.txt
402
+ - doc/release_notes/5.1.0.txt
403
+ - doc/release_notes/5.2.0.txt
404
+ - doc/release_notes/5.3.0.txt
399
405
  - doc/schema_modification.rdoc
400
406
  - doc/security.rdoc
401
407
  - doc/sharding.rdoc
@@ -410,22 +416,12 @@ files:
410
416
  - lib/sequel/adapters/ado/access.rb
411
417
  - lib/sequel/adapters/ado/mssql.rb
412
418
  - lib/sequel/adapters/amalgalite.rb
413
- - lib/sequel/adapters/cubrid.rb
414
- - lib/sequel/adapters/do.rb
415
- - lib/sequel/adapters/do/mysql.rb
416
- - lib/sequel/adapters/do/postgres.rb
417
- - lib/sequel/adapters/do/sqlite3.rb
418
419
  - lib/sequel/adapters/ibmdb.rb
419
420
  - lib/sequel/adapters/jdbc.rb
420
- - lib/sequel/adapters/jdbc/as400.rb
421
- - lib/sequel/adapters/jdbc/cubrid.rb
422
421
  - lib/sequel/adapters/jdbc/db2.rb
423
422
  - lib/sequel/adapters/jdbc/derby.rb
424
- - lib/sequel/adapters/jdbc/firebirdsql.rb
425
423
  - lib/sequel/adapters/jdbc/h2.rb
426
424
  - lib/sequel/adapters/jdbc/hsqldb.rb
427
- - lib/sequel/adapters/jdbc/informix-sqli.rb
428
- - lib/sequel/adapters/jdbc/jdbcprogress.rb
429
425
  - lib/sequel/adapters/jdbc/jtds.rb
430
426
  - lib/sequel/adapters/jdbc/mssql.rb
431
427
  - lib/sequel/adapters/jdbc/mysql.rb
@@ -442,34 +438,24 @@ files:
442
438
  - lib/sequel/adapters/odbc/db2.rb
443
439
  - lib/sequel/adapters/odbc/mssql.rb
444
440
  - lib/sequel/adapters/odbc/oracle.rb
445
- - lib/sequel/adapters/odbc/progress.rb
446
441
  - lib/sequel/adapters/oracle.rb
447
442
  - lib/sequel/adapters/postgres.rb
448
443
  - lib/sequel/adapters/postgresql.rb
449
444
  - lib/sequel/adapters/shared/access.rb
450
- - lib/sequel/adapters/shared/cubrid.rb
451
445
  - lib/sequel/adapters/shared/db2.rb
452
- - lib/sequel/adapters/shared/firebird.rb
453
- - lib/sequel/adapters/shared/informix.rb
454
446
  - lib/sequel/adapters/shared/mssql.rb
455
447
  - lib/sequel/adapters/shared/mysql.rb
456
448
  - lib/sequel/adapters/shared/oracle.rb
457
449
  - lib/sequel/adapters/shared/postgres.rb
458
- - lib/sequel/adapters/shared/progress.rb
459
450
  - lib/sequel/adapters/shared/sqlanywhere.rb
460
451
  - lib/sequel/adapters/shared/sqlite.rb
461
452
  - lib/sequel/adapters/sqlanywhere.rb
462
453
  - lib/sequel/adapters/sqlite.rb
463
- - lib/sequel/adapters/swift.rb
464
- - lib/sequel/adapters/swift/mysql.rb
465
- - lib/sequel/adapters/swift/postgres.rb
466
- - lib/sequel/adapters/swift/sqlite.rb
467
454
  - lib/sequel/adapters/tinytds.rb
468
455
  - lib/sequel/adapters/utils/emulate_offset_with_reverse_and_count.rb
469
456
  - lib/sequel/adapters/utils/emulate_offset_with_row_number.rb
470
457
  - lib/sequel/adapters/utils/mysql_mysql2.rb
471
458
  - lib/sequel/adapters/utils/mysql_prepared_statements.rb
472
- - lib/sequel/adapters/utils/pg_types.rb
473
459
  - lib/sequel/adapters/utils/replace.rb
474
460
  - lib/sequel/adapters/utils/split_alter_table.rb
475
461
  - lib/sequel/adapters/utils/stored_procedures.rb
@@ -498,14 +484,12 @@ files:
498
484
  - lib/sequel/dataset/features.rb
499
485
  - lib/sequel/dataset/graph.rb
500
486
  - lib/sequel/dataset/misc.rb
501
- - lib/sequel/dataset/mutation.rb
502
487
  - lib/sequel/dataset/placeholder_literalizer.rb
503
488
  - lib/sequel/dataset/prepared_statements.rb
504
489
  - lib/sequel/dataset/query.rb
505
490
  - lib/sequel/dataset/sql.rb
506
491
  - lib/sequel/deprecated.rb
507
492
  - lib/sequel/exceptions.rb
508
- - lib/sequel/extensions/_deprecated_identifier_mangling.rb
509
493
  - lib/sequel/extensions/_model_constraint_validations.rb
510
494
  - lib/sequel/extensions/_model_pg_row.rb
511
495
  - lib/sequel/extensions/_pretty_table.rb
@@ -523,19 +507,15 @@ files:
523
507
  - lib/sequel/extensions/date_arithmetic.rb
524
508
  - lib/sequel/extensions/duplicate_columns_handler.rb
525
509
  - lib/sequel/extensions/empty_array_consider_nulls.rb
526
- - lib/sequel/extensions/empty_array_ignore_nulls.rb
527
510
  - lib/sequel/extensions/error_sql.rb
528
511
  - lib/sequel/extensions/eval_inspect.rb
529
- - lib/sequel/extensions/filter_having.rb
530
512
  - lib/sequel/extensions/freeze_datasets.rb
531
513
  - lib/sequel/extensions/from_block.rb
532
514
  - lib/sequel/extensions/graph_each.rb
533
- - lib/sequel/extensions/hash_aliases.rb
534
515
  - lib/sequel/extensions/identifier_mangling.rb
535
516
  - lib/sequel/extensions/implicit_subquery.rb
536
517
  - lib/sequel/extensions/inflector.rb
537
518
  - lib/sequel/extensions/looser_typecasting.rb
538
- - lib/sequel/extensions/meta_def.rb
539
519
  - lib/sequel/extensions/migration.rb
540
520
  - lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb
541
521
  - lib/sequel/extensions/named_timezones.rb
@@ -545,6 +525,7 @@ files:
545
525
  - lib/sequel/extensions/pg_array.rb
546
526
  - lib/sequel/extensions/pg_array_ops.rb
547
527
  - lib/sequel/extensions/pg_enum.rb
528
+ - lib/sequel/extensions/pg_extended_date_support.rb
548
529
  - lib/sequel/extensions/pg_hstore.rb
549
530
  - lib/sequel/extensions/pg_hstore_ops.rb
550
531
  - lib/sequel/extensions/pg_inet.rb
@@ -560,18 +541,14 @@ files:
560
541
  - lib/sequel/extensions/pg_static_cache_updater.rb
561
542
  - lib/sequel/extensions/pretty_table.rb
562
543
  - lib/sequel/extensions/query.rb
563
- - lib/sequel/extensions/query_literals.rb
564
544
  - lib/sequel/extensions/round_timestamps.rb
565
- - lib/sequel/extensions/ruby18_symbol_extensions.rb
566
545
  - lib/sequel/extensions/s.rb
567
546
  - lib/sequel/extensions/schema_caching.rb
568
547
  - lib/sequel/extensions/schema_dumper.rb
569
548
  - lib/sequel/extensions/select_remove.rb
570
- - lib/sequel/extensions/sequel_3_dataset_methods.rb
571
549
  - lib/sequel/extensions/sequel_4_dataset_methods.rb
572
550
  - lib/sequel/extensions/server_block.rb
573
551
  - lib/sequel/extensions/server_logging.rb
574
- - lib/sequel/extensions/set_overrides.rb
575
552
  - lib/sequel/extensions/split_array_nil.rb
576
553
  - lib/sequel/extensions/sql_comments.rb
577
554
  - lib/sequel/extensions/sql_expr.rb
@@ -581,6 +558,7 @@ files:
581
558
  - lib/sequel/extensions/symbol_aref_refinement.rb
582
559
  - lib/sequel/extensions/symbol_as.rb
583
560
  - lib/sequel/extensions/symbol_as_refinement.rb
561
+ - lib/sequel/extensions/synchronize_sql.rb
584
562
  - lib/sequel/extensions/thread_local_timezones.rb
585
563
  - lib/sequel/extensions/to_dot.rb
586
564
  - lib/sequel/extensions/virtual_row_method_block.rb
@@ -593,11 +571,9 @@ files:
593
571
  - lib/sequel/model/exceptions.rb
594
572
  - lib/sequel/model/inflections.rb
595
573
  - lib/sequel/model/plugins.rb
596
- - lib/sequel/no_core_ext.rb
597
574
  - lib/sequel/plugins/accessed_columns.rb
598
575
  - lib/sequel/plugins/active_model.rb
599
576
  - lib/sequel/plugins/after_initialize.rb
600
- - lib/sequel/plugins/association_autoreloading.rb
601
577
  - lib/sequel/plugins/association_dependencies.rb
602
578
  - lib/sequel/plugins/association_pks.rb
603
579
  - lib/sequel/plugins/association_proxies.rb
@@ -624,7 +600,6 @@ files:
624
600
  - lib/sequel/plugins/finder.rb
625
601
  - lib/sequel/plugins/force_encoding.rb
626
602
  - lib/sequel/plugins/hook_class_methods.rb
627
- - lib/sequel/plugins/identifier_columns.rb
628
603
  - lib/sequel/plugins/input_transformer.rb
629
604
  - lib/sequel/plugins/insert_returning_select.rb
630
605
  - lib/sequel/plugins/instance_filters.rb
@@ -634,21 +609,15 @@ files:
634
609
  - lib/sequel/plugins/lazy_attributes.rb
635
610
  - lib/sequel/plugins/list.rb
636
611
  - lib/sequel/plugins/many_through_many.rb
637
- - lib/sequel/plugins/many_to_one_pk_lookup.rb
638
612
  - lib/sequel/plugins/modification_detection.rb
639
613
  - lib/sequel/plugins/mssql_optimistic_locking.rb
640
614
  - lib/sequel/plugins/nested_attributes.rb
641
615
  - lib/sequel/plugins/optimistic_locking.rb
642
616
  - lib/sequel/plugins/pg_array_associations.rb
643
617
  - lib/sequel/plugins/pg_row.rb
644
- - lib/sequel/plugins/pg_typecast_on_load.rb
645
618
  - lib/sequel/plugins/prepared_statements.rb
646
- - lib/sequel/plugins/prepared_statements_associations.rb
647
619
  - lib/sequel/plugins/prepared_statements_safe.rb
648
- - lib/sequel/plugins/prepared_statements_with_pk.rb
649
620
  - lib/sequel/plugins/rcte_tree.rb
650
- - lib/sequel/plugins/schema.rb
651
- - lib/sequel/plugins/scissors.rb
652
621
  - lib/sequel/plugins/serialization.rb
653
622
  - lib/sequel/plugins/serialization_modification_detection.rb
654
623
  - lib/sequel/plugins/sharding.rb
@@ -692,7 +661,6 @@ files:
692
661
  - spec/bin_spec.rb
693
662
  - spec/core/connection_pool_spec.rb
694
663
  - spec/core/database_spec.rb
695
- - spec/core/dataset_mutation_spec.rb
696
664
  - spec/core/dataset_spec.rb
697
665
  - spec/core/deprecated_spec.rb
698
666
  - spec/core/expression_filters_spec.rb
@@ -707,7 +675,6 @@ files:
707
675
  - spec/core_model_spec.rb
708
676
  - spec/core_spec.rb
709
677
  - spec/deprecation_helper.rb
710
- - spec/extensions/_deprecated_identifier_mangling_spec.rb
711
678
  - spec/extensions/accessed_columns_spec.rb
712
679
  - spec/extensions/active_model_spec.rb
713
680
  - spec/extensions/after_initialize_spec.rb
@@ -717,7 +684,6 @@ files:
717
684
  - spec/extensions/association_proxies_spec.rb
718
685
  - spec/extensions/auto_literal_strings_spec.rb
719
686
  - spec/extensions/auto_validations_spec.rb
720
- - spec/extensions/before_after_save_spec.rb
721
687
  - spec/extensions/blacklist_security_spec.rb
722
688
  - spec/extensions/blank_spec.rb
723
689
  - spec/extensions/boolean_readers_spec.rb
@@ -749,15 +715,11 @@ files:
749
715
  - spec/extensions/error_splitter_spec.rb
750
716
  - spec/extensions/error_sql_spec.rb
751
717
  - spec/extensions/eval_inspect_spec.rb
752
- - spec/extensions/filter_having_spec.rb
753
718
  - spec/extensions/finder_spec.rb
754
719
  - spec/extensions/force_encoding_spec.rb
755
720
  - spec/extensions/freeze_datasets_spec.rb
756
- - spec/extensions/from_block_spec.rb
757
721
  - spec/extensions/graph_each_spec.rb
758
- - spec/extensions/hash_aliases_spec.rb
759
722
  - spec/extensions/hook_class_methods_spec.rb
760
- - spec/extensions/identifier_columns_spec.rb
761
723
  - spec/extensions/identifier_mangling_spec.rb
762
724
  - spec/extensions/implicit_subquery_spec.rb
763
725
  - spec/extensions/inflector_spec.rb
@@ -771,13 +733,11 @@ files:
771
733
  - spec/extensions/list_spec.rb
772
734
  - spec/extensions/looser_typecasting_spec.rb
773
735
  - spec/extensions/many_through_many_spec.rb
774
- - spec/extensions/meta_def_spec.rb
775
736
  - spec/extensions/migration_spec.rb
776
737
  - spec/extensions/modification_detection_spec.rb
777
738
  - spec/extensions/mssql_optimistic_locking_spec.rb
778
739
  - spec/extensions/named_timezones_spec.rb
779
740
  - spec/extensions/nested_attributes_spec.rb
780
- - spec/extensions/no_auto_literal_strings_spec.rb
781
741
  - spec/extensions/null_dataset_spec.rb
782
742
  - spec/extensions/optimistic_locking_spec.rb
783
743
  - spec/extensions/pagination_spec.rb
@@ -785,6 +745,7 @@ files:
785
745
  - spec/extensions/pg_array_ops_spec.rb
786
746
  - spec/extensions/pg_array_spec.rb
787
747
  - spec/extensions/pg_enum_spec.rb
748
+ - spec/extensions/pg_extended_date_support_spec.rb
788
749
  - spec/extensions/pg_hstore_ops_spec.rb
789
750
  - spec/extensions/pg_hstore_spec.rb
790
751
  - spec/extensions/pg_inet_ops_spec.rb
@@ -799,29 +760,21 @@ files:
799
760
  - spec/extensions/pg_row_plugin_spec.rb
800
761
  - spec/extensions/pg_row_spec.rb
801
762
  - spec/extensions/pg_static_cache_updater_spec.rb
802
- - spec/extensions/pg_typecast_on_load_spec.rb
803
- - spec/extensions/prepared_statements_associations_spec.rb
804
763
  - spec/extensions/prepared_statements_safe_spec.rb
805
764
  - spec/extensions/prepared_statements_spec.rb
806
- - spec/extensions/prepared_statements_with_pk_spec.rb
807
765
  - spec/extensions/pretty_table_spec.rb
808
- - spec/extensions/query_literals_spec.rb
809
766
  - spec/extensions/query_spec.rb
810
767
  - spec/extensions/rcte_tree_spec.rb
811
768
  - spec/extensions/round_timestamps_spec.rb
812
769
  - spec/extensions/s_spec.rb
813
770
  - spec/extensions/schema_caching_spec.rb
814
771
  - spec/extensions/schema_dumper_spec.rb
815
- - spec/extensions/schema_spec.rb
816
- - spec/extensions/scissors_spec.rb
817
772
  - spec/extensions/select_remove_spec.rb
818
- - spec/extensions/sequel_3_dataset_methods_spec.rb
819
773
  - spec/extensions/sequel_4_dataset_methods_spec.rb
820
774
  - spec/extensions/serialization_modification_detection_spec.rb
821
775
  - spec/extensions/serialization_spec.rb
822
776
  - spec/extensions/server_block_spec.rb
823
777
  - spec/extensions/server_logging_spec.rb
824
- - spec/extensions/set_overrides_spec.rb
825
778
  - spec/extensions/sharding_spec.rb
826
779
  - spec/extensions/shared_caching_spec.rb
827
780
  - spec/extensions/single_table_inheritance_spec.rb
@@ -840,6 +793,7 @@ files:
840
793
  - spec/extensions/subset_conditions_spec.rb
841
794
  - spec/extensions/symbol_aref_refinement_spec.rb
842
795
  - spec/extensions/symbol_as_refinement_spec.rb
796
+ - spec/extensions/synchronize_sql_spec.rb
843
797
  - spec/extensions/table_select_spec.rb
844
798
  - spec/extensions/tactical_eager_loading_spec.rb
845
799
  - spec/extensions/thread_local_timezones_spec.rb
@@ -963,7 +917,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
963
917
  requirements:
964
918
  - - ">="
965
919
  - !ruby/object:Gem::Version
966
- version: 1.8.7
920
+ version: 1.9.2
967
921
  required_rubygems_version: !ruby/object:Gem::Requirement
968
922
  requirements:
969
923
  - - ">="
@@ -971,7 +925,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
971
925
  version: '0'
972
926
  requirements: []
973
927
  rubyforge_project:
974
- rubygems_version: 2.6.11
928
+ rubygems_version: 2.6.13
975
929
  signing_key:
976
930
  specification_version: 4
977
931
  summary: The Database Toolkit for Ruby