1527 FROM appears AS appears0, entities AS _X |
1527 FROM appears AS appears0, entities AS _X |
1528 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.eid AND _X.type='Personne' |
1528 WHERE appears0.words @@ to_tsquery('default', 'hip&hop&momo') AND appears0.uid=_X.eid AND _X.type='Personne' |
1529 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'hip&hop&momo'))*appears0.weight"""), |
1529 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'hip&hop&momo'))*appears0.weight"""), |
1530 |
1530 |
1531 ('Any X ORDERBY FTIRANK(X) WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)', |
1531 ('Any X ORDERBY FTIRANK(X) WHERE X has_text "toto tata", X name "tutu", X is IN (Basket,Folder)', |
1532 """SELECT T1.C0 FROM (SELECT _X.cw_eid AS C0, ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight AS C1 |
1532 """SELECT _X.cw_eid |
1533 FROM appears AS appears0, cw_Basket AS _X |
1533 FROM appears AS appears0, cw_Basket AS _X |
1534 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu |
1534 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu |
1535 UNION ALL |
1535 UNION ALL |
1536 SELECT _X.cw_eid AS C0, ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight AS C1 |
1536 SELECT _X.cw_eid |
1537 FROM appears AS appears0, cw_Folder AS _X |
1537 FROM appears AS appears0, cw_Folder AS _X |
1538 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu |
1538 WHERE appears0.words @@ to_tsquery('default', 'toto&tata') AND appears0.uid=_X.cw_eid AND _X.cw_name=tutu |
1539 ORDER BY 2) AS T1"""), |
1539 ORDER BY ts_rank(appears0.words, to_tsquery('default', 'toto&tata'))*appears0.weight"""), |
1540 |
1540 |
1541 ('Personne X ORDERBY FTIRANK(X),FTIRANK(S) WHERE X has_text %(text)s, X travaille S, S has_text %(text)s', |
1541 ('Personne X ORDERBY FTIRANK(X),FTIRANK(S) WHERE X has_text %(text)s, X travaille S, S has_text %(text)s', |
1542 """SELECT _X.eid |
1542 """SELECT _X.eid |
1543 FROM appears AS appears0, appears AS appears2, entities AS _X, travaille_relation AS rel_travaille1 |
1543 FROM appears AS appears0, appears AS appears2, entities AS _X, travaille_relation AS rel_travaille1 |
1544 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') |
1544 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') |
1641 '''SELECT COUNT(rel_bookmarked_by1.eid_to), _G.cw_eid |
1641 '''SELECT COUNT(rel_bookmarked_by1.eid_to), _G.cw_eid |
1642 FROM owned_by_relation AS rel_owned_by0, cw_CWGroup AS _G LEFT OUTER JOIN in_group_relation AS rel_in_group2 ON (rel_in_group2.eid_to=_G.cw_eid) LEFT OUTER JOIN bookmarked_by_relation AS rel_bookmarked_by1 ON (rel_bookmarked_by1.eid_from=1148 AND rel_in_group2.eid_from=rel_bookmarked_by1.eid_to) |
1642 FROM owned_by_relation AS rel_owned_by0, cw_CWGroup AS _G LEFT OUTER JOIN in_group_relation AS rel_in_group2 ON (rel_in_group2.eid_to=_G.cw_eid) LEFT OUTER JOIN bookmarked_by_relation AS rel_bookmarked_by1 ON (rel_bookmarked_by1.eid_from=1148 AND rel_in_group2.eid_from=rel_bookmarked_by1.eid_to) |
1643 WHERE rel_owned_by0.eid_from=_G.cw_eid AND rel_owned_by0.eid_to=1122 |
1643 WHERE rel_owned_by0.eid_from=_G.cw_eid AND rel_owned_by0.eid_to=1122 |
1644 GROUP BY _G.cw_eid''') |
1644 GROUP BY _G.cw_eid''') |
1645 |
1645 |
|
1646 def test_groupby_orderby_insertion_dont_modify_intention(self): |
|
1647 self._check('Any YEAR(XECT)*100+MONTH(XECT), COUNT(X),SUM(XCE),AVG(XSCT-XECT) ' |
|
1648 'GROUPBY YEAR(XECT),MONTH(XECT) ORDERBY 1 ' |
|
1649 'WHERE X creation_date XSCT, X modification_date XECT, ' |
|
1650 'X ordernum XCE, X is CWAttribute', |
|
1651 '''SELECT ((CAST(EXTRACT(YEAR from _X.cw_modification_date) AS INTEGER) * 100) + CAST(EXTRACT(MONTH from _X.cw_modification_date) AS INTEGER)), COUNT(_X.cw_eid), SUM(_X.cw_ordernum), AVG((_X.cw_creation_date - _X.cw_modification_date)) |
|
1652 FROM cw_CWAttribute AS _X |
|
1653 GROUP BY CAST(EXTRACT(YEAR from _X.cw_modification_date) AS INTEGER),CAST(EXTRACT(MONTH from _X.cw_modification_date) AS INTEGER) |
|
1654 ORDER BY 1'''), |
|
1655 |
1646 |
1656 |
1647 class SqlServer2005SQLGeneratorTC(PostgresSQLGeneratorTC): |
1657 class SqlServer2005SQLGeneratorTC(PostgresSQLGeneratorTC): |
1648 backend = 'sqlserver2005' |
1658 backend = 'sqlserver2005' |
1649 def _norm_sql(self, sql): |
1659 def _norm_sql(self, sql): |
1650 return sql.strip().replace(' SUBSTR', ' SUBSTRING').replace(' || ', ' + ').replace(' ILIKE ', ' LIKE ') |
1660 return sql.strip().replace(' SUBSTR', ' SUBSTRING').replace(' || ', ' + ').replace(' ILIKE ', ' LIKE ') |
1747 ORDER BY 4 DESC'''), |
1757 ORDER BY 4 DESC'''), |
1748 ] |
1758 ] |
1749 for t in self._parse(WITH_LIMIT):# + ADVANCED_WITH_LIMIT_OR_ORDERBY): |
1759 for t in self._parse(WITH_LIMIT):# + ADVANCED_WITH_LIMIT_OR_ORDERBY): |
1750 yield t |
1760 yield t |
1751 |
1761 |
|
1762 def test_groupby_orderby_insertion_dont_modify_intention(self): |
|
1763 self._check('Any YEAR(XECT)*100+MONTH(XECT), COUNT(X),SUM(XCE),AVG(XSCT-XECT) ' |
|
1764 'GROUPBY YEAR(XECT),MONTH(XECT) ORDERBY 1 ' |
|
1765 'WHERE X creation_date XSCT, X modification_date XECT, ' |
|
1766 'X ordernum XCE, X is CWAttribute', |
|
1767 '''SELECT ((YEAR(_X.cw_modification_date) * 100) + MONTH(_X.cw_modification_date)), COUNT(_X.cw_eid), SUM(_X.cw_ordernum), AVG((_X.cw_creation_date - _X.cw_modification_date)) |
|
1768 FROM cw_CWAttribute AS _X |
|
1769 GROUP BY YEAR(_X.cw_modification_date),MONTH(_X.cw_modification_date) |
|
1770 ORDER BY 1'''), |
1752 |
1771 |
1753 |
1772 |
1754 class SqliteSQLGeneratorTC(PostgresSQLGeneratorTC): |
1773 class SqliteSQLGeneratorTC(PostgresSQLGeneratorTC): |
1755 backend = 'sqlite' |
1774 backend = 'sqlite' |
1756 |
1775 |
1877 def test_or_having_fake_terms(self): |
1896 def test_or_having_fake_terms(self): |
1878 self._check('Any X WHERE X is CWUser, X creation_date D HAVING YEAR(D) = "2010" OR D = NULL', |
1897 self._check('Any X WHERE X is CWUser, X creation_date D HAVING YEAR(D) = "2010" OR D = NULL', |
1879 '''SELECT _X.cw_eid |
1898 '''SELECT _X.cw_eid |
1880 FROM cw_CWUser AS _X |
1899 FROM cw_CWUser AS _X |
1881 WHERE ((YEAR(_X.cw_creation_date)=2010) OR (_X.cw_creation_date IS NULL))''') |
1900 WHERE ((YEAR(_X.cw_creation_date)=2010) OR (_X.cw_creation_date IS NULL))''') |
|
1901 |
|
1902 def test_groupby_orderby_insertion_dont_modify_intention(self): |
|
1903 self._check('Any YEAR(XECT)*100+MONTH(XECT), COUNT(X),SUM(XCE),AVG(XSCT-XECT) ' |
|
1904 'GROUPBY YEAR(XECT),MONTH(XECT) ORDERBY 1 ' |
|
1905 'WHERE X creation_date XSCT, X modification_date XECT, ' |
|
1906 'X ordernum XCE, X is CWAttribute', |
|
1907 '''SELECT ((YEAR(_X.cw_modification_date) * 100) + MONTH(_X.cw_modification_date)), COUNT(_X.cw_eid), SUM(_X.cw_ordernum), AVG((_X.cw_creation_date - _X.cw_modification_date)) |
|
1908 FROM cw_CWAttribute AS _X |
|
1909 GROUP BY YEAR(_X.cw_modification_date),MONTH(_X.cw_modification_date) |
|
1910 ORDER BY 1'''), |
1882 |
1911 |
1883 |
1912 |
1884 |
1913 |
1885 class MySQLGenerator(PostgresSQLGeneratorTC): |
1914 class MySQLGenerator(PostgresSQLGeneratorTC): |
1886 backend = 'mysql' |
1915 backend = 'mysql' |
1974 self._check('Any 1 WHERE NOT X in_group G, X is CWUser', |
2003 self._check('Any 1 WHERE NOT X in_group G, X is CWUser', |
1975 '''SELECT 1 |
2004 '''SELECT 1 |
1976 FROM (SELECT 1) AS _T |
2005 FROM (SELECT 1) AS _T |
1977 WHERE NOT (EXISTS(SELECT 1 FROM in_group_relation AS rel_in_group0))''') |
2006 WHERE NOT (EXISTS(SELECT 1 FROM in_group_relation AS rel_in_group0))''') |
1978 |
2007 |
|
2008 def test_groupby_orderby_insertion_dont_modify_intention(self): |
|
2009 self._check('Any YEAR(XECT)*100+MONTH(XECT), COUNT(X),SUM(XCE),AVG(XSCT-XECT) ' |
|
2010 'GROUPBY YEAR(XECT),MONTH(XECT) ORDERBY 1 ' |
|
2011 'WHERE X creation_date XSCT, X modification_date XECT, ' |
|
2012 'X ordernum XCE, X is CWAttribute', |
|
2013 '''SELECT ((EXTRACT(YEAR from _X.cw_modification_date) * 100) + EXTRACT(MONTH from _X.cw_modification_date)), COUNT(_X.cw_eid), SUM(_X.cw_ordernum), AVG((_X.cw_creation_date - _X.cw_modification_date)) |
|
2014 FROM cw_CWAttribute AS _X |
|
2015 GROUP BY EXTRACT(YEAR from _X.cw_modification_date),EXTRACT(MONTH from _X.cw_modification_date) |
|
2016 ORDER BY 1'''), |
|
2017 |
1979 |
2018 |
1980 class removeUnsusedSolutionsTC(TestCase): |
2019 class removeUnsusedSolutionsTC(TestCase): |
1981 def test_invariant_not_varying(self): |
2020 def test_invariant_not_varying(self): |
1982 rqlst = mock_object(defined_vars={}) |
2021 rqlst = mock_object(defined_vars={}) |
1983 rqlst.defined_vars['A'] = mock_object(scope=rqlst, stinfo={}, _q_invariant=True) |
2022 rqlst.defined_vars['A'] = mock_object(scope=rqlst, stinfo={}, _q_invariant=True) |