@@ -11,82 +11,59 @@ use Tester\Assert;
1111require __DIR__ . '/bootstrap.php ' ;
1212
1313$ tests = function ($ conn ) {
14- $ resource = $ conn ->getDriver ()->getResource ();
15- $ version = is_resource ($ resource )
16- ? sqlsrv_server_info ($ resource )['SQLServerVersion ' ]
17- : $ resource ->getAttribute (PDO ::ATTR_SERVER_VERSION );
14+ // Limit and offset
15+ Assert::same (
16+ 'SELECT 1 OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY ' ,
17+ $ conn ->translate ('SELECT 1 %ofs %lmt ' , 10 , 10 ),
18+ );
1819
19- // MsSQL2012+
20- if (version_compare ($ version , '11.0 ' ) >= 0 ) {
21- // Limit and offset
22- Assert::same (
23- 'SELECT 1 OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY ' ,
24- $ conn ->translate ('SELECT 1 %ofs %lmt ' , 10 , 10 ),
25- );
20+ // Limit only
21+ Assert::same (
22+ 'SELECT 1 OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY ' ,
23+ $ conn ->translate ('SELECT 1 %lmt ' , 10 ),
24+ );
2625
27- // Limit only
28- Assert::same (
29- 'SELECT 1 OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY ' ,
30- $ conn ->translate ('SELECT 1 %lmt ' , 10 ),
31- );
26+ // Offset only
27+ Assert::same (
28+ 'SELECT 1 OFFSET 10 ROWS ' ,
29+ $ conn ->translate ('SELECT 1 %ofs ' , 10 ),
30+ );
3231
33- // Offset only
34- Assert::same (
35- 'SELECT 1 OFFSET 10 ROWS ' ,
36- $ conn ->translate ('SELECT 1 %ofs ' , 10 ),
37- );
32+ // Offset invalid
33+ Assert::error (
34+ function () use ($ conn ) {
35+ $ conn ->translate ('SELECT 1 %ofs ' , -10 );
36+ },
37+ Dibi \NotSupportedException::class,
38+ 'Negative offset or limit. ' ,
39+ );
3840
39- // Offset invalid
40- Assert::error (
41- function () use ($ conn ) {
42- $ conn ->translate ('SELECT 1 %ofs ' , -10 );
43- },
44- Dibi \NotSupportedException::class,
45- 'Negative offset or limit. ' ,
46- );
41+ // Limit invalid
42+ Assert::error (
43+ function () use ($ conn ) {
44+ $ conn ->translate ('SELECT 1 %lmt ' , -10 );
45+ },
46+ Dibi \NotSupportedException::class,
47+ 'Negative offset or limit. ' ,
48+ );
4749
48- // Limit invalid
49- Assert::error (
50- function () use ($ conn ) {
51- $ conn ->translate ('SELECT 1 %lmt ' , -10 );
52- },
53- Dibi \NotSupportedException::class,
54- 'Negative offset or limit. ' ,
55- );
50+ // Limit invalid, offset valid
51+ Assert::error (
52+ function () use ($ conn ) {
53+ $ conn ->translate ('SELECT 1 %ofs % lmt ' , 10 , -10 );
54+ },
55+ Dibi \NotSupportedException::class,
56+ 'Negative offset or limit. ' ,
57+ );
5658
57- // Limit invalid, offset valid
58- Assert::error (
59- function () use ($ conn ) {
60- $ conn ->translate ('SELECT 1 %ofs %lmt ' , 10 , -10 );
61- },
62- Dibi \NotSupportedException::class,
63- 'Negative offset or limit. ' ,
64- );
65-
66- // Limit valid, offset invalid
67- Assert::error (
68- function () use ($ conn ) {
69- $ conn ->translate ('SELECT 1 %ofs %lmt ' , -10 , 10 );
70- },
71- Dibi \NotSupportedException::class,
72- 'Negative offset or limit. ' ,
73- );
74- } else {
75- Assert::same (
76- 'SELECT TOP (1) * FROM (SELECT 1) t ' ,
77- $ conn ->translate ('SELECT 1 %lmt ' , 1 ),
78- );
79-
80- Assert::same (
81- 'SELECT 1 ' ,
82- $ conn ->translate ('SELECT 1 %lmt ' , -10 ),
83- );
84-
85- Assert::exception (
86- fn () => $ conn ->translate ('SELECT 1 %ofs %lmt ' , 10 , 10 ),
87- Dibi \NotSupportedException::class,
88- );
89- }
59+ // Limit valid, offset invalid
60+ Assert::error (
61+ function () use ($ conn ) {
62+ $ conn ->translate ('SELECT 1 %ofs %lmt ' , -10 , 10 );
63+ },
64+ Dibi \NotSupportedException::class,
65+ 'Negative offset or limit. ' ,
66+ );
9067};
9168
9269$ conn = new Dibi \Connection ($ config );
0 commit comments