sequel 3.20.0 → 3.21.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +32 -0
- data/MIT-LICENSE +1 -1
- data/README.rdoc +1 -1
- data/Rakefile +13 -3
- data/bin/sequel +18 -5
- data/doc/active_record.rdoc +4 -4
- data/doc/opening_databases.rdoc +38 -1
- data/doc/release_notes/3.21.0.txt +87 -0
- data/doc/validations.rdoc +2 -2
- data/lib/sequel/adapters/informix.rb +1 -1
- data/lib/sequel/adapters/jdbc/h2.rb +2 -5
- data/lib/sequel/adapters/jdbc/mssql.rb +1 -4
- data/lib/sequel/adapters/jdbc/mysql.rb +1 -4
- data/lib/sequel/adapters/jdbc/postgresql.rb +1 -6
- data/lib/sequel/adapters/jdbc/sqlite.rb +2 -8
- data/lib/sequel/adapters/shared/mssql.rb +8 -0
- data/lib/sequel/adapters/shared/mysql.rb +23 -3
- data/lib/sequel/adapters/shared/oracle.rb +2 -2
- data/lib/sequel/adapters/tinytds.rb +125 -0
- data/lib/sequel/database/connecting.rb +1 -1
- data/lib/sequel/database/schema_methods.rb +37 -5
- data/lib/sequel/dataset/sql.rb +6 -6
- data/lib/sequel/extensions/schema_dumper.rb +1 -1
- data/lib/sequel/model/base.rb +50 -0
- data/lib/sequel/model/plugins.rb +0 -55
- data/lib/sequel/plugins/association_autoreloading.rb +48 -0
- data/lib/sequel/plugins/validation_class_methods.rb +6 -5
- data/lib/sequel/plugins/validation_helpers.rb +2 -2
- data/lib/sequel/version.rb +1 -1
- data/spec/adapters/firebird_spec.rb +6 -6
- data/spec/adapters/informix_spec.rb +2 -2
- data/spec/adapters/mssql_spec.rb +18 -13
- data/spec/adapters/mysql_spec.rb +47 -20
- data/spec/adapters/oracle_spec.rb +40 -4
- data/spec/adapters/postgres_spec.rb +14 -14
- data/spec/adapters/spec_helper.rb +1 -1
- data/spec/adapters/sqlite_spec.rb +8 -8
- data/spec/core/connection_pool_spec.rb +18 -17
- data/spec/core/core_sql_spec.rb +18 -18
- data/spec/core/database_spec.rb +62 -62
- data/spec/core/dataset_spec.rb +105 -92
- data/spec/core/expression_filters_spec.rb +2 -2
- data/spec/core/schema_spec.rb +6 -6
- data/spec/core/version_spec.rb +1 -1
- data/spec/extensions/association_autoreloading_spec.rb +94 -0
- data/spec/extensions/blank_spec.rb +6 -6
- data/spec/extensions/looser_typecasting_spec.rb +1 -1
- data/spec/extensions/migration_spec.rb +6 -6
- data/spec/extensions/pagination_spec.rb +2 -2
- data/spec/extensions/pretty_table_spec.rb +2 -2
- data/spec/extensions/query_spec.rb +2 -2
- data/spec/extensions/schema_dumper_spec.rb +2 -1
- data/spec/extensions/single_table_inheritance_spec.rb +1 -1
- data/spec/extensions/sql_expr_spec.rb +1 -1
- data/spec/extensions/string_date_time_spec.rb +4 -4
- data/spec/extensions/validation_class_methods_spec.rb +2 -2
- data/spec/integration/dataset_test.rb +8 -3
- data/spec/integration/plugin_test.rb +5 -5
- data/spec/integration/prepared_statement_test.rb +1 -1
- data/spec/integration/schema_test.rb +7 -0
- data/spec/integration/spec_helper.rb +14 -1
- data/spec/integration/timezone_test.rb +4 -4
- data/spec/integration/type_test.rb +1 -1
- data/spec/model/model_spec.rb +3 -3
- metadata +9 -4
data/spec/core/dataset_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require File.join(File.dirname(File.expand_path(__FILE__)), "spec_helper")
|
2
2
|
|
3
|
-
|
3
|
+
describe "Dataset" do
|
4
4
|
before do
|
5
5
|
@dataset = Sequel::Dataset.new("db")
|
6
6
|
end
|
@@ -62,7 +62,7 @@ context "Dataset" do
|
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
-
|
65
|
+
describe "Dataset" do
|
66
66
|
before do
|
67
67
|
@dataset = Sequel::Dataset.new("db")
|
68
68
|
end
|
@@ -104,7 +104,7 @@ context "Dataset" do
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
-
|
107
|
+
describe "Dataset#clone" do
|
108
108
|
before do
|
109
109
|
@dataset = Sequel::Dataset.new(nil).from(:items)
|
110
110
|
end
|
@@ -159,7 +159,7 @@ context "Dataset#clone" do
|
|
159
159
|
end
|
160
160
|
end
|
161
161
|
|
162
|
-
|
162
|
+
describe "Dataset#==" do
|
163
163
|
before do
|
164
164
|
@db = MockDatabase.new
|
165
165
|
@h = {}
|
@@ -184,7 +184,7 @@ context "Dataset#==" do
|
|
184
184
|
end
|
185
185
|
end
|
186
186
|
|
187
|
-
|
187
|
+
describe "Dataset#hash" do
|
188
188
|
before do
|
189
189
|
@db = MockDatabase.new
|
190
190
|
@h = {}
|
@@ -211,7 +211,7 @@ context "Dataset#hash" do
|
|
211
211
|
end
|
212
212
|
end
|
213
213
|
|
214
|
-
|
214
|
+
describe "A simple dataset" do
|
215
215
|
before do
|
216
216
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
217
217
|
end
|
@@ -293,7 +293,7 @@ context "A simple dataset" do
|
|
293
293
|
end
|
294
294
|
end
|
295
295
|
|
296
|
-
|
296
|
+
describe "A dataset with multiple tables in its FROM clause" do
|
297
297
|
before do
|
298
298
|
@dataset = Sequel::Dataset.new(nil).from(:t1, :t2)
|
299
299
|
end
|
@@ -319,7 +319,7 @@ context "A dataset with multiple tables in its FROM clause" do
|
|
319
319
|
end
|
320
320
|
end
|
321
321
|
|
322
|
-
|
322
|
+
describe "Dataset#unused_table_alias" do
|
323
323
|
before do
|
324
324
|
@ds = Sequel::Dataset.new(nil).from(:test)
|
325
325
|
end
|
@@ -346,7 +346,7 @@ context "Dataset#unused_table_alias" do
|
|
346
346
|
end
|
347
347
|
end
|
348
348
|
|
349
|
-
|
349
|
+
describe "Dataset#exists" do
|
350
350
|
before do
|
351
351
|
@ds1 = Sequel::Dataset.new(nil).from(:test)
|
352
352
|
@ds2 = @ds1.filter(:price.sql_number < 100)
|
@@ -366,7 +366,7 @@ context "Dataset#exists" do
|
|
366
366
|
end
|
367
367
|
end
|
368
368
|
|
369
|
-
|
369
|
+
describe "Dataset#where" do
|
370
370
|
before do
|
371
371
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
372
372
|
@d1 = @dataset.where(:region => 'Asia')
|
@@ -647,7 +647,7 @@ context "Dataset#where" do
|
|
647
647
|
end
|
648
648
|
end
|
649
649
|
|
650
|
-
|
650
|
+
describe "Dataset#or" do
|
651
651
|
before do
|
652
652
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
653
653
|
@d1 = @dataset.where(:x => 1)
|
@@ -688,7 +688,7 @@ context "Dataset#or" do
|
|
688
688
|
end
|
689
689
|
end
|
690
690
|
|
691
|
-
|
691
|
+
describe "Dataset#and" do
|
692
692
|
before do
|
693
693
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
694
694
|
@d1 = @dataset.where(:x => 1)
|
@@ -728,7 +728,7 @@ context "Dataset#and" do
|
|
728
728
|
end
|
729
729
|
end
|
730
730
|
|
731
|
-
|
731
|
+
describe "Dataset#exclude" do
|
732
732
|
before do
|
733
733
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
734
734
|
end
|
@@ -772,7 +772,7 @@ context "Dataset#exclude" do
|
|
772
772
|
end
|
773
773
|
end
|
774
774
|
|
775
|
-
|
775
|
+
describe "Dataset#invert" do
|
776
776
|
before do
|
777
777
|
@d = Sequel::Dataset.new(nil).from(:test)
|
778
778
|
end
|
@@ -790,7 +790,7 @@ context "Dataset#invert" do
|
|
790
790
|
end
|
791
791
|
end
|
792
792
|
|
793
|
-
|
793
|
+
describe "Dataset#having" do
|
794
794
|
before do
|
795
795
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
796
796
|
@grouped = @dataset.group(:region).select(:region, :sum.sql_function(:population), :avg.sql_function(:gdp))
|
@@ -821,7 +821,7 @@ context "Dataset#having" do
|
|
821
821
|
end
|
822
822
|
end
|
823
823
|
|
824
|
-
|
824
|
+
describe "a grouped dataset" do
|
825
825
|
before do
|
826
826
|
@dataset = Sequel::Dataset.new(nil).from(:test).group(:type_id)
|
827
827
|
end
|
@@ -854,7 +854,7 @@ context "a grouped dataset" do
|
|
854
854
|
end
|
855
855
|
end
|
856
856
|
|
857
|
-
|
857
|
+
describe "Dataset#group_by" do
|
858
858
|
before do
|
859
859
|
@dataset = Sequel::Dataset.new(nil).from(:test).group_by(:type_id)
|
860
860
|
end
|
@@ -896,7 +896,7 @@ context "Dataset#group_by" do
|
|
896
896
|
end
|
897
897
|
end
|
898
898
|
|
899
|
-
|
899
|
+
describe "Dataset#as" do
|
900
900
|
specify "should set up an alias" do
|
901
901
|
dataset = Sequel::Dataset.new(nil).from(:test)
|
902
902
|
dataset.select(dataset.limit(1).select(:name).as(:n)).sql.should == \
|
@@ -904,7 +904,7 @@ context "Dataset#as" do
|
|
904
904
|
end
|
905
905
|
end
|
906
906
|
|
907
|
-
|
907
|
+
describe "Dataset#literal" do
|
908
908
|
before do
|
909
909
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
910
910
|
end
|
@@ -927,22 +927,23 @@ context "Dataset#literal" do
|
|
927
927
|
@dataset.literal(1).should == "1"
|
928
928
|
@dataset.literal(1.5).should == "1.5"
|
929
929
|
end
|
930
|
-
|
930
|
+
|
931
931
|
specify "should literalize nil as NULL" do
|
932
932
|
@dataset.literal(nil).should == "NULL"
|
933
933
|
end
|
934
|
-
|
934
|
+
|
935
935
|
specify "should literalize an array properly" do
|
936
936
|
@dataset.literal([]).should == "(NULL)"
|
937
937
|
@dataset.literal([1, 'abc', 3]).should == "(1, 'abc', 3)"
|
938
938
|
@dataset.literal([1, "a'b''c", 3]).should == "(1, 'a''b''''c', 3)"
|
939
939
|
end
|
940
|
-
|
940
|
+
|
941
941
|
specify "should literalize symbols as column references" do
|
942
942
|
@dataset.literal(:name).should == "name"
|
943
943
|
@dataset.literal(:items__name).should == "items.name"
|
944
|
+
@dataset.literal(:"items__na#m$e").should == "items.na#m$e"
|
944
945
|
end
|
945
|
-
|
946
|
+
|
946
947
|
specify "should call sql_literal with dataset on type if not natively supported and the object responds to it" do
|
947
948
|
@a = Class.new do
|
948
949
|
def sql_literal(ds)
|
@@ -1058,7 +1059,7 @@ context "Dataset#literal" do
|
|
1058
1059
|
end
|
1059
1060
|
end
|
1060
1061
|
|
1061
|
-
|
1062
|
+
describe "Dataset#from" do
|
1062
1063
|
before do
|
1063
1064
|
@dataset = Sequel::Dataset.new(nil)
|
1064
1065
|
end
|
@@ -1114,14 +1115,26 @@ context "Dataset#from" do
|
|
1114
1115
|
specify "should accept :schema__table___alias symbol format" do
|
1115
1116
|
@dataset.from(:abc__def).select_sql.should ==
|
1116
1117
|
"SELECT * FROM abc.def"
|
1118
|
+
@dataset.from(:a_b__c).select_sql.should ==
|
1119
|
+
"SELECT * FROM a_b.c"
|
1120
|
+
@dataset.from(:'#__#').select_sql.should ==
|
1121
|
+
'SELECT * FROM #.#'
|
1117
1122
|
@dataset.from(:abc__def___d).select_sql.should ==
|
1118
1123
|
"SELECT * FROM abc.def AS d"
|
1124
|
+
@dataset.from(:a_b__d_e___f_g).select_sql.should ==
|
1125
|
+
"SELECT * FROM a_b.d_e AS f_g"
|
1126
|
+
@dataset.from(:'#__#___#').select_sql.should ==
|
1127
|
+
'SELECT * FROM #.# AS #'
|
1119
1128
|
@dataset.from(:abc___def).select_sql.should ==
|
1120
1129
|
"SELECT * FROM abc AS def"
|
1130
|
+
@dataset.from(:a_b___c_d).select_sql.should ==
|
1131
|
+
"SELECT * FROM a_b AS c_d"
|
1132
|
+
@dataset.from(:'#___#').select_sql.should ==
|
1133
|
+
'SELECT * FROM # AS #'
|
1121
1134
|
end
|
1122
1135
|
end
|
1123
1136
|
|
1124
|
-
|
1137
|
+
describe "Dataset#select" do
|
1125
1138
|
before do
|
1126
1139
|
@d = Sequel::Dataset.new(nil).from(:test)
|
1127
1140
|
end
|
@@ -1185,7 +1198,7 @@ context "Dataset#select" do
|
|
1185
1198
|
end
|
1186
1199
|
end
|
1187
1200
|
|
1188
|
-
|
1201
|
+
describe "Dataset#select_all" do
|
1189
1202
|
before do
|
1190
1203
|
@d = Sequel::Dataset.new(nil).from(:test)
|
1191
1204
|
end
|
@@ -1199,7 +1212,7 @@ context "Dataset#select_all" do
|
|
1199
1212
|
end
|
1200
1213
|
end
|
1201
1214
|
|
1202
|
-
|
1215
|
+
describe "Dataset#select_more" do
|
1203
1216
|
before do
|
1204
1217
|
@d = Sequel::Dataset.new(nil).from(:test)
|
1205
1218
|
end
|
@@ -1221,7 +1234,7 @@ context "Dataset#select_more" do
|
|
1221
1234
|
end
|
1222
1235
|
end
|
1223
1236
|
|
1224
|
-
|
1237
|
+
describe "Dataset#select_append" do
|
1225
1238
|
before do
|
1226
1239
|
@d = Sequel::Dataset.new(nil).from(:test)
|
1227
1240
|
end
|
@@ -1243,7 +1256,7 @@ context "Dataset#select_append" do
|
|
1243
1256
|
end
|
1244
1257
|
end
|
1245
1258
|
|
1246
|
-
|
1259
|
+
describe "Dataset#order" do
|
1247
1260
|
before do
|
1248
1261
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
1249
1262
|
end
|
@@ -1298,31 +1311,31 @@ context "Dataset#order" do
|
|
1298
1311
|
end
|
1299
1312
|
end
|
1300
1313
|
|
1301
|
-
|
1314
|
+
describe "Dataset#unfiltered" do
|
1302
1315
|
specify "should remove filtering from the dataset" do
|
1303
1316
|
Sequel::Dataset.new(nil).from(:test).filter(:score=>1).unfiltered.sql.should == 'SELECT * FROM test'
|
1304
1317
|
end
|
1305
1318
|
end
|
1306
1319
|
|
1307
|
-
|
1320
|
+
describe "Dataset#unlimited" do
|
1308
1321
|
specify "should remove limit and offset from the dataset" do
|
1309
1322
|
Sequel::Dataset.new(nil).from(:test).limit(1, 2).unlimited.sql.should == 'SELECT * FROM test'
|
1310
1323
|
end
|
1311
1324
|
end
|
1312
1325
|
|
1313
|
-
|
1326
|
+
describe "Dataset#ungrouped" do
|
1314
1327
|
specify "should remove group and having clauses from the dataset" do
|
1315
1328
|
Sequel::Dataset.new(nil).from(:test).group(:a).having(:b).ungrouped.sql.should == 'SELECT * FROM test'
|
1316
1329
|
end
|
1317
1330
|
end
|
1318
1331
|
|
1319
|
-
|
1332
|
+
describe "Dataset#unordered" do
|
1320
1333
|
specify "should remove ordering from the dataset" do
|
1321
1334
|
Sequel::Dataset.new(nil).from(:test).order(:name).unordered.sql.should == 'SELECT * FROM test'
|
1322
1335
|
end
|
1323
1336
|
end
|
1324
1337
|
|
1325
|
-
|
1338
|
+
describe "Dataset#with_sql" do
|
1326
1339
|
before do
|
1327
1340
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
1328
1341
|
end
|
@@ -1344,7 +1357,7 @@ context "Dataset#with_sql" do
|
|
1344
1357
|
end
|
1345
1358
|
end
|
1346
1359
|
|
1347
|
-
|
1360
|
+
describe "Dataset#order_by" do
|
1348
1361
|
before do
|
1349
1362
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
1350
1363
|
end
|
@@ -1375,7 +1388,7 @@ context "Dataset#order_by" do
|
|
1375
1388
|
end
|
1376
1389
|
end
|
1377
1390
|
|
1378
|
-
|
1391
|
+
describe "Dataset#order_more and order_append" do
|
1379
1392
|
before do
|
1380
1393
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
1381
1394
|
end
|
@@ -1398,7 +1411,7 @@ context "Dataset#order_more and order_append" do
|
|
1398
1411
|
end
|
1399
1412
|
end
|
1400
1413
|
|
1401
|
-
|
1414
|
+
describe "Dataset#order_prepend" do
|
1402
1415
|
before do
|
1403
1416
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
1404
1417
|
end
|
@@ -1419,7 +1432,7 @@ context "Dataset#order_prepend" do
|
|
1419
1432
|
end
|
1420
1433
|
end
|
1421
1434
|
|
1422
|
-
|
1435
|
+
describe "Dataset#reverse_order" do
|
1423
1436
|
before do
|
1424
1437
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
1425
1438
|
end
|
@@ -1467,7 +1480,7 @@ context "Dataset#reverse_order" do
|
|
1467
1480
|
end
|
1468
1481
|
end
|
1469
1482
|
|
1470
|
-
|
1483
|
+
describe "Dataset#limit" do
|
1471
1484
|
before do
|
1472
1485
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
1473
1486
|
end
|
@@ -1521,7 +1534,7 @@ context "Dataset#limit" do
|
|
1521
1534
|
end
|
1522
1535
|
end
|
1523
1536
|
|
1524
|
-
|
1537
|
+
describe "Dataset#naked" do
|
1525
1538
|
before do
|
1526
1539
|
@d1 = Sequel::Dataset.new(nil, {1 => 2, 3 => 4})
|
1527
1540
|
@d2 = @d1.clone
|
@@ -1534,7 +1547,7 @@ context "Dataset#naked" do
|
|
1534
1547
|
end
|
1535
1548
|
end
|
1536
1549
|
|
1537
|
-
|
1550
|
+
describe "Dataset#qualified_column_name" do
|
1538
1551
|
before do
|
1539
1552
|
@dataset = Sequel::Dataset.new(nil).from(:test)
|
1540
1553
|
end
|
@@ -1569,7 +1582,7 @@ class DummyDataset < Sequel::Dataset
|
|
1569
1582
|
end
|
1570
1583
|
end
|
1571
1584
|
|
1572
|
-
|
1585
|
+
describe "Dataset#map" do
|
1573
1586
|
before do
|
1574
1587
|
@d = DummyDataset.new(nil).from(:items)
|
1575
1588
|
end
|
@@ -1587,7 +1600,7 @@ context "Dataset#map" do
|
|
1587
1600
|
end
|
1588
1601
|
end
|
1589
1602
|
|
1590
|
-
|
1603
|
+
describe "Dataset#to_hash" do
|
1591
1604
|
before do
|
1592
1605
|
@d = DummyDataset.new(nil).from(:items)
|
1593
1606
|
end
|
@@ -1603,7 +1616,7 @@ context "Dataset#to_hash" do
|
|
1603
1616
|
end
|
1604
1617
|
end
|
1605
1618
|
|
1606
|
-
|
1619
|
+
describe "Dataset#distinct" do
|
1607
1620
|
before do
|
1608
1621
|
@db = MockDatabase.new
|
1609
1622
|
@dataset = @db[:test].select(:name)
|
@@ -1630,7 +1643,7 @@ context "Dataset#distinct" do
|
|
1630
1643
|
end
|
1631
1644
|
end
|
1632
1645
|
|
1633
|
-
|
1646
|
+
describe "Dataset#count" do
|
1634
1647
|
before do
|
1635
1648
|
@c = Class.new(Sequel::Dataset) do
|
1636
1649
|
def self.sql
|
@@ -1692,7 +1705,7 @@ context "Dataset#count" do
|
|
1692
1705
|
end
|
1693
1706
|
|
1694
1707
|
|
1695
|
-
|
1708
|
+
describe "Dataset#group_and_count" do
|
1696
1709
|
before do
|
1697
1710
|
@c = Class.new(Sequel::Dataset) do
|
1698
1711
|
def self.sql
|
@@ -1742,7 +1755,7 @@ context "Dataset#group_and_count" do
|
|
1742
1755
|
end
|
1743
1756
|
end
|
1744
1757
|
|
1745
|
-
|
1758
|
+
describe "Dataset#empty?" do
|
1746
1759
|
specify "should return true if records exist in the dataset" do
|
1747
1760
|
@c = Class.new(Sequel::Dataset) do
|
1748
1761
|
def self.sql
|
@@ -1761,7 +1774,7 @@ context "Dataset#empty?" do
|
|
1761
1774
|
end
|
1762
1775
|
end
|
1763
1776
|
|
1764
|
-
|
1777
|
+
describe "Dataset#first_source_alias" do
|
1765
1778
|
before do
|
1766
1779
|
@ds = Sequel::Dataset.new(nil)
|
1767
1780
|
end
|
@@ -1791,7 +1804,7 @@ context "Dataset#first_source_alias" do
|
|
1791
1804
|
end
|
1792
1805
|
end
|
1793
1806
|
|
1794
|
-
|
1807
|
+
describe "Dataset#first_source_table" do
|
1795
1808
|
before do
|
1796
1809
|
@ds = Sequel::Dataset.new(nil)
|
1797
1810
|
end
|
@@ -1814,7 +1827,7 @@ context "Dataset#first_source_table" do
|
|
1814
1827
|
end
|
1815
1828
|
end
|
1816
1829
|
|
1817
|
-
|
1830
|
+
describe "Dataset#from_self" do
|
1818
1831
|
before do
|
1819
1832
|
@ds = Sequel::Dataset.new(nil).from(:test).select(:name).limit(1)
|
1820
1833
|
end
|
@@ -1842,7 +1855,7 @@ context "Dataset#from_self" do
|
|
1842
1855
|
|
1843
1856
|
end
|
1844
1857
|
|
1845
|
-
|
1858
|
+
describe "Dataset#join_table" do
|
1846
1859
|
before do
|
1847
1860
|
@d = MockDataset.new(nil).from(:items)
|
1848
1861
|
@d.quote_identifiers = true
|
@@ -2156,7 +2169,7 @@ context "Dataset#join_table" do
|
|
2156
2169
|
end
|
2157
2170
|
end
|
2158
2171
|
|
2159
|
-
|
2172
|
+
describe "Dataset#[]=" do
|
2160
2173
|
before do
|
2161
2174
|
c = Class.new(Sequel::Dataset) do
|
2162
2175
|
def last_sql
|
@@ -2177,7 +2190,7 @@ context "Dataset#[]=" do
|
|
2177
2190
|
end
|
2178
2191
|
end
|
2179
2192
|
|
2180
|
-
|
2193
|
+
describe "Dataset#set" do
|
2181
2194
|
before do
|
2182
2195
|
c = Class.new(Sequel::Dataset) do
|
2183
2196
|
def last_sql
|
@@ -2199,7 +2212,7 @@ context "Dataset#set" do
|
|
2199
2212
|
end
|
2200
2213
|
|
2201
2214
|
|
2202
|
-
|
2215
|
+
describe "Dataset#insert_multiple" do
|
2203
2216
|
before do
|
2204
2217
|
c = Class.new(Sequel::Dataset) do
|
2205
2218
|
attr_reader :inserts
|
@@ -2224,7 +2237,7 @@ context "Dataset#insert_multiple" do
|
|
2224
2237
|
end
|
2225
2238
|
end
|
2226
2239
|
|
2227
|
-
|
2240
|
+
describe "Dataset aggregate methods" do
|
2228
2241
|
before do
|
2229
2242
|
c = Class.new(Sequel::Dataset) do
|
2230
2243
|
def fetch_rows(sql)
|
@@ -2263,7 +2276,7 @@ context "Dataset aggregate methods" do
|
|
2263
2276
|
end
|
2264
2277
|
end
|
2265
2278
|
|
2266
|
-
|
2279
|
+
describe "Dataset#range" do
|
2267
2280
|
before do
|
2268
2281
|
c = Class.new(Sequel::Dataset) do
|
2269
2282
|
class_variable_set(:@@sql, nil)
|
@@ -2296,7 +2309,7 @@ context "Dataset#range" do
|
|
2296
2309
|
end
|
2297
2310
|
end
|
2298
2311
|
|
2299
|
-
|
2312
|
+
describe "Dataset#interval" do
|
2300
2313
|
before do
|
2301
2314
|
c = Class.new(Sequel::Dataset) do
|
2302
2315
|
class_variable_set(:@@sql, nil)
|
@@ -2329,7 +2342,7 @@ context "Dataset#interval" do
|
|
2329
2342
|
end
|
2330
2343
|
end
|
2331
2344
|
|
2332
|
-
|
2345
|
+
describe "Dataset #first and #last" do
|
2333
2346
|
before do
|
2334
2347
|
@c = Class.new(Sequel::Dataset) do
|
2335
2348
|
def each(&block)
|
@@ -2392,7 +2405,7 @@ context "Dataset #first and #last" do
|
|
2392
2405
|
end
|
2393
2406
|
end
|
2394
2407
|
|
2395
|
-
|
2408
|
+
describe "Dataset compound operations" do
|
2396
2409
|
before do
|
2397
2410
|
@a = Sequel::Dataset.new(nil).from(:a).filter(:z => 1)
|
2398
2411
|
@b = Sequel::Dataset.new(nil).from(:b).filter(:z => 2)
|
@@ -2506,7 +2519,7 @@ context "Dataset compound operations" do
|
|
2506
2519
|
|
2507
2520
|
end
|
2508
2521
|
|
2509
|
-
|
2522
|
+
describe "Dataset#[]" do
|
2510
2523
|
before do
|
2511
2524
|
@c = Class.new(Sequel::Dataset) do
|
2512
2525
|
class_variable_set(:@@last_dataset, nil)
|
@@ -2532,7 +2545,7 @@ context "Dataset#[]" do
|
|
2532
2545
|
end
|
2533
2546
|
end
|
2534
2547
|
|
2535
|
-
|
2548
|
+
describe "Dataset#single_record" do
|
2536
2549
|
before do
|
2537
2550
|
@c = Class.new(Sequel::Dataset) do
|
2538
2551
|
def fetch_rows(sql)
|
@@ -2556,7 +2569,7 @@ context "Dataset#single_record" do
|
|
2556
2569
|
end
|
2557
2570
|
end
|
2558
2571
|
|
2559
|
-
|
2572
|
+
describe "Dataset#single_value" do
|
2560
2573
|
before do
|
2561
2574
|
@c = Class.new(Sequel::Dataset) do
|
2562
2575
|
def fetch_rows(sql)
|
@@ -2585,7 +2598,7 @@ context "Dataset#single_value" do
|
|
2585
2598
|
end
|
2586
2599
|
end
|
2587
2600
|
|
2588
|
-
|
2601
|
+
describe "Dataset#get" do
|
2589
2602
|
before do
|
2590
2603
|
@c = Class.new(Sequel::Dataset) do
|
2591
2604
|
attr_reader :last_sql
|
@@ -2622,7 +2635,7 @@ context "Dataset#get" do
|
|
2622
2635
|
end
|
2623
2636
|
end
|
2624
2637
|
|
2625
|
-
|
2638
|
+
describe "Dataset#set_row_proc" do
|
2626
2639
|
before do
|
2627
2640
|
@c = Class.new(Sequel::Dataset) do
|
2628
2641
|
def fetch_rows(sql, &block)
|
@@ -2649,7 +2662,7 @@ context "Dataset#set_row_proc" do
|
|
2649
2662
|
end
|
2650
2663
|
end
|
2651
2664
|
|
2652
|
-
|
2665
|
+
describe "Dataset#<<" do
|
2653
2666
|
before do
|
2654
2667
|
@d = Sequel::Dataset.new(nil)
|
2655
2668
|
@d.meta_def(:insert) do |*args|
|
@@ -2662,7 +2675,7 @@ context "Dataset#<<" do
|
|
2662
2675
|
end
|
2663
2676
|
end
|
2664
2677
|
|
2665
|
-
|
2678
|
+
describe "Dataset#columns" do
|
2666
2679
|
before do
|
2667
2680
|
@dataset = DummyDataset.new(nil).from(:items)
|
2668
2681
|
@dataset.meta_def(:columns=) {|c| @columns = c}
|
@@ -2689,7 +2702,7 @@ context "Dataset#columns" do
|
|
2689
2702
|
end
|
2690
2703
|
end
|
2691
2704
|
|
2692
|
-
|
2705
|
+
describe "Dataset#columns!" do
|
2693
2706
|
before do
|
2694
2707
|
@dataset = DummyDataset.new(nil).from(:items)
|
2695
2708
|
i = 'a'
|
@@ -2704,7 +2717,7 @@ context "Dataset#columns!" do
|
|
2704
2717
|
end
|
2705
2718
|
end
|
2706
2719
|
|
2707
|
-
|
2720
|
+
describe "Dataset#import" do
|
2708
2721
|
before do
|
2709
2722
|
@dbc = Class.new(Sequel::Database) do
|
2710
2723
|
attr_reader :sqls
|
@@ -2784,7 +2797,7 @@ context "Dataset#import" do
|
|
2784
2797
|
end
|
2785
2798
|
end
|
2786
2799
|
|
2787
|
-
|
2800
|
+
describe "Dataset#multi_insert" do
|
2788
2801
|
before do
|
2789
2802
|
@dbc = Class.new do
|
2790
2803
|
attr_reader :sqls
|
@@ -2897,7 +2910,7 @@ context "Dataset#multi_insert" do
|
|
2897
2910
|
end
|
2898
2911
|
end
|
2899
2912
|
|
2900
|
-
|
2913
|
+
describe "Dataset" do
|
2901
2914
|
before do
|
2902
2915
|
@d = Sequel::Dataset.new(nil).from(:x)
|
2903
2916
|
end
|
@@ -2944,7 +2957,7 @@ context "Dataset" do
|
|
2944
2957
|
end
|
2945
2958
|
end
|
2946
2959
|
|
2947
|
-
|
2960
|
+
describe "Dataset#to_csv" do
|
2948
2961
|
before do
|
2949
2962
|
@c = Class.new(Sequel::Dataset) do
|
2950
2963
|
attr_accessor :data
|
@@ -2976,7 +2989,7 @@ context "Dataset#to_csv" do
|
|
2976
2989
|
end
|
2977
2990
|
end
|
2978
2991
|
|
2979
|
-
|
2992
|
+
describe "Dataset#update_sql" do
|
2980
2993
|
before do
|
2981
2994
|
@ds = Sequel::Dataset.new(nil).from(:items)
|
2982
2995
|
end
|
@@ -2998,7 +3011,7 @@ context "Dataset#update_sql" do
|
|
2998
3011
|
end
|
2999
3012
|
end
|
3000
3013
|
|
3001
|
-
|
3014
|
+
describe "Dataset#insert_sql" do
|
3002
3015
|
before do
|
3003
3016
|
@ds = Sequel::Dataset.new(nil).from(:items)
|
3004
3017
|
end
|
@@ -3092,7 +3105,7 @@ class DummyMummyDatabase < Sequel::Database
|
|
3092
3105
|
end
|
3093
3106
|
end
|
3094
3107
|
|
3095
|
-
|
3108
|
+
describe "Dataset#inspect" do
|
3096
3109
|
before do
|
3097
3110
|
@ds = Sequel::Dataset.new(nil).from(:blah)
|
3098
3111
|
end
|
@@ -3102,7 +3115,7 @@ context "Dataset#inspect" do
|
|
3102
3115
|
end
|
3103
3116
|
end
|
3104
3117
|
|
3105
|
-
|
3118
|
+
describe "Dataset#all" do
|
3106
3119
|
before do
|
3107
3120
|
@c = Class.new(Sequel::Dataset) do
|
3108
3121
|
def fetch_rows(sql, &block)
|
@@ -3133,7 +3146,7 @@ context "Dataset#all" do
|
|
3133
3146
|
end
|
3134
3147
|
end
|
3135
3148
|
|
3136
|
-
|
3149
|
+
describe "Dataset#grep" do
|
3137
3150
|
before do
|
3138
3151
|
@ds = Sequel::Dataset.new(nil).from(:posts)
|
3139
3152
|
end
|
@@ -3207,7 +3220,7 @@ context "Dataset#grep" do
|
|
3207
3220
|
end
|
3208
3221
|
end
|
3209
3222
|
|
3210
|
-
|
3223
|
+
describe "Dataset default #fetch_rows, #insert, #update, #delete, #truncate, #execute" do
|
3211
3224
|
before do
|
3212
3225
|
@db = Sequel::Database.new
|
3213
3226
|
@ds = @db[:items]
|
@@ -3255,7 +3268,7 @@ context "Dataset default #fetch_rows, #insert, #update, #delete, #truncate, #exe
|
|
3255
3268
|
end
|
3256
3269
|
end
|
3257
3270
|
|
3258
|
-
|
3271
|
+
describe "Dataset prepared statements and bound variables " do
|
3259
3272
|
before do
|
3260
3273
|
@db = Sequel::Database.new
|
3261
3274
|
@db.meta_def(:sqls){@sqls||=[]}
|
@@ -3342,7 +3355,7 @@ context "Dataset prepared statements and bound variables " do
|
|
3342
3355
|
end
|
3343
3356
|
end
|
3344
3357
|
|
3345
|
-
|
3358
|
+
describe Sequel::Dataset::UnnumberedArgumentMapper do
|
3346
3359
|
before do
|
3347
3360
|
@db = Sequel::Database.new
|
3348
3361
|
@db.meta_def(:sqls){@sqls||=[]}
|
@@ -3388,7 +3401,7 @@ context Sequel::Dataset::UnnumberedArgumentMapper do
|
|
3388
3401
|
end
|
3389
3402
|
end
|
3390
3403
|
|
3391
|
-
|
3404
|
+
describe "Sequel::Dataset#server" do
|
3392
3405
|
specify "should set the server to use for the dataset" do
|
3393
3406
|
@db = Sequel::Database.new
|
3394
3407
|
@ds = @db[:items].server(:s)
|
@@ -3410,7 +3423,7 @@ context "Sequel::Dataset#server" do
|
|
3410
3423
|
end
|
3411
3424
|
end
|
3412
3425
|
|
3413
|
-
|
3426
|
+
describe "Sequel::Dataset#each_server" do
|
3414
3427
|
before do
|
3415
3428
|
@db = Sequel::Database.new(:servers=>{:s=>{}, :i=>{}})
|
3416
3429
|
@ds = @db[:items]
|
@@ -3434,7 +3447,7 @@ context "Sequel::Dataset#each_server" do
|
|
3434
3447
|
end
|
3435
3448
|
end
|
3436
3449
|
|
3437
|
-
|
3450
|
+
describe "Sequel::Dataset #set_defaults" do
|
3438
3451
|
before do
|
3439
3452
|
@ds = Sequel::Dataset.new(nil).from(:items).set_defaults(:x=>1)
|
3440
3453
|
end
|
@@ -3456,7 +3469,7 @@ context "Sequel::Dataset #set_defaults" do
|
|
3456
3469
|
end
|
3457
3470
|
end
|
3458
3471
|
|
3459
|
-
|
3472
|
+
describe "Sequel::Dataset #set_overrides" do
|
3460
3473
|
before do
|
3461
3474
|
@ds = Sequel::Dataset.new(nil).from(:items).set_overrides(:x=>1)
|
3462
3475
|
end
|
@@ -3478,7 +3491,7 @@ context "Sequel::Dataset #set_overrides" do
|
|
3478
3491
|
end
|
3479
3492
|
end
|
3480
3493
|
|
3481
|
-
|
3494
|
+
describe "Sequel::Dataset#qualify" do
|
3482
3495
|
specify "should qualify to the given table" do
|
3483
3496
|
MockDatabase.new[:t].filter{a<b}.qualify(:e).sql.should == 'SELECT e.* FROM t WHERE (e.a < e.b)'
|
3484
3497
|
end
|
@@ -3488,13 +3501,13 @@ context "Sequel::Dataset#qualify" do
|
|
3488
3501
|
end
|
3489
3502
|
end
|
3490
3503
|
|
3491
|
-
|
3504
|
+
describe "Sequel::Dataset#qualify_to" do
|
3492
3505
|
specify "should qualify to the given table" do
|
3493
3506
|
MockDatabase.new[:t].filter{a<b}.qualify_to(:e).sql.should == 'SELECT e.* FROM t WHERE (e.a < e.b)'
|
3494
3507
|
end
|
3495
3508
|
end
|
3496
3509
|
|
3497
|
-
|
3510
|
+
describe "Sequel::Dataset#qualify_to_first_source" do
|
3498
3511
|
before do
|
3499
3512
|
@ds = MockDatabase.new[:t]
|
3500
3513
|
end
|
@@ -3586,7 +3599,7 @@ context "Sequel::Dataset#qualify_to_first_source" do
|
|
3586
3599
|
end
|
3587
3600
|
end
|
3588
3601
|
|
3589
|
-
|
3602
|
+
describe "Sequel::Dataset #with and #with_recursive" do
|
3590
3603
|
before do
|
3591
3604
|
@db = MockDatabase.new
|
3592
3605
|
@ds = @db[:t]
|
@@ -3812,7 +3825,7 @@ describe "Sequel timezone support" do
|
|
3812
3825
|
end
|
3813
3826
|
end
|
3814
3827
|
|
3815
|
-
|
3828
|
+
describe "Sequel::Dataset#select_map" do
|
3816
3829
|
before do
|
3817
3830
|
@ds = MockDatabase.new[:t]
|
3818
3831
|
def @ds.fetch_rows(sql)
|
@@ -3849,7 +3862,7 @@ context "Sequel::Dataset#select_map" do
|
|
3849
3862
|
end
|
3850
3863
|
end
|
3851
3864
|
|
3852
|
-
|
3865
|
+
describe "Sequel::Dataset#select_order_map" do
|
3853
3866
|
before do
|
3854
3867
|
@ds = MockDatabase.new[:t]
|
3855
3868
|
def @ds.fetch_rows(sql)
|
@@ -3891,7 +3904,7 @@ context "Sequel::Dataset#select_order_map" do
|
|
3891
3904
|
end
|
3892
3905
|
end
|
3893
3906
|
|
3894
|
-
|
3907
|
+
describe "Sequel::Dataset#select_hash" do
|
3895
3908
|
before do
|
3896
3909
|
@ds = MockDatabase.new[:t]
|
3897
3910
|
def @ds.set_fr_yield(hs)
|
@@ -3929,7 +3942,7 @@ context "Sequel::Dataset#select_hash" do
|
|
3929
3942
|
end
|
3930
3943
|
end
|
3931
3944
|
|
3932
|
-
|
3945
|
+
describe "Modifying joined datasets" do
|
3933
3946
|
before do
|
3934
3947
|
@ds = MockDatabase.new.from(:b, :c).join(:d, [:id]).where(:id => 2)
|
3935
3948
|
@ds.meta_def(:supports_modifying_joins?){true}
|
@@ -3947,7 +3960,7 @@ context "Modifying joined datasets" do
|
|
3947
3960
|
end
|
3948
3961
|
end
|
3949
3962
|
|
3950
|
-
|
3963
|
+
describe "Dataset#lock_style and for_update" do
|
3951
3964
|
before do
|
3952
3965
|
@ds = MockDatabase.new[:t]
|
3953
3966
|
end
|