508 'WHERE U eid %(x)s, X owned_by U ' |
508 'WHERE U eid %(x)s, X owned_by U ' |
509 'HAVING COUNT(X) > 10', {'x': self.ueid}) |
509 'HAVING COUNT(X) > 10', {'x': self.ueid}) |
510 self.assertEquals(len(rset.rows), 1) |
510 self.assertEquals(len(rset.rows), 1) |
511 self.assertEquals(rset.rows[0][0], self.ueid) |
511 self.assertEquals(rset.rows[0][0], self.ueid) |
512 |
512 |
|
513 def test_select_having_non_aggregat_1(self): |
|
514 rset = self.execute('Any L WHERE X login L, X creation_date CD ' |
|
515 'HAVING YEAR(CD) = %s' % date.today().year) |
|
516 self.assertListEquals(rset.rows, |
|
517 [[u'admin'], |
|
518 [u'anon']]) |
|
519 |
|
520 def test_select_having_non_aggregat_2(self): |
|
521 rset = self.execute('Any L GROUPBY L WHERE X login L, X in_group G, ' |
|
522 'X creation_date CD HAVING YEAR(CD) = %s OR COUNT(G) > 1' |
|
523 % date.today().year) |
|
524 self.assertListEquals(rset.rows, |
|
525 [[u'admin'], |
|
526 [u'anon']]) |
|
527 |
513 def test_select_complex_sort(self): |
528 def test_select_complex_sort(self): |
514 """need sqlite including http://www.sqlite.org/cvstrac/tktview?tn=3773 fix""" |
529 """need sqlite including http://www.sqlite.org/cvstrac/tktview?tn=3773 fix""" |
515 rset = self.execute('Any X ORDERBY X,D LIMIT 5 WHERE X creation_date D') |
530 rset = self.execute('Any X ORDERBY X,D LIMIT 5 WHERE X creation_date D') |
516 result = rset.rows |
531 result = rset.rows |
517 result.sort() |
532 result.sort() |