@@ -51,12 +51,15 @@ class DB2StatementBuilderSpec extends BaseStatementBuilderSpec {
51
51
.offset(20 )
52
52
} should equal(
53
53
s """
54
- |select mytable.col1 as mytable_col1, mytable.col2 as mytable_col2
55
- |from mytable
56
- |where (mytable.col1 = ?)
57
- |offset ? rows
54
+ |with subquery as
55
+ |(select mytable.col1 as mytable_col1, mytable.col2 as mytable_col2, row_number() over () as rownum
56
+ |from mytable
57
+ |where (mytable.col1 = ?))
58
+ |select mytable_col1, mytable_col2
59
+ |from subquery
60
+ |where rownum >= ?
58
61
""" .formatSql,
59
- List (List (123 , 20 ))
62
+ List (List (123 , 2 * 10 + 1 ))
60
63
)
61
64
}
62
65
@@ -68,13 +71,15 @@ class DB2StatementBuilderSpec extends BaseStatementBuilderSpec {
68
71
.page(2 , 10 )
69
72
} should equal(
70
73
s """
71
- |select mytable.col1 as mytable_col1, mytable.col2 as mytable_col2
72
- |from mytable
73
- |where (mytable.col1 = ?)
74
- |offset ? rows
75
- |fetch first 10 rows only
74
+ |with subquery as
75
+ |(select mytable.col1 as mytable_col1, mytable.col2 as mytable_col2, row_number() over () as rownum
76
+ |from mytable
77
+ |where (mytable.col1 = ?))
78
+ |select mytable_col1, mytable_col2
79
+ |from subquery
80
+ |where rownum between ? and ?
76
81
""" .formatSql,
77
- List (List (123 , 2 * 10 ))
82
+ List (List (123 , 2 * 10 + 1 , 2 * 10 + 10 ))
78
83
)
79
84
}
80
85
@@ -87,14 +92,15 @@ class DB2StatementBuilderSpec extends BaseStatementBuilderSpec {
87
92
.page(2 , 10 )
88
93
} should equal(
89
94
s """
90
- |select mytable.col1 as mytable_col1, mytable.col2 as mytable_col2
91
- |from mytable
92
- |where (mytable.col1 = ?)
93
- |order by mytable.col1
94
- |offset ? rows
95
- |fetch first 10 rows only
95
+ |with subquery as
96
+ |(select mytable.col1 as mytable_col1, mytable.col2 as mytable_col2, row_number() over (order by mytable.col1) as rownum
97
+ |from mytable
98
+ |where (mytable.col1 = ?))
99
+ |select mytable_col1, mytable_col2
100
+ |from subquery
101
+ |where rownum between ? and ?
96
102
""" .formatSql,
97
- List (List (123 , 2 * 10 ))
103
+ List (List (123 , 2 * 10 + 1 , 2 * 10 + 10 ))
98
104
)
99
105
}
100
106
@@ -166,15 +172,15 @@ class DB2StatementBuilderSpec extends BaseStatementBuilderSpec {
166
172
.optimize(10 )
167
173
} should equal(
168
174
s """
169
- |select mytable.col1 as mytable_col1, mytable.col2 as mytable_col2
170
- |from mytable
171
- |where (mytable.col1 = ?)
172
- |order by mytable.col1
173
- |offset ? rows
174
- |fetch first 10 rows only
175
- |optimize for 10 rows
175
+ |with subquery as
176
+ |(select mytable.col1 as mytable_col1, mytable.col2 as mytable_col2, row_number() over (order by mytable.col1) as rownum
177
+ |from mytable
178
+ |where ( mytable.col1 = ?))
179
+ |select mytable_col1, mytable_col2
180
+ |from subquery
181
+ |where rownum between ? and ?
176
182
""" .formatSql,
177
- List (List (123 , 10 ))
183
+ List (List (123 , 11 , 20 ))
178
184
)
179
185
}
180
186
@@ -187,14 +193,15 @@ class DB2StatementBuilderSpec extends BaseStatementBuilderSpec {
187
193
.page(15 , 16 )
188
194
} should equal(
189
195
s """
190
- |select 1 as a, sum(cast(? as integer)) as b, (3 + ?) as c
191
- |from one inner join two on ((? = ?) and (? <> ?))
192
- |where ((? = ?) and (? <> ?))
193
- |order by ?, ? desc
194
- |offset ? rows
195
- |fetch first 16 rows only
196
+ |with subquery as
197
+ |(select 1 as a, sum(cast(? as integer)) as b, (3 + ?) as c, row_number() over (order by ?, ? desc) as rownum
198
+ |from one inner join two on ((? = ?) and (? <> ?))
199
+ |where ((? = ?) and (? <> ?)))
200
+ |select a, b, c
201
+ |from subquery
202
+ |where rownum between ? and ?
196
203
""" .formatSql,
197
- List (List (2 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 * 16 ))
204
+ List (List (2 , 4 , 13 , 14 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 15 * 16 + 1 , 15 * 16 + 16 ))
198
205
)
199
206
}
200
207
0 commit comments