pgsql: Speed up plpgsql trigger startup by introducing "promises".
От | Tom Lane |
---|---|
Тема | pgsql: Speed up plpgsql trigger startup by introducing "promises". |
Дата | |
Msg-id | E1elkoU-0002Bk-Ka@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
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 Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/fd333bc763ea104f2a2c10c6b0061c996d4a2f5a Modified Files -------------- src/pl/plpgsql/src/pl_comp.c | 50 +++++-- src/pl/plpgsql/src/pl_exec.c | 334 +++++++++++++++++++++++++++--------------- src/pl/plpgsql/src/pl_funcs.c | 5 + src/pl/plpgsql/src/pl_gram.y | 3 + src/pl/plpgsql/src/plpgsql.h | 56 +++++-- 5 files changed, 306 insertions(+), 142 deletions(-)
В списке pgsql-committers по дате отправления: