sequel 3.21.0 → 3.36.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 (311) hide show
  1. data/CHANGELOG +855 -3
  2. data/MIT-LICENSE +1 -1
  3. data/README.rdoc +23 -7
  4. data/Rakefile +42 -24
  5. data/bin/sequel +26 -8
  6. data/doc/active_record.rdoc +1 -0
  7. data/doc/advanced_associations.rdoc +171 -11
  8. data/doc/association_basics.rdoc +293 -43
  9. data/doc/dataset_basics.rdoc +5 -5
  10. data/doc/dataset_filtering.rdoc +8 -0
  11. data/doc/mass_assignment.rdoc +56 -0
  12. data/doc/migration.rdoc +85 -552
  13. data/doc/model_hooks.rdoc +78 -27
  14. data/doc/object_model.rdoc +541 -0
  15. data/doc/opening_databases.rdoc +97 -50
  16. data/doc/prepared_statements.rdoc +40 -14
  17. data/doc/querying.rdoc +28 -4
  18. data/doc/reflection.rdoc +30 -4
  19. data/doc/release_notes/3.22.0.txt +39 -0
  20. data/doc/release_notes/3.23.0.txt +172 -0
  21. data/doc/release_notes/3.24.0.txt +420 -0
  22. data/doc/release_notes/3.25.0.txt +88 -0
  23. data/doc/release_notes/3.26.0.txt +88 -0
  24. data/doc/release_notes/3.27.0.txt +82 -0
  25. data/doc/release_notes/3.28.0.txt +304 -0
  26. data/doc/release_notes/3.29.0.txt +459 -0
  27. data/doc/release_notes/3.30.0.txt +135 -0
  28. data/doc/release_notes/3.31.0.txt +146 -0
  29. data/doc/release_notes/3.32.0.txt +202 -0
  30. data/doc/release_notes/3.33.0.txt +157 -0
  31. data/doc/release_notes/3.34.0.txt +671 -0
  32. data/doc/release_notes/3.35.0.txt +144 -0
  33. data/doc/release_notes/3.36.0.txt +245 -0
  34. data/doc/schema_modification.rdoc +572 -0
  35. data/doc/sharding.rdoc +95 -3
  36. data/doc/testing.rdoc +129 -0
  37. data/doc/thread_safety.rdoc +17 -0
  38. data/doc/transactions.rdoc +137 -0
  39. data/doc/virtual_rows.rdoc +51 -2
  40. data/lib/sequel/adapters/ado/mssql.rb +18 -6
  41. data/lib/sequel/adapters/ado.rb +40 -18
  42. data/lib/sequel/adapters/amalgalite.rb +17 -9
  43. data/lib/sequel/adapters/db2.rb +175 -86
  44. data/lib/sequel/adapters/dbi.rb +15 -15
  45. data/lib/sequel/adapters/do/mysql.rb +17 -11
  46. data/lib/sequel/adapters/do/postgres.rb +1 -57
  47. data/lib/sequel/adapters/do/sqlite.rb +0 -10
  48. data/lib/sequel/adapters/do.rb +18 -36
  49. data/lib/sequel/adapters/firebird.rb +27 -208
  50. data/lib/sequel/adapters/ibmdb.rb +453 -0
  51. data/lib/sequel/adapters/informix.rb +6 -23
  52. data/lib/sequel/adapters/jdbc/as400.rb +16 -34
  53. data/lib/sequel/adapters/jdbc/db2.rb +47 -0
  54. data/lib/sequel/adapters/jdbc/derby.rb +287 -0
  55. data/lib/sequel/adapters/jdbc/firebird.rb +24 -0
  56. data/lib/sequel/adapters/jdbc/h2.rb +73 -31
  57. data/lib/sequel/adapters/jdbc/hsqldb.rb +184 -0
  58. data/lib/sequel/adapters/jdbc/informix.rb +21 -0
  59. data/lib/sequel/adapters/jdbc/jtds.rb +29 -0
  60. data/lib/sequel/adapters/jdbc/mssql.rb +3 -33
  61. data/lib/sequel/adapters/jdbc/mysql.rb +7 -24
  62. data/lib/sequel/adapters/jdbc/oracle.rb +88 -25
  63. data/lib/sequel/adapters/jdbc/postgresql.rb +58 -48
  64. data/lib/sequel/adapters/jdbc/progress.rb +21 -0
  65. data/lib/sequel/adapters/jdbc/sqlite.rb +20 -10
  66. data/lib/sequel/adapters/jdbc/sqlserver.rb +66 -0
  67. data/lib/sequel/adapters/jdbc/transactions.rb +83 -0
  68. data/lib/sequel/adapters/jdbc.rb +265 -94
  69. data/lib/sequel/adapters/mock.rb +361 -0
  70. data/lib/sequel/adapters/mysql.rb +118 -222
  71. data/lib/sequel/adapters/mysql2.rb +58 -57
  72. data/lib/sequel/adapters/odbc/mssql.rb +15 -7
  73. data/lib/sequel/adapters/odbc.rb +28 -9
  74. data/lib/sequel/adapters/openbase.rb +3 -5
  75. data/lib/sequel/adapters/oracle.rb +349 -53
  76. data/lib/sequel/adapters/postgres.rb +356 -107
  77. data/lib/sequel/adapters/shared/access.rb +32 -9
  78. data/lib/sequel/adapters/shared/db2.rb +342 -0
  79. data/lib/sequel/adapters/shared/firebird.rb +221 -0
  80. data/lib/sequel/adapters/shared/informix.rb +53 -0
  81. data/lib/sequel/adapters/shared/mssql.rb +335 -118
  82. data/lib/sequel/adapters/shared/mysql.rb +340 -76
  83. data/lib/sequel/adapters/shared/mysql_prepared_statements.rb +155 -0
  84. data/lib/sequel/adapters/shared/oracle.rb +243 -45
  85. data/lib/sequel/adapters/shared/postgres.rb +524 -279
  86. data/lib/sequel/adapters/shared/progress.rb +5 -8
  87. data/lib/sequel/adapters/shared/sqlite.rb +265 -89
  88. data/lib/sequel/adapters/sqlite.rb +101 -39
  89. data/lib/sequel/adapters/swift/mysql.rb +9 -12
  90. data/lib/sequel/adapters/swift/postgres.rb +9 -74
  91. data/lib/sequel/adapters/swift/sqlite.rb +8 -6
  92. data/lib/sequel/adapters/swift.rb +8 -7
  93. data/lib/sequel/adapters/tinytds.rb +161 -21
  94. data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +66 -0
  95. data/lib/sequel/adapters/utils/stored_procedures.rb +1 -11
  96. data/lib/sequel/ast_transformer.rb +194 -0
  97. data/lib/sequel/connection_pool/sharded_single.rb +11 -1
  98. data/lib/sequel/connection_pool/sharded_threaded.rb +28 -2
  99. data/lib/sequel/connection_pool/single.rb +5 -0
  100. data/lib/sequel/connection_pool/threaded.rb +38 -14
  101. data/lib/sequel/connection_pool.rb +10 -2
  102. data/lib/sequel/core.rb +118 -11
  103. data/lib/sequel/database/connecting.rb +38 -28
  104. data/lib/sequel/database/dataset.rb +4 -4
  105. data/lib/sequel/database/dataset_defaults.rb +63 -2
  106. data/lib/sequel/database/logging.rb +7 -2
  107. data/lib/sequel/database/misc.rb +150 -46
  108. data/lib/sequel/database/query.rb +215 -65
  109. data/lib/sequel/database/schema_generator.rb +64 -20
  110. data/lib/sequel/database/schema_methods.rb +212 -54
  111. data/lib/sequel/dataset/actions.rb +322 -85
  112. data/lib/sequel/dataset/features.rb +96 -8
  113. data/lib/sequel/dataset/graph.rb +38 -11
  114. data/lib/sequel/dataset/misc.rb +50 -23
  115. data/lib/sequel/dataset/mutation.rb +12 -7
  116. data/lib/sequel/dataset/prepared_statements.rb +68 -30
  117. data/lib/sequel/dataset/query.rb +237 -44
  118. data/lib/sequel/dataset/sql.rb +698 -278
  119. data/lib/sequel/dataset.rb +8 -0
  120. data/lib/sequel/exceptions.rb +4 -0
  121. data/lib/sequel/extensions/_pretty_table.rb +79 -0
  122. data/lib/sequel/extensions/arbitrary_servers.rb +108 -0
  123. data/lib/sequel/extensions/columns_introspection.rb +61 -0
  124. data/lib/sequel/{core_sql.rb → extensions/core_extensions.rb} +16 -34
  125. data/lib/sequel/extensions/migration.rb +97 -11
  126. data/lib/sequel/extensions/named_timezones.rb +5 -0
  127. data/lib/sequel/extensions/null_dataset.rb +90 -0
  128. data/lib/sequel/extensions/pg_array.rb +460 -0
  129. data/lib/sequel/extensions/pg_array_ops.rb +220 -0
  130. data/lib/sequel/extensions/pg_auto_parameterize.rb +169 -0
  131. data/lib/sequel/extensions/pg_hstore.rb +296 -0
  132. data/lib/sequel/extensions/pg_hstore_ops.rb +259 -0
  133. data/lib/sequel/extensions/pg_inet.rb +89 -0
  134. data/lib/sequel/extensions/pg_json.rb +178 -0
  135. data/lib/sequel/extensions/pg_statement_cache.rb +316 -0
  136. data/lib/sequel/extensions/pretty_table.rb +5 -71
  137. data/lib/sequel/extensions/query.rb +1 -1
  138. data/lib/sequel/extensions/query_literals.rb +79 -0
  139. data/lib/sequel/extensions/schema_caching.rb +76 -0
  140. data/lib/sequel/extensions/schema_dumper.rb +251 -37
  141. data/lib/sequel/extensions/select_remove.rb +35 -0
  142. data/lib/sequel/extensions/server_block.rb +139 -0
  143. data/lib/sequel/extensions/sql_expr.rb +4 -110
  144. data/lib/sequel/extensions/thread_local_timezones.rb +1 -1
  145. data/lib/sequel/extensions/to_dot.rb +95 -83
  146. data/lib/sequel/model/associations.rb +1187 -393
  147. data/lib/sequel/model/base.rb +578 -170
  148. data/lib/sequel/model/errors.rb +1 -1
  149. data/lib/sequel/model/exceptions.rb +5 -1
  150. data/lib/sequel/model/inflections.rb +1 -1
  151. data/lib/sequel/model.rb +30 -11
  152. data/lib/sequel/no_core_ext.rb +2 -0
  153. data/lib/sequel/plugins/active_model.rb +13 -1
  154. data/lib/sequel/plugins/association_pks.rb +22 -4
  155. data/lib/sequel/plugins/caching.rb +25 -18
  156. data/lib/sequel/plugins/class_table_inheritance.rb +4 -4
  157. data/lib/sequel/plugins/composition.rb +44 -12
  158. data/lib/sequel/plugins/dataset_associations.rb +100 -0
  159. data/lib/sequel/plugins/defaults_setter.rb +58 -0
  160. data/lib/sequel/plugins/dirty.rb +214 -0
  161. data/lib/sequel/plugins/eager_each.rb +59 -0
  162. data/lib/sequel/plugins/force_encoding.rb +6 -6
  163. data/lib/sequel/plugins/hook_class_methods.rb +1 -1
  164. data/lib/sequel/plugins/identity_map.rb +123 -8
  165. data/lib/sequel/plugins/instance_filters.rb +10 -0
  166. data/lib/sequel/plugins/instance_hooks.rb +1 -1
  167. data/lib/sequel/plugins/json_serializer.rb +58 -6
  168. data/lib/sequel/plugins/list.rb +12 -2
  169. data/lib/sequel/plugins/many_through_many.rb +79 -28
  170. data/lib/sequel/plugins/many_to_one_pk_lookup.rb +71 -0
  171. data/lib/sequel/plugins/nested_attributes.rb +139 -63
  172. data/lib/sequel/plugins/optimistic_locking.rb +8 -0
  173. data/lib/sequel/plugins/prepared_statements.rb +167 -0
  174. data/lib/sequel/plugins/prepared_statements_associations.rb +87 -0
  175. data/lib/sequel/plugins/prepared_statements_safe.rb +82 -0
  176. data/lib/sequel/plugins/prepared_statements_with_pk.rb +59 -0
  177. data/lib/sequel/plugins/rcte_tree.rb +29 -15
  178. data/lib/sequel/plugins/schema.rb +7 -2
  179. data/lib/sequel/plugins/serialization.rb +98 -49
  180. data/lib/sequel/plugins/serialization_modification_detection.rb +63 -0
  181. data/lib/sequel/plugins/sharding.rb +21 -54
  182. data/lib/sequel/plugins/single_table_inheritance.rb +5 -3
  183. data/lib/sequel/plugins/static_cache.rb +99 -0
  184. data/lib/sequel/plugins/subclasses.rb +10 -2
  185. data/lib/sequel/plugins/tactical_eager_loading.rb +7 -7
  186. data/lib/sequel/plugins/timestamps.rb +1 -1
  187. data/lib/sequel/plugins/typecast_on_load.rb +9 -12
  188. data/lib/sequel/plugins/update_primary_key.rb +2 -2
  189. data/lib/sequel/plugins/validation_class_methods.rb +1 -1
  190. data/lib/sequel/plugins/xml_serializer.rb +15 -4
  191. data/lib/sequel/sql.rb +526 -59
  192. data/lib/sequel/timezones.rb +57 -38
  193. data/lib/sequel/version.rb +1 -1
  194. data/spec/adapters/db2_spec.rb +146 -0
  195. data/spec/adapters/firebird_spec.rb +1 -1
  196. data/spec/adapters/mssql_spec.rb +142 -40
  197. data/spec/adapters/mysql_spec.rb +380 -234
  198. data/spec/adapters/oracle_spec.rb +67 -77
  199. data/spec/adapters/postgres_spec.rb +1050 -212
  200. data/spec/adapters/spec_helper.rb +8 -5
  201. data/spec/adapters/sqlite_spec.rb +139 -27
  202. data/spec/core/connection_pool_spec.rb +196 -93
  203. data/spec/core/database_spec.rb +879 -510
  204. data/spec/core/dataset_spec.rb +1415 -1086
  205. data/spec/core/expression_filters_spec.rb +554 -109
  206. data/spec/core/mock_adapter_spec.rb +449 -0
  207. data/spec/core/object_graph_spec.rb +86 -114
  208. data/spec/core/schema_generator_spec.rb +4 -4
  209. data/spec/core/schema_spec.rb +482 -38
  210. data/spec/core/spec_helper.rb +6 -48
  211. data/spec/extensions/active_model_spec.rb +13 -0
  212. data/spec/extensions/arbitrary_servers_spec.rb +110 -0
  213. data/spec/extensions/association_autoreloading_spec.rb +18 -10
  214. data/spec/extensions/association_dependencies_spec.rb +15 -25
  215. data/spec/extensions/association_pks_spec.rb +66 -32
  216. data/spec/extensions/association_proxies_spec.rb +4 -4
  217. data/spec/extensions/caching_spec.rb +47 -51
  218. data/spec/extensions/class_table_inheritance_spec.rb +31 -83
  219. data/spec/extensions/columns_introspection_spec.rb +91 -0
  220. data/spec/extensions/composition_spec.rb +18 -13
  221. data/spec/{core/core_sql_spec.rb → extensions/core_extensions_spec.rb} +119 -139
  222. data/spec/extensions/dataset_associations_spec.rb +199 -0
  223. data/spec/extensions/defaults_setter_spec.rb +64 -0
  224. data/spec/extensions/dirty_spec.rb +155 -0
  225. data/spec/extensions/eager_each_spec.rb +34 -0
  226. data/spec/extensions/force_encoding_spec.rb +4 -2
  227. data/spec/extensions/hook_class_methods_spec.rb +69 -92
  228. data/spec/extensions/identity_map_spec.rb +131 -22
  229. data/spec/extensions/inflector_spec.rb +0 -4
  230. data/spec/extensions/instance_filters_spec.rb +11 -21
  231. data/spec/extensions/instance_hooks_spec.rb +72 -0
  232. data/spec/extensions/json_serializer_spec.rb +49 -6
  233. data/spec/extensions/lazy_attributes_spec.rb +16 -20
  234. data/spec/extensions/list_spec.rb +48 -39
  235. data/spec/extensions/many_through_many_spec.rb +283 -250
  236. data/spec/extensions/many_to_one_pk_lookup_spec.rb +140 -0
  237. data/spec/extensions/migration_spec.rb +140 -35
  238. data/spec/extensions/named_timezones_spec.rb +29 -11
  239. data/spec/extensions/nested_attributes_spec.rb +251 -89
  240. data/spec/extensions/null_dataset_spec.rb +85 -0
  241. data/spec/extensions/optimistic_locking_spec.rb +24 -21
  242. data/spec/extensions/pg_array_ops_spec.rb +105 -0
  243. data/spec/extensions/pg_array_spec.rb +196 -0
  244. data/spec/extensions/pg_auto_parameterize_spec.rb +65 -0
  245. data/spec/extensions/pg_hstore_ops_spec.rb +136 -0
  246. data/spec/extensions/pg_hstore_spec.rb +195 -0
  247. data/spec/extensions/pg_inet_spec.rb +44 -0
  248. data/spec/extensions/pg_json_spec.rb +101 -0
  249. data/spec/extensions/pg_statement_cache_spec.rb +209 -0
  250. data/spec/extensions/prepared_statements_associations_spec.rb +111 -0
  251. data/spec/extensions/prepared_statements_safe_spec.rb +61 -0
  252. data/spec/extensions/prepared_statements_spec.rb +87 -0
  253. data/spec/extensions/prepared_statements_with_pk_spec.rb +31 -0
  254. data/spec/extensions/pretty_table_spec.rb +7 -6
  255. data/spec/extensions/query_literals_spec.rb +168 -0
  256. data/spec/extensions/query_spec.rb +6 -0
  257. data/spec/extensions/rcte_tree_spec.rb +50 -43
  258. data/spec/extensions/schema_caching_spec.rb +41 -0
  259. data/spec/extensions/schema_dumper_spec.rb +429 -22
  260. data/spec/extensions/schema_spec.rb +25 -21
  261. data/spec/extensions/select_remove_spec.rb +38 -0
  262. data/spec/extensions/serialization_modification_detection_spec.rb +72 -0
  263. data/spec/extensions/serialization_spec.rb +85 -43
  264. data/spec/extensions/server_block_spec.rb +90 -0
  265. data/spec/extensions/sharding_spec.rb +69 -143
  266. data/spec/extensions/single_table_inheritance_spec.rb +23 -29
  267. data/spec/extensions/skip_create_refresh_spec.rb +1 -1
  268. data/spec/extensions/spec_helper.rb +22 -61
  269. data/spec/extensions/sql_expr_spec.rb +29 -60
  270. data/spec/extensions/static_cache_spec.rb +145 -0
  271. data/spec/extensions/tactical_eager_loading_spec.rb +17 -19
  272. data/spec/extensions/thread_local_timezones_spec.rb +22 -2
  273. data/spec/extensions/timestamps_spec.rb +6 -6
  274. data/spec/extensions/to_dot_spec.rb +4 -7
  275. data/spec/extensions/touch_spec.rb +13 -14
  276. data/spec/extensions/tree_spec.rb +11 -26
  277. data/spec/extensions/typecast_on_load_spec.rb +9 -6
  278. data/spec/extensions/update_primary_key_spec.rb +30 -24
  279. data/spec/extensions/validation_class_methods_spec.rb +30 -51
  280. data/spec/extensions/validation_helpers_spec.rb +16 -35
  281. data/spec/extensions/xml_serializer_spec.rb +29 -4
  282. data/spec/files/transaction_specified_migrations/001_create_alt_basic.rb +4 -0
  283. data/spec/files/transaction_specified_migrations/002_create_basic.rb +4 -0
  284. data/spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb +3 -0
  285. data/spec/files/transaction_unspecified_migrations/002_create_basic.rb +3 -0
  286. data/spec/integration/associations_test.rb +659 -21
  287. data/spec/integration/database_test.rb +9 -3
  288. data/spec/integration/dataset_test.rb +605 -91
  289. data/spec/integration/eager_loader_test.rb +19 -21
  290. data/spec/integration/migrator_test.rb +2 -3
  291. data/spec/integration/model_test.rb +81 -2
  292. data/spec/integration/plugin_test.rb +454 -143
  293. data/spec/integration/prepared_statement_test.rb +263 -128
  294. data/spec/integration/schema_test.rb +309 -43
  295. data/spec/integration/spec_helper.rb +40 -30
  296. data/spec/integration/timezone_test.rb +38 -12
  297. data/spec/integration/transaction_test.rb +183 -8
  298. data/spec/integration/type_test.rb +18 -4
  299. data/spec/model/association_reflection_spec.rb +201 -7
  300. data/spec/model/associations_spec.rb +1067 -661
  301. data/spec/model/base_spec.rb +329 -95
  302. data/spec/model/dataset_methods_spec.rb +7 -27
  303. data/spec/model/eager_loading_spec.rb +677 -676
  304. data/spec/model/hooks_spec.rb +349 -67
  305. data/spec/model/model_spec.rb +240 -168
  306. data/spec/model/plugins_spec.rb +24 -13
  307. data/spec/model/record_spec.rb +490 -232
  308. data/spec/model/spec_helper.rb +14 -71
  309. data/spec/model/validations_spec.rb +11 -0
  310. data/spec/rcov.opts +2 -0
  311. metadata +178 -80
