-
- Downloads
Speed up plpgsql trigger startup by introducing "promises".
Over the years we've accreted quite a few special variables that are predefined in plpgsql trigger functions. The cost of initializing these variables to their defined values turns out to be a significant part of the runtime of simple triggers; but, undoubtedly, most real-world triggers never examine the values of most of these variables. To improve matters, invent the notion of a variable that has a "promise" attached to it, specifying which of the predetermined values should be assigned to the variable if anything ever reads it. This eliminates all the unneeded startup overhead, in return for a small penalty on accesses to these variables. Tom Lane, reviewed by Pavel Stehule Discussion: https://postgr.es/m/11986.1514407114@sss.pgh.pa.us
Showing
- src/pl/plpgsql/src/pl_comp.c 38 additions, 12 deletionssrc/pl/plpgsql/src/pl_comp.c
- src/pl/plpgsql/src/pl_exec.c 219 additions, 115 deletionssrc/pl/plpgsql/src/pl_exec.c
- src/pl/plpgsql/src/pl_funcs.c 5 additions, 0 deletionssrc/pl/plpgsql/src/pl_funcs.c
- src/pl/plpgsql/src/pl_gram.y 3 additions, 0 deletionssrc/pl/plpgsql/src/pl_gram.y
- src/pl/plpgsql/src/plpgsql.h 41 additions, 15 deletionssrc/pl/plpgsql/src/plpgsql.h
Loading
Please register or sign in to comment