ChangeLog
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Tue, 11 Mar 2014 14:18:31 +0100
branchstable
changeset 726 816abac7f9ad
parent 692 55af3a14cc29
child 768 39e850fc7404
permissions -rw-r--r--
0.31.5

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

2014-03-11  --  0.31.5
    * #176472: fix implementation of add_type_restriction vs is_instance_of

    * #176469: add_type_restriction is not properly undoable in some cases



2012-03-29  --  0.31.2
    * #88559: speed up query solutions analysis

    * moved valuable_references from Variable to Referencable, it makes sense for
      ColumnAliases as well

    * various cleanups



2012-02-03  --  0.31.1
    * #87988: fixed bug in simplify with sub-queries



2011-11-09  --  0.31.0
    * #78681: don't crash on column aliases used in outer join

    * #81394: HAVING support in write queries (INSERT,SET,DELETE)

    * #80799: fix wrong type analysis with 'NOT identity'

    * when possible, use entity type as translation context of relation
      (break cw < 3.13.10 compat)

    * #81817: fix add_type_restriction for cases where some types restriction is already in there



2011-09-07  --  0.30.1
    * #74727: allow entity types to end with a capitalized letter
      provided they contain a lower-cased letter



2011-08-05  --  0.30.0
    * #72295: add some missing operators:

        - % (modulo),
        - ^ (power),
        - & (bitwise AND),
        - | (bitwise OR),
        - # (bitwise XOR),
        - << (bitwise left shift),
        - >> (bitwise right shift)

    * #72052: new optional 'optcomparisons' key in variable stinfo, containing
      HAVING comparison nodes where it's used and optional (eg outer
      join)

    * #69185: fix syntax error with unary operators by introducing
      `UnaryExpression` node

    * drop old backward compat for ORDERBY/GROUPBY after where clause

    * fix Comparison.as_string to considerer its optional attribute



2011-07-27  --  0.29.1
    * #70264: remove_group_var renamed into remove_group_term and fixed
      implementation

    * #70416: rql annotator add 'having' list into variable's stinfo, and
      properly update variable graph

    * #71131: as_string doesn't  propagate encoding/kwargs to subqueries

    * #71132: column alias scope should be handled as variable scope, not bound
      to subquery

    * #71157: bad analyze when using functions

    * #71415: needs to allow outer join on rhs of final relation and in HAVING express

    * Select.replace must properly reset old node's parent attribute

    * new undo_modification context manager on select nodes



2011-06-09  --  0.29.0
    * support != operator for non equality

    * support for CAST function

    * support for regexp-based pattern matching using a REGEXP operator

    * may now GROUPBY functions / column number

    * fix parsing of negative float



2011-01-12  --  0.28.0
    * enhance rewrite_shared_optional so one can specify where the new identity
      relation should be added (used by cw multi-sources planner)



2010-10-13  --  0.27.0
    * select.undefine_variable properly cleanup solutions (and restore them on
      undo)

    * fix potential crash in Referenceable.get_description

    * introduce make_constant_restriction function, useful to build a
      restriction without adding it yet to the tree



2010-09-10  --  0.26.6
    * enhance bad rql query detection with ordered distinct (can't use distinct
      if an attribute is selected and we sort on another attribute)

    * fix subquery_selection_index responsability mess-up: it wasn't doing what
      it should have done (see cw.rset related_entity implementation)

    * consider subquery aliases in Select.clean_solutions

    * add constraint package to setuptools dependencies so we've fallback
      opportunity if gecode is not installed

    * fix setuptools dependency on yapps by forcing install of our custom
      package, so it don't try to install pypi's one which doesn't work well
      with both pip and easy_install



2010-08-02  --  0.26.5
    * fix solutions computation crash with some query using sub-queries (closes #37423)



2010-07-28  --  0.26.4
    * fix re-annotation pb: some stinfo keys were not properly reinitialized
      which may cause pb later (at sql generation time for instance)



2010-06-21  --  0.26.3
    * support for node from having in Select.remove

    * enhanced Select.replace method

    * rql st checker now checks function avaibility according to backend (if specified)



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