@@ -8,79 +8,20 @@ unless Sequel.const_defined?('Model')
8
8
  require 'sequel/model'
9
9
  end
10
10
 
11
- class MockDataset < Sequel::Dataset
12
- def insert(*args)
13
- @db.execute insert_sql(*args)
14
- end
15
-
16
- def update(*args)
17
- @db.execute update_sql(*args)
18
- 1
19
- end
20
-
21
- def delete(*args)
22
- @db.execute delete_sql(*args)
23
- 1
24
- end
25
-
26
- def fetch_rows(sql)
27
- return if sql =~ /information_schema/
28
- @db.execute(sql)
29
- yield({:id => 1, :x => 1})
30
- end
31
-
32
- def quoted_identifier(c)
33
- "\"#{c}\""
34
- end
11
+ if ENV['SEQUEL_COLUMNS_INTROSPECTION']
12
+ Sequel.extension :columns_introspection
13
+ Sequel::Dataset.introspect_all_columns
35
14
  end
36
15
 
37
- class MockDatabase < Sequel::Database
38
- @@quote_identifiers = false
39
- self.identifier_input_method = nil
40
- self.identifier_output_method = nil
41
- attr_reader :sqls
42
-
43
- def execute(sql, opts={})
44
- @sqls ||= []
45
- @sqls << sql
46
- end
47
-
48
- def reset
49
- @sqls = []
50
- end
51
-
52
- def schema(table_name, opts)
53
- if table_name
54
- [[:id, {:primary_key=>true}]]
55
- else
56
- {table_name=>[[:id, {:primary_key=>true}]]}
57
- end
58
- end
59
-
60
- def transaction(opts={})
61
- return yield if @transactions.include?(Thread.current)
62
- execute('BEGIN')
63
- begin
64
- @transactions << Thread.current
65
- yield
66
- rescue Exception => e
67
- execute('ROLLBACK')
68
- transaction_error(e)
69
- ensure
70
- unless e
71
- execute('COMMIT')
72
- end
73
- @transactions.delete(Thread.current)
74
- end
75
- end
76
-
77
- def dataset(opts=nil); MockDataset.new(self, opts); end
78
- end
16
+ Sequel.quote_identifiers = false
17
+ Sequel.identifier_input_method = nil
18
+ Sequel.identifier_output_method = nil
79
19
 
