2016-11-07 2:16 GMT+01:00 Tom Lane <t...@sss.pgh.pa.us>: > The intent of SPI_push/SPI_pop seems to be to draw a boundary line between > nested layers of SPI callers. Which is fine, but the SPI_connect and > SPI_finish calls of the inner layer would suffice for that. AFAICS, > the only thing that SPI_push/SPI_pop buy for us is the ability to detect > a missing SPI_connect or SPI_finish in an inner function layer. And > that seems pretty useless, because any such bug in a function would be > immediately detected in simple testing that calls it without any outer > level of SPI calls. > > As against that, we have the risk of forgotten SPI_push/SPI_pop calls that > go undetected for years, as just seen in commit fc8b81a29. We've had that > type of bug before too, cf 0d4899e44. And then there's the fact that we > put conditional SPI_push/SPI_pop calls into various places, eg deac9488d, > which it seems to me largely destroys whatever debugging value the concept > did have. > > So I think we should just delete these functions and adjust SPI_connect > and SPI_finish so that they just push/pop a context level unconditionally. > (Which will make them simpler, not more complicated.) > > We can provide do-nothing macros by these names to avoid an API break > for third-party extensions. > > Comments, objections? >
cannot be there some performance impacts? Regards Pavel > > regards, tom lane > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers >