1
0
Fork 0

Fix missing changelog and docs entries (#2837)

* Adding missing changelog entries

* Modified changelog

* Add index deduplication option HTTP docs

* added info about ARANGODB_DEFAULT_ROOT_PASSWORD

* Revert "added info about ARANGODB_DEFAULT_ROOT_PASSWORD"

This reverts commit 3f0241f90c4e3f59c58edda5a1f6019debae9735.
This commit is contained in:
Simon Grätzer 2017-07-19 17:03:28 +02:00 committed by Frank Celler
parent a401fd72f0
commit 59f75c1c3f
3 changed files with 255 additions and 237 deletions

View File

@ -14,8 +14,20 @@ devel
* documentation and js fixes for secondaries
* RocksDB storage format was changed, users of the previous beta/alpha versions
must delete the database directory and re-import their data
* enabled permissions on database and collection level
* added and changed some user related REST APIs
* added `PUT /_api/user/{user}/database/{database}/{collection}` to change collection permission
* added `GET /_api/user/{user}/database/{database}/{collection}`
* added optional `full` parameter to the `GET /_api/user/{user}/database/` REST call
* added user functions in the arangoshell `@arangodb/users` module
* added `grantCollection` and `revokeCollection` functions
* added `permission(user, database, collection)` to retrieve collection specific rights
* added "deduplicate" attribute for array indexes, which controls whether inserting
duplicate index values from the same document into a unique array index will lead to
an error or not:

View File

@ -1,130 +1,133 @@
@startDocuBlock JSF_post_api_index_hash
@brief creates a hash index
@RESTHEADER{POST /_api/index#hash, Create hash index}
@RESTQUERYPARAMETERS
@RESTQUERYPARAM{collection-name,string,required}
The collection name.
@RESTBODYPARAM{type,string,required,string}
must be equal to *"hash"*.
@RESTBODYPARAM{fields,array,required,string}
an array of attribute paths.
@RESTBODYPARAM{unique,boolean,required,}
if *true*, then create a unique index.
@RESTBODYPARAM{sparse,boolean,required,}
if *true*, then create a sparse index.
@RESTDESCRIPTION
**NOTE** Swagger examples won't work due to the anchor.
Creates a hash index for the collection *collection-name* if it
does not already exist. The call expects an object containing the index
details.
In a sparse index all documents will be excluded from the index that do not
contain at least one of the specified index attributes (i.e. *fields*) or that
have a value of *null* in any of the specified index attributes. Such documents
will not be indexed, and not be taken into account for uniqueness checks if
the *unique* flag is set.
In a non-sparse index, these documents will be indexed (for non-present
indexed attributes, a value of *null* will be used) and will be taken into
account for uniqueness checks if the *unique* flag is set.
**Note**: unique indexes on non-shard keys are not supported in a cluster.
@RESTRETURNCODES
@RESTRETURNCODE{200}
If the index already exists, then a *HTTP 200* is returned.
@RESTRETURNCODE{201}
If the index does not already exist and could be created, then a *HTTP 201*
is returned.
@RESTRETURNCODE{400}
If the collection already contains documents and you try to create a unique
hash index in such a way that there are documents violating the uniqueness,
then a *HTTP 400* is returned.
@RESTRETURNCODE{404}
If the *collection-name* is unknown, then a *HTTP 404* is returned.
@EXAMPLES
Creating an unique constraint
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateNewUniqueConstraint}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "hash",
unique: true,
fields : [ "a", "b" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
Creating a non-unique hash index
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateNewHashIndex}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "hash",
unique: false,
fields: [ "a", "b" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
Creating a sparse index
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateSparseHashIndex}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "hash",
unique: false,
sparse: true,
fields: [ "a" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
@endDocuBlock
@startDocuBlock JSF_post_api_index_hash
@brief creates a hash index
@RESTHEADER{POST /_api/index#hash, Create hash index}
@RESTQUERYPARAMETERS
@RESTQUERYPARAM{collection-name,string,required}
The collection name.
@RESTBODYPARAM{type,string,required,string}
must be equal to *"hash"*.
@RESTBODYPARAM{fields,array,required,string}
an array of attribute paths.
@RESTBODYPARAM{unique,boolean,required,}
if *true*, then create a unique index.
@RESTBODYPARAM{sparse,boolean,required,}
if *true*, then create a sparse index.
@RESTBODYPARAM{deduplicate,boolean,optional,boolean}
if *false*, the deduplication of array values is turned off.
@RESTDESCRIPTION
**NOTE** Swagger examples won't work due to the anchor.
Creates a hash index for the collection *collection-name* if it
does not already exist. The call expects an object containing the index
details.
In a sparse index all documents will be excluded from the index that do not
contain at least one of the specified index attributes (i.e. *fields*) or that
have a value of *null* in any of the specified index attributes. Such documents
will not be indexed, and not be taken into account for uniqueness checks if
the *unique* flag is set.
In a non-sparse index, these documents will be indexed (for non-present
indexed attributes, a value of *null* will be used) and will be taken into
account for uniqueness checks if the *unique* flag is set.
**Note**: unique indexes on non-shard keys are not supported in a cluster.
@RESTRETURNCODES
@RESTRETURNCODE{200}
If the index already exists, then a *HTTP 200* is returned.
@RESTRETURNCODE{201}
If the index does not already exist and could be created, then a *HTTP 201*
is returned.
@RESTRETURNCODE{400}
If the collection already contains documents and you try to create a unique
hash index in such a way that there are documents violating the uniqueness,
then a *HTTP 400* is returned.
@RESTRETURNCODE{404}
If the *collection-name* is unknown, then a *HTTP 404* is returned.
@EXAMPLES
Creating an unique constraint
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateNewUniqueConstraint}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "hash",
unique: true,
fields : [ "a", "b" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
Creating a non-unique hash index
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateNewHashIndex}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "hash",
unique: false,
fields: [ "a", "b" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
Creating a sparse index
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateSparseHashIndex}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "hash",
unique: false,
sparse: true,
fields: [ "a" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
@endDocuBlock

View File

@ -1,107 +1,110 @@
@startDocuBlock JSF_post_api_index_skiplist
@brief creates a skip-list
@RESTHEADER{POST /_api/index#skiplist, Create skip list}
@RESTQUERYPARAMETERS
@RESTQUERYPARAM{collection-name,string,required}
The collection name.
@RESTBODYPARAM{type,string,required,string}
must be equal to *"skiplist"*.
@RESTBODYPARAM{fields,array,required,string}
an array of attribute paths.
@RESTBODYPARAM{unique,boolean,required,}
if *true*, then create a unique index.
@RESTBODYPARAM{sparse,boolean,required,}
if *true*, then create a sparse index.
@RESTDESCRIPTION
Creates a skip-list index for the collection *collection-name*, if
it does not already exist. The call expects an object containing the index
details.
In a sparse index all documents will be excluded from the index that do not
contain at least one of the specified index attributes (i.e. *fields*) or that
have a value of *null* in any of the specified index attributes. Such documents
will not be indexed, and not be taken into account for uniqueness checks if
the *unique* flag is set.
In a non-sparse index, these documents will be indexed (for non-present
indexed attributes, a value of *null* will be used) and will be taken into
account for uniqueness checks if the *unique* flag is set.
**Note**: unique indexes on non-shard keys are not supported in a cluster.
@RESTRETURNCODES
@RESTRETURNCODE{200}
If the index already exists, then a *HTTP 200* is
returned.
@RESTRETURNCODE{201}
If the index does not already exist and could be created, then a *HTTP 201*
is returned.
@RESTRETURNCODE{400}
If the collection already contains documents and you try to create a unique
skip-list index in such a way that there are documents violating the
uniqueness, then a *HTTP 400* is returned.
@RESTRETURNCODE{404}
If the *collection-name* is unknown, then a *HTTP 404* is returned.
@EXAMPLES
Creating a skiplist index
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateNewSkiplist}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "skiplist",
unique: false,
fields: [ "a", "b" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
Creating a sparse skiplist index
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateSparseSkiplist}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "skiplist",
unique: false,
sparse: true,
fields: [ "a" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
@endDocuBlock
@startDocuBlock JSF_post_api_index_skiplist
@brief creates a skip-list
@RESTHEADER{POST /_api/index#skiplist, Create skip list}
@RESTQUERYPARAMETERS
@RESTQUERYPARAM{collection-name,string,required}
The collection name.
@RESTBODYPARAM{type,string,required,string}
must be equal to *"skiplist"*.
@RESTBODYPARAM{fields,array,required,string}
an array of attribute paths.
@RESTBODYPARAM{unique,boolean,required,}
if *true*, then create a unique index.
@RESTBODYPARAM{sparse,boolean,required,}
if *true*, then create a sparse index.
@RESTBODYPARAM{deduplicate,boolean,optional,boolean}
if *false*, the deduplication of array values is turned off.
@RESTDESCRIPTION
Creates a skip-list index for the collection *collection-name*, if
it does not already exist. The call expects an object containing the index
details.
In a sparse index all documents will be excluded from the index that do not
contain at least one of the specified index attributes (i.e. *fields*) or that
have a value of *null* in any of the specified index attributes. Such documents
will not be indexed, and not be taken into account for uniqueness checks if
the *unique* flag is set.
In a non-sparse index, these documents will be indexed (for non-present
indexed attributes, a value of *null* will be used) and will be taken into
account for uniqueness checks if the *unique* flag is set.
**Note**: unique indexes on non-shard keys are not supported in a cluster.
@RESTRETURNCODES
@RESTRETURNCODE{200}
If the index already exists, then a *HTTP 200* is
returned.
@RESTRETURNCODE{201}
If the index does not already exist and could be created, then a *HTTP 201*
is returned.
@RESTRETURNCODE{400}
If the collection already contains documents and you try to create a unique
skip-list index in such a way that there are documents violating the
uniqueness, then a *HTTP 400* is returned.
@RESTRETURNCODE{404}
If the *collection-name* is unknown, then a *HTTP 404* is returned.
@EXAMPLES
Creating a skiplist index
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateNewSkiplist}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "skiplist",
unique: false,
fields: [ "a", "b" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
Creating a sparse skiplist index
@EXAMPLE_ARANGOSH_RUN{RestIndexCreateSparseSkiplist}
var cn = "products";
db._drop(cn);
db._create(cn);
var url = "/_api/index?collection=" + cn;
var body = {
type: "skiplist",
unique: false,
sparse: true,
fields: [ "a" ]
};
var response = logCurlRequest('POST', url, body);
assert(response.code === 201);
logJsonResponse(response);
~ db._drop(cn);
@END_EXAMPLE_ARANGOSH_RUN
@endDocuBlock