1
0
Fork 0
Commit Graph

420 Commits

Author SHA1 Message Date
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 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 89b6329985 Merge branch 'devel' of https://github.com/arangodb/arangodb into aql-jmmh-conditions 2015-09-28 18:13:29 +02:00
Michael Hackstein cf7b0734b0 Fixed compile error 2015-09-28 13:50:26 +02:00
Michael Hackstein 18f890895f Fixed executionNode, does compile again 2015-09-28 13:38:40 +02:00
Michael Hackstein 5e0c1900f8 Added more implementation to new IndexNode 2015-09-28 11:53:23 +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
jsteemann 5c0ff48478 cppcheck 2015-09-22 23:40:57 +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
CoDEmanX 8aa78dcb7f Fix some more typos 2015-09-05 17:18:04 +02:00
CoDEmanX 3a9648d78a More Americanization 2015-09-03 22:25:43 +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 2d8777bc6c make the optimizer create less plans 2015-07-30 00:07:32 +02:00
Jan Steemann cdfdec9244 save some overhead when walking plans 2015-07-28 11:44:34 +02:00
Jan Steemann ead280afe5 added DISTINCT 2015-07-24 13:19:55 +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 d2fef98c02 renamed internal function 2015-06-03 18:24:24 +02:00
Jan Steemann 3bb5eb1a9d small optimizations 2015-06-02 23:20:00 +02:00
Jan Steemann 8b8918f72c added (still disabled) rule fuse-calculations 2015-06-02 21:32:38 +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 9c73028541 less copying 2015-05-12 13:36:08 +02: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 128b29c8d2 cxxified more functions 2015-04-28 09:29:09 +02:00
Jan Steemann 974b656c1b allow overriding COLLECT method 2015-04-21 14:45:22 +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 9f2643acaa show type of collect method in explain 2015-04-16 16:29:36 +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 8a1677c1dc safely increment nrRegs 2015-04-14 13:27:48 +02:00
Jan Steemann 013209b9c7 add expressionType to JSON output of CalculationNode 2015-04-03 15:02:17 +02:00
Jan Steemann 5599259075 fixed Visual Studio compile errors 2015-03-26 10:34:38 +01:00
Jan Steemann a3c0612798 added cluster tests 2015-03-24 14:34:09 +01:00
Jan Steemann 66e2273482 added documentation for UPSERT 2015-03-24 00:44:52 +01:00
Jan Steemann e3bf1c709c upsert blocks 2015-03-23 15:31:07 +01:00
Jan Steemann 8e48f98045 Merge branch 'devel' of https://github.com/arangodb/arangodb into data-modification
Conflicts:
	arangod/Aql/Collection.cpp
	arangod/Aql/ExecutionBlock.cpp
2015-03-20 21:54:39 +01:00
Jan Steemann a9cddb824f more usage of unique_ptrs 2015-03-20 00:05:32 +01:00
Jan Steemann 13ddb8b34b fixed some cluster plans 2015-03-17 13:52:09 +01:00
Jan Steemann 6b24da1036 in the middle of refactoring 2015-03-17 09:08:25 +01:00
Jan Steemann ec2b866200 Merge branch 'devel' of https://github.com/arangodb/arangodb into sparse-indexes
Conflicts:
	js/apps/system/aardvark/frontend/js/templates/documentsView.ejs
2015-02-11 17:53:23 +01:00
Jan Steemann c04064dcf2 cast variable 2015-02-11 13:51:01 +01:00
Jan Steemann 003d7e9112 sparse indexes, initial commit, untested 2015-02-07 03:07:41 +01:00
Jan Steemann e84a5e8eb3 use indexes for sorting in more cases 2015-02-05 00:10:12 +01:00
Jan Steemann c18ff7f300 use-index-for-sort rule can now remove sorts in more cases 2015-02-02 22:53:25 +01:00
Jan Steemann e30ddf0df3 fixed indexing test 2015-02-02 20:33:45 +01:00
Jan Steemann 875a695b22 selectivity estimates 2015-02-02 20:14:36 +01:00
Jan Steemann 4142169526 fixed spurious errors when accessing a local collection from a cluster DB server
Conflicts:
	arangod/Aql/Collection.cpp
	arangod/Aql/ExecutionBlock.cpp
	arangod/Aql/Index.h
