server/test/unittest_rql2sql.py
changeset 4191 01638461d4b0
parent 3998 94cc7cad3d2d
child 4252 6c4f109c2b03
equal deleted inserted replaced
4190:742e3eb16f81 4191:01638461d4b0
   357 
   357 
   358     # DISTINCT, can use relation under exists scope as principal
   358     # DISTINCT, can use relation under exists scope as principal
   359     ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)',
   359     ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)',
   360      '''SELECT DISTINCT _X.cw_eid, rel_read_permission0.eid_to
   360      '''SELECT DISTINCT _X.cw_eid, rel_read_permission0.eid_to
   361 FROM cw_CWEType AS _X, read_permission_relation AS rel_read_permission0
   361 FROM cw_CWEType AS _X, read_permission_relation AS rel_read_permission0
   362 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)
       
   363 UNION
       
   364 SELECT DISTINCT _X.cw_eid, rel_read_permission0.eid_to
       
   365 FROM cw_CWRType AS _X, read_permission_relation AS rel_read_permission0
       
   366 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)'''),
   362 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)'''),
   367 
   363 
   368     # no distinct, Y can't be invariant
   364     # no distinct, Y can't be invariant
   369     ('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)',
   365     ('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), EXISTS(X read_permission Y)',
   370      '''SELECT _X.cw_eid, _Y.cw_eid
   366      '''SELECT _X.cw_eid, _Y.cw_eid
   371 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   367 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   372 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)
   368 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)
   373 UNION ALL
   369 UNION ALL
   374 SELECT _X.cw_eid, _Y.cw_eid
   370 SELECT _X.cw_eid, _Y.cw_eid
   375 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   371 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   376 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)
       
   377 UNION ALL
       
   378 SELECT _X.cw_eid, _Y.cw_eid
       
   379 FROM cw_CWGroup AS _Y, cw_CWRType AS _X
       
   380 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)
       
   381 UNION ALL
       
   382 SELECT _X.cw_eid, _Y.cw_eid
       
   383 FROM cw_CWRType AS _X, cw_RQLExpression AS _Y
       
   384 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)'''),
   372 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)'''),
   385 
   373 
   386     # DISTINCT but NEGED exists, can't be invariant
   374     # DISTINCT but NEGED exists, can't be invariant
   387     ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT EXISTS(X read_permission Y)',
   375     ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT EXISTS(X read_permission Y)',
   388      '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   376      '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   389 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   377 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   390 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)
   378 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)
   391 UNION
   379 UNION
   392 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   380 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   393 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   381 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   394 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)
       
   395 UNION
       
   396 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
       
   397 FROM cw_CWGroup AS _Y, cw_CWRType AS _X
       
   398 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)
       
   399 UNION
       
   400 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
       
   401 FROM cw_CWRType AS _X, cw_RQLExpression AS _Y
       
   402 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)'''),
   382 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)'''),
   403 
   383 
   404     # should generate the same query as above
   384     # should generate the same query as above
   405     ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y',
   385     ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y',
   406      '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   386      '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   407 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   387 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   408 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)
   388 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)
   409 UNION
   389 UNION
   410 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   390 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
   411 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   391 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   412 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)
       
   413 UNION
       
   414 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
       
   415 FROM cw_CWGroup AS _Y, cw_CWRType AS _X
       
   416 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)
       
   417 UNION
       
   418 SELECT DISTINCT _X.cw_eid, _Y.cw_eid
       
   419 FROM cw_CWRType AS _X, cw_RQLExpression AS _Y
       
   420 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)'''),
   392 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)'''),
   421 
   393 
   422     # neged relation, can't be inveriant
   394     # neged relation, can't be inveriant
   423     ('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y',
   395     ('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y',
   424      '''SELECT _X.cw_eid, _Y.cw_eid
   396      '''SELECT _X.cw_eid, _Y.cw_eid
   425 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   397 FROM cw_CWEType AS _X, cw_CWGroup AS _Y
   426 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)
   398 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)
   427 UNION ALL
   399 UNION ALL
   428 SELECT _X.cw_eid, _Y.cw_eid
   400 SELECT _X.cw_eid, _Y.cw_eid
   429 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   401 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y
   430 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)
       
   431 UNION ALL
       
   432 SELECT _X.cw_eid, _Y.cw_eid
       
   433 FROM cw_CWGroup AS _Y, cw_CWRType AS _X
       
   434 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)
       
   435 UNION ALL
       
   436 SELECT _X.cw_eid, _Y.cw_eid
       
   437 FROM cw_CWRType AS _X, cw_RQLExpression 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)'''),
   402 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 
   403 
   440     ('Any MAX(X)+MIN(X), N GROUPBY N WHERE X name N, X is IN (Basket, Folder, Tag);',
   404     ('Any MAX(X)+MIN(X), N GROUPBY N WHERE X name N, X is IN (Basket, Folder, Tag);',
   441      '''SELECT (MAX(T1.C0) + MIN(T1.C0)), T1.C1 FROM (SELECT _X.cw_eid AS C0, _X.cw_name AS C1
   405      '''SELECT (MAX(T1.C0) + MIN(T1.C0)), T1.C1 FROM (SELECT _X.cw_eid AS C0, _X.cw_name AS C1
   442 FROM cw_Basket AS _X
   406 FROM cw_Basket AS _X