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,64 +1,39 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  Sequel::JDBC.load_driver('com.ibm.db2.jcc.DB2Driver')
4
- Sequel.require 'adapters/shared/db2'
5
- Sequel.require 'adapters/jdbc/transactions'
4
+ require_relative '../shared/db2'
5
+ require_relative 'transactions'
6
6
 
7
7
  module Sequel
8
8
  module JDBC
9
9
  Sequel.synchronize do
10
10
  DATABASE_SETUP[:db2] = proc do |db|
11
- (class << db; self; end).class_eval do
11
+ db.singleton_class.class_eval do
12
12
  alias jdbc_schema_parse_table schema_parse_table
13
13
  alias jdbc_tables tables
14
14
  alias jdbc_views views
15
15
  alias jdbc_indexes indexes
16
- end
17
- db.extend(Sequel::JDBC::DB2::DatabaseMethods)
18
- (class << db; self; end).class_eval do
16
+
17
+ include Sequel::JDBC::DB2::DatabaseMethods
18
+
19
19
  alias schema_parse_table jdbc_schema_parse_table
20
20
  alias tables jdbc_tables
21
21
  alias views jdbc_views
22
22
  alias indexes jdbc_indexes
23
23
  %w'schema_parse_table tables views indexes'.each do |s|
24
- class_eval(<<-END, __FILE__, __LINE__+1)
25
- def jdbc_#{s}(*a)
26
- Sequel::Deprecation.deprecate("Database#jdbc_#{s} in the jdbc/db2 adapter", "Use Database\##{s} instead")
27
- #{s}(*a)
28
- end
29
- END
30
- # remove_method(:"jdbc_#{s}") # SEQUEL5
24
+ remove_method(:"jdbc_#{s}")
31
25
  end
32
26
  end
33
- db.dataset_class = Sequel::JDBC::DB2::Dataset
27
+ db.extend_datasets Sequel::DB2::DatasetMethods
34
28
  com.ibm.db2.jcc.DB2Driver
35
29
  end
36
30
  end
37
31
 
38
- # SEQUEL5: Remove
39
- class Type_Convertor
40
- def DB2Clob(r, i)
41
- if v = r.getClob(i)
42
- v = v.getSubString(1, v.length)
43
- v = Sequel::SQL::Blob.new(v) if ::Sequel::DB2::use_clob_as_blob
44
- v
45
- end
46
- end
47
- end
48
-
49
- # Database and Dataset instance methods for DB2 specific
50
- # support via JDBC.
51
32
  module DB2
52
- # Database instance methods for DB2 databases accessed via JDBC.
53
33
  module DatabaseMethods
54
34
  include Sequel::DB2::DatabaseMethods
55
35
  include Sequel::JDBC::Transactions
56
36
 
57
- PRIMARY_KEY_INDEX_RE = /\Asql\d+\z/i.freeze
58
- Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
59
- IDENTITY_VAL_LOCAL = "SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1".freeze
60
- Sequel::Deprecation.deprecate_constant(self, :IDENTITY_VAL_LOCAL)
61
-
62
37
  private
63
38
 
64
39
  def set_ps_arg(cps, arg, i)
@@ -103,10 +78,6 @@ module Sequel
103
78
  end
104
79
  end
105
80
  end
106
-
107
- class Dataset < JDBC::Dataset
108
- include Sequel::DB2::DatasetMethods
109
- end
110
81
  end
111
82
  end
112
83
  end
@@ -1,7 +1,7 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  Sequel::JDBC.load_driver('org.apache.derby.jdbc.EmbeddedDriver', :Derby)
4
- Sequel.require 'adapters/jdbc/transactions'
4
+ require_relative 'transactions'
5
5
 
6
6
  module Sequel
7
7
  module JDBC
@@ -13,13 +13,8 @@ module Sequel
13
13
  end
14
14
  end
15
15
 
16
- # Database and Dataset support for Derby databases accessed via JDBC.
17
16
  module Derby
