예제 #1
0
 internal static WEdgeColumnReferenceExpression GetEdgeColumnReferenceExpr(GremlinEdgeTableVariable edgeTable)
 {
     return(new WEdgeColumnReferenceExpression()
     {
         MultiPartIdentifier = GetMultiPartIdentifier("Edge"),
         Alias = edgeTable.GetVariableName(),
         MinLength = 1,
         MaxLength = 1,
         EdgeType = edgeTable.EdgeType
     });
 }
예제 #2
0
        internal void AddLabelPredicateForEdge(GremlinEdgeTableVariable edgeTable, List <string> edgeLabels)
        {
            if (edgeLabels.Count == 0)
            {
                return;
            }
            List <WBooleanExpression> booleanExprList = new List <WBooleanExpression>();

            foreach (var edgeLabel in edgeLabels)
            {
                var firstExpr  = edgeTable.GetVariableProperty(GremlinKeyword.Label).ToScalarExpression();
                var secondExpr = SqlUtil.GetValueExpr(edgeLabel);
                booleanExprList.Add(SqlUtil.GetEqualBooleanComparisonExpr(firstExpr, secondExpr));
            }
            AddPredicate(SqlUtil.GetBooleanParenthesisExpr(SqlUtil.ConcatBooleanExprWithOr(booleanExprList)));
        }