2015-01-29 13:06:01 +01:00
Jan Steemann 7af624e2f0 selectivty, try 0 2015-01-27 09:34:04 +01:00
Jan Steemann c49986d0e8 preparation for conditions 2015-01-25 10:40:13 +01:00
Jan Steemann 844582865f more accurate subquery cost estimation 2015-01-24 16:47:09 +01:00
Jan Steemann a5ff6aa05e more accurate cost estimation for EnumerateListNode
fixed typos
2015-01-22 19:35:21 +01:00
Jan Steemann 1003e52cf7 some cleanup 2015-01-18 16:41:48 +01:00
Jan Steemann 2d0a37d826 automatically create _keys in DistributeNode on insert 2015-01-12 10:33:05 +01:00
Jan Steemann 0aa4ac137a fixed compile warning 2015-01-08 17:22:47 +01:00
Jan Steemann f2590881f1 return old or new values in data-modification operations 2015-01-08 16:35:54 +01:00
Jan Steemann 064d066462 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2015-01-07 17:41:09 +01:00
Jan Steemann 9cb3feefc6 propertly cast 2015-01-07 17:40:58 +01:00
Willi Goesgens e2f206fd2c Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel
Conflicts:
	arangod/Aql/grammar.cpp
2015-01-07 15:50:44 +01:00
Willi Goesgens f905123802 Implement REMOVE/INSERT/UPDATE/REPLACE return the changed values 2015-01-07 15:48:13 +01:00
Jan Steemann c591357dd3 slightly changed cost estimation for IndexRangeNode 2015-01-07 15:11:42 +01:00
Jan Steemann 62696b6984 prerequisites for further COLLECT optimizations 2015-01-07 09:42:46 +01:00
Jan Steemann 19d2d6668f added random iteration for collections 2014-12-19 18:01:13 +01:00
Jan Steemann 20e7fe7a7a the great rename: array => object, list => array 2014-12-18 21:07:06 +01:00
Jan Steemann dd60e53ce3 added more collect special cases 2014-12-16 22:52:33 +01:00
Willi Goesgens 1c4a72b106 The Big V8 upgrade Merge. 2014-12-15 17:30:56 +01:00
Jan Steemann f4d7a57c19 changed `COLLECT...INTO x COUNT` to `COLLECT...WITH COUNT INTO x`
allow executing subqueries without double brackets

jslint
2014-12-12 23:02:24 +01:00
Jan Steemann 8f6193faa2 added optional COUNT clause for AQL COLLECT 2014-12-12 17:18:04 +01:00
Jan Steemann 7e161b88ce issue #1131: added KEEP for `COLLECT...INTO` 2014-12-03 17:44:10 +01:00
Max Neunhoeffer a76e22f03a Only put non-toplevel vars into the INTO variable in a COLLECT.
This restores the behaviour of 2.2.
2014-11-28 13:05:15 +01:00
Max Neunhoeffer 085440d691 Fix compilation of new estimation function. 2014-11-24 09:39:05 +01:00
Max Neunhoeffer 16b69e8fd3 First version of fix for LIMIT cost estimation. 2014-11-23 21:53:25 +01:00
Max Neunhoeffer 7161a6b848 Reengineer cost estimation completely.
One test failing in single-server-AQL.
Cluster not yet tested.
2014-11-14 18:58:08 -05:00
Jan Steemann bf30927913 removed canThrow tag for various built-in functions 2014-11-05 14:40:00 +01:00
Jan Steemann 025d73ae03 re-added support for fullCount 2014-11-01 15:20:05 +01:00
Max Neunhoeffer ecb7317461 Remove enterSubQueryFirst. 2014-10-29 11:37:06 +01:00
Jan Steemann 8bb213e7ba sort and cache list expression values
emplace

