sequel 4.49.0 → 5.0.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 (477) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +70 -0
  3. data/README.rdoc +195 -136
  4. data/Rakefile +26 -42
  5. data/bin/sequel +3 -5
  6. data/doc/advanced_associations.rdoc +86 -163
  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/schema_modification.rdoc +63 -60
  29. data/doc/security.rdoc +97 -88
  30. data/doc/sharding.rdoc +43 -30
  31. data/doc/sql.rdoc +53 -65
  32. data/doc/testing.rdoc +3 -5
  33. data/doc/thread_safety.rdoc +2 -4
  34. data/doc/transactions.rdoc +18 -17
  35. data/doc/validations.rdoc +48 -45
  36. data/doc/virtual_rows.rdoc +87 -115
  37. data/lib/sequel.rb +1 -1
  38. data/lib/sequel/adapters/ado.rb +9 -25
  39. data/lib/sequel/adapters/ado/access.rb +7 -13
  40. data/lib/sequel/adapters/ado/mssql.rb +2 -9
  41. data/lib/sequel/adapters/amalgalite.rb +3 -18
  42. data/lib/sequel/adapters/ibmdb.rb +9 -45
  43. data/lib/sequel/adapters/jdbc.rb +13 -73
  44. data/lib/sequel/adapters/jdbc/db2.rb +8 -37
  45. data/lib/sequel/adapters/jdbc/derby.rb +4 -50
  46. data/lib/sequel/adapters/jdbc/h2.rb +4 -25
  47. data/lib/sequel/adapters/jdbc/hsqldb.rb +1 -26
  48. data/lib/sequel/adapters/jdbc/jtds.rb +2 -9
  49. data/lib/sequel/adapters/jdbc/mssql.rb +1 -11
  50. data/lib/sequel/adapters/jdbc/mysql.rb +1 -15
  51. data/lib/sequel/adapters/jdbc/oracle.rb +4 -26
  52. data/lib/sequel/adapters/jdbc/postgresql.rb +2 -31
  53. data/lib/sequel/adapters/jdbc/sqlanywhere.rb +4 -17
  54. data/lib/sequel/adapters/jdbc/sqlite.rb +1 -7
  55. data/lib/sequel/adapters/jdbc/sqlserver.rb +1 -13
  56. data/lib/sequel/adapters/jdbc/transactions.rb +1 -14
  57. data/lib/sequel/adapters/mock.rb +4 -30
  58. data/lib/sequel/adapters/mysql.rb +7 -44
  59. data/lib/sequel/adapters/mysql2.rb +5 -23
  60. data/lib/sequel/adapters/odbc.rb +0 -19
  61. data/lib/sequel/adapters/odbc/db2.rb +1 -1
  62. data/lib/sequel/adapters/odbc/mssql.rb +4 -12
  63. data/lib/sequel/adapters/odbc/oracle.rb +1 -1
  64. data/lib/sequel/adapters/oracle.rb +7 -13
  65. data/lib/sequel/adapters/postgres.rb +13 -57
  66. data/lib/sequel/adapters/postgresql.rb +1 -1
  67. data/lib/sequel/adapters/shared/access.rb +11 -51
  68. data/lib/sequel/adapters/shared/db2.rb +3 -61
  69. data/lib/sequel/adapters/shared/mssql.rb +21 -157
  70. data/lib/sequel/adapters/shared/mysql.rb +23 -224
  71. data/lib/sequel/adapters/shared/oracle.rb +13 -41
  72. data/lib/sequel/adapters/shared/postgres.rb +44 -259
  73. data/lib/sequel/adapters/shared/sqlanywhere.rb +4 -96
  74. data/lib/sequel/adapters/shared/sqlite.rb +12 -101
  75. data/lib/sequel/adapters/sqlanywhere.rb +4 -23
  76. data/lib/sequel/adapters/sqlite.rb +2 -19
  77. data/lib/sequel/adapters/tinytds.rb +5 -15
  78. data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +1 -1
  79. data/lib/sequel/adapters/utils/mysql_mysql2.rb +2 -4
  80. data/lib/sequel/adapters/utils/mysql_prepared_statements.rb +3 -6
  81. data/lib/sequel/adapters/utils/replace.rb +0 -5
  82. data/lib/sequel/adapters/utils/stored_procedures.rb +0 -2
  83. data/lib/sequel/adapters/utils/unmodified_identifiers.rb +2 -0
  84. data/lib/sequel/ast_transformer.rb +3 -94
  85. data/lib/sequel/connection_pool.rb +26 -28
  86. data/lib/sequel/connection_pool/sharded_single.rb +1 -4
  87. data/lib/sequel/connection_pool/sharded_threaded.rb +97 -95
  88. data/lib/sequel/connection_pool/single.rb +0 -2
  89. data/lib/sequel/connection_pool/threaded.rb +94 -110
  90. data/lib/sequel/core.rb +42 -101
  91. data/lib/sequel/database.rb +12 -2
  92. data/lib/sequel/database/connecting.rb +23 -60
  93. data/lib/sequel/database/dataset.rb +6 -9
  94. data/lib/sequel/database/dataset_defaults.rb +4 -48
  95. data/lib/sequel/database/features.rb +5 -4
  96. data/lib/sequel/database/logging.rb +2 -9
  97. data/lib/sequel/database/misc.rb +23 -55
  98. data/lib/sequel/database/query.rb +8 -13
  99. data/lib/sequel/database/schema_generator.rb +89 -64
  100. data/lib/sequel/database/schema_methods.rb +61 -79
  101. data/lib/sequel/database/transactions.rb +4 -24
  102. data/lib/sequel/dataset.rb +18 -10
  103. data/lib/sequel/dataset/actions.rb +53 -107
  104. data/lib/sequel/dataset/dataset_module.rb +3 -15
  105. data/lib/sequel/dataset/features.rb +30 -30
  106. data/lib/sequel/dataset/graph.rb +40 -49
  107. data/lib/sequel/dataset/misc.rb +12 -37
  108. data/lib/sequel/dataset/placeholder_literalizer.rb +4 -4
  109. data/lib/sequel/dataset/prepared_statements.rb +23 -51
  110. data/lib/sequel/dataset/query.rb +71 -155
  111. data/lib/sequel/dataset/sql.rb +30 -225
  112. data/lib/sequel/deprecated.rb +18 -27
  113. data/lib/sequel/exceptions.rb +1 -17
  114. data/lib/sequel/extensions/_model_pg_row.rb +0 -7
  115. data/lib/sequel/extensions/_pretty_table.rb +1 -3
  116. data/lib/sequel/extensions/arbitrary_servers.rb +10 -10
  117. data/lib/sequel/extensions/connection_expiration.rb +1 -1
  118. data/lib/sequel/extensions/connection_validator.rb +1 -1
  119. data/lib/sequel/extensions/constraint_validations.rb +11 -11
  120. data/lib/sequel/extensions/core_extensions.rb +39 -49
  121. data/lib/sequel/extensions/core_refinements.rb +39 -45
  122. data/lib/sequel/extensions/current_datetime_timestamp.rb +0 -4
  123. data/lib/sequel/extensions/date_arithmetic.rb +7 -7
  124. data/lib/sequel/extensions/duplicate_columns_handler.rb +12 -9
  125. data/lib/sequel/extensions/empty_array_consider_nulls.rb +2 -2
  126. data/lib/sequel/extensions/eval_inspect.rb +4 -11
  127. data/lib/sequel/extensions/freeze_datasets.rb +1 -69
  128. data/lib/sequel/extensions/from_block.rb +1 -35
  129. data/lib/sequel/extensions/graph_each.rb +2 -2
  130. data/lib/sequel/extensions/identifier_mangling.rb +9 -19
  131. data/lib/sequel/extensions/implicit_subquery.rb +2 -2
  132. data/lib/sequel/extensions/inflector.rb +4 -4
  133. data/lib/sequel/extensions/migration.rb +23 -40
  134. data/lib/sequel/extensions/no_auto_literal_strings.rb +2 -84
  135. data/lib/sequel/extensions/null_dataset.rb +2 -8
  136. data/lib/sequel/extensions/pagination.rb +1 -17
  137. data/lib/sequel/extensions/pg_array.rb +20 -189
  138. data/lib/sequel/extensions/pg_hstore.rb +11 -50
  139. data/lib/sequel/extensions/pg_hstore_ops.rb +2 -2
  140. data/lib/sequel/extensions/pg_inet.rb +2 -15
  141. data/lib/sequel/extensions/pg_interval.rb +1 -20
  142. data/lib/sequel/extensions/pg_json.rb +7 -27
  143. data/lib/sequel/extensions/pg_loose_count.rb +1 -1
  144. data/lib/sequel/extensions/pg_range.rb +6 -121
  145. data/lib/sequel/extensions/pg_range_ops.rb +1 -3
  146. data/lib/sequel/extensions/pg_row.rb +5 -77
  147. data/lib/sequel/extensions/pg_row_ops.rb +2 -13
  148. data/lib/sequel/extensions/query.rb +3 -4
  149. data/lib/sequel/extensions/round_timestamps.rb +0 -6
  150. data/lib/sequel/extensions/schema_dumper.rb +13 -13
  151. data/lib/sequel/extensions/select_remove.rb +3 -3
  152. data/lib/sequel/extensions/split_array_nil.rb +2 -2
  153. data/lib/sequel/extensions/sql_comments.rb +2 -2
  154. data/lib/sequel/extensions/string_agg.rb +11 -8
  155. data/lib/sequel/extensions/symbol_aref.rb +6 -20
  156. data/lib/sequel/model.rb +27 -62
  157. data/lib/sequel/model/associations.rb +128 -131
  158. data/lib/sequel/model/base.rb +171 -711
  159. data/lib/sequel/model/default_inflections.rb +1 -1
  160. data/lib/sequel/model/errors.rb +0 -3
  161. data/lib/sequel/model/exceptions.rb +2 -6
  162. data/lib/sequel/model/inflections.rb +1 -26
  163. data/lib/sequel/model/plugins.rb +1 -0
  164. data/lib/sequel/plugins/active_model.rb +2 -5
  165. data/lib/sequel/plugins/association_dependencies.rb +15 -15
  166. data/lib/sequel/plugins/association_pks.rb +14 -28
  167. data/lib/sequel/plugins/association_proxies.rb +6 -7
  168. data/lib/sequel/plugins/auto_validations.rb +4 -4
  169. data/lib/sequel/plugins/before_after_save.rb +0 -43
  170. data/lib/sequel/plugins/blacklist_security.rb +9 -8
  171. data/lib/sequel/plugins/boolean_readers.rb +3 -3
  172. data/lib/sequel/plugins/boolean_subsets.rb +2 -2
  173. data/lib/sequel/plugins/caching.rb +5 -5
  174. data/lib/sequel/plugins/class_table_inheritance.rb +71 -102
  175. data/lib/sequel/plugins/column_conflicts.rb +2 -2
  176. data/lib/sequel/plugins/column_select.rb +2 -2
  177. data/lib/sequel/plugins/composition.rb +15 -24
  178. data/lib/sequel/plugins/constraint_validations.rb +4 -3
  179. data/lib/sequel/plugins/csv_serializer.rb +13 -20
  180. data/lib/sequel/plugins/dataset_associations.rb +2 -2
  181. data/lib/sequel/plugins/def_dataset_method.rb +5 -5
  182. data/lib/sequel/plugins/defaults_setter.rb +1 -1
  183. data/lib/sequel/plugins/delay_add_association.rb +1 -1
  184. data/lib/sequel/plugins/finder.rb +16 -10
  185. data/lib/sequel/plugins/force_encoding.rb +1 -7
  186. data/lib/sequel/plugins/hook_class_methods.rb +4 -106
  187. data/lib/sequel/plugins/input_transformer.rb +10 -11
  188. data/lib/sequel/plugins/insert_returning_select.rb +1 -9
  189. data/lib/sequel/plugins/instance_filters.rb +5 -5
  190. data/lib/sequel/plugins/instance_hooks.rb +7 -52
  191. data/lib/sequel/plugins/inverted_subsets.rb +3 -1
  192. data/lib/sequel/plugins/json_serializer.rb +19 -19
  193. data/lib/sequel/plugins/lazy_attributes.rb +1 -10
  194. data/lib/sequel/plugins/list.rb +6 -6
  195. data/lib/sequel/plugins/many_through_many.rb +11 -8
  196. data/lib/sequel/plugins/mssql_optimistic_locking.rb +3 -3
  197. data/lib/sequel/plugins/nested_attributes.rb +18 -31
  198. data/lib/sequel/plugins/optimistic_locking.rb +3 -3
  199. data/lib/sequel/plugins/pg_array_associations.rb +8 -2
  200. data/lib/sequel/plugins/pg_row.rb +2 -11
  201. data/lib/sequel/plugins/prepared_statements.rb +13 -66
  202. data/lib/sequel/plugins/prepared_statements_safe.rb +1 -1
  203. data/lib/sequel/plugins/rcte_tree.rb +7 -7
  204. data/lib/sequel/plugins/serialization.rb +15 -33
  205. data/lib/sequel/plugins/serialization_modification_detection.rb +1 -1
  206. data/lib/sequel/plugins/sharding.rb +2 -8
  207. data/lib/sequel/plugins/single_table_inheritance.rb +10 -13
  208. data/lib/sequel/plugins/skip_create_refresh.rb +3 -3
  209. data/lib/sequel/plugins/static_cache.rb +8 -9
  210. data/lib/sequel/plugins/string_stripper.rb +3 -3
  211. data/lib/sequel/plugins/subclasses.rb +1 -1
  212. data/lib/sequel/plugins/subset_conditions.rb +2 -2
  213. data/lib/sequel/plugins/table_select.rb +2 -2
  214. data/lib/sequel/plugins/tactical_eager_loading.rb +4 -4
  215. data/lib/sequel/plugins/timestamps.rb +6 -7
  216. data/lib/sequel/plugins/touch.rb +4 -8
  217. data/lib/sequel/plugins/tree.rb +3 -3
  218. data/lib/sequel/plugins/typecast_on_load.rb +2 -2
  219. data/lib/sequel/plugins/unlimited_update.rb +1 -7
  220. data/lib/sequel/plugins/update_or_create.rb +3 -3
  221. data/lib/sequel/plugins/update_refresh.rb +3 -3
  222. data/lib/sequel/plugins/uuid.rb +7 -11
  223. data/lib/sequel/plugins/validation_class_methods.rb +10 -9
  224. data/lib/sequel/plugins/validation_contexts.rb +4 -4
  225. data/lib/sequel/plugins/validation_helpers.rb +26 -25
  226. data/lib/sequel/plugins/whitelist_security.rb +13 -9
  227. data/lib/sequel/plugins/xml_serializer.rb +24 -25
  228. data/lib/sequel/sql.rb +145 -276
  229. data/lib/sequel/timezones.rb +8 -22
  230. data/lib/sequel/version.rb +2 -2
  231. data/spec/adapter_spec.rb +1 -1
  232. data/spec/adapters/db2_spec.rb +2 -103
  233. data/spec/adapters/mssql_spec.rb +89 -68
  234. data/spec/adapters/mysql_spec.rb +101 -480
  235. data/spec/adapters/oracle_spec.rb +1 -9
  236. data/spec/adapters/postgres_spec.rb +312 -565
  237. data/spec/adapters/spec_helper.rb +12 -31
  238. data/spec/adapters/sqlanywhere_spec.rb +2 -77
  239. data/spec/adapters/sqlite_spec.rb +8 -146
  240. data/spec/bin_spec.rb +11 -16
  241. data/spec/core/connection_pool_spec.rb +173 -74
  242. data/spec/core/database_spec.rb +64 -244
  243. data/spec/core/dataset_spec.rb +81 -415
  244. data/spec/core/deprecated_spec.rb +3 -3
  245. data/spec/core/expression_filters_spec.rb +37 -144
  246. data/spec/core/mock_adapter_spec.rb +176 -4
  247. data/spec/core/object_graph_spec.rb +11 -60
  248. data/spec/core/placeholder_literalizer_spec.rb +1 -14
  249. data/spec/core/schema_generator_spec.rb +51 -40
  250. data/spec/core/schema_spec.rb +74 -77
  251. data/spec/core/spec_helper.rb +6 -24
  252. data/spec/core/version_spec.rb +1 -1
  253. data/spec/core_extensions_spec.rb +7 -83
  254. data/spec/core_model_spec.rb +2 -2
  255. data/spec/deprecation_helper.rb +2 -14
  256. data/spec/extensions/accessed_columns_spec.rb +1 -1
  257. data/spec/extensions/active_model_spec.rb +3 -3
  258. data/spec/extensions/after_initialize_spec.rb +1 -1
  259. data/spec/extensions/arbitrary_servers_spec.rb +2 -2
  260. data/spec/extensions/association_dependencies_spec.rb +1 -1
  261. data/spec/extensions/association_pks_spec.rb +4 -59
  262. data/spec/extensions/association_proxies_spec.rb +1 -1
  263. data/spec/extensions/auto_literal_strings_spec.rb +1 -12
  264. data/spec/extensions/auto_validations_spec.rb +1 -1
  265. data/spec/extensions/blacklist_security_spec.rb +1 -1
  266. data/spec/extensions/blank_spec.rb +1 -1
  267. data/spec/extensions/boolean_readers_spec.rb +1 -1
  268. data/spec/extensions/boolean_subsets_spec.rb +1 -1
  269. data/spec/extensions/caching_spec.rb +1 -1
  270. data/spec/extensions/class_table_inheritance_spec.rb +35 -1086
  271. data/spec/extensions/column_conflicts_spec.rb +1 -1
  272. data/spec/extensions/column_select_spec.rb +4 -4
  273. data/spec/extensions/columns_introspection_spec.rb +1 -1
  274. data/spec/extensions/columns_updated_spec.rb +1 -1
  275. data/spec/extensions/composition_spec.rb +1 -7
  276. data/spec/extensions/connection_expiration_spec.rb +3 -3
  277. data/spec/extensions/connection_validator_spec.rb +3 -3
  278. data/spec/extensions/constraint_validations_plugin_spec.rb +1 -1
  279. data/spec/extensions/constraint_validations_spec.rb +1 -1
  280. data/spec/extensions/core_refinements_spec.rb +1 -3
  281. data/spec/extensions/csv_serializer_spec.rb +4 -9
  282. data/spec/extensions/current_datetime_timestamp_spec.rb +1 -1
  283. data/spec/extensions/dataset_associations_spec.rb +2 -1
  284. data/spec/extensions/dataset_source_alias_spec.rb +1 -1
  285. data/spec/extensions/date_arithmetic_spec.rb +3 -3
  286. data/spec/extensions/def_dataset_method_spec.rb +1 -1
  287. data/spec/extensions/defaults_setter_spec.rb +2 -2
  288. data/spec/extensions/delay_add_association_spec.rb +8 -9
  289. data/spec/extensions/dirty_spec.rb +1 -1
  290. data/spec/extensions/duplicate_columns_handler_spec.rb +1 -1
  291. data/spec/extensions/eager_each_spec.rb +2 -2
  292. data/spec/extensions/empty_array_consider_nulls_spec.rb +1 -1
  293. data/spec/extensions/error_splitter_spec.rb +1 -1
  294. data/spec/extensions/error_sql_spec.rb +1 -1
  295. data/spec/extensions/eval_inspect_spec.rb +1 -1
  296. data/spec/extensions/finder_spec.rb +1 -1
  297. data/spec/extensions/force_encoding_spec.rb +2 -5
  298. data/spec/extensions/freeze_datasets_spec.rb +1 -1
  299. data/spec/extensions/graph_each_spec.rb +5 -5
  300. data/spec/extensions/hook_class_methods_spec.rb +1 -194
  301. data/spec/extensions/identifier_mangling_spec.rb +17 -170
  302. data/spec/extensions/implicit_subquery_spec.rb +1 -5
  303. data/spec/extensions/inflector_spec.rb +1 -1
  304. data/spec/extensions/input_transformer_spec.rb +7 -2
  305. data/spec/extensions/insert_returning_select_spec.rb +1 -1
  306. data/spec/extensions/instance_filters_spec.rb +1 -1
  307. data/spec/extensions/instance_hooks_spec.rb +1 -95
  308. data/spec/extensions/inverted_subsets_spec.rb +1 -1
  309. data/spec/extensions/json_serializer_spec.rb +1 -1
  310. data/spec/extensions/lazy_attributes_spec.rb +1 -7
  311. data/spec/extensions/list_spec.rb +1 -1
  312. data/spec/extensions/looser_typecasting_spec.rb +1 -1
  313. data/spec/extensions/many_through_many_spec.rb +1 -1
  314. data/spec/extensions/migration_spec.rb +2 -2
  315. data/spec/extensions/modification_detection_spec.rb +1 -1
  316. data/spec/extensions/mssql_optimistic_locking_spec.rb +1 -1
  317. data/spec/extensions/named_timezones_spec.rb +3 -3
  318. data/spec/extensions/nested_attributes_spec.rb +1 -29
  319. data/spec/extensions/null_dataset_spec.rb +1 -11
  320. data/spec/extensions/optimistic_locking_spec.rb +1 -1
  321. data/spec/extensions/pagination_spec.rb +1 -1
  322. data/spec/extensions/pg_array_associations_spec.rb +4 -1
  323. data/spec/extensions/pg_array_ops_spec.rb +1 -1
  324. data/spec/extensions/pg_array_spec.rb +3 -48
  325. data/spec/extensions/pg_enum_spec.rb +1 -1
  326. data/spec/extensions/pg_hstore_ops_spec.rb +1 -1
  327. data/spec/extensions/pg_hstore_spec.rb +23 -32
  328. data/spec/extensions/pg_inet_ops_spec.rb +1 -1
  329. data/spec/extensions/pg_inet_spec.rb +1 -14
  330. data/spec/extensions/pg_interval_spec.rb +3 -13
  331. data/spec/extensions/pg_json_ops_spec.rb +1 -1
  332. data/spec/extensions/pg_json_spec.rb +1 -13
  333. data/spec/extensions/pg_loose_count_spec.rb +1 -1
  334. data/spec/extensions/pg_range_ops_spec.rb +1 -1
  335. data/spec/extensions/pg_range_spec.rb +3 -88
  336. data/spec/extensions/pg_row_ops_spec.rb +1 -1
  337. data/spec/extensions/pg_row_plugin_spec.rb +1 -1
  338. data/spec/extensions/pg_row_spec.rb +1 -44
  339. data/spec/extensions/pg_static_cache_updater_spec.rb +1 -1
  340. data/spec/extensions/prepared_statements_safe_spec.rb +1 -1
  341. data/spec/extensions/prepared_statements_spec.rb +13 -48
  342. data/spec/extensions/pretty_table_spec.rb +1 -1
  343. data/spec/extensions/query_spec.rb +1 -12
  344. data/spec/extensions/rcte_tree_spec.rb +1 -1
  345. data/spec/extensions/round_timestamps_spec.rb +1 -5
  346. data/spec/extensions/s_spec.rb +1 -1
  347. data/spec/extensions/schema_caching_spec.rb +1 -1
  348. data/spec/extensions/schema_dumper_spec.rb +1 -1
  349. data/spec/extensions/select_remove_spec.rb +1 -1
  350. data/spec/extensions/sequel_4_dataset_methods_spec.rb +1 -1
  351. data/spec/extensions/serialization_modification_detection_spec.rb +1 -1
  352. data/spec/extensions/serialization_spec.rb +2 -14
  353. data/spec/extensions/server_block_spec.rb +1 -1
  354. data/spec/extensions/server_logging_spec.rb +2 -2
  355. data/spec/extensions/sharding_spec.rb +1 -1
  356. data/spec/extensions/shared_caching_spec.rb +1 -28
  357. data/spec/extensions/single_table_inheritance_spec.rb +2 -5
  358. data/spec/extensions/singular_table_names_spec.rb +1 -1
  359. data/spec/extensions/skip_create_refresh_spec.rb +1 -1
  360. data/spec/extensions/spec_helper.rb +5 -27
  361. data/spec/extensions/split_array_nil_spec.rb +1 -1
  362. data/spec/extensions/split_values_spec.rb +1 -1
  363. data/spec/extensions/sql_comments_spec.rb +1 -1
  364. data/spec/extensions/sql_expr_spec.rb +1 -1
  365. data/spec/extensions/static_cache_spec.rb +1 -1
  366. data/spec/extensions/string_agg_spec.rb +2 -2
  367. data/spec/extensions/string_date_time_spec.rb +1 -1
  368. data/spec/extensions/string_stripper_spec.rb +1 -1
  369. data/spec/extensions/subclasses_spec.rb +1 -1
  370. data/spec/extensions/subset_conditions_spec.rb +1 -1
  371. data/spec/extensions/symbol_aref_refinement_spec.rb +1 -1
  372. data/spec/extensions/symbol_as_refinement_spec.rb +1 -1
  373. data/spec/extensions/table_select_spec.rb +4 -4
  374. data/spec/extensions/tactical_eager_loading_spec.rb +1 -6
  375. data/spec/extensions/thread_local_timezones_spec.rb +1 -1
  376. data/spec/extensions/timestamps_spec.rb +3 -3
  377. data/spec/extensions/to_dot_spec.rb +1 -1
  378. data/spec/extensions/touch_spec.rb +1 -1
  379. data/spec/extensions/tree_spec.rb +1 -1
  380. data/spec/extensions/typecast_on_load_spec.rb +1 -1
  381. data/spec/extensions/unlimited_update_spec.rb +1 -1
  382. data/spec/extensions/update_or_create_spec.rb +1 -1
  383. data/spec/extensions/update_primary_key_spec.rb +4 -3
  384. data/spec/extensions/update_refresh_spec.rb +1 -1
  385. data/spec/extensions/uuid_spec.rb +10 -12
  386. data/spec/extensions/validate_associated_spec.rb +1 -1
  387. data/spec/extensions/validation_class_methods_spec.rb +3 -3
  388. data/spec/extensions/validation_contexts_spec.rb +1 -1
  389. data/spec/extensions/validation_helpers_spec.rb +10 -44
  390. data/spec/extensions/whitelist_security_spec.rb +5 -5
  391. data/spec/extensions/xml_serializer_spec.rb +3 -3
  392. data/spec/guards_helper.rb +2 -1
  393. data/spec/integration/associations_test.rb +1 -23
  394. data/spec/integration/database_test.rb +7 -7
  395. data/spec/integration/dataset_test.rb +5 -47
  396. data/spec/integration/eager_loader_test.rb +1 -1
  397. data/spec/integration/migrator_test.rb +1 -1
  398. data/spec/integration/model_test.rb +4 -82
  399. data/spec/integration/plugin_test.rb +6 -22
  400. data/spec/integration/prepared_statement_test.rb +8 -88
  401. data/spec/integration/schema_test.rb +6 -6
  402. data/spec/integration/spec_helper.rb +13 -21
  403. data/spec/integration/timezone_test.rb +5 -5
  404. data/spec/integration/transaction_test.rb +3 -55
  405. data/spec/integration/type_test.rb +9 -9
  406. data/spec/model/association_reflection_spec.rb +24 -9
  407. data/spec/model/associations_spec.rb +124 -303
  408. data/spec/model/base_spec.rb +18 -137
  409. data/spec/model/class_dataset_methods_spec.rb +2 -20
  410. data/spec/model/dataset_methods_spec.rb +1 -20
  411. data/spec/model/eager_loading_spec.rb +17 -11
  412. data/spec/model/hooks_spec.rb +5 -300
  413. data/spec/model/inflector_spec.rb +1 -1
  414. data/spec/model/model_spec.rb +15 -320
  415. data/spec/model/plugins_spec.rb +2 -16
  416. data/spec/model/record_spec.rb +29 -121
  417. data/spec/model/spec_helper.rb +5 -15
  418. data/spec/model/validations_spec.rb +1 -1
  419. data/spec/sequel_warning.rb +1 -12
  420. metadata +8 -64
  421. data/doc/active_record.rdoc +0 -927
  422. data/lib/sequel/adapters/cubrid.rb +0 -160
  423. data/lib/sequel/adapters/do.rb +0 -166
  424. data/lib/sequel/adapters/do/mysql.rb +0 -69
  425. data/lib/sequel/adapters/do/postgres.rb +0 -46
  426. data/lib/sequel/adapters/do/sqlite3.rb +0 -41
  427. data/lib/sequel/adapters/jdbc/as400.rb +0 -92
  428. data/lib/sequel/adapters/jdbc/cubrid.rb +0 -65
  429. data/lib/sequel/adapters/jdbc/firebirdsql.rb +0 -37
  430. data/lib/sequel/adapters/jdbc/informix-sqli.rb +0 -34
  431. data/lib/sequel/adapters/jdbc/jdbcprogress.rb +0 -34
  432. data/lib/sequel/adapters/odbc/progress.rb +0 -12
  433. data/lib/sequel/adapters/shared/cubrid.rb +0 -245
  434. data/lib/sequel/adapters/shared/firebird.rb +0 -261
  435. data/lib/sequel/adapters/shared/informix.rb +0 -63
  436. data/lib/sequel/adapters/shared/progress.rb +0 -40
  437. data/lib/sequel/adapters/swift.rb +0 -169
  438. data/lib/sequel/adapters/swift/mysql.rb +0 -50
  439. data/lib/sequel/adapters/swift/postgres.rb +0 -49
  440. data/lib/sequel/adapters/swift/sqlite.rb +0 -48
  441. data/lib/sequel/adapters/utils/pg_types.rb +0 -4
  442. data/lib/sequel/dataset/mutation.rb +0 -98
  443. data/lib/sequel/extensions/_deprecated_identifier_mangling.rb +0 -117
  444. data/lib/sequel/extensions/empty_array_ignore_nulls.rb +0 -8
  445. data/lib/sequel/extensions/filter_having.rb +0 -65
  446. data/lib/sequel/extensions/hash_aliases.rb +0 -51
  447. data/lib/sequel/extensions/meta_def.rb +0 -37
  448. data/lib/sequel/extensions/query_literals.rb +0 -86
  449. data/lib/sequel/extensions/ruby18_symbol_extensions.rb +0 -26
  450. data/lib/sequel/extensions/sequel_3_dataset_methods.rb +0 -133
  451. data/lib/sequel/extensions/set_overrides.rb +0 -82
  452. data/lib/sequel/no_core_ext.rb +0 -4
  453. data/lib/sequel/plugins/association_autoreloading.rb +0 -11
  454. data/lib/sequel/plugins/identifier_columns.rb +0 -49
  455. data/lib/sequel/plugins/many_to_one_pk_lookup.rb +0 -11
  456. data/lib/sequel/plugins/pg_typecast_on_load.rb +0 -90
  457. data/lib/sequel/plugins/prepared_statements_associations.rb +0 -137
  458. data/lib/sequel/plugins/prepared_statements_with_pk.rb +0 -71
  459. data/lib/sequel/plugins/schema.rb +0 -84
  460. data/lib/sequel/plugins/scissors.rb +0 -37
  461. data/spec/core/dataset_mutation_spec.rb +0 -253
  462. data/spec/extensions/_deprecated_identifier_mangling_spec.rb +0 -314
  463. data/spec/extensions/before_after_save_spec.rb +0 -40
  464. data/spec/extensions/filter_having_spec.rb +0 -42
  465. data/spec/extensions/from_block_spec.rb +0 -21
  466. data/spec/extensions/hash_aliases_spec.rb +0 -26
  467. data/spec/extensions/identifier_columns_spec.rb +0 -19
  468. data/spec/extensions/meta_def_spec.rb +0 -35
  469. data/spec/extensions/no_auto_literal_strings_spec.rb +0 -69
  470. data/spec/extensions/pg_typecast_on_load_spec.rb +0 -70
  471. data/spec/extensions/prepared_statements_associations_spec.rb +0 -212
  472. data/spec/extensions/prepared_statements_with_pk_spec.rb +0 -40
  473. data/spec/extensions/query_literals_spec.rb +0 -185
  474. data/spec/extensions/schema_spec.rb +0 -123
  475. data/spec/extensions/scissors_spec.rb +0 -27
  476. data/spec/extensions/sequel_3_dataset_methods_spec.rb +0 -118
  477. data/spec/extensions/set_overrides_spec.rb +0 -75
