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,14 +1,6 @@
1
- require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
1
+ require_relative "spec_helper"
2
2
 
3
3
  describe "identifier_mangling extension" do
4
- after do
5
- deprecated do
6
- Sequel.quote_identifiers = false
7
- Sequel.identifier_input_method = nil
8
- Sequel.identifier_output_method = nil
9
- end
10
- end
11
-
12
4
  it "should respect the :quote_identifiers option" do
13
5
  db = Sequel::Database.new(:quote_identifiers=>false).extension(:identifier_mangling)
14
6
  db.quote_identifiers?.must_equal false
@@ -18,78 +10,37 @@ describe "identifier_mangling extension" do
18
10
 
19
11
  it "should respect the :quote_identifiers setting" do
20
12
  db = Sequel::Database.new.extension(:identifier_mangling)
21
- db.quote_identifiers?.must_equal false
22
- db.quote_identifiers = true
23
13
  db.quote_identifiers?.must_equal true
14
+ db.quote_identifiers = false
15
+ db.quote_identifiers?.must_equal false
24
16
  end
25
17
 
26
18
  it "should upcase on input and downcase on output by default" do
27
- # SEQUEL5: Remove :identifier_mangling=>false
28
- db = Sequel::Database.new(:identifier_mangling=>false).extension(:identifier_mangling)
19
+ db = Sequel::Database.new.extension(:identifier_mangling)
29
20
  db.send(:identifier_input_method_default).must_equal :upcase
30
21
  db.send(:identifier_output_method_default).must_equal :downcase
31
22
  end
32
23
 
33
24
  it "should respect the :identifier_input_method option" do
34
25
  db = Sequel::Database.new.extension(:identifier_mangling)
35
- db.identifier_input_method.must_be_nil
36
- db.identifier_input_method = :downcase
37
- db.identifier_input_method.must_equal :downcase
38
- db = Sequel::Database.new(:identifier_input_method=>nil).extension(:identifier_mangling)
39
- db.identifier_input_method.must_be_nil
40
- db.identifier_input_method = :downcase
41
- db.identifier_input_method.must_equal :downcase
42
- db = Sequel::Database.new(:identifier_input_method=>:upcase).extension(:identifier_mangling)
43
26
  db.identifier_input_method.must_equal :upcase
44
27
  db.identifier_input_method = nil
45
28
  db.identifier_input_method.must_be_nil
46
- end
47
-
48
- deprecated "should default to Sequel.identifier_input_method" do
49
- Sequel.identifier_input_method = :downcase
50
- Sequel::Database.identifier_input_method.must_equal :downcase
51
- db = Sequel::Database.new.extension(:identifier_mangling)
52
- db.identifier_input_method.must_equal :downcase
53
- db.identifier_input_method = :upcase
54
- db.identifier_input_method.must_equal :upcase
55
29
  db = Sequel::Database.new(:identifier_input_method=>nil).extension(:identifier_mangling)
56
30
  db.identifier_input_method.must_be_nil
57
- db.identifier_input_method = :upcase
58
- db.identifier_input_method.must_equal :upcase
31
+ db.identifier_input_method = :downcase
32
+ db.identifier_input_method.must_equal :downcase
59
33
  db = Sequel::Database.new(:identifier_input_method=>:upcase).extension(:identifier_mangling)
60
34
  db.identifier_input_method.must_equal :upcase
61
35
  db.identifier_input_method = nil
62
36
  db.identifier_input_method.must_be_nil
63
- Sequel.identifier_input_method = nil
64
- Sequel::Database.identifier_input_method.must_equal false
65
- db = Sequel::Database.new.extension(:identifier_mangling)
66
- db.identifier_input_method.must_be_nil
67
- db.identifier_input_method = :upcase
68
- db.identifier_input_method.must_equal :upcase
69
37
  end
70
38
 
71
39
  it "should respect the :identifier_output_method option" do
