sequel 4.49.0 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +130 -0
  3. data/README.rdoc +195 -136
  4. data/Rakefile +26 -42
  5. data/bin/sequel +6 -9
  6. data/doc/advanced_associations.rdoc +91 -168
  7. data/doc/association_basics.rdoc +197 -274
  8. data/doc/bin_sequel.rdoc +5 -3
  9. data/doc/cheat_sheet.rdoc +66 -43
  10. data/doc/code_order.rdoc +1 -8
  11. data/doc/core_extensions.rdoc +81 -56
  12. data/doc/dataset_basics.rdoc +8 -17
  13. data/doc/dataset_filtering.rdoc +81 -86
  14. data/doc/extensions.rdoc +3 -10
  15. data/doc/mass_assignment.rdoc +73 -30
  16. data/doc/migration.rdoc +19 -36
  17. data/doc/model_dataset_method_design.rdoc +14 -17
  18. data/doc/model_hooks.rdoc +15 -25
  19. data/doc/model_plugins.rdoc +10 -10
  20. data/doc/mssql_stored_procedures.rdoc +3 -3
  21. data/doc/object_model.rdoc +52 -70
  22. data/doc/opening_databases.rdoc +39 -32
  23. data/doc/postgresql.rdoc +48 -38
  24. data/doc/prepared_statements.rdoc +27 -22
  25. data/doc/querying.rdoc +173 -150
  26. data/doc/reflection.rdoc +5 -6
  27. data/doc/release_notes/5.0.0.txt +159 -0
  28. data/doc/release_notes/5.1.0.txt +31 -0
  29. data/doc/release_notes/5.2.0.txt +33 -0
  30. data/doc/release_notes/5.3.0.txt +121 -0
  31. data/doc/schema_modification.rdoc +78 -64
  32. data/doc/security.rdoc +97 -88
  33. data/doc/sharding.rdoc +43 -30
  34. data/doc/sql.rdoc +53 -65
  35. data/doc/testing.rdoc +4 -5
  36. data/doc/thread_safety.rdoc +2 -4
  37. data/doc/transactions.rdoc +18 -17
  38. data/doc/validations.rdoc +48 -45
  39. data/doc/virtual_rows.rdoc +87 -115
  40. data/lib/sequel/adapters/ado/access.rb +7 -13
  41. data/lib/sequel/adapters/ado/mssql.rb +2 -9
  42. data/lib/sequel/adapters/ado.rb +9 -25
  43. data/lib/sequel/adapters/amalgalite.rb +3 -18
  44. data/lib/sequel/adapters/ibmdb.rb +9 -45
  45. data/lib/sequel/adapters/jdbc/db2.rb +8 -37
  46. data/lib/sequel/adapters/jdbc/derby.rb +4 -50
  47. data/lib/sequel/adapters/jdbc/h2.rb +6 -26
  48. data/lib/sequel/adapters/jdbc/hsqldb.rb +2 -27
  49. data/lib/sequel/adapters/jdbc/jtds.rb +2 -9
  50. data/lib/sequel/adapters/jdbc/mssql.rb +1 -11
  51. data/lib/sequel/adapters/jdbc/mysql.rb +11 -15
  52. data/lib/sequel/adapters/jdbc/oracle.rb +4 -26
  53. data/lib/sequel/adapters/jdbc/postgresql.rb +23 -33
  54. data/lib/sequel/adapters/jdbc/sqlanywhere.rb +4 -17
  55. data/lib/sequel/adapters/jdbc/sqlite.rb +1 -7
  56. data/lib/sequel/adapters/jdbc/sqlserver.rb +1 -13
  57. data/lib/sequel/adapters/jdbc/transactions.rb +1 -14
  58. data/lib/sequel/adapters/jdbc.rb +18 -74
  59. data/lib/sequel/adapters/mock.rb +4 -30
  60. data/lib/sequel/adapters/mysql.rb +7 -44
  61. data/lib/sequel/adapters/mysql2.rb +5 -23
  62. data/lib/sequel/adapters/odbc/db2.rb +1 -1
  63. data/lib/sequel/adapters/odbc/mssql.rb +4 -12
  64. data/lib/sequel/adapters/odbc/oracle.rb +1 -1
  65. data/lib/sequel/adapters/odbc.rb +0 -19
  66. data/lib/sequel/adapters/oracle.rb +8 -13
  67. data/lib/sequel/adapters/postgres.rb +28 -150
  68. data/lib/sequel/adapters/postgresql.rb +1 -1
  69. data/lib/sequel/adapters/shared/access.rb +11 -51
  70. data/lib/sequel/adapters/shared/db2.rb +3 -61
  71. data/lib/sequel/adapters/shared/mssql.rb +21 -157
  72. data/lib/sequel/adapters/shared/mysql.rb +61 -227
  73. data/lib/sequel/adapters/shared/oracle.rb +13 -41
  74. data/lib/sequel/adapters/shared/postgres.rb +58 -264
  75. data/lib/sequel/adapters/shared/sqlanywhere.rb +4 -96
  76. data/lib/sequel/adapters/shared/sqlite.rb +22 -101
  77. data/lib/sequel/adapters/sqlanywhere.rb +4 -23
  78. data/lib/sequel/adapters/sqlite.rb +2 -19
  79. data/lib/sequel/adapters/tinytds.rb +5 -15
  80. data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +1 -1
  81. data/lib/sequel/adapters/utils/mysql_mysql2.rb +4 -4
  82. data/lib/sequel/adapters/utils/mysql_prepared_statements.rb +3 -6
  83. data/lib/sequel/adapters/utils/replace.rb +0 -5
  84. data/lib/sequel/adapters/utils/stored_procedures.rb +0 -2
  85. data/lib/sequel/adapters/utils/unmodified_identifiers.rb +2 -0
  86. data/lib/sequel/ast_transformer.rb +3 -94
  87. data/lib/sequel/connection_pool/sharded_single.rb +1 -4
  88. data/lib/sequel/connection_pool/sharded_threaded.rb +97 -95
  89. data/lib/sequel/connection_pool/single.rb +0 -2
  90. data/lib/sequel/connection_pool/threaded.rb +94 -110
  91. data/lib/sequel/connection_pool.rb +38 -28
  92. data/lib/sequel/core.rb +42 -101
  93. data/lib/sequel/database/connecting.rb +23 -60
  94. data/lib/sequel/database/dataset.rb +6 -9
  95. data/lib/sequel/database/dataset_defaults.rb +4 -48
  96. data/lib/sequel/database/features.rb +5 -4
  97. data/lib/sequel/database/logging.rb +2 -9
  98. data/lib/sequel/database/misc.rb +36 -55
  99. data/lib/sequel/database/query.rb +8 -13
  100. data/lib/sequel/database/schema_generator.rb +93 -64
  101. data/lib/sequel/database/schema_methods.rb +61 -79
  102. data/lib/sequel/database/transactions.rb +4 -24
  103. data/lib/sequel/database.rb +12 -2
  104. data/lib/sequel/dataset/actions.rb +57 -107
  105. data/lib/sequel/dataset/dataset_module.rb +4 -16
  106. data/lib/sequel/dataset/features.rb +35 -30
  107. data/lib/sequel/dataset/graph.rb +40 -49
  108. data/lib/sequel/dataset/misc.rb +12 -37
  109. data/lib/sequel/dataset/placeholder_literalizer.rb +4 -4
  110. data/lib/sequel/dataset/prepared_statements.rb +23 -51
  111. data/lib/sequel/dataset/query.rb +91 -161
  112. data/lib/sequel/dataset/sql.rb +33 -225
  113. data/lib/sequel/dataset.rb +18 -10
  114. data/lib/sequel/deprecated.rb +18 -27
  115. data/lib/sequel/exceptions.rb +1 -17
  116. data/lib/sequel/extensions/_model_pg_row.rb +0 -7
  117. data/lib/sequel/extensions/_pretty_table.rb +1 -3
  118. data/lib/sequel/extensions/arbitrary_servers.rb +10 -10
  119. data/lib/sequel/extensions/connection_expiration.rb +1 -1
  120. data/lib/sequel/extensions/connection_validator.rb +1 -1
  121. data/lib/sequel/extensions/constraint_validations.rb +11 -11
  122. data/lib/sequel/extensions/core_extensions.rb +39 -49
  123. data/lib/sequel/extensions/core_refinements.rb +39 -45
  124. data/lib/sequel/extensions/current_datetime_timestamp.rb +0 -4
  125. data/lib/sequel/extensions/date_arithmetic.rb +7 -7
  126. data/lib/sequel/extensions/duplicate_columns_handler.rb +12 -9
  127. data/lib/sequel/extensions/empty_array_consider_nulls.rb +2 -2
  128. data/lib/sequel/extensions/eval_inspect.rb +4 -11
  129. data/lib/sequel/extensions/freeze_datasets.rb +1 -69
  130. data/lib/sequel/extensions/from_block.rb +1 -35
  131. data/lib/sequel/extensions/graph_each.rb +2 -2
  132. data/lib/sequel/extensions/identifier_mangling.rb +9 -19
  133. data/lib/sequel/extensions/implicit_subquery.rb +2 -2
  134. data/lib/sequel/extensions/inflector.rb +4 -4
  135. data/lib/sequel/extensions/migration.rb +27 -43
  136. data/lib/sequel/extensions/no_auto_literal_strings.rb +2 -84
  137. data/lib/sequel/extensions/null_dataset.rb +2 -8
  138. data/lib/sequel/extensions/pagination.rb +1 -17
  139. data/lib/sequel/extensions/pg_array.rb +20 -189
  140. data/lib/sequel/extensions/pg_extended_date_support.rb +230 -0
  141. data/lib/sequel/extensions/pg_hstore.rb +11 -50
  142. data/lib/sequel/extensions/pg_hstore_ops.rb +2 -2
  143. data/lib/sequel/extensions/pg_inet.rb +3 -16
  144. data/lib/sequel/extensions/pg_interval.rb +1 -20
  145. data/lib/sequel/extensions/pg_json.rb +7 -27
  146. data/lib/sequel/extensions/pg_loose_count.rb +1 -1
  147. data/lib/sequel/extensions/pg_range.rb +6 -121
  148. data/lib/sequel/extensions/pg_range_ops.rb +1 -3
  149. data/lib/sequel/extensions/pg_row.rb +5 -77
  150. data/lib/sequel/extensions/pg_row_ops.rb +2 -13
  151. data/lib/sequel/extensions/query.rb +3 -4
  152. data/lib/sequel/extensions/round_timestamps.rb +0 -6
  153. data/lib/sequel/extensions/schema_dumper.rb +13 -13
  154. data/lib/sequel/extensions/select_remove.rb +3 -3
  155. data/lib/sequel/extensions/split_array_nil.rb +2 -2
  156. data/lib/sequel/extensions/sql_comments.rb +2 -2
  157. data/lib/sequel/extensions/string_agg.rb +11 -8
  158. data/lib/sequel/extensions/symbol_aref.rb +6 -20
  159. data/lib/sequel/extensions/synchronize_sql.rb +45 -0
  160. data/lib/sequel/model/associations.rb +129 -131
  161. data/lib/sequel/model/base.rb +133 -731
  162. data/lib/sequel/model/default_inflections.rb +1 -1
  163. data/lib/sequel/model/errors.rb +0 -3
  164. data/lib/sequel/model/exceptions.rb +2 -6
  165. data/lib/sequel/model/inflections.rb +1 -26
  166. data/lib/sequel/model/plugins.rb +1 -0
  167. data/lib/sequel/model.rb +27 -62
  168. data/lib/sequel/plugins/active_model.rb +2 -5
  169. data/lib/sequel/plugins/association_dependencies.rb +15 -15
  170. data/lib/sequel/plugins/association_pks.rb +14 -28
  171. data/lib/sequel/plugins/association_proxies.rb +6 -7
  172. data/lib/sequel/plugins/auto_validations.rb +4 -4
  173. data/lib/sequel/plugins/before_after_save.rb +0 -43
  174. data/lib/sequel/plugins/blacklist_security.rb +9 -8
  175. data/lib/sequel/plugins/boolean_readers.rb +3 -3
  176. data/lib/sequel/plugins/boolean_subsets.rb +2 -2
  177. data/lib/sequel/plugins/caching.rb +5 -5
  178. data/lib/sequel/plugins/class_table_inheritance.rb +71 -102
  179. data/lib/sequel/plugins/column_conflicts.rb +2 -2
  180. data/lib/sequel/plugins/column_select.rb +2 -2
  181. data/lib/sequel/plugins/composition.rb +15 -24
  182. data/lib/sequel/plugins/constraint_validations.rb +4 -3
  183. data/lib/sequel/plugins/csv_serializer.rb +13 -20
  184. data/lib/sequel/plugins/dataset_associations.rb +2 -2
  185. data/lib/sequel/plugins/def_dataset_method.rb +5 -5
  186. data/lib/sequel/plugins/defaults_setter.rb +1 -1
  187. data/lib/sequel/plugins/delay_add_association.rb +1 -1
  188. data/lib/sequel/plugins/finder.rb +16 -10
  189. data/lib/sequel/plugins/force_encoding.rb +1 -7
  190. data/lib/sequel/plugins/hook_class_methods.rb +4 -106
  191. data/lib/sequel/plugins/input_transformer.rb +10 -11
  192. data/lib/sequel/plugins/insert_returning_select.rb +1 -9
  193. data/lib/sequel/plugins/instance_filters.rb +5 -5
  194. data/lib/sequel/plugins/instance_hooks.rb +7 -52
  195. data/lib/sequel/plugins/inverted_subsets.rb +3 -1
  196. data/lib/sequel/plugins/json_serializer.rb +19 -19
  197. data/lib/sequel/plugins/lazy_attributes.rb +1 -10
  198. data/lib/sequel/plugins/list.rb +6 -6
  199. data/lib/sequel/plugins/many_through_many.rb +11 -8
  200. data/lib/sequel/plugins/mssql_optimistic_locking.rb +3 -3
  201. data/lib/sequel/plugins/nested_attributes.rb +18 -31
  202. data/lib/sequel/plugins/optimistic_locking.rb +3 -3
  203. data/lib/sequel/plugins/pg_array_associations.rb +8 -2
  204. data/lib/sequel/plugins/pg_row.rb +2 -11
  205. data/lib/sequel/plugins/prepared_statements.rb +13 -66
  206. data/lib/sequel/plugins/prepared_statements_safe.rb +1 -1
  207. data/lib/sequel/plugins/rcte_tree.rb +7 -7
  208. data/lib/sequel/plugins/serialization.rb +15 -33
  209. data/lib/sequel/plugins/serialization_modification_detection.rb +1 -1
  210. data/lib/sequel/plugins/sharding.rb +2 -8
  211. data/lib/sequel/plugins/single_table_inheritance.rb +10 -13
  212. data/lib/sequel/plugins/skip_create_refresh.rb +3 -3
  213. data/lib/sequel/plugins/static_cache.rb +8 -9
  214. data/lib/sequel/plugins/string_stripper.rb +3 -3
  215. data/lib/sequel/plugins/subclasses.rb +1 -1
  216. data/lib/sequel/plugins/subset_conditions.rb +2 -2
  217. data/lib/sequel/plugins/table_select.rb +2 -2
  218. data/lib/sequel/plugins/tactical_eager_loading.rb +4 -4
  219. data/lib/sequel/plugins/timestamps.rb +6 -7
  220. data/lib/sequel/plugins/touch.rb +4 -8
  221. data/lib/sequel/plugins/tree.rb +3 -3
  222. data/lib/sequel/plugins/typecast_on_load.rb +2 -2
  223. data/lib/sequel/plugins/unlimited_update.rb +1 -7
  224. data/lib/sequel/plugins/update_or_create.rb +3 -3
  225. data/lib/sequel/plugins/update_refresh.rb +3 -3
  226. data/lib/sequel/plugins/uuid.rb +7 -11
  227. data/lib/sequel/plugins/validation_class_methods.rb +10 -9
  228. data/lib/sequel/plugins/validation_contexts.rb +4 -4
  229. data/lib/sequel/plugins/validation_helpers.rb +26 -25
  230. data/lib/sequel/plugins/whitelist_security.rb +13 -9
  231. data/lib/sequel/plugins/xml_serializer.rb +24 -25
  232. data/lib/sequel/sql.rb +145 -276
  233. data/lib/sequel/timezones.rb +8 -23
  234. data/lib/sequel/version.rb +2 -2
  235. data/lib/sequel.rb +1 -1
  236. data/spec/adapter_spec.rb +1 -1
  237. data/spec/adapters/db2_spec.rb +2 -103
  238. data/spec/adapters/mssql_spec.rb +89 -68
  239. data/spec/adapters/mysql_spec.rb +111 -478
  240. data/spec/adapters/oracle_spec.rb +1 -9
  241. data/spec/adapters/postgres_spec.rb +459 -664
  242. data/spec/adapters/spec_helper.rb +12 -31
  243. data/spec/adapters/sqlanywhere_spec.rb +2 -77
  244. data/spec/adapters/sqlite_spec.rb +8 -146
  245. data/spec/bin_spec.rb +11 -16
  246. data/spec/core/connection_pool_spec.rb +173 -74
  247. data/spec/core/database_spec.rb +96 -244
  248. data/spec/core/dataset_spec.rb +99 -414
  249. data/spec/core/deprecated_spec.rb +3 -3
  250. data/spec/core/expression_filters_spec.rb +37 -144
  251. data/spec/core/mock_adapter_spec.rb +241 -4
  252. data/spec/core/object_graph_spec.rb +11 -60
  253. data/spec/core/placeholder_literalizer_spec.rb +1 -14
  254. data/spec/core/schema_generator_spec.rb +51 -40
  255. data/spec/core/schema_spec.rb +88 -77
  256. data/spec/core/spec_helper.rb +6 -24
  257. data/spec/core/version_spec.rb +1 -1
  258. data/spec/core_extensions_spec.rb +7 -83
  259. data/spec/core_model_spec.rb +2 -2
  260. data/spec/deprecation_helper.rb +2 -14
  261. data/spec/extensions/accessed_columns_spec.rb +1 -1
  262. data/spec/extensions/active_model_spec.rb +3 -3
  263. data/spec/extensions/after_initialize_spec.rb +1 -1
  264. data/spec/extensions/arbitrary_servers_spec.rb +2 -2
  265. data/spec/extensions/association_dependencies_spec.rb +1 -1
  266. data/spec/extensions/association_pks_spec.rb +30 -92
  267. data/spec/extensions/association_proxies_spec.rb +1 -1
  268. data/spec/extensions/auto_literal_strings_spec.rb +1 -12
  269. data/spec/extensions/auto_validations_spec.rb +1 -1
  270. data/spec/extensions/blacklist_security_spec.rb +1 -1
  271. data/spec/extensions/blank_spec.rb +1 -1
  272. data/spec/extensions/boolean_readers_spec.rb +1 -1
  273. data/spec/extensions/boolean_subsets_spec.rb +1 -1
  274. data/spec/extensions/caching_spec.rb +1 -1
  275. data/spec/extensions/class_table_inheritance_spec.rb +53 -1118
  276. data/spec/extensions/column_conflicts_spec.rb +1 -1
  277. data/spec/extensions/column_select_spec.rb +4 -4
  278. data/spec/extensions/columns_introspection_spec.rb +1 -1
  279. data/spec/extensions/columns_updated_spec.rb +1 -1
  280. data/spec/extensions/composition_spec.rb +8 -30
  281. data/spec/extensions/connection_expiration_spec.rb +3 -3
  282. data/spec/extensions/connection_validator_spec.rb +3 -3
  283. data/spec/extensions/constraint_validations_plugin_spec.rb +1 -1
  284. data/spec/extensions/constraint_validations_spec.rb +1 -1
  285. data/spec/extensions/core_refinements_spec.rb +1 -3
  286. data/spec/extensions/csv_serializer_spec.rb +4 -9
  287. data/spec/extensions/current_datetime_timestamp_spec.rb +1 -1
  288. data/spec/extensions/dataset_associations_spec.rb +2 -1
  289. data/spec/extensions/dataset_source_alias_spec.rb +1 -1
  290. data/spec/extensions/date_arithmetic_spec.rb +3 -3
  291. data/spec/extensions/def_dataset_method_spec.rb +1 -1
  292. data/spec/extensions/defaults_setter_spec.rb +2 -2
  293. data/spec/extensions/delay_add_association_spec.rb +8 -9
  294. data/spec/extensions/dirty_spec.rb +1 -1
  295. data/spec/extensions/duplicate_columns_handler_spec.rb +1 -1
  296. data/spec/extensions/eager_each_spec.rb +2 -2
  297. data/spec/extensions/empty_array_consider_nulls_spec.rb +1 -1
  298. data/spec/extensions/error_splitter_spec.rb +1 -1
  299. data/spec/extensions/error_sql_spec.rb +1 -1
  300. data/spec/extensions/eval_inspect_spec.rb +1 -1
  301. data/spec/extensions/finder_spec.rb +1 -1
  302. data/spec/extensions/force_encoding_spec.rb +2 -5
  303. data/spec/extensions/freeze_datasets_spec.rb +1 -1
  304. data/spec/extensions/graph_each_spec.rb +5 -5
  305. data/spec/extensions/hook_class_methods_spec.rb +1 -194
  306. data/spec/extensions/identifier_mangling_spec.rb +17 -170
  307. data/spec/extensions/implicit_subquery_spec.rb +1 -5
  308. data/spec/extensions/inflector_spec.rb +1 -1
  309. data/spec/extensions/input_transformer_spec.rb +7 -2
  310. data/spec/extensions/insert_returning_select_spec.rb +1 -1
  311. data/spec/extensions/instance_filters_spec.rb +1 -1
  312. data/spec/extensions/instance_hooks_spec.rb +1 -95
  313. data/spec/extensions/inverted_subsets_spec.rb +1 -1
  314. data/spec/extensions/json_serializer_spec.rb +1 -1
  315. data/spec/extensions/lazy_attributes_spec.rb +1 -7
  316. data/spec/extensions/list_spec.rb +5 -6
  317. data/spec/extensions/looser_typecasting_spec.rb +1 -1
  318. data/spec/extensions/many_through_many_spec.rb +25 -33
  319. data/spec/extensions/migration_spec.rb +12 -2
  320. data/spec/extensions/modification_detection_spec.rb +1 -1
  321. data/spec/extensions/mssql_optimistic_locking_spec.rb +1 -1
  322. data/spec/extensions/named_timezones_spec.rb +3 -3
  323. data/spec/extensions/nested_attributes_spec.rb +1 -29
  324. data/spec/extensions/null_dataset_spec.rb +1 -11
  325. data/spec/extensions/optimistic_locking_spec.rb +2 -2
  326. data/spec/extensions/pagination_spec.rb +1 -1
  327. data/spec/extensions/pg_array_associations_spec.rb +22 -26
  328. data/spec/extensions/pg_array_ops_spec.rb +1 -1
  329. data/spec/extensions/pg_array_spec.rb +3 -48
  330. data/spec/extensions/pg_enum_spec.rb +1 -1
  331. data/spec/extensions/pg_extended_date_support_spec.rb +122 -0
  332. data/spec/extensions/pg_hstore_ops_spec.rb +1 -1
  333. data/spec/extensions/pg_hstore_spec.rb +22 -31
  334. data/spec/extensions/pg_inet_ops_spec.rb +1 -1
  335. data/spec/extensions/pg_inet_spec.rb +1 -14
  336. data/spec/extensions/pg_interval_spec.rb +3 -13
  337. data/spec/extensions/pg_json_ops_spec.rb +1 -1
  338. data/spec/extensions/pg_json_spec.rb +1 -13
  339. data/spec/extensions/pg_loose_count_spec.rb +1 -1
  340. data/spec/extensions/pg_range_ops_spec.rb +1 -1
  341. data/spec/extensions/pg_range_spec.rb +3 -88
  342. data/spec/extensions/pg_row_ops_spec.rb +1 -1
  343. data/spec/extensions/pg_row_plugin_spec.rb +1 -1
  344. data/spec/extensions/pg_row_spec.rb +1 -44
  345. data/spec/extensions/pg_static_cache_updater_spec.rb +1 -1
  346. data/spec/extensions/prepared_statements_safe_spec.rb +7 -7
  347. data/spec/extensions/prepared_statements_spec.rb +13 -48
  348. data/spec/extensions/pretty_table_spec.rb +40 -9
  349. data/spec/extensions/query_spec.rb +1 -12
  350. data/spec/extensions/rcte_tree_spec.rb +23 -34
  351. data/spec/extensions/round_timestamps_spec.rb +1 -5
  352. data/spec/extensions/s_spec.rb +1 -1
  353. data/spec/extensions/schema_caching_spec.rb +1 -1
  354. data/spec/extensions/schema_dumper_spec.rb +43 -32
  355. data/spec/extensions/select_remove_spec.rb +1 -1
  356. data/spec/extensions/sequel_4_dataset_methods_spec.rb +1 -1
  357. data/spec/extensions/serialization_modification_detection_spec.rb +1 -1
  358. data/spec/extensions/serialization_spec.rb +5 -17
  359. data/spec/extensions/server_block_spec.rb +1 -1
  360. data/spec/extensions/server_logging_spec.rb +2 -2
  361. data/spec/extensions/sharding_spec.rb +1 -1
  362. data/spec/extensions/shared_caching_spec.rb +1 -28
  363. data/spec/extensions/single_table_inheritance_spec.rb +2 -5
  364. data/spec/extensions/singular_table_names_spec.rb +1 -1
  365. data/spec/extensions/skip_create_refresh_spec.rb +1 -1
  366. data/spec/extensions/spec_helper.rb +5 -27
  367. data/spec/extensions/split_array_nil_spec.rb +1 -1
  368. data/spec/extensions/split_values_spec.rb +1 -1
  369. data/spec/extensions/sql_comments_spec.rb +1 -1
  370. data/spec/extensions/sql_expr_spec.rb +1 -1
  371. data/spec/extensions/static_cache_spec.rb +1 -1
  372. data/spec/extensions/string_agg_spec.rb +2 -2
  373. data/spec/extensions/string_date_time_spec.rb +1 -1
  374. data/spec/extensions/string_stripper_spec.rb +1 -1
  375. data/spec/extensions/subclasses_spec.rb +1 -1
  376. data/spec/extensions/subset_conditions_spec.rb +1 -1
  377. data/spec/extensions/symbol_aref_refinement_spec.rb +1 -1
  378. data/spec/extensions/symbol_as_refinement_spec.rb +1 -1
  379. data/spec/extensions/synchronize_sql_spec.rb +124 -0
  380. data/spec/extensions/table_select_spec.rb +4 -4
  381. data/spec/extensions/tactical_eager_loading_spec.rb +1 -6
  382. data/spec/extensions/thread_local_timezones_spec.rb +1 -1
  383. data/spec/extensions/timestamps_spec.rb +5 -7
  384. data/spec/extensions/to_dot_spec.rb +1 -1
  385. data/spec/extensions/touch_spec.rb +1 -1
  386. data/spec/extensions/tree_spec.rb +1 -1
  387. data/spec/extensions/typecast_on_load_spec.rb +1 -1
  388. data/spec/extensions/unlimited_update_spec.rb +1 -1
  389. data/spec/extensions/update_or_create_spec.rb +12 -16
  390. data/spec/extensions/update_primary_key_spec.rb +4 -3
  391. data/spec/extensions/update_refresh_spec.rb +1 -1
  392. data/spec/extensions/uuid_spec.rb +10 -13
  393. data/spec/extensions/validate_associated_spec.rb +1 -1
  394. data/spec/extensions/validation_class_methods_spec.rb +3 -3
  395. data/spec/extensions/validation_contexts_spec.rb +1 -1
  396. data/spec/extensions/validation_helpers_spec.rb +10 -44
  397. data/spec/extensions/whitelist_security_spec.rb +5 -5
  398. data/spec/extensions/xml_serializer_spec.rb +8 -13
  399. data/spec/guards_helper.rb +2 -1
  400. data/spec/integration/associations_test.rb +1 -23
  401. data/spec/integration/database_test.rb +7 -7
  402. data/spec/integration/dataset_test.rb +12 -47
  403. data/spec/integration/eager_loader_test.rb +1 -1
  404. data/spec/integration/migrator_test.rb +1 -1
  405. data/spec/integration/model_test.rb +4 -82
  406. data/spec/integration/plugin_test.rb +7 -23
  407. data/spec/integration/prepared_statement_test.rb +8 -88
  408. data/spec/integration/schema_test.rb +10 -10
  409. data/spec/integration/spec_helper.rb +17 -21
  410. data/spec/integration/timezone_test.rb +5 -5
  411. data/spec/integration/transaction_test.rb +3 -55
  412. data/spec/integration/type_test.rb +9 -9
  413. data/spec/model/association_reflection_spec.rb +24 -9
  414. data/spec/model/associations_spec.rb +124 -303
  415. data/spec/model/base_spec.rb +43 -137
  416. data/spec/model/class_dataset_methods_spec.rb +2 -20
  417. data/spec/model/dataset_methods_spec.rb +1 -20
  418. data/spec/model/eager_loading_spec.rb +48 -17
  419. data/spec/model/hooks_spec.rb +5 -300
  420. data/spec/model/inflector_spec.rb +1 -1
  421. data/spec/model/model_spec.rb +29 -339
  422. data/spec/model/plugins_spec.rb +2 -16
  423. data/spec/model/record_spec.rb +33 -129
  424. data/spec/model/spec_helper.rb +5 -15
  425. data/spec/model/validations_spec.rb +1 -1
  426. data/spec/sequel_warning.rb +1 -12
  427. metadata +19 -65
  428. data/doc/active_record.rdoc +0 -927
  429. data/lib/sequel/adapters/cubrid.rb +0 -160
  430. data/lib/sequel/adapters/do/mysql.rb +0 -69
  431. data/lib/sequel/adapters/do/postgres.rb +0 -46
  432. data/lib/sequel/adapters/do/sqlite3.rb +0 -41
  433. data/lib/sequel/adapters/do.rb +0 -166
  434. data/lib/sequel/adapters/jdbc/as400.rb +0 -92
  435. data/lib/sequel/adapters/jdbc/cubrid.rb +0 -65
  436. data/lib/sequel/adapters/jdbc/firebirdsql.rb +0 -37
  437. data/lib/sequel/adapters/jdbc/informix-sqli.rb +0 -34
  438. data/lib/sequel/adapters/jdbc/jdbcprogress.rb +0 -34
  439. data/lib/sequel/adapters/odbc/progress.rb +0 -12
  440. data/lib/sequel/adapters/shared/cubrid.rb +0 -245
  441. data/lib/sequel/adapters/shared/firebird.rb +0 -261
  442. data/lib/sequel/adapters/shared/informix.rb +0 -63
  443. data/lib/sequel/adapters/shared/progress.rb +0 -40
  444. data/lib/sequel/adapters/swift/mysql.rb +0 -50
  445. data/lib/sequel/adapters/swift/postgres.rb +0 -49
  446. data/lib/sequel/adapters/swift/sqlite.rb +0 -48
  447. data/lib/sequel/adapters/swift.rb +0 -169
  448. data/lib/sequel/adapters/utils/pg_types.rb +0 -4
  449. data/lib/sequel/dataset/mutation.rb +0 -98
  450. data/lib/sequel/extensions/_deprecated_identifier_mangling.rb +0 -117
  451. data/lib/sequel/extensions/empty_array_ignore_nulls.rb +0 -8
  452. data/lib/sequel/extensions/filter_having.rb +0 -65
  453. data/lib/sequel/extensions/hash_aliases.rb +0 -51
  454. data/lib/sequel/extensions/meta_def.rb +0 -37
  455. data/lib/sequel/extensions/query_literals.rb +0 -86
  456. data/lib/sequel/extensions/ruby18_symbol_extensions.rb +0 -26
  457. data/lib/sequel/extensions/sequel_3_dataset_methods.rb +0 -133
  458. data/lib/sequel/extensions/set_overrides.rb +0 -82
  459. data/lib/sequel/no_core_ext.rb +0 -4
  460. data/lib/sequel/plugins/association_autoreloading.rb +0 -11
  461. data/lib/sequel/plugins/identifier_columns.rb +0 -49
  462. data/lib/sequel/plugins/many_to_one_pk_lookup.rb +0 -11
  463. data/lib/sequel/plugins/pg_typecast_on_load.rb +0 -90
  464. data/lib/sequel/plugins/prepared_statements_associations.rb +0 -137
  465. data/lib/sequel/plugins/prepared_statements_with_pk.rb +0 -71
  466. data/lib/sequel/plugins/schema.rb +0 -84
  467. data/lib/sequel/plugins/scissors.rb +0 -37
  468. data/spec/core/dataset_mutation_spec.rb +0 -253
  469. data/spec/extensions/_deprecated_identifier_mangling_spec.rb +0 -314
  470. data/spec/extensions/before_after_save_spec.rb +0 -40
  471. data/spec/extensions/filter_having_spec.rb +0 -42
  472. data/spec/extensions/from_block_spec.rb +0 -21
  473. data/spec/extensions/hash_aliases_spec.rb +0 -26
  474. data/spec/extensions/identifier_columns_spec.rb +0 -19
  475. data/spec/extensions/meta_def_spec.rb +0 -35
  476. data/spec/extensions/no_auto_literal_strings_spec.rb +0 -69
  477. data/spec/extensions/pg_typecast_on_load_spec.rb +0 -70
  478. data/spec/extensions/prepared_statements_associations_spec.rb +0 -212
  479. data/spec/extensions/prepared_statements_with_pk_spec.rb +0 -40
  480. data/spec/extensions/query_literals_spec.rb +0 -185
  481. data/spec/extensions/schema_spec.rb +0 -123
  482. data/spec/extensions/scissors_spec.rb +0 -27
  483. data/spec/extensions/sequel_3_dataset_methods_spec.rb +0 -118
  484. data/spec/extensions/set_overrides_spec.rb +0 -75
