1
0
Fork 0
Commit Graph

198 Commits

Author SHA1 Message Date
Jan Steemann 64350d802d micro optimizations 2016-04-26 10:22:13 +02:00
Jan Steemann 32082e30f0 use move 2016-04-19 13:20:13 +02:00
Michael Hackstein 1b967d9535 Started fixing AQL-failures-noncluster tests. Still two are failing. Return and Sort. 2016-04-07 14:37:18 +02:00
Jan Steemann c8c9288400 harmonize value comparisons for hash indexes 2016-03-23 16:36:00 +01:00
Max Neunhoeffer c2049b8ee1 Switch to IndexHandles. 2016-03-23 08:57:00 +01:00
Michael Hackstein ff87f38a14 Fixed index ordering for IN search. 2016-03-22 13:24:50 +01:00
Michael Hackstein 34b6b85a4b Short Circuit in IndexIterator if query has which can never yield a result 2016-03-21 16:54:39 +01:00
Michael Hackstein 7af92fb2ff IN values in index are now sorted 2016-03-21 15:43:01 +01:00
Michael Hackstein 69ad996767 Fixed implementation to multiply IN index lookups for hash and skiplist index. 2016-03-21 14:57:30 +01:00
Jan Steemann b672ce0985 test fixes 2016-03-21 12:15:40 +01:00
Jan Steemann b55b5d7386 AqlValue refactoring 2016-03-09 17:50:20 +01:00
Jan Steemann 0c2fdb9fb9 less dependency on document-collection.h 2016-03-04 20:53:17 +01:00
Jan Steemann eb82d96836 constexpr 2016-03-04 12:33:59 +01:00
Jan Steemann 3fa4623dd1 made some methods private 2016-03-01 15:53:10 +01:00
Michael Hackstein e590f51d0f Added implementation for AQL Node => Skiplist Iterator function. Does not yet support IN statment, we need a multi Iterator for this. 2016-02-29 14:19:11 +01:00
Max Neunhoeffer d02ae8e7d1 Merge branch 'spdvpk' of ssh://github.com/ArangoDB/ArangoDB into spdvpk 2016-02-24 15:48:19 +01:00
Max Neunhoeffer aaaa50c6d0 Many index changes, compiles, does not run well. 2016-02-24 15:47:57 +01:00
Michael Hackstein a5442d19f3 Fixed a bug in expandInSearch values. And removed temporary test hack. 2016-02-24 14:46:21 +01:00
Michael Hackstein 9727a1f3a8 Started to add an implementation tu multiply queries with IN. THis is identical for all indexes and does not check validity. The general idea is that an index does not need to know anything about AND, OR, IN. It just has to know primitive types like EQ, LE, LT, GE, GT. 2016-02-24 13:29:26 +01:00
Jan Steemann ea3a7f3dab removed cap constraints 2016-02-22 12:37:16 +01:00
Jan Steemann 9046e1831b clang-format 2016-01-27 13:43:46 +01:00
Michael Hackstein 5b2062b4e4 Removed legacy toJson function from Index.h. All callers now use VelocyPack directly 2016-01-25 11:42:31 +01:00
Michael Hackstein 0fba63e43f arangod/Indexes are now JSON / TRI_json_t free 2016-01-24 14:34:42 +01:00
Michael Hackstein 191c2dc3a9 Merge branch 'devel' of github.com:arangodb/arangodb into vpack 2016-01-21 16:29:38 +01:00
jsteemann 842384016d namespace cleanup 2016-01-21 00:20:22 +01:00
Michael Hackstein 1178d42004 Removed TRI_json_t from Index Constructors and replaced it by VelocyPack. SingleServerTests pass. Some clister tests fail 2016-01-20 16:19:24 +01:00
Michael Hackstein 3c6ac9f38f Removed all TRI_json_t inputs to AgencyComm and replaced them by VPack. This commit stil has an error s.t. indexes cannot be dropped in Cluster. WIP. 2016-01-20 12:53:55 +01:00
Michael Hackstein 51a683facb Added a toVelocyPack function to all indexes. Removed specialized toJson from all indexes. Generalized toJson invokes specialized toVelocyPack for compatibility reasons. 2016-01-19 15:40:37 +01:00
jsteemann 431900f17a changed namespace from triagens to arangodb 2016-01-17 00:44:53 +01:00
jsteemann 9f0576c65f don't rely so much on namespace std being present 2016-01-08 01:05:06 +01:00
Jan Steemann 3ad20c0cae auto-generated headers 2016-01-06 18:41:51 +01:00
Jan Steemann a3b026d9d1 removed useless sections from code, unified include guards 2016-01-06 14:15:22 +01:00
Jan Steemann f422576ee0 clang-format 2016-01-05 17:43:24 +01:00
Max Neunhoeffer e8e6dc8597 More VPackObjectBuilder usages. 2015-12-21 15:22:19 +01:00
jsteemann a058699312 use std::make_shared 2015-12-18 23:34:18 +01:00
Michael Hackstein 37b4d2739b Adapted indexes to class version of TRI_col_info_t 2015-12-16 11:42:26 +01:00
Michael Hackstein 757577de42 Updated VPack addObject to openObject 2015-12-09 11:28:54 +01:00
Michael Hackstein 1e7108d9ca Optimized toVelocyPack functions in Index. Added special implementations for edge and primary indexes. All others TODO 2015-12-07 15:44:28 +01:00
Michael Hackstein 1969149ef3 Added a general toVelocyPack function for indexes 2015-12-07 14:54:38 +01:00
Jan Steemann 0ee556d07d added transaction to hash index APIs 2015-11-25 14:55:43 +01:00
Jan Steemann 19b2d28167 pass transaction to index APIs 2015-11-25 14:42:29 +01:00
Jan Steemann 75e4e6e815 added transaction to all signatures 2015-11-24 17:34:23 +01:00
Jan Steemann 5518244942 less iostream-ing 2015-11-24 13:55:06 +01:00
Jan Steemann 82eddeb120 allow using array indexes without specifying the `[*]` extension 2015-11-17 14:03:58 +01:00
Michael Hackstein d7f3ca496d The Array Index now allows to query for null IN in sparse version 2015-10-27 13:00:49 +01:00
Jan Steemann d428aeca93 fix some Visual Studio complaints 2015-10-22 17:23:21 +02:00
Jan Steemann 0fee6fd856 attempt to speed up index queries 2015-10-22 14:11:54 +02:00
Jan Steemann 8264c4db87 Merge branch 'aql-jmmh-conditions' of https://github.com/arangodb/arangodb into aql-jmmh-conditions 2015-10-20 18:11:12 +02:00
Jan Steemann aa3039cece fixes for cluster tests 2015-10-20 18:10:53 +02:00
Michael Hackstein 596d215a32 Fixed Sparse Skiplist indexes. They were used for e.g.: null IN x.a. Added the queries-array to test makefile 2015-10-20 17:18:17 +02:00
Jan Steemann e5761736d4 fixed usage of sparse indexes 2015-10-19 10:56:30 +02:00
Jan Steemann 0ffb11c25e do not use sparse indexes for sorting 2015-10-14 12:03:52 +02:00
Jan Steemann 779c242846 modified usage of filters with potentially undefined variables 2015-10-14 11:02:42 +02:00
jsteemann 29b3741156 reworked cost calculations 2015-10-12 22:23:03 +02:00
Jan Steemann 6b2837190e different cost calculation, done except for skiplists 2015-10-12 18:49:47 +02:00
Michael Hackstein a8ee15fca4 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into
aql-jmmh-conditions and fixed a compiler bug for mac outstream
2015-10-12 14:37:03 +02:00
Michael Hackstein 1c81f89a18 The new IndexNode can now serve with a SkiplistIndex when only a sort and no filter is given 2015-10-12 14:16:25 +02:00
Jan Steemann f0edd198bc added specializeOne() and specializeAll() 2015-10-12 13:02:52 +02:00
Jan Steemann b5c9602407 specialization of conditions 2015-10-09 18:10:33 +02:00
Jan Steemann 8ee068ba40 refactoring 2015-10-06 13:31:56 +02:00
Jan Steemann a12eda295b aha! 2015-10-06 13:03:46 +02:00
Michael Hackstein 37a4ecfbb3 Modified the IndexIterator API to return TRI_doc_mptr_t instead of *_copy_t. Index Range node now manages a list of already returned documents, making the resulting documents distinct 2015-10-06 10:45:42 +02:00
Jan Steemann 118f924598 support [*] operator 2015-10-05 19:15:22 +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 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
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 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 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 84f59d112e unified index use checks 2015-09-28 18:13:04 +02:00
Jan Steemann 3495816fa1 changed index signatures 2015-09-28 14:11:23 +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 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
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 26fdd92685 Updated the Primary index to new version of AssocUnique. 2015-09-03 10:16:15 +02:00
Jan Steemann 2a886e6648 some index code cleanup 2015-08-26 21:35:46 +02:00
Jan Steemann a3550e331e fixed makefiles 2015-08-26 16:17:45 +02:00
Michael Hackstein 4a3b8007bd Fixed memory calculation of HashIndexMulti. And added index information for it 2015-08-26 14:38:23 +02:00
Michael Hackstein 4effa2291e Merge branch 'devel' of github.com:arangodb/arangodb into array_indexing 2015-08-26 10:41:27 +02:00
Jan Steemann f4c542795c getIndexes(true) 2015-08-26 09:48:48 +02:00
Michael Hackstein 85b58a6d8d Fixed sparse indexes 2015-08-21 14:07:32 +02:00
Michael Hackstein 4bb8508d82 Implemented a new improved version of the Array index insertion function. 2015-08-20 14:03:17 +02:00
Michael Hackstein 5c0ec7d318 Indexed my first array and was able to get it out again \o/. Unique constraint is not yet working though 2015-08-19 09:55:46 +02:00
Michael Hackstein 481a106a7d Implemented a helper function to extract all values in an array to be inserted 2015-08-18 11:37:09 +02:00
Michael Hackstein 2bcef2e03b Added a function that recursivly allocates and fills index_elements if one or more paths have to be expanded. 2015-08-18 09:09:36 +02:00
Michael Hackstein 33935db4b6 Attribtue missing will not be returned when inserting elements into the index any more. 2015-08-17 12:43:14 +02:00
Michael Hackstein 1d774ade12 Removed hash_index_element and used the unified index_element instead. Also moved allocation of a new index entry closer to the spot where it is actually filled. This allows for lazy allocation. 2015-08-17 12:43:14 +02:00
Michael Hackstein 5a5d1de7ea Moved the insertion of elements into an indox to the super class. Is only used for Skiplist and Hash. Might probably be used by other indicies later 2015-08-17 12:43:13 +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
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 38227a81f8 speed up initial edge index creation 2015-08-03 18:27:50 +02:00
Jan Steemann 6d5b86867d added print methods 2015-05-29 11:45:01 +02:00
Jan Steemann 88198767dd logging 2015-05-29 09:49:22 +02:00
Jan Steemann 4b67c7a735 several fixes for indexes 2015-05-26 13:35:11 +02:00
Jan Steemann a5b6f00b7f moved indexes to cxx 2015-05-22 20:15:14 +02:00