Exemple #1
0
        internal override GremlinToSqlContext GetContext()
        {
            GremlinToSqlContext inputContext = InputOperator.GetContext();

            if (inputContext.PivotVariable == null)
            {
                throw new TranslationException("The PivotVariable of and()-step can't be null.");
            }

            List <GremlinToSqlContext> andContexts = new List <GremlinToSqlContext>();

            if (IsInfix)
            {
                FirstTraversal.GetStartOp().InheritedVariableFromParent(inputContext);
                andContexts.Add(FirstTraversal.GetEndOp().GetContext());

                SecondTraversal.GetStartOp().InheritedVariableFromParent(inputContext);
                andContexts.Add(SecondTraversal.GetEndOp().GetContext());
            }
            else
            {
                foreach (var andTraversal in AndTraversals)
                {
                    andTraversal.GetStartOp().InheritedVariableFromParent(inputContext);
                    andContexts.Add(andTraversal.GetEndOp().GetContext());
                }
            }

            inputContext.PivotVariable.And(inputContext, andContexts);

            return(inputContext);
        }
Exemple #2
0
        internal override GremlinToSqlContext GetContext()
        {
            GremlinToSqlContext inputContext = InputOperator.GetContext();

            if (inputContext.PivotVariable == null)
            {
                throw new QueryCompilationException("The PivotVariable can't be null.");
            }

            List <GremlinToSqlContext> orContexts = new List <GremlinToSqlContext>();

            if (IsInfix)
            {
                FirstTraversal.GetStartOp().InheritedVariableFromParent(inputContext);
                orContexts.Add(FirstTraversal.GetEndOp().GetContext());

                SecondTraversal.GetStartOp().InheritedVariableFromParent(inputContext);
                orContexts.Add(SecondTraversal.GetEndOp().GetContext());
            }
            else
            {
                foreach (var orTraversal in OrTraversals)
                {
                    orTraversal.GetStartOp().InheritedVariableFromParent(inputContext);
                    orContexts.Add(orTraversal.GetEndOp().GetContext());
                }
            }

            inputContext.PivotVariable.Or(inputContext, orContexts);

            return(inputContext);
        }