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