Add a variable to specifically limit the memory usage of the load part in the insert operation (#2305)

This variable is mainly for INSERT operation, because INSERT operation has both query and load part.
Using only the exec_mem_limit variable does not make a good distinction of memory limit between the two parts.
This commit is contained in:
Mingyu Chen
2019-11-28 13:03:11 +08:00
committed by ZHAO Chun
parent 036ef5bcb9
commit a2d7c42042
28 changed files with 326 additions and 266 deletions

View File

@ -90,19 +90,19 @@ public class VariableMgrTest {
// Set global variable
SetVar setVar = new SetVar(SetType.GLOBAL, "exec_mem_limit", new IntLiteral(1234L));
VariableMgr.setVar(var, setVar);
Assert.assertEquals(1234L, var.getMaxExecMemByte());
Assert.assertEquals(2147483648L, var.getMaxExecMemByte());
var = VariableMgr.newSessionVariable();
Assert.assertEquals(1234L, var.getMaxExecMemByte());
SetVar setVar2 = new SetVar(SetType.GLOBAL, "parallel_fragment_exec_instance_num", new IntLiteral(5L));
VariableMgr.setVar(var, setVar2);
Assert.assertEquals(5L, var.getParallelExecInstanceNum());
Assert.assertEquals(1L, var.getParallelExecInstanceNum());
var = VariableMgr.newSessionVariable();
Assert.assertEquals(5L, var.getParallelExecInstanceNum());
SetVar setVar3 = new SetVar(SetType.GLOBAL, "time_zone", new StringLiteral("Asia/Shanghai"));
VariableMgr.setVar(var, setVar3);
Assert.assertEquals("Asia/Shanghai", var.getTimeZone());
Assert.assertEquals("CST", var.getTimeZone());
var = VariableMgr.newSessionVariable();
Assert.assertEquals("Asia/Shanghai", var.getTimeZone());