@@ -1,7 +1,7 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  Sequel::JDBC.load_driver('org.postgresql.Driver', :Postgres)
4
- Sequel.require 'adapters/shared/postgres'
4
+ require_relative '../shared/postgres'
5
5
 
6
6
  module Sequel
7
7
  module JDBC
@@ -13,22 +13,6 @@ module Sequel
13
13
  end
14
14
  end
15
15
 
16
- # SEQUEL5: Remove
17
- class Type_Convertor
18
- def RubyPGArray(r, i)
19
- if v = r.getArray(i)
20
- v.array.to_ary
21
- end
22
- end
23
- def RubyPGHstore(r, i)
24
- if v = r.getObject(i)
25
- v.to_hash
26
- end
27
- end
28
- end
29
-
30
- # Adapter, Database, and Dataset support for accessing a PostgreSQL
31
- # database via JDBC.
32
16
  module Postgres
33
17
  # Return PostgreSQL array types as ruby Arrays instead of
34
18
  # JDBC PostgreSQL driver-specific array type. Only used if the
@@ -48,8 +32,6 @@ module Sequel
48
32
  end
49
33
  end
50
34
 
51
- # Methods to add to Database instances that access PostgreSQL via
52
- # JDBC.
53
35
  module DatabaseMethods
54
36
  include Sequel::Postgres::DatabaseMethods
