server/test/unittest_rql2sql.py
branchstable
changeset 7357 5ad3154a8810
parent 7252 adb1673efa5f
child 7359 40490b9e0a6e
child 7396 8345ee2c2ea6
equal deleted inserted replaced
7354:f627ab500fda 7357:5ad3154a8810
   833      '''SELECT _X.cw_eid
   833      '''SELECT _X.cw_eid
   834 FROM cw_Personne AS _X LEFT OUTER JOIN connait_relation AS rel_connait0 ON (rel_connait0.eid_to=_X.cw_eid)
   834 FROM cw_Personne AS _X LEFT OUTER JOIN connait_relation AS rel_connait0 ON (rel_connait0.eid_to=_X.cw_eid)
   835 WHERE _X.cw_eid=12'''
   835 WHERE _X.cw_eid=12'''
   836     ),
   836     ),
   837     ("Any P WHERE X eid 12, P? concerne X, X todo_by S",
   837     ("Any P WHERE X eid 12, P? concerne X, X todo_by S",
   838      '''SELECT rel_concerne0.eid_from
   838      '''SELECT rel_concerne1.eid_from
   839 FROM todo_by_relation AS rel_todo_by1 LEFT OUTER JOIN concerne_relation AS rel_concerne0 ON (rel_concerne0.eid_to=12)
   839 FROM todo_by_relation AS rel_todo_by0 LEFT OUTER JOIN concerne_relation AS rel_concerne1 ON (rel_concerne1.eid_to=12)
   840 WHERE rel_todo_by1.eid_from=12'''
   840 WHERE rel_todo_by0.eid_from=12'''
   841     ),
   841     ),
   842 
   842 
   843     ('Any GN, TN ORDERBY GN WHERE T tags G?, T name TN, G name GN',
   843     ('Any GN, TN ORDERBY GN WHERE T tags G?, T name TN, G name GN',
   844     '''
   844     '''
   845 SELECT _T0.C1, _T.cw_name
   845 SELECT _T0.C1, _T.cw_name
   929 SELECT _S.cw_eid AS C0, _A.cw_eid AS C1, _A.cw_modification_date AS C2
   929 SELECT _S.cw_eid AS C0, _A.cw_eid AS C1, _A.cw_modification_date AS C2
   930 FROM cw_CWUser AS _A, cw_Note AS _S
   930 FROM cw_CWUser AS _A, cw_Note AS _S
   931 WHERE _S.cw_ambiguous_inlined=_A.cw_eid) AS _T0 ON (_X.cw_multisource_inlined_rel=_T0.C0)'''
   931 WHERE _S.cw_ambiguous_inlined=_A.cw_eid) AS _T0 ON (_X.cw_multisource_inlined_rel=_T0.C0)'''
   932     ),
   932     ),
   933 
   933 
       
   934     ('Any X,T,OT WHERE X tags T, OT? tags X, X is Tag, X eid 123',
       
   935      '''SELECT rel_tags0.eid_from, rel_tags0.eid_to, rel_tags1.eid_from
       
   936 FROM tags_relation AS rel_tags0 LEFT OUTER JOIN tags_relation AS rel_tags1 ON (rel_tags1.eid_to=123)
       
   937 WHERE rel_tags0.eid_from=123'''),
   934     ]
   938     ]
   935 
   939 
   936 VIRTUAL_VARS = [
   940 VIRTUAL_VARS = [
   937 
   941 
   938     ('Any X WHERE X is CWUser, X creation_date > D1, Y creation_date D1, Y login "SWEB09"',
   942     ('Any X WHERE X is CWUser, X creation_date > D1, Y creation_date D1, Y login "SWEB09"',
  1599         # X without in_group relation, or some G without it.
  1603         # X without in_group relation, or some G without it.
  1600         self._check('Any 1 WHERE NOT X in_group G, X is CWUser',
  1604         self._check('Any 1 WHERE NOT X in_group G, X is CWUser',
  1601                     '''SELECT 1
  1605                     '''SELECT 1
  1602 WHERE NOT (EXISTS(SELECT 1 FROM in_group_relation AS rel_in_group0))''')
  1606 WHERE NOT (EXISTS(SELECT 1 FROM in_group_relation AS rel_in_group0))''')
  1603 
  1607 
  1604     def test_nonregr_subquery_missing_join(self):
  1608     def test_nonregr_outer_join_multiple(self):
  1605         self._check('Any COUNT(P1148),G GROUPBY G '
  1609         self._check('Any COUNT(P1148),G GROUPBY G '
  1606                     'WHERE G owned_by D, D eid 1122, K1148 bookmarked_by P1148, '
  1610                     'WHERE G owned_by D, D eid 1122, K1148 bookmarked_by P1148, '
  1607                     'K1148 eid 1148, P1148? in_group G',
  1611                     'K1148 eid 1148, P1148? in_group G',
  1608                     '''SELECT COUNT(rel_bookmarked_by1.eid_to), _G.cw_eid
  1612                     '''SELECT COUNT(rel_bookmarked_by1.eid_to), _G.cw_eid
  1609 FROM owned_by_relation AS rel_owned_by0, cw_CWGroup AS _G LEFT OUTER JOIN in_group_relation AS rel_in_group2 ON (rel_in_group2.eid_to=_G.cw_eid) LEFT OUTER JOIN bookmarked_by_relation AS rel_bookmarked_by1 ON (rel_in_group2.eid_from=rel_bookmarked_by1.eid_to)
  1613 FROM owned_by_relation AS rel_owned_by0, cw_CWGroup AS _G LEFT OUTER JOIN in_group_relation AS rel_in_group2 ON (rel_in_group2.eid_to=_G.cw_eid) LEFT OUTER JOIN bookmarked_by_relation AS rel_bookmarked_by1 ON (rel_in_group2.eid_from=rel_bookmarked_by1.eid_to)
  1610 WHERE rel_owned_by0.eid_from=_G.cw_eid AND rel_owned_by0.eid_to=1122 AND rel_bookmarked_by1.eid_from=1148
  1614 WHERE rel_owned_by0.eid_from=_G.cw_eid AND rel_owned_by0.eid_to=1122 AND rel_bookmarked_by1.eid_from=1148
  1611 GROUP BY _G.cw_eid'''
  1615 GROUP BY _G.cw_eid'''
  1612                     )
  1616                     )
  1613 
  1617 
  1614     def test_nonregr_subquery_missing_join2(self):
  1618     def test_nonregr_outer_join_multiple2(self):
  1615         self._check('Any COUNT(P1148),G GROUPBY G '
  1619         self._check('Any COUNT(P1148),G GROUPBY G '
  1616                     'WHERE G owned_by D, D eid 1122, K1148 bookmarked_by P1148?, '
  1620                     'WHERE G owned_by D, D eid 1122, K1148 bookmarked_by P1148?, '
  1617                     'K1148 eid 1148, P1148? in_group G',
  1621                     'K1148 eid 1148, P1148? in_group G',
  1618                     '''SELECT COUNT(rel_bookmarked_by1.eid_to), _G.cw_eid
  1622                     '''SELECT COUNT(rel_bookmarked_by1.eid_to), _G.cw_eid
  1619 FROM owned_by_relation AS rel_owned_by0, cw_CWGroup AS _G LEFT OUTER JOIN in_group_relation AS rel_in_group2 ON (rel_in_group2.eid_to=_G.cw_eid) LEFT OUTER JOIN bookmarked_by_relation AS rel_bookmarked_by1 ON (rel_bookmarked_by1.eid_from=1148 AND rel_in_group2.eid_from=rel_bookmarked_by1.eid_to)
  1623 FROM owned_by_relation AS rel_owned_by0, cw_CWGroup AS _G LEFT OUTER JOIN in_group_relation AS rel_in_group2 ON (rel_in_group2.eid_to=_G.cw_eid) LEFT OUTER JOIN bookmarked_by_relation AS rel_bookmarked_by1 ON (rel_bookmarked_by1.eid_from=1148 AND rel_in_group2.eid_from=rel_bookmarked_by1.eid_to)