Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize cp #906

Merged
merged 10 commits into from Feb 13, 2020
Merged

Optimize cp #906

merged 10 commits into from Feb 13, 2020

Conversation

DvirDukhan
Copy link
Collaborator

Split multiple branched cartesian product into chain of dual branched cartesian products

for(int i = 0; i < op->childCount; i++) {
_OpBase_AddChild(parent, op->children[i]);
if(op->childCount == 1) {
_ExecutionPlan_ParentReplaceChild(op->parent, op, op->children[0]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Nice subtle optimization. We have to refactor this area in general, but it's nice to cut down on redundant alloc/frees until then!

Comment on lines 27 to 28
* 1. Might reduce memory consumption (store f records instead n^x) in each phase.
* 2. The filter overall runtime by order(s) of magnitude.*/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor rewording:

 * 1. Potentially reduce memory consumption (storing only f records instead n^x) in each phase.
 * 2. Reduce the overall filter runtime by potentially order(s) of magnitude.*/

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@@ -24,6 +24,9 @@ void optimizePlan(ExecutionPlan *plan) {
/* Remove redundant SCAN operations. */
reduceScans(plan);

/* Try to optimize cartesian product */
optimizeCartesianProduct(plan);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be more efficient to call applyJoin before optimizeCartesianProduct, as the former may reduce the number of CPs with > 2 children.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to think it would be better to reposition filters and only then try and "upgrade" them to a join operation.

#include "../ops/op_cartesian_product.h"
#include "optimizations_util.h"

#define NOT_RESOLVED -1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can delete, defined in header.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

#define NOT_RESOLVED -1

// Tests to see if given filter can be re-positioned.
static inline bool _applicableFilter(const FT_FilterNode *f) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can actually support all filters in this optimization, so this whole function can be deleted. This check is required for ApplyJoin because of memory inconsistencies when ValueHashJoin was operating on graph entities rather than scalars (an issue that could be resolved either in memory management or by adding ops like NodeHashJoin). It's not a concern here, though, as we don't alter the workings of Filter or CartesianProduct ops.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks
removed

return filters;
}

static OpBase *_chain_cp_and_filter(const ExecutionPlan *plan, OpBase *lhs, OpBase *rhs,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add explanatory comment.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

Comment on lines 110 to 113
for(int j = 0; j < stream_count; j ++) raxFree(stream_entities[j]);
// Re-collect cartesian product streams.
stream_count = cp->childCount;
build_streams_from_op(cp, stream_entities, stream_count);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We only need to rebuild streams if we still have filters to evaluate. Perhaps if (i+1 == filter_count) break?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you merge streams (children) so the current number of streams and their structrure in not alligned with the current state of the execution plan.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only if the loop is going to execute again, though - if we've just evaluated the last filter, this is unnecessary effort.

(OpBase *)filter_op);

if(cp->childCount == 0) {
// The entire Cartesian Product can be replaced with the join op.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// The entire Cartesian Product can be replaced with the new branch.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

Comment on lines 116 to 127
// Try to re-position the additional filters.
uint pending_filters_count = array_len(pending_filters);
// If there was a modification to the execution plan, there will be less pending filters.
if(pending_filters_count < filter_count) {
for(uint i = 0; i < pending_filters_count; i++) {
OpFilter *additional_filter = pending_filters[i];
re_order_filter_op(plan, pending_filters_lookup_root, additional_filter);
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See comment at 84.


#include "optimizations_util.h"

void re_order_filter_op(ExecutionPlan *plan, OpBase *root, OpFilter *filter) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should use a naming convention for exposed functions - OptimizeUtils_MigrateFilterOp?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed

Comment on lines 10 to 12
FT_FilterNode *additional_filter_tree = filter->filterTree;

rax *references = FilterTree_CollectModified(additional_filter_tree);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think a one-liner would be a bit more clear:
rax *references = FilterTree_CollectModified(filter->filterTree);

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed

}

// Returns true if the stream resolves all required entities.
static bool _stream_resolves_entities(rax *stream_resolves, rax *entities_to_resolve) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this function is equivalent to raxIsSubset in utils/rax_extensions.h.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep. nice!
changed

return resolved_all;
}

int relate_exp_to_stream(AR_ExpNode *exp, rax **stream_entities, int stream_count) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Standardize naming conventions of exposed functions.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed

return stream_num;
}

void build_streams_from_op(OpBase *op, rax **streams, int stream_count) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Standardize naming conventions of exposed functions.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed

Copy link
Contributor

@jeffreylovitz jeffreylovitz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks excellent, a few questions and suggestions in comments.

Additionally, what do you think of using the optimization stage to limit all Cartesian product ops to 2 branches? For cases like:
MATCH (a), (b), (c) RETURN *
We'll still currently have a 3-child CP op. This is functionally equivalent to a nested CP op, but I think the current approach is harder to read on execution plans and makes the op_cartesian_product code significantly different than other stream-joining ops. Thoughts?

* When trying to replace a cartesian product which followed by multiple filters that can be resolved by the same two branches
* the application crashed on assert(lhs_resolving_stream != rhs_resolving_stream) since before the fix only one filter was used
* to create the hash join, and the other were ignored. */
// This stream is solved by a single cartesian product child and needs to be propogate up.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "propagated"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

if(lhs_resolving_stream == rhs_resolving_stream) {
pending_filters = array_append(pending_filters, filter_op);
OptimizeUtils_MigrateFilterOp(plan, cp->children[rhs_resolving_stream], filter_op);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 I think this is a lot tidier than the pending_filters approach.

@@ -182,38 +129,24 @@ static void _reduce_cp_to_hashjoin(ExecutionPlan *plan, OpBase *cp) {
// The entire Cartesian Product can be replaced with the join op.
ExecutionPlan_ReplaceOp(plan, cp, value_hash_join);
OpBase_Free(cp);
pending_filters_lookup_root = value_hash_join;
break;
// Try to popagate up the remaining filters.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's expand this comment a little to emphasize that the optimization has been applied, and we'll now migrate all remaining filters and exit the loop.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

i++;
for(; i < filter_count; i++) {
OptimizeUtils_MigrateFilterOp(plan, value_hash_join, filter_ops[i]);
}
} else {
// The Cartesian Product still has a child operation; introduce the join op as another child.
ExecutionPlan_AddOp(cp, value_hash_join);
// Streams are no longer valid since cartesian product changed.
for(int j = 0; j < stream_count; j ++) raxFree(stream_entities[j]);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can break here and avoid redundant OptimizeUtils_BuildStreamFromOp calls if (i+1 == filter_count).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The raxFree calls should be in the conditional block, as otherwise we'll double free in cleanup.

Comment on lines 13 to 14
ExecutionPlan_RemoveOp(plan, (OpBase *)filter);
ExecutionPlan_PushBelow(op, (OpBase *)filter);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we will get here fairly often with filters that don't actually need to be migrated, we can save ourselves some unnecessary work with a construction like:

if(op != filter->op.children[0]) {
	ExecutionPlan_RemoveOp(plan, (OpBase *)filter);
	ExecutionPlan_PushBelow(op, (OpBase *)filter);
}

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

uint rhs_resolving_stream = OptimizeUtils_RelateExpToStream(rhs, stream_entities, stream_count);
if(rhs_resolving_stream == NOT_RESOLVED) continue;

// This stream is solved by a single cartesian product child and needs to be propogate up.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "propagated"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

continue;
}

// Retrieve the relevent branch roots.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "relevant"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

// The entire Cartesian Product can be replaced with the new branch.
ExecutionPlan_ReplaceOp(plan, cp, filtered_cp_branch);
OpBase_Free(cp);
// Try to popagate up the remaining filters.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: "propagate"

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

} else {
// The Cartesian Product still has a child operation; introduce the new op as another child.
ExecutionPlan_AddOp(cp, filtered_cp_branch);
// Streams are no longer valid since cartesian product changed.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can break here and avoid redundant OptimizeUtils_BuildStreamFromOp calls if (i+1 == filter_count).

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

Comment on lines 13 to 14
* trying to locate situations where a cartesian product of two disjoint streams
* can be filtered by the filter.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

 * locating situations where a new Cartesian Product of just two streams can resolve the filter.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

['Boaz'],
['Roi']]
resultset = graph.query(query).result_set
self.env.assertEqual(resultset, expected)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add another test that triggers the (lhs_resolving_stream == rhs_resolving_stream) condition, such as:
MATCH (p1), (p2), (p3) WHERE p1.name <> p2.name AND ID(p1) <> ID(p2) RETURN DISTINCT p2.name ORDER BY p2.name

@swilly22 swilly22 merged commit e54ce35 into master Feb 13, 2020
@swilly22 swilly22 deleted the optimize_cp branch February 13, 2020 08:49
@DvirDukhan DvirDukhan added this to In progress in RedisGraph 2.2 via automation Feb 16, 2020
@DvirDukhan DvirDukhan moved this from In progress to Done in RedisGraph 2.2 Feb 16, 2020
swilly22 added a commit that referenced this pull request Feb 23, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* version bump 2.0.2

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
swilly22 added a commit that referenced this pull request Feb 23, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* version bump 2.0.3

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
swilly22 added a commit that referenced this pull request Feb 23, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* version bump

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
swilly22 added a commit that referenced this pull request Feb 24, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* switch from OR AND semiring to ANY PAIR (#955)

* version bump

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
DvirDukhan added a commit that referenced this pull request Mar 15, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* version bump 2.0.2

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
DvirDukhan added a commit that referenced this pull request Mar 15, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* version bump 2.0.3

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
DvirDukhan added a commit that referenced this pull request Mar 15, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* version bump

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
DvirDukhan added a commit that referenced this pull request Mar 15, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* switch from OR AND semiring to ANY PAIR (#955)

* version bump

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
DvirDukhan added a commit that referenced this pull request Mar 25, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* version bump 2.0.2

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
DvirDukhan added a commit that referenced this pull request Mar 25, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* version bump 2.0.3

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
DvirDukhan added a commit that referenced this pull request Mar 25, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* version bump

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
DvirDukhan added a commit that referenced this pull request Mar 25, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* switch from OR AND semiring to ANY PAIR (#955)

* version bump

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
swilly22 added a commit that referenced this pull request Apr 7, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* switch from OR AND semiring to ANY PAIR (#955)

* using the structured semiring we can combine relation and relation ma… (#964)

* using the structured semiring we can combine relation and relation mapping into a single matrix

* address PR comments

* Update graph.c

* decoupled result set from execution plan (#929)

* decoupled result set from execution plan

* after rebase merge

* fixed PR comments

* Restored resulte set

* fixed PR comments

* fixed PR comments

* fixed PR comments

* Update ast.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Always free emptied space on AlgebraicExpression replacement (#986)

* Fix leak on full-text index queries with syntax error (#985)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Fix leak on index scan IN optimization (#984)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Minor updates to bulk deletion (#994)

* Remove redundant clone from bulk insertion of string props (#993)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Fix memory leaks on RDB-loaded strings (#991)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add flow test to validate (#967)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Update outdated logic for aggregate groups (#968)

* Update outdated logic for aggregate groups

* Update group.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added all_node_scan clone (#960)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added op argument clone (#959)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added cartesian product clone (#963)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added expand into clone (#973)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added project op clone (#980)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added skip op clone (#983)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added op unwind clone (#988)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added limit op clone (#976)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added proc call clone (#979)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added filter op clone (#974)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added delete op clone (#970)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added distinct op clone (#972)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* add hash join op clone (#989)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added semi apply clone (#982)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added results op clone (#981)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added join op clone (#975)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added apply multiplexer clone (#961)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added cond var len traverse clone (#966)

* added cond var len traverse clone

* added conditional traverse clone

* fixed PR comments

* Reintroduce logic for freeing memory on run-time errors (#992)

* Reintroduce logic for freeing memory on run-time errors

* Remove VolatileRecord logic for freeing after run-time errors

* Fix memory leaks on run-time errors in OpProject

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Free internal edge arrays on relationship matrix deletion (#997)

* Free internal edge arrays on relationship matrix deletion

* Update graph.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add debug function to print query (#995)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added clone for create, merge, merge_create, update (#969)

* added clone for create, merge, merge_create, update

* Update ast_shared.c

* Update ast_shared.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Agg func fixes (#946)

* Fix memory leaks in Collect function

* Fix leak in aggregate func's SIValue result

* Fix leak in children of aggregate function call

* Simplify variable-length path free logic

* Improve ownership logic in Collect, add explanatory comments

* PR fix

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added label scan clone (#978)

* added label scan clone

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added id seek clone (#977)

* added id seek clone

* added better comment on the range clone

* Update op_node_by_id_seek.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added op aggreage clone (#958)

* added op aggreage clone

* fixed PR comments

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add install instructions for OpenMP (#1006)

* Add install instructions for OpenMP

* Update README

* added op sort clone (#987)

* added op sort clone

* fixed PR comments

* removed free_list logic

* Update execution_plan.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* re-enable graph.profile (#1004)

* Re-enable GraphBLAS circle-ci cache (#1007)

* Fix leak on projected heap-allocated graph entities (#996)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GRAPH.SLOWLOG (#897)

* slowlog WIP

* slowlog per graph

* updated docs

* Add longer-running query to slowlog flow test

* avoid race, log only GRAPH.QUERY

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Use NOP label scan if range iterator construction fails (#1001)

* Use NOP label scan if range iterator construction fails

* deplete iterator for invalid range

* dont access op consume function directly

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed redisearch optimization (#1010)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Note ReplicaOf memory constraint in Rampfile (#1011)

* Automate leak check (#1002)

* Add make memcheck rule

* Add Circle memcheck job

* Don't use Docker image for automated leak checking

* Enable log names by migrating flow test Env initialization

* Disable invalid TCK scenarios of issue #945

* Run memory test without optimizations after packaging artifacts

* Add suppressions for leaks in flush-vs-shutdown race

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Write longer-running query for slowlog test (#1012)

* OPType bitmask switched to contiguous enum (#1013)

* OPType bitmask switched to contiguous enum

* PR fixes

* Clean up op tree modification code

* Add static array of all scan ops

* Remove unnecessary conditional

* Remove static type array for unoptimized scans

* Validate arity per-command rather than globally (#1023)

* Ar exp param (#990)

* wip

* wip

* after rebase

* updated libcypher parser

* added AR_EXP_PARAM

* fixed PR comments

* fixed PR comments

* fixed PR comments

* fixed PR comments

* Update arithmetic_expression.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Fix invalid op sequence when introducing index scans (#1028)

* Fix invalid op sequence when partially replacing filters with index scans

* Simplify op-freeing logic in utilizeIndices

* Automate testing against enterprise v5.4.14

* push down transpose operations (#1032)

* push down transpose operations

* added test for transposed bi-directional edge

* Update algebraic_expression_optimization.c

* allow skip and limit to be parametes. (#1020)

* wip

* test pass

* added skip limit params test

* added failure test

* fixed PR comments

* fixed online review comments

* restored traverse record cap

* fixing memory leaks

* fixed PR comments

* changed redisearch version to 1.6.11 (#1035)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* version bump

* version bump

* Version 2.0.2 (#949)

* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* version bump 2.0.2

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>

* Version 2.0.3 (#951)

* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* version bump 2.0.3

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>

* V2.0.4 (#954)

* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* version bump

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>

* V2.0.5 (#957)

* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* switch from OR AND semiring to ANY PAIR (#955)

* version bump

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>

* rebase master to v2.0.5. Changed version to 2.0.6

* V2.0.7

* V2.0.8

* V2.0.9

* version bump

Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: DvirDukhan <dvir@redislabs.com>
Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
Co-authored-by: Pieter Cailliau <pieter@redislabs.com>
swilly22 added a commit that referenced this pull request May 20, 2020
* Support float inputs for modulo computations (#895)

* Add references

* Update mkdocs.yml

* Update References.md

* fixed ast mapping for path filter (#896)

* fixed ast mapping for path filter

* renamed tests. open a new redis graph client per tests

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added mutex per matrix (#898)

* added mutex per matrix

* fixed PR comments

* updated license headers to 2020 (#902)

* Preserve order of op's children array when introducing index scans (#912)

* Fix memory leaks (#917)

* Fix memory leaks

* Use original logic for MarkWriter

* added filter tree clone (#915)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Optimize cp (#906)

* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments

* Added non existing entity runtime error (#919)

* Added non existing entity runtime error

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* RediSearch query error reporting (#925)

* added filter tree compaction (#922)

* added filter tree compaction

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Handle both possible execution orders in concurrent rename test (#926)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Refferencing a RedisGraph javascript client library (#928)

* Improve client libraries sections on both readme and clients.md
Clients libraries are subject to repetitive edition, it seems better to have a concise formatting

* refferencing my own contribution to clients libraries

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Rust client (#931)

* Update README.md

* Update clients.md

* intoduced fpClone in OpBase (#930)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Apply deplete match stream (#913)

* Deplete Apply op's match stream for every left-hand Record

* Disallow ExpandInto ops on variables beneath Apply ops

* Add tests

* PR fixes

* Argument op holds one Record

* PR fixes

* Improve logic for building OpArgument modifies arrays

* standardize logic for building tmp ExecutionPlans

* Remove sub-ExecutionPlan logic

* Fix CondTraverseReset routine

* Fix ExpandIntoReset

* Fix variable-length QueryGraph pointer

* Always reset match branch

* Add explanatory comment

* PR fixes

* PR fixes

* raxValues returns void pointer array

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* increased allowed parameters count to UNIT_MAX. fixed a bug in query_ctx (#933)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* introduce mapping between record entries and projected columns (#936)

* added arr clone with cb (#937)

* added arr clone with cb

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Leak fixes (#935)

* Close Redis key handles

* Fix memory leak in checking whether procedures are read-only

* Improve explanatory comment

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* label matrix should be fetch right before eval (#938)

* More sensible function signature for SIValue_Free (#941)

* Resolve memory leaks on Path SIValues (#940)

* Resolve memory leaks on Path SIValues

* Update op_delete.c

* Update op_cond_var_len_traverse.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GraphBLAS 3.2.0 (#942)

* GraphBLAS 3.2.0

* updated makefiles

* Remove unnecessary GraphBLAS build flag

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Simplify OpAggregate logic, remove unnecessary struct members (#947)

* Simplify OpAggregate logic, remove unnecessary struct members

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add compile-time error for unsupported AST node types (#944)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed unused operations and types (#950)

* remove GraphBLAS cacheing from CI (#953)

* switch from OR AND semiring to ANY PAIR (#955)

* using the structured semiring we can combine relation and relation ma… (#964)

* using the structured semiring we can combine relation and relation mapping into a single matrix

* address PR comments

* Update graph.c

* decoupled result set from execution plan (#929)

* decoupled result set from execution plan

* after rebase merge

* fixed PR comments

* Restored resulte set

* fixed PR comments

* fixed PR comments

* fixed PR comments

* Update ast.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Always free emptied space on AlgebraicExpression replacement (#986)

* Fix leak on full-text index queries with syntax error (#985)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Fix leak on index scan IN optimization (#984)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Minor updates to bulk deletion (#994)

* Remove redundant clone from bulk insertion of string props (#993)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Fix memory leaks on RDB-loaded strings (#991)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add flow test to validate (#967)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Update outdated logic for aggregate groups (#968)

* Update outdated logic for aggregate groups

* Update group.c

* Update op_aggregate.c

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added all_node_scan clone (#960)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added op argument clone (#959)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added cartesian product clone (#963)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added expand into clone (#973)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added project op clone (#980)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added skip op clone (#983)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added op unwind clone (#988)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added limit op clone (#976)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added proc call clone (#979)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added filter op clone (#974)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added delete op clone (#970)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added distinct op clone (#972)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* add hash join op clone (#989)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added semi apply clone (#982)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added results op clone (#981)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added join op clone (#975)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added apply multiplexer clone (#961)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added cond var len traverse clone (#966)

* added cond var len traverse clone

* added conditional traverse clone

* fixed PR comments

* Reintroduce logic for freeing memory on run-time errors (#992)

* Reintroduce logic for freeing memory on run-time errors

* Remove VolatileRecord logic for freeing after run-time errors

* Fix memory leaks on run-time errors in OpProject

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Free internal edge arrays on relationship matrix deletion (#997)

* Free internal edge arrays on relationship matrix deletion

* Update graph.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add debug function to print query (#995)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added clone for create, merge, merge_create, update (#969)

* added clone for create, merge, merge_create, update

* Update ast_shared.c

* Update ast_shared.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Agg func fixes (#946)

* Fix memory leaks in Collect function

* Fix leak in aggregate func's SIValue result

* Fix leak in children of aggregate function call

* Simplify variable-length path free logic

* Improve ownership logic in Collect, add explanatory comments

* PR fix

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added label scan clone (#978)

* added label scan clone

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added id seek clone (#977)

* added id seek clone

* added better comment on the range clone

* Update op_node_by_id_seek.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added op aggreage clone (#958)

* added op aggreage clone

* fixed PR comments

* Update op_aggregate.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Add install instructions for OpenMP (#1006)

* Add install instructions for OpenMP

* Update README

* added op sort clone (#987)

* added op sort clone

* fixed PR comments

* removed free_list logic

* Update execution_plan.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* re-enable graph.profile (#1004)

* Re-enable GraphBLAS circle-ci cache (#1007)

* Fix leak on projected heap-allocated graph entities (#996)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* GRAPH.SLOWLOG (#897)

* slowlog WIP

* slowlog per graph

* updated docs

* Add longer-running query to slowlog flow test

* avoid race, log only GRAPH.QUERY

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>

* Use NOP label scan if range iterator construction fails (#1001)

* Use NOP label scan if range iterator construction fails

* deplete iterator for invalid range

* dont access op consume function directly

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* removed redisearch optimization (#1010)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Note ReplicaOf memory constraint in Rampfile (#1011)

* Automate leak check (#1002)

* Add make memcheck rule

* Add Circle memcheck job

* Don't use Docker image for automated leak checking

* Enable log names by migrating flow test Env initialization

* Disable invalid TCK scenarios of issue #945

* Run memory test without optimizations after packaging artifacts

* Add suppressions for leaks in flush-vs-shutdown race

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Write longer-running query for slowlog test (#1012)

* OPType bitmask switched to contiguous enum (#1013)

* OPType bitmask switched to contiguous enum

* PR fixes

* Clean up op tree modification code

* Add static array of all scan ops

* Remove unnecessary conditional

* Remove static type array for unoptimized scans

* Validate arity per-command rather than globally (#1023)

* Ar exp param (#990)

* wip

* wip

* after rebase

* updated libcypher parser

* added AR_EXP_PARAM

* fixed PR comments

* fixed PR comments

* fixed PR comments

* fixed PR comments

* Update arithmetic_expression.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Fix invalid op sequence when introducing index scans (#1028)

* Fix invalid op sequence when partially replacing filters with index scans

* Simplify op-freeing logic in utilizeIndices

* Automate testing against enterprise v5.4.14

* push down transpose operations (#1032)

* push down transpose operations

* added test for transposed bi-directional edge

* Update algebraic_expression_optimization.c

* allow skip and limit to be parametes. (#1020)

* wip

* test pass

* added skip limit params test

* added failure test

* fixed PR comments

* fixed online review comments

* restored traverse record cap

* fixing memory leaks

* fixed PR comments

* changed redisearch version to 1.6.11 (#1035)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added datablock out of order ops (#1022)

* added datablock out of order ops

* fixed PR comments

* Update oo_datablock.h

* Update oo_datablock.c

* fixed PR comments

* fixed PR comments

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Adds versioned documentation (#1034)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* deploy on package release only (#1049)

* deploy on package release only

* fixed yml

* changed workflows

* changed workflows

* fixed review comments

* Optional match (#1043)

* Enable TCK tests

* Introduce Optional and Apply ops

* Modify mock AST logic

* Emit error on queries beginning with OPTIONAL MATCH

* Return null on property accesses of null graph entity

* Disallow OPTIONAL MATCH...MATCH queries

* Fix OPTIONAL filter placement

* Enable TCK tests

* NULL handling for path functions

* NULL handling for GraphEntity and list functions

* WIP improve mock AST logic

* Add flow tests

* Improve AST mock logic

* Error handling for SET and CREATE on null entities

* Record_Get refactor

* Test null handling

* Minor cleanup

* Add documentation

* Simplify toPath null handling

* Improve comments

* Allow OPTIONAL MATCH as first clause

* Simplify null-checking logic in create ops

* Use branch of Python client for testing

* PR fixes

* PR fixes

* Remove Record_GetScalar interface

* PR fixes

* PR fixes

* Add demo query for OPTIONAL MATCH

* Use standard Python client for automation

* Emit all columns as SIValues in compact formatter

* Improve flow test for null entities in first result

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* added named path example (#1048)

* added named path example

* fixed pr comments

* Better compile-time checking for undefined variables (#1063)

* Improve AST validations to capture undefined variables

* Propagate errors in nested AR_EXP_Evaluate failures

* Add path comparison, streamline hashing logic (#1056)

* Value comparison call correctly compares paths

* Fix bug in DISTINCT paths and arrays

* Fix memory leak in ValueHashJoin

* Remove conditionals from Record hashing logic

* Improve test coverage

* Simplify memory management in ValueHashJoin

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Update README.md

* Update index.md

* Update README.md forum (#1073)

* Update README.md forum

* ReduceScan and ReduceTraversal respect variable scopes (#1070)

* ReduceScan and ReduceTraversal respect variable scopes

* Fix source lookup

* PR fixes

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* make memcheck rule prints full log for files with leaks (#1072)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Error properly on graph accesses of non-graph keys (#1069)

* Error properly on graph accesses of non-graph keys

* Explicitly free QueryCtx on failed delete

* Update cmd_delete.c

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* LabelScan with child reads data correctly after reset (#1086)

* Guarantee that NOT conditions are unary (#1092)

* is -> ID in docs (#1090)

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Alpine variant of Dockerfile (#1087)

* Calling autogen.sh fails if execute permissions are not set.
Rather than do that, explicitly use "sh" to run it.

* Explicitly include sys/types.h

Several types (u_intN_t) are defined in this header, and on some systems 
not included indirectly. Therefore include the file directly.

* Add an Alpine variant of the Dockerfile.

* Change alpine image basis to Redis v6.

Tag the image as alpine (without redis version).

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Redis 6 in builds (#1060)

* changed dokerfile and ci

* New installation scheme in Dockerfile

* fixes 1

* Review fixes 1

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>
Co-authored-by: Rafi Einstein <rafi@redislabs.com>

* Fix for RAMP failure (#1093)

* Graph encoding v7 - support replica-of (#1054)

* added entities threshold to config

* wip

* added commit flow, without meta type

* new graphmeta type

* wip

* added decode v6

* added new encoding flow

* fixed edge encoding

* done decoding

* added entities threshold to config

* wip

* added commit flow, without meta type

* wip

* added decode v6

* added new encoding flow

* fixed edge encoding

* added tags

* wip

* wip

* tests pass

* wip

* moved to redis 6, solved flushall. moved to uuid keys. adeded decode context

* wip

* moved to redis 6 events to handle keyspace

* added graph pending replication

* wip

* wip

* changed tagging

* wip

* tested for redis6 and redis5

* fixed ubuntu build error. added comments

* changed get redis major version location

* pr comments. wip

* refactor. wip

* fixed PR comments

* fixed memeory leak

* added delete guards

* PR comments, wip

* removed meta context type. removed uuid from meta key name

* fixed edges array encoding. added tests

* added skip test for redis 5

* Simplify meta key construction

* fixed PR comments

* added aux fields

* added module replicating error. WIP

* added v4, v6 rdb decode test

* fixed v4 decode memory leak

* fixed PR comments

* fixe PR comments

* fixed PR comments

* fixed PR comments

* fixed PR comments

* added tear down to flow test to avoid race between  RLTest and RG

* Fix memory leak in v4 deserialization

* huge refactor: single encoder/decoder logic. created config object. create redis-server version object. May support redis 5

* wip

* changed virtual keys encoding logic. wip

* tested on redis5. logs added

* added uuid to meta keys

* removed server version checking in flow tests

* changed ramp

* fixed redis server validation

* fixed PR comments

* fixed PR comments

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Update op_node_by_id_seek.c

Fix, wrong variable assignment.

* Update value.c

removed.boolean switch

* Add suppression for erroneous leak reports after DEBUG RELOAD (#1094)

* Fixed compiler typo (#1097)

Paragraph on OSX build should read "CXX" instead of "CPP".

* Union bugfixes (#1052)

* Improve scoping rules in validating UNION queries

* Bugfix in uniquing column containing both nodes and edges

* Add flow tests

* PR fixes

* PR fixes

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* Bidirectional expand into (#1047)

* wip

* Remove unnecessary iterator

* WIP

* Fix bidirectional ExpandInto, shared edge populating logic

* PR fixes

* Post-rebase fixes

* Fix PR comments

* throw runtime-error on missing query parameters (#1100)

* removed query parameters annotations (#1101)

* do not propagate transpose effect when introducing a transpose operation, maintain expression structure (#1102)

* changed RediSearch version to 1.8 (#1103)

* changed RediSearch version to 1.8

* added flag for redisearch GC

* moved env var setting to memcheck script

* Update memcheck.sh

* fixed misplaced env var setting

* fixed bad command format

* flag in circle ci instead of makefile

Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>

* docker file for centos (#1104)

* version bump

Co-authored-by: Jeffrey Lovitz <jeffrey.lovitz@gmail.com>
Co-authored-by: Guy Korland <gkorland@gmail.com>
Co-authored-by: Roi Lipman <swilly22@users.noreply.github.com>
Co-authored-by: Sceat <11330271+Sceat@users.noreply.github.com>
Co-authored-by: Itamar Haber <itamar@redislabs.com>
Co-authored-by: Ariel Shtul <ariel.shtul@redislabs.com>
Co-authored-by: Timothy Rule <34501912+trulede@users.noreply.github.com>
Co-authored-by: Rafi Einstein <rafi@redislabs.com>
Co-authored-by: Rafi Einstein <raffapen@outlook.com>
Co-authored-by: Christoph Zimmermann <40485189+chrisAtRedis@users.noreply.github.com>
pnxguide pushed a commit to CMU-SPEED/RedisGraph that referenced this pull request Mar 22, 2023
* added optimize cp

* fixed a bug. added test

* add optimization_util files

* fixed PR comments

* fixed PR comments

* added multiple branch cp optimization

* fixed PR comment

* added in place replacement at ExecutionPlan_RemoveOp

* added test for cp optimization and semi apply

* fixed PR comments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

3 participants