/// <summary>
 /// private constructor
 /// </summary>
 /// <param name="ctree">the input cqt</param>
 private PlanCompiler(cqt.DbCommandTree ctree)
 {
     m_ctree = ctree; // the input command tree
 }
 /// <summary>
 /// Internal constructor for a ProviderCommandInfo object
 /// </summary>
 /// <param name="commandTree">command tree for the provider command</param>
 internal ProviderCommandInfo(cqt.DbCommandTree commandTree)
 {
     _commandTree = commandTree;
 }
 internal static void Compile(
     cqt.DbCommandTree ctree, out List<ProviderCommandInfo> providerCommands, out ColumnMap resultColumnMap, out int columnCount,
     out Set<md.EntitySet> entitySets)
 {
     Assert(ctree != null, "Expected a valid, non-null Command Tree input");
     var pc = new PlanCompiler(ctree);
     pc.Compile(out providerCommands, out resultColumnMap, out columnCount, out entitySets);
 }