@@ -22,6 +22,31 @@ public function testBuilder(): void
2222 . 'ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c) ' ,
2323 $ stmt ->build ()
2424 );
25+
26+ $ parser = new Parser ('SELECT NULL IS NULL ' );
27+ $ stmt = $ parser ->statements [0 ];
28+
29+ $ this ->assertEquals ('SELECT NULL IS NULL ' , $ stmt ->build ());
30+
31+ $ parser = new Parser ('SELECT NOT 1 ' );
32+ $ stmt = $ parser ->statements [0 ];
33+
34+ $ this ->assertEquals ('SELECT NOT 1 ' , $ stmt ->build ());
35+
36+ $ parser = new Parser ('SELECT 1 BETWEEN 0 AND 2 ' );
37+ $ stmt = $ parser ->statements [0 ];
38+
39+ $ this ->assertEquals ('SELECT 1 BETWEEN 0 AND 2 ' , $ stmt ->build ());
40+
41+ $ parser = new Parser ("SELECT 'a' NOT REGEXP '^[a-d]' " );
42+ $ stmt = $ parser ->statements [0 ];
43+
44+ $ this ->assertEquals ("SELECT 'a' NOT REGEXP '^[a-d]' " , $ stmt ->build ());
45+
46+ $ parser = new Parser ("SELECT 'a' RLIKE 'a' " );
47+ $ stmt = $ parser ->statements [0 ];
48+
49+ $ this ->assertEquals ("SELECT 'a' RLIKE 'a' " , $ stmt ->build ());
2550 }
2651
2752 public function testBuilderUnion (): void
@@ -35,6 +60,34 @@ public function testBuilderUnion(): void
3560 );
3661 }
3762
63+ public function testBuilderWithIsNull (): void
64+ {
65+ $ parser = new Parser ('SELECT `test3`.`t1` is not null AS `is_not_null` FROM `test3` ; ' );
66+ $ stmt = $ parser ->statements [0 ];
67+
68+ $ this ->assertEquals ('SELECT `test3`.`t1` is not null AS `is_not_null` FROM `test3` ' , $ stmt ->build ());
69+
70+ $ parser = new Parser ('SELECT test3.t1 is null AS `col1` FROM test3 ' );
71+ $ stmt = $ parser ->statements [0 ];
72+
73+ $ this ->assertEquals ('SELECT test3.t1 is null AS `col1` FROM test3 ' , $ stmt ->build ());
74+ }
75+
76+ public function testBuilderOrderByNull (): void
77+ {
78+ $ query = 'SELECT * FROM some_table ORDER BY some_col IS NULL DESC; ' ;
79+ $ parser = new Parser ($ query );
80+ $ stmt = $ parser ->statements [0 ];
81+
82+ $ this ->assertEquals ('SELECT * FROM some_table ORDER BY some_col IS NULL DESC ' , $ stmt ->build ());
83+
84+ $ query = 'SELECT * FROM some_table ORDER BY some_col IS NOT NULL; ' ;
85+ $ parser = new Parser ($ query );
86+ $ stmt = $ parser ->statements [0 ];
87+
88+ $ this ->assertEquals ('SELECT * FROM some_table ORDER BY some_col IS NOT NULL ASC ' , $ stmt ->build ());
89+ }
90+
3891 public function testBuilderAlias (): void
3992 {
4093 $ parser = new Parser (
0 commit comments