@@ -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
@@ -1,6 +1,6 @@
1
1
  # frozen-string-literal: true
2
2
 
3
- Sequel.require 'adapters/shared/db2'
3
+ require_relative '../shared/db2'
4
4
 
5
5
  Sequel.synchronize do
6
6
  Sequel::ODBC::DATABASE_SETUP[:db2] = proc do |db|
@@ -1,6 +1,6 @@
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 ODBC
@@ -12,15 +12,10 @@ module Sequel
12
12
  end
13
13
  end
14
14
 
15
- # Database and Dataset instance methods for MSSQL specific
16
- # support via ODBC.
17
15
  module MSSQL
18
16
  module DatabaseMethods
19
17
  include Sequel::MSSQL::DatabaseMethods
20
- LAST_INSERT_ID_SQL='SELECT SCOPE_IDENTITY()'.freeze
21
- Sequel::Deprecation.deprecate_constant(self, :LAST_INSERT_ID_SQL)
22
-
23
- # Return the last inserted identity value.
18
+
24
19
  def execute_insert(sql, opts=OPTS)
25
20
  synchronize(opts[:server]) do |conn|
26
21
  begin
@@ -43,13 +38,10 @@ module Sequel
43
38
  class Dataset < ODBC::Dataset
44
39
  include Sequel::MSSQL::DatasetMethods
