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