55
37
 
@@ -149,12 +131,6 @@ module Sequel
149
131
 
150
132
  private
151
133
 
152
- # SEQUEL5: Remove
153
- def conversion_procs_updated
154
- super
155
- Sequel.synchronize{@oid_convertor_map = {}}
156
- end
157
-
158
134
  DATABASE_ERROR_CLASSES = [NativeException].freeze
159
135
  def database_error_classes
160
136
  DATABASE_ERROR_CLASSES
@@ -206,13 +182,8 @@ module Sequel
206
182
  end
207
183
  end
208
184
 
209
- # Dataset subclass used for datasets that connect to PostgreSQL via JDBC.
210
185
  class Dataset < JDBC::Dataset
211
186
  include Sequel::Postgres::DatasetMethods
212
- APOS = "'".freeze
213
- Sequel::Deprecation.deprecate_constant(self, :APOS)
214
- HSTORE_TYPE = 'hstore'.freeze
215
- Sequel::Deprecation.deprecate_constant(self, :HSTORE_TYPE)
216
187
 
217
188
  private
218
189
 
@@ -229,7 +200,7 @@ module Sequel
229
200
  STRING_TYPE = Java::JavaSQL::Types::VARCHAR
230
201
  ARRAY_TYPE = Java::JavaSQL::Types::ARRAY