45
40
 
46
- # Use ODBC format, not Microsoft format, as the ODBC layer does
47
- # some translation. MSSQL version is over-ridden to allow 3 millisecond decimal places
48
- TIMESTAMP_FORMAT="{ts '%Y-%m-%d %H:%M:%S%N'}".freeze
49
- Sequel::Deprecation.deprecate_constant(self, :TIMESTAMP_FORMAT)
50
-
51
41
  private
52
42
 
43
+ # Use ODBC format, not Microsoft format, as the ODBC layer does
44
+ # some translation, but allow for millisecond precision.
53
45
  def default_timestamp_format
54
46
  "{ts '%Y-%m-%d %H:%M:%S%N'}"
55
47
  end
@@ -1,6 +1,6 @@
1
1
  # frozen-string-literal: true
2
2
 
3
- Sequel.require 'adapters/shared/oracle'
3
+ require_relative '../shared/oracle'
4
4
 
5
5
  Sequel.synchronize do
6
6
  Sequel::ODBC::DATABASE_SETUP[:oracle] = proc do |db|
@@ -11,13 +11,6 @@ module Sequel
11
11
  class Database < Sequel::Database
12
12
  set_adapter_scheme :odbc
13
13
 
14
- GUARDED_DRV_NAME = /^\{.+\}$/.freeze
15
- Sequel::Deprecation.deprecate_constant(self, :GUARDED_DRV_NAME)
16
- DRV_NAME_GUARDS = '{%s}'.freeze
17
- Sequel::Deprecation.deprecate_constant(self, :DRV_NAME_GUARDS)
18
- DISCONNECT_ERRORS = /\A08S01/.freeze
19
- Sequel::Deprecation.deprecate_constant(self, :DISCONNECT_ERRORS)
20
-
21
14
  def connect(server)