18
- # Instance methods for Derby Database objects accessed via JDBC.
19
17
  module DatabaseMethods
20
- PRIMARY_KEY_INDEX_RE = /\Asql\d+\z/i.freeze
21
- Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
22
-
23
18
  include ::Sequel::JDBC::Transactions
24
19
 
25
20
  # Derby doesn't support casting integer to varchar, only integer to char,
@@ -30,7 +25,6 @@ module Sequel
30
25
  (type == String) ? 'CHAR(254)' : super
31
26
  end
32
27
 
33
- # Derby uses the :derby database type.
34
28
  def database_type
35
29
  :derby
36
30
  end
@@ -67,7 +61,6 @@ module Sequel
67
61
  ds.first
68
62
  end
69
63
 
70
- # Derby-specific syntax for renaming columns and changing a columns type/nullity.
71
64
  def alter_table_sql(table, op)
72
65
  case op[:op]
73
66
  when :rename_column
@@ -183,49 +176,12 @@ module Sequel
183
176
  true
184
177
  end
185
178
 
186
- # The SQL query to issue to check if a connection is valid.
187
179
  def valid_connection_sql
188
180
  @valid_connection_sql ||= select(1).sql
189
181
  end
190
182
  end
191
183
 
192
- # Dataset class for Derby datasets accessed via JDBC.
193
184
  class Dataset < JDBC::Dataset
194
- PAREN_CLOSE = ')'.freeze
195
- Sequel::Deprecation.deprecate_constant(self, :PAREN_CLOSE)
196
- PAREN_OPEN = '('.freeze
197
- Sequel::Deprecation.deprecate_constant(self, :PAREN_OPEN)
198
- OFFSET = " OFFSET ".freeze
199
- Sequel::Deprecation.deprecate_constant(self, :OFFSET)
200
- CAST_STRING_OPEN = "RTRIM(".freeze
201
- Sequel::Deprecation.deprecate_constant(self, :CAST_STRING_OPEN)
202
- BLOB_OPEN = "CAST(X'".freeze
203
- Sequel::Deprecation.deprecate_constant(self, :BLOB_OPEN)
204
- BLOB_CLOSE = "' AS BLOB)".freeze
205
- Sequel::Deprecation.deprecate_constant(self, :BLOB_CLOSE)
206
- HSTAR = "H*".freeze
207
- Sequel::Deprecation.deprecate_constant(self, :HSTAR)
208
- TIME_FORMAT = "'%H:%M:%S'".freeze
209
- Sequel::Deprecation.deprecate_constant(self, :TIME_FORMAT)
210
- DEFAULT_FROM = " FROM sysibm.sysdummy1".freeze
211
- Sequel::Deprecation.deprecate_constant(self, :DEFAULT_FROM)
212
- ROWS = " ROWS".freeze
213
- Sequel::Deprecation.deprecate_constant(self, :ROWS)
214
- FETCH_FIRST = " FETCH FIRST ".freeze
215
- Sequel::Deprecation.deprecate_constant(self, :FETCH_FIRST)
216
- ROWS_ONLY = " ROWS ONLY".freeze
217
- Sequel::Deprecation.deprecate_constant(self, :ROWS_ONLY)
218
- BOOL_TRUE_OLD = '(1 = 1)'.freeze
219
- Sequel::Deprecation.deprecate_constant(self, :BOOL_TRUE_OLD)
220
- BOOL_FALSE_OLD = '(1 = 0)'.freeze
221
- Sequel::Deprecation.deprecate_constant(self, :BOOL_FALSE_OLD)
222
- BOOL_TRUE = 'TRUE'.freeze
223
- Sequel::Deprecation.deprecate_constant(self, :BOOL_TRUE)
224
- BOOL_FALSE = 'FALSE'.freeze
225
- Sequel::Deprecation.deprecate_constant(self, :BOOL_FALSE)
226
- EMULATED_FUNCTION_MAP = {:char_length=>'length'.freeze}
227
- Sequel::Deprecation.deprecate_constant(self, :EMULATED_FUNCTION_MAP)
228
-
229
185
  # Derby doesn't support an expression between CASE and WHEN,