231
202
  ARRAY_METHOD = Postgres.method(:RubyPGArray)
232
- PG_SPECIFIC_TYPES = [ARRAY_TYPE, Java::JavaSQL::Types::OTHER, Java::JavaSQL::Types::STRUCT]#.freeze # SEQUEL5
203
+ PG_SPECIFIC_TYPES = [ARRAY_TYPE, Java::JavaSQL::Types::OTHER, Java::JavaSQL::Types::STRUCT].freeze
233
204
  HSTORE_METHOD = Postgres.method(:RubyPGHstore)
234
205
 
235
206
  def type_convertor(map, meta, type, i)
@@ -1,7 +1,7 @@
1
1
  # frozen-string-literal: true
2
2
 
3
- Sequel.require 'adapters/shared/sqlanywhere'
4
- Sequel.require 'adapters/jdbc/transactions'
3
+ require_relative '../shared/sqlanywhere'
4
+ require_relative 'transactions'
5
5
 
6
6
  module Sequel
7
7
  module JDBC
@@ -23,37 +23,25 @@ module Sequel
23
23
  Sequel.synchronize do
24
24
  DATABASE_SETUP[:sqlanywhere] = proc do |db|
25
25
  db.extend(Sequel::JDBC::SqlAnywhere::DatabaseMethods)