72
40
  db = Sequel::Database.new.extension(:identifier_mangling)
73
- db.identifier_output_method.must_be_nil
74
- db.identifier_output_method = :upcase
75
- db.identifier_output_method.must_equal :upcase
76
- db = Sequel::Database.new(:identifier_output_method=>nil).extension(:identifier_mangling)
77
- db.identifier_output_method.must_be_nil
78
- db.identifier_output_method = :downcase
79
41
  db.identifier_output_method.must_equal :downcase
80
- db = Sequel::Database.new(:identifier_output_method=>:upcase).extension(:identifier_mangling)
81
- db.identifier_output_method.must_equal :upcase
82
42
  db.identifier_output_method = nil
83
43
  db.identifier_output_method.must_be_nil
84
- end
85
-
86
- deprecated "should default to Sequel.identifier_output_method" do
87
- Sequel.identifier_output_method = :upcase
88
- Sequel::Database.identifier_output_method.must_equal :upcase
89
- db = Sequel::Database.new.extension(:identifier_mangling)
90
- db.identifier_output_method.must_equal :upcase
91
- db.identifier_output_method = :downcase
92
- db.identifier_output_method.must_equal :downcase
93
44
  db = Sequel::Database.new(:identifier_output_method=>nil).extension(:identifier_mangling)
94
45
  db.identifier_output_method.must_be_nil
95
46
  db.identifier_output_method = :downcase
@@ -98,56 +49,8 @@ describe "identifier_mangling extension" do
98
49
  db.identifier_output_method.must_equal :upcase
99
50
  db.identifier_output_method = nil
100
51
  db.identifier_output_method.must_be_nil
101
- Sequel.identifier_output_method = nil
102
- Sequel::Database.identifier_output_method.must_equal false
103
- db = Sequel::Database.new.extension(:identifier_mangling)
104
- db.identifier_output_method.must_be_nil
105
- db.identifier_output_method = :downcase
106
- db.identifier_output_method.must_equal :downcase
107
- end
108
-
109
- deprecated "should use the default Sequel.quote_identifiers value" do
110
- Sequel.quote_identifiers = true
111
- Sequel::Database.new.extension(:identifier_mangling).quote_identifiers?.must_equal true
112
- Sequel.quote_identifiers = false
113
- Sequel::Database.new.extension(:identifier_mangling).quote_identifiers?.must_equal false
114
- Sequel::Database.quote_identifiers = true
115
- Sequel::Database.new.extension(:identifier_mangling).quote_identifiers?.must_equal true
116
- Sequel::Database.quote_identifiers = false
117
- Sequel::Database.new.extension(:identifier_mangling).quote_identifiers?.must_equal false
118
- end
119
-
120
- deprecated "should use the default Sequel.identifier_input_method value" do
121
- Sequel.identifier_input_method = :downcase
122
- Sequel::Database.new.extension(:identifier_mangling).identifier_input_method.must_equal :downcase
123
- Sequel.identifier_input_method = :upcase
124
- Sequel::Database.new.extension(:identifier_mangling).identifier_input_method.must_equal :upcase
125
- Sequel::Database.identifier_input_method = :downcase
126
- Sequel::Database.new.extension(:identifier_mangling).identifier_input_method.must_equal :downcase
127
- Sequel::Database.identifier_input_method = :upcase
128
- Sequel::Database.new.extension(:identifier_mangling).identifier_input_method.must_equal :upcase
129
- end
130
-
131
- deprecated "should use the default Sequel.identifier_output_method value" do
132
- Sequel.identifier_output_method = :downcase
133
- Sequel::Database.new.extension(:identifier_mangling).identifier_output_method.must_equal :downcase
134
- Sequel.identifier_output_method = :upcase
135
- Sequel::Database.new.extension(:identifier_mangling).identifier_output_method.must_equal :upcase
136
- Sequel::Database.identifier_output_method = :downcase
137
- Sequel::Database.new.extension(:identifier_mangling).identifier_output_method.must_equal :downcase
138
- Sequel::Database.identifier_output_method = :upcase
139
- Sequel::Database.new.extension(:identifier_mangling).identifier_output_method.must_equal :upcase
140
52
  end
