public override WTableReference ToTableReference() { List <WScalarExpression> parameters = new List <WScalarExpression>(); if (SourceVariableProperty != null) { parameters.Add(SourceVariableProperty.ToScalarExpression()); } if (SinkVariableProperty != null) { parameters.Add(SinkVariableProperty.ToScalarExpression()); } foreach (var property in ProjectedProperties) { parameters.Add(SqlUtil.GetValueExpr(property)); } WTableReference tableRef = null; if (SourceVariableProperty != null && SinkVariableProperty != null) { //BothV tableRef = SqlUtil.GetFunctionTableReference(GremlinKeyword.func.BothV, parameters, GetVariableName()); } else { tableRef = SqlUtil.GetFunctionTableReference(GremlinKeyword.func.EtoV, parameters, GetVariableName()); } return(SqlUtil.GetCrossApplyTableReference(tableRef)); }
public override WTableReference ToTableReference() { List <WScalarExpression> PropertyKeys = new List <WScalarExpression>(); if (SourceVariableProperty != null) { PropertyKeys.Add(SourceVariableProperty.ToScalarExpression()); } if (SinkVariableProperty != null) { PropertyKeys.Add(SinkVariableProperty.ToScalarExpression()); } foreach (var property in ProjectedProperties) { PropertyKeys.Add(SqlUtil.GetValueExpr(property)); } WTableReference secondTableRef = null; if (SourceVariableProperty != null && SinkVariableProperty != null) { //BothV secondTableRef = SqlUtil.GetFunctionTableReference(GremlinKeyword.func.BothV, PropertyKeys, this, GetVariableName()); } switch (InputEdgeType) { case WEdgeType.BothEdge: secondTableRef = SqlUtil.GetFunctionTableReference(GremlinKeyword.func.OtherV, PropertyKeys, this, GetVariableName()); break; case WEdgeType.InEdge: secondTableRef = SqlUtil.GetFunctionTableReference(GremlinKeyword.func.OutV, PropertyKeys, this, GetVariableName()); break; case WEdgeType.OutEdge: secondTableRef = SqlUtil.GetFunctionTableReference(GremlinKeyword.func.InV, PropertyKeys, this, GetVariableName()); break; case WEdgeType.Undefined: secondTableRef = SqlUtil.GetFunctionTableReference(GremlinKeyword.func.OutV, PropertyKeys, this, GetVariableName()); break; } return(SqlUtil.GetCrossApplyTableReference(null, secondTableRef)); }