sequel 4.3.0 → 4.4.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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +34 -0
  3. data/README.rdoc +7 -7
  4. data/Rakefile +2 -2
  5. data/doc/active_record.rdoc +2 -2
  6. data/doc/association_basics.rdoc +21 -7
  7. data/doc/bin_sequel.rdoc +2 -2
  8. data/doc/cheat_sheet.rdoc +2 -1
  9. data/doc/dataset_basics.rdoc +1 -1
  10. data/doc/dataset_filtering.rdoc +1 -1
  11. data/doc/migration.rdoc +2 -2
  12. data/doc/object_model.rdoc +2 -2
  13. data/doc/opening_databases.rdoc +13 -1
  14. data/doc/querying.rdoc +9 -4
  15. data/doc/release_notes/4.4.0.txt +92 -0
  16. data/doc/schema_modification.rdoc +1 -1
  17. data/doc/security.rdoc +2 -2
  18. data/doc/sql.rdoc +3 -3
  19. data/doc/thread_safety.rdoc +1 -1
  20. data/doc/validations.rdoc +1 -1
  21. data/doc/virtual_rows.rdoc +1 -1
  22. data/lib/sequel/adapters/jdbc.rb +85 -19
  23. data/lib/sequel/adapters/jdbc/db2.rb +1 -1
  24. data/lib/sequel/adapters/jdbc/derby.rb +1 -1
  25. data/lib/sequel/adapters/jdbc/h2.rb +2 -2
  26. data/lib/sequel/adapters/jdbc/hsqldb.rb +7 -0
  27. data/lib/sequel/adapters/jdbc/jtds.rb +1 -1
  28. data/lib/sequel/adapters/jdbc/oracle.rb +1 -1
  29. data/lib/sequel/adapters/jdbc/postgresql.rb +34 -3
  30. data/lib/sequel/adapters/jdbc/sqlanywhere.rb +57 -0
  31. data/lib/sequel/adapters/jdbc/sqlserver.rb +2 -2
  32. data/lib/sequel/adapters/oracle.rb +1 -1
  33. data/lib/sequel/adapters/shared/db2.rb +5 -0
  34. data/lib/sequel/adapters/shared/oracle.rb +41 -4
  35. data/lib/sequel/adapters/shared/sqlanywhere.rb +458 -0
  36. data/lib/sequel/adapters/sqlanywhere.rb +177 -0
  37. data/lib/sequel/adapters/utils/emulate_offset_with_row_number.rb +11 -3
  38. data/lib/sequel/core.rb +4 -4
  39. data/lib/sequel/database/connecting.rb +1 -1
  40. data/lib/sequel/database/query.rb +1 -1
  41. data/lib/sequel/database/schema_generator.rb +1 -1
  42. data/lib/sequel/database/schema_methods.rb +2 -2
  43. data/lib/sequel/dataset.rb +1 -1
  44. data/lib/sequel/dataset/actions.rb +2 -0
  45. data/lib/sequel/dataset/graph.rb +1 -1
  46. data/lib/sequel/dataset/prepared_statements.rb +1 -1
  47. data/lib/sequel/dataset/query.rb +37 -16
  48. data/lib/sequel/extensions/constraint_validations.rb +1 -1
  49. data/lib/sequel/extensions/date_arithmetic.rb +2 -2
  50. data/lib/sequel/extensions/migration.rb +1 -1
  51. data/lib/sequel/extensions/mssql_emulate_lateral_with_apply.rb +5 -4
  52. data/lib/sequel/extensions/pg_array.rb +2 -2
  53. data/lib/sequel/extensions/pg_array_ops.rb +2 -2
  54. data/lib/sequel/extensions/pg_hstore.rb +2 -2
  55. data/lib/sequel/extensions/pg_hstore_ops.rb +2 -2
  56. data/lib/sequel/extensions/pg_json.rb +2 -2
  57. data/lib/sequel/extensions/pg_json_ops.rb +2 -2
  58. data/lib/sequel/extensions/pg_range.rb +2 -2
  59. data/lib/sequel/extensions/pg_range_ops.rb +2 -2
  60. data/lib/sequel/extensions/pg_row.rb +2 -2
  61. data/lib/sequel/extensions/pg_row_ops.rb +3 -3
  62. data/lib/sequel/model.rb +1 -1
  63. data/lib/sequel/model/associations.rb +106 -17
  64. data/lib/sequel/model/base.rb +23 -19
  65. data/lib/sequel/plugins/json_serializer.rb +1 -1
  66. data/lib/sequel/plugins/many_through_many.rb +14 -6
  67. data/lib/sequel/plugins/pg_array_associations.rb +28 -0
  68. data/lib/sequel/plugins/rcte_tree.rb +1 -1
  69. data/lib/sequel/plugins/serialization.rb +11 -0
  70. data/lib/sequel/plugins/single_table_inheritance.rb +1 -1
  71. data/lib/sequel/plugins/table_select.rb +41 -0
  72. data/lib/sequel/plugins/tree.rb +1 -1
  73. data/lib/sequel/sql.rb +2 -2
  74. data/lib/sequel/version.rb +1 -1
  75. data/spec/adapters/oracle_spec.rb +22 -1
  76. data/spec/adapters/postgres_spec.rb +31 -48
  77. data/spec/adapters/sqlanywhere_spec.rb +170 -0
  78. data/spec/core/dataset_spec.rb +109 -0
  79. data/spec/core/object_graph_spec.rb +7 -0
  80. data/spec/extensions/constraint_validations_spec.rb +7 -0
  81. data/spec/extensions/core_refinements_spec.rb +1 -1
  82. data/spec/extensions/many_through_many_spec.rb +65 -0
  83. data/spec/extensions/pg_array_associations_spec.rb +44 -0
  84. data/spec/extensions/rcte_tree_spec.rb +3 -3
  85. data/spec/extensions/spec_helper.rb +1 -1
  86. data/spec/extensions/table_select_spec.rb +71 -0
  87. data/spec/integration/associations_test.rb +279 -7
  88. data/spec/integration/dataset_test.rb +13 -4
  89. data/spec/integration/schema_test.rb +12 -14
  90. data/spec/model/associations_spec.rb +472 -3
  91. data/spec/model/class_dataset_methods_spec.rb +1 -0
  92. data/spec/model/model_spec.rb +10 -0
  93. metadata +10 -2
