mirror of https://gitee.com/bigwinds/arangodb
Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
This commit is contained in:
commit
032df207f1
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue