1
0
Fork 0

Merge branch 'devel' of https://github.com/arangodb/arangodb into devel

This commit is contained in:
Kaveh Vahedipour 2016-05-09 19:22:45 +02:00
commit 032df207f1
2 changed files with 41 additions and 27 deletions

View File

@ -28,19 +28,21 @@ for storing and reading documents.
!SUBSUBSECTION `LIKE` string-comparison operator !SUBSUBSECTION `LIKE` string-comparison operator
AQL now provides a `LIKE` keyword. `LIKE` is now an operator and can be used to AQL now provides a `LIKE` operator and can be used to compare strings like this,
compare strings like this, for example inside filter conditions: for example inside filter conditions:
``` ```
value LIKE search value LIKE search
``` ```
The `LIKE` operator is currently implemented by calling the already existing AQL
function `LIKE`, which also remains operational in 3.0.
This change makes `LIKE` an AQL keyword. Using `LIKE` as an attribute or collection This change makes `LIKE` an AQL keyword. Using `LIKE` as an attribute or collection
name in AQL thus requires quoting the name from now on. name in AQL thus requires quoting the name from now on.
The `LIKE` operator is currently implemented by calling the already existing AQL
function `LIKE`, which also remains operational in 3.0. Use the `LIKE` function
in case you want to search case-insensitive (optional parameter), as the `LIKE`
operator always compares case-sensitive.
!SUBSUBSECTION AQL array comparison operators !SUBSUBSECTION AQL array comparison operators
All AQL comparison operators now also exist in an array variant. In the All AQL comparison operators now also exist in an array variant. In the
@ -152,7 +154,7 @@ the query. This saves constructing edges and paths results that are not used lat
AQL now uses VelocyPack internally for storing intermediate values. For many value types AQL now uses VelocyPack internally for storing intermediate values. For many value types
it can now get away without extra memory allocations and less internal conversions. it can now get away without extra memory allocations and less internal conversions.
Values can be passed into internal AQL functions without copying them. This can lead to Values can be passed into internal AQL functions without copying them. This can lead to
reduced query execution times for queues that use C++-based AQL functions. reduced query execution times for queries that use C++-based AQL functions.
!SUBSUBSECTION "replace-or-with-in" and "use-index-for-sort" rules !SUBSUBSECTION "replace-or-with-in" and "use-index-for-sort" rules
@ -199,8 +201,8 @@ was dropped. The collection id stored in edges then became unusable, and when
accessing such edge the collection name part of it was always translated to `_undefined`. accessing such edge the collection name part of it was always translated to `_undefined`.
In ArangoDB 3.0, the `_from` and `_to` values of edges are saved as regular strings. In ArangoDB 3.0, the `_from` and `_to` values of edges are saved as regular strings.
This allows using `_from` and `_to` in user-defined indexes. Additionally this allows This allows using `_from` and `_to` in user-defined indexes. Additionally, this allows
updating the `_from` and `_to` values of existing edges. Furthermore, collections to update the `_from` and `_to` values of existing edges. Furthermore, collections
referenced by `_from` and `_to` values may be dropped and re-created later. Any referenced by `_from` and `_to` values may be dropped and re-created later. Any
`_from` and `_to` values of edges pointing to such dropped collection are unaffected `_from` and `_to` values of edges pointing to such dropped collection are unaffected
by the drop operation now. by the drop operation now.
@ -273,7 +275,7 @@ default, including
The ArangoDB 3.0 web interface is significantly improved. It now comes with a more The ArangoDB 3.0 web interface is significantly improved. It now comes with a more
responsive design, making it easier to use on different devices. Navigation and menus responsive design, making it easier to use on different devices. Navigation and menus
have been simplified, and related items have been regrouped to stay close together have been simplified, and related items have been regrouped to stay closer together
and allow tighter workflows. and allow tighter workflows.
The AQL query editor is now much easier to use. Multiple queries can be started and tracked The AQL query editor is now much easier to use. Multiple queries can be started and tracked
@ -288,7 +290,7 @@ longer-running operations are ongoing. It also keeps more state about user's cho
windows sizes, whether the tree or the code view was last used in the document editor). windows sizes, whether the tree or the code view was last used in the document editor).
Cluster statistics are now integrated into the web interface as well. Additionally, a Cluster statistics are now integrated into the web interface as well. Additionally, a
"Feedback" menu item has been added to easily provide the ArangoDB team feedback about menu item "Help us" has been added to easily provide the ArangoDB team feedback about
the product. the product.
!SECTION Foxx improvements !SECTION Foxx improvements
@ -392,3 +394,14 @@ contributions harder than necessary. Now the build system is unified, and
all targets (Linux, Windows, MacOS) are built from the same set of build all targets (Linux, Windows, MacOS) are built from the same set of build
instructions. instructions.
!SECTION Documentation
The documentation has been enhanced and re-organized to be more intuitive.
A new introduction for beginners should bring you up to speed with ArangoDB
in less than an hour. Additional topics have been introduced and will be
extended with upcoming releases.
The topics AQL and HTTP API are now separated from the manual for better
searchability and less confusion. A version switcher makes it easier to
jump to the version of the docs you are interested in.

