示例#1
0
        public EdgeQueryStep(IGraphQueryStep left, IGraphQueryStep right, EdgeQueryStep eqs, OperationCancelToken token)
        {
            _left    = left;
            _right   = right;
            _aliases = new HashSet <string>();

            _aliases.UnionWith(_left.GetAllAliases());
            _aliases.UnionWith(_right.GetAllAliases());
            _aliases.Add(eqs._edgePath.Alias.Value);

            _edgePath        = eqs._edgePath;
            _queryParameters = eqs._queryParameters;
            _edgesExpression = eqs._edgesExpression;


            _outputAlias = _right.GetOutputAlias();
            _token       = token;
        }
示例#2
0
        public EdgeQueryStep(IGraphQueryStep left, IGraphQueryStep right, WithEdgesExpression edgesExpression, MatchPath edgePath, BlittableJsonReaderObject queryParameters, OperationCancelToken token)
        {
            _left  = left;
            _right = right;

            _aliases = new HashSet <string>();

            _aliases.UnionWith(_left.GetAllAliases());
            _aliases.UnionWith(_right.GetAllAliases());
            _aliases.Add(edgePath.Alias.Value);

            _edgePath        = edgePath;
            _queryParameters = queryParameters;
            _edgesExpression = edgesExpression;

            _outputAlias = _right.GetOutputAlias();
            _token       = token;
        }
示例#3
0
        public RecursionQueryStep(IGraphQueryStep left, RecursionQueryStep rqs, OperationCancelToken token)
        {
            _left      = left;
            _steps     = rqs._steps;
            _recursive = rqs._recursive;
            _options   = rqs._options;

            _stepAliases.Add(left.GetOutputAlias());

            foreach (var step in _steps)
            {
                if (step.Right == null)
                {
                    continue;
                }
                _stepAliases.Add(step.Right.GetOutputAlias());
            }

            _outputAlias = _stepAliases.Last();
            _token       = token;
        }
示例#4
0
        public RecursionQueryStep(IGraphQueryStep left, List <SingleEdgeMatcher> steps, RecursiveMatch recursive, RecursiveMatch.RecursiveOptions options, OperationCancelToken token)
        {
            _left      = left;
            _steps     = steps;
            _recursive = recursive;
            _options   = options;

            _stepAliases.Add(left.GetOutputAlias());

            foreach (var step in _steps)
            {
                if (step.Right == null)
                {
                    continue;
                }
                _stepAliases.Add(step.Right.GetOutputAlias());
            }

            _outputAlias = _stepAliases.Last();
            _allLliases.UnionWith(_left.GetAllAliases());
            _allLliases.Add(_recursive.Alias.Value);
            _token = token;
        }
示例#5
0
        internal (WithEdgesExpression Edge, StringSegment EdgeAlias, StringSegment RecursionAlias, string SourceAlias) GetOutputEdgeInfo()
        {
            var match = _steps[_steps.Count - 1];

            return(match.Edge, match.EdgeAlias, _recursive.Alias, _left.GetOutputAlias());
        }