internal void BuildDryadLinqAssembly(DryadLinqQueryGen queryGen) { lock (s_codeGenLock) { // this method only gets called from DryadLinqQueryGen.GenerateDryadProgram() before job submission. // Since we don't load the generated vertex DLL after that, the check for // "should re-gen?" below is based on m_generatedVertexDllPath being set if (this.m_generatedVertexDllPath == null) { queryGen.CodeGenVisit(); this.BuildAssembly(false); } } }
/// <summary> /// Explain a query plan in terms of elementary operations. /// </summary> /// <param name="gen">Query generator.</param> /// <returns>A string explaining the plan.</returns> internal string Explain(DryadLinqQueryGen gen) { StringBuilder plan = new StringBuilder(); gen.CodeGenVisit(); this.CodeShowVisit(plan, gen.QueryPlan()); return plan.ToString(); }