22
15
  opts = server_opts(server)
23
16
  conn = if opts.include?(:drvconnect)
@@ -93,18 +86,6 @@ module Sequel
93
86
  end
94
87
 
95
88
  class Dataset < Sequel::Dataset
96
- BOOL_TRUE = '1'.freeze
97
- Sequel::Deprecation.deprecate_constant(self, :BOOL_TRUE)
98
- BOOL_FALSE = '0'.freeze
99
- Sequel::Deprecation.deprecate_constant(self, :BOOL_FALSE)
100
- ODBC_DATE_FORMAT = "{d '%Y-%m-%d'}".freeze
101
- Sequel::Deprecation.deprecate_constant(self, :ODBC_DATE_FORMAT)
102
- TIMESTAMP_FORMAT="{ts '%Y-%m-%d %H:%M:%S'}".freeze
103
- Sequel::Deprecation.deprecate_constant(self, :TIMESTAMP_FORMAT)
104
-
105
- Database::DatasetClass = self
106
- Sequel::Deprecation.deprecate_constant(Database, :DatasetClass)
107
-
108
89
  def fetch_rows(sql)
109
90
  execute(sql) do |s|
110
91
  i = -1
@@ -1,7 +1,7 @@
1
1
  # frozen-string-literal: true
2
2
 