141
53
 
142
- deprecated "should respect the quote_indentifiers_default method if Sequel.quote_identifiers = nil" do
143
- Sequel.quote_identifiers = nil
144
- Sequel::Database.new.extension(:identifier_mangling).quote_identifiers?.must_equal true
145
- x = Class.new(Sequel::Database){def dataset_class_default; Sequel::Dataset end; def quote_identifiers_default; false end}
146
- x.new.extension(:identifier_mangling).quote_identifiers?.must_equal false
147
- y = Class.new(Sequel::Database){def dataset_class_default; Sequel::Dataset end; def quote_identifiers_default; true end}
148
- y.new.extension(:identifier_mangling).quote_identifiers?.must_equal true
149
- end
150
-
151
54
  it "should respect the identifier_input_method_default method if Sequel.identifier_input_method is not called" do
152
55
  class Sequel::Database
153
56
  @identifier_input_method = nil
@@ -172,6 +75,7 @@ end
172
75
  describe "Database#input_identifier_meth" do
173
76
  it "should be the input_identifer method of a default dataset for this database" do
174
77
  db = Sequel::Database.new.extension(:identifier_mangling)
78
+ db.identifier_input_method = nil
175
79
  db.send(:input_identifier_meth).call(:a).must_equal 'a'
176
80
  db.identifier_input_method = :upcase
177
81
  db.send(:input_identifier_meth).call(:a).must_equal 'A'
@@ -181,6 +85,7 @@ end
181
85
  describe "Database#output_identifier_meth" do
182
86
  it "should be the output_identifer method of a default dataset for this database" do
183
87
  db = Sequel::Database.new.extension(:identifier_mangling)
88
+ db.identifier_output_method = nil
184
89
  db.send(:output_identifier_meth).call('A').must_equal :A
185
90
  db.identifier_output_method = :downcase
186
91
  db.send(:output_identifier_meth).call('A').must_equal :a
@@ -190,7 +95,7 @@ end
190
95
  describe "Database#metadata_dataset" do
191
96
  it "should be a dataset with the default settings for identifier_mangling" do
192
97
  ds = Sequel::Database.new.extension(:identifier_mangling).send(:metadata_dataset)
193
- ds.literal(:a).must_equal 'A'
98
+ ds.literal(:a).must_equal "\"A\""
194
99
  ds.send(:output_identifier, 'A').must_equal :a
195
100
  end
196
101
  end
@@ -221,35 +126,6 @@ describe "Dataset" do
221
126
  db[:a].identifier_output_method.must_equal :downcase
222
127
  end
223
128
 
224
- # SEQUEL5: Remove
225
- unless Sequel.mock(:identifier_mangling=>true).dataset.frozen?
226
- deprecated "should have quote_identifiers= method which changes literalization of identifiers" do
227
- @dataset.quote_identifiers = true
228
- @dataset.literal(:a).must_equal '"a"'
229
- @dataset.quote_identifiers = false
230
- @dataset.literal(:a).must_equal 'a'
231
- end
232
-
233
- deprecated "should have identifier_input_method= method which changes literalization of identifiers" do
234
- @dataset.identifier_input_method = :upcase
235
- @dataset.literal(:a).must_equal 'A'
236
- @dataset.identifier_input_method = :downcase
237
- @dataset.literal(:A).must_equal 'a'
238
- @dataset.identifier_input_method = :reverse
239
- @dataset.literal(:at_b).must_equal 'b_ta'
240
- end
241
-
242
- deprecated "should have identifier_output_method= method which changes identifiers returned from the database" do
243
- @dataset.send(:output_identifier, "at_b_C").must_equal :at_b_C
244
- @dataset.identifier_output_method = :upcase
245
- @dataset.send(:output_identifier, "at_b_C").must_equal :AT_B_C
246
- @dataset.identifier_output_method = :downcase
247
- @dataset.send(:output_identifier, "at_b_C").must_equal :at_b_c
248
- @dataset.identifier_output_method = :reverse
249
- @dataset.send(:output_identifier, "at_b_C").must_equal :C_b_ta
250
- end
251
- end
252
-
253
129
  it "should have with_quote_identifiers method which returns cloned dataset with changed literalization of identifiers" do
