// 超级用户,不限制内存。 if (superuser()) x return ResourceQueueGetSuperuserQueryMemoryLimit(); // gp_resqueue_memory_policy参数为none时,不限制内存。 if (IsResManagerMemoryPolicyNone()) x return 0; // 先按照并发数limit以及计划的cost,计算出等分内存的最小比例: double minRatio = Min( 1.0/ (double) numSlots, planCost / costLimit); …… // 以上按比例计算出来的内存大小,如果小于statement_mem,则使用statement_mem。 if (queryMem < (uint64) statement_mem * 1024L) { queryMem = (uint64) statement_mem * 1024L; }