mirror of https://gitee.com/bigwinds/arangodb
558 lines
22 KiB
Plaintext
558 lines
22 KiB
Plaintext
v1.1.0 (XXXX-XX-XX)
|
|
-------------------
|
|
|
|
* fixed issue #309: renamed stub "import" button from web interface
|
|
|
|
* fixed issue #307: added WaitForSync column in collections list in in web interface
|
|
|
|
* fixed issue #306: naming in web interface
|
|
|
|
* fixed issue #304: do not clear AQL query text input when switching tabs in
|
|
web interface
|
|
|
|
* fixed issue #303: added documentation about usage of var keyword in web interface
|
|
|
|
* fixed issue #301: PATCH does not work in web interface
|
|
|
|
# fixed issue #269: fix make distclean & clean
|
|
|
|
* fixed issue #296: system collections not usable from AQL
|
|
|
|
* fixed issue #295: deadlock on shutdown
|
|
|
|
* added collection type label to web interface
|
|
|
|
* fixed issue #290: the web interface now disallows creating non-edges in edge collections
|
|
when creating collections via the web interface, the collection type must also be
|
|
specified (default is document collection)
|
|
|
|
* fixed issue #289: tab-completion does not insert any spaces
|
|
|
|
* fixed issue #282: fix escaping in web interface
|
|
|
|
* made AQL function NOT_NULL take any number of arguments. Will now return its
|
|
first argument that is not null, or null if all arguments are null. This is downwards
|
|
compatible.
|
|
|
|
* changed misleading AQL function name NOT_LIST() to FIRST_LIST() and slightly changed
|
|
the behavior. The function will now return its first argument that is a list, or null
|
|
if none of the arguments are lists.
|
|
This is mostly downwards-compatible. The only change to the previous implementation in
|
|
1.1-beta will happen if two arguments were passed and the 1st and 2nd arguments were
|
|
both no lists. In previous 1.1, the 2nd argument was returned as is, but now null
|
|
will be returned.
|
|
|
|
* add AQL function FIRST_DOCUMENT(), with same behavior as FIRST_LIST(), but working
|
|
with documents instead of lists.
|
|
|
|
* added UPGRADING help text
|
|
|
|
* WARNING:
|
|
arangod now performs a database version check at startup. It will look for a file
|
|
named "VERSION" in its database directory. If the file is not present, arangod will
|
|
perform an automatic upgrade of the database directory. This should be the normal
|
|
case when upgrading from ArangoDB 1.0 to ArangoDB 1.1.
|
|
|
|
If the VERSION file is present but is from an older version of ArangoDB, arangod
|
|
will refuse to start and ask the user to run a manual upgrade first. A manual upgrade
|
|
can be performed by starting arangod with the option `--upgrade`.
|
|
|
|
This upgrade procedure shall ensure that users have full control over when they
|
|
perform any updates/upgrades of their data, and can plan backups accordingly. The
|
|
procedure also guarantees that the server is not run without any required system
|
|
collections or with in incompatible data state.
|
|
|
|
* fixed issue #284: fixed Javascript errors when adding edges/vertices without own
|
|
attributes
|
|
|
|
* fixed issue #283: AQL LENGTH() now works on documents, too
|
|
|
|
* fixed issue #281: documentation for skip lists shows wrong example
|
|
|
|
* fixed AQL optimiser bug, related to OR-combined conditions that filtered on the
|
|
same attribute but with different conditions
|
|
|
|
* fixed issue #277: allow usage of collection names when creating edges
|
|
the fix of this issue also implies validation of collection names / ids passed to
|
|
the REST edge create method. edges with invalid collection ids or names in the
|
|
"from" or "to" values will be rejected and not saved
|
|
|
|
v1.1.beta2 (2012-11-13)
|
|
-----------------------
|
|
|
|
* fixed arangoirb compilation
|
|
|
|
* fixed doxygen
|
|
|
|
|
|
v1.1.beta1 (2012-10-24)
|
|
-----------------------
|
|
|
|
* fixed AQL optimiser bug
|
|
|
|
* WARNING:
|
|
- the user has changed from "arango" to "arangodb", the start script has changed from
|
|
"arangod" to "arangodb", the database directory has changed from "/var/arangodb" to
|
|
"/var/lib/arangodb" to be compliant with various Linux policies
|
|
|
|
- In 1.1, we have introduced types for collections: regular documents go into document
|
|
collections, and edges go into edge collections. The prefixing (db.xxx vs. edges.xxx)
|
|
works slightly different in 1.1: edges.xxx can still be used to access collections,
|
|
however, it will not determine the type of existing collections anymore. To create an
|
|
edge collection 1.1, you can use db._createEdgeCollection() or edges._create().
|
|
And there's of course also db._createDocumentCollection().
|
|
db._create() is also still there and will create a document collection by default,
|
|
whereas edges._create() will create an edge collection.
|
|
|
|
- the admin web interface that was previously available via the simple URL suffix /
|
|
is now available via a dedicated URL suffix only: /_admin/html
|
|
The reason for this is that routing and URLs are now subject to changes by the end user,
|
|
and only URLs parts prefixed with underscores (e.g. /_admin or /_api) are reserved
|
|
for ArangoDB's internal usage.
|
|
|
|
* the server now handles requests with invalid Content-Length header values as follows:
|
|
- if Content-Length is negative, the server will respond instantly with HTTP 411
|
|
(length required)
|
|
|
|
- if Content-Length is positive but shorter than the supplied body, the server will
|
|
respond with HTTP 400 (bad request)
|
|
|
|
- if Content-Length is positive but longer than the supplied body, the server will
|
|
wait for the client to send the missing bytes. The server allows 90 seconds for this
|
|
and will close the connection if the client does not send the remaining data
|
|
|
|
- if Content-Length is bigger than the maximum allowed size (512 MB), the server will
|
|
fail with HTTP 413 (request entitiy too large).
|
|
|
|
- if the length of the HTTP headers is greated than the maximum allowed size (1 MB),
|
|
the server will fail with HTTP 431 (request header fields too large)
|
|
|
|
* issue #265: allow optional base64 encoding/decoding of action response data
|
|
|
|
* issue #252: create _modules collection using arango-upgrade (note: arango-upgrade was
|
|
finally replaced by the `--upgrade` option for arangod)
|
|
|
|
* issue #251: allow passing arbitrary options to V8 engine using new command line option:
|
|
--javascript.v8-options. Using this option, the Harmony features or other settings in
|
|
v8 can be enabled if the end user requires them
|
|
|
|
* issue #248: allow AQL optimiser to pull out completely uncorrelated subqueries to the
|
|
top level, resulting in less repeated evaluation of the subquery
|
|
|
|
* upgraded to Doxygen 1.8.0
|
|
|
|
* issue #247: added AQL function MERGE_RECURSIVE
|
|
|
|
* issue #246: added clear() function in arangosh
|
|
|
|
* issue #245: Documentation: Central place for naming rules/limits inside ArangoDB
|
|
|
|
* reduced size of hash index elements by 50 %, allowing more index elements to fit in
|
|
memory
|
|
|
|
* issue #235: GUI Shell throws Error:ReferenceError: db is not defined
|
|
|
|
* issue #229: methods marked as "under construction"
|
|
|
|
* issue #228: remove unfinished APIs (/_admin/config/*)
|
|
|
|
* having the OpenSSL library installed is now a prerequisite to compiling ArangoDB
|
|
Also removed the --enable-ssl configure option because ssl is always required.
|
|
|
|
* added AQL functions TO_LIST, NOT_LIST
|
|
|
|
* issue #224: add optional Content-Id for batch requests
|
|
|
|
* issue #221: more documentation on AQL explain functionality. Also added
|
|
ArangoStatement.explain() client method
|
|
|
|
* added db._createStatement() method on server as well (was previously available
|
|
on the client only)
|
|
|
|
* issue #219: continue in case of "document not found" error in PATHS() function
|
|
|
|
* issue #213: make waitForSync overridable on specifc actions
|
|
|
|
* changed AQL optimiser to use indexes in more cases. Previously, indexes might
|
|
not have been used when in a reference expression the inner collection was
|
|
specified last. Example: FOR u1 IN users FOR u2 IN users FILTER u1._id == u2._id
|
|
Previously, this only checked whether an index could be used for u2._id (not
|
|
possible). It was not checked whether an index on u1._id could be used (possible).
|
|
Now, for expressions that have references/attribute names on both sides of the
|
|
above as above, indexes are checked for both sides.
|
|
|
|
* issue #204: extend the CSV import by TSV and by user configurable
|
|
seperator character(s)
|
|
|
|
* issue #180: added support for batch operations
|
|
|
|
* added startup option --server.backlog-size
|
|
this allows setting the value of the backlog for the listen() system call.
|
|
the default value is 10, the maximum value is platform-dependent
|
|
|
|
* introduced new configure option "--enable-maintainer-mode" for
|
|
ArangoDB maintainers. this option replaces the previous compile switches
|
|
--with-boost-test, --enable-bison, --enable-flex and --enable-errors-dependency
|
|
the individual configure options have been removed. --enable-maintainer-mode
|
|
turns them all on.
|
|
|
|
* removed potentially unused configure option --enable-memfail
|
|
|
|
* fixed issue #197: HTML web interface calls /_admin/user-manager/session
|
|
|
|
* fixed issue #195: VERSION file in database directory
|
|
|
|
* fixed issue #193: REST API HEAD request returns a message body on 404
|
|
|
|
* fixed issue #188: intermittent issues with 1.0.0
|
|
(server-side cursors not cleaned up in all cases, pthreads deadlock issue)
|
|
|
|
* issue #189: key store should use ISO datetime format bug
|
|
|
|
* issue #187: run arango-upgrade on server start (note: arango-upgrade was finally
|
|
replaced by the `--upgrade` option for arangod)n
|
|
|
|
* fixed issue #183: strange unittest error
|
|
|
|
* fixed issue #182: manual pages
|
|
|
|
* fixed issue #181: use getaddrinfo
|
|
|
|
* moved default database directory to "/var/lib/arangodb" in accordance with
|
|
http://www.pathname.com/fhs/pub/fhs-2.3.html
|
|
|
|
* fixed issue #179: strange text in import manual
|
|
|
|
* fixed issue #178: test for aragoimp is missing
|
|
|
|
* fixed issue #177: a misleading error message was returned if unknown variables
|
|
were used in certain positions in an AQL query.
|
|
|
|
* fixed issue #176: explain how to use AQL from the arangosh
|
|
|
|
* issue #175: re-added hidden (and deprecated) option --server.http-port. This
|
|
option is only there to be downwards-compatible to Arango 1.0.
|
|
|
|
* fixed issue #174: missing Documentation for `within`
|
|
|
|
* fixed issue #170: add db.<coll_name>.all().toArray() to arangosh help screen
|
|
|
|
* fixed issue #169: missing argument in Simple Queries
|
|
|
|
* added program arango-upgrade. This program must be run after installing ArangoDB
|
|
and after upgrading from a previous version of ArangoDB. The arango-upgrade script
|
|
will ensure all system collections are created and present in the correct state.
|
|
It will also perform any necessary data updates.
|
|
Note: arango-upgrade was finally replaced by the `--upgrade` option for arangod.
|
|
|
|
* issue #153: edge collection should be a flag for a collection
|
|
collections now have a type so that the distinction between document and edge
|
|
collections can now be done at runtime using a collection's type value.
|
|
A collection's type can be queried in Javascript using the <collection>.type() method.
|
|
|
|
When new collections are created using db._create(), they will be document
|
|
collections by default. When edge._create() is called, an edge collection will be created.
|
|
To explicitly create a collection of a specific/different type, use the methods
|
|
_createDocumentCollection() or _createEdgeCollection(), which are available for
|
|
both the db and the edges object.
|
|
The Javascript objects ArangoEdges and ArangoEdgesCollection have been removed
|
|
completely.
|
|
All internal and test code has been adjusted for this, and client code
|
|
that uses edges.* should also still work because edges is still there and creates
|
|
edge collections when _create() is called.
|
|
|
|
INCOMPATIBLE CHANGE: Client code might still need to be changed in the following aspect:
|
|
Previously, collections did not have a type so documents and edges could be inserted
|
|
in the same collection. This is now disallowed. Edges can only be inserted into
|
|
edge collections now. As there were no collection types in 1.0, ArangoDB will perform
|
|
an automatic upgrade when migrating from 1.0 to 1.1.
|
|
The automatic upgrade will check every collection and determine its type as follows:
|
|
- if among the first 50 documents in the collection there are documents with
|
|
attributes "_from" and "_to", the collection is typed as an edge collection
|
|
- if among the first 50 documents in the collection there are no documents with
|
|
attributes "_from" and "_to", the collection is made as a document collection
|
|
|
|
* issue #150: call V8 garbage collection on server periodically
|
|
|
|
* issue #110: added support for partial updates
|
|
|
|
The REST API for documents now offers an HTTP PATCH method to partially update
|
|
documents. Overwriting/replacing documents is still available via the HTTP PUT method
|
|
as before. The Javascript API in the shell also offers a new update() method in extension to
|
|
the previously existing replace() method.
|
|
|
|
v1.0.2 (2012-10-22)
|
|
-------------------
|
|
|
|
* repository CentOS-X.Y moved to CentOS-X, same for Debian
|
|
|
|
* bugfix for rollback from edges
|
|
|
|
* bugfix for hash indexes
|
|
|
|
* bugfix for StringBuffer::erase_front
|
|
|
|
* added autoload for modules
|
|
|
|
* added AQL function TO_LIST
|
|
|
|
v1.0.1 (2012-09-30)
|
|
-------------------
|
|
|
|
* draft for issue #165: front-end application howto
|
|
|
|
* updated mruby to cf8fdea4a6598aa470e698e8cbc9b9b492319d
|
|
|
|
* fix for issue #190: install doesn't create log directory
|
|
|
|
* fix for issue #194: potential race condition between creating and dropping collections
|
|
|
|
* fix for issue #193: REST API HEAD request returns a message body on 404
|
|
|
|
* fix for issue #188: intermittent issues with 1.0.0
|
|
|
|
* fix for issue #163: server cannot create collection because of abandoned files
|
|
|
|
* fix for issue #150: call V8 garbage collection on server periodically
|
|
|
|
|
|
v1.0.0 (2012-08-17)
|
|
-------------------
|
|
|
|
* fix for issue #157: check for readline and ncurses headers, not only libraries
|
|
|
|
|
|
v1.0.beta4 (2012-08-15)
|
|
-----------------------
|
|
|
|
* fix for issue #152: fix memleak for barriers
|
|
|
|
|
|
v1.0.beta3 (2012-08-10)
|
|
-----------------------
|
|
|
|
* fix for issue #151: Memleak, collection data not removed
|
|
|
|
* fix for issue #149: Inconsistent port for admin interface
|
|
|
|
* fix for issue #163: server cannot create collection because of abandoned files
|
|
|
|
* fix for issue #157: check for readline and ncurses headers, not only libraries
|
|
|
|
* fix for issue #108: db.<collection>.truncate() inefficient
|
|
|
|
* fix for issue #109: added startup note about cached collection names and how to
|
|
refresh them
|
|
|
|
* fix for issue #156: fixed memleaks in /_api/import
|
|
|
|
* fix for issue #59: added tests for /_api/import
|
|
|
|
* modified return value for calls to /_api/import: now, the attribute "empty" is
|
|
returned as well, stating the number of empty lines in the input. Also changed the
|
|
return value of the error code attribute ("errorNum") from 1100 ("corrupted datafile")
|
|
to 400 ("bad request") in case invalid/unexpected JSON data was sent to the server.
|
|
This error code is more appropriate as no datafile is broken but just input data is
|
|
incorrect.
|
|
|
|
* fix for issue #152: Memleak for barriers
|
|
|
|
* fix for issue #151: Memleak, collection data not removed
|
|
|
|
* value of --database.maximal-journal-size parameter is now validated on startup. If
|
|
value is smaller than the minimum value (currently 1048576), an error is thrown and
|
|
the server will not start. Before this change, the global value of maximal journal
|
|
size was not validated at server start, but only on collection level
|
|
|
|
* increased sleep value in statistics creation loop from 10 to 500 microseconds. This
|
|
reduces accuracy of statistics values somewhere after the decimal points but saves
|
|
CPU time.
|
|
|
|
* avoid additional sync() calls when writing partial shape data (attribute name data)
|
|
to disk. sync() will still be called when the shape marker (will be written after
|
|
the attributes) is written to disk
|
|
|
|
* issue #147: added flag --database.force-sync-shapes to force synching of shape data
|
|
to disk. The default value is true so it is the same behavior as in version 1.0.
|
|
if set to false, shape data is synched to disk if waitForSync for the collection is
|
|
set to true, otherwise, shape data is not synched.
|
|
|
|
* fix for issue #145: strange issue on Travis: added epsilon for numeric comparion in
|
|
geo index
|
|
|
|
* fix for issue #136: adjusted message during indexing
|
|
|
|
* issue #131: added timeout for HTTP keep-alive connections. The default value is 300
|
|
seconds. There is a startup parameter server.keep-alive-timeout to configure the value.
|
|
Setting it to 0 will disable keep-alive entirely on the server.
|
|
|
|
* fix for issue #137: AQL optimizer should use indexes for ref accesses with
|
|
2 named attributes
|
|
|
|
|
|
v1.0.beta2 (2012-08-03)
|
|
-----------------------
|
|
|
|
* fix for issue #134: improvements for centos RPM
|
|
|
|
* fixed problem with disable-admin-interface in config file
|
|
|
|
|
|
v1.0.beta1 (2012-07-29)
|
|
-----------------------
|
|
|
|
* fixed issue #118: We need a collection "debugger"
|
|
|
|
* fixed issue #126: Access-Shaper must be cached
|
|
|
|
* INCOMPATIBLE CHANGE: renamed parameters "connect-timeout" and "request-timeout"
|
|
for arangosh and arangoimp to "--server.connect-timeout" and "--server.request-timeout"
|
|
|
|
* INCOMPATIBLE CHANGE: authorization is now required on the server side
|
|
Clients sending requests without HTTP autorization will be rejected with HTTP 401
|
|
To allow backwards compatibility, the server can be started with the option
|
|
"--server.disable-authentication"
|
|
|
|
* added options "--server.username" and "--server.password" for arangosh and arangoimp
|
|
These parameters must be used to specify the user and password to be used when
|
|
connecting to the server. If no password is given on the command line, arangosh/
|
|
arangoimp will interactively prompt for a password.
|
|
If no user name is specified on the command line, the default user "root" will be
|
|
used.
|
|
|
|
* added startup option "--server.ssl-cipher-list" to determine which ciphers to
|
|
use in SSL context. also added SSL_OP_CIPHER_SERVER_PREFERENCE to SSL default
|
|
options so ciphers are tried in server and not in client order
|
|
|
|
* changed default SSL protocol to TLSv1 instead of SSLv2
|
|
|
|
* changed log-level of SSL-related messages
|
|
|
|
* added SSL connections if server is compiled with OpenSSL support. Use --help-ssl
|
|
|
|
* INCOMPATIBLE CHANGE: removed startup option "--server.admin-port".
|
|
The new endpoints feature (see --server.endpoint) allows opening multiple endpoints
|
|
anyway, and the distinction between admin and "other" endpoints can be emulated
|
|
later using privileges
|
|
|
|
* INCOMPATIBLE CHANGE: removed startup options "--port", "--server.port", and
|
|
"--server.http-port" for arangod.
|
|
These options have been replaced by the new "--server.endpoint" parameter
|
|
|
|
* INCOMPATIBLE CHANGE: removed startup option "--server" for arangosh and arangoimp.
|
|
These options have been replaced by the new "--server.endpoint" parameter
|
|
|
|
* Added "--server.endpoint" option to arangod, arangosh, and arangoimp.
|
|
For arangod, this option allows specifying the bind endpoints for the server
|
|
The server can be bound to one or multiple endpoints at once. For arangosh
|
|
and arangoimp, the option specifies the server endpoint to connect to.
|
|
The following endpoint syntax is currently supported:
|
|
- tcp://host:port or http@tcp://host:port (HTTP over IPv4)
|
|
- tcp://[host]:port or http@tcp://[host]:port (HTTP over IPv6)
|
|
- ssl://host:port or http@tcp://host:port (HTTP over SSL-encrypted IPv4)
|
|
- ssl://[host]:port or http@tcp://[host]:port (HTTP over SSL-encrypted IPv6)
|
|
- unix://path/to/socket or http@unix:///path/to/socket (HTTP over UNIX socket)
|
|
|
|
If no port is specified, the default port of 8529 will be used.
|
|
|
|
* INCOMPATIBLE CHANGE: removed startup options "--server.require-keep-alive" and
|
|
"--server.secure-require-keep-alive".
|
|
The server will now behave as follows which should be more conforming to the
|
|
HTTP standard:
|
|
* if a client sends a "Connection: close" header, the server will close the
|
|
connection
|
|
* if a client sends a "Connection: keep-alive" header, the server will not
|
|
close the connection
|
|
* if a client does not send any "Connection" header, the server will assume
|
|
"keep-alive" if the request was an HTTP/1.1 request, and "close" if the
|
|
request was an HTTP/1.0 request
|
|
|
|
* (minimal) internal optimisations for HTTP request parsing and response header
|
|
handling
|
|
|
|
* fixed Unicode unescaping bugs for \f and surrogate pairs in BasicsC/strings.c
|
|
|
|
* changed implementation of TRI_BlockCrc32 algorithm to use 8 bytes at a time
|
|
|
|
* fixed issue #122: arangod doesn't start if <log.file> cannot be created
|
|
|
|
* fixed issue #121: wrong collection size reported
|
|
|
|
* fixed issue #98: Unable to change journalSize
|
|
|
|
* fixed issue #88: fds not closed
|
|
|
|
* fixed escaping of document data in HTML admin front end
|
|
|
|
* added HTTP basic authentication, this is always turned on
|
|
|
|
* added server startup option --server.disable-admin-interface to turn off the
|
|
HTML admin interface
|
|
|
|
* honor server startup option --database.maximal-journal-size when creating new
|
|
collections without specific journalsize setting. Previously, these
|
|
collections were always created with journal file sizes of 32 MB and the
|
|
--database.maximal-journal-size setting was ignored
|
|
|
|
* added server startup option --database.wait-for-sync to control the default
|
|
behavior
|
|
|
|
* renamed "--unit-tests" to "--javascript.unit-tests"
|
|
|
|
|
|
v1.0.alpha3 (2012-06-30)
|
|
------------------------
|
|
|
|
* fixed issue #116: createCollection=create option doesn't work
|
|
|
|
* fixed issue #115: Compilation issue under OSX 10.7 Lion & 10.8 Mountain Lion
|
|
(homebrew)
|
|
|
|
* fixed issue #114: image not found
|
|
|
|
* fixed issue #111: crash during "make unittests"
|
|
|
|
* fixed issue #104: client.js -> ARANGO_QUIET is not defined
|
|
|
|
|
|
v1.0.alpha2 (2012-06-24)
|
|
------------------------
|
|
|
|
* fixed issue #112: do not accept document with duplicate attribute names
|
|
|
|
* fixed issue #103: Should we cleanup the directory structure
|
|
|
|
* fixed issue #100: "count" attribute exists in cursor response with "count:
|
|
false"
|
|
|
|
* fixed issue #84 explain command
|
|
|
|
* added new MRuby version (2012-06-02)
|
|
|
|
* added --log.filter
|
|
|
|
* cleanup of command line options:
|
|
** --startup.directory => --javascript.startup-directory
|
|
** --quite => --quiet
|
|
** --gc.interval => --javascript.gc-interval
|
|
** --startup.modules-path => --javascript.modules-path
|
|
** --action.system-directory => --javascript.action-directory
|
|
** --javascript.action-threads => removed (is now the same pool as --server.threads)
|
|
|
|
* various bug-fixes
|
|
|
|
* support for import
|
|
|
|
* added option SKIP_RANGES=1 for make unittests
|
|
|
|
* fixed several range-related assertion failures in the AQL query optimiser
|
|
|
|
* fixed AQL query optimisations for some edge cases (e.g. nested subqueries with
|
|
invalid constant filter expressions)
|
|
|
|
|
|
v1.0.alpha1 (2012-05-28)
|
|
------------------------
|
|
|
|
Alpha Release of ArangoDB 1.0
|