80
20
  class << Sequel::Model
21
+ attr_writer :db_schema
81
22
  alias orig_columns columns
82
23
  def columns(*cols)
83
- return if cols.empty?
24
+ return super if cols.empty?
84
25
  define_method(:columns){cols}
85
26
  @dataset.instance_variable_set(:@columns, cols) if @dataset
86
27
  def_column_accessor(*cols)
@@ -88,10 +29,12 @@ class << Sequel::Model
88
29
  @db_schema = {}
89
30
  cols.each{|c| @db_schema[c] = {}}
90
31
  end
91
- def simple_table
92
- nil
93
- end
94
32
  end
95
33
 
96
34
  Sequel::Model.use_transactions = false
97
- Sequel::Model.db = MODEL_DB = MockDatabase.new
35
+ Sequel::Model.cache_anonymous_models = false
36
+
37
+ db = Sequel.mock(:fetch=>{:id => 1, :x => 1}, :numrows=>1, :autoid=>proc{|sql| 10})
38
+ def db.schema(*) [[:id, {:primary_key=>true}]] end
39
+ def db.reset() sqls end
40
+ Sequel::Model.db = MODEL_DB = db
@@ -61,6 +61,17 @@ describe Sequel::Model::Errors do
61
61
  msgs.should include('blow blieuh', 'blow blich', 'blay bliu')
