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,21 +1,14 @@
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 ADO
7
- # Database and Dataset instance methods for MSSQL specific
8
- # support via ADO.
9
7
  module MSSQL
10
8
  module DatabaseMethods
11
9
  include Sequel::MSSQL::DatabaseMethods
12
- # Query to use to get the number of rows affected by an update or
13
- # delete query.
14
- ROWS_AFFECTED = "SELECT @@ROWCOUNT AS AffectedRows"
15
- Sequel::Deprecation.deprecate_constant(self, :ROWS_AFFECTED)
16
-
17
10
  # Issue a separate query to get the rows modified. ADO appears to
18
- # use pass by reference with an integer variable, which is obviously
11
+ # use pass by reference with an integer variable, which is
19
12
  # not supported directly in ruby, and I'm not aware of a workaround.
20
13
  def execute_dui(sql, opts=OPTS)
21
14
  return super unless @opts[:provider]
@@ -1,11 +1,9 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  require 'amalgalite'
4
- Sequel.require 'adapters/shared/sqlite'
4
+ require_relative 'shared/sqlite'
5
5
 
6
6
  module Sequel
7
- # Top level module for holding all Amalgalite-related modules and classes
8
- # for Sequel.
9
7
  module Amalgalite
10
8
  # Type conversion map class for Sequel's use of Amalgamite
11
9
  class SequelTypeMap < ::Amalgalite::TypeMaps::DefaultMap
@@ -50,15 +48,13 @@ module Sequel
50
48
  if value.is_a?(::Amalgalite::Blob)
51
49
  SQL::Blob.new(value.to_s)
52
50
  elsif value.is_a?(String) && declared_type
53
- (meth = self.class.sql_to_method(declared_type.downcase)) ? send(meth, value) : value
51
+ (meth = self.class.sql_to_method(declared_type.downcase)) ? public_send(meth, value) : value
54
52
  else
55
53
  super
56
54
  end
57
55
  end
58
56
  end
59
57
 
60
- # Database class for SQLite databases used with Sequel and the
61
- # amalgalite driver.
62
58
  class Database < Sequel::Database
63
59
  include ::Sequel::SQLite::DatabaseMethods
64
60
 
@@ -85,28 +81,23 @@ module Sequel
85
81
  db
86
82
  end
87
83
 
88
- # Amalgalite is just the SQLite database without a separate SQLite installation.
89
84
  def database_type
90
85
  :sqlite
91
86
  end
92
87
 
93
- # Run the given SQL with the given arguments. Returns nil.
94
88
  def execute_ddl(sql, opts=OPTS)
95
89
  _execute(sql, opts){|conn| log_connection_yield(sql, conn){conn.execute_batch(sql)}}
96
90
  nil
97
91
  end
98
92
 
99
- # Run the given SQL with the given arguments and return the number of changed rows.
100
93
  def execute_dui(sql, opts=OPTS)
101
94
  _execute(sql, opts){|conn| log_connection_yield(sql, conn){conn.execute_batch(sql)}; conn.row_changes}
102
95
  end
103
96
 
104
- # Run the given SQL with the given arguments and return the last inserted row id.
105
97
  def execute_insert(sql, opts=OPTS)
106
98
  _execute(sql, opts){|conn| log_connection_yield(sql, conn){conn.execute_batch(sql)}; conn.last_insert_rowid}
107
99
  end
108
100
 
109
- # Run the given SQL with the given arguments and yield each row.
110
101
  def execute(sql, opts=OPTS)
111
102
  _execute(sql, opts) do |conn|
112
103
  begin
@@ -149,20 +140,14 @@ module Sequel
149
140
  Dataset
150
141
  end
151
142
 
152
- # Both main error classes that Amalgalite raises
153
143
  def database_error_classes
154
144
  [::Amalgalite::Error, ::Amalgalite::SQLite3::Error]
155
145
  end
156
146
  end
157
147
 
158
- # Dataset class for SQLite datasets that use the amalgalite driver.
159
148
  class Dataset < Sequel::Dataset
160
149
  include ::Sequel::SQLite::DatasetMethods
161
150
 
162
- Database::DatasetClass = self
163
- Sequel::Deprecation.deprecate_constant(Database, :DatasetClass)
164
-
165
- # Yield a hash for each row in the dataset.
166
151
  def fetch_rows(sql)
167
152
  execute(sql) do |stmt|
168
153
  self.columns = cols = stmt.result_fields.map{|c| output_identifier(c)}