26
+ db.convert_smallint_to_bool = true
26
27
  db.dataset_class = Sequel::JDBC::SqlAnywhere::Dataset
27
28
  drv
28
29
  end
29
30
  end
30
31
 
31
- # SEQUEL5: Remove
32
- class Type_Convertor
33
- def SqlAnywhereBoolean(r, i)
34
- if v = Short(r, i)
35
- v != 0
36
- end
37
- end
38
- end
39
-
40
32
  module SqlAnywhere
41
33
  def self.SqlAnywhereBoolean(r, i)
42
34
  v = r.getShort(i)
43
35
  v != 0 unless r.wasNull
44
36
  end
45
37
 
46
- # Database instance methods for Sybase databases accessed via JDBC.
47
38
  module DatabaseMethods
48
39
  include Sequel::SqlAnywhere::DatabaseMethods
49
40
  include Sequel::JDBC::Transactions
50
41
 
51
- LAST_INSERT_ID = 'SELECT @@IDENTITY'.freeze
52
- Sequel::Deprecation.deprecate_constant(self, :LAST_INSERT_ID)
53
-
54
42
  private
55
43
 
56
- # Get the last inserted id.
44
+ # Use @@IDENTITY to get the last inserted id
57
45
  def last_insert_id(conn, opts=OPTS)
