cubicweb/server/test/unittest_rql2sql.py
changeset 11770 22b854d3e8b2
parent 11769 f5b815f67ce2
child 11771 96a8ad81317b
equal deleted inserted replaced
11769:f5b815f67ce2 11770:22b854d3e8b2
   494      '''SELECT _X.eid
   494      '''SELECT _X.eid
   495 FROM entities AS _X
   495 FROM entities AS _X
   496 WHERE _X.eid>12'''),
   496 WHERE _X.eid>12'''),
   497 
   497 
   498     ('Any X WHERE X eid > 12, X is Note',
   498     ('Any X WHERE X eid > 12, X is Note',
   499      """SELECT _X.eid
   499      """SELECT _X.cw_eid
   500 FROM entities AS _X
   500 FROM cw_Note AS _X
   501 WHERE _X.type='Note' AND _X.eid>12"""),
   501 WHERE _X.cw_eid>12"""),
       
   502 
       
   503     ('Any X WHERE X eid > 12, X is IN (Bookmark, Card)',
       
   504      """SELECT _X.cw_eid
       
   505 FROM cw_Bookmark AS _X
       
   506 WHERE _X.cw_eid>12
       
   507 UNION ALL
       
   508 SELECT _X.cw_eid
       
   509 FROM cw_Card AS _X
       
   510 WHERE _X.cw_eid>12"""),
   502 
   511 
   503     ('Any X, T WHERE X eid > 12, X title T, X is IN (Bookmark, Card)',
   512     ('Any X, T WHERE X eid > 12, X title T, X is IN (Bookmark, Card)',
   504      """SELECT _X.cw_eid, _X.cw_title
   513      """SELECT _X.cw_eid, _X.cw_title
   505 FROM cw_Bookmark AS _X
   514 FROM cw_Bookmark AS _X
   506 WHERE _X.cw_eid>12
   515 WHERE _X.cw_eid>12
   800             ('Any X WHERE X has_text "toto tata"',
   809             ('Any X WHERE X has_text "toto tata"',
   801              """SELECT DISTINCT appears0.uid
   810              """SELECT DISTINCT appears0.uid
   802 FROM appears AS appears0
   811 FROM appears AS appears0
   803 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata'))"""),
   812 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata'))"""),
   804             ('Personne X WHERE X has_text "toto tata"',
   813             ('Personne X WHERE X has_text "toto tata"',
   805              """SELECT DISTINCT _X.eid
   814              """SELECT DISTINCT _X.cw_eid
   806 FROM appears AS appears0, entities AS _X
   815 FROM appears AS appears0, cw_Personne AS _X
   807 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata')) AND appears0.uid=_X.eid AND _X.type='Personne'"""),
   816 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata')) AND appears0.uid=_X.cw_eid"""),
   808             ('Personne X WHERE X has_text %(text)s',
   817             ('Personne X WHERE X has_text %(text)s',
   809              """SELECT DISTINCT _X.eid
   818              """SELECT DISTINCT _X.cw_eid
   810 FROM appears AS appears0, entities AS _X
   819 FROM appears AS appears0, cw_Personne AS _X
   811 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('hip', 'hop', 'momo')) AND appears0.uid=_X.eid AND _X.type='Personne'
   820 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('hip', 'hop', 'momo')) AND appears0.uid=_X.cw_eid
   812 """),
   821 """),
   813             ('Any X WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
   822             ('Any X WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
   814              """SELECT DISTINCT _X.cw_eid
   823              """SELECT DISTINCT _X.cw_eid
   815 FROM appears AS appears0, cw_Basket AS _X
   824 FROM appears AS appears0, cw_Basket AS _X
   816 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata')) AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
   825 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata')) AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
  1558              """SELECT appears0.uid
  1567              """SELECT appears0.uid
  1559 FROM appears AS appears0
  1568 FROM appears AS appears0
  1560 WHERE appears0.words @@ to_tsquery('default', 'toto&tata')"""),
  1569 WHERE appears0.words @@ to_tsquery('default', 'toto&tata')"""),
  1561 
  1570 
  1562             ('Personne X WHERE X has_text "toto tata"',
  1571             ('Personne X WHERE X has_text "toto tata"',
  1563              """SELECT _X.eid
  1572              """SELECT _X.cw_eid
  1564 FROM appears AS appears0, entities AS _X
  1573 FROM appears AS appears0, cw_Personne AS _X
  1565 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.eid AND _X.type='Personne'"""),
  1574 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid"""),
  1566 
  1575 
  1567             ('Personne X WHERE X has_text %(text)s',
  1576             ('Personne X WHERE X has_text %(text)s',
  1568              """SELECT _X.eid
  1577              """SELECT _X.cw_eid
  1569 FROM appears AS appears0, entities AS _X
  1578 FROM appears AS appears0, cw_Personne AS _X
  1570 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.eid AND _X.type='Personne'"""),
  1579 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.cw_eid"""),
       
  1580 
       
  1581             ('Any X WHERE X has_text "toto tata", X is IN (Basket,Folder)',
       
  1582              """SELECT appears0.uid
       
  1583 FROM appears AS appears0
       
  1584 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid IN (SELECT cw_eid FROM cw_Basket UNION SELECT cw_eid FROM cw_Folder)"""),
  1571 
  1585 
  1572             ('Any X WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
  1586             ('Any X WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
  1573              """SELECT _X.cw_eid
  1587              """SELECT _X.cw_eid
  1574 FROM appears AS appears0, cw_Basket AS _X
  1588 FROM appears AS appears0, cw_Basket AS _X
  1575 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
  1589 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
  1577 SELECT _X.cw_eid
  1591 SELECT _X.cw_eid
  1578 FROM appears AS appears0, cw_Folder AS _X
  1592 FROM appears AS appears0, cw_Folder AS _X
  1579 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu"""),
  1593 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu"""),
  1580 
  1594 
  1581             ('Personne X where X has_text %(text)s, X travaille S, S has_text %(text)s',
  1595             ('Personne X where X has_text %(text)s, X travaille S, S has_text %(text)s',
  1582              """SELECT _X.eid
  1596              """SELECT _X.cw_eid
  1583 FROM appears AS appears0, appears AS appears2, entities AS _X, travaille_relation AS rel_travaille1
  1597 FROM appears AS appears0, appears AS appears2, cw_Personne AS _X, travaille_relation AS rel_travaille1
  1584 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.eid AND _X.type='Personne' AND _X.eid=rel_travaille1.eid_from AND appears2.uid=rel_travaille1.eid_to AND appears2.words @@ to_tsquery('default', 'hip&hop&momo')"""),
  1598 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.cw_eid AND _X.cw_eid=rel_travaille1.eid_from AND appears2.uid=rel_travaille1.eid_to AND appears2.words @@ to_tsquery('default', 'hip&hop&momo')"""),
  1585 
  1599 
  1586             ('Any X ORDERBY FTIRANK(X) DESC WHERE X has_text "toto tata"',
  1600             ('Any X ORDERBY FTIRANK(X) DESC WHERE X has_text "toto tata"',
  1587              """SELECT appears0.uid
  1601              """SELECT appears0.uid
  1588 FROM appears AS appears0
  1602 FROM appears AS appears0
  1589 WHERE appears0.words @@ to_tsquery('default', 'toto&tata')
  1603 WHERE appears0.words @@ to_tsquery('default', 'toto&tata')
  1590 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight DESC"""),
  1604 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight DESC"""),
  1591 
  1605 
  1592             ('Personne X ORDERBY FTIRANK(X) WHERE X has_text "toto tata"',
  1606             ('Personne X ORDERBY FTIRANK(X) WHERE X has_text "toto tata"',
  1593              """SELECT _X.eid
  1607              """SELECT _X.cw_eid
  1594 FROM appears AS appears0, entities AS _X
  1608 FROM appears AS appears0, cw_Personne AS _X
  1595 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.eid AND _X.type='Personne'
  1609 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid
  1596 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight"""),
  1610 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight"""),
  1597 
  1611 
  1598             ('Personne X ORDERBY FTIRANK(X) WHERE X has_text %(text)s',
  1612             ('Personne X ORDERBY FTIRANK(X) WHERE X has_text %(text)s',
  1599              """SELECT _X.eid
  1613              """SELECT _X.cw_eid
  1600 FROM appears AS appears0, entities AS _X
  1614 FROM appears AS appears0, cw_Personne AS _X
  1601 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.eid AND _X.type='Personne'
  1615 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.cw_eid
  1602 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'hip&hop&momo'))*appears0.weight"""),
  1616 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'hip&hop&momo'))*appears0.weight"""),
  1603 
  1617 
  1604             ('Any X ORDERBY FTIRANK(X) WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
  1618             ('Any X ORDERBY FTIRANK(X) WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
  1605              """SELECT T1.C0 FROM (SELECT _X.cw_eid AS C0, ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight AS C1
  1619              """SELECT T1.C0 FROM (SELECT _X.cw_eid AS C0, ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight AS C1
  1606 FROM appears AS appears0, cw_Basket AS _X
  1620 FROM appears AS appears0, cw_Basket AS _X
  1610 FROM appears AS appears0, cw_Folder AS _X
  1624 FROM appears AS appears0, cw_Folder AS _X
  1611 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
  1625 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
  1612 ORDER BY 2) AS T1"""),
  1626 ORDER BY 2) AS T1"""),
  1613 
  1627 
  1614             ('Personne X ORDERBY FTIRANK(X),FTIRANK(S) WHERE X has_text %(text)s, X travaille S, S has_text %(text)s',
  1628             ('Personne X ORDERBY FTIRANK(X),FTIRANK(S) WHERE X has_text %(text)s, X travaille S, S has_text %(text)s',
  1615              """SELECT _X.eid
  1629              """SELECT _X.cw_eid
  1616 FROM appears AS appears0, appears AS appears2, entities AS _X, travaille_relation AS rel_travaille1
  1630 FROM appears AS appears0, appears AS appears2, cw_Personne AS _X, travaille_relation AS rel_travaille1
  1617 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.eid AND _X.type='Personne' AND _X.eid=rel_travaille1.eid_from AND appears2.uid=rel_travaille1.eid_to AND appears2.words @@ to_tsquery('default', 'hip&hop&momo')
  1631 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.cw_eid AND _X.cw_eid=rel_travaille1.eid_from AND appears2.uid=rel_travaille1.eid_to AND appears2.words @@ to_tsquery('default', 'hip&hop&momo')
  1618 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'hip&hop&momo'))*appears0.weight,ts_rank(appears2.words, to_tsquery('default', 'hip&hop&momo'))*appears2.weight"""),
  1632 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'hip&hop&momo'))*appears0.weight,ts_rank(appears2.words, to_tsquery('default', 'hip&hop&momo'))*appears2.weight"""),
  1619 
  1633 
  1620 
  1634 
  1621             ('Any X, FTIRANK(X) WHERE X has_text "toto tata"',
  1635             ('Any X, FTIRANK(X) WHERE X has_text "toto tata"',
  1622              """SELECT appears0.uid, ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight
  1636              """SELECT appears0.uid, ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight
  2028              """SELECT DISTINCT appears0.uid
  2042              """SELECT DISTINCT appears0.uid
  2029 FROM appears AS appears0
  2043 FROM appears AS appears0
  2030 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('hip', 'hop', 'momo'))"""),
  2044 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('hip', 'hop', 'momo'))"""),
  2031 
  2045 
  2032             ('Personne X WHERE X has_text "toto tata"',
  2046             ('Personne X WHERE X has_text "toto tata"',
  2033              """SELECT DISTINCT _X.eid
  2047              """SELECT DISTINCT _X.cw_eid
  2034 FROM appears AS appears0, entities AS _X
  2048 FROM appears AS appears0, cw_Personne AS _X
  2035 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata')) AND appears0.uid=_X.eid AND _X.type='Personne'"""),
  2049 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata')) AND appears0.uid=_X.cw_eid"""),
  2036 
  2050 
  2037             ('Any X WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
  2051             ('Any X WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
  2038              """SELECT DISTINCT _X.cw_eid
  2052              """SELECT DISTINCT _X.cw_eid
  2039 FROM appears AS appears0, cw_Basket AS _X
  2053 FROM appears AS appears0, cw_Basket AS _X
  2040 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata')) AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
  2054 WHERE appears0.word_id IN (SELECT word_id FROM word WHERE word in ('toto', 'tata')) AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
  2157             ('Any X WHERE X has_text "toto tata"',
  2171             ('Any X WHERE X has_text "toto tata"',
  2158              """SELECT appears0.uid
  2172              """SELECT appears0.uid
  2159 FROM appears AS appears0
  2173 FROM appears AS appears0
  2160 WHERE MATCH (appears0.words) AGAINST ('toto tata' IN BOOLEAN MODE)"""),
  2174 WHERE MATCH (appears0.words) AGAINST ('toto tata' IN BOOLEAN MODE)"""),
  2161             ('Personne X WHERE X has_text "toto tata"',
  2175             ('Personne X WHERE X has_text "toto tata"',
  2162              """SELECT _X.eid
  2176              """SELECT _X.cw_eid
  2163 FROM appears AS appears0, entities AS _X
  2177 FROM appears AS appears0, cw_Personne AS _X
  2164 WHERE MATCH (appears0.words) AGAINST ('toto tata' IN BOOLEAN MODE) AND appears0.uid=_X.eid AND _X.type='Personne'"""),
  2178 WHERE MATCH (appears0.words) AGAINST ('toto tata' IN BOOLEAN MODE) AND appears0.uid=_X.cw_eid"""),
  2165             ('Personne X WHERE X has_text %(text)s',
  2179             ('Personne X WHERE X has_text %(text)s',
  2166              """SELECT _X.eid
  2180              """SELECT _X.cw_eid
  2167 FROM appears AS appears0, entities AS _X
  2181 FROM appears AS appears0, cw_Personne AS _X
  2168 WHERE MATCH (appears0.words) AGAINST ('hip hop momo' IN BOOLEAN MODE) AND appears0.uid=_X.eid AND _X.type='Personne'"""),
  2182 WHERE MATCH (appears0.words) AGAINST ('hip hop momo' IN BOOLEAN MODE) AND appears0.uid=_X.cw_eid"""),
  2169             ('Any X WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
  2183             ('Any X WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)',
  2170              """SELECT _X.cw_eid
  2184              """SELECT _X.cw_eid
  2171 FROM appears AS appears0, cw_Basket AS _X
  2185 FROM appears AS appears0, cw_Basket AS _X
  2172 WHERE MATCH (appears0.words) AGAINST ('toto tata' IN BOOLEAN MODE) AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
  2186 WHERE MATCH (appears0.words) AGAINST ('toto tata' IN BOOLEAN MODE) AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu
  2173 UNION ALL
  2187 UNION ALL