254
130
  @dataset.with_quote_identifiers(true).literal(:a).must_equal '"a"'
255
131
  @dataset.with_quote_identifiers(false).literal(:a).must_equal 'a'
@@ -285,45 +161,16 @@ describe "Dataset" do
285
161
  end
286
162
  end
287
163
 
288
- describe "Frozen Datasets" do
289
- before do
290
- @ds = Sequel.mock(:identifier_mangling=>true)[:test].freeze
291
- end
292
-
293
- deprecated "should raise an error when calling mutation methods" do
294
- proc{@ds.identifier_input_method = :a}.must_raise RuntimeError
295
- proc{@ds.identifier_output_method = :a}.must_raise RuntimeError
296
- proc{@ds.quote_identifiers = false}.must_raise RuntimeError
297
- end
298
- end
299
-
300
164
  describe "identifier_mangling extension" do
301
165
  it "should be able to load dialects based on the database name" do
302
- begin
303
- qi, ii, io = nil
304
- deprecated do
305
- qi = class Sequel::Database; @quote_identifiers; end
306
- ii = class Sequel::Database; @identifier_input_method; end
307
- io = class Sequel::Database; @identifier_output_method; end
308
- Sequel.quote_identifiers = nil
309
- class Sequel::Database; @identifier_input_method=nil; end
310
- class Sequel::Database; @identifier_output_method=nil; end
311
- end
312
- Sequel.mock(:host=>'access').select(Date.new(2011, 12, 13)).sql.must_equal 'SELECT #2011-12-13#'
313
- Sequel.mock(:host=>'db2').select(1).sql.must_equal 'SELECT 1 FROM "SYSIBM"."SYSDUMMY1"'
314
- Sequel.mock(:host=>'mssql')[:a].full_text_search(:b, 'c').sql.must_equal "SELECT * FROM [A] WHERE (CONTAINS ([B], 'c'))"
315
- Sequel.mock(:host=>'mysql')[:a].full_text_search(:b, 'c').sql.must_equal "SELECT * FROM `a` WHERE (MATCH (`b`) AGAINST ('c'))"
316
- Sequel.mock(:host=>'oracle')[:a].limit(1).sql.must_equal 'SELECT * FROM (SELECT * FROM "A") "T1" WHERE (ROWNUM <= 1)'
317
- Sequel.mock(:host=>'postgres')[:a].full_text_search(:b, 'c').sql.must_equal "SELECT * FROM \"a\" WHERE (to_tsvector(CAST('simple' AS regconfig), (COALESCE(\"b\", ''))) @@ to_tsquery(CAST('simple' AS regconfig), 'c'))"
318
- Sequel.mock(:host=>'sqlanywhere').from(:a).offset(1).sql.must_equal 'SELECT TOP 2147483647 START AT (1 + 1) * FROM "A"'
319
- Sequel.mock(:host=>'sqlite')[Sequel[:a].as(:b)].sql.must_equal "SELECT * FROM `a` AS 'b'"
320
- ensure
321
- deprecated do
322
- Sequel.quote_identifiers = qi
323
- Sequel::Database.send(:instance_variable_set, :@identifier_input_method, ii)
324
- Sequel::Database.send(:instance_variable_set, :@identifier_output_method, io)
325
- end
326
- end
166
+ Sequel.mock(:host=>'access').select(Date.new(2011, 12, 13)).sql.must_equal 'SELECT #2011-12-13#'
167
+ Sequel.mock(:host=>'db2').select(1).sql.must_equal 'SELECT 1 FROM "SYSIBM"."SYSDUMMY1"'
168
+ Sequel.mock(:host=>'mssql')[:a].full_text_search(:b, 'c').sql.must_equal "SELECT * FROM [A] WHERE (CONTAINS ([B], 'c'))"
169
+ Sequel.mock(:host=>'mysql')[:a].full_text_search(:b, 'c').sql.must_equal "SELECT * FROM `a` WHERE (MATCH (`b`) AGAINST ('c'))"
170
+ Sequel.mock(:host=>'oracle')[:a].limit(1).sql.must_equal 'SELECT * FROM (SELECT * FROM "A") "T1" WHERE (ROWNUM <= 1)'
171
+ Sequel.mock(:host=>'postgres')[:a].full_text_search(:b, 'c').sql.must_equal "SELECT * FROM \"a\" WHERE (to_tsvector(CAST('simple' AS regconfig), (COALESCE(\"b\", ''))) @@ to_tsquery(CAST('simple' AS regconfig), 'c'))"
172
+ Sequel.mock(:host=>'sqlanywhere').from(:a).offset(1).sql.must_equal 'SELECT TOP 2147483647 START AT (1 + 1) * FROM "A"'
173
+ Sequel.mock(:host=>'sqlite')[Sequel[:a].as(:b)].sql.must_equal "SELECT * FROM `a` AS 'b'"
327
174
  end
