DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;
CREATE FUNCTION f1() RETURNS INT RETURN 1;
CREATE FUNCTION f2() RETURNS INT RETURN 2;
CREATE FUNCTION f3() RETURNS INT RETURN 3;
CREATE FUNCTION f4() RETURNS INT RETURN 4;
CREATE FUNCTION f5() RETURNS INT RETURN 5;
CREATE FUNCTION f6() RETURNS INT RETURN 6;
CREATE FUNCTION f7() RETURNS INT RETURN 7;
CREATE FUNCTION f8() RETURNS INT RETURN 8;
CREATE FUNCTION f9() RETURNS INT RETURN 9;
CREATE FUNCTION f10() RETURNS INT RETURN 10;
CREATE FUNCTION f11() RETURNS INT RETURN 11;
CREATE FUNCTION f12() RETURNS INT RETURN 12;
CREATE FUNCTION f13() RETURNS INT RETURN 13;
CREATE FUNCTION f14() RETURNS INT RETURN 14;
CREATE FUNCTION f15() RETURNS INT RETURN 15;
CREATE FUNCTION f16() RETURNS INT RETURN 16;
CREATE FUNCTION f17() RETURNS INT RETURN 17;
CREATE FUNCTION f18() RETURNS INT RETURN 18;
CREATE FUNCTION f19() RETURNS INT RETURN 19;
CREATE FUNCTION f20() RETURNS INT RETURN 20;
CREATE FUNCTION f21() RETURNS INT RETURN 21;
CREATE FUNCTION f22() RETURNS INT RETURN 22;
CREATE FUNCTION f23() RETURNS INT RETURN 23;
CREATE FUNCTION f24() RETURNS INT RETURN 24;
CREATE FUNCTION f25() RETURNS INT RETURN 25;
CREATE FUNCTION f26() RETURNS INT RETURN 26;
CREATE FUNCTION f27() RETURNS INT RETURN 27;
CREATE FUNCTION f28() RETURNS INT RETURN 28;
CREATE FUNCTION f29() RETURNS INT RETURN 29;
CREATE FUNCTION f30() RETURNS INT RETURN 30;
CREATE FUNCTION f31() RETURNS INT RETURN 31;
CREATE FUNCTION f32() RETURNS INT RETURN 32;
CREATE FUNCTION f33() RETURNS INT RETURN 33;
CREATE FUNCTION f34() RETURNS INT RETURN 34;
CREATE FUNCTION f35() RETURNS INT RETURN 35;
CREATE FUNCTION f36() RETURNS INT RETURN 36;
CREATE FUNCTION f37() RETURNS INT RETURN 37;
CREATE FUNCTION f38() RETURNS INT RETURN 38;
CREATE FUNCTION f39() RETURNS INT RETURN 39;
CREATE FUNCTION f40() RETURNS INT RETURN 40;
CREATE FUNCTION f41() RETURNS INT RETURN 41;
CREATE FUNCTION f42() RETURNS INT RETURN 42;
CREATE FUNCTION f43() RETURNS INT RETURN 43;
CREATE FUNCTION f44() RETURNS INT RETURN 44;
CREATE FUNCTION f45() RETURNS INT RETURN 45;
CREATE FUNCTION f46() RETURNS INT RETURN 46;
CREATE FUNCTION f47() RETURNS INT RETURN 47;
CREATE FUNCTION f48() RETURNS INT RETURN 48;
CREATE FUNCTION f49() RETURNS INT RETURN 49;
CREATE FUNCTION f50() RETURNS INT RETURN 50;
CREATE FUNCTION f51() RETURNS INT RETURN 51;
CREATE FUNCTION f52() RETURNS INT RETURN 52;
CREATE FUNCTION f53() RETURNS INT RETURN 53;
CREATE FUNCTION f54() RETURNS INT RETURN 54;
CREATE FUNCTION f55() RETURNS INT RETURN 55;
CREATE FUNCTION f56() RETURNS INT RETURN 56;
CREATE FUNCTION f57() RETURNS INT RETURN 57;
CREATE FUNCTION f58() RETURNS INT RETURN 58;
CREATE FUNCTION f59() RETURNS INT RETURN 59;
CREATE FUNCTION f60() RETURNS INT RETURN 60;
CREATE FUNCTION f61() RETURNS INT RETURN 61;
CREATE FUNCTION f62() RETURNS INT RETURN 62;
CREATE FUNCTION f63() RETURNS INT RETURN 63;
CREATE FUNCTION f64() RETURNS INT RETURN 64;
CREATE FUNCTION f65() RETURNS INT RETURN 65;
CREATE FUNCTION f66() RETURNS INT RETURN 66;
CREATE FUNCTION f67() RETURNS INT RETURN 67;
CREATE FUNCTION f68() RETURNS INT RETURN 68;
CREATE FUNCTION f69() RETURNS INT RETURN 69;
CREATE FUNCTION f70() RETURNS INT RETURN 70;
CREATE FUNCTION f71() RETURNS INT RETURN 71;
CREATE FUNCTION f72() RETURNS INT RETURN 72;
CREATE FUNCTION f73() RETURNS INT RETURN 73;
CREATE FUNCTION f74() RETURNS INT RETURN 74;
CREATE FUNCTION f75() RETURNS INT RETURN 75;
CREATE FUNCTION f76() RETURNS INT RETURN 76;
CREATE FUNCTION f77() RETURNS INT RETURN 77;
CREATE FUNCTION f78() RETURNS INT RETURN 78;
CREATE FUNCTION f79() RETURNS INT RETURN 79;
CREATE FUNCTION f80() RETURNS INT RETURN 80;
CREATE FUNCTION f81() RETURNS INT RETURN 81;
CREATE FUNCTION f82() RETURNS INT RETURN 82;
CREATE FUNCTION f83() RETURNS INT RETURN 83;
CREATE FUNCTION f84() RETURNS INT RETURN 84;
CREATE FUNCTION f85() RETURNS INT RETURN 85;
CREATE FUNCTION f86() RETURNS INT RETURN 86;
CREATE FUNCTION f87() RETURNS INT RETURN 87;
CREATE FUNCTION f88() RETURNS INT RETURN 88;
CREATE FUNCTION f89() RETURNS INT RETURN 89;
CREATE FUNCTION f90() RETURNS INT RETURN 90;
CREATE FUNCTION f91() RETURNS INT RETURN 91;
CREATE FUNCTION f92() RETURNS INT RETURN 92;
CREATE FUNCTION f93() RETURNS INT RETURN 93;
CREATE FUNCTION f94() RETURNS INT RETURN 94;
CREATE FUNCTION f95() RETURNS INT RETURN 95;
CREATE FUNCTION f96() RETURNS INT RETURN 96;
CREATE FUNCTION f97() RETURNS INT RETURN 97;
CREATE FUNCTION f98() RETURNS INT RETURN 98;
CREATE FUNCTION f99() RETURNS INT RETURN 99;
CREATE FUNCTION f100() RETURNS INT RETURN 100;
CREATE FUNCTION f101() RETURNS INT RETURN 101;
CREATE FUNCTION f102() RETURNS INT RETURN 102;
CREATE FUNCTION f103() RETURNS INT RETURN 103;
CREATE FUNCTION f104() RETURNS INT RETURN 104;
CREATE FUNCTION f105() RETURNS INT RETURN 105;
CREATE FUNCTION f106() RETURNS INT RETURN 106;
CREATE FUNCTION f107() RETURNS INT RETURN 107;
CREATE FUNCTION f108() RETURNS INT RETURN 108;
CREATE FUNCTION f109() RETURNS INT RETURN 109;
CREATE FUNCTION f110() RETURNS INT RETURN 110;
CREATE FUNCTION f111() RETURNS INT RETURN 111;
CREATE FUNCTION f112() RETURNS INT RETURN 112;
CREATE FUNCTION f113() RETURNS INT RETURN 113;
CREATE FUNCTION f114() RETURNS INT RETURN 114;
CREATE FUNCTION f115() RETURNS INT RETURN 115;
CREATE FUNCTION f116() RETURNS INT RETURN 116;
CREATE FUNCTION f117() RETURNS INT RETURN 117;
CREATE FUNCTION f118() RETURNS INT RETURN 118;
CREATE FUNCTION f119() RETURNS INT RETURN 119;
CREATE FUNCTION f120() RETURNS INT RETURN 120;
CREATE FUNCTION f121() RETURNS INT RETURN 121;
CREATE FUNCTION f122() RETURNS INT RETURN 122;
CREATE FUNCTION f123() RETURNS INT RETURN 123;
CREATE FUNCTION f124() RETURNS INT RETURN 124;
CREATE FUNCTION f125() RETURNS INT RETURN 125;
CREATE FUNCTION f126() RETURNS INT RETURN 126;
CREATE FUNCTION f127() RETURNS INT RETURN 127;
CREATE FUNCTION f128() RETURNS INT RETURN 128;
CREATE FUNCTION f129() RETURNS INT RETURN 129;
CREATE FUNCTION f130() RETURNS INT RETURN 130;
CREATE FUNCTION f131() RETURNS INT RETURN 131;
CREATE FUNCTION f132() RETURNS INT RETURN 132;
CREATE FUNCTION f133() RETURNS INT RETURN 133;
CREATE FUNCTION f134() RETURNS INT RETURN 134;
CREATE FUNCTION f135() RETURNS INT RETURN 135;
CREATE FUNCTION f136() RETURNS INT RETURN 136;
CREATE FUNCTION f137() RETURNS INT RETURN 137;
CREATE FUNCTION f138() RETURNS INT RETURN 138;
CREATE FUNCTION f139() RETURNS INT RETURN 139;
CREATE FUNCTION f140() RETURNS INT RETURN 140;
CREATE FUNCTION f141() RETURNS INT RETURN 141;
CREATE FUNCTION f142() RETURNS INT RETURN 142;
CREATE FUNCTION f143() RETURNS INT RETURN 143;
CREATE FUNCTION f144() RETURNS INT RETURN 144;
CREATE FUNCTION f145() RETURNS INT RETURN 145;
CREATE FUNCTION f146() RETURNS INT RETURN 146;
CREATE FUNCTION f147() RETURNS INT RETURN 147;
CREATE FUNCTION f148() RETURNS INT RETURN 148;
CREATE FUNCTION f149() RETURNS INT RETURN 149;
CREATE FUNCTION f150() RETURNS INT RETURN 150;
CREATE FUNCTION f151() RETURNS INT RETURN 151;
CREATE FUNCTION f152() RETURNS INT RETURN 152;
CREATE FUNCTION f153() RETURNS INT RETURN 153;
CREATE FUNCTION f154() RETURNS INT RETURN 154;
CREATE FUNCTION f155() RETURNS INT RETURN 155;
CREATE FUNCTION f156() RETURNS INT RETURN 156;
CREATE FUNCTION f157() RETURNS INT RETURN 157;
CREATE FUNCTION f158() RETURNS INT RETURN 158;
CREATE FUNCTION f159() RETURNS INT RETURN 159;
CREATE FUNCTION f160() RETURNS INT RETURN 160;
CREATE FUNCTION f161() RETURNS INT RETURN 161;
CREATE FUNCTION f162() RETURNS INT RETURN 162;
CREATE FUNCTION f163() RETURNS INT RETURN 163;
CREATE FUNCTION f164() RETURNS INT RETURN 164;
CREATE FUNCTION f165() RETURNS INT RETURN 165;
CREATE FUNCTION f166() RETURNS INT RETURN 166;
CREATE FUNCTION f167() RETURNS INT RETURN 167;
CREATE FUNCTION f168() RETURNS INT RETURN 168;
CREATE FUNCTION f169() RETURNS INT RETURN 169;
CREATE FUNCTION f170() RETURNS INT RETURN 170;
CREATE FUNCTION f171() RETURNS INT RETURN 171;
CREATE FUNCTION f172() RETURNS INT RETURN 172;
CREATE FUNCTION f173() RETURNS INT RETURN 173;
CREATE FUNCTION f174() RETURNS INT RETURN 174;
CREATE FUNCTION f175() RETURNS INT RETURN 175;
CREATE FUNCTION f176() RETURNS INT RETURN 176;
CREATE FUNCTION f177() RETURNS INT RETURN 177;
CREATE FUNCTION f178() RETURNS INT RETURN 178;
CREATE FUNCTION f179() RETURNS INT RETURN 179;
CREATE FUNCTION f180() RETURNS INT RETURN 180;
CREATE FUNCTION f181() RETURNS INT RETURN 181;
CREATE FUNCTION f182() RETURNS INT RETURN 182;
CREATE FUNCTION f183() RETURNS INT RETURN 183;
CREATE FUNCTION f184() RETURNS INT RETURN 184;
CREATE FUNCTION f185() RETURNS INT RETURN 185;
CREATE FUNCTION f186() RETURNS INT RETURN 186;
CREATE FUNCTION f187() RETURNS INT RETURN 187;
CREATE FUNCTION f188() RETURNS INT RETURN 188;
CREATE FUNCTION f189() RETURNS INT RETURN 189;
CREATE FUNCTION f190() RETURNS INT RETURN 190;
CREATE FUNCTION f191() RETURNS INT RETURN 191;
CREATE FUNCTION f192() RETURNS INT RETURN 192;
CREATE FUNCTION f193() RETURNS INT RETURN 193;
CREATE FUNCTION f194() RETURNS INT RETURN 194;
CREATE FUNCTION f195() RETURNS INT RETURN 195;
CREATE FUNCTION f196() RETURNS INT RETURN 196;
CREATE FUNCTION f197() RETURNS INT RETURN 197;
CREATE FUNCTION f198() RETURNS INT RETURN 198;
CREATE FUNCTION f199() RETURNS INT RETURN 199;
CREATE FUNCTION f200() RETURNS INT RETURN 200;
CREATE FUNCTION f201() RETURNS INT RETURN 201;
CREATE FUNCTION f202() RETURNS INT RETURN 202;
CREATE FUNCTION f203() RETURNS INT RETURN 203;
CREATE FUNCTION f204() RETURNS INT RETURN 204;
CREATE FUNCTION f205() RETURNS INT RETURN 205;
CREATE FUNCTION f206() RETURNS INT RETURN 206;
CREATE FUNCTION f207() RETURNS INT RETURN 207;
CREATE FUNCTION f208() RETURNS INT RETURN 208;
CREATE FUNCTION f209() RETURNS INT RETURN 209;
CREATE FUNCTION f210() RETURNS INT RETURN 210;
CREATE FUNCTION f211() RETURNS INT RETURN 211;
CREATE FUNCTION f212() RETURNS INT RETURN 212;
CREATE FUNCTION f213() RETURNS INT RETURN 213;
CREATE FUNCTION f214() RETURNS INT RETURN 214;
CREATE FUNCTION f215() RETURNS INT RETURN 215;
CREATE FUNCTION f216() RETURNS INT RETURN 216;
CREATE FUNCTION f217() RETURNS INT RETURN 217;
CREATE FUNCTION f218() RETURNS INT RETURN 218;
CREATE FUNCTION f219() RETURNS INT RETURN 219;
CREATE FUNCTION f220() RETURNS INT RETURN 220;
CREATE FUNCTION f221() RETURNS INT RETURN 221;
CREATE FUNCTION f222() RETURNS INT RETURN 222;
CREATE FUNCTION f223() RETURNS INT RETURN 223;
CREATE FUNCTION f224() RETURNS INT RETURN 224;
CREATE FUNCTION f225() RETURNS INT RETURN 225;
CREATE FUNCTION f226() RETURNS INT RETURN 226;
CREATE FUNCTION f227() RETURNS INT RETURN 227;
CREATE FUNCTION f228() RETURNS INT RETURN 228;
CREATE FUNCTION f229() RETURNS INT RETURN 229;
CREATE FUNCTION f230() RETURNS INT RETURN 230;
CREATE FUNCTION f231() RETURNS INT RETURN 231;
CREATE FUNCTION f232() RETURNS INT RETURN 232;
CREATE FUNCTION f233() RETURNS INT RETURN 233;
CREATE FUNCTION f234() RETURNS INT RETURN 234;
CREATE FUNCTION f235() RETURNS INT RETURN 235;
CREATE FUNCTION f236() RETURNS INT RETURN 236;
CREATE FUNCTION f237() RETURNS INT RETURN 237;
CREATE FUNCTION f238() RETURNS INT RETURN 238;
CREATE FUNCTION f239() RETURNS INT RETURN 239;
CREATE FUNCTION f240() RETURNS INT RETURN 240;
CREATE FUNCTION f241() RETURNS INT RETURN 241;
CREATE FUNCTION f242() RETURNS INT RETURN 242;
CREATE FUNCTION f243() RETURNS INT RETURN 243;
CREATE FUNCTION f244() RETURNS INT RETURN 244;
CREATE FUNCTION f245() RETURNS INT RETURN 245;
CREATE FUNCTION f246() RETURNS INT RETURN 246;
CREATE FUNCTION f247() RETURNS INT RETURN 247;
CREATE FUNCTION f248() RETURNS INT RETURN 248;
CREATE FUNCTION f249() RETURNS INT RETURN 249;
CREATE FUNCTION f250() RETURNS INT RETURN 250;
CREATE FUNCTION f251() RETURNS INT RETURN 251;
CREATE FUNCTION f252() RETURNS INT RETURN 252;
CREATE FUNCTION f253() RETURNS INT RETURN 253;
CREATE FUNCTION f254() RETURNS INT RETURN 254;
CREATE FUNCTION f255() RETURNS INT RETURN 255;
CREATE FUNCTION f256() RETURNS INT RETURN 256;
CREATE FUNCTION f257() RETURNS INT RETURN 257;
CREATE PROCEDURE p1() SELECT f1() + f2() + f3() + f4() + f5() + f6() + f7() + f8() + f9() + f10() + f11() + f12() + f13() + f14() + f15() + f16() + f17() + f18() + f19() + f20() + f21() + f22() + f23() + f24() + f25() + f26() + f27() + f28() + f29() + f30() + f31() + f32();
CREATE PROCEDURE p2() SELECT f33() + f34() + f35() + f36() + f37() + f38() + f39() + f40() + f41() + f42() + f43() + f44() + f45() + f46() + f47() + f48() + f49() + f50() + f51() + f52() + f53() + f54() + f55() + f56() + f57() + f58() + f59() + f60() + f61() + f62() + f63() + f64();
CREATE PROCEDURE p3() SELECT f65() + f66() + f67() + f68() + f69() + f70() + f71() + f72() + f73() + f74() + f75() + f76() + f77() + f78() + f79() + f80() + f81() + f82() + f83() + f84() + f85() + f86() + f87() + f88() + f89() + f90() + f91() + f92() + f93() + f94() + f95() + f96();
CREATE PROCEDURE p4() SELECT f97() + f98() + f99() + f100() + f101() + f102() + f103() + f104() + f105() + f106() + f107() + f108() + f109() + f110() + f111() + f112() + f113() + f114() + f115() + f116() + f117() + f118() + f119() + f120() + f121() + f122() + f123() + f124() + f125() + f126() + f127() + f128();
CREATE PROCEDURE p5() SELECT f129() + f130() + f131() + f132() + f133() + f134() + f135() + f136() + f137() + f138() + f139() + f140() + f141() + f142() + f143() + f144() + f145() + f146() + f147() + f148() + f149() + f150() + f151() + f152() + f153() + f154() + f155() + f156() + f157() + f158() + f159() + f160();
CREATE PROCEDURE p6() SELECT f161() + f162() + f163() + f164() + f165() + f166() + f167() + f168() + f169() + f170() + f171() + f172() + f173() + f174() + f175() + f176() + f177() + f178() + f179() + f180() + f181() + f182() + f183() + f184() + f185() + f186() + f187() + f188() + f189() + f190() + f191() + f192();
CREATE PROCEDURE p7() SELECT f193() + f194() + f195() + f196() + f197() + f198() + f199() + f200() + f201() + f202() + f203() + f204() + f205() + f206() + f207() + f208() + f209() + f210() + f211() + f212() + f213() + f214() + f215() + f216() + f217() + f218() + f219() + f220() + f221() + f222() + f223() + f224();
CREATE PROCEDURE p8() SELECT f225() + f226() + f227() + f228() + f229() + f230() + f231() + f232() + f233() + f234() + f235() + f236() + f237() + f238() + f239() + f240() + f241() + f242() + f243() + f244() + f245() + f246() + f247() + f248() + f249() + f250() + f251() + f252() + f253() + f254() + f255() + f256();
SELECT 'Calling p1 ...';
CALL p1();
SELECT 'Calling p2 ...';
CALL p2();
SELECT 'Calling p3 ...';
CALL p3();
SELECT 'Calling p4 ...';
CALL p4();
SELECT 'Calling p5 ...';
CALL p5();
SELECT 'Calling p6 ...';
CALL p6();
SELECT 'Calling p7 ...';
CALL p7();
SELECT 'Calling p8 ...';
CALL p8();
DELIMITER ;;
CREATE PROCEDURE InflateSpCache()
BEGIN
  CALL p1();
  CALL p2();
  CALL p3();
  CALL p4();
  CALL p5();
  CALL p6();
  CALL p7();
  CALL p8();
END;;
DELIMITER ;
-- Inflating sp cache to 256 function entries...
CALL InflateSpCache();
-- Adding one more function to the sp cache to cause it to be reset...
SELECT f257();
-- Trying to call a procedure - this will fail...
CALL p1();