3
3
  require 'oci8'
4
- Sequel.require 'adapters/shared/oracle'
4
+ require_relative 'shared/oracle'
5
5
 
6
6
  module Sequel
7
7
  module Oracle
@@ -11,14 +11,15 @@ module Sequel
11
11
 
12
12
  # ORA-00028: your session has been killed
13
13
  # ORA-01012: not logged on
14
+ # ORA-02396: exceeded maximum idle time, please connect again
14
15
  # ORA-03113: end-of-file on communication channel
15
16
  # ORA-03114: not connected to ORACLE
16
- CONNECTION_ERROR_CODES = [ 28, 1012, 3113, 3114 ]#.freeze # SEQUEL5
17
+ CONNECTION_ERROR_CODES = [ 28, 1012, 2396, 3113, 3114 ].freeze
17
18
 
18
19
  ORACLE_TYPES = {
19
20
  :blob=>lambda{|b| Sequel::SQL::Blob.new(b.read)},
20
- :clob=>lambda(&:read)
21
- }#.freeze # SEQUEL5
21
+ :clob=>:read.to_proc
22
+ }.freeze
22
23
 
23
24
  # Hash of conversion procs for this database.
24
25
  attr_reader :conversion_procs
@@ -40,8 +41,8 @@ module Sequel
40
41
 