@@ -81,6 +81,7 @@ describe Sequel::Model, "class dataset methods" do
81
81
  @c.natural_join(@c).sql.should == "SELECT * FROM items NATURAL JOIN items"
82
82
  @c.natural_left_join(@c).sql.should == "SELECT * FROM items NATURAL LEFT JOIN items"
83
83
  @c.natural_right_join(@c).sql.should == "SELECT * FROM items NATURAL RIGHT JOIN items"
84
+ @c.offset(2).sql.should == "SELECT * FROM items OFFSET 2"
84
85
  @c.order(:a).sql.should == "SELECT * FROM items ORDER BY a"
85
86
  @c.order_append(:a).sql.should == "SELECT * FROM items ORDER BY a"
86
87
  @c.order_by(:a).sql.should == "SELECT * FROM items ORDER BY a"
@@ -697,6 +697,16 @@ describe "Model.db_schema" do
697
697
  @c.primary_key.should == nil
698
698
  end
699
699
 
700
+ specify "should automatically set primary key for dataset selecting table.*" do
701
+ ds = @dataset.select_all(:items)
702
+ d = ds.db
703
+ def d.schema(table, *opts) [[:x, {:primary_key=>true}]] end
704
+ @c.primary_key.should == :id
705
+ @c.dataset = ds
706
+ @c.db_schema.should == {:x=>{:primary_key=>true}}
707
+ @c.primary_key.should == :x
708
+ end
709
+
700
710
  specify "should not modify the primary key unless all column schema hashes have a :primary_key entry" do
701
711
  ds = @dataset