58
46
  statement(conn) do |stmt|
59
47
  sql = 'SELECT @@IDENTITY'
@@ -64,7 +52,6 @@ module Sequel
64
52
  end
65
53
  end
66
54
 
67
- #Dataset class for Sybase datasets accessed via JDBC.
68
55
  class Dataset < JDBC::Dataset
69
56
  include Sequel::SqlAnywhere::DatasetMethods
70
57
 
@@ -1,7 +1,7 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  Sequel::JDBC.load_driver('org.sqlite.JDBC', :SQLite3)
4
- Sequel.require 'adapters/shared/sqlite'
4
+ require_relative '../shared/sqlite'
5
5
 
6
6
  module Sequel
7
7
  module JDBC
@@ -14,15 +14,9 @@ module Sequel
14
14
  end
15
15
  end
16
16
 
17
- # Database and Dataset support for SQLite databases accessed via JDBC.
18
17
  module SQLite
19
- # Instance methods for SQLite Database objects accessed via JDBC.
20
18
  module DatabaseMethods
21
19
  include Sequel::SQLite::DatabaseMethods
22
- LAST_INSERT_ROWID = 'SELECT last_insert_rowid()'.freeze
23
- Sequel::Deprecation.deprecate_constant(self, :LAST_INSERT_ROWID)
24
- FOREIGN_KEY_ERROR_RE = /query does not return ResultSet/.freeze
25
- Sequel::Deprecation.deprecate_constant(self, :FOREIGN_KEY_ERROR_RE)
26
20
 
27
21
  # Swallow pointless exceptions when the foreign key list pragma
28
22
  # doesn't return any rows.
@@ -1,7 +1,7 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  Sequel::JDBC.load_driver('com.microsoft.sqlserver.jdbc.SQLServerDriver')
4
- Sequel.require 'adapters/jdbc/mssql'
4
+ require_relative 'mssql'
5
5
 
6
6
  module Sequel
7
7
  module JDBC
@@ -14,17 +14,6 @@ module Sequel
14
14
  end
15
15
  end
16
16
 
17
- # SEQUEL5: Remove
18
- class Type_Convertor
19
- def MSSQLRubyTime(r, i)
20
- if v = r.getString(i)
21
- Sequel.string_to_time("#{v}")
22
- end
23
- end
24
- end
25
-
26
- # Database and Dataset instance methods for SQLServer specific
27
- # support via JDBC.
28
17
  module SQLServer
29
18
  def self.MSSQLRubyTime(r, i)
30
19
  # MSSQL-Server TIME should be fetched as string to keep the precision intact, see:
@@ -34,7 +23,6 @@ module Sequel
34
23
  end
35
24
  end
36
25
 
37
- # Database instance methods for SQLServer databases accessed via JDBC.
38
26
  module DatabaseMethods
39
27
  include Sequel::JDBC::MSSQL::DatabaseMethods
40
28
 
@@ -3,19 +3,6 @@
3
3
  module Sequel
4
4
  module JDBC
5
5
  module Transactions
6
- TRANSACTION_BEGIN = 'Transaction.begin'.freeze
7
- Sequel::Deprecation.deprecate_constant(self, :TRANSACTION_BEGIN)
8
- TRANSACTION_COMMIT = 'Transaction.commit'.freeze
9
- Sequel::Deprecation.deprecate_constant(self, :TRANSACTION_COMMIT)
10
- TRANSACTION_RELEASE_SP = 'Transaction.release_savepoint'.freeze
11
- Sequel::Deprecation.deprecate_constant(self, :TRANSACTION_RELEASE_SP)
12
- TRANSACTION_ROLLBACK = 'Transaction.rollback'.freeze
13
- Sequel::Deprecation.deprecate_constant(self, :TRANSACTION_ROLLBACK)
14
- TRANSACTION_ROLLBACK_SP = 'Transaction.rollback_savepoint'.freeze
15
- Sequel::Deprecation.deprecate_constant(self, :TRANSACTION_ROLLBACK_SP)
16
- TRANSACTION_SAVEPOINT= 'Transaction.savepoint'.freeze
17
- Sequel::Deprecation.deprecate_constant(self, :TRANSACTION_SAVEPOINT)
18
-
19
6
  def freeze
20
7
  supports_savepoints?
21
8
  super
@@ -38,7 +25,7 @@ module Sequel
38
25
  JDBC_TRANSACTION_ISOLATION_LEVELS = {:uncommitted=>JavaSQL::Connection::TRANSACTION_READ_UNCOMMITTED,
39
26
  :committed=>JavaSQL::Connection::TRANSACTION_READ_COMMITTED,
40
27
  :repeatable=>JavaSQL::Connection::TRANSACTION_REPEATABLE_READ,
41
- :serializable=>JavaSQL::Connection::TRANSACTION_SERIALIZABLE}#.freeze # SEQUEL5
28
+ :serializable=>JavaSQL::Connection::TRANSACTION_SERIALIZABLE}.freeze
42
29
 
43
30
  # Set the transaction isolation level on the given connection using
44
31
  # the JDBC API.
@@ -1,10 +1,9 @@
1
1
  # frozen-string-literal: true
2
2
 
3
- Sequel.require 'adapters/utils/unmodified_identifiers'
3
+ require_relative 'utils/unmodified_identifiers'
4
4
 
5
5
  module Sequel
6
6
  module Mock
7
- # Connection class for Sequel's mock adapter.
8
7
  class Connection
9
8
  # Sequel::Mock::Database object that created this connection
10
9
  attr_reader :db
@@ -30,7 +29,6 @@ module Sequel
30
29
  end
31
30
  end
32
31
 
33
- # Database class for Sequel's mock adapter.
34
32
  class Database < Sequel::Database
35
33
  set_adapter_scheme :mock
36
34
 
@@ -61,9 +59,9 @@ module Sequel
61
59
  # Set the columns to set in the dataset when the dataset fetches