230
186
  # so remove conditions.
231
187
  def case_expression_sql_append(sql, ce)
@@ -298,8 +254,7 @@ module Sequel
298
254
  false
299
255
  end
300
256
 
301
- # Derby uses an expression yielding false for false values.
302
- # Newer versions can use the FALSE literal, but older versions cannot.
257
+ # Newer Derby versions can use the FALSE literal, but older versions need an always false expression.
303
258
  def literal_false
304
259
  if db.svn_version >= 1040133
305
260
  'FALSE'
@@ -313,8 +268,7 @@ module Sequel
313
268
  v.strftime("'%H:%M:%S'")
314
269
  end
315
270
 
316
- # Derby uses an expression yielding true for true values.
317
- # Newer versions can use the TRUE literal, but older versions cannot.
271
+ # Newer Derby versions can use the TRUE literal, but older versions need an always false expression.
318
272
  def literal_true
319
273
  if db.svn_version >= 1040133
320
274
  'TRUE'
@@ -323,7 +277,7 @@ module Sequel
323
277
  end
324
278
  end
325
279
 
326
- # Derby supports multiple rows in INSERT.
280
+ # Derby supports multiple rows for VALUES in INSERT.
327
281
  def multi_insert_sql_strategy
328
282
  :values
329
283
  end
@@ -12,20 +12,12 @@ module Sequel
12
12
  end
13
13
  end
14
14
 
15
- # Database and Dataset support for H2 databases accessed via JDBC.
16
15
  module H2
17
- # Instance methods for H2 Database objects accessed via JDBC.
18
16
  module DatabaseMethods
19
- PRIMARY_KEY_INDEX_RE = /\Aprimary_key/i.freeze
20
- Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
21
-
22
- # Commit an existing prepared transaction with the given transaction
23
- # identifier string.
24
17
  def commit_prepared_transaction(transaction_id, opts=OPTS)
25
18
  run("COMMIT TRANSACTION #{transaction_id}", opts)
26
19
  end
27
20
 
28
- # H2 uses the :h2 database type.
29
21
  def database_type
30
22
  :h2
31
23
  end
@@ -39,18 +31,16 @@ module Sequel
39
31
  @h2_version ||= get(Sequel.function(:H2VERSION))
40
32
  end
41
33
 
42
- # Rollback an existing prepared transaction with the given transaction
43
- # identifier string.
44
34
  def rollback_prepared_transaction(transaction_id, opts=OPTS)
45
35
  run("ROLLBACK TRANSACTION #{transaction_id}", opts)
46
36
  end
47
37
 
48
- # H2 uses an IDENTITY type
38
+ # H2 uses an IDENTITY type for primary keys
49
39
  def serial_primary_key_options
50
40
  {:primary_key => true, :type => :identity, :identity=>true}
51
41
  end
52
42
 
53
- # H2 supports CREATE TABLE IF NOT EXISTS syntax.
43
+ # H2 supports CREATE TABLE IF NOT EXISTS syntax
54
44
  def supports_create_table_if_not_exists?
55
45
  true
56
46
  end
@@ -82,7 +72,6 @@ module Sequel
82
72
  end
83
73
  end
84
74
 
85
- # H2 needs to add a primary key column as a constraint
86
75
  def alter_table_sql(table, op)
87
76
  case op[:op]
88
77
  when :add_column
@@ -94,6 +83,7 @@ module Sequel
94
83
  sqls = [super(table, op)]
95
84
 
96
85
  if pk && (h2_version >= '1.4' || op[:type] != :identity)
86
+ # H2 needs to add a primary key column as a constraint in this case
97
87
  sqls << "ALTER TABLE #{quote_schema_table(table)} ADD PRIMARY KEY (#{quote_identifier(op[:name])})"
98
88
  end
99
89
 
@@ -168,26 +158,15 @@ module Sequel
168
158
  false
169
159
  end
170
160
 
171
- # Use BIGINT IDENTITY for identity columns that use bigint, fixes
172
- # the case where primary_key :column, :type=>:Bignum is used.
161
+ # Use BIGINT IDENTITY for identity columns that use :Bignum type
173
162
  def type_literal_generic_bignum_symbol(column)
174
163
  column[:identity] ? 'BIGINT IDENTITY' : super
175
164
  end
176
165
  end
177
166
 
178
- # Dataset class for H2 datasets accessed via JDBC.
179
167
  class Dataset < JDBC::Dataset
180
168
  ILIKE_PLACEHOLDER = ["CAST(".freeze, " AS VARCHAR_IGNORECASE)".freeze].freeze
181
169
 
182
- APOS = "'".freeze
183
- Sequel::Deprecation.deprecate_constant(self, :APOS)
184
- HSTAR = "H*".freeze
185
- Sequel::Deprecation.deprecate_constant(self, :HSTAR)
186
- TIME_FORMAT = "'%H:%M:%S'".freeze
187
- Sequel::Deprecation.deprecate_constant(self, :TIME_FORMAT)
188
- ONLY_OFFSET = " LIMIT -1 OFFSET ".freeze
189
- Sequel::Deprecation.deprecate_constant(self, :ONLY_OFFSET)
190
-
191
170
  # Emulate the case insensitive LIKE operator and the bitwise operators.
192
171
  def complex_expression_sql_append(sql, op, args)
193
172
  case op
@@ -1,7 +1,7 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  Sequel::JDBC.load_driver('org.hsqldb.jdbcDriver', :HSQLDB)
4
- Sequel.require 'adapters/jdbc/transactions'
4
+ require_relative 'transactions'
5
5
 
6
6
  module Sequel
7
7
  module JDBC
@@ -13,16 +13,10 @@ module Sequel
13
13
  end
14
14
  end
15
15
 
16
- # Database and Dataset support for HSQLDB databases accessed via JDBC.
17
16
  module HSQLDB
18
- # Instance methods for HSQLDB Database objects accessed via JDBC.
19
17
  module DatabaseMethods
20
- PRIMARY_KEY_INDEX_RE = /\Asys_idx_sys_pk_/i.freeze
21
- Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
22
-
23
18
  include ::Sequel::JDBC::Transactions
24
19
 
25
- # HSQLDB uses the :hsqldb database type.
26
20
  def database_type
27
21
  :hsqldb
28
22
  end
@@ -54,7 +48,6 @@ module Sequel
54
48
 
55
49
  private
56
50
 
57
- # HSQLDB specific SQL for renaming columns, and changing column types and/or nullity.
58
51
  def alter_table_sql(table, op)
59
52
  case op[:op]
60
53
  when :add_column
@@ -144,25 +137,7 @@ module Sequel
144
137
  end
145
138
  end
146
139
 
147
- # Dataset class for HSQLDB datasets accessed via JDBC.
148
140
  class Dataset < JDBC::Dataset
149
- BOOL_TRUE = 'TRUE'.freeze
150
- Sequel::Deprecation.deprecate_constant(self, :BOOL_TRUE)
151
- BOOL_FALSE = 'FALSE'.freeze
152
- Sequel::Deprecation.deprecate_constant(self, :BOOL_FALSE)
153
- SQL_WITH_RECURSIVE = "WITH RECURSIVE ".freeze
154
- Sequel::Deprecation.deprecate_constant(self, :SQL_WITH_RECURSIVE)
155
- APOS = "'".freeze
156
- Sequel::Deprecation.deprecate_constant(self, :APOS)
157
- HSTAR = "H*".freeze
158
- Sequel::Deprecation.deprecate_constant(self, :HSTAR)
159
- BLOB_OPEN = "X'".freeze
160
- Sequel::Deprecation.deprecate_constant(self, :BLOB_OPEN)
161
- DEFAULT_FROM = " FROM (VALUES (0))".freeze
162
- Sequel::Deprecation.deprecate_constant(self, :DEFAULT_FROM)
163
- TIME_FORMAT = "'%H:%M:%S'".freeze
164
- Sequel::Deprecation.deprecate_constant(self, :TIME_FORMAT)
165
-
166
141
  # Handle HSQLDB specific case insensitive LIKE and bitwise operator support.