62
62
  end
63
63
 
64
+ specify "should not add column names for LiteralStrings" do
65
+ @errors.full_messages.should == []
66
+
67
+ @errors[:blow] << 'blieuh'
68
+ @errors[:blow] << 'blich'.lit
69
+ @errors[:blay] << 'bliu'
70
+ msgs = @errors.full_messages
71
+ msgs.size.should == 3
72
+ msgs.should include('blow blieuh', 'blich', 'blay bliu')
73
+ end
74
+
64
75
  specify "should return the number of error messages using #count" do
65
76
  @errors.count.should == 0
66
77
  @errors.add(:a, 'b')
data/spec/rcov.opts CHANGED
@@ -4,3 +4,5 @@ gems
4
4
  spec
5
5
  --exclude
6
6
  00*
7
+ --threshold
8
+ 100
metadata CHANGED
@@ -1,50 +1,47 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: sequel
3
- version: !ruby/object:Gem::Version
4
- hash: 83
5
- prerelease: false
6
- segments:
7
- - 3
8
- - 21
9
- - 0
10
- version: 3.21.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.36.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jeremy Evans
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-03-01 00:00:00 -08:00
19
- default_executable:
12
+ date: 2012-06-01 00:00:00.000000000 Z
20
13
  dependencies: []
21
-
22
14
  description: The Database Toolkit for Ruby