62
60
  # rows. Argument types supported:
63
61
  # nil :: Set no columns
64
- # Array of Symbols: Used for all datasets
65
- # Array (otherwise): First retrieval gets the first value in the
66
- # array, second gets the second value, etc.
62
+ # Array of Symbols :: Used for all datasets
63
+ # Array (otherwise) :: First retrieval gets the first value in the
64
+ # array, second gets the second value, etc.
67
65
  # Proc :: Called with the select SQL query, uses the value
68
66
  # returned, which should be an array of symbols
69
67
  attr_writer :columns
@@ -311,45 +309,21 @@ module Sequel
311
309
  end
312
310
 
313
311
  class Dataset < Sequel::Dataset
314
- Database::DatasetClass = self
315
- Sequel::Deprecation.deprecate_constant(Database, :DatasetClass)
316
-
317
312
  # The autoid setting for this dataset, if it has been overridden
318
313
  def autoid
319
314
  cache_get(:_autoid) || @opts[:autoid]
320
315
  end
321
316
 
322
- # Override the databases's autoid setting for this dataset
323
- def autoid=(v)
324
- Sequel::Deprecation.deprecate("Sequel::Mock::Dataset#autoid=", "Use with_autoid to return a modified dataset")
325
- cache_set(:_autoid, nil)
326
- @opts[:autoid] = v
327
- end
328
-
329
317
  # The fetch setting for this dataset, if it has been overridden
330
318
  def _fetch
331
319
  cache_get(:_fetch) || @opts[:fetch]
332
320
  end
333
321
 
334
- # Override the databases's fetch setting for this dataset
335
- def _fetch=(v)
336
- Sequel::Deprecation.deprecate("Sequel::Mock::Dataset#_fetch=", "Use with_fetch to return a modified dataset")
337
- cache_set(:_fetch, nil)
338
- @opts[:fetch] = v
339
- end
340
-
341
322
  # The numrows setting for this dataset, if it has been overridden
342
323
  def numrows
343
324
  cache_get(:_numrows) || @opts[:numrows]
344
325
  end
345
326
 
346
- # Override the databases's numrows setting for this dataset
347
- def numrows=(v)
348
- Sequel::Deprecation.deprecate("Sequel::Mock::Dataset#_numrows=", "Use with_numrows to return a modified dataset")
349
- cache_set(:_numrows, nil)
350
- @opts[:numrows] = v
351
- end
352
-
353
327
  # If arguments are provided, use them to set the columns
354
328
  # for this dataset and return self. Otherwise, use the
355
329
  # default Sequel behavior and return the columns.
@@ -7,16 +7,16 @@ rescue LoadError
7
7
  end
8
8
  raise(LoadError, "require 'mysql' did not define Mysql::CLIENT_MULTI_RESULTS!\n You are probably using the pure ruby mysql.rb driver,\n which Sequel does not support. You need to install\n the C based adapter, and make sure that the mysql.so\n file is loaded instead of the mysql.rb file.\n") unless defined?(Mysql::CLIENT_MULTI_RESULTS)
9
9
 
10
- Sequel.require %w'utils/mysql_mysql2 utils/mysql_prepared_statements', 'adapters'
10
+ require_relative 'utils/mysql_mysql2'
11
+ require_relative 'utils/mysql_prepared_statements'
11
12
 
12
13
  module Sequel
13
- # Module for holding all MySQL-related classes and modules for Sequel.
14
14
  module MySQL
15
15
  TYPE_TRANSLATOR = tt = Class.new do
16
16
  def boolean(s) s.to_i != 0 end
17
17
  def integer(s) s.to_i end
18
18
  def float(s) s.to_f end
19
- end.new#.freeze # SEQUEL5
19
+ end.new.freeze
20
20
 
21
21
  # Hash with integer keys and callable values for converting MySQL types.
22
22
  MYSQL_TYPES = {}
@@ -28,32 +28,13 @@ module Sequel
28
28
  }.each do |k,v|
29
29
  k.each{|n| MYSQL_TYPES[n] = v}
30
30
  end
31
- # MYSQL_TYPES.freeze # SEQUEL5
31
+ MYSQL_TYPES.freeze
32
32
 
33
- # SEQUEL5: Remove
34
- @convert_invalid_date_time = false
35
- class << self
36
- def convert_invalid_date_time
37
- Sequel::Deprecation.deprecate("Sequel::MySQL.convert_invalid_date_time", "Call this method on the Database instance")
38
- @convert_invalid_date_time
39
- end
40
- def convert_invalid_date_time=(v)
41
- Sequel::Deprecation.deprecate("Sequel::MySQL.convert_invalid_date_time=", "Call this method on the Database instance")
42
- @convert_invalid_date_time = v
43
- end
44
- end
45
-
46
- # Database class for MySQL databases used with Sequel.
47
33
  class Database < Sequel::Database
48
34
  include Sequel::MySQL::DatabaseMethods
49
35
  include Sequel::MySQL::MysqlMysql2::DatabaseMethods
50
36
  include Sequel::MySQL::PreparedStatements::DatabaseMethods
51
37
 
52
- # Regular expression used for getting accurate number of rows
53
- # matched by an update statement.
54
- AFFECTED_ROWS_RE = /Rows matched:\s+(\d+)\s+Changed:\s+\d+\s+Warnings:\s+\d+/.freeze
55
- Sequel::Deprecation.deprecate_constant(self, :AFFECTED_ROWS_RE)
56
-
57
38
  set_adapter_scheme :mysql
58
39
 
59
40
  # Hash of conversion procs for the current database
@@ -131,7 +112,6 @@ module Sequel
131
112
  conn
132
113
  end
133
114
 
134
- # Closes given database connection.
135
115
  def disconnect_connection(c)
136
116
  c.close
137
117
  rescue Mysql::Error
@@ -159,12 +139,10 @@ module Sequel
159
139
  @convert_tinyint_to_bool = v
160
140
  end
161
141
 
162
- # Return the number of matched rows when executing a delete/update statement.
163
142
  def execute_dui(sql, opts=OPTS)
164
143
  execute(sql, opts){|c| return affected_rows(c)}
165
144
  end
166
145
 
167
- # Return the last inserted id when executing an insert statement.
168
146
  def execute_insert(sql, opts=OPTS)
169
147
  execute(sql, opts){|c| return c.insert_id}
170
148
  end
@@ -175,7 +153,7 @@ module Sequel
175
153
  super
176
154
  end
177
155
 
178
- # Return the version of the MySQL server two which we are connecting.
156
+ # Return the version of the MySQL server to which we are connecting.
179
157
  def server_version(server=nil)
180
158
  @server_version ||= (synchronize(server){|conn| conn.server_version if conn.respond_to?(:server_version)} || super)
181
159
  end
@@ -231,8 +209,8 @@ module Sequel
231
209
 
232
210
  def adapter_initialize
233
211
  @conversion_procs = MYSQL_TYPES.dup
234
- self.convert_tinyint_to_bool = Sequel::MySQL.instance_variable_get(:@convert_tinyint_to_bool) # true # SEQUEL5
235
- self.convert_invalid_date_time = Sequel::MySQL.instance_variable_get(:@convert_invalid_date_time) # false # SEQUEL5
212
+ self.convert_tinyint_to_bool = true
213
+ self.convert_invalid_date_time = false
236
214
  end