167
142
  def complex_expression_sql_append(sql, op, args)
168
143
  case op
@@ -1,21 +1,19 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  Sequel::JDBC.load_driver('Java::net.sourceforge.jtds.jdbc.Driver', :JTDS)
4
- Sequel.require 'adapters/jdbc/mssql'
4
+ require_relative 'mssql'
5
5
 
6
6
  module Sequel
7
7
  module JDBC
8
8
  Sequel.synchronize do
9
9
  DATABASE_SETUP[:jtds] = proc do |db|
10
10
  db.extend(Sequel::JDBC::JTDS::DatabaseMethods)
11
- db.dataset_class = Sequel::JDBC::JTDS::Dataset
11
+ db.extend_datasets Sequel::MSSQL::DatasetMethods
12
12
  db.send(:set_mssql_unicode_strings)
13
13
  Java::net.sourceforge.jtds.jdbc.Driver
14
14
  end
15
15
  end
16
16
 
17
- # Database and Dataset instance methods for JTDS specific
18
- # support via JDBC.
19
17
  module JTDS
20
18
  module DatabaseMethods
21
19
  include Sequel::JDBC::MSSQL::DatabaseMethods
@@ -36,11 +34,6 @@ module Sequel
36
34
  cps.setNull(i, cps.getParameterMetaData.getParameterType(i))
37
35
  end
38
36
  end
39
-
40
- # Dataset class for JTDS datasets accessed via JDBC.
41
- class Dataset < JDBC::Dataset
42
- include Sequel::MSSQL::DatasetMethods
43
- end
44
37
  end
45
38
  end
46
39
  end
@@ -1,21 +1,11 @@
1
1
  # frozen-string-literal: true
2
2
 
3
- Sequel.require 'adapters/shared/mssql'
3
+ require_relative '../shared/mssql'
4
4
 
5
5
  module Sequel
6
6
  module JDBC
7
- # Database and Dataset instance methods for MSSQL specific
8
- # support via JDBC.
9
7
  module MSSQL
10
- # Database instance methods for MSSQL databases accessed via JDBC.
11
8
  module DatabaseMethods
12
- PRIMARY_KEY_INDEX_RE = /\Apk__/i.freeze
13
- Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
14
- ATAT_IDENTITY = 'SELECT @@IDENTITY'.freeze
15
- Sequel::Deprecation.deprecate_constant(self, :ATAT_IDENTITY)
16
- SCOPE_IDENTITY = 'SELECT SCOPE_IDENTITY()'.freeze
17
- Sequel::Deprecation.deprecate_constant(self, :SCOPE_IDENTITY)
18
-
19
9
  include Sequel::MSSQL::DatabaseMethods
20
10
 
21
11
  private
@@ -1,7 +1,7 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  Sequel::JDBC.load_driver('com.mysql.jdbc.Driver', :MySQL)
4
- Sequel.require 'adapters/shared/mysql'
4
+ require_relative '../shared/mysql'
5
5
 
6
6
  module Sequel
7
7
  module JDBC
@@ -13,26 +13,12 @@ module Sequel
13
13
  end
14
14
  end
15
15
 
16
- # Database and Dataset instance methods for MySQL specific
17
- # support via JDBC.
18
16
  module MySQL
19
- # Database instance methods for MySQL databases accessed via JDBC.
20
17
  module DatabaseMethods
21
18
  include Sequel::MySQL::DatabaseMethods
22
- LAST_INSERT_ID = 'SELECT LAST_INSERT_ID()'.freeze
23
- Sequel::Deprecation.deprecate_constant(self, :LAST_INSERT_ID)
24
19
 
