1
0
Fork 0
Commit Graph

2358 Commits

Author SHA1 Message Date
Jan Steemann 8e0ab92d1a Merge branch 'aql-jmmh-conditions' of https://github.com/arangodb/arangodb into aql-jmmh-conditions 2015-10-02 17:39:19 +02:00
Jan Steemann e0dcf4331d finish IN optimizations in Condition 2015-10-02 17:39:04 +02:00
Michael Hackstein 9bfd929cf5 Indexes compile again and some expressions seem to be evaluated. Might still crash. Start with --no-server with server it is still broken 2015-10-02 17:14:18 +02:00
Michael Hackstein 5de1a9b9b5 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-10-02 17:03:57 +02:00
Michael Hackstein d77dfc55c3 Started implementing runtime evaluation of IndexNode expressions 2015-10-02 17:03:53 +02:00
Michael Hackstein 4c065f470c Registered Index Node in several places where it was not yet handled. 2015-10-02 17:02:39 +02:00
Jan Steemann a2731a6121 blind commit 2015-10-02 17:02:02 +02:00
Jan Steemann 3a92fa8e16 merge IN with IN 2015-10-02 15:22:21 +02:00
Jan Steemann 7292384b37 deduplicate IN arrays 2015-10-02 14:05:27 +02:00
Jan Steemann 42b02427e6 fixed index usage 2015-10-01 17:27:57 +02:00
Michael Hackstein 9c38a47aa1 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-10-01 17:01:27 +02:00
Jan Steemann fab5c5902d clarified instructions 2015-10-01 16:59:14 +02:00
Michael Hackstein e55b5d59d5 Implemented IndexIterator for PrimaryIndex. The IndexBlock uses this Iterator. Still a double free as soon as the query is finished 2015-10-01 14:34:24 +02:00
Jan Steemann bc4e27bdc9 added getOne() 2015-10-01 13:25:03 +02:00
Jan Steemann 32bdc19522 Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-jmmh-conditions 2015-09-30 17:47:00 +02:00
Jan Steemann 0ea2247eb0 scan-build 2015-09-30 17:28:52 +02:00
Jan Steemann 806272876c satisfy scan-build 2015-09-30 17:21:07 +02:00
Jan Steemann e71ff5a4f5 cppcheck 2015-09-30 16:50:57 +02:00
Jan Steemann 40a1cf3ce3 fixed segfault 2015-09-30 16:03:46 +02:00
Jan Steemann 91e8884518 added AggregateNode.* 2015-09-30 15:55:38 +02:00
Jan Steemann 50fa5a2138 added SortNode file 2015-09-30 15:42:48 +02:00
Jan Steemann 9041b7b2c9 file split 2015-09-30 15:29:32 +02:00
Jan Steemann d99f7a498d moved index nodes to their own files 2015-09-30 15:13:49 +02:00
Jan Steemann b5cf8ce942 moved cluster nodes out of ExecutionNode.* 2015-09-30 14:51:11 +02:00
Jan Steemann 47e1b3ceb8 stringify conditions 2015-09-30 14:35:18 +02:00
Jan Steemann 6405c82a32 removed global reverse-flag for IndexNode. this flag has to be moved into the separate indexes used by the node 2015-09-30 14:14:41 +02:00
Jan Steemann cddabd1e20 fixed compile errors 2015-09-30 09:30:46 +02:00
Michael Hackstein 468e632abb Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-09-30 08:38:26 +02:00
Michael Hackstein 0fab24aca5 Fixed double free of condition and reactivated IndexNode 2015-09-30 08:36:56 +02:00
Jan Steemann 67de5480e8 check filter condition and sort condition support for all index types 2015-09-29 17:38:55 +02:00
Jan Steemann 27bcd7ee84 better estimates 2015-09-29 15:30:44 +02:00
Jan Steemann 7df6726c3f calculate costs for equality lookups 2015-09-29 13:08:51 +02:00
Michael Hackstein 8f0bd93120 Disabled the IndexBlock again, not yet working 2015-09-29 10:18:46 +02:00
Michael Hackstein c0a88a1371 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-09-29 10:04:15 +02:00
Michael Hackstein e35ea8995e Fixed used after free of condition node. Cloned the Condition AST whie handing it over. Still get a double free exception. IndexNodeis now handled. 2015-09-29 09:13:08 +02:00
Michael Hackstein 1e9c6f110b Started implementing the IndexBlock. Right now it expects an iterator for each used index that is created by an evaluated expression from the Block. Then it will go through all iterators in every get/skip some step 2015-09-28 19:30:10 +02:00
Jan Steemann 89b6329985 Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-jmmh-conditions 2015-09-28 18:13:29 +02:00
Jan Steemann 84f59d112e unified index use checks 2015-09-28 18:13:04 +02:00
Jan Steemann 0d845955e2 Merge branch 'aql-jmmh-conditions' of https://github.com/arangodb/arangodb into aql-jmmh-conditions 2015-09-28 14:11:44 +02:00
Jan Steemann 3495816fa1 changed index signatures 2015-09-28 14:11:23 +02:00
Michael Hackstein cf7b0734b0 Fixed compile error 2015-09-28 13:50:26 +02:00
Michael Hackstein 0cdc8afcd5 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-09-28 13:38:45 +02:00
Michael Hackstein 18f890895f Fixed executionNode, does compile again 2015-09-28 13:38:40 +02:00
Jan Steemann 35f2bdb9fd fixed 2015-09-28 13:31:53 +02:00
Michael Hackstein 5e0c1900f8 Added more implementation to new IndexNode 2015-09-28 11:53:23 +02:00
Michael Hackstein 18f71966e9 React to _condition is nullptr when hitting EnumerateCollection 2015-09-28 11:02:39 +02:00
Jan Steemann aebf442e7a note latest sort expression used in a query 2015-09-25 18:21:25 +02:00
Jan Steemann ccd06fc1a4 simplified ConditionFinder 2015-09-25 18:01:02 +02:00
Jan Steemann d5dabfb528 Merge branch 'aql-jmmh-conditions' of https://github.com/arangodb/arangodb into aql-jmmh-conditions
Conflicts:
	arangod/Aql/OptimizerRules.cpp