23
15
  email: code@jeremyevans.net
24
- executables:
16
+ executables:
25
17
  - sequel
26
18
  extensions: []
27
-
28
- extra_rdoc_files:
19
+ extra_rdoc_files:
29
20
  - README.rdoc
30
21
  - CHANGELOG
31
22
  - MIT-LICENSE
23
+ - doc/active_record.rdoc
32
24
  - doc/advanced_associations.rdoc
25
+ - doc/association_basics.rdoc
33
26
  - doc/cheat_sheet.rdoc
27
+ - doc/dataset_basics.rdoc
34
28
  - doc/dataset_filtering.rdoc
29
+ - doc/migration.rdoc
30
+ - doc/model_hooks.rdoc
35
31
  - doc/opening_databases.rdoc
36
32
  - doc/prepared_statements.rdoc
33
+ - doc/querying.rdoc
37
34
  - doc/reflection.rdoc
38
35
  - doc/sharding.rdoc
39
36
  - doc/sql.rdoc
40
- - doc/virtual_rows.rdoc
41
- - doc/dataset_basics.rdoc
42
- - doc/association_basics.rdoc
43
- - doc/querying.rdoc
44
- - doc/migration.rdoc
45
37
  - doc/validations.rdoc
46
- - doc/model_hooks.rdoc
47
- - doc/active_record.rdoc
38
+ - doc/virtual_rows.rdoc
39
+ - doc/mass_assignment.rdoc
40
+ - doc/testing.rdoc
41
+ - doc/schema_modification.rdoc
42
+ - doc/transactions.rdoc
43
+ - doc/thread_safety.rdoc
44
+ - doc/object_model.rdoc
48
45
  - doc/release_notes/1.0.txt
49
46
  - doc/release_notes/1.1.txt
50
47
  - doc/release_notes/1.3.txt
@@ -65,14 +62,6 @@ extra_rdoc_files:
65
62
  - doc/release_notes/2.9.0.txt
66
63
  - doc/release_notes/3.0.0.txt
67
64
  - doc/release_notes/3.1.0.txt
68
- - doc/release_notes/3.2.0.txt
69
- - doc/release_notes/3.3.0.txt
70
- - doc/release_notes/3.4.0.txt
71
- - doc/release_notes/3.5.0.txt
72
- - doc/release_notes/3.6.0.txt
73
- - doc/release_notes/3.7.0.txt
74
- - doc/release_notes/3.8.0.txt
75
- - doc/release_notes/3.9.0.txt
76
65
  - doc/release_notes/3.10.0.txt
77
66
  - doc/release_notes/3.11.0.txt
78
67
  - doc/release_notes/3.12.0.txt
@@ -83,19 +72,48 @@ extra_rdoc_files:
83
72
  - doc/release_notes/3.17.0.txt
84
73
  - doc/release_notes/3.18.0.txt
85
74
  - doc/release_notes/3.19.0.txt
75
+ - doc/release_notes/3.2.0.txt
86
76
  - doc/release_notes/3.20.0.txt
87
77
  - doc/release_notes/3.21.0.txt