25
20
  private
26
21
 
27
- # The database name for the given database. Need to parse it out
28
- # of the connection string, since the JDBC does no parsing on the
29
- # given connection string by default.
30
- def database_name
31
- Sequel::Deprecation.deprecate("Database#database_name", "Instead, use .get(Sequel.function(:DATABASE))")
32
- u = URI.parse(uri.sub(/\Ajdbc:/, ''))
33
- (m = /\/(.*)/.match(u.path)) && m[1]
34
- end
35
-
36
22
  # MySQL exception handling with SQLState is less accurate than with regexps.
37
23
  def database_exception_use_sqlstates?
38
24
  false
@@ -1,8 +1,8 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  Sequel::JDBC.load_driver('Java::oracle.jdbc.driver.OracleDriver')
4
- Sequel.require 'adapters/shared/oracle'
5
- Sequel.require 'adapters/jdbc/transactions'
4
+ require_relative '../shared/oracle'
5
+ require_relative 'transactions'
6
6
 
7
7
  module Sequel
8
8
  module JDBC
@@ -14,23 +14,6 @@ module Sequel
14
14
  end
15
15
  end
16
16
 
17
- # SEQUEL5: Remove
18
- class Type_Convertor
19
- JAVA_BIG_DECIMAL_CONSTRUCTOR = java.math.BigDecimal.java_class.constructor(Java::long).method(:new_instance)
20
-
21
- def OracleDecimal(r, i)
22
- if v = r.getBigDecimal(i)
23
- i = v.long_value
24
- if v == JAVA_BIG_DECIMAL_CONSTRUCTOR.call(i)
25
- i
26
- else
27
- BigDecimal.new(v.to_string)
28
- end
29
- end
30
- end
31
- end
32
-
33
- # Database and Dataset support for Oracle databases accessed via JDBC.
34
17
  module Oracle
35
18
  JAVA_BIG_DECIMAL_CONSTRUCTOR = java.math.BigDecimal.java_class.constructor(Java::long).method(:new_instance)
36
19
 
@@ -45,16 +28,12 @@ module Sequel
45
28
  end
46
29
  end
47
30
 
48
- # Instance methods for Oracle Database objects accessed via JDBC.
49
31
  module DatabaseMethods
50
- PRIMARY_KEY_INDEX_RE = /\Asys_/i.freeze
51
- Sequel::Deprecation.deprecate_constant(self, :PRIMARY_KEY_INDEX_RE)
52
-
53
32
  include Sequel::Oracle::DatabaseMethods
54
33
  include Sequel::JDBC::Transactions
55
34
 
56
35
  def self.extended(db)
57
- db.instance_eval do
36
+ db.instance_exec do
58
37
  @autosequence = opts[:autosequence]
59
38
  @primary_key_sequences = {}
60
39
  end
@@ -128,13 +107,12 @@ module Sequel
128
107
  end
129
108
  end
130
109
 
131
- # Dataset class for Oracle datasets accessed via JDBC.
132
110
  class Dataset < JDBC::Dataset
133
111
  include Sequel::Oracle::DatasetMethods
134
112
 
135
113
  NUMERIC_TYPE = Java::JavaSQL::Types::NUMERIC
136
114
  TIMESTAMP_TYPE = Java::JavaSQL::Types::TIMESTAMP
137
- TIMESTAMPTZ_TYPES = [Java::oracle.jdbc.OracleTypes::TIMESTAMPTZ, Java::oracle.jdbc.OracleTypes::TIMESTAMPLTZ]#.freeze # SEQUEL5
115
+ TIMESTAMPTZ_TYPES = [Java::oracle.jdbc.OracleTypes::TIMESTAMPTZ, Java::oracle.jdbc.OracleTypes::TIMESTAMPLTZ].freeze
138
116
 
139
117
  def type_convertor(map, meta, type, i)
140
118
  case type