@@ -177,7 +162,7 @@ module Sequel
177
162
 
178
163
  private
179
164
 
180
- # Quote the string using the adapter instance method.
165
+ # Quote the string using the connection instance method.
181
166
  def literal_string_append(sql, v)
182
167
  db.synchronize(@opts[:server]){|c| sql << c.quote(v)}
183
168
  end
@@ -1,24 +1,11 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  require 'ibm_db'
4
- Sequel.require 'adapters/shared/db2'
4
+ require_relative 'shared/db2'
5
5
 
6
6
  module Sequel
7
7
 
8
8
  module IBMDB
9
- # SEQUEL5: Remove
10
- @convert_smallint_to_bool = true
11
- class << self
12
- def convert_smallint_to_bool
13
- Sequel::Deprecation.deprecate("Sequel::IBMDB.convert_smallint_to_bool", "Call this method on the Database instance")
14
- @convert_smallint_to_bool
15
- end
16
- def convert_smallint_to_bool=(v)
17
- Sequel::Deprecation.deprecate("Sequel::IBMDB.convert_smallint_to_bool=", "Call this method on the Database instance")
18
- @convert_smallint_to_bool = v
19
- end
20
- end
21
-
22
9
  tt = Class.new do
23
10
  def boolean(s) !s.to_i.zero? end
24
11
  def int(s) s.to_i end
@@ -31,19 +18,15 @@ module Sequel
31
18
  :blob => ::Sequel::SQL::Blob.method(:new),
32
19
  :time => ::Sequel.method(:string_to_time),
33
20
  :date => ::Sequel.method(:string_to_date)
34
- }#.freeze # SEQUEL5
21
+ }.freeze
35
22
 
36
- # Wraps an underlying connection to DB2 using IBM_DB.
23
+ # Wraps an underlying connection to DB2 using IBM_DB, to provide a more
24
+ # rubyish API.
37
25
  class Connection
38
26
  # A hash with prepared statement name symbol keys, where each value is
39
27
  # a two element array with an sql string and cached Statement value.
40
28
  attr_reader :prepared_statements
41
29
 
42
- def prepared_statements=(v)
43
- Sequel::Deprecation.deprecate("Sequel::IBMDB::Connection#prepared_statements=", "Use replace on the hash instead of reassigning it")
44
- @prepared_statements = v
45
- end
46
-
47
30
  # Error class for exceptions raised by the connection.
48
31
  class Error < StandardError
49
32
  attr_reader :sqlstate
@@ -199,14 +182,7 @@ module Sequel
199
182
  attr_reader :conversion_procs
200
183
 
201
184
  # Whether to convert smallint values to bool for this Database instance
202
- #attr_accessor :convert_smallint_to_bool # SEQUEL5
203
-
204
- # SEQUEL5: Remove
205
- attr_writer :convert_smallint_to_bool
206
- def convert_smallint_to_bool
207
- v = @convert_smallint_to_bool
208
- v.nil? ? Sequel::IBMDB.instance_variable_get(:@convert_smallint_to_bool) : v
209
- end
185
+ attr_accessor :convert_smallint_to_bool
210
186
 
211
187
  # Create a new connection object for the given server.
212
188
  def connect(server)
@@ -229,7 +205,6 @@ module Sequel
229
205
  Connection.new(connection_params)
230
206
  end
231
207
 
232
- # Execute the given SQL on the database.
233
208
  def execute(sql, opts=OPTS, &block)
234
209
  if sql.is_a?(Symbol)
235
210
  execute_prepared_statement(sql, opts, &block)
@@ -240,8 +215,6 @@ module Sequel
240
215
  raise_error(e)
241
216
  end
242
217
 
243
- # Execute the given SQL on the database, returning the last inserted
244
- # identity value.
245
218
  def execute_insert(sql, opts=OPTS)
246
219
  synchronize(opts[:server]) do |c|
247
220
  if sql.is_a?(Symbol)
@@ -291,7 +264,8 @@ module Sequel
291
264
 
292
265
  private
293
266
 
294
- # Execute the given SQL on the database.
267
+ # Execute the given SQL on the database, yielding the related statement if a block
268
+ # is given or returning the number of affected rows if not, and ensuring the statement is freed.
295
269
  def _execute(conn, sql, opts)
296
270
  stmt = log_connection_yield(sql, conn){conn.execute(sql)}
297
271
  if block_given?
@@ -304,7 +278,7 @@ module Sequel
304
278
  end
305
279
 
306
280
  def adapter_initialize
307
- #@convert_smallint_to_bool = typecast_value_boolean(opts.fetch(:convert_smallint_to_bool, true)) # SEQUEL5
281
+ @convert_smallint_to_bool = typecast_value_boolean(opts.fetch(:convert_smallint_to_bool, true))
308
282
  @conversion_procs = DB2_TYPES.dup
309
283
  @conversion_procs[:timestamp] = method(:to_application_timestamp)
310
284
  end
@@ -381,9 +355,6 @@ module Sequel
381
355
  class Dataset < Sequel::Dataset
382
356
  include Sequel::DB2::DatasetMethods
383
357
 
384
- Database::DatasetClass = self
385
- Sequel::Deprecation.deprecate_constant(Database, :DatasetClass)
386
-
387
358
  module CallableStatementMethods
388
359
  # Extend given dataset with this module so subselects inside subselects in
389
360
  # prepared statements work.
@@ -398,14 +369,8 @@ module Sequel
398
369
 
399
370
  PreparedStatementMethods = prepared_statements_module(:prepare_bind, Sequel::Dataset::UnnumberedArgumentMapper)
400
371
 
401
- # Override the default IBMDB.convert_smallint_to_bool setting for this dataset.
402
- def convert_smallint_to_bool=(v)
403
- Sequel::Deprecation.deprecate("Sequel::IBMDB::Dataset#convert_smallint_to_bool=", "Call with_convert_smallint_to_bool instead, which returns a modified copy instead of modifying the object")
404
- @opts[:convert_smallint_to_bool] = v
405
- end
406
-
407
372
  # Whether to convert smallint to boolean arguments for this dataset.
408
- # Defaults to the IBMDB module setting.
373
+ # Defaults to the Database setting.
409
374
  def convert_smallint_to_bool
410
375
  opts.has_key?(:convert_smallint_to_bool) ? opts[:convert_smallint_to_bool] : db.convert_smallint_to_bool
411
376
  end
@@ -415,7 +380,6 @@ module Sequel
415
380
  clone(:convert_smallint_to_bool=>v)
416
381
  end
417
382
 
418
- # Fetch the rows from the database and yield plain hashes.
419
383
  def fetch_rows(sql)
420
384
  execute(sql) do |stmt|
421
385
  columns = []
@@ -1,37 +1,19 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  require 'java'
4
- Sequel.require 'adapters/utils/stored_procedures'
4
+ require_relative 'utils/stored_procedures'
5
5
 
6
6
  module Sequel
7
- # Houses Sequel's JDBC support when running on JRuby.
8
7
  module JDBC
9
- # Make it accesing the java.lang hierarchy more ruby friendly.
10
- module JavaLang
11
- include_package 'java.lang'
12
- end
13
- Sequel::Deprecation.deprecate_constant(self, :JavaLang)
14
-
15
8
  # Make it accesing the java.sql hierarchy more ruby friendly.
16
9
  module JavaSQL
17
10
  include_package 'java.sql'
18
11
  end
19
12
 
20
- # Make it accesing the javax.naming hierarchy more ruby friendly.
21
- module JavaxNaming
22
- include_package 'javax.naming'
23
- end
24
- Sequel::Deprecation.deprecate_constant(self, :JavaxNaming)
25
-
26
13
  # Used to identify a jndi connection and to extract the jndi
27
14
  # resource name.
28
15
  JNDI_URI_REGEXP = /\Ajdbc:jndi:(.+)/
29
16
 
30
- # The types to check for 0 scale to transform :decimal types
31
- # to :integer.
32
- DECIMAL_TYPE_RE = /number|numeric|decimal/io
33
- Sequel::Deprecation.deprecate_constant(self, :DECIMAL_TYPE_RE)
34
-
35
17
  # Contains procs keyed on subadapter type that extend the
36
18
  # given database object so it supports the correct database type.
37
19
  DATABASE_SETUP = {}
@@ -100,8 +82,7 @@ module Sequel
100
82
  end
101
83
  end
102
84
 
103
- INSTANCE = new
104
- o = INSTANCE
85
+ o = new
105
86
  MAP = Hash.new(o.method(:Object))
106
87
  types = Java::JavaSQL::Types
107
88
 
@@ -143,16 +124,9 @@ module Sequel
143
124
 
144
125
  MAP.freeze
