1
0
Fork 0

updated CHANGELOG

This commit is contained in:
Jan Steemann 2016-02-10 15:43:15 +01:00
parent 196ec2593c
commit b580a7df22
3 changed files with 78 additions and 3 deletions

View File

@ -1,7 +1,42 @@
v3.0.0 (XXXX-XX-XX)
-------------------
* allow to set print.limitString to configure the number of characters
* added AQL array comparison operators
All AQL comparison operators now lso exist in an array variant. In the
array variant, the operator is prefixed with one of the keywords *ALL*, *ANY*
or *NONE*. Using one of these keywords changes the operator behavior to
execute the comparison operation for all, any, or none of its left hand
argument values. It is therefore expected that the left hand argument
of an array operator is an array.
Examples:
[ 1, 2, 3 ] ANY == 2 // true
[ 1, 2, 3 ] ANY == 4 // false
[ 1, 2, 3 ] ANY > 0 // true
[ 1, 2, 3 ] ANY IN [ 4, 5, 6 ] // false
[ 1, 2, 3 ] ANY IN [ 1, 42 ] // true
[ 1, 2, 3 ] ALL IN [ 2, 3, 4 ] // false
[ 1, 2, 3 ] ALL IN [ 1, 2, 3 ] // true
[ 1, 2, 3 ] ALL > 2 // false
[ 1, 2, 3 ] ALL > 0 // true
[ 1, 2, 3 ] NONE IN [ 3 ] // false
[ 1, 2, 3 ] NONE IN [ 23, 42 ] // true
[ 1, 2, 3 ] NONE < 99 // false
[ 1, 2, 3 ] NONE > 10 // true
* improved AQL optimizer to remove unnecessary sort operations in more cases
* allow enclosing AQL identifiers in forward ticks in addition to using
backward ticks
This allows convenient writing of AQL queries in JavaScript template strings
(that is itself delimited with backticks), e.g.
var q = `FOR doc IN ´collection´ RETURN doc.´name´`;
* allow to set `print.limitString` to configure the number of characters
to output before truncating
* make logging configurable per log "topic"
@ -82,6 +117,12 @@ v3.0.0 (XXXX-XX-XX)
v2.8.3 (XXXX-XX-XX)
-------------------
* fixed AQL filter condition collapsing for deeply-nested cases, potentially
enabling usage of indexes in some dedicated cases
* added parentheses in AQL explain command output to correctly display precedence
of logical and arithmetic operators
* Foxx Model event listeners defined on the model are now correctly invoked by
the Repository methods (issue #1665)

View File

@ -41,6 +41,33 @@ true != null // true
42 NOT IN [ 17, 40, 50 ] // true
```
!SUBSUBSECTION Array comparison operators
The comparison operators also exist as *array variant*. In the array
variant, the operator is prefixed with one of the keywords *ALL*, *ANY*
or *NONE*. Using one of these keywords changes the operator behavior to
execute the comparison operation for all, any, or none of its left hand
argument values. It is therefore expected that the left hand argument
of an array operator is an array.
Examples:
```
[ 1, 2, 3 ] ANY == 2 // true
[ 1, 2, 3 ] ANY == 4 // false
[ 1, 2, 3 ] ANY > 0 // true
[ 1, 2, 3 ] ANY IN [ 4, 5, 6 ] // false
[ 1, 2, 3 ] ANY IN [ 1, 42 ] // true
[ 1, 2, 3 ] ALL IN [ 2, 3, 4 ] // false
[ 1, 2, 3 ] ALL IN [ 1, 2, 3 ] // true
[ 1, 2, 3 ] ALL > 2 // false
[ 1, 2, 3 ] ALL > 0 // true
[ 1, 2, 3 ] NONE IN [ 3 ] // false
[ 1, 2, 3 ] NONE IN [ 23, 42 ] // true
[ 1, 2, 3 ] NONE < 99 // false
[ 1, 2, 3 ] NONE > 10 // true
```
!SUBSUBSECTION Logical operators
The following logical operators are supported in AQL:

View File

@ -132,8 +132,9 @@ The maximum supported length of any name is 64 bytes. Names in AQL are always
case-sensitive.
Keywords must not be used as names. If a reserved keyword should be used as a
name, the name must be enclosed in backticks. Enclosing a name in backticks
makes it possible to use otherwise reserved keywords as names. An example for this is:
name, the name must be enclosed in backticks or forward ticks. Enclosing a name in
backticks or forward ticks makes it possible to use otherwise reserved keywords
as names. An example for this is:
FOR f IN `filter`
RETURN f.`sort`
@ -141,6 +142,12 @@ makes it possible to use otherwise reserved keywords as names. An example for th
Due to the backticks, *filter* and *sort* are interpreted as names and not as
keywords here.
The example can alternatively written as:
FOR f IN ´filter´
RETURN f.´sort´
!SUBSUBSECTION Collection names
Collection names can be used in queries as they are. If a collection happens to