88
- files:
78
+ - doc/release_notes/3.22.0.txt
79
+ - doc/release_notes/3.23.0.txt
80
+ - doc/release_notes/3.24.0.txt
81
+ - doc/release_notes/3.25.0.txt
82
+ - doc/release_notes/3.3.0.txt
83
+ - doc/release_notes/3.4.0.txt
84
+ - doc/release_notes/3.5.0.txt
85
+ - doc/release_notes/3.6.0.txt
86
+ - doc/release_notes/3.7.0.txt
87
+ - doc/release_notes/3.8.0.txt
88
+ - doc/release_notes/3.9.0.txt
89
+ - doc/release_notes/3.26.0.txt
90
+ - doc/release_notes/3.27.0.txt
91
+ - doc/release_notes/3.28.0.txt
92
+ - doc/release_notes/3.29.0.txt
93
+ - doc/release_notes/3.30.0.txt
94
+ - doc/release_notes/3.31.0.txt
95
+ - doc/release_notes/3.32.0.txt
96
+ - doc/release_notes/3.33.0.txt
97
+ - doc/release_notes/3.34.0.txt
98
+ - doc/release_notes/3.35.0.txt
99
+ - doc/release_notes/3.36.0.txt
100
+ files:
89
101
  - MIT-LICENSE
90
102
  - CHANGELOG
91
103
  - README.rdoc
92
104
  - Rakefile
93
105
  - bin/sequel
106
+ - doc/active_record.rdoc
94
107
  - doc/advanced_associations.rdoc
108
+ - doc/association_basics.rdoc
95
109
  - doc/cheat_sheet.rdoc
110
+ - doc/dataset_basics.rdoc
96
111
  - doc/dataset_filtering.rdoc
112
+ - doc/migration.rdoc
113
+ - doc/model_hooks.rdoc
97
114
  - doc/opening_databases.rdoc
98
115
  - doc/prepared_statements.rdoc
116
+ - doc/querying.rdoc
99
117
  - doc/reflection.rdoc
100
118
  - doc/release_notes/1.0.txt
101
119
  - doc/release_notes/1.1.txt
@@ -117,14 +135,6 @@ files:
117
135
  - doc/release_notes/2.9.0.txt
118
136
  - doc/release_notes/3.0.0.txt
119
137
  - doc/release_notes/3.1.0.txt
120
- - doc/release_notes/3.2.0.txt
121
- - doc/release_notes/3.3.0.txt
122
- - doc/release_notes/3.4.0.txt
123
- - doc/release_notes/3.5.0.txt
124
- - doc/release_notes/3.6.0.txt
125
- - doc/release_notes/3.7.0.txt
126
- - doc/release_notes/3.8.0.txt
127
- - doc/release_notes/3.9.0.txt
128
138
  - doc/release_notes/3.10.0.txt
129
139
  - doc/release_notes/3.11.0.txt
130
140
  - doc/release_notes/3.12.0.txt
@@ -135,18 +145,41 @@ files:
135
145
  - doc/release_notes/3.17.0.txt
136
146
  - doc/release_notes/3.18.0.txt
137
147
  - doc/release_notes/3.19.0.txt
148
+ - doc/release_notes/3.2.0.txt
138
149
  - doc/release_notes/3.20.0.txt
139
150
  - doc/release_notes/3.21.0.txt
151
+ - doc/release_notes/3.22.0.txt
152
+ - doc/release_notes/3.23.0.txt
153
+ - doc/release_notes/3.24.0.txt
154
+ - doc/release_notes/3.25.0.txt
155
+ - doc/release_notes/3.3.0.txt
156
+ - doc/release_notes/3.4.0.txt
157
+ - doc/release_notes/3.5.0.txt
158
+ - doc/release_notes/3.6.0.txt
159
+ - doc/release_notes/3.7.0.txt
160
+ - doc/release_notes/3.8.0.txt
161
+ - doc/release_notes/3.9.0.txt
162
+ - doc/release_notes/3.26.0.txt
163
+ - doc/release_notes/3.27.0.txt
164
+ - doc/release_notes/3.28.0.txt
165
+ - doc/release_notes/3.29.0.txt
166
+ - doc/release_notes/3.30.0.txt
167
+ - doc/release_notes/3.31.0.txt
168
+ - doc/release_notes/3.32.0.txt
169
+ - doc/release_notes/3.33.0.txt
170
+ - doc/release_notes/3.34.0.txt
171
+ - doc/release_notes/3.35.0.txt
172
+ - doc/release_notes/3.36.0.txt
140
173
  - doc/sharding.rdoc
141
174
  - doc/sql.rdoc
142
- - doc/virtual_rows.rdoc
143
- - doc/dataset_basics.rdoc
144
- - doc/association_basics.rdoc
145
- - doc/querying.rdoc
146
- - doc/migration.rdoc
147
175
  - doc/validations.rdoc
148
- - doc/model_hooks.rdoc
149
- - doc/active_record.rdoc
176
+ - doc/virtual_rows.rdoc
177
+ - doc/mass_assignment.rdoc
178
+ - doc/testing.rdoc
179
+ - doc/schema_modification.rdoc
180
+ - doc/transactions.rdoc
181
+ - doc/thread_safety.rdoc
182
+ - doc/object_model.rdoc
150
183
  - spec/adapters/firebird_spec.rb
151
184
  - spec/adapters/informix_spec.rb
152
185
  - spec/adapters/mssql_spec.rb
@@ -155,16 +188,17 @@ files:
155
188
  - spec/adapters/postgres_spec.rb
156
189
  - spec/adapters/spec_helper.rb
157
190
  - spec/adapters/sqlite_spec.rb
191
+ - spec/adapters/db2_spec.rb
158
192
  - spec/core/connection_pool_spec.rb
159
- - spec/core/core_sql_spec.rb
160
- - spec/core/database_spec.rb
161
193
  - spec/core/dataset_spec.rb
194
+ - spec/core/database_spec.rb
162
195
  - spec/core/expression_filters_spec.rb