145
126
  BASIC_MAP.freeze
146
- INSTANCE.freeze
147
- # freeze # SEQUEL5
127
+ freeze
148
128
  end
149
129
 
150
- # SEQUEL5: Remove
151
- Type_Convertor = TypeConvertor
152
- Sequel::Deprecation.deprecate_constant(self, :TypeConvertor)
153
-
154
- # JDBC Databases offer a fairly uniform interface that does not change
155
- # much based on the sub adapter.
156
130
  class Database < Sequel::Database
157
131
  set_adapter_scheme :jdbc
158
132
 
@@ -202,7 +176,8 @@ module Sequel
202
176
  end
203
177
  end
204
178
 
205
- # Connect to the database using JavaSQL::DriverManager.getConnection.
179
+ # Connect to the database using JavaSQL::DriverManager.getConnection, and falling back
180
+ # to driver.new.connect if the driver is known.
206
181
  def connect(server)
207
182
  opts = server_opts(server)
208
183
  conn = if jndi?
@@ -245,8 +220,6 @@ module Sequel
245
220
  c.close
246
221
  end
247
222
 
248
- # Execute the given SQL. If a block is given, if should be a SELECT
249
- # statement or something else that returns rows.
250
223
  def execute(sql, opts=OPTS, &block)
251
224
  return call_sproc(sql, opts, &block) if opts[:sproc]
252
225
  return execute_prepared_statement(sql, opts, &block) if [Symbol, Dataset].any?{|c| sql.is_a?(c)}
@@ -273,16 +246,12 @@ module Sequel
273
246
  end
274
247
  alias execute_dui execute
275
248
 
276
- # Execute the given DDL SQL, which should not return any
277
- # values or rows.
278
249
  def execute_ddl(sql, opts=OPTS)
279
250
  opts = Hash[opts]
280
251
  opts[:type] = :ddl
281
252
  execute(sql, opts)
282
253
  end
283
254
 
284
- # Execute the given INSERT SQL, returning the last inserted
285
- # row id.
286
255
  def execute_insert(sql, opts=OPTS)
287
256
  opts = Hash[opts]
288
257
  opts[:type] = :insert
@@ -520,27 +489,24 @@ module Sequel
520
489
  # Support DateTime objects used in bound variables
521
490
  def java_sql_datetime(datetime)
522
491
  ts = java.sql.Timestamp.new(Time.local(datetime.year, datetime.month, datetime.day, datetime.hour, datetime.min, datetime.sec).to_i * 1000)
523
- ts.setNanos((datetime.sec_fraction * (RUBY_VERSION >= '1.9.0' ? 1000000000 : 86400000000000)).to_i)
492
+ ts.setNanos((datetime.sec_fraction * 1000000000).to_i)
524
493
  ts
525
494
  end
526
495
 
527
496
  # Support fractional seconds for Time objects used in bound variables
528
497
  def java_sql_timestamp(time)
529
498
  ts = java.sql.Timestamp.new(time.to_i * 1000)
530
- # Work around jruby 1.6 ruby 1.9 mode bug # SEQUEL5: Remove workaround
531
- ts.setNanos((RUBY_VERSION >= '1.9.0' && time.nsec != 0) ? time.nsec : time.usec * 1000)
499
+ ts.setNanos(time.nsec)
532
500
  ts
533
501
  end
534
502
 
535
- # Log the given SQL and then execute it on the connection, used by
536
- # the transaction code.
537
503
  def log_connection_execute(conn, sql)
538
504
  statement(conn){|s| log_connection_yield(sql, conn){s.execute(sql)}}
539
505
  end
540
506
 
541
507
  # By default, there is no support for determining the last inserted
542
508
  # id, so return nil. This method should be overridden in
543
- # sub adapters.
509
+ # subadapters.
544
510
  def last_insert_id(conn, opts)
545
511
  nil
546
512
  end
@@ -548,7 +514,7 @@ module Sequel
548
514
  # Yield the metadata for this database
549
515
  def metadata(*args, &block)
550
516
  synchronize do |c|
551
- result = c.getMetaData.send(*args)
517
+ result = c.getMetaData.public_send(*args)
552
518
  begin
553
519
  metadata_dataset.send(:process_result_set, result, &block)
554
520
  ensure
@@ -610,8 +576,7 @@ module Sequel
610
576
  cps.setString(i, nil)
611
577
  end
612
578
 