328
175
  end
329
176
 
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
1
+ require_relative "spec_helper"
2
2
 
3
3
  describe "Sequel::Dataset::ImplicitSubquery" do
4
4
  it "should implicitly use a subquery for most dataset query methods" do
@@ -9,10 +9,6 @@ describe "Sequel::Dataset::ImplicitSubquery" do
9
9
  ods = db[:c]
10
10
  ods.columns(:id, :b)
11
11
 
12
- deprecated do
13
- ds.and(:c).sql.must_equal "SELECT * FROM (SELECT * FROM table) AS t1 WHERE c"
14
- ds.exclude_where(:c).sql.must_equal "SELECT * FROM (SELECT * FROM table) AS t1 WHERE NOT c"
15
- end
16
12
  ds.cross_join(:c).sql.must_equal "SELECT * FROM (SELECT * FROM table) AS t1 CROSS JOIN c"
17
13
  ds.distinct.sql.must_equal "SELECT DISTINCT * FROM (SELECT * FROM table) AS t1"
18
14
  ds.except(ods).sql.must_equal "SELECT * FROM (SELECT * FROM (SELECT * FROM table) AS t1 EXCEPT SELECT * FROM c) AS t1"
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(File.expand_path(__FILE__)), 'spec_helper')
1
+ require_relative "spec_helper"
2
2
 
3
3
  Sequel.extension :inflector
4
4
 
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
1
+ require_relative "spec_helper"
2
2
 
3
3
  describe "Sequel::Plugins::InputTransformer" do
4
4
  before do
@@ -15,6 +15,12 @@ describe "Sequel::Plugins::InputTransformer" do
15
15
  @o.name.must_equal [1, 2, 3]
16
16
  end
17
17
 
18
+ it "should have working .input_transformer_order" do
19
+ @c.input_transformer_order.must_equal [:reverser]
20
+ @c.plugin(:input_transformer, :reverser2){|v| v.is_a?(String) ? v.reverse : v}
21
+ @c.input_transformer_order.must_equal [:reverser2, :reverser]
22
+ end
23
+
18
24
  it "should not apply any transformers by default" do
19
25
  c = Class.new(Sequel::Model)
20
26
  c.columns :name, :b
@@ -56,7 +62,6 @@ describe "Sequel::Plugins::InputTransformer" do
56
62
  @c.skip_input_transformer :reverser, :name
