| 72 | | // "WHERE" ConditionalExpression |
| 73 | | // ConditionalExpression = ConditionalTerm {"OR" ConditionalTerm} |
| 74 | | // ConditionalTerm = ConditionalFactor {"AND" ConditionalFactor} |
| 75 | | // ConditionalFactor = ["NOT"] ConditionalPrimary |
| 76 | | // ConditionalPrimary = SimpleConditionalExpression | "(" ConditionalExpression ")" |
| 77 | | // SimpleConditionalExpression |
| 78 | | // = Expression (ComparisonExpression | BetweenExpression | LikeExpression |
| 79 | | // | InExpression | NullComparisonExpression) | ExistsExpression |
| | 90 | $this->assertSqlGeneration( |
| | 91 | 'SELECT u.username, u.name FROM CmsUser u', |
| | 92 | 'SELECT cu.username AS cu__username, cu.name AS cu__name FROM cms_user cu WHERE 1 = 1' |
| | 93 | ); |
| | 94 | } |
| 83 | | 'SELECT u.* FROM CmsUser u WHERE id = ?', |
| 84 | | 'SELECT cu.id AS cu__id, cu.status AS cu__status, cu.username AS cu__username, cu.name AS cu__name FROM cms_user cu WHERE cu.id = ?' |
| | 102 | 'SELECT u.*, p.* FROM CmsUser u, u.phonenumbers p', |
| | 103 | 'SELECT cu.id AS cu__id, cu.status AS cu__status, cu.username AS cu__username, cu.name AS cu__name FROM cms_user cu WHERE 1 = 1' |
| | 104 | ); |
| | 105 | } |
| | 106 | */ |
| | 107 | |
| | 108 | public function testSelectDistinctIsSupported() |
| | 109 | { |
| | 110 | $this->assertSqlGeneration( |
| | 111 | 'SELECT DISTINCT u.name FROM CmsUser u', |
| | 112 | 'SELECT DISTINCT cu.name AS cu__name FROM cms_user cu WHERE 1 = 1' |
| | 113 | ); |
| | 114 | } |
| | 115 | |
| | 116 | |
| | 117 | public function testAggregateFunctionInSelect() |
| | 118 | { |
| | 119 | $this->assertSqlGeneration( |
| | 120 | 'SELECT COUNT(u.id) FROM CmsUser u GROUP BY u.id', |
| | 121 | 'SELECT COUNT(cu.id) AS dctrn__0 FROM cms_user cu WHERE 1 = 1 GROUP BY cu.id' |
| | 122 | ); |
| | 123 | } |
| | 124 | |
| | 125 | public function testAggregateFunctionWithDistinctInSelect() |
| | 126 | { |
| | 127 | $this->assertSqlGeneration( |
| | 128 | 'SELECT COUNT(DISTINCT u.name) FROM CmsUser u', |
| | 129 | 'SELECT COUNT(DISTINCT cu.name) AS dctrn__0 FROM cms_user cu WHERE 1 = 1' |
| | 130 | ); |
| | 131 | } |
| | 132 | |
| | 133 | |
| | 134 | public function testFunctionalExpressionsSupportedInWherePart() |
| | 135 | { |
| | 136 | $this->assertSqlGeneration( |
| | 137 | "SELECT u.name FROM CmsUser u WHERE TRIM(u.name) = 'someone'", |
| | 138 | "SELECT cu.name AS cu__name FROM cms_user cu WHERE TRIM(cu.name) = ''someone''" // SQLite double slashes for strings |
| | 139 | ); |
| | 140 | } |
| | 141 | |
| | 142 | |
| | 143 | public function testArithmeticExpressionsSupportedInWherePart() |
| | 144 | { |
| | 145 | $this->assertSqlGeneration( |
| | 146 | 'SELECT u.* FROM CmsUser u WHERE ((u.id + 5000) * u.id + 3) < 10000000', |
| | 147 | 'SELECT cu.id AS cu__id, cu.status AS cu__status, cu.username AS cu__username, cu.name AS cu__name FROM cms_user cu WHERE ((cu.id + 5000) * cu.id + 3) < 10000000' |
| | 148 | ); |
| | 149 | } |
| | 150 | |
| | 151 | |
| | 152 | public function testInExpressionSupportedInWherePart() |
| | 153 | { |
| | 154 | $this->assertSqlGeneration( |
| | 155 | 'SELECT * FROM CmsUser WHERE CmsUser.id IN (1, 2)', |
| | 156 | 'SELECT cu.id AS cu__id, cu.status AS cu__status, cu.username AS cu__username, cu.name AS cu__name FROM cms_user cu WHERE cu.id IN (1, 2)' |
| | 157 | ); |
| | 158 | } |
| | 159 | |
| | 160 | |
| | 161 | public function testNotInExpressionSupportedInWherePart() |
| | 162 | { |
| | 163 | $this->assertSqlGeneration( |
| | 164 | 'SELECT * FROM CmsUser WHERE CmsUser.id NOT IN (1)', |
| | 165 | 'SELECT cu.id AS cu__id, cu.status AS cu__status, cu.username AS cu__username, cu.name AS cu__name FROM cms_user cu WHERE cu.id NOT IN (1)' |