270 |
270 |
271 # Any O WHERE NOT S corrected_in O, S eid %(x)s, S concerns P, O version_of P, O in_state ST, NOT ST name "published", O modification_date MTIME ORDERBY MTIME DESC LIMIT 9 |
271 # Any O WHERE NOT S corrected_in O, S eid %(x)s, S concerns P, O version_of P, O in_state ST, NOT ST name "published", O modification_date MTIME ORDERBY MTIME DESC LIMIT 9 |
272 ('Any O WHERE NOT S ecrit_par O, S eid 1, S inline1 P, O inline2 P', |
272 ('Any O WHERE NOT S ecrit_par O, S eid 1, S inline1 P, O inline2 P', |
273 '''SELECT _O.cw_eid |
273 '''SELECT _O.cw_eid |
274 FROM cw_Note AS _S, cw_Personne AS _O |
274 FROM cw_Note AS _S, cw_Personne AS _O |
275 WHERE NOT EXISTS(SELECT 1 WHERE _S.cw_ecrit_par=_O.cw_eid) AND _S.cw_eid=1 AND _O.cw_inline2=_S.cw_inline1'''), |
275 WHERE NOT (_S.cw_ecrit_par=_O.cw_eid) AND _S.cw_eid=1 AND _O.cw_inline2=_S.cw_inline1'''), |
276 |
276 |
277 ('DISTINCT Any S ORDERBY stockproc(SI) WHERE NOT S ecrit_par O, S para SI', |
277 ('DISTINCT Any S ORDERBY stockproc(SI) WHERE NOT S ecrit_par O, S para SI', |
278 '''SELECT T1.C0 FROM (SELECT DISTINCT _S.cw_eid AS C0, STOCKPROC(_S.cw_para) AS C1 |
278 '''SELECT T1.C0 FROM (SELECT DISTINCT _S.cw_eid AS C0, STOCKPROC(_S.cw_para) AS C1 |
279 FROM cw_Note AS _S |
279 FROM cw_Note AS _S |
280 WHERE _S.cw_ecrit_par IS NULL |
280 WHERE _S.cw_ecrit_par IS NULL |
293 |
293 |
294 |
294 |
295 (' Any X,U WHERE C owned_by U, NOT X owned_by U, C eid 1, X eid 2', |
295 (' Any X,U WHERE C owned_by U, NOT X owned_by U, C eid 1, X eid 2', |
296 '''SELECT 2, rel_owned_by0.eid_to |
296 '''SELECT 2, rel_owned_by0.eid_to |
297 FROM owned_by_relation AS rel_owned_by0 |
297 FROM owned_by_relation AS rel_owned_by0 |
298 WHERE rel_owned_by0.eid_from=1 AND NOT EXISTS(SELECT 1 FROM owned_by_relation AS rel_owned_by1 WHERE rel_owned_by1.eid_from=2 AND rel_owned_by0.eid_to=rel_owned_by1.eid_to)'''), |
298 WHERE rel_owned_by0.eid_from=1 AND NOT (EXISTS(SELECT 1 FROM owned_by_relation AS rel_owned_by1 WHERE rel_owned_by1.eid_from=2 AND rel_owned_by0.eid_to=rel_owned_by1.eid_to))'''), |
299 |
299 |
300 ('Any GN WHERE X in_group G, G name GN, (G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon")))', |
300 ('Any GN WHERE X in_group G, G name GN, (G name "managers" OR EXISTS(X copain T, T login in ("comme", "cochon")))', |
301 '''SELECT _G.cw_name |
301 '''SELECT _G.cw_name |
302 FROM cw_CWGroup AS _G, in_group_relation AS rel_in_group0 |
302 FROM cw_CWGroup AS _G, in_group_relation AS rel_in_group0 |
303 WHERE rel_in_group0.eid_to=_G.cw_eid AND ((_G.cw_name=managers) OR (EXISTS(SELECT 1 FROM copain_relation AS rel_copain1, cw_CWUser AS _T WHERE rel_copain1.eid_from=rel_in_group0.eid_from AND rel_copain1.eid_to=_T.cw_eid AND _T.cw_login IN(comme, cochon))))'''), |
303 WHERE rel_in_group0.eid_to=_G.cw_eid AND ((_G.cw_name=managers) OR (EXISTS(SELECT 1 FROM copain_relation AS rel_copain1, cw_CWUser AS _T WHERE rel_copain1.eid_from=rel_in_group0.eid_from AND rel_copain1.eid_to=_T.cw_eid AND _T.cw_login IN(comme, cochon))))'''), |
347 WHERE _X.cw_login=admin AND _X.cw_eid=_Y.cw_eid'''), |
347 WHERE _X.cw_login=admin AND _X.cw_eid=_Y.cw_eid'''), |
348 |
348 |
349 ('Any L WHERE X login "admin", NOT X identity Y, Y login L', |
349 ('Any L WHERE X login "admin", NOT X identity Y, Y login L', |
350 '''SELECT _Y.cw_login |
350 '''SELECT _Y.cw_login |
351 FROM cw_CWUser AS _X, cw_CWUser AS _Y |
351 FROM cw_CWUser AS _X, cw_CWUser AS _Y |
352 WHERE _X.cw_login=admin AND NOT _X.cw_eid=_Y.cw_eid'''), |
352 WHERE _X.cw_login=admin AND NOT (_X.cw_eid=_Y.cw_eid)'''), |
353 |
353 |
354 ('Any L WHERE X login "admin", X identity Y?, Y login L', |
354 ('Any L WHERE X login "admin", X identity Y?, Y login L', |
355 '''SELECT _Y.cw_login |
355 '''SELECT _Y.cw_login |
356 FROM cw_CWUser AS _X LEFT OUTER JOIN cw_CWUser AS _Y ON (_X.cw_eid=_Y.cw_eid) |
356 FROM cw_CWUser AS _X LEFT OUTER JOIN cw_CWUser AS _Y ON (_X.cw_eid=_Y.cw_eid) |
357 WHERE _X.cw_login=admin'''), |
357 WHERE _X.cw_login=admin'''), |
385 |
385 |
386 # DISTINCT but NEGED exists, can't be invariant |
386 # 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)', |
387 ('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 |
388 '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid |
389 FROM cw_CWEType AS _X, cw_CWGroup AS _Y |
389 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) |
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)) |
391 UNION |
391 UNION |
392 SELECT DISTINCT _X.cw_eid, _Y.cw_eid |
392 SELECT DISTINCT _X.cw_eid, _Y.cw_eid |
393 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y |
393 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)'''), |
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 |
395 |
396 # should generate the same query as above |
396 # should generate the same query as above |
397 ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y', |
397 ('DISTINCT Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y', |
398 '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid |
398 '''SELECT DISTINCT _X.cw_eid, _Y.cw_eid |
399 FROM cw_CWEType AS _X, cw_CWGroup AS _Y |
399 FROM cw_CWEType AS _X, cw_CWGroup AS _Y |
400 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) |
400 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)) |
401 UNION |
401 UNION |
402 SELECT DISTINCT _X.cw_eid, _Y.cw_eid |
402 SELECT DISTINCT _X.cw_eid, _Y.cw_eid |
403 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y |
403 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y |
404 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)'''), |
404 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))'''), |
405 |
405 |
406 # neged relation, can't be inveriant |
406 # neged relation, can't be inveriant |
407 ('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y', |
407 ('Any X,Y WHERE X name "CWGroup", Y eid IN(1, 2, 3), NOT X read_permission Y', |
408 '''SELECT _X.cw_eid, _Y.cw_eid |
408 '''SELECT _X.cw_eid, _Y.cw_eid |
409 FROM cw_CWEType AS _X, cw_CWGroup AS _Y |
409 FROM cw_CWEType AS _X, cw_CWGroup AS _Y |
410 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) |
410 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)) |
411 UNION ALL |
411 UNION ALL |
412 SELECT _X.cw_eid, _Y.cw_eid |
412 SELECT _X.cw_eid, _Y.cw_eid |
413 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y |
413 FROM cw_CWEType AS _X, cw_RQLExpression AS _Y |
414 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)'''), |
414 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))'''), |
415 |
415 |
416 ('Any MAX(X)+MIN(X), N GROUPBY N WHERE X name N, X is IN (Basket, Folder, Tag);', |
416 ('Any MAX(X)+MIN(X), N GROUPBY N WHERE X name N, X is IN (Basket, Folder, Tag);', |
417 '''SELECT (MAX(T1.C0) + MIN(T1.C0)), T1.C1 FROM (SELECT _X.cw_eid AS C0, _X.cw_name AS C1 |
417 '''SELECT (MAX(T1.C0) + MIN(T1.C0)), T1.C1 FROM (SELECT _X.cw_eid AS C0, _X.cw_name AS C1 |
418 FROM cw_Basket AS _X |
418 FROM cw_Basket AS _X |
419 UNION ALL |
419 UNION ALL |
540 ('Any O,AA,AB,AC ORDERBY AC DESC ' |
540 ('Any O,AA,AB,AC ORDERBY AC DESC ' |
541 'WHERE NOT S use_email O, S eid 1, O is EmailAddress, O address AA, O alias AB, O modification_date AC, ' |
541 'WHERE NOT S use_email O, S eid 1, O is EmailAddress, O address AA, O alias AB, O modification_date AC, ' |
542 'EXISTS(A use_email O, EXISTS(A identity B, NOT B in_group D, D name "guests", D is CWGroup), A is CWUser), B eid 2', |
542 'EXISTS(A use_email O, EXISTS(A identity B, NOT B in_group D, D name "guests", D is CWGroup), A is CWUser), B eid 2', |
543 '''SELECT _O.cw_eid, _O.cw_address, _O.cw_alias, _O.cw_modification_date |
543 '''SELECT _O.cw_eid, _O.cw_address, _O.cw_alias, _O.cw_modification_date |
544 FROM cw_EmailAddress AS _O |
544 FROM cw_EmailAddress AS _O |
545 WHERE NOT EXISTS(SELECT 1 FROM use_email_relation AS rel_use_email0 WHERE rel_use_email0.eid_from=1 AND rel_use_email0.eid_to=_O.cw_eid) AND EXISTS(SELECT 1 FROM use_email_relation AS rel_use_email1 WHERE rel_use_email1.eid_to=_O.cw_eid AND EXISTS(SELECT 1 FROM cw_CWGroup AS _D WHERE rel_use_email1.eid_from=2 AND NOT EXISTS(SELECT 1 FROM in_group_relation AS rel_in_group2 WHERE rel_in_group2.eid_from=2 AND rel_in_group2.eid_to=_D.cw_eid) AND _D.cw_name=guests)) |
545 WHERE NOT (EXISTS(SELECT 1 FROM use_email_relation AS rel_use_email0 WHERE rel_use_email0.eid_from=1 AND rel_use_email0.eid_to=_O.cw_eid)) AND EXISTS(SELECT 1 FROM use_email_relation AS rel_use_email1 WHERE rel_use_email1.eid_to=_O.cw_eid AND EXISTS(SELECT 1 FROM cw_CWGroup AS _D WHERE rel_use_email1.eid_from=2 AND NOT (EXISTS(SELECT 1 FROM in_group_relation AS rel_in_group2 WHERE rel_in_group2.eid_from=2 AND rel_in_group2.eid_to=_D.cw_eid)) AND _D.cw_name=guests)) |
546 ORDER BY 4 DESC'''), |
546 ORDER BY 4 DESC'''), |
547 |
547 |
548 |
548 |
549 ("Any X WHERE X eid 0, X test TRUE", |
549 ("Any X WHERE X eid 0, X test TRUE", |
550 '''SELECT _X.cw_eid |
550 '''SELECT _X.cw_eid |
591 |
591 |
592 NEGATIONS = [ |
592 NEGATIONS = [ |
593 ("Personne X WHERE NOT X evaluee Y;", |
593 ("Personne X WHERE NOT X evaluee Y;", |
594 '''SELECT _X.cw_eid |
594 '''SELECT _X.cw_eid |
595 FROM cw_Personne AS _X |
595 FROM cw_Personne AS _X |
596 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_X.cw_eid)'''), |
596 WHERE NOT (EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_X.cw_eid))'''), |
597 |
597 |
598 ("Note N WHERE NOT X evaluee N, X eid 0", |
598 ("Note N WHERE NOT X evaluee N, X eid 0", |
599 '''SELECT _N.cw_eid |
599 '''SELECT _N.cw_eid |
600 FROM cw_Note AS _N |
600 FROM cw_Note AS _N |
601 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=0 AND rel_evaluee0.eid_to=_N.cw_eid)'''), |
601 WHERE NOT (EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=0 AND rel_evaluee0.eid_to=_N.cw_eid))'''), |
602 |
602 |
603 ('Any X WHERE NOT X travaille S, X is Personne', |
603 ('Any X WHERE NOT X travaille S, X is Personne', |
604 '''SELECT _X.cw_eid |
604 '''SELECT _X.cw_eid |
605 FROM cw_Personne AS _X |
605 FROM cw_Personne AS _X |
606 WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=_X.cw_eid)'''), |
606 WHERE NOT (EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=_X.cw_eid))'''), |
607 |
607 |
608 ("Personne P where not P datenaiss TODAY", |
608 ("Personne P where not P datenaiss TODAY", |
609 '''SELECT _P.cw_eid |
609 '''SELECT _P.cw_eid |
610 FROM cw_Personne AS _P |
610 FROM cw_Personne AS _P |
611 WHERE NOT (DATE(_P.cw_datenaiss)=CURRENT_DATE)'''), |
611 WHERE NOT (DATE(_P.cw_datenaiss)=CURRENT_DATE)'''), |
612 |
612 |
613 ("Personne P where NOT P concerne A", |
613 ("Personne P where NOT P concerne A", |
614 '''SELECT _P.cw_eid |
614 '''SELECT _P.cw_eid |
615 FROM cw_Personne AS _P |
615 FROM cw_Personne AS _P |
616 WHERE NOT EXISTS(SELECT 1 FROM concerne_relation AS rel_concerne0 WHERE rel_concerne0.eid_from=_P.cw_eid)'''), |
616 WHERE NOT (EXISTS(SELECT 1 FROM concerne_relation AS rel_concerne0 WHERE rel_concerne0.eid_from=_P.cw_eid))'''), |
617 |
617 |
618 ("Affaire A where not P concerne A", |
618 ("Affaire A where not P concerne A", |
619 '''SELECT _A.cw_eid |
619 '''SELECT _A.cw_eid |
620 FROM cw_Affaire AS _A |
620 FROM cw_Affaire AS _A |
621 WHERE NOT EXISTS(SELECT 1 FROM concerne_relation AS rel_concerne0 WHERE rel_concerne0.eid_to=_A.cw_eid)'''), |
621 WHERE NOT (EXISTS(SELECT 1 FROM concerne_relation AS rel_concerne0 WHERE rel_concerne0.eid_to=_A.cw_eid))'''), |
622 ("Personne P where not P concerne A, A sujet ~= 'TEST%'", |
622 ("Personne P where not P concerne A, A sujet ~= 'TEST%'", |
623 '''SELECT _P.cw_eid |
623 '''SELECT _P.cw_eid |
624 FROM cw_Affaire AS _A, cw_Personne AS _P |
624 FROM cw_Affaire AS _A, cw_Personne AS _P |
625 WHERE NOT EXISTS(SELECT 1 FROM concerne_relation AS rel_concerne0 WHERE rel_concerne0.eid_from=_P.cw_eid AND rel_concerne0.eid_to=_A.cw_eid) AND _A.cw_sujet ILIKE TEST%'''), |
625 WHERE NOT (EXISTS(SELECT 1 FROM concerne_relation AS rel_concerne0 WHERE rel_concerne0.eid_from=_P.cw_eid AND rel_concerne0.eid_to=_A.cw_eid)) AND _A.cw_sujet ILIKE TEST%'''), |
626 |
626 |
627 ('Any S WHERE NOT T eid 28258, T tags S', |
627 ('Any S WHERE NOT T eid 28258, T tags S', |
628 '''SELECT rel_tags0.eid_to |
628 '''SELECT rel_tags0.eid_to |
629 FROM tags_relation AS rel_tags0 |
629 FROM tags_relation AS rel_tags0 |
630 WHERE NOT (rel_tags0.eid_from=28258)'''), |
630 WHERE NOT (rel_tags0.eid_from=28258)'''), |
648 WHERE rel_created_by0.eid_from=5 AND NOT (rel_created_by0.eid_to=6)'''), |
648 WHERE rel_created_by0.eid_from=5 AND NOT (rel_created_by0.eid_to=6)'''), |
649 |
649 |
650 ('Note X WHERE NOT Y evaluee X', |
650 ('Note X WHERE NOT Y evaluee X', |
651 '''SELECT _X.cw_eid |
651 '''SELECT _X.cw_eid |
652 FROM cw_Note AS _X |
652 FROM cw_Note AS _X |
653 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_to=_X.cw_eid)'''), |
653 WHERE NOT (EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_to=_X.cw_eid))'''), |
654 |
654 |
655 ('Any Y WHERE NOT Y evaluee X', |
655 ('Any Y WHERE NOT Y evaluee X', |
656 '''SELECT _Y.cw_eid |
656 '''SELECT _Y.cw_eid |
657 FROM cw_CWUser AS _Y |
657 FROM cw_CWUser AS _Y |
658 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid) |
658 WHERE NOT (EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid)) |
659 UNION ALL |
659 UNION ALL |
660 SELECT _Y.cw_eid |
660 SELECT _Y.cw_eid |
661 FROM cw_Division AS _Y |
661 FROM cw_Division AS _Y |
662 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid) |
662 WHERE NOT (EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid)) |
663 UNION ALL |
663 UNION ALL |
664 SELECT _Y.cw_eid |
664 SELECT _Y.cw_eid |
665 FROM cw_Personne AS _Y |
665 FROM cw_Personne AS _Y |
666 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid) |
666 WHERE NOT (EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid)) |
667 UNION ALL |
667 UNION ALL |
668 SELECT _Y.cw_eid |
668 SELECT _Y.cw_eid |
669 FROM cw_Societe AS _Y |
669 FROM cw_Societe AS _Y |
670 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid) |
670 WHERE NOT (EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid)) |
671 UNION ALL |
671 UNION ALL |
672 SELECT _Y.cw_eid |
672 SELECT _Y.cw_eid |
673 FROM cw_SubDivision AS _Y |
673 FROM cw_SubDivision AS _Y |
674 WHERE NOT EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid)'''), |
674 WHERE NOT (EXISTS(SELECT 1 FROM evaluee_relation AS rel_evaluee0 WHERE rel_evaluee0.eid_from=_Y.cw_eid))'''), |
675 |
675 |
676 ('Any X WHERE NOT Y evaluee X, Y is CWUser', |
676 ('Any X WHERE NOT Y evaluee X, Y is CWUser', |
677 '''SELECT _X.cw_eid |
677 '''SELECT _X.cw_eid |
678 FROM cw_Note AS _X |
678 FROM cw_Note AS _X |
679 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)'''), |
679 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))'''), |
680 |
680 |
681 ('Any X,RT WHERE X relation_type RT, NOT X is CWAttribute', |
681 ('Any X,RT WHERE X relation_type RT, NOT X is CWAttribute', |
682 '''SELECT _X.cw_eid, _X.cw_relation_type |
682 '''SELECT _X.cw_eid, _X.cw_relation_type |
683 FROM cw_CWRelation AS _X |
683 FROM cw_CWRelation AS _X |
684 WHERE _X.cw_relation_type IS NOT NULL'''), |
684 WHERE _X.cw_relation_type IS NOT NULL'''), |
689 WHERE _P.cw_for_user IS NULL'''), |
689 WHERE _P.cw_for_user IS NULL'''), |
690 |
690 |
691 ('Any S WHERE NOT X in_state S, X is IN(Affaire, CWUser)', |
691 ('Any S WHERE NOT X in_state S, X is IN(Affaire, CWUser)', |
692 '''SELECT _S.cw_eid |
692 '''SELECT _S.cw_eid |
693 FROM cw_State AS _S |
693 FROM cw_State AS _S |
694 WHERE NOT EXISTS(SELECT 1 FROM cw_Affaire AS _X WHERE _X.cw_in_state=_S.cw_eid) |
694 WHERE NOT (EXISTS(SELECT 1 FROM cw_Affaire AS _X WHERE _X.cw_in_state=_S.cw_eid UNION SELECT 1 FROM cw_CWUser AS _X WHERE _X.cw_in_state=_S.cw_eid))'''), |
695 INTERSECT |
|
696 SELECT _S.cw_eid |
|
697 FROM cw_State AS _S |
|
698 WHERE NOT EXISTS(SELECT 1 FROM cw_CWUser AS _X WHERE _X.cw_in_state=_S.cw_eid)'''), |
|
699 |
695 |
700 ('Any S WHERE NOT(X in_state S, S name "somename"), X is CWUser', |
696 ('Any S WHERE NOT(X in_state S, S name "somename"), X is CWUser', |
701 '''SELECT _S.cw_eid |
697 '''SELECT _S.cw_eid |
702 FROM cw_State AS _S |
698 FROM cw_State AS _S |
703 WHERE NOT EXISTS(SELECT 1 FROM cw_CWUser AS _X WHERE _X.cw_in_state=_S.cw_eid AND _S.cw_name=somename)'''), |
699 WHERE NOT (EXISTS(SELECT 1 FROM cw_CWUser AS _X WHERE _X.cw_in_state=_S.cw_eid AND _S.cw_name=somename))'''), |
704 |
700 |
705 # XXXFIXME fail |
701 # XXXFIXME fail |
706 # ('Any X,RT WHERE X relation_type RT?, NOT X is CWAttribute', |
702 # ('Any X,RT WHERE X relation_type RT?, NOT X is CWAttribute', |
707 # '''SELECT _X.cw_eid, _X.cw_relation_type |
703 # '''SELECT _X.cw_eid, _X.cw_relation_type |
708 # FROM cw_CWRelation AS _X'''), |
704 # FROM cw_CWRelation AS _X'''), |
832 FROM cw_Note AS _G LEFT OUTER JOIN cw_State AS _S ON (_G.cw_in_state=_S.cw_eid AND _S.cw_name=hop) ) AS _T0 ON (rel_tags0.eid_to=_T0.C0)'''), |
828 FROM cw_Note AS _G LEFT OUTER JOIN cw_State AS _S ON (_G.cw_in_state=_S.cw_eid AND _S.cw_name=hop) ) AS _T0 ON (rel_tags0.eid_to=_T0.C0)'''), |
833 |
829 |
834 ('Any O,AD WHERE NOT S inline1 O, S eid 123, O todo_by AD?', |
830 ('Any O,AD WHERE NOT S inline1 O, S eid 123, O todo_by AD?', |
835 '''SELECT _O.cw_eid, rel_todo_by0.eid_to |
831 '''SELECT _O.cw_eid, rel_todo_by0.eid_to |
836 FROM cw_Affaire AS _O LEFT OUTER JOIN todo_by_relation AS rel_todo_by0 ON (rel_todo_by0.eid_from=_O.cw_eid), cw_Note AS _S |
832 FROM cw_Affaire AS _O LEFT OUTER JOIN todo_by_relation AS rel_todo_by0 ON (rel_todo_by0.eid_from=_O.cw_eid), cw_Note AS _S |
837 WHERE NOT EXISTS(SELECT 1 WHERE _S.cw_inline1=_O.cw_eid) AND _S.cw_eid=123''') |
833 WHERE NOT (_S.cw_inline1=_O.cw_eid) AND _S.cw_eid=123''') |
838 ] |
834 ] |
839 |
835 |
840 VIRTUAL_VARS = [ |
836 VIRTUAL_VARS = [ |
841 |
837 |
842 ('Any X WHERE X is CWUser, X creation_date > D1, Y creation_date D1, Y login "SWEB09"', |
838 ('Any X WHERE X is CWUser, X creation_date > D1, Y creation_date D1, Y login "SWEB09"', |
929 ), |
925 ), |
930 |
926 |
931 ('Any P WHERE X eid 0, NOT X connait P', |
927 ('Any P WHERE X eid 0, NOT X connait P', |
932 '''SELECT _P.cw_eid |
928 '''SELECT _P.cw_eid |
933 FROM cw_Personne AS _P |
929 FROM cw_Personne AS _P |
934 WHERE NOT EXISTS(SELECT 1 FROM connait_relation AS rel_connait0 WHERE (rel_connait0.eid_from=0 AND rel_connait0.eid_to=_P.cw_eid OR rel_connait0.eid_to=0 AND rel_connait0.eid_from=_P.cw_eid))'''), |
930 WHERE NOT (EXISTS(SELECT 1 FROM connait_relation AS rel_connait0 WHERE (rel_connait0.eid_from=0 AND rel_connait0.eid_to=_P.cw_eid OR rel_connait0.eid_to=0 AND rel_connait0.eid_from=_P.cw_eid)))'''), |
935 |
931 |
936 ('Any P WHERE NOT X connait P', |
932 ('Any P WHERE NOT X connait P', |
937 '''SELECT _P.cw_eid |
933 '''SELECT _P.cw_eid |
938 FROM cw_Personne AS _P |
934 FROM cw_Personne AS _P |
939 WHERE NOT EXISTS(SELECT 1 FROM connait_relation AS rel_connait0 WHERE (rel_connait0.eid_to=_P.cw_eid OR rel_connait0.eid_from=_P.cw_eid))'''), |
935 WHERE NOT (EXISTS(SELECT 1 FROM connait_relation AS rel_connait0 WHERE (rel_connait0.eid_to=_P.cw_eid OR rel_connait0.eid_from=_P.cw_eid)))'''), |
940 |
936 |
941 ('Any X WHERE NOT X connait P', |
937 ('Any X WHERE NOT X connait P', |
942 '''SELECT _X.cw_eid |
938 '''SELECT _X.cw_eid |
943 FROM cw_Personne AS _X |
939 FROM cw_Personne AS _X |
944 WHERE NOT EXISTS(SELECT 1 FROM connait_relation AS rel_connait0 WHERE (rel_connait0.eid_from=_X.cw_eid OR rel_connait0.eid_to=_X.cw_eid))'''), |
940 WHERE NOT (EXISTS(SELECT 1 FROM connait_relation AS rel_connait0 WHERE (rel_connait0.eid_from=_X.cw_eid OR rel_connait0.eid_to=_X.cw_eid)))'''), |
945 |
941 |
946 ('Any P WHERE X connait P, P nom "nom"', |
942 ('Any P WHERE X connait P, P nom "nom"', |
947 '''SELECT DISTINCT _P.cw_eid |
943 '''SELECT DISTINCT _P.cw_eid |
948 FROM connait_relation AS rel_connait0, cw_Personne AS _P |
944 FROM connait_relation AS rel_connait0, cw_Personne AS _P |
949 WHERE (rel_connait0.eid_to=_P.cw_eid OR rel_connait0.eid_from=_P.cw_eid) AND _P.cw_nom=nom'''), |
945 WHERE (rel_connait0.eid_to=_P.cw_eid OR rel_connait0.eid_from=_P.cw_eid) AND _P.cw_nom=nom'''), |
976 WHERE _N.cw_ecrit_par=_P.cw_eid AND _N.cw_eid=0'''), |
972 WHERE _N.cw_ecrit_par=_P.cw_eid AND _N.cw_eid=0'''), |
977 |
973 |
978 ('Any N WHERE NOT N ecrit_par P, P nom "toto"', |
974 ('Any N WHERE NOT N ecrit_par P, P nom "toto"', |
979 '''SELECT _N.cw_eid |
975 '''SELECT _N.cw_eid |
980 FROM cw_Note AS _N, cw_Personne AS _P |
976 FROM cw_Note AS _N, cw_Personne AS _P |
981 WHERE NOT EXISTS(SELECT 1 WHERE _N.cw_ecrit_par=_P.cw_eid) AND _P.cw_nom=toto'''), |
977 WHERE NOT (_N.cw_ecrit_par=_P.cw_eid) AND _P.cw_nom=toto'''), |
|
978 |
|
979 ('Any P WHERE NOT N ecrit_par P, P nom "toto"', |
|
980 '''SELECT _P.cw_eid |
|
981 FROM cw_Personne AS _P |
|
982 WHERE NOT (EXISTS(SELECT 1 FROM cw_Note AS _N WHERE _N.cw_ecrit_par=_P.cw_eid)) AND _P.cw_nom=toto'''), |
982 |
983 |
983 ('Any P WHERE N ecrit_par P, N eid 0', |
984 ('Any P WHERE N ecrit_par P, N eid 0', |
984 '''SELECT _N.cw_ecrit_par |
985 '''SELECT _N.cw_ecrit_par |
985 FROM cw_Note AS _N |
986 FROM cw_Note AS _N |
986 WHERE _N.cw_ecrit_par IS NOT NULL AND _N.cw_eid=0'''), |
987 WHERE _N.cw_ecrit_par IS NOT NULL AND _N.cw_eid=0'''), |
991 WHERE _N.cw_ecrit_par=_P.cw_eid AND _N.cw_eid=0'''), |
992 WHERE _N.cw_ecrit_par=_P.cw_eid AND _N.cw_eid=0'''), |
992 |
993 |
993 ('Any P WHERE NOT N ecrit_par P, P is Personne, N eid 512', |
994 ('Any P WHERE NOT N ecrit_par P, P is Personne, N eid 512', |
994 '''SELECT _P.cw_eid |
995 '''SELECT _P.cw_eid |
995 FROM cw_Note AS _N, cw_Personne AS _P |
996 FROM cw_Note AS _N, cw_Personne AS _P |
996 WHERE NOT EXISTS(SELECT 1 WHERE _N.cw_ecrit_par=_P.cw_eid) AND _N.cw_eid=512'''), |
997 WHERE NOT (_N.cw_ecrit_par=_P.cw_eid) AND _N.cw_eid=512'''), |
997 |
998 |
998 ('Any S,ES,T WHERE S state_of ET, ET name "CWUser", ES allowed_transition T, T destination_state S', |
999 ('Any S,ES,T WHERE S state_of ET, ET name "CWUser", ES allowed_transition T, T destination_state S', |
999 '''SELECT _T.cw_destination_state, rel_allowed_transition1.eid_from, _T.cw_eid |
1000 '''SELECT _T.cw_destination_state, rel_allowed_transition1.eid_from, _T.cw_eid |
1000 FROM allowed_transition_relation AS rel_allowed_transition1, cw_Transition AS _T, cw_Workflow AS _ET, state_of_relation AS rel_state_of0 |
1001 FROM allowed_transition_relation AS rel_allowed_transition1, cw_Transition AS _T, cw_Workflow AS _ET, state_of_relation AS rel_state_of0 |
1001 WHERE _T.cw_destination_state=rel_state_of0.eid_from AND rel_state_of0.eid_to=_ET.cw_eid AND _ET.cw_name=CWUser AND rel_allowed_transition1.eid_to=_T.cw_eid'''), |
1002 WHERE _T.cw_destination_state=rel_state_of0.eid_from AND rel_state_of0.eid_to=_ET.cw_eid AND _ET.cw_name=CWUser AND rel_allowed_transition1.eid_to=_T.cw_eid'''), |
1013 FROM cw_Note AS _S |
1014 FROM cw_Note AS _S |
1014 WHERE _S.cw_eid=0 AND _S.cw_in_state IS NOT NULL'''), |
1015 WHERE _S.cw_eid=0 AND _S.cw_in_state IS NOT NULL'''), |
1015 |
1016 |
1016 ('Any X WHERE NOT Y for_user X, X eid 123', |
1017 ('Any X WHERE NOT Y for_user X, X eid 123', |
1017 '''SELECT 123 |
1018 '''SELECT 123 |
1018 WHERE NOT EXISTS(SELECT 1 FROM cw_CWProperty AS _Y WHERE _Y.cw_for_user=123) |
1019 WHERE NOT (EXISTS(SELECT 1 FROM cw_CWProperty AS _Y WHERE _Y.cw_for_user=123)) |
1019 '''), |
1020 '''), |
1020 |
1021 |
1021 ] |
1022 ] |
1022 |
1023 |
1023 INTERSECT = [ |
1024 INTERSECT = [ |
1024 ('Any SN WHERE NOT X in_state S, S name SN', |
1025 ('Any SN WHERE NOT X in_state S, S name SN', |
1025 '''SELECT _S.cw_name |
1026 '''SELECT _S.cw_name |
1026 FROM cw_State AS _S |
1027 FROM cw_State AS _S |
1027 WHERE NOT EXISTS(SELECT 1 FROM cw_Affaire AS _X WHERE _X.cw_in_state=_S.cw_eid) |
1028 WHERE NOT (EXISTS(SELECT 1 FROM cw_Affaire AS _X WHERE _X.cw_in_state=_S.cw_eid UNION SELECT 1 FROM cw_Note AS _X WHERE _X.cw_in_state=_S.cw_eid UNION SELECT 1 FROM cw_CWUser AS _X WHERE _X.cw_in_state=_S.cw_eid))'''), |
1028 INTERSECT |
|
1029 SELECT _S.cw_name |
|
1030 FROM cw_State AS _S |
|
1031 WHERE NOT EXISTS(SELECT 1 FROM cw_CWUser AS _X WHERE _X.cw_in_state=_S.cw_eid) |
|
1032 INTERSECT |
|
1033 SELECT _S.cw_name |
|
1034 FROM cw_State AS _S |
|
1035 WHERE NOT EXISTS(SELECT 1 FROM cw_Note AS _X WHERE _X.cw_in_state=_S.cw_eid)'''), |
|
1036 |
1029 |
1037 ('Any PN WHERE NOT X travaille S, X nom PN, S is IN(Division, Societe)', |
1030 ('Any PN WHERE NOT X travaille S, X nom PN, S is IN(Division, Societe)', |
1038 '''SELECT _X.cw_nom |
1031 '''SELECT _X.cw_nom |
1039 FROM cw_Personne AS _X |
1032 FROM cw_Personne AS _X |
1040 WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0,cw_Division AS _S WHERE rel_travaille0.eid_from=_X.cw_eid AND rel_travaille0.eid_to=_S.cw_eid) |
1033 WHERE NOT (EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0, cw_Division AS _S WHERE rel_travaille0.eid_from=_X.cw_eid AND rel_travaille0.eid_to=_S.cw_eid UNION SELECT 1 FROM travaille_relation AS rel_travaille1, cw_Societe AS _S WHERE rel_travaille1.eid_from=_X.cw_eid AND rel_travaille1.eid_to=_S.cw_eid))'''), |
1041 INTERSECT |
|
1042 SELECT _X.cw_nom |
|
1043 FROM cw_Personne AS _X |
|
1044 WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0,cw_Societe AS _S WHERE rel_travaille0.eid_from=_X.cw_eid AND rel_travaille0.eid_to=_S.cw_eid)'''), |
|
1045 |
1034 |
1046 ('Any PN WHERE NOT X travaille S, S nom PN, S is IN(Division, Societe)', |
1035 ('Any PN WHERE NOT X travaille S, S nom PN, S is IN(Division, Societe)', |
1047 '''SELECT _S.cw_nom |
1036 '''SELECT _S.cw_nom |
1048 FROM cw_Division AS _S |
1037 FROM cw_Division AS _S |
1049 WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_to=_S.cw_eid) |
1038 WHERE NOT (EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_to=_S.cw_eid)) |
1050 UNION ALL |
1039 UNION ALL |
1051 SELECT _S.cw_nom |
1040 SELECT _S.cw_nom |
1052 FROM cw_Societe AS _S |
1041 FROM cw_Societe AS _S |
1053 WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_to=_S.cw_eid)'''), |
1042 WHERE NOT (EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_to=_S.cw_eid))'''), |
1054 |
1043 |
1055 ('Personne X WHERE NOT X travaille S, S nom "chouette"', |
1044 ('Personne X WHERE NOT X travaille S, S nom "chouette"', |
1056 '''SELECT _X.cw_eid |
1045 '''SELECT _X.cw_eid |
1057 FROM cw_Division AS _S, cw_Personne AS _X |
1046 FROM cw_Division AS _S, cw_Personne AS _X |
1058 WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=_X.cw_eid AND rel_travaille0.eid_to=_S.cw_eid) AND _S.cw_nom=chouette |
1047 WHERE NOT (EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=_X.cw_eid AND rel_travaille0.eid_to=_S.cw_eid)) AND _S.cw_nom=chouette |
1059 UNION ALL |
1048 UNION ALL |
1060 SELECT _X.cw_eid |
1049 SELECT _X.cw_eid |
1061 FROM cw_Personne AS _X, cw_Societe AS _S |
1050 FROM cw_Personne AS _X, cw_Societe AS _S |
1062 WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=_X.cw_eid AND rel_travaille0.eid_to=_S.cw_eid) AND _S.cw_nom=chouette |
1051 WHERE NOT (EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=_X.cw_eid AND rel_travaille0.eid_to=_S.cw_eid)) AND _S.cw_nom=chouette |
1063 UNION ALL |
1052 UNION ALL |
1064 SELECT _X.cw_eid |
1053 SELECT _X.cw_eid |
1065 FROM cw_Personne AS _X, cw_SubDivision AS _S |
1054 FROM cw_Personne AS _X, cw_SubDivision AS _S |
1066 WHERE NOT EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=_X.cw_eid AND rel_travaille0.eid_to=_S.cw_eid) AND _S.cw_nom=chouette'''), |
1055 WHERE NOT (EXISTS(SELECT 1 FROM travaille_relation AS rel_travaille0 WHERE rel_travaille0.eid_from=_X.cw_eid AND rel_travaille0.eid_to=_S.cw_eid)) AND _S.cw_nom=chouette'''), |
1067 |
1056 |
1068 ('Any X WHERE X is ET, ET eid 2', |
1057 ('Any X WHERE X is ET, ET eid 2', |
1069 '''SELECT rel_is0.eid_from |
1058 '''SELECT rel_is0.eid_from |
1070 FROM is_relation AS rel_is0 |
1059 FROM is_relation AS rel_is0 |
1071 WHERE rel_is0.eid_to=2'''), |
1060 WHERE rel_is0.eid_to=2'''), |