ChangeLog for RQL
=================

2010-06-11  --  0.26.2
    * totally remove 'IS' operator

    * replace get_variable_variables by get_variable_indicies

    * fix rule order so 'HAVING (X op Y)' is now parseable while 'HAVING (1+2) op Y' isn't anymore parseable

    * fix simplification bug with ored uid relations



2010-06-04  --  0.26.1
    * normalize NOT() to NOT EXISTS() when it makes sense

    * fix grammar bug in HAVING clause: should all arbitrary expression and fix to deal with IN() hack



2010-04-20  --  0.26.0
    * setuptools support

    * variable and column alias stinfo optimization

    * analyzer return key used in args to unambiguify solutions

    * rewrite_shared_optional refactoring



2010-03-16  --  0.25.0
    * depends on logilab-database

    * raise BadRQLQuery when using optional on attribute relation



2010-02-10  --  0.24.0
    * update to yams 0.27 api

    * fully dropped mx support

    * various bugs fixed



2009-08-26  --  0.23.0
    * Union.locate_subquery now return a 2-uple (select subquery, column index in the subquery)

    * new subquery_selection_index method on Union

    * new root_selection_index method on VariableRef



2009-08-18  --  0.22.2
    * fixes to compile with different versions of gecode



2009-05-04  --  0.22.0
    * consider subqueries in variables graph

    * py datetime support (must be explicitly activated until we drop mx.DateTime support)

    * implements main_relation on ColumnAlias



2009-02-17  --  0.21.0
    * new type solver based on gecode



2008-10-17  --  0.20.2
    * new remove_subquery method on Select node

    * remove_node accepts a new 'undefine' argument (default to False for bw compat)
     telling if it should undefine no more referenced variables



2008-10-09  --  0.20.1
    * introduce "sqlscope" where NOT node is considered as a new scope

    * rql checker raise BadRQLQuery for inconsistent orderby on distinct query

    * correctly restore .parent when undoing RemoveNodeOperation



2008-09-24  --  0.20.0
    * is_instance_of support

    * raise BadRQLQuery on queries like 'Any X WHERE X name Toto, P is Person'

    * "NOT X identity Y" is now allowed

    * do not add relation constraint on variables used in math expression



2008-08-29  --  0.19.2
    * fix undoing of add_relation and variable name allocation on query using
      some subquery

    * add missing selected_index() method on ColumnAlias

    * set_possible_types() propagate to sub-queries since some additional
      type constraints may be set in the outer query

    * new type resolver ignore type restrictions, used by erudi during syntax
      tree annotation



2008-08-07  --  0.19.1
    * should not simplify variables used in the GROUPBY clause when there is a
      HAVING clause

    * implements set_limit / set_offset on UNION nodes



2008-07-22  --  0.19.0
    * grammar changes: LIMIT / OFFSET should now be before the WHERE clause,
      though bw compat will be kept for some time

    * when simplifying constant uid nodes, don't remove them from group terms if
      there is a HAVING clause

    * new get_variable_variables on Union and Select nodes



2008-07-04  --  0.18.3
    * fix add_type_restriction to support frozenset and dict of types



2008-06-06  --  0.18.2
    * remove group/sort undoing fix

    * set stinfo['possibletypes'] and update solution dictionnary for variable
      inserted for new identity relation

    * error resilient unregister_reference

    * init variable annotation information on annotation, not variable
      instanciation



2008-05-12  --  0.18.1
    * bugfix in remove_groups and remove_sort_terms



2008-05-08  --  0.18.0
    * UNION support

    * HAVING support

    * GROUPBY and ORDERBY moved *before* WHERE

    * code cleanup, fixes and refactorings



2008-03-26  --  0.17.2
    * fix a bug in get_solutions,possible_types should be reseted first

    * some documentation update



2008-03-12  --  0.17.1
    * method to add group variable with undoing support

    * fix remove_sort_term



2008-02-27  --  0.17.0
    * use bool values for Boolean constants, None for NULL constant

    * allow one char relation names

    * allow multiple capitalized characters in entity types



2008-02-15  --  0.16.0
    * understand "C is NULL"

    * allow multiple annotation

    * fix stinfo['possibletypes']



2008-01-25  --  0.15.4
    * better add_type_restriction methods

    * nicer error message in stcheck

    * fix some buggy assertion in editextensions



2008-01-17  --  0.15.3
    * only put valuable relations in uidrels

    * always put an operator node as rhs children of a Relation

    * fix rewrite-shared_optional to correctly update stinfo

    * new index_path / go_to_index_path methodes



2008-01-14  --  0.15.2
    * fix nested aggregat checking

    * fix a bug in Relation.__repr__

    * fix should_register_op which was expected to be a property

    * support for undoing limit/offset change