196
+ - spec/core/schema_spec.rb
163
197
  - spec/core/object_graph_spec.rb
164
198
  - spec/core/schema_generator_spec.rb
165
- - spec/core/schema_spec.rb
166
199
  - spec/core/spec_helper.rb
167
200
  - spec/core/version_spec.rb
201
+ - spec/core/mock_adapter_spec.rb
168
202
  - spec/extensions/active_model_spec.rb
169
203
  - spec/extensions/association_dependencies_spec.rb
170
204
  - spec/extensions/association_proxies_spec.rb
@@ -198,7 +232,6 @@ files:
198
232
  - spec/extensions/tactical_eager_loading_spec.rb
199
233
  - spec/extensions/thread_local_timezones_spec.rb
200
234
  - spec/extensions/timestamps_spec.rb
201
- - spec/extensions/touch_spec.rb
202
235
  - spec/extensions/typecast_on_load_spec.rb
203
236
  - spec/extensions/validation_class_methods_spec.rb
204
237
  - spec/extensions/validation_helpers_spec.rb
@@ -211,11 +244,39 @@ files:
211
244
  - spec/extensions/update_primary_key_spec.rb
212
245
  - spec/extensions/association_pks_spec.rb
213
246
  - spec/extensions/json_serializer_spec.rb
247
+ - spec/extensions/eager_each_spec.rb
214
248
  - spec/extensions/list_spec.rb
215
249
  - spec/extensions/tree_spec.rb
216
250
  - spec/extensions/xml_serializer_spec.rb
217
251
  - spec/extensions/to_dot_spec.rb
218
252
  - spec/extensions/association_autoreloading_spec.rb
253
+ - spec/extensions/serialization_modification_detection_spec.rb
254
+ - spec/extensions/defaults_setter_spec.rb
255
+ - spec/extensions/prepared_statements_spec.rb
256
+ - spec/extensions/prepared_statements_safe_spec.rb
257
+ - spec/extensions/prepared_statements_with_pk_spec.rb
258
+ - spec/extensions/prepared_statements_associations_spec.rb
259
+ - spec/extensions/dataset_associations_spec.rb
260
+ - spec/extensions/arbitrary_servers_spec.rb
261
+ - spec/extensions/touch_spec.rb
262
+ - spec/extensions/server_block_spec.rb
263
+ - spec/extensions/pg_auto_parameterize_spec.rb
264
+ - spec/extensions/pg_statement_cache_spec.rb
265
+ - spec/extensions/pg_array_spec.rb
266
+ - spec/extensions/pg_array_ops_spec.rb
267
+ - spec/extensions/pg_hstore_spec.rb
268
+ - spec/extensions/pg_hstore_ops_spec.rb
269
+ - spec/extensions/schema_caching_spec.rb
270
+ - spec/extensions/null_dataset_spec.rb
271
+ - spec/extensions/many_to_one_pk_lookup_spec.rb
272
+ - spec/extensions/select_remove_spec.rb
273
+ - spec/extensions/static_cache_spec.rb
274
+ - spec/extensions/query_literals_spec.rb
275
+ - spec/extensions/dirty_spec.rb
276
+ - spec/extensions/pg_json_spec.rb
277
+ - spec/extensions/core_extensions_spec.rb
278
+ - spec/extensions/pg_inet_spec.rb
279
+ - spec/extensions/columns_introspection_spec.rb
219
280
  - spec/integration/associations_test.rb
220
281
  - spec/integration/database_test.rb
221
282
  - spec/integration/dataset_test.rb
@@ -284,6 +345,10 @@ files:
284
345
  - spec/files/reversible_migrations/003_reversible.rb
285
346
  - spec/files/reversible_migrations/004_reversible.rb
286
347
  - spec/files/reversible_migrations/005_reversible.rb
348
+ - spec/files/transaction_specified_migrations/001_create_alt_basic.rb
349
+ - spec/files/transaction_specified_migrations/002_create_basic.rb
350
+ - spec/files/transaction_unspecified_migrations/001_create_alt_basic.rb
351
+ - spec/files/transaction_unspecified_migrations/002_create_basic.rb
287
352
  - lib/sequel.rb
288
353
  - lib/sequel/adapters/ado.rb
289
354
  - lib/sequel/adapters/ado/mssql.rb
@@ -304,6 +369,15 @@ files:
304
369
  - lib/sequel/adapters/jdbc/postgresql.rb
305
370
  - lib/sequel/adapters/jdbc/sqlite.rb
306
371
  - lib/sequel/adapters/jdbc/as400.rb
372
+ - lib/sequel/adapters/jdbc/informix.rb
373
+ - lib/sequel/adapters/jdbc/jtds.rb
374
+ - lib/sequel/adapters/jdbc/sqlserver.rb
375
+ - lib/sequel/adapters/jdbc/db2.rb
376
+ - lib/sequel/adapters/jdbc/transactions.rb
377
+ - lib/sequel/adapters/jdbc/firebird.rb
378
+ - lib/sequel/adapters/jdbc/hsqldb.rb
379
+ - lib/sequel/adapters/jdbc/derby.rb
380
+ - lib/sequel/adapters/jdbc/progress.rb
307
381
  - lib/sequel/adapters/mysql.rb
308
382
  - lib/sequel/adapters/odbc.rb
309
383
  - lib/sequel/adapters/odbc/mssql.rb
@@ -317,21 +391,28 @@ files:
317
391
  - lib/sequel/adapters/shared/progress.rb
318
392
  - lib/sequel/adapters/shared/sqlite.rb
319
393
  - lib/sequel/adapters/shared/access.rb
394
+ - lib/sequel/adapters/shared/informix.rb
395
+ - lib/sequel/adapters/shared/mysql_prepared_statements.rb
396
+ - lib/sequel/adapters/shared/db2.rb
397
+ - lib/sequel/adapters/shared/firebird.rb
320
398
  - lib/sequel/adapters/sqlite.rb
321
399
  - lib/sequel/adapters/utils/stored_procedures.rb