237
215
 
238
216
  # Try to get an accurate number of rows matched using the query
@@ -270,7 +248,6 @@ module Sequel
270
248
  end
271
249
  end
272
250
 
273
- # The MySQL adapter main error class is Mysql::Error
274
251
  def database_error_classes
275
252
  [Mysql::Error]
276
253
  end
@@ -283,34 +260,21 @@ module Sequel
283
260
  Dataset
284
261
  end
285
262
 
286
- # Raise a disconnect error if the exception message matches the list
287
- # of recognized exceptions.
288
263
  def disconnect_error?(e, opts)
289
264
  super || (e.is_a?(::Mysql::Error) && MYSQL_DATABASE_DISCONNECT_ERRORS.match(e.message))
290
265
  end
291
266
 
292
- # The database name when using the native adapter is always stored in
293
- # the :database option.
294
- def database_name
295
- Sequel::Deprecation.deprecate("Database#database_name", "Instead, use .get(Sequel.function(:DATABASE))")
296
- @opts[:database]
297
- end
298
-
299
267
  # Convert tinyint(1) type to boolean if convert_tinyint_to_bool is true
300
268
  def schema_column_type(db_type)
301
269
  convert_tinyint_to_bool && db_type =~ /\Atinyint\(1\)/ ? :boolean : super
302
270
  end
303
271
  end
304
272
 
305
- # Dataset class for MySQL datasets accessed via the native driver.
306
273
  class Dataset < Sequel::Dataset
307
274
  include Sequel::MySQL::DatasetMethods
308
275
  include Sequel::MySQL::MysqlMysql2::DatasetMethods
309
276
  include Sequel::MySQL::PreparedStatements::DatasetMethods
310
277
 
311
- Database::DatasetClass = self
312
- Sequel::Deprecation.deprecate_constant(Database, :DatasetClass)
313
-
314
278
  # Yield all rows matching this dataset. If the dataset is set to
315
279
  # split multiple statements, yield arrays of hashes one per statement
316
280
  # instead of yielding results for all statements as hashes.
@@ -367,7 +331,6 @@ module Sequel
367
331
  field.length != 1
368
332
  end
369
333
 
370
- # Set the :type option to :select if it hasn't been set.
371
334
  def execute(sql, opts=OPTS)
372
335
  opts = Hash[opts]
373
336
  opts[:type] = :select
@@ -1,19 +1,17 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  require 'mysql2'
4
- Sequel.require %w'utils/mysql_mysql2', 'adapters'
4
+ require_relative 'utils/mysql_mysql2'
5
5
 
6
6
  module Sequel
7
- # Module for holding all Mysql2-related classes and modules for Sequel.
8
7
  module Mysql2
9
8
  NativePreparedStatements = if ::Mysql2::VERSION >= '0.4'
10
9
  true
11
10
  else
12
- Sequel.require %w'utils/mysql_prepared_statements', 'adapters'
11
+ require_relative 'utils/mysql_prepared_statements'
13
12
  false
14
13
  end
15
14
 
16
- # Database class for MySQL databases used with Sequel.
17
15
  class Database < Sequel::Database
18
16
  include Sequel::MySQL::DatabaseMethods
19
17
  include Sequel::MySQL::MysqlMysql2::DatabaseMethods
@@ -66,12 +64,10 @@ module Sequel
66
64
  conn
67
65
  end
68
66
 
69
- # Return the number of matched rows when executing a delete/update statement.
70
67
  def execute_dui(sql, opts=OPTS)
71
68
  execute(sql, opts){|c| return c.affected_rows}
72
69
  end
73
70
 
74
- # Return the last inserted id when executing an insert statement.
75
71
  def execute_insert(sql, opts=OPTS)
76
72
  execute(sql, opts){|c| return c.last_id}
77
73
  end
@@ -171,7 +167,7 @@ module Sequel
171
167
 
172
168
  # Set the convert_tinyint_to_bool setting based on the default value.
173
169
  def adapter_initialize
174
- self.convert_tinyint_to_bool = Sequel::MySQL.instance_variable_get(:@convert_tinyint_to_bool) # true # SEQUEL5
170
+ self.convert_tinyint_to_bool = true
175
171
  end
176
172
 
177
173
  if NativePreparedStatements
@@ -190,12 +186,10 @@ module Sequel
190
186
  end
191
187
  end
192
188
 
193
- # MySQL connections use the query method to execute SQL without a result
194
189
  def connection_execute_method
195
190
  :query
196
191
  end
197
192
 
198
- # The MySQL adapter main error class is Mysql2::Error
199
193
  def database_error_classes
200
194
  [::Mysql2::Error]
201
195
  end
@@ -219,29 +213,18 @@ module Sequel
219
213
  MYSQL_DATABASE_DISCONNECT_ERRORS.match(e.message)))
220
214
  end
221
215
 
222
- # The database name when using the native adapter is always stored in
223
- # the :database option.
224
- def database_name
225
- Sequel::Deprecation.deprecate("Database#database_name", "Instead, use .get(Sequel.function(:DATABASE))")
226
- @opts[:database]
227
- end
228
-
229
216
  # Convert tinyint(1) type to boolean if convert_tinyint_to_bool is true
230
217
  def schema_column_type(db_type)
231
218
  convert_tinyint_to_bool && db_type =~ /\Atinyint\(1\)/ ? :boolean : super
232
219
  end
233
220
  end
234
221
 
235
- # Dataset class for MySQL datasets accessed via the native driver.
236
222
  class Dataset < Sequel::Dataset
237
223
  include Sequel::MySQL::DatasetMethods
238
224
  include Sequel::MySQL::MysqlMysql2::DatasetMethods
239
225
  include Sequel::MySQL::PreparedStatements::DatasetMethods unless NativePreparedStatements
240
226
  STREAMING_SUPPORTED = ::Mysql2::VERSION >= '0.3.12'
241
227
 
242
- Database::DatasetClass = self
243
- Sequel::Deprecation.deprecate_constant(Database, :DatasetClass)
244
-
245
228
  if NativePreparedStatements
246
229
  PreparedStatementMethods = prepared_statements_module(
247
230
  "sql = self; opts = Hash[opts]; opts[:arguments] = bind_arguments",
@@ -249,7 +232,6 @@ module Sequel
249
232
  %w"execute execute_dui execute_insert")
250
233
  end
251
234
 
252
- # Yield all rows matching this dataset.
253
235
  def fetch_rows(sql)
254
236
  execute(sql) do |r|
255
237
  self.columns = r.fields.map!{|c| output_identifier(c.to_s)}
@@ -258,7 +240,8 @@ module Sequel
258
240
  self
259
241
  end
260
242
 
261
- # Use streaming to implement paging if Mysql2 supports it.
243
+ # Use streaming to implement paging if Mysql2 supports it and
244
+ # it hasn't been disabled.
262
245
  def paged_each(opts=OPTS, &block)
263
246
  if STREAMING_SUPPORTED && opts[:stream] != false
264
247
  stream.each(&block)
@@ -283,7 +266,6 @@ module Sequel
283
266
  @db.convert_tinyint_to_bool
284
267
  end
285
268
 
286
- # Set the :type option to :select if it hasn't been set.
287
269
  def execute(sql, opts=OPTS)
288
270
  opts = Hash[opts]
289
271
  opts[:type] = :select