702
712
  d = ds.db
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.0
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Evans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-02 00:00:00.000000000 Z
11
+ date: 2013-11-01 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: The Database Toolkit for Ruby
14
14
  email: code@jeremyevans.net
@@ -119,6 +119,7 @@ extra_rdoc_files:
119
119
  - doc/release_notes/4.1.0.txt
120
120
  - doc/release_notes/4.2.0.txt
121
121
  - doc/release_notes/4.3.0.txt
122
+ - doc/release_notes/4.4.0.txt
122
123
  files:
123
124
  - MIT-LICENSE
124
125
  - CHANGELOG
@@ -225,6 +226,7 @@ files:
225
226
  - doc/release_notes/4.1.0.txt
226
227
  - doc/release_notes/4.2.0.txt
227
228
  - doc/release_notes/4.3.0.txt
229
+ - doc/release_notes/4.4.0.txt
228
230
  - spec/adapters/firebird_spec.rb
229
231
  - spec/adapters/informix_spec.rb
230
232
  - spec/adapters/mssql_spec.rb
@@ -234,6 +236,7 @@ files:
234
236
  - spec/adapters/spec_helper.rb
235
237
  - spec/adapters/sqlite_spec.rb
236
238
  - spec/adapters/db2_spec.rb
239
+ - spec/adapters/sqlanywhere_spec.rb
237
240
  - spec/core/connection_pool_spec.rb
238
241
  - spec/core/dataset_spec.rb
239
242
  - spec/core/database_spec.rb
@@ -352,6 +355,7 @@ files:
352
355
  - spec/extensions/blank_spec.rb
353
356
  - spec/extensions/inflector_spec.rb
354
357
  - spec/extensions/association_proxies_spec.rb
358
+ - spec/extensions/table_select_spec.rb
355
359
  - spec/integration/associations_test.rb
356
360
  - spec/integration/database_test.rb
357
361
  - spec/integration/dataset_test.rb
@@ -457,6 +461,7 @@ files:
457
461
  - lib/sequel/adapters/jdbc/derby.rb
458
462
  - lib/sequel/adapters/jdbc/progress.rb
459
463
  - lib/sequel/adapters/jdbc/cubrid.rb
464
+ - lib/sequel/adapters/jdbc/sqlanywhere.rb
460
465
  - lib/sequel/adapters/mysql.rb
461
466
  - lib/sequel/adapters/odbc.rb
462
467
  - lib/sequel/adapters/odbc/mssql.rb
@@ -475,6 +480,7 @@ files:
475
480
  - lib/sequel/adapters/shared/db2.rb
476
481
  - lib/sequel/adapters/shared/firebird.rb
477
482
  - lib/sequel/adapters/shared/cubrid.rb
483
+ - lib/sequel/adapters/shared/sqlanywhere.rb
478
484
  - lib/sequel/adapters/sqlite.rb
479
485
  - lib/sequel/adapters/utils/stored_procedures.rb
480
486
  - lib/sequel/adapters/utils/emulate_offset_with_row_number.rb
@@ -491,6 +497,7 @@ files:
491
497
  - lib/sequel/adapters/ibmdb.rb
492
498
  - lib/sequel/adapters/mock.rb
493
499
  - lib/sequel/adapters/cubrid.rb
500
+ - lib/sequel/adapters/sqlanywhere.rb
494
501
  - lib/sequel/connection_pool.rb
495
502
  - lib/sequel/connection_pool/sharded_single.rb
496
503
  - lib/sequel/connection_pool/sharded_threaded.rb
@@ -640,6 +647,7 @@ files:
640
647
  - lib/sequel/plugins/after_initialize.rb
641
648
  - lib/sequel/plugins/blacklist_security.rb
642
649
  - lib/sequel/plugins/pg_array_associations.rb
650
+ - lib/sequel/plugins/table_select.rb
643
651
  - lib/sequel/timezones.rb
644
652
  - lib/sequel/deprecated.rb
645
653
  - lib/sequel/ast_transformer.rb