41
42
  # The ruby-oci8 gem which retrieves oracle columns with a type of
42
43
  # DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE is complex based on the
43
- # ruby version (1.9.2 or later) and Oracle version (9 or later)
44
- # In the now standard case of 1.9.2 and Oracle 9 or later, the timezone
44
+ # ruby version and Oracle version (9 or later)
45
+ # In the now standard case of Oracle 9 or later, the timezone
45
46
  # is determined by the Oracle session timezone. Thus if the user
46
47
  # requests Sequel provide UTC timezone to the application,
47
48
  # we need to alter the session timezone to be UTC
@@ -114,7 +115,7 @@ module Sequel
114
115
 
115
116
  PS_TYPES = {'string'=>String, 'integer'=>Integer, 'float'=>Float,
116
117
  'decimal'=>Float, 'date'=>Time, 'datetime'=>Time,
117
- 'time'=>Time, 'boolean'=>String, 'blob'=>OCI8::BLOB}#.freeze # SEQUEL5
118
+ 'time'=>Time, 'boolean'=>String, 'blob'=>OCI8::BLOB}.freeze
118
119
  def cursor_bind_params(conn, cursor, args)
119
120
  i = 0
120
121
  args.map do |arg, type|
@@ -324,12 +325,6 @@ module Sequel
324
325
  class Dataset < Sequel::Dataset
325
326
  include DatasetMethods
326
327
 
327
- Database::DatasetClass = self
328
- Sequel::Deprecation.deprecate_constant(Database, :DatasetClass)
329
-
330
- PREPARED_ARG_PLACEHOLDER = ':'.freeze
331
- Sequel::Deprecation.deprecate_constant(self, :PREPARED_ARG_PLACEHOLDER)
332
-
333
328
  # Oracle already supports named bind arguments, so use directly.
334
329
  module ArgumentMapper
335
330
  include Sequel::Dataset::ArgumentMapper