OPType bitmask switched to contiguous enum#1013
Conversation
DvirDukhan
left a comment
There was a problem hiding this comment.
LGTM
If I need to be nitpicky: Regarding the auto-sized array, I would prefer to see something like
int size = 2;
const OPType types[size] = {OPType_PROJECT, OPType_AGGREGATE};
OPType_PROJECT | OPType_AGGREGATE);
connecting_op = ExecutionPlan_LocateOpMatchingType(current_segment->root, types, size);
So if we change somthing in the future it will be eseaier to catch human errors.
swilly22
left a comment
There was a problem hiding this comment.
I guess that moment has come...
Just a few comments.
There was a problem hiding this comment.
Move just below ExecutionPlan_LocateOpMatchingType
I hope that ExecutionPlan_LocateOps calls ExecutionPlan_LocateOpsMatchingType with a single type and type_count set to 1.
There was a problem hiding this comment.
Moved code as recommended, but the call refactor you suggest would result in incorrect behavior.
ExecutionPlan_LocateOpMatchingType is actually a parallel to ExecutionPlan_LocateFirstOp - I don't want to use ExecutionPlan_LocateFirstOpMatchingType because it's clumsy, and ExecutionPlan_LocateLastOp is currently unused.
The LocateOps family collects all matching ops in a tree, while the LocateOp family returns the first match in a DFS.
Yes, these naming conventions are unintuitive and getting out of hand!
There was a problem hiding this comment.
Alright then please remove unused function(s) see if you can come up with function names which are a bit clearer.
1500cf8 to
f8a82b7
Compare
@DvirDukhan I agree with your logic, but it's a "fun" idiosyncrasy of C that you can't initialize an array with a size that has been set with a variable. This is valid: While this is not, and will cause compiler errors: |
| #define UNOPTIMIZED_SCAN_OP_COUNT 2 | ||
| static const OPType UNOPTIMIZED_SCAN_OPS[] = {OPType_ALL_NODE_SCAN, OPType_NODE_BY_LABEL_SCAN}; |
There was a problem hiding this comment.
Please remove UNOPTIMIZED_SCAN_OPS it is a bit out of context and too general.
unlike all of the other (3) arrays which are perfectly clear.
| } else if(t == CYPHER_AST_CREATE) { | ||
| // Only add at most one Create op per plan. TODO Revisit and improve this logic. | ||
| if(ExecutionPlan_LocateFirstOp(plan->root, OPType_CREATE)) return; | ||
| if(plan->root && ExecutionPlan_LocateOp(plan->root, OPType_CREATE)) return; |
There was a problem hiding this comment.
How come we didn't checked for op->root before?
There was a problem hiding this comment.
👍 Good catch, this change was unnecessary!
There was a problem hiding this comment.
Not strictly necessary, but I wanted to group ops by function more logically. Especially now that we have types like OPType_NODE_BY_ID_SEEK and OpType_NODE_BY_LABEL_AND_ID_SCAN, it's easy for some to get lost.
64c23b1 to
fb849d7
Compare
* 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>
* 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>
* 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

Fixes a blocker for introducing future ops, such as OPTIONAL.