Exemple #1
0
        public SqlRewriteVisitor(SqlExprParams pars)
        {
            var exprParamRules = SqlFunctions.ExprParamsRules(pars);

            //The order of the rule passes is important to the performance and correctness!

            rules = new List <IEnumerable <RewriteRule> >();
            //Primero quita los invokes
            rules.Add(
                new[]
            {
                DefaultRewrite.InvokeRule(exprParamRules)
            });

            rules.Add(DefaultRewrite.BooleanSimplify);

            rules.Add(
                exprParamRules
                );

            rules.Add(
                SqlFunctions.rawAtom
                .Concat(SqlFunctions.AtomInvokeParam(pars))
                .Concat(
                    new[]
            {
                SqlConst.constToSqlRule,
                DefaultRewrite.StringFormat,
                SqlFunctions.rawCallRule
            }
                    )
                .Concat(SqlOperators.eqNullRule)
                .Concat(SqlOperators.nullableRules)
                .Concat(SqlOperators.unaryRules)
                .Concat(SqlOperators.binaryRules)
                .Concat(SqlStar.starRules)
                .Concat(SqlOperators.compareTo)
                .Concat(SqlFunctions.stringCalls)
                .Concat(SqlFunctions.subqueryExprs)
                .Concat(SqlFunctions.sqlCalls)
                .Concat(SqlFunctions.AtomRawRule(pars))
                .ToList()
                )
            ;
        }