2015-09-25 17:41:10 +02:00
Jan Steemann d51c984f11 use findEndNodes 2015-09-25 17:39:23 +02:00
Jan Steemann c72c568b07 added findEndNodes 2015-09-25 17:38:46 +02:00
Michael Hackstein 17a45c8cd3 Fixed potential memleaks in failure cases 2015-09-25 17:38:04 +02:00
Jan Steemann 0f52db88c9 added EndNodeFinder 2015-09-25 17:37:50 +02:00
Michael Hackstein 368eeb95b3 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-09-25 17:23:52 +02:00
Michael Hackstein 2a342fe40f The use-indexes rule now replaces EnumerateCollectionNodes with IndexNodes. Seems to work on visual test, needs automated test 2015-09-25 17:23:47 +02:00
Jan Steemann f2cbaa38e0 fixed condition printing 2015-09-25 16:35:18 +02:00
Michael Hackstein e0817f0263 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-09-25 16:34:49 +02:00
Michael Hackstein 6d814f63eb Modified the condition finder to maintain a list of possible enumerate collections nodes 2015-09-25 16:34:44 +02:00
Jan Steemann 9472eb7b45 make it link again 2015-09-25 16:30:29 +02:00
Jan Steemann abc87b2d5f added IndexNode stub 2015-09-25 13:40:51 +02:00
Michael Hackstein 1941b7f880 Added a new IndexNode does not compile yet 2015-09-25 13:18:43 +02:00
Michael Hackstein 2ab13b81a4 The Condition will now successfully produce a list of Indexes that can be combined for the current EnumerateCollectionBlock. If this list is empty we can do nothing but a Full Collection Scan 2015-09-25 13:00:37 +02:00
Michael Hackstein 6eb23f14f4 The Condition findIndexes now tries to find an index for each AND block and fills a list of indexes, iff there is any element in the list we are able to use a CombinedIndexRangeNode, if not we still have to use the EnumerateCollectionNode 2015-09-25 11:45:31 +02:00
Michael Hackstein 6a11ad28ee Adapted all indices to the new planned interface so they tell us if they can serve for a condition and present their costs 2015-09-25 10:40:04 +02:00
Michael Hackstein 180ffa74a3 Moved the conditionFinder to a seperate file 2015-09-24 14:16:25 +02:00
Michael Hackstein 6525755cc0 Fixed memleak 2015-09-23 17:04:37 +02:00
Michael Hackstein 8c3283f8a0 Fixed memleak 2015-09-23 16:29:28 +02:00
Michael Hackstein eae6394f22 Allowed the hashIndex to modify the DNF and-block node. It now successfully removes all entries it can be responsible for 2015-09-23 16:29:15 +02:00
Michael Hackstein 614902ee99 Replaced TRI_vector_pointer by std::vector in AstNode 2015-09-23 15:02:34 +02:00
Michael Hackstein aefc0edae0 Added a modifyable AST node to the index can serve and block functionality of all indicies. However non of them uses it yet 2015-09-23 14:38:23 +02:00
jsteemann 5c0ff48478 cppcheck 2015-09-22 23:40:57 +02:00
Michael Hackstein e6e795e198 Improved dev output. Now it is easier to see where more than one index is suiteable 2015-09-22 16:14:10 +02:00
Michael Hackstein 73077a17fc Implemented the foundation to identify indicies based on DNF Conditions. Primary is implemented as an example. Right now it is only printed that it can be used. TODO: actually use it. Other indicies 2015-09-22 15:39:07 +02:00
Michael Hackstein f1b0afd9a6 Started to implement functions to find indexes for each Condition sub part 2015-09-22 11:19:52 +02:00
Michael Hackstein 0d3a095736 Fixed a bug in AQL execution which caused LIMIT <skip> <total> to fail after sorting based on an attribute with skiplist index 2015-09-21 13:15:56 +02:00
Jan Steemann 291891036f internal refactoring of query API 2015-09-18 17:33:39 +02:00
Jan Steemann 3c4c64cf14 allow multiple collection nodes 2015-09-18 17:27:10 +02:00
Jan Steemann 3e4eab104c changed internal API 2015-09-18 17:00:39 +02:00
Jan Steemann aec802f126 removed unused functions 2015-09-18 16:53:22 +02:00
Michael Hackstein 1a7f414c16 Merge branch 'devel' of github.com:arangodb/arangodb into JHMH 2015-09-18 12:21:39 +02:00
Frank Celler c4d1fff729 new traversal 2015-09-18 10:40:28 +02:00
Jan Steemann fc553f4909 removed iostream includes 2015-09-17 18:46:42 +02:00
Michael Hackstein 1e5b246b6b Included the work of @dothebart that was created on optimizing the condition tree. 2015-09-17 18:27:47 +02:00
Jan Steemann 10edae06b4 cppcheck 2015-09-17 18:25:55 +02:00
Jan Steemann 2f10135e60 transplanted changes from aql-conditions 2015-09-16 17:36:17 +02:00
Jan Steemann b0798bbb19 first commit, broken 2015-09-16 17:22:09 +02:00
CoDEmanX 4158f7d12b Add AQL function DATE_DAYS_IN_MONTH(), extend DATE_FORMAT()
Conflicts:
	js/server/modules/org/arangodb/aql.js
