server/test/unittest_rql2sql.py
changeset 10553 1d824df4f2bd
parent 10475 a1e8dbb7215b
child 10589 7c23b7de2b8d
equal deleted inserted replaced
10552:0e7fab504305 10553:1d824df4f2bd
   394 SELECT _X.cw_name
   394 SELECT _X.cw_name
   395 FROM cw_Tag AS _X
   395 FROM cw_Tag AS _X
   396 ORDER BY 1'''),
   396 ORDER BY 1'''),
   397 
   397 
   398     # DISTINCT, can use relation under exists scope as principal
   398     # DISTINCT, can use relation under exists scope as principal
   399     ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)',
   399     ('DISTINCT Any X,Y WHERE X name "CWGroup", X is CWEType, Y eid IN(1, 2, 3), EXISTS(X read_permission Y)',
   400      '''SELECT DISTINCT _X.cw_eid, rel_read_permission0.eid_to
   400      '''SELECT DISTINCT _X.cw_eid, rel_read_permission0.eid_to
   401 FROM cw_CWEType AS _X, read_permission_relation AS rel_read_permission0
   401 FROM cw_CWEType AS _X, read_permission_relation AS rel_read_permission0
   402 WHERE _X.cw_name=CWGroup AND rel_read_permission0.eid_to IN(1, 2, 3) AND EXISTS(SELECT 1 WHERE rel_read_permission0.eid_from=_X.cw_eid)'''),
   402 WHERE _X.cw_name=CWGroup AND rel_read_permission0.eid_to IN(1, 2, 3) AND EXISTS(SELECT 1 WHERE rel_read_permission0.eid_from=_X.cw_eid)'''),
   403 
   403 
   404     # no distinct, Y can't be invariant
   404     # no distinct, Y can't be invariant
   405     ('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)',
   405     ('Any X,Y WHERE X name "CWGroup", X is CWEType, Y eid IN(1, 2, 3), EXISTS(X read_permission Y)',
   406      '''SELECT _X.cw_eid, _Y.cw_eid
   406      '''SELECT _X.cw_eid, _Y.cw_eid
   407 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   407 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   408 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid)
   408 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid)
   409 UNION ALL
   409 UNION ALL
   410 SELECT _X.cw_eid, _Y.cw_eid
   410 SELECT _X.cw_eid, _Y.cw_eid
   411 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   411 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   412 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid)'''),
   412 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid)'''),
   413 
   413 
   414     # DISTINCT but NEGED exists, can't be invariant
   414     # DISTINCT but NEGED exists, can't be invariant
   415     ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT EXISTS(X read_permission Y)',
   415     ('DISTINCT Any X,Y WHERE X name "CWGroup", X is CWEType, Y eid IN(1, 2, 3), NOT EXISTS(X read_permission Y)',
   416      '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   416      '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   417 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   417 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   418 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))
   418 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))
   419 UNION
   419 UNION
   420 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   420 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   421 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   421 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   422 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))'''),
   422 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))'''),
   423 
   423 
   424     # should generate the same query as above
   424     # should generate the same query as above
   425     ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y',
   425     ('DISTINCT Any X,Y WHERE X name "CWGroup", X is CWEType, Y eid IN(1, 2, 3), NOT X read_permission Y',
   426      '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   426      '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   427 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   427 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   428 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))
   428 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))
   429 UNION
   429 UNION
   430 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   430 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   431 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   431 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   432 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))'''),
   432 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))'''),
   433 
   433 
   434     # neged relation, can't be inveriant
   434     # neged relation, can't be inveriant
   435     ('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y',
   435     ('Any X,Y WHERE X name "CWGroup", X is CWEType, Y eid IN(1, 2, 3), NOT X read_permission Y',
   436      '''SELECT _X.cw_eid, _Y.cw_eid
   436      '''SELECT _X.cw_eid, _Y.cw_eid
   437 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   437 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   438 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))
   438 WHERE _X.cw_name=CWGroup AND _Y.cw_eid IN(1, 2, 3) AND NOT (EXISTS(SELECT 1 FROM read_permission_relation AS rel_read_permission0 WHERE rel_read_permission0.eid_from=_X.cw_eid AND rel_read_permission0.eid_to=_Y.cw_eid))
   439 UNION ALL
   439 UNION ALL
   440 SELECT _X.cw_eid, _Y.cw_eid
   440 SELECT _X.cw_eid, _Y.cw_eid