2008-01-07  --  0.15.1
    * ensure some attributes are encoded strings



2007-12-11  --  0.15.0
    * cleanup, optimizations, some api changes



2007-11-26  --  0.14.0
    * Node.get_type take kwargs as second argument to better guess the type of
      constants

    * new attrvars stinfo

    * new scope attribute on other nodes than Variable

    * thread safety for the RQLHleper



2007-10-29  --  0.13.0
    * use lgc.adbh module



2007-10-23  --  0.12.0
    * add ILIKE comparison operator, '~=' operator is now aliased to ILIKE
      instead of LIKE

    * variable scope handling



2007-06-04  --  0.11.3
    * as_string w/ kwargs fix

    * get_description fix on Variable, enhancement on Function by delegating
      to the function's description



2007-05-23  --  0.11.2
    * fix as_string bug for NOW/TODAY constants which may cause coercion bugs

    * as_string with now encoding specified will (hum, probably) return an
      unicode string



2007-05-14  --  0.11.1
    * Sortterm.var -> Sortterm.term

    * fix function name normalization

    * make remove_node available without having to import editextensions



2007-04-05  --  0.11.0
    * EXISTS support

    * proper get_type/get_description api, try to coerce math expression
      in get_type

    * some edition api cleanup



2007-03-08  --  0.10.2
    * fix #17887: analyzis error on "Any U WHERE NOT U owned_by U"

    * fix #17907: annotation foire potentiellement sur arbre simplifié



2007-02-09  --  0.10.1
    * fix rewriting bug: variable used in an optional relation can't be
      rewritten

    * new 'main_relation' method on variable



2007-02-02  --  0.10.0
    * allow variable as rhs of 'is' relation

    * can use Any as type specification in DELETE queries (eg DELETE Any X)

    * fix type inference when non '=' operator on uid relation



2006-11-15  --  0.9.1
    * fix Variable.selected_index()

    * do not raise bad rql query on non selected sorted variable in
      distinct query since this is supported by erudi's rql engine



2006-11-14  --  0.9.0
    * proper full/right/left outer join support

    * removed a buggy assertion in stcheck on aggregat function

    * new .selected_index method on Variable



2006-10-31  --  0.8.1
    * fix SortTerm implementation

    * fix a NameError in set_offset/set_limit and regenerate parser to
      use those methods

    * stinfo['references'] is now a list since order is important



2006-10-27  --  0.8.0
    * fix grammar for negative integer :/

    * simplify generated subtree for IN(onechildren)

    * stcheck is now doing full annotation and additional constant variable
      rewriting

    * do not include yapps anymore

    * removed broken C parser

    * fixes to follow yams api changes

    * editextensions fixes



2006-10-08  --  0.7.2
    * add missing as_string method on groups and sorts

    * detect that queries like "Any C where C suivi_par P, P eid %(x)s ORDERBY N"
      are incorrect (N isn't defined)



2006-09-22  --  0.7.1
    * fix as_string bugs

    * fix a bug in stcheck to detect bad queries when aggregat/transform
      functions are used



2006-09-05  --  0.7.0
    * new method on variable to get the name of relations where it's used

    * new function into utils to register known registered procedures

    * fixed grammar to allow "_" into function name



2006-06-08  --  0.6.0
    * new add method on statement



2006-05-21  --  0.5.2
    * fixed syntax tree copy, just call stmt.copy() to have a
      full deep copy

    * support for substitute on uid relation in the type analyzer
      (this implies to give the kwargs dictionary of the query to the
      analyzer)



2006-03-28  --  0.4.2
    * fixed a bug when a variable is related to itself

    * allow numbers in variable and entity types

    * C parser (disabled by default)



2006-02-10  --  0.4.1
    * fix set_distinct so that previous distinct attribute is correctly undoed
      if necessary

    * remove a false assertion in remove_selected

    * remove unnecessary OR from the tree when used with a symetric relation



2006-01-23  --  0.4.0
    * fix Constant's type when NOW is used

    * allow function in ORDERBY expression

    * refactor some edit extensions



2005-07-26  --  0.3.1
    * close #9629, "Any E WHERE P is Project, P eid E"  foire

    * fix bug with IN() used in update queries



2005-07-06  --  0.3.0
    * reintroduce analyze restriction from special relations, which may speed
      up analyzing



2005-06-16  --  0.2.0
    * minor evolutions

    * added Cpp parser module (not yet activated)

    * minor performance improvement



2004-09-23  --  0.1.2
    * minor evolutions

    * bugfixes with constant management (TODAY, etc.)



2004-06-10  --  0.1.1
    * minor evolutions



