Michael Hackstein
dcc34e5312
The condition finder now creates an IndexNode for SORT statement only, if any index would be suiteable for it.
2015-10-12 11:44:36 +02:00
Jan Steemann
b5c9602407
specialization of conditions
2015-10-09 18:10:33 +02:00
Jan Steemann
c689fc0756
preparation work for index condition specialization
2015-10-08 18:20:10 +02:00
Jan Steemann
404f725461
minor fixes
2015-10-08 17:43:37 +02:00
Jan Steemann
875d89620f
don't clear members in destructor - it's not necessary
2015-10-08 16:35:45 +02:00
Jan Steemann
bf71cdecdb
noexcept
2015-10-08 16:35:28 +02:00
Jan Steemann
d572655d84
fixed compile warning
2015-10-08 16:28:04 +02:00
Jan Steemann
6a4e9658c5
fixes for explainer and condition
2015-10-08 16:22:52 +02:00
Jan Steemann
0d80a17002
generalize condition handling
2015-10-08 15:10:28 +02:00
Michael Hackstein
af4ff37334
Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions
2015-10-08 12:50:06 +02:00
Jan Steemann
fbfc7773ef
serialization and deserialization of IndexNodes
2015-10-08 12:02:27 +02:00
jsteemann
738009c69f
fixed compile error
2015-10-07 20:33:15 +02:00
Jan Steemann
d479fa11cc
IndexBlock cleanup
2015-10-07 18:15:50 +02:00
Michael Hackstein
f7d3304db7
Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions
2015-10-07 17:27:40 +02:00
Jan Steemann
4bf3bb047b
Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-jmmh-conditions
2015-10-07 17:25:56 +02:00
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
Michael Hackstein
ef78f03309
Merge branch 'devel' of github.com:arangodb/arangodb into devel
2015-10-07 17:05:02 +02:00
Michael Hackstein
ab23a01263
Properly react to return value
2015-10-07 17:04:56 +02:00
Jan Steemann
ef04ccdc8c
fixed expansion node cloning
2015-10-07 17:03:17 +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
Jan Steemann
85eacaa458
fixed memleaks
2015-10-07 16:12:20 +02:00
Michael Hackstein
16369c7ac5
Merge branch 'devel' of github.com:arangodb/arangodb into devel
2015-10-07 15:51:06 +02:00
Michael Hackstein
1ba2efed60
Fixed GraphNeighbors as locking was not woring for include data
2015-10-07 15:50:41 +02:00
Frank Celler
4b0911c799
added debugging header x-arango-v8-context
2015-10-07 13:37:35 +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
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
14dc0be744
primary index now supporting IN
2015-10-06 14:46:33 +02:00
Jan Steemann
a12eda295b
aha!
2015-10-06 13:03:46 +02:00
Jan Steemann
310442c8ac
Merge branch 'aql-jmmh-conditions' of https://github.com/arangodb/arangodb into aql-jmmh-conditions
2015-10-06 11:24:02 +02:00
Jan Steemann
b6c8d77d98
some bugfixes
2015-10-06 11:23:55 +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
Michael Hackstein
8761e5abde
Fixed broken nested loop.
2015-10-06 09:41:30 +02:00
Jan Steemann
118f924598
support [*] operator
2015-10-05 19:15:22 +02:00
Jan Steemann
e46ba60715
changed signatures of attribute-access-detecting functions
2015-10-05 16:01:19 +02:00
Michael Hackstein
00c99f135a
Merge branch 'aql-jmmh-conditions' of github.com:arangodb/arangodb into aql-jmmh-conditions
2015-10-05 13:56:12 +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
Jan Steemann
37bc5b64ff
fixed segfault
2015-10-05 13:49:23 +02:00
Jan Steemann
1c990b7324
Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-jmmh-conditions
...
Conflicts:
arangod/Aql/ExecutionNode.cpp
2015-10-05 10:32:36 +02:00
Jan Steemann
7d4c379598
small modifications, temporarily disabled interchange-adjacent-enumerations
2015-10-02 19:53:35 +02:00
Jan Steemann
f7b207e582
removed unused variable
2015-10-02 18:05:11 +02:00
Jan Steemann
574f88a1f9
fixed invalid cast
2015-10-02 18:04:52 +02:00
Jan Steemann
32556a828e
fixed potentially invalid cast
2015-10-02 17:40:34 +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
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
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