Пример #1
0
 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();
 }