613
- # Return the connection. Used to do configuration on the
614
- # connection object before adding it to the connection pool.
579
+ # Return the connection. Can be overridden in subadapters for database specific setup.
615
580
  def setup_connection(conn)
616
581
  conn
617
582
  end
@@ -629,7 +594,6 @@ module Sequel
629
594
  end
630
595
  end
631
596
 
632
- # Parse the table schema for the given table.
633
597
  def schema_parse_table(table, opts=OPTS)
634
598
  m = output_identifier_meth(opts[:dataset])
635
599
  schema, table = metadata_schema_and_table(table, opts)
@@ -668,8 +632,7 @@ module Sequel
668
632
  ts
669
633
  end
670
634
 
671
- # Whether schema_parse_table should skip the given row when
672
- # parsing the schema.
635
+ # Skip tables in the INFORMATION_SCHEMA when parsing columns.
673
636
  def schema_parse_table_skip?(h, schema)
674
637
  h[:table_schem] == 'INFORMATION_SCHEMA'
675
638
  end
@@ -681,9 +644,8 @@ module Sequel
681
644
  # Called before loading subadapter-specific code, necessary so that subadapter initialization code
682
645
  # that runs queries works correctly. This cannot be overriding in subadapters,
683
646
  def setup_type_convertor_map_early
684
- # SEQUEL5: Change back to TypeConvertor
685
- @type_convertor_map = Type_Convertor::MAP.merge(Java::JavaSQL::Types::TIMESTAMP=>method(:timestamp_convert))
686
- @basic_type_convertor_map = Type_Convertor::BASIC_MAP.dup
647
+ @type_convertor_map = TypeConvertor::MAP.merge(Java::JavaSQL::Types::TIMESTAMP=>method(:timestamp_convert))
648
+ @basic_type_convertor_map = TypeConvertor::BASIC_MAP.dup
687
649
  end
688
650
 
689
651
  # Yield a new statement object, and ensure that it is closed before returning.
@@ -703,27 +665,17 @@ module Sequel
703
665
  to_application_timestamp([v.getYear + 1900, v.getMonth + 1, v.getDate, v.getHours, v.getMinutes, v.getSeconds, v.getNanos])
704
666
  end
705
667
  end
706
-
707
- # SEQUEL5: Remove
708
- def timestamp_convertor
709
- Sequel::Deprecation.deprecate("Sequel::JDBC::Database#timestamp_convertor", "Use method(:timestamp_convert) instead")
710
- method(:timestamp_convert)
711
- end
712
668
  end
713
669
 
714
670
  class Dataset < Sequel::Dataset
715
671
  include StoredProcedures
716
672
 
717
- Database::DatasetClass = self
718
- Sequel::Deprecation.deprecate_constant(Database, :DatasetClass)
719
-
720
673
  PreparedStatementMethods = prepared_statements_module(
721
674
  "sql = self; opts = Hash[opts]; opts[:arguments] = bind_arguments",
722
675
  Sequel::Dataset::UnnumberedArgumentMapper,
723
676
  %w"execute execute_dui") do
724
677
  private
725
678
 
726
- # Same as execute, explicit due to intricacies of alias and super.
727
679
  def execute_insert(sql, opts=OPTS)
728
680
  sql = self
729
681
  opts = Hash[opts]
@@ -739,7 +691,6 @@ module Sequel
739
691
  %w"execute execute_dui") do
740
692
  private
741
693
 
742
- # Same as execute, explicit due to intricacies of alias and super.
743
694
  def execute_insert(sql, opts=OPTS)
744
695
  sql = @opts[:sproc_name]
745
696
  opts = Hash[opts]
@@ -750,17 +701,6 @@ module Sequel
750
701
  end
751
702
  end
752
703
 
753
- # Whether to convert some Java types to ruby types when retrieving rows.
754
- def convert_types
755
- Sequel::Deprecation.deprecate("Sequel::JDBC::Dataset#convert_types", "The private #convert_types? method returns whether to convert types for this dataset")
756
- @opts[:convert_types]
757
- end
758
- def convert_types=(v)
759
- Sequel::Deprecation.deprecate("Sequel::JDBC::Dataset#convert_types=", "Switch to using #with_convert_types, which returns a modified copy")
760
- @opts[:convert_types] = v
761
- end
762
-
763
- # Correctly return rows from the database and return them as hashes.
764
704
  def fetch_rows(sql, &block)
765
705
  execute(sql){|result| process_result_set(result, &block)}
766
706
  self