public override WTableReference ToTableReference() { List <WScalarExpression> parameters = new List <WScalarExpression>(); if (DedupVariables.Count > 0) { foreach (var dedupVariable in DedupVariables) { parameters.Add(dedupVariable.DefaultVariableProperty().ToScalarExpression()); } } else if (DedupContext != null) { parameters.Add(SqlUtil.GetScalarSubquery(DedupContext.ToSelectQueryBlock())); } else { parameters.Add(InputVariable.DefaultVariableProperty().ToScalarExpression()); } var tableRef = SqlUtil.GetFunctionTableReference( Scope == GremlinKeyword.Scope.global ? GremlinKeyword.func.DedupGlobal : GremlinKeyword.func.DedupLocal, parameters, GetVariableName()); return(SqlUtil.GetCrossApplyTableReference(tableRef)); }
internal override List <GremlinVariable> FetchVarsFromCurrAndChildContext() { return(DedupContext == null ? new List <GremlinVariable>() : DedupContext.FetchVarsFromCurrAndChildContext()); }