57
63
  @c.freeze
58
64
  @c.input_transformers.frozen?.must_equal true
59
- @c.input_transformer_order.frozen?.must_equal true
60
65
  skip = @c.instance_variable_get(:@skip_input_transformer_columns)
61
66
  skip.frozen?.must_equal true
62
67
  skip.values.all?(&:frozen?).must_equal true
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
1
+ require_relative "spec_helper"
2
2
 
3
3
  describe "Sequel::Plugins::InsertReturningSelect" do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
1
+ require_relative "spec_helper"
2
2
 
3
3
  describe "instance_filters plugin" do
4
4
  before do
@@ -1,4 +1,4 @@
1
- require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
1
+ require_relative "spec_helper"
2
2
 
3
3
  describe "InstanceHooks plugin" do
4
4
  def r(x=nil)
@@ -25,17 +25,6 @@ describe "InstanceHooks plugin" do
25
25
  @r.must_equal [4, 2, 1, 3]
26
26
  end
27
27
 
28
- deprecated "should cancel the save if before_create_hook block returns false" do
29
- @o.after_create_hook{r 1}
30
- @o.before_create_hook{r false}
31
- @o.before_create_hook{r 4}
32
- @o.save.must_be_nil
33
- @r.must_equal [4, false]
34
- @r.clear
35
- @o.save.must_be_nil
36
- @r.must_equal [4, false]
37
- end
38
-
39
28
  it "should cancel the save if before_create_hook block calls cancel_action" do
40
29
  @o.after_create_hook{r 1}
41
30
  @o.before_create_hook{r{@o.cancel_action}}
@@ -58,17 +47,6 @@ describe "InstanceHooks plugin" do
58
47
  @r.must_equal [4, 2, 1, 3]
59
48
  end
60
49
 
61
- deprecated "should cancel the save if before_update_hook block returns false" do
62
- @x.after_update_hook{r 1}
63
- @x.before_update_hook{r false}
64
- @x.before_update_hook{r 4}
65
- @x.save.must_be_nil
66
- @r.must_equal [4, false]
67
- @r.clear
68
- @x.save.must_be_nil
69
- @r.must_equal [4, false]
70
- end
71
-
72
50
  it "should cancel the save if before_update_hook block calls cancel_action" do
73
51
  @x.after_update_hook{r 1}
74
52
  @x.before_update_hook{r{@x.cancel_action}}
@@ -99,24 +77,6 @@ describe "InstanceHooks plugin" do
99
77
  @r.must_equal [4, 2, 1, 3]
100
78
  end
101
79
 
102
- deprecated "should cancel the save if before_save_hook block returns false" do
103
- @x.after_save_hook{r 1}
104
- @x.before_save_hook{r false}
105
- @x.before_save_hook{r 4}
106
- @x.save.must_be_nil
107
- @r.must_equal [4, false]
108
- @r.clear
109
-
110
- @x.after_save_hook{r 1}
111
- @x.before_save_hook{r false}
112
- @x.before_save_hook{r 4}
113
- @x.save.must_be_nil
114
- @r.must_equal [4, false]
115
- @r.clear
116
- @x.save.must_be_nil
117
- @r.must_equal [4, false]
118
- end
119
-
120
80
  it "should cancel the save if before_save_hook block calls cancel_action" do
121
81
  @x.after_save_hook{r 1}
122
82
  @x.before_save_hook{r{@x.cancel_action}}
@@ -144,14 +104,6 @@ describe "InstanceHooks plugin" do
144
104
  @r.must_equal [4, 2, 1, 3]
145
105
  end
146
106
 
147
- deprecated "should cancel the destroy if before_destroy_hook block returns false" do
148
- @x.after_destroy_hook{r 1}
149
- @x.before_destroy_hook{r false}
150
- @x.before_destroy_hook{r 4}
151
- @x.destroy.must_be_nil
152
- @r.must_equal [4, false]
153
- end
154
-
155
107
  it "should cancel the destroy if before_destroy_hook block calls cancel_action" do
