@@ -13,7 +13,7 @@ class PessimisticLockingTestSQLServer < ActiveRecord::TestCase
13
13
end
14
14
15
15
it "uses with updlock by default" do
16
- assert_sql %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( UPDLOCK\) | do
16
+ assert_queries_match %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( UPDLOCK\) | do
17
17
_ ( Person . lock ( true ) . to_a ) . must_equal Person . all . to_a
18
18
end
19
19
end
@@ -47,32 +47,32 @@ class PessimisticLockingTestSQLServer < ActiveRecord::TestCase
47
47
end
48
48
49
49
it "can add a custom lock directive" do
50
- assert_sql %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( HOLDLOCK, ROWLOCK\) | do
50
+ assert_queries_match %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( HOLDLOCK, ROWLOCK\) | do
51
51
Person . lock ( "WITH(HOLDLOCK, ROWLOCK)" ) . load
52
52
end
53
53
end
54
54
55
55
describe "joining tables" do
56
56
it "joined tables use updlock by default" do
57
- assert_sql %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( UPDLOCK\) INNER JOIN \[ readers\] WITH\( UPDLOCK\) \s +ON \[ readers\] \. \[ person_id\] = \[ people\] \. \[ id\] | do
57
+ assert_queries_match %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( UPDLOCK\) INNER JOIN \[ readers\] WITH\( UPDLOCK\) \s +ON \[ readers\] \. \[ person_id\] = \[ people\] \. \[ id\] | do
58
58
Person . lock ( true ) . joins ( :readers ) . load
59
59
end
60
60
end
61
61
62
62
it "joined tables can use custom lock directive" do
63
- assert_sql %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( NOLOCK\) INNER JOIN \[ readers\] WITH\( NOLOCK\) \s +ON \[ readers\] \. \[ person_id\] = \[ people\] \. \[ id\] | do
63
+ assert_queries_match %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( NOLOCK\) INNER JOIN \[ readers\] WITH\( NOLOCK\) \s +ON \[ readers\] \. \[ person_id\] = \[ people\] \. \[ id\] | do
64
64
Person . lock ( "WITH(NOLOCK)" ) . joins ( :readers ) . load
65
65
end
66
66
end
67
67
68
68
it "left joined tables use updlock by default" do
69
- assert_sql %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( UPDLOCK\) LEFT OUTER JOIN \[ readers\] WITH\( UPDLOCK\) \s +ON \[ readers\] \. \[ person_id\] = \[ people\] \. \[ id\] | do
69
+ assert_queries_match %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( UPDLOCK\) LEFT OUTER JOIN \[ readers\] WITH\( UPDLOCK\) \s +ON \[ readers\] \. \[ person_id\] = \[ people\] \. \[ id\] | do
70
70
Person . lock ( true ) . left_joins ( :readers ) . load
71
71
end
72
72
end
73
73
74
74
it "left joined tables can use custom lock directive" do
75
- assert_sql %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( NOLOCK\) LEFT OUTER JOIN \[ readers\] WITH\( NOLOCK\) \s +ON \[ readers\] \. \[ person_id\] = \[ people\] \. \[ id\] | do
75
+ assert_queries_match %r|SELECT \[ people\] \. \* FROM \[ people\] WITH\( NOLOCK\) LEFT OUTER JOIN \[ readers\] WITH\( NOLOCK\) \s +ON \[ readers\] \. \[ person_id\] = \[ people\] \. \[ id\] | do
76
76
Person . lock ( "WITH(NOLOCK)" ) . left_joins ( :readers ) . load
77
77
end
78
78
end
@@ -88,7 +88,8 @@ class PessimisticLockingTestSQLServer < ActiveRecord::TestCase
88
88
it "copes with eager loading un-locked paginated" do
89
89
eager_ids_sql = /SELECT\s +DISTINCT \[ people\] .\[ id\] FROM \[ people\] WITH\( UPDLOCK\) LEFT OUTER JOIN \[ readers\] WITH\( UPDLOCK\) \s +ON \[ readers\] .\[ person_id\] = \[ people\] .\[ id\] \s +ORDER BY \[ people\] .\[ id\] ASC OFFSET @0 ROWS FETCH NEXT @1 ROWS ONLY/
90
90
loader_sql = /SELECT.*FROM \[ people\] WITH\( UPDLOCK\) .*WHERE \[ people\] \. \[ id\] IN/
91
- assert_queries_match ( eager_ids_sql , loader_sql ) do
91
+
92
+ assert_queries_match ( /#{ eager_ids_sql } |#{ loader_sql } / ) do
92
93
people = Person . lock ( true ) . limit ( 5 ) . offset ( 10 ) . includes ( :readers ) . references ( :readers ) . to_a
93
94
_ ( people [ 0 ] . first_name ) . must_equal "Thing_10"
94
95
_ ( people [ 1 ] . first_name ) . must_equal "Thing_11"
0 commit comments