2015-09-14 11:35:04 +02:00
Jan Steemann d9169f964e potential fix for 32 bit version 2015-09-12 21:26:59 +02:00
Jan Steemann ea4754546a clear AQL cache objects when starting a query, fixed a few TODOs in AQL date implementation 2015-09-11 21:23:07 +02:00
CoDEmanX 6fba9c5284 Additional AQL date functions: DATE_DAYOFYEAR, DATE_ISOWEEK, DATE_LEAPYEAR, DATE_QUARTER, DATE_ADD, DATE_SUBTRACT, DATE_DIFF, DATE_COMPARE and DATE_FORMAT.
Unit tests incomplete and untested. Behavior of some functions might need adjustments. ISO duration cache needs to be cleared on every AQL query to avoid a memory leak.

Please rebuild Aardvark and see TODOs in code. Also added Windows shortcuts to ignore list.
2015-09-11 06:23:36 +02:00
Jan Steemann 3e39dd088c better clear the block 2015-09-08 17:47:43 +02:00
Jan Steemann a7b51c39da added tests 2015-09-08 17:34:14 +02:00
Jan Steemann 8b599b5274 changed some include headers around 2015-09-07 17:09:10 +02:00
Willi Goesgens aec58c64c6 Add cast for windows 2015-09-07 13:36:06 +02:00
CoDEmanX 8aa78dcb7f Fix some more typos 2015-09-05 17:18:04 +02:00
Jan Steemann e602ca5662 issue #1471: document() vs documents() parameters (_key and _id) 2015-09-04 18:13:23 +02:00
Jan Steemann c6e44dde1d made two methods private 2015-09-04 10:59:28 +02:00
Willi Goesgens 771c291042 Merge pull request #1472 from CoDEmanX/devel
More Americanization
2015-09-04 09:15:30 +02:00
Jan Steemann 06760a2c45 fixed broken index scan 2015-09-03 22:49:53 +02:00
CoDEmanX 3a9648d78a More Americanization 2015-09-03 22:25:43 +02:00
Michael Hackstein 630c8fd42f Improved Primary Sequential read 2015-09-03 16:25:24 +02:00
CoDEmanX 956b396e43 Change spelling of 'initialize' to American English (actual code and files) 2015-09-01 17:29:22 +02:00
CoDEmanX b4593a7e82 Change spelling of 'initialize' to American English (comments and log messages only) 2015-09-01 17:07:21 +02:00
Michael Hackstein bb03d0001b Fixed memlead in index operator. Destructor was not virtual 2015-09-01 15:38:25 +02:00
Michael Hackstein 027445697d Renamed SkiplistIndex2 to SkiplistIndex ;) 2015-09-01 15:05:49 +02:00
Michael Hackstein c2b0220fd5 Style fix2 2015-09-01 15:05:48 +02:00
Michael Hackstein 26d64776c1 C++ified index-operator. Removed the free function now everything is handled properly via destructors 2015-09-01 15:05:47 +02:00
Michael Hackstein f81b962058 Get the IndexRangeBlock used to C++ified Skiplist 2015-09-01 15:05:47 +02:00
Jan Steemann 47695e9bd0 less headers used 2015-08-29 02:17:25 +02:00
Jan Steemann dfa749ecbc less headers included 2015-08-28 13:54:02 +02:00
Michael Hackstein 81fa8018b0 Improved primary index lookups to use parameter by reference instead of byPointer. less error prone. Fixed some issues with it. 2015-08-28 09:28:24 +02:00
Jan Steemann afb342eefd split big ExecutionBlock file into smaller files 2015-08-27 00:28:20 +02:00
Jan Steemann d0bd94f4c5 fixed Json 2015-08-26 16:23:26 +02:00
Jan Steemann 61243ebb7b Merge branch 'devel' of https://github.com/arangodb/arangodb into array_indexing
Conflicts:
	arangod/HashIndex/hash-array-multi.cpp
	arangod/Indexes/HashIndex.cpp
