server/test/unittest_rql2sql.py
changeset 3524 a3431f4e2f40
parent 3447 0a0f8df4a2f7
parent 3520 eb508952ee81
child 3589 a5432f99f2d9
equal deleted inserted replaced
3505:c0c7a944c00d 3524:a3431f4e2f40
   581     ('Any X WHERE X eid > 12, X is Note',
   581     ('Any X WHERE X eid > 12, X is Note',
   582      """SELECT X.eid
   582      """SELECT X.eid
   583 FROM entities AS X
   583 FROM entities AS X
   584 WHERE X.type='Note' AND X.eid>12"""),
   584 WHERE X.type='Note' AND X.eid>12"""),
   585 
   585 
   586     ('Any X, T WHERE X eid > 12, X title T',
   586     ('Any X, T WHERE X eid > 12, X title T, X is IN (Bookmark, Card)',
   587      """SELECT X.cw_eid, X.cw_title
   587      """SELECT X.cw_eid, X.cw_title
   588 FROM cw_Bookmark AS X
   588 FROM cw_Bookmark AS X
   589 WHERE X.cw_eid>12
   589 WHERE X.cw_eid>12
   590 UNION ALL
   590 UNION ALL
   591 SELECT X.cw_eid, X.cw_title
   591 SELECT X.cw_eid, X.cw_title
   592 FROM cw_Card AS X
   592 FROM cw_Card AS X
   593 WHERE X.cw_eid>12
       
   594 UNION ALL
       
   595 SELECT X.cw_eid, X.cw_title
       
   596 FROM cw_EmailThread AS X
       
   597 WHERE X.cw_eid>12"""),
   593 WHERE X.cw_eid>12"""),
   598 
   594 
   599     ('Any X',
   595     ('Any X',
   600      '''SELECT X.eid
   596      '''SELECT X.eid
   601 FROM entities AS X'''),
   597 FROM entities AS X'''),
   752     ('Any X WHERE NOT Y evaluee X, Y is CWUser',
   748     ('Any X WHERE NOT Y evaluee X, Y is CWUser',
   753      '''SELECT X.cw_eid
   749      '''SELECT X.cw_eid
   754 FROM cw_Note AS X
   750 FROM cw_Note AS X
   755 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0,cw_CWUser AS Y WHERE rel_evaluee0.eid_from=Y.cw_eid AND rel_evaluee0.eid_to=X.cw_eid)'''),
   751 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0,cw_CWUser AS Y WHERE rel_evaluee0.eid_from=Y.cw_eid AND rel_evaluee0.eid_to=X.cw_eid)'''),
   756 
   752 
   757     ('Any X,T WHERE X title T, NOT X is Bookmark',
   753     ('Any X,RT WHERE X relation_type RT, NOT X is CWAttribute',
   758      '''SELECT X.cw_eid, X.cw_title
   754      '''SELECT X.cw_eid, X.cw_relation_type
   759 FROM cw_Card AS X
   755 FROM cw_CWRelation AS X
   760 UNION ALL
   756 WHERE X.cw_relation_type IS NOT NULL'''),
   761 SELECT X.cw_eid, X.cw_title
       
   762 FROM cw_EmailThread AS X'''),
       
   763 
   757 
   764     ('Any K,V WHERE P is CWProperty, P pkey K, P value V, NOT P for_user U',
   758     ('Any K,V WHERE P is CWProperty, P pkey K, P value V, NOT P for_user U',
   765      '''SELECT P.cw_pkey, P.cw_value
   759      '''SELECT P.cw_pkey, P.cw_value
   766 FROM cw_CWProperty AS P
   760 FROM cw_CWProperty AS P
   767 WHERE P.cw_for_user IS NULL'''),
   761 WHERE P.cw_for_user IS NULL'''),
   772 WHERE NOT EXISTS(SELECT 1 FROM cw_Affaire AS X WHERE X.cw_in_state=S.cw_eid)
   766 WHERE NOT EXISTS(SELECT 1 FROM cw_Affaire AS X WHERE X.cw_in_state=S.cw_eid)
   773 INTERSECT
   767 INTERSECT
   774 SELECT S.cw_eid
   768 SELECT S.cw_eid
   775 FROM cw_State AS S
   769 FROM cw_State AS S
   776 WHERE NOT EXISTS(SELECT 1 FROM cw_CWUser AS X WHERE X.cw_in_state=S.cw_eid)'''),
   770 WHERE NOT EXISTS(SELECT 1 FROM cw_CWUser AS X WHERE X.cw_in_state=S.cw_eid)'''),
   777     ]
   771 
       
   772     ('Any S WHERE NOT(X in_state S, S name "somename"), X is CWUser',
       
   773      '''SELECT S.cw_eid
       
   774 FROM cw_State AS S
       
   775 WHERE NOT EXISTS(SELECT 1 FROM cw_CWUser AS X WHERE X.cw_in_state=S.cw_eid AND S.cw_name=somename)'''),
       
   776    
       
   777 # XXXFIXME fail
       
   778 #         ('Any X,RT WHERE X relation_type RT?, NOT X is CWAttribute',
       
   779 #      '''SELECT X.cw_eid, X.cw_relation_type
       
   780 # FROM cw_CWRelation AS X'''),
       
   781 ]
   778 
   782 
   779 OUTER_JOIN = [
   783 OUTER_JOIN = [
   780     ('Any X,S WHERE X travaille S?',
   784     ('Any X,S WHERE X travaille S?',
   781      '''SELECT X.cw_eid, rel_travaille0.eid_to
   785      '''SELECT X.cw_eid, rel_travaille0.eid_to
   782 FROM cw_Personne AS X LEFT OUTER JOIN travaille_relation AS rel_travaille0 ON (rel_travaille0.eid_from=X.cw_eid)'''
   786 FROM cw_Personne AS X LEFT OUTER JOIN travaille_relation AS rel_travaille0 ON (rel_travaille0.eid_from=X.cw_eid)'''