コード例 #1
0
        internal override List <GremlinVariable> FetchAllTableVars()
        {
            List <GremlinVariable> variableList = new List <GremlinVariable>()
            {
                this
            };

            variableList.AddRange(GroupByContext.FetchAllTableVars());
            variableList.AddRange(ProjectByContext.FetchAllTableVars());
            return(variableList);
        }
コード例 #2
0
        public override WTableReference ToTableReference()
        {
            List <WScalarExpression> parameters = new List <WScalarExpression>();

            parameters.Add(SqlUtil.GetValueExpr(SideEffectKey));
            parameters.Add(SqlUtil.GetScalarSubquery(GroupByContext.ToSelectQueryBlock()));
            parameters.Add(SqlUtil.GetScalarSubquery(ProjectByContext.ToSelectQueryBlock()));
            var tableRef = SqlUtil.GetFunctionTableReference(GremlinKeyword.func.Group, parameters, GetVariableName());

            ((WGroupTableReference)tableRef).IsProjectingACollection = IsProjectingACollection;
            return(SqlUtil.GetCrossApplyTableReference(tableRef));
        }
コード例 #3
0
        internal override List <GremlinVariable> FetchVarsFromCurrAndChildContext()
        {
            List <GremlinVariable> variableList = new List <GremlinVariable>();

            if (GroupByContext != null)
            {
                variableList.AddRange(GroupByContext.FetchVarsFromCurrAndChildContext());
            }
            if (ProjectByContext != null)
            {
                variableList.AddRange(ProjectByContext.FetchVarsFromCurrAndChildContext());
            }
            return(variableList);
        }
コード例 #4
0
 internal override void Populate(string property)
 {
     ProjectByContext.Populate(property);
     base.Populate(property);
 }