mxcl/homebrew — pull request #16026 by fceller (2012-11-13 16:21:02+00:00)
Title: Updated ArangoDB to v1.0.4

Upgraded ArangoDB to v1.0.4, added v1.1.beta2 for --devel

v1.0.4 (2012-11-12)
-------------------

* issue #275: strange error message in arangosh 1.0.3 at startup

v1.0.3 (2012-11-08)
-------------------

* fixed AQL optimiser bug

* issue #273: fixed segfault in arangosh on HTTP 40x

* issue #265: allow optional base64 encoding/decoding of action response data

* issue #252: _modules collection not created automatically

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

* 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

* 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..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.

* 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 .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, the upgrade script
arango-upgrade must be run when migrating to 1.1. This script 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.