예제 #1
0
        public QueryPlan GeneratePlan(FrostIDMLStatement statement)
        {
            var plan = new QueryPlan();

            if (statement is SelectStatement)
            {
                plan = new SelectQueryPlanGenerator(_process).GeneratePlan((statement as SelectStatement));
            }

            if (statement is InsertStatement)
            {
                plan = new InsertQueryPlanGenerator(_process).GeneratePlan((statement as InsertStatement));
            }

            if (statement is UpdateStatement)
            {
                plan = new UpdateQueryPlanGenerator(_process).GeneratePlan((statement as UpdateStatement));
            }

            if (statement is DeleteStatement)
            {
                plan = new DeleteQueryPlanGenerator(_process).GeneratePlan((statement as DeleteStatement));
            }

            return(plan);
        }
예제 #2
0
        static void GeneratePlan(SelectStatement statement)
        {
            var executor  = new QueryPlanExecutor();
            var generator = new SelectQueryPlanGenerator();
            var plan      = generator.GeneratePlan(statement);

            executor.Execute(plan);
        }
예제 #3
0
        public QueryPlan GeneratePlan(IStatement statement)
        {
            var plan = new QueryPlan();

            if (statement is SelectStatement)
            {
                plan = new SelectQueryPlanGenerator().GeneratePlan((statement as SelectStatement));
            }

            return(plan);
        }