2015-08-26 15:01:29 +02:00
Frank Celler 2d45445a10 added additional-threads option 2015-08-26 13:13:47 +02:00
Michael Hackstein 40c1361244 Merge branch 'devel' of github.com:arangodb/arangodb into array_indexing 2015-08-25 16:40:31 +02:00
Jan Steemann 7540059f36 uint32_t => uint64_t 2015-08-25 15:08:09 +02:00
Jan Steemann 387e3e9cd4 make removeByExample, replaceByExample and updateByExample use AQL internally 2015-08-22 23:22:24 +02:00
Michael Hackstein b708a7ae68 Merge remote-tracking branch 'origin/devel' into array_indexing 2015-08-21 15:34:49 +02:00
Jan Steemann 8ee12f7a27 binary-safe back-references 2015-08-20 21:01:43 +02:00
Michael Hackstein 4bb8508d82 Implemented a new improved version of the Array index insertion function. 2015-08-20 14:03:17 +02:00
Jan Steemann 97d67e4399 use binary-safe string representations 2015-08-20 01:46:20 +02:00
Jan Steemann 1be3733a64 moved some handlers around
fix disappeared handlers
2015-08-20 01:26:52 +02:00
Max Neunhoeffer ff135a10ad Add some overrides to silence a clang compiler warning. 2015-08-19 14:46:06 +02:00
Michael Hackstein 59e8ea3fad Merge branch 'devel' of github.com:arangodb/arangodb into array_indexing 2015-08-19 11:56:34 +02:00
Jan Steemann bc7e0f7bbd issue #1445: Object literal simplificatin does not support pseudo-variables NEW and OLD 2015-08-19 09:25:46 +02:00
Michael Hackstein e867181a72 Merge remote-tracking branch 'origin/eimerung_hashindex' into array_indexing 2015-08-17 15:58:53 +02:00
Max Neunhoeffer dac7fb06e0 Finish change to hash index. Compiles, unit-tests still broken in one place. 2015-08-17 12:57:52 +02:00
Michael Hackstein ae989cf2ca Skiplist index now uses the unified index_element. 2015-08-17 12:43:14 +02:00
Michael Hackstein 8e3e2d547d Do not push <Class const> into vector. It does not work everywhere 2015-08-17 12:43:11 +02:00
Jan Steemann 907e6368c6 some unused function cleanup 2015-08-17 12:43:09 +02:00
Michael Hackstein c2338d80d0 A user can now create an indux on attribute[*] which will put an index on attribute and ignores the expand flag. Does not harm any feature in AQL now. 2015-08-17 12:43:08 +02:00
Michael Hackstein 17a8f73a06 Now the input for indexes is parsed using the new attribute parser. This means the flags for expanded Attributes are set. Also introduced a transformation function to transform an attributeName list back into a string. 2015-08-17 12:43:07 +02:00
Michael Hackstein 8fbb2739b0 The indexes can now use the new AttributeName struct which contains a flag if the attribute should be Array-Indexed. Right now this flag is hard-coded to false in all cases and not persisted. 2015-08-17 12:43:05 +02:00
Jan Steemann 57e9b55739 use TRI_CHAR_NODE_PAIR() 2015-08-14 00:54:59 +02:00
Jan Steemann dc1910e331 added AQL optimizer rule `patch-update-statements` 2015-08-13 13:02:47 +02:00
Jan Steemann 7b5ac63591 cppcheck 2015-08-12 21:37:28 +02:00
Frank Celler 9de6bd39db moved to strings, fixed #1432: arangosh doesn't ignore prefixed ....> on paste 2015-08-12 17:54:14 +02:00
Jan Steemann 330fac6225 some unused function cleanup 2015-08-06 21:25:32 +02:00
Jan Steemann 922c16dce1 fixed invocation of `LIKE` 2015-08-04 12:23:40 +02:00
Jan Steemann 857f0b8b35 next attempt to make it compile on MacOS 2015-08-04 11:38:38 +02:00
Jan Steemann 5dab23a3b7 CXX implementation of AQL `LIKE` 2015-08-04 10:30:18 +02:00
Jan Steemann 0f1ce26e41 added function to create an ICU RegexMatcher 2015-08-03 23:57:26 +02:00
Jan Steemann 24b44e474f a bit less copying 2015-07-30 12:20:22 +02:00
Jan Steemann 14fe919b5b constify 2015-07-30 00:07:50 +02:00
Jan Steemann 2d8777bc6c make the optimizer create less plans 2015-07-30 00:07:32 +02:00
Jan Steemann 4912ce3200 fix cluster startup 2015-07-29 12:55:06 +02:00
Jan Steemann 454a6c998c Merge branch 'devel' of https://github.com/arangodb/arangodb into shaper-cxx 2015-07-28 17:38:48 +02:00
Jan Steemann 6d7ccd7699 move shaper to cxx 2015-07-28 17:38:31 +02:00
Michael Hackstein 412394ff3c Merge branch 'devel' of github.com:arangodb/arangodb into devel 2015-07-28 13:22:01 +02:00
Michael Hackstein 25f7b25206 Fixed failing failure-tests 2015-07-28 13:21:54 +02:00
Jan Steemann bef83a7fbb Merge branch 'devel' of https://github.com/arangodb/arangodb into devel 2015-07-28 11:45:11 +02:00
Jan Steemann cdfdec9244 save some overhead when walking plans 2015-07-28 11:44:34 +02:00
Jan Steemann 3d3024a54e cppcheck 2015-07-28 09:51:24 +02:00
Jan Steemann 9791e467d4 fixed results for query profiling 2015-07-27 18:33:58 +02:00
Jan Steemann 8685a6a250 documentation for `RETURN DISTINCT` 2015-07-27 11:27:59 +02:00
Jan Steemann dbb740a705 activate distinct test 2015-07-24 13:41:01 +02:00
Jan Steemann 239cc1504e cleanup 2015-07-24 13:33:09 +02:00
Jan Steemann 38b2d6caea Merge branch 'devel' of https://github.com/arangodb/arangodb into devel 2015-07-24 13:21:49 +02:00
Jan Steemann ead280afe5 added DISTINCT 2015-07-24 13:19:55 +02:00
Frank Celler f96ab73745 Merge branch 'dispatcher' of github.com:arangodb/arangodb into devel 2015-07-24 11:32:22 +02:00
Michael Hackstein 9cc0554346 Merge branch 'fasterNeighbors' into devel 2015-07-24 10:25:00 +02:00
Frank Celler 647ce78293 removed unused variable 2015-07-23 22:44:52 +02:00
Michael Hackstein 1ed4143f09 Fixed a wrong error code in NEIGHBORS 2015-07-23 16:23:35 +02:00
Michael Hackstein 67463232bf Fixed Error messages in CPP Only Neighbors function 2015-07-23 16:22:12 +02:00
Michael Hackstein 89ca3f68b9 Fixed edgeExamples in CPPOnly Neighbors function 2015-07-23 16:08:32 +02:00
Frank Celler 4dccc6a8dc Merge branch 'devel' of github.com:arangodb/arangodb into dispatcher 2015-07-23 15:41:05 +02:00
Frank Celler 35a3c6421c moved dispatcher to atomic 2015-07-23 15:40:34 +02:00
Michael Hackstein 84174aa99a Added edgeExamples functionality to CPPonly Neighbors. 2015-07-23 15:25:50 +02:00
Jan Steemann e5dbf725b2 added shorthand notation for attribute names in AQL object literals 2015-07-23 14:24:37 +02:00
Michael Hackstein 1ae50e026c Merge branch 'devel' of github.com:arangodb/arangodb into fasterNeighbors 2015-07-23 11:23:49 +02:00
Michael Hackstein a2dab04ff2 Implemented direction in CPPOnly neighbors and added some error outputs 2015-07-23 11:23:35 +02:00
Jan Steemann c6d5f7d775 use move 2015-07-23 10:30:49 +02:00
Michael Hackstein 379e189b5b Quick fix for string out of scope. 2015-07-22 18:24:52 +02:00
Michael Hackstein cdf98f564f The CPP only Neighbors now allows for _key in addition to _id 2015-07-22 17:46:38 +02:00
Michael Hackstein 22ad95b987 Implemented a Neighbors CPP only function. This is not piped through V8 function calls any more. Right now it is NOT fully featured and only Experimental. 2015-07-22 17:21:59 +02:00
Jan Steemann aad327714c handle AstNodes of type collection 2015-07-22 11:59:45 +02:00
Jan Steemann 5a9f9ecbab added execution conditions for CXX AQL functions 2015-07-22 11:35:57 +02:00
Frank Celler 9b95e08765 cleanup of member names 2015-07-20 17:40:13 +02:00
Jan Steemann 124fe7a34c use new/delete for TRI_vocbase_t 2015-07-20 12:08:13 +02:00
Jan Steemann 118fd54fd0 split tests 2015-07-20 10:58:43 +02:00
Jan Steemann 4bc188422a cppcheck 2015-07-15 22:13:42 +02:00
Jan Steemann 2a7ed52768 fixed invalid access to outdated iterator 2015-07-15 11:06:47 +02:00
Jan Steemann ad30baa08c retry qcache with cluster 2015-07-14 14:53:16 +02:00
Jan Steemann 3f6bdab81f try to fix cluster crash 2015-07-14 11:39:49 +02:00
Jan Steemann 6c9922ff6e disable qcache in cluster 2015-07-14 11:11:19 +02:00
Jan Steemann c71dc4d9bb Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-query-cache 2015-07-13 10:49:14 +02:00
Willi Goesgens bd7aa7c305 Remove the global include to iostream; this reduces the compile time by 10%
( http://herbsutter.com/2013/08/19/gotw-7a-solution-minimizing-compile-time-dependencies-part-1/  for inspiration)
2015-07-07 12:11:21 +02:00
Jan Steemann e25ecb5be8 added function cacheability info 2015-06-27 09:06:35 +02:00
Jan Steemann 1f5e047486 query cache, now with result limitations, HTTP and JavaScript APIs 2015-06-27 01:12:32 +02:00
Jan Steemann 7410cefdbd Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-query-cache 2015-06-25 23:42:54 +02:00
Jan Steemann 6ed990b59c fixed warning 2015-06-25 23:41:39 +02:00
Jan Steemann 8372c33993 fixed invalidation with index creation etc., adjusted tests 2015-06-25 23:40:31 +02:00
Jan Steemann 66eec2ac7e fix invalidation 2015-06-25 16:46:04 +02:00
Jan Steemann e86ed5c685 Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-query-cache 2015-06-25 10:02:05 +02:00
Jan Steemann 29c1904e21 issue #1383: bindVars for HTTP API doesn't work with empty string 2015-06-25 09:23:40 +02:00
Jan Steemann 91621685fb cache invalidation 2015-06-24 23:02:19 +02:00
Jan Steemann 1b2f5d8cb2 Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-query-cache 2015-06-23 22:52:26 +02:00
Jan Steemann 5916677a0b fixed leak 2015-06-23 22:45:57 +02:00
Jan Steemann 259b74b60e Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-star-operator-cxx 2015-06-23 22:34:29 +02:00
Jan Steemann a42c3b1004 do not return false result 2015-06-23 19:54:27 +02:00
Jan Steemann a7a7fd51b0 use query cache for cursor API as well 2015-06-23 19:42:00 +02:00
Jan Steemann e3a15227ce query cache for AQL queries. no invalidation yet, so results will be wrong when underlying collections are changed 2015-06-23 18:42:58 +02:00
Jan Steemann 5480e6f4bd removed AQL `SKIPLIST` function deprecated in 2.6 2015-06-21 16:21:49 +02:00
Jan Steemann 7313b19431 implemented FILTER, LIMIT and multi-star features 2015-06-20 14:21:58 +02:00
Jan Steemann 64089eea75 partial implementation 2015-06-20 11:21:57 +02:00
Jan Steemann ce31550a9f fix variable naming in COLLECT INTO results in case the COLLECT is placed in a subquery which itself is followed by other constructs that require variables 2015-06-19 13:00:49 +02:00
Jan Steemann 67082b15fd moved AQL TO_* functions to CXX 2015-06-18 21:30:13 +02:00
Jan Steemann 1fe842dab1 Merge branch 'devel' of https://github.com/arangodb/arangodb into devel 2015-06-18 19:30:50 +02:00
Jan Steemann aff1f6a6a0 fixed leaks 2015-06-18 19:30:29 +02:00
Max Neunhoeffer 57716566c2 Merge branch 'devel' of ssh://github.com/ArangoDB/ArangoDB into devel 2015-06-18 17:30:08 +02:00
Max Neunhoeffer 2844f02a74 Mark blocking threads as such in two places to allow additional threads.
This fixes some cluster hang bugs in larger clusters.
2015-06-18 17:28:51 +02:00
Jan Steemann 86f1a02e18 Merge branch 'aql-argv-optimization' of https://github.com/arangodb/arangodb into devel 2015-06-18 17:12:47 +02:00
Jan Steemann 5e7dd0da7f Merge branch 'aql-argv-optimization' of https://github.com/arangodb/arangodb into devel 2015-06-18 17:12:14 +02:00
Jan Steemann 83b326cfc7 moved PUT /_api/simple/all to C++ 2015-06-18 15:34:45 +02:00
Jan Steemann 300d85ccf7 added generated files 2015-06-17 15:40:04 +02:00
Jan Steemann fb53587d9e added generated files 2015-06-17 15:39:08 +02:00
Jan Steemann a76695345d constify 2015-06-17 12:41:24 +02:00
Jan Steemann dec79dd051 pass function arguments by reference 2015-06-16 18:01:45 +02:00
Jan Steemann 7cd27d5c56 Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-parser-simplification 2015-06-16 15:14:18 +02:00
Jan Steemann d6f3436cc9 added tests 2015-06-16 15:13:53 +02:00
Jan Steemann 529055c4ca use typedefs 2015-06-16 09:50:17 +02:00
Jan Steemann 3e99e76b4f fixed range access 2015-06-13 02:27:17 +02:00
Jan Steemann c5d099a1c5 fixed array range accesses 2015-06-12 23:45:08 +02:00
Jan Steemann 1174cfd05c added tests 2015-06-12 18:29:54 +02:00
Jan Steemann 78fd4a767e Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-parser-simplification 2015-06-12 17:30:21 +02:00
Jan Steemann cc2c99be23 added code comment 2015-06-12 17:29:55 +02:00
Jan Steemann ba49ab41c8 Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-parser-simplification 2015-06-12 17:25:02 +02:00
Jan Steemann 05edd3bfc0 removed empty lines 2015-06-12 15:45:49 +02:00
Max Neunhoeffer 2700abf2c8 Increase a timeout slightly. 2015-06-12 15:42:04 +02:00
Jan Steemann 3d5ec4d906 speedup for V8-based AQL functions with huge literal array/object parameters 2015-06-12 15:40:08 +02:00
Jan Steemann e7ff3f2a19 Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-parser-simplification 2015-06-12 12:04:41 +02:00
Jan Steemann 1a18fb0282 factor out huge array/object literals when calling V8-based AQL functions 2015-06-12 11:50:22 +02:00
Jan Steemann 4421a8499f allow (expr)[expr], (query)[expr], {literal}.attr and [literal][expr] 2015-06-11 20:34:03 +02:00
Jan Steemann 3985498fc3 added [x..y] array access, added [**] operator 2015-06-11 00:09:41 +02:00
Jan Steemann d99d164c0a simplified parser 2015-06-10 20:25:25 +02:00
Jan Steemann 66c59a3be2 Merge branch 'devel' of https://github.com/arangodb/arangodb into devel 2015-06-09 17:23:43 +02:00
Michael Hackstein 0c524ae537 Merge branch 'devel' of github.com:/arangodb/arangodb into devel 2015-06-09 11:57:35 +02:00
Jan Steemann e9c7112d74 small header fixes 2015-06-08 19:03:00 +02:00
Jan Steemann 6f56e9ef43 indentation 2015-06-08 16:23:49 +02:00
Jan Steemann a6b2998b5d added try...catch blocks for V8-to-CPP bindings 2015-06-08 16:04:42 +02:00
Michael Hackstein dc7a910521 Added an accitional 'includeVertices' option to EDGES AQL function. This can now return the forat that has been returned by Neighbors before. 2015-06-08 15:22:27 +02:00
Jan Steemann d2fef98c02 renamed internal function 2015-06-03 18:24:24 +02:00
Jan Steemann b76cb5caee use nullptr 2015-06-02 23:39:41 +02:00
Jan Steemann 3bb5eb1a9d small optimizations 2015-06-02 23:20:00 +02:00
Jan Steemann 4c7994597a cppcheck 2015-06-02 22:49:22 +02:00
Jan Steemann fda6aec8d5 push_back => emplace_back 2015-06-02 22:48:55 +02:00
Jan Steemann 8b8918f72c added (still disabled) rule fuse-calculations 2015-06-02 21:32:38 +02:00
Jan Steemann a2d99b55ec cxxified more functions 2015-06-02 15:15:45 +02:00
Jan Steemann 99207731df micro optimizations 2015-06-02 14:12:48 +02:00
Jan Steemann 16746ae026 small optimizations for expression 2015-06-02 09:18:13 +02:00
Jan Steemann e6684f9d2f small optimizations for expressions 2015-06-02 09:17:50 +02:00
Jan Steemann 39cf9c527c micro optimizations 2015-06-01 14:56:01 +02:00
Jan Steemann 64ae7adb93 issue #1341: Can't use bindvars in UPSERT 2015-05-28 14:28:23 +02:00
Jan Steemann 4dde6e49cd goodbye barriers, welcome ditches 2015-05-28 10:23:30 +02:00
Jan Steemann 03461903fe fixed over-eager V8 context entering and exiting in non-cluster mode 2015-05-27 14:02:13 +02:00
Jan Steemann 093430de3a added CXX implementation for ATTRIBUTES() 2015-05-26 21:45:48 +02:00
Jan Steemann d0b8af7c0b handle calculated object elements in explain 2015-05-26 21:20:43 +02:00
Jan Steemann 07e553cd8d Merge branch 'devel' of https://github.com/arangodb/arangodb into index-cxx
Conflicts:
	arangod/V8Server/v8-vocbase.cpp
2015-05-26 17:07:26 +02:00
Jan Steemann 2a9e809009 fix cluster 2015-05-26 14:49:13 +02:00
Jan Steemann 4b67c7a735 several fixes for indexes 2015-05-26 13:35:11 +02:00
Max Neunhoeffer 7bc6615725 Fix CXX version of NEIGHBORS. 2015-05-23 21:00:59 -07:00
Jan Steemann a9f2769ffa now compiles and links 2015-05-23 04:31:13 +02:00
Jan Steemann 9a1b3d0b52 in the middle of changes - need to go home now 2015-05-22 22:15:26 +02:00
Jan Steemann bc76cf5079 use std::vector 2015-05-22 12:58:40 +02:00
Jan Steemann 4522d8ab33 fixed wrong index usage, added tests 2015-05-21 18:29:43 +02:00
Jan Steemann ef154cd1d9 fix compile warning 2015-05-21 17:00:29 +02:00
Jan Steemann 343c9b4bea added static helper methods for cluster state 2015-05-20 13:51:02 +02:00
Michael Hackstein 86c7f87dd3 Merge branch 'cppTrav2' into devel 2015-05-19 16:17:27 -07:00
Jan Steemann c88b731acf save some mallocs for strings in AQL 2015-05-18 23:40:28 +02:00
Jan Steemann b6142f475c micro optimizations 2015-05-15 17:40:41 +02:00
Jan Steemann 9c73028541 less copying 2015-05-12 13:36:08 +02:00
Jan Steemann 95dbff7f20 added reserve() method 2015-05-12 13:26:23 +02:00
Jan Steemann 95b8a0c76d use AttributeAccessor for more cases 2015-05-08 15:56:07 +02:00
Jan Steemann 06cf34700f simplify attribute accesses 2015-05-08 15:14:17 +02:00
Jan Steemann 7e47d75042 fixed wrong condition 2015-05-08 12:44:53 +02:00
Jan Steemann beb45ad8f8 use indexes when referring to an attribute name via bind parameter 2015-05-08 12:39:55 +02:00
Jan Steemann 6b412a1c01 Merge branch 'json-privatisierung' of https://github.com/arangodb/arangodb into json-privatisierung 2015-05-07 13:05:12 +02:00
Jan Steemann 0996d603c6 fulltext improvements 2015-05-06 14:21:32 +02:00
Jan Steemann 4cc1e854c1 fixed segfaults when running cluster AQL queries in console thread 2015-05-05 17:58:10 +02:00
Jan Steemann a007a867ee "privatized" TRI_vector_t internals.
This allows changing the internals of TRI_vector_t structs in order to make the struct smaller.
On 64 bits, the size of TRI_vector_t is reduced from 48 bytes to 28 bytes.
TRI_json_t does benefit from this, as its biggest component is a TRI_vector_t.
2015-05-05 10:31:02 +02:00
Jan Steemann 4a8146ed02 fixed some potential leaks 2015-05-05 00:33:12 +02:00
Jan Steemann 244cc2d66d added some batch processing methods 2015-05-04 17:46:47 +02:00
Jan Steemann ca07b07630 change naming 2015-05-04 16:55:07 +02:00
Jan Steemann 508a3c4b42 more cleanup 2015-05-04 15:46:27 +02:00
Jan Steemann 28e062ca91 for equality-only comparisons evaluate dynamic expressions just once and not twice 2015-05-01 01:40:07 +02:00
Jan Steemann 3f9dbb4220 fixed if condition 2015-05-01 01:16:45 +02:00
Jan Steemann 33fe3f98e8 disallow copying 2015-05-01 01:16:26 +02:00
Jan Steemann 0099fe260a return value optimization for AQL 2015-04-30 23:38:27 +02:00
Jan Steemann 8f2a3ce7e9 fixed failing test 2015-04-30 21:28:41 +02:00
Jan Steemann 0f521ebc37 Merge branch 'devel' of https://github.com/arangodb/arangodb into devel
Conflicts:
	arangod/Aql/Functions.cpp
2015-04-30 16:57:05 +02:00
Jan Steemann cb0ff510d6 slightly less copying 2015-04-30 16:50:08 +02:00
Jan Steemann 54e12bb972 small improvements 2015-04-30 13:02:44 +02:00
Jan Steemann 8dbcf0e23f Visual Studio adjustments 2015-04-30 11:46:55 +02:00
Max Neunhoeffer db7491af29 Merge branch 'devel' of ssh://github.com/arangodb/arangodb into devel 2015-04-29 22:12:21 -07:00
Max Neunhoeffer 686f67024e Add a second DispatcherQueue for AQL in the cluster. 2015-04-29 21:02:06 -07:00
Jan Steemann 4be4c3c228 fix broken build 2015-04-29 17:54:09 +02:00
Jan Steemann 8178d7bb0d fixed build 2015-04-29 17:47:12 +02:00
Jan Steemann 7783ed1b33 speedups 2015-04-29 17:42:33 +02:00
Jan Steemann 6fe78cddb1 speed up big IN-lists in AQL 2015-04-29 16:22:45 +02:00
Jan Steemann beb2506bec add subquery tests 2015-04-29 11:32:14 +02:00
Max Neunhoeffer 9832a490f7 Merge branch 'devel' of ssh://github.com/arangodb/arangodb into devel 2015-04-29 00:22:47 -07:00
Max Neunhoeffer 123eacb129 Fix a cluster deadlock bug.
Mark the executing thread as blocked, when a RemoteBlock talks to
another server. This means that a new thread can be started if needed.
2015-04-29 00:21:25 -07:00
Jan Steemann 574d521472 added alternative slice() method for AqlItemBlock
this method will copy only the first row from a source block into
a one-row target block. certain registers can be excluded. used to
initialize the registers for a subquery
2015-04-28 22:47:07 +02:00
Jan Steemann cf0b5d35c4 fix wrong comment 2015-04-28 20:37:27 +02:00
Jan Steemann bb3316bf5b issue #1322: strange AQL result
This fixes a problem with unique skiplist indexes declared on multiple attributes
that were queried with an equality condition on only a prefix (e.g. a single
attribute only)
2015-04-28 09:41:03 +02:00
Jan Steemann 4d581b4e78 less copying of ranges 2015-04-28 09:38:54 +02:00
Jan Steemann 128b29c8d2 cxxified more functions 2015-04-28 09:29:09 +02:00
Jan Steemann ed24ee798a always perform proper block cleanup 2015-04-27 23:28:42 +02:00
Jan Steemann 717df15a9c cxxified more AQL functions 2015-04-27 22:12:11 +02:00
Jan Steemann d7e7a0ffbb less copying of RangeInfoBounds 2015-04-27 17:38:52 +02:00
Jan Steemann 7da9c4daff Merge branch 'devel' of https://github.com/arangodb/arangodb into devel 2015-04-27 12:43:51 +02:00
Jan Steemann bf3a1daaa9 recycle AqlItemBlocks 2015-04-27 12:41:55 +02:00
Max Neunhoeffer d9fe9c8bf7 Check in grammar files. 2015-04-25 21:46:23 -07:00
Jan Steemann 32b547886b fixed up some headers 2015-04-24 13:11:29 +02:00
Jan Steemann 745d80d999 fixed compile warning with g++4.9.2 2015-04-24 12:48:50 +02:00
Jan Steemann 3b09a018d5 fixed VS compile issues 2015-04-24 10:35:10 +02:00
Jan Steemann 292e203b6b slightly faster JSON hashing 2015-04-23 18:03:38 +02:00
Jan Steemann 9fce723de8 specialized attribute accessor functions for internal attributes 2015-04-23 17:30:10 +02:00
Jan Steemann bf2864dd04 mini optimization 2015-04-23 15:52:08 +02:00
Jan Steemann 4a1a6a41ab added specialized method setShaped() 2015-04-23 15:34:42 +02:00
Jan Steemann ad5350a9c0 better encapsulation of AqlItemBlock's values 2015-04-23 13:45:49 +02:00
Jan Steemann 40ed49ebfa fast path for MERGE() 2015-04-23 13:45:31 +02:00
Jan Steemann 8c71c801ca increment _id in call to nextName() 2015-04-22 14:17:45 +02:00
Jan Steemann 1283d43608 simplification for comments parsing 2015-04-22 14:17:18 +02:00
Jan Steemann 6e14c99835 fixed error message 2015-04-22 14:16:52 +02:00
Jan Steemann 224b33cc75 moved UNSET() and KEEP() to cxx implementation 2015-04-22 13:21:05 +02:00
Jan Steemann c73b7dd68a save hash table lookups for ShapedJson AqlValues 2015-04-22 10:48:16 +02:00
Jan Steemann baa5e39348 removed lib/Basics/utf8-helper.cpp and merged with lib/Basics/Utf8Helper.cpp 2015-04-21 17:53:35 +02:00
Jan Steemann 974b656c1b allow overriding COLLECT method 2015-04-21 14:45:22 +02:00
Jan Steemann c3b4e32571 Merge branch 'devel' of https://github.com/arangodb/arangodb into devel 2015-04-20 16:10:38 +02:00
Jan Steemann b46db8ed20 use value by reference 2015-04-20 16:10:31 +02:00
Jan Steemann 529f220c3b mini optimizations for AqlItemBlock 2015-04-20 15:31:06 +02:00
Jan Steemann 3bb3e15d8e fixed getAttributeAccess() 2015-04-20 14:30:06 +02:00
Jan Steemann 05d5fae614 fixed wrong forward declaration 2015-04-20 13:49:03 +02:00
Jan Steemann d20c104d0c specialized attribute accessor for AQL 2015-04-20 13:26:04 +02:00
Jan Steemann 61499432b7 do not remove constant sorts when creating plans, but during optimization phase
less utf8 comparisons
2015-04-20 11:32:29 +02:00
Willi Goesgens 98ed57170a Fix warning about implicit double to size cast. 2015-04-17 10:43:46 +02:00
Jan Steemann d9add3a493 fixed collect in cluster 2015-04-16 21:10:48 +02:00
Jan Steemann 528ec17bcd Merge branch 'devel' of https://github.com/arangodb/arangodb into hash-collect
Conflicts:
	arangod/FulltextIndex/fulltext-handles.cpp
2015-04-16 19:06:21 +02:00
Jan Steemann 2e5fac692f mini simplification 2015-04-16 17:54:04 +02:00
Jan Steemann 9f2643acaa show type of collect method in explain 2015-04-16 16:29:36 +02:00
Jan Steemann e2000f571f try to satisfy scan-build 2015-04-16 15:04:11 +02:00
Jan Steemann e1312f2088 attempt to satisfy scan-build a bit 2015-04-16 11:47:18 +02:00
Jan Steemann d3569d5c77 adjusted failure code names 2015-04-16 00:28:41 +02:00
Jan Steemann ff6e56d89c adjusted some tests 2015-04-15 23:45:07 +02:00
Jan Steemann 8926e3f2e2 initial commit 2015-04-15 19:04:21 +02:00
Jan Steemann 322b3f9c6d issue #1231: bug xor feature in AQL: LENGTH(null) == 4
This changes the behavior of the AQL `LENGTH` function as follows:

- if the single argument to `LENGTH()` is `null`, then the result will now be `0`. In previous
  versions of ArangoDB, the result of `LENGTH(null)` was `4`.

- if the single argument to `LENGTH()` is `true`, then the result will now be `1`. In previous
  versions of ArangoDB, the result of `LENGTH(true)` was `4`.

- if the single argument to `LENGTH()` is `false`, then the result will now be `0`. In previous
  versions of ArangoDB, the result of `LENGTH(false)` was `5`.

The results of `LENGTH()` with string, numeric, array object argument values do not change.
2015-04-14 19:03:29 +02:00
Jan Steemann 8a1677c1dc safely increment nrRegs 2015-04-14 13:27:48 +02:00
Jan Steemann d8597d9662 fixed edge index lookups in cluster 2015-04-13 14:36:16 +02:00