fixed wrong assertion
2014-10-29 01:02:20 +01:00
Jan Steemann 529bf386d7 fixed some API errors 2014-10-28 11:30:49 +01:00
Jan Steemann 13d240384f less namespace pollution 2014-10-28 00:24:37 +01:00
Jan Steemann b5c222b9b8 determine whether calculations may run on a DB server 2014-10-27 12:04:06 +01:00
Jan Steemann bcf23e2acf Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2014-10-21 13:46:04 +02:00
Jan Steemann 97a4355c4e fixed tests 2014-10-21 13:45:46 +02:00
Willi Goesgens 7190475616 While cloning respect optionality of variables. 2014-10-21 13:01:38 +02:00
Jan Steemann c93c952c05 fixed from/to-handling in cluster 2014-10-20 12:32:08 +02:00
Max Neunhoeffer 6eb2073336 Rename VarOverview into RegisterPlan, because that is what it is. 2014-10-20 09:14:01 +02:00
Max Neunhoeffer db7b23bdb8 Fix cloning of VarOverview. 2014-10-20 09:04:32 +02:00
Willi Goesgens 7f387d9ac8 Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel 2014-10-17 14:16:19 +02:00
Willi Goesgens 1a80e19702 Implement the option to enter Subqueries first in the ExecutionBlock Walker too
(as in #d2a15253b0805ce2624eac4a44bb66b15c34a21e for the ExecutionNode)
2014-10-17 13:36:40 +02:00
James 32f4216005 updating distribute-in-cluster opt rule 2014-10-17 10:22:26 +01:00
Willi Goesgens 93ff2652e1 Walker: add possibility to enter Subqueries on the way in
NodeClone: don't clone the subquery reference list, we don't need them.
2014-10-15 14:59:06 +02:00
James 9f942d0ce3 finished first version of DistributeBlock/Node. 2014-10-15 10:53:09 +01:00
James 60e85ccc7e proper toJsonHelper method for DistributeNode. 2014-10-14 09:21:40 +01:00
Willi Goesgens 3a7a03a51f Don't add intermediate calculationnodes for LET-statements to forward the results of subqueries. Instead adjust the outvariable of the subquerynode. 2014-10-10 17:00:49 +02:00
Jan Steemann 6cdaaa1b85 fixes for Visual Studio 2014-10-09 10:45:31 +02:00
Jan Steemann 4ff58364f1 fixed cloning of plans 2014-10-07 12:00:37 +02:00
Jan Steemann 0f83d8132f fixed some transaction threading errors 2014-10-06 18:39:01 +02:00
Willi Goesgens 7dac9d8cc7 Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel 2014-10-06 14:16:39 +02:00
Willi Goesgens 48c5ff938e If we clone an ExecutionNode for the same AST we also have to copy the evaluation members, but we don't need a deep-copy. 2014-10-06 14:15:41 +02:00
James 95fd279a52 distribution node/block declarations etc. 2014-10-06 12:57:09 +01:00
Willi Goesgens 287b6dfb37 Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel 2014-10-06 11:55:27 +02:00
Willi Goesgens c01e31c404 when de-serializing nodes don't create new variables, but look up the ones we already have. 2014-10-06 11:55:11 +02:00
Jan Steemann 5959a5e6da fixed segfaults during node cloning 2014-10-06 10:31:15 +02:00
Willi Goesgens e1efab6fb5 Fix cloning to other ASTs - dereference pointers to IDs and look up the items on the new lists 2014-10-02 18:41:13 +02:00
Jan Steemann 573d837561 off-by-one fix 2014-10-02 17:06:12 +02:00
Willi Goesgens f63e90e08b Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel 2014-10-02 10:41:12 +02:00
Willi Goesgens bc627dda7b Also copy the varoverview to the clone. 2014-10-02 10:40:09 +02:00
Max Neunhoeffer 25d588b858 Set _varUsageValid flag in Json constructor. 2014-10-02 09:28:00 +02:00
Max Neunhoeffer e043deb13b Rename StaticAnalysisDebugger into RegisterPlanningDebugger. 2014-10-02 00:13:49 +02:00
Max Neunhoeffer be07d39457 Rename staticAnalysis -> planRegisters. 2014-10-02 00:11:15 +02:00
Jan Steemann 5b0b1f0af5 indenting 2014-10-01 19:06:29 +02:00
Jan Steemann f2c115fa25 do not crash when using an index 2014-10-01 16:16:38 +02:00
Jan Steemann d381031972 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2014-10-01 15:35:26 +02:00
Jan Steemann 0d9cdfc87c struct Index 2014-10-01 15:35:16 +02:00
Willi Goesgens 6df55bcb0a Don't reuse "empty" json objects, they are undefined after first use. 2014-10-01 15:00:02 +02:00
Jan Steemann 49237ef55a fixed some cluster internal communication 2014-10-01 14:06:00 +02:00
Willi Goesgens eb2f815d26 Add json de/serialization of new ExecutionNode members. 2014-10-01 09:59:50 +02:00
Max Neunhoeffer 8bffb3daa3 Finish transplantation. 2014-09-30 23:20:51 +02:00
Max Neunhoeffer 5dbcac8efe Start transplantation of _varOverview to ExecutionNodes. 2014-09-30 16:44:01 +02:00
Willi Goesgens 3f566f6289 Enable node* clone functions to produce deep copies which live on a specified query. 2014-09-30 14:09:12 +02:00
Jan Steemann 3a2e13b910 pass queryId to remote servers 2014-09-29 17:35:10 +02:00
Jan Steemann b31987fea7 pass data to RemoteNode 2014-09-29 16:36:52 +02:00
Jan Steemann 3ac25ad56f fixed some issues with remote queries 2014-09-29 12:14:03 +02:00
Jan Steemann 9e47f3ca27 Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel
Conflicts:
	arangod/Aql/ExecutionNode.h
2014-09-26 20:23:52 +02:00
Jan Steemann c3ce45e0dd added block instanciation for coordinator, v0.0.0 2014-09-26 20:17:42 +02:00
Willi Goesgens d003eecac1 We need to pass a reference since we want to return values onto this; and return const references to not duplicate the memory. 2014-09-26 15:22:41 +02:00
Jan Steemann 578d22c95b Merge branch 'devel' of https://github.com/triAGENS/ArangoDB into devel 2014-09-26 13:58:16 +02:00
Jan Steemann f462c5f620 add database and collection info to gather nodes 2014-09-26 13:58:02 +02:00
Willi Goesgens 14eda3e348 - create type for SortElements to be used instead of stacked templates
- abstract json parsing of SortElemnts into an own function
 - implement deserialisation of Scatter/GatherNode
2014-09-26 13:42:26 +02:00
Willi Goesgens 53ee658be0 Implement moving of sortnode into the clusterable part of the query; add elements to the json serialisation of the gather node 2014-09-26 12:35:58 +02:00
Jan Steemann 5c552d4137 optimizer rule for scatter / gather 2014-09-17 17:29:36 +02:00
Jan Steemann bd62c36771 scatter / gather 0.0 2014-09-17 16:00:54 +02:00
Jan Steemann be81bef10c Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-09-17 14:31:51 +02:00
Jan Steemann db70b9bfcb added not-yet used nodes for remote, scatter and gather 2014-09-17 14:31:37 +02:00
Max Neunhoeffer 2cdc5f4cd7 Fix skiplistback-ung and usage in AQL. 2014-09-17 14:07:23 +02:00
Jan Steemann 654c2ba0fe backwards iteration, not yet working 2014-09-17 00:40:24 +02:00
Willi Goesgens c71d142b51 We missed to output the modification options vector. 2014-09-16 18:25:41 +02:00
Jan Steemann 54b5e7b034 slightly improved access to dynamic bounds 2014-09-16 15:10:43 +02:00
Jan Steemann bc7c7c5c60 fixed construction of bounds from json 2014-09-15 16:11:59 +02:00
Willi Goesgens 215e9bf1b4 Use 'list' in plural variables 2014-09-15 15:06:38 +02:00
Jan Steemann 5a1dc63946 fixed tons of compile errors in VS 2014-09-15 12:04:49 +02:00
Jan Steemann ed7e5d0e67 allow primary key access via _id attribute, too 2014-09-14 00:46:44 +02:00
Jan Steemann 6552490cbe Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionNode.cpp
	arangod/Aql/ExecutionNode.h
	arangod/Aql/ExecutionPlan.cpp
	arangod/Aql/OptimizerRules.cpp
2014-09-12 15:17:50 +02:00
Jan Steemann a5c52998e8 remove redundant calculations 2014-09-12 15:10:48 +02:00
Max Neunhoeffer 35ffe6b9e4 Restructure who has Ast and ExecutionPlan.
Not compiling yet.
2014-09-12 14:44:20 +02:00
Max Neunhoeffer 8bab78f4b5 Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/ExecutionNode.cpp
2014-09-11 18:47:31 +02:00
Max Neunhoeffer 088e0ed2f9 Fix serialisation of IndexRangeNode. 2014-09-11 18:45:47 +02:00
Jan Steemann afed9019cf added assertion 2014-09-11 18:27:44 +02:00
Jan Steemann 0b018d26cf Merge branch 'aql2' of https://github.com/triAGENS/ArangoDB into aql2 2014-09-11 18:19:14 +02:00
Jan Steemann 2767bdc7e0 use edge index on both _from and _to 2014-09-11 18:19:05 +02:00
Willi Goesgens f25f12c098 Move parsing of calculations out of the whole json parser, so we can properly instanciate the transaction first. 2014-09-11 18:00:00 +02:00
Jan Steemann 34beb65148 use primary index & edge index 2014-09-11 17:01:53 +02:00
Max Neunhoeffer aa00df7edf Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into mmh
Conflicts:
	arangod/Aql/ExecutionBlock.cpp
	arangod/Aql/Query.h
2014-09-11 14:31:13 +02:00
Max Neunhoeffer 31e02e42cb Instanciate expressions for variable bounds.
And various cleanups.
2014-09-11 14:28:38 +02:00
Jan Steemann cb4c60a36f explain tests 2014-09-11 09:54:59 +02:00
Max Neunhoeffer 8bb938b6de Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into mmh 2014-09-10 15:21:00 +02:00
Max Neunhoeffer 69c464ef13 Restructure RangesInfo handling to allow for variable ranges. 2014-09-10 15:20:28 +02:00
Jan Steemann 1d2c21aec5 create verbose plans 2014-09-10 14:15:37 +02:00
Max Neunhoeffer 7dcdd27891 Merge branch 'aql2' into mmh 2014-09-10 09:41:54 +02:00
Max Neunhoeffer 8aa75f01a5 Snapshot to move home. 2014-09-09 17:05:47 +02:00
Willi Goesgens de32cddc1e Fix memory leak in case of exceptions thrown when parsing the variable from json 2014-09-09 13:22:49 +02:00
Jan Steemann 639a026c66 fixed tests 2014-09-09 09:57:52 +02:00
Jan Steemann 4bda3e3979 finished test for remove-redundant-sorts 2014-09-08 17:33:11 +02:00
Willi Goesgens 02207d5f70 Cost estimates: IndexRangeNodes without range have to be more expensive than ones with. 2014-09-05 14:23:25 +02:00
Max Neunhoeffer fb9481c208 Fix another memory leak. 2014-09-02 14:33:08 +02:00
Willi Goesgens c1d0f8bccc SortIndex: as long as the Index superseeds the sort critereon its still a full match. 2014-09-01 18:29:09 +02:00
Willi Goesgens cd29afd88f Fix pattern to index matcher
- if the number of match patterns is zero, this is not a match at all.
  - if the number of condition is unequal match pattern to a match pattern this isn't a full match.
2014-09-01 13:31:39 +02:00
James fd4b4e5df4 "proper" estimateCost method for IndexRangeNode. 2014-08-29 14:22:46 +02:00
Jan Steemann e47c2b99d3 use stable sort 2014-08-29 12:22:27 +02:00
James 46b40015ee renovating RangeInfo stuff to avoid mem leaks. 2014-08-29 11:52:19 +02:00
James 05dac4f52d Merge branch 'aql2' of ssh://github.com/triAGENS/ArangoDB into aql2
Conflicts:
	arangod/Aql/Optimizer.cpp
2014-08-28 14:41:51 +02:00
James 1deed3ebce fixed bugs useIndexRange. 2014-08-28 14:39:26 +02:00
Jan Steemann 04b322d9e0 sorting 2014-08-28 14:04:24 +02:00
Willi Goesgens 75d9d4ee60 Merge branch 'aql2' of github.com:triAGENS/ArangoDB into aql2 2014-08-28 13:48:44 +02:00
Willi Goesgens 0a1d5edb29 SortToRange: fix abort critereon for non-skiplist indexes 2014-08-28 13:48:03 +02:00
Jan Steemann 2eb38c9657 remove-redundant-sorts, initial 2014-08-28 12:39:28 +02:00
Willi Goesgens 9d4b1b1c88 SortNode: our variables can also be in other ExecutionNodes then the Calculation node. Take this into account.
SortIndex optimizer: when looking at our properties only check Calculation nodes, ignore other types of ExecutionNodes
2014-08-28 11:48:23 +02:00
Max Neunhoeffer b9cfff7c89 Fix infinite recursion bug in canThrow for subqueries. 2014-08-28 09:36:15 +02:00
Jan Steemann 6d0dfcdeba changed ctor 2014-08-28 00:27:24 +02:00
Willi Goesgens e67a2ed36a SortIndex optimizer:
- remove SortNodes which are superseeded by an IndexRangeNode
  - calculate the properties of an SortNode before entering the walker
  - add abstraction class
2014-08-27 15:39:37 +02:00
Max Neunhoeffer 27d8409425 Implement canThrow method for SubqueryNode. 2014-08-27 13:07:05 +02:00
Willi Goesgens 5e75ec8bb5 Expression:
- add function isSimpleAccessReference() to check whether it is a coll.attr.attr
 - add function getAccessNRef() to retrieve pair("attr.attr", "coll"),
SortIndex optimizer:
 - use the new functionality to get better readable code.
rename indexes -> indices
2014-08-26 17:26:46 +02:00
Willi Goesgens 18d308af0f SortNode: add method that looks up the expressions referenced by the Sortnode, and returns them paired with ASC/DESC. 2014-08-26 15:38:55 +02:00
Willi Goesgens ff4e00eb86 SortIndex optimizer:
- rename getIndexes to getIndexesUnordered
  - add CompareIndex & getIndexesOrdered to retrieve a list which does an ordered match on the available skiplist indices
  - fetch the ordered matching indices
  - only remove the sortnode if its a full qualified match.
2014-08-26 13:53:19 +02:00
Willi Goesgens 10603f904d Walker: the process of walking now is aborted if the before-hook returns true. 2014-08-25 15:48:21 +02:00
James 8896a01753 making the arguments of IndexRangeNode more general. 2014-08-25 15:11:54 +02:00
James 033735fbba removing debug output and commenting out useIndexRange. 2014-08-25 13:12:19 +02:00
James c801fc4992 deserialising of IndexRangeNode finally working. 2014-08-25 13:05:22 +02:00
Jan Steemann 7330597f15 fixed ambigious method JsonHelper::getStringValue 2014-08-22 21:53:29 +02:00