1
0
Fork 0
Commit Graph

569 Commits

Author SHA1 Message Date
Jan Steemann 5b423971ef support `value IN attr[*]` 2015-10-07 17:25:22 +02:00
Michael Hackstein cb57f39e06 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-10-07 17:24:42 +02:00
Jan Steemann 424dc81197 fixed undefined index lookup behavior 2015-10-07 16:34:01 +02:00
Michael Hackstein 5a026db641 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-10-07 16:13:04 +02:00
Michael Hackstein cb57171ada Fixed an unitialized value and a wrong condition. SkiplistIndex works now for everything except IN. 2015-10-07 16:12:58 +02:00
Jan Steemann 85eacaa458 fixed memleaks 2015-10-07 16:12:20 +02:00
Michael Hackstein db0e414776 Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions 2015-10-07 09:10:56 +02:00
Michael Hackstein 86ab20ffb0 Started adapting the Skiplist Index to the new index Node. WIP does not compile 2015-10-06 17:49:44 +02:00
Jan Steemann 06fedc469d indentation 2015-10-06 17:35:44 +02:00
Jan Steemann 8dfcc98694 use ctor/dtor for TRI_hash_index_search_value_t 2015-10-06 17:09:59 +02:00
Jan Steemann 55f82646d9 moved TRI_index_search_value_t into HashIndex.h 2015-10-06 16:39:12 +02:00
Jan Steemann 57cb864cc5 support edge queries with IN 2015-10-06 16:04:59 +02:00
Jan Steemann 14dc0be744 primary index now supporting IN 2015-10-06 14:46: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
Jan Steemann 692bcd39ce added TODOs 2015-10-06 12:24:54 +02:00
Jan Steemann 0d817c6cdc added TODOs 2015-10-06 12:21:05 +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 1345659917 Implemented the HashIndexIterator interface for AQL. Now the new IndexNode can use Primary, Edge and Hash indicies ;) 2015-10-05 17:11:32 +02:00
Jan Steemann e46ba60715 changed signatures of attribute-access-detecting functions 2015-10-05 16:01:19 +02:00
Michael Hackstein 41916760c3 Implemented the IndexNode Iterator for the EdgeIndex. Seems to be working. Also removed some void* parameters from EdgeIndex 2015-10-05 13:55:55 +02:00
Michael Hackstein c8a48079f0 Primary Index AQL iterator now handles _key and _id as it is supposed to do 2015-10-05 10:19:26 +02:00
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 6403104863 Started with PrimaryIndex for _id in IndexNode 2015-10-02 17:01:56 +02:00
Michael Hackstein d6bdf78269 Fixed double free of AstNode 2015-10-01 17:01:50 +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
Jan Steemann 0ce2356cce added getAll() 2015-10-01 15:57:26 +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 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 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 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 a891d8653b The hashindex is also able to tell if it can be used for a Condition Block 2015-09-22 17:23:56 +02:00
Michael Hackstein 9882af23e3 The Edge Index is now able to state if it can be used by Condition or not. 2015-09-22 15:52:06 +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
Jan Steemann 0735277830 removed IndexWatermarks again... not needed 2015-09-09 14:22:58 +02:00
Michael Hackstein fdde6a69c6 Added failure tests for new implementation of HashIndex. And fixed a memleak there. 2015-09-08 15:35:21 +02:00
Michael Hackstein 1afd19e550 Fixed the resizing of AssocUnique. It was different from AssocMulti which cased the nonUnique index to be faster than the unique one 2015-09-08 11:48:57 +02:00
Jan Steemann 8b599b5274 changed some include headers around 2015-09-07 17:09:10 +02:00
Jan Steemann b6a1684605 primary index speedup 2015-09-07 16:22:39 +02:00
Jan Steemann 39939fc1c9 primary index initial insertion speedup 2015-09-07 13:05:02 +02:00
Jan Steemann 0404cb098f temporarily disable watermarks 2015-09-07 11:08:22 +02:00
Jan Steemann b9c8972477 index watermarks preparations 2015-09-04 18:14:39 +02:00
Jan Steemann 6f2ad068ee whitespace 2015-09-04 14:57:16 +02:00
Jan Steemann 47360f4511 added tests 2015-09-04 14:21:31 +02:00
Jan Steemann 439279bf7e properly initialize member 2015-09-04 10:59:40 +02:00
Jan Steemann 4e0a3e6505 fix memory usage confusion 2015-09-03 20:12:50 +02:00
Michael Hackstein 630c8fd42f Improved Primary Sequential read 2015-09-03 16:25:24 +02:00
Michael Hackstein f5169e1ebc Merge branch 'devel' of github.com:arangodb/arangodb into devel 2015-09-03 13:54:08 +02:00
Michael Hackstein 74c9221d9d Removed numFields and replaced it by numPaths which is knonw by the inde superclass 2015-09-03 13:54:05 +02:00
Michael Hackstein 46e8a1e0fb Removed debug output 2015-09-03 10:16:15 +02:00
Michael Hackstein 5861fecdb7 The HashIndex is now able to be built up in a parallelized way 2015-09-03 10:16:15 +02:00
Michael Hackstein 26fdd92685 Updated the Primary index to new version of AssocUnique. 2015-09-03 10:16:15 +02:00
Michael Hackstein 481cb1b7dd Removed const in AssocMulti batch insert. It was non-const casted internally... 2015-09-03 10:16:15 +02:00
Jan Steemann c89cf82c6b constified 2015-09-02 17:37:28 +02:00
Jan Steemann 8ef9d1ea78 whitespace 2015-09-02 17:26:31 +02:00
Jan Steemann 28ba8dc10e simplified 2015-09-02 17:24:52 +02:00
Jan Steemann 62b4a165b3 removed unused cases 2015-09-02 17:16:40 +02:00
Jan Steemann 282e13afb4 preparation for index watermarks 2015-09-02 16:24:14 +02:00
CoDEmanX 956b396e43 Change spelling of 'initialize' to American English (actual code and files) 2015-09-01 17:29:22 +02:00
Michael Hackstein 027445697d Renamed SkiplistIndex2 to SkiplistIndex ;) 2015-09-01 15:05:49 +02:00
Michael Hackstein 165d2f1630 Fixed a memory leak thx @jsteemann 2015-09-01 15:05:49 +02:00
Michael Hackstein 786126f307 Removed obsolete file 2015-09-01 15:05:49 +02:00
Michael Hackstein 40a56efa24 Using bounds checking when accessing the intervals of skiplist index 2015-09-01 15:05:48 +02:00
Michael Hackstein 2e3321a112 Explicitly initialized SkiplistIteratorInterval 2015-09-01 15:05:48 +02:00
Michael Hackstein 02b3a0614e Properly initialized objects of SkiplistInterval 2015-09-01 15:05:48 +02:00
Michael Hackstein b73718400e Fixed invalid read 2015-09-01 15:05:48 +02:00
Michael Hackstein 2aed925ddc Fixed bugs in SkiplistIndex2. Introduced by refactoring 2015-09-01 15:05:48 +02:00
Michael Hackstein dd20dc4c7f Finished with C++ification of SkiplistIndex and index operators. Now to be tested. 2015-09-01 15:05:47 +02:00
Michael Hackstein e01f8f6b0f Fixes for C++ification of skiplist 2015-09-01 15:05:47 +02:00
Michael Hackstein cb9e1b0e98 Moved some functionality from skiplist-helper into the skiplist and C++ified it. Not yet done 2015-09-01 15:05:46 +02:00
Claudius Weinberger f52beeacb0 fixed invalid index lookupus 2015-09-01 12:38:51 +00:00
Michael Hackstein b8b129d84c The primary index now uses the Hash-cache again 2015-08-31 11:33:12 +02:00
Michael Hackstein b591220c01 Fixed Memory calculation of new Primary Index 2015-08-28 11:02:19 +02:00
Michael Hackstein 90db96a6dc Merge branch 'devel' of github.com:arangodb/arangodb into primary_eimer 2015-08-28 10:45:50 +02:00
Jan Steemann 22c8b5518e removed unused function 2015-08-28 10:30:23 +02:00
Michael Hackstein 3e2d5449ac The Primary index does not expose it's internals any more. 2015-08-28 10:23:43 +02:00
Michael Hackstein 4acdbff808 Primary Index does not need to free anything 2015-08-28 10:15:38 +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
Michael Hackstein ea75372fbe The primary index cannot store const master pointer ;( 2015-08-28 09:28:23 +02:00
Michael Hackstein efcaed8f6d Constified the index return values and removed obsolete functions in primary index 2015-08-28 09:28:23 +02:00
Michael Hackstein 6d4d41387b Implemented sequential read and any read in Transaction.h 2015-08-28 09:28:22 +02:00
Michael Hackstein 0e90f396d7 Piped through readRandom and readSequential in PrimaryIndex. Used in Transaction 2015-08-28 09:28:22 +02:00
Michael Hackstein b3ca4fd098 Implemented all functions required for AssocUnique in Primary index 2015-08-28 09:27:47 +02:00
Michael Hackstein 0d7b939f40 Typedef for AssocUnique in Primary. Added isEqualElmElm and isEqualKeyElm implementation 2015-08-28 09:27:47 +02:00
Jan Steemann 3c6a1cfe66 fix potential leak 2015-08-27 14:05:27 +02:00
Jan Steemann fcc748d49c added slightly faster path for non-array inserts 2015-08-27 10:58:32 +02:00
Jan Steemann 1a2449193e skiplist code cleanup 2015-08-26 22:52:41 +02:00
Jan Steemann 92297c368a removed unused function 2015-08-26 22:00:40 +02:00
Jan Steemann 1184b7e705 removed unused functions 2015-08-26 21:59:15 +02:00
Jan Steemann a5a9e74e8b renamed functions 2015-08-26 21:49:31 +02:00
Jan Steemann cbd43b3839 renamed files 2015-08-26 21:49:15 +02:00
Jan Steemann 2a886e6648 some index code cleanup 2015-08-26 21:35:46 +02:00
Jan Steemann 09928c71c1 added common base class for hash and skiplist index 2015-08-26 18:14:24 +02:00
Jan Steemann 473ed2c418 return memory usage for all indexes 2015-08-26 17:13:41 +02:00
Michael Hackstein 7257bf0b9d Skiplist and HashIndex will now print their figures if requested 2015-08-26 17:10:02 +02:00
Jan Steemann a3550e331e fixed makefiles 2015-08-26 16:17:45 +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
Jan Steemann 7329414456 fixed index size calculations 2015-08-26 14:55:58 +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
Michael Hackstein 6ac7f83e3d Fixed rollback and added index information to log.performance 2015-08-26 10:34:42 +02:00
Jan Steemann b0c12a9d57 added indexFigures 2015-08-26 10:21:36 +02:00
Jan Steemann f4c542795c getIndexes(true) 2015-08-26 09:48:48 +02:00
Max Neunhoeffer 93caabb397 Fix fix. 2015-08-25 16:17:02 +02:00
Max Neunhoeffer 66498a56c3 Fix hash function for AssocMulti usage in hash-multi-index. 2015-08-25 16:13:43 +02:00
Max Neunhoeffer 7957df9215 Merge branch 'array_indexing' of ssh://github.com/ArangoDB/ArangoDB into array_indexing 2015-08-25 13:04:48 +02:00
Max Neunhoeffer 203e9a5195 Make hashcache in AssocMulti switchable-off. Does not work yet. 2015-08-25 12:46:47 +02:00
Michael Hackstein 57c6103458 Revert "The AssocUnique index now requires only an element to insert it. They key is derived"
This reverts commit ea70a948e254716905a7619e72b41fbef4f66695.
2015-08-25 09:40:29 +02:00
Michael Hackstein 2d6af6e872 The AssocUnique index now requires only an element to insert it. They key is derived 2015-08-24 17:14:39 +02:00
Michael Hackstein ba8264eada AssocUnique is now a templated index. Foundation to move primary index to use it 2015-08-24 16:41:16 +02:00
Michael Hackstein 2dd0f7cf7f Continued @neunhoef 's on simplification of hash-index. The index itself will never free anything, calling class is responsible for freeing now. 2015-08-24 13:14:35 +02:00
Michael Hackstein d43c515b56 Fixed a bug in hash index buckets. When resizing the table was not nulled correctly. 2015-08-24 11:22:53 +02:00
Michael Hackstein ac453f918e Merge branch 'array_indexing' of github.com:arangodb/arangodb into array_indexing 2015-08-23 18:24:48 +02:00
Michael Hackstein 44b8cc67ff Fixed some memleaks 2015-08-23 18:24:41 +02:00
Max Neunhoeffer 673956d484 Activate number of buckets. 2015-08-21 16:28:45 +02:00
Max Neunhoeffer f7126d4974 Fix a typo. 2015-08-21 16:21:18 +02:00
Max Neunhoeffer 1dce162b4b Merge branch 'array_indexing' of ssh://github.com/ArangoDB/ArangoDB into array_indexing
Conflicts:
	arangod/Indexes/HashIndex.cpp
2015-08-21 16:11:28 +02:00
Max Neunhoeffer 479f81f760 Buckets for hash-array, also C++-ize it. 2015-08-21 16:05:17 +02:00
Michael Hackstein 85b58a6d8d Fixed sparse indexes 2015-08-21 14:07:32 +02:00
Michael Hackstein 9bb7c0dec6 The skiplist index is now able to index arrays as well 2015-08-21 11:04:04 +02:00
Michael Hackstein 8491d84c96 Added forgotten header file for last commit 2015-08-20 15:27:49 +02:00
Michael Hackstein 838a91b125 Fixed rollback for insertion of multiple elements. Is now able to define a unique constrain on array entries 2015-08-20 15:13:56 +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 b0df08822f Removed obsolete function for HashIndex insertion 2015-08-17 16:10:43 +02:00
Michael Hackstein 33c3c0474e Removed obsolte header file in old hashindex 2015-08-17 16:04:18 +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 6ac0913dbe Adapt to changed VocShaper. 2015-08-17 12:57:52 +02:00
Max Neunhoeffer f279bf5778 Fix unit tests with latest hash index changes. 2015-08-17 12:57:52 +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
Max Neunhoeffer 7217111192 First step for hashindex, this revision is broken.
Changes are only done half-way.
2015-08-17 12:57:52 +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 ae989cf2ca Skiplist index now uses the unified index_element. 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 8a4ce5bb8b Added a new general purpose index_element 2015-08-17 12:43:13 +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
Jan Steemann 98106510d2 remove CONST_CAST helper 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 da38382202 remove CONST_CAST helper 2015-08-07 13:18:21 +02:00
Jan Steemann 38227a81f8 speed up initial edge index creation 2015-08-03 18:27:50 +02:00
Jan Steemann 6d7ccd7699 move shaper to cxx 2015-07-28 17:38:31 +02:00
Jan Steemann 6cff955262 bounds checks for selectivity estimates 2015-06-11 21:38:13 +02:00
Jan Steemann 13d1096d97 fix test 2015-06-02 15:29:56 +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 153dd0d505 removed unused private field 2015-05-28 10:27:46 +02:00
Jan Steemann 8d29b600d3 fixed Windows compile errors 2015-05-26 18:40:27 +02:00
Jan Steemann eff263d8cc fixed cap constraints 2015-05-26 13:45:53 +02:00
Jan Steemann 4b67c7a735 several fixes for indexes 2015-05-26 13:35:11 +02: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 a5b6f00b7f moved indexes to cxx 2015-05-22 20:15:14 +02:00