156
108
  @x.after_destroy_hook{r 1}
157
109
  @x.before_destroy_hook{r{@x.cancel_action}}
@@ -169,17 +121,6 @@ describe "InstanceHooks plugin" do
169
121
  @r.must_equal [4, 2, 1, 3]
170
122
  end
171
123
 
172
- deprecated "should cancel the save if before_validation_hook block returns false" do
173
- @o.after_validation_hook{r 1}
174
- @o.before_validation_hook{r false}
175
- @o.before_validation_hook{r 4}
176
- @o.valid?.must_equal false
177
- @r.must_equal [4, false]
178
- @r.clear
179
- @o.valid?.must_equal false
180
- @r.must_equal [4, false]
181
- end
182
-
183
124
  it "should cancel the save if before_validation_hook block calls cancel_action" do
184
125
  @o.after_validation_hook{r 1}
185
126
  @o.before_validation_hook{r{@o.cancel_action}}
@@ -289,34 +230,6 @@ describe "InstanceHooks plugin with transactions" do
289
230
  @db.sqls
290
231
  end
291
232
 
292
- deprecated "should support after_commit_hook" do
293
- @o.after_commit_hook{@db.execute('ac1')}
294
- @o.after_commit_hook{@db.execute('ac2')}
295
- @o.save.wont_equal nil
296
- @db.sqls.must_equal ['BEGIN', 'as', 'COMMIT', 'ac1', 'ac2']
297
- end
298
-
299
- deprecated "should support after_rollback_hook" do
300
- @or.after_rollback_hook{@db.execute('ar1')}
301
- @or.after_rollback_hook{@db.execute('ar2')}
302
- @or.save.must_be_nil
303
- @db.sqls.must_equal ['BEGIN', 'as', 'ROLLBACK', 'ar1', 'ar2']
304
- end
305
-
306
- deprecated "should support after_destroy_commit_hook" do
307
- @o.after_destroy_commit_hook{@db.execute('adc1')}
308
- @o.after_destroy_commit_hook{@db.execute('adc2')}
309
- @o.destroy.wont_equal nil
310
- @db.sqls.must_equal ['BEGIN', "DELETE FROM items WHERE (id = 1)", 'ad', 'COMMIT', 'adc1', 'adc2']
311
- end
312
-
313
- deprecated "should support after_destroy_rollback_hook" do
314
- @or.after_destroy_rollback_hook{@db.execute('adr1')}
315
- @or.after_destroy_rollback_hook{@db.execute('adr2')}
316
- @or.destroy.must_be_nil
317
- @db.sqls.must_equal ['BEGIN', "DELETE FROM items WHERE (id = 1)", 'ad', 'ROLLBACK', 'adr1', 'adr2']
318
- end
319
-
320
233
  it "should have *_hook methods return self "do
321
234
  @o.before_destroy_hook{r 1}.must_be_same_as(@o)
322
235
  @o.before_validation_hook{r 1}.must_be_same_as(@o)
@@ -329,12 +242,5 @@ describe "InstanceHooks plugin with transactions" do
329
242
  @o.after_save_hook{r 1}.must_be_same_as(@o)
330
243
  @o.after_update_hook{r 1}.must_be_same_as(@o)
331
244
  @o.after_create_hook{r 1}.must_be_same_as(@o)
332
- deprecated do
333
- @o.after_commit_hook{r 1}.must_be_same_as(@o)
334
- @o.after_rollback_hook{r 1}.must_be_same_as(@o)
335
- @o.after_destroy_commit_hook{r 1}.must_be_same_as(@o)
336
- @o.after_destroy_rollback_hook{r 1}.must_be_same_as(@o)
337
- end
338
245
  end
339
-
340
246
  end