400
+ - lib/sequel/adapters/utils/emulate_offset_with_row_number.rb
322
401
  - lib/sequel/adapters/mysql2.rb
323
402
  - lib/sequel/adapters/swift.rb
324
403
  - lib/sequel/adapters/swift/mysql.rb
325
404
  - lib/sequel/adapters/swift/postgres.rb
326
405
  - lib/sequel/adapters/swift/sqlite.rb
327
406
  - lib/sequel/adapters/tinytds.rb
407
+ - lib/sequel/adapters/ibmdb.rb
408
+ - lib/sequel/adapters/mock.rb
328
409
  - lib/sequel/connection_pool.rb
329
410
  - lib/sequel/connection_pool/sharded_single.rb
330
411
  - lib/sequel/connection_pool/sharded_threaded.rb
331
412
  - lib/sequel/connection_pool/single.rb
332
413
  - lib/sequel/connection_pool/threaded.rb
333
414
  - lib/sequel/core.rb
334
- - lib/sequel/core_sql.rb
415
+ - lib/sequel/sql.rb
335
416
  - lib/sequel/database.rb
336
417
  - lib/sequel/database/schema_generator.rb
337
418
  - lib/sequel/database/schema_methods.rb
@@ -364,6 +445,23 @@ files:
364
445
  - lib/sequel/extensions/string_date_time.rb
365
446
  - lib/sequel/extensions/thread_local_timezones.rb
366
447
  - lib/sequel/extensions/to_dot.rb
448
+ - lib/sequel/extensions/arbitrary_servers.rb
449
+ - lib/sequel/extensions/server_block.rb
450
+ - lib/sequel/extensions/pg_auto_parameterize.rb
451
+ - lib/sequel/extensions/pg_statement_cache.rb
452
+ - lib/sequel/extensions/pg_array.rb
453
+ - lib/sequel/extensions/pg_json.rb
454
+ - lib/sequel/extensions/pg_array_ops.rb
455
+ - lib/sequel/extensions/pg_hstore.rb
456
+ - lib/sequel/extensions/pg_hstore_ops.rb
457
+ - lib/sequel/extensions/schema_caching.rb
458
+ - lib/sequel/extensions/null_dataset.rb
459
+ - lib/sequel/extensions/_pretty_table.rb
460
+ - lib/sequel/extensions/columns_introspection.rb
461
+ - lib/sequel/extensions/select_remove.rb
462
+ - lib/sequel/extensions/core_extensions.rb
463
+ - lib/sequel/extensions/query_literals.rb
464
+ - lib/sequel/extensions/pg_inet.rb
367
465
  - lib/sequel/metaprogramming.rb
368
466
  - lib/sequel/model.rb
369
467
  - lib/sequel/model/associations.rb
@@ -408,54 +506,54 @@ files:
408
506
  - lib/sequel/plugins/json_serializer.rb
409
507
  - lib/sequel/plugins/list.rb
410
508
  - lib/sequel/plugins/tree.rb
509
+ - lib/sequel/plugins/static_cache.rb
411
510
  - lib/sequel/plugins/xml_serializer.rb
412
511
  - lib/sequel/plugins/association_autoreloading.rb
413
- - lib/sequel/sql.rb
512
+ - lib/sequel/plugins/serialization_modification_detection.rb
513
+ - lib/sequel/plugins/defaults_setter.rb
514
+ - lib/sequel/plugins/prepared_statements.rb
515
+ - lib/sequel/plugins/prepared_statements_safe.rb
516
+ - lib/sequel/plugins/prepared_statements_with_pk.rb
517
+ - lib/sequel/plugins/prepared_statements_associations.rb
518
+ - lib/sequel/plugins/dataset_associations.rb
519
+ - lib/sequel/plugins/many_to_one_pk_lookup.rb
520
+ - lib/sequel/plugins/dirty.rb
521
+ - lib/sequel/plugins/eager_each.rb
414
522
  - lib/sequel/timezones.rb
415
523
  - lib/sequel/version.rb
524
+ - lib/sequel/ast_transformer.rb
525
+ - lib/sequel/no_core_ext.rb
416
526
  - lib/sequel_core.rb
417
527
  - lib/sequel_model.rb
418
- has_rdoc: true
419
528
  homepage: http://sequel.rubyforge.org
420
529
  licenses: []
421
-
422
530
  post_install_message:
423
- rdoc_options:
531
+ rdoc_options:
424
532
  - --quiet
425
533
  - --line-numbers
426
534
  - --inline-source
427
535
  - --title
428
- - "Sequel: The Database Toolkit for Ruby"
536
+ - ! 'Sequel: The Database Toolkit for Ruby'
429
537
  - --main
430
538
  - README.rdoc
431
- require_paths:
539
+ require_paths:
432
540
  - lib
433
- required_ruby_version: !ruby/object:Gem::Requirement
541
+ required_ruby_version: !ruby/object:Gem::Requirement
434
542
  none: false
435
- requirements:
436
- - - ">="
437
- - !ruby/object:Gem::Version
438
- hash: 63
439
- segments:
440
- - 1
441
- - 8
442
- - 4
443
- version: 1.8.4
444
- required_rubygems_version: !ruby/object:Gem::Requirement
543
+ requirements:
544
+ - - ! '>='
545
+ - !ruby/object:Gem::Version
546
+ version: 1.8.7
547
+ required_rubygems_version: !ruby/object:Gem::Requirement
445
548
  none: false
446
- requirements:
447
- - - ">="
448
- - !ruby/object:Gem::Version
449
- hash: 3
450
- segments:
451
- - 0
452
- version: "0"
549
+ requirements:
550
+ - - ! '>='
551
+ - !ruby/object:Gem::Version
552
+ version: '0'
453
553
  requirements: []
454
-
455
554
  rubyforge_project: sequel
456
- rubygems_version: 1.3.7
555
+ rubygems_version: 1.8.11
457
556
  signing_key:
458
557
  specification_version: 3
459
558
  summary: The Database Toolkit for Ruby
460
559
  test_files: []
461
-