View File

@ -120,7 +120,19 @@ The type casting applied by the `TO_NUMBER()` AQL function has changed as follow
objects / documents were converted to the value `null`. objects / documents were converted to the value `null`.
Additionally, the `TO_STRING()` AQL function now converts `null` values into an empty string Additionally, the `TO_STRING()` AQL function now converts `null` values into an empty string
(`""`) instead of the string `"null"`. (`""`) instead of the string `"null"`, which is more in line with `LENGTH(null)` returning
`0` and not `4` since v2.6.
!SUBSECTION Arithmetic operators
As the arithmetic operations in AQL implicitly convert their operands to numeric values using
`TO_NUMBER()`, their casting behavior has also changed as described above.
Some examples of the changed behavior:
- `"foo" + 1` produces `1` now. In previous versions this produced `null`.
- `[ 1, 2 ] + 1` produces `1`. In previous versions this produced `null`.
- `1 + "foo" + 1´ produces `2` now. In previous version this produced `1`.
!SUBSECTION Attribute names and parameters !SUBSECTION Attribute names and parameters
@ -138,10 +150,10 @@ FOR doc IN collection
If the bind parameter `@name` contained the dot symbol (e.g. `@bind` = `a.b`, it was unclear If the bind parameter `@name` contained the dot symbol (e.g. `@bind` = `a.b`, it was unclear
whether this should trigger sub-attribute access (i.e. `doc.a.b`) or a access to an attribute whether this should trigger sub-attribute access (i.e. `doc.a.b`) or a access to an attribute
with exactly the specified name (i.e. `doc."a.b"`). with exactly the specified name (i.e. `doc["a.b"]`).
ArangoDB 3.0 now handles attribute names containing the dot symbol properly, and sending a ArangoDB 3.0 now handles attribute names containing the dot symbol properly, and sending a
bind parameter `@name` = `a.b` will now always trigger an access to the attribute `doc."a.b"`, bind parameter `@name` = `a.b` will now always trigger an access to the attribute `doc["a.b"]`,
not the sub-attribute `b` of `a` in `doc`. not the sub-attribute `b` of `a` in `doc`.
For users that used the "hack" of passing bind parameters containing dot symbol to access For users that used the "hack" of passing bind parameters containing dot symbol to access
@ -149,17 +161,6 @@ sub-attributes, ArangoDB 3.0 allows specifying the attribute name parts as an ar
e.g. `@name` = `[ "a", "b" ]`, which will be resolved to the sub-attribute access `doc.a.b` e.g. `@name` = `[ "a", "b" ]`, which will be resolved to the sub-attribute access `doc.a.b`
when the query is executed. when the query is executed.
!SUBSECTION Arithmetic operators
As the arithmetic operations in AQL implicitly convert their operands to numeric values using
`TO_NUMBER()`, their casting behavior has also changed as described above.
Some examples of the changed behavior:
- `"foo" + 1` produces `1` now. In previous versions this produced `null`.
- `[ 1, 2 ] + 1` produces `1`. In previous versions this produced `null`.
- `1 + "foo" + 1´ produces `2` now. In previous version this produced `1`.
!SUBSECTION Keywords !SUBSECTION Keywords
`LIKE` is now a keyword in AQL. Using `LIKE` in either case as an attribute or collection `LIKE` is now a keyword in AQL. Using `LIKE` in either case as an attribute or collection
@ -167,7 +168,7 @@ name in AQL queries now requires quoting.
!SUBSECTION Subqueries !SUBSECTION Subqueries
Queries that contain Subqueries that contain data-modification operations such as `INSERT`, Queries that contain subqueries that contain data-modification operations such as `INSERT`,
`UPDATE`, `REPLACE`, `UPSERT` or `REMOVE` will now refuse to execute if the collection `UPDATE`, `REPLACE`, `UPSERT` or `REMOVE` will now refuse to execute if the collection
affected by the subquery's data-modification operation is read-accessed in an outer scope affected by the subquery's data-modification operation is read-accessed in an outer scope
of the query. of the query.
@ -223,8 +224,8 @@ Among others, the following V8 options change in the new version of ArangoDB:
- `--es_staging`: in 2.8 it had the meaning `enable all completed harmony features`, in 3.0 - `--es_staging`: in 2.8 it had the meaning `enable all completed harmony features`, in 3.0
the option means `enable test-worthy harmony features (for internal use only)` the option means `enable test-worthy harmony features (for internal use only)`
- `--strong_this`: this option wasn't present in 2.8. In 3.0 it means `don't allow 'this' to escape from constructors` - `--strong_this`: this option wasn't present in 2.8. In 3.0 it means `don't allow 'this' to
and defaults to true. escape from constructors` and defaults to true.
- `--harmony_regexps`: this options means `enable "harmony regular expression extensions"` - `--harmony_regexps`: this options means `enable "harmony regular expression extensions"`
and changes its default value from false to true and changes its default value from false to true