postgresql/src
Tom Lane 7e0cce0265 Remove unnecessary overhead in backend's large-object operations.
Do read/write permissions checks at most once per large object descriptor,
not once per lo_read or lo_write call as before.  The repeated tests were
quite useless in the read case since the snapshot-based tests were
guaranteed to produce the same answer every time.  In the write case,
the extra tests could in principle detect revocation of write privileges
after a series of writes has started --- but there's a race condition there
anyway, since we'd check privileges before performing and certainly before
committing the write.  So there's no real advantage to checking every
single time, and we might as well redefine it as "only check the first
time".

On the same reasoning, remove the LargeObjectExists checks in inv_write
and inv_truncate.  We already checked existence when the descriptor was
opened, and checking again doesn't provide any real increment of safety
that would justify the cost.
2012-10-09 16:38:00 -04:00
..
backend Remove unnecessary overhead in backend's large-object operations. 2012-10-09 16:38:00 -04:00
bin Work around unportable behavior of malloc(0) and realloc(NULL, 0). 2012-10-02 17:32:42 -04:00
include Remove unnecessary overhead in backend's large-object operations. 2012-10-09 16:38:00 -04:00
interfaces Fix lo_import and lo_export to return useful error messages more often. 2012-10-08 21:52:34 -04:00
makefiles Remove BSD/OS (BSDi) port. There are no known users upgrading to 2012-05-03 10:58:44 -04:00
pl PL/pgSQL: rename gram.y to pl_gram.y 2012-10-04 22:40:33 -04:00
port Remove redundant code for getnameinfo() replacement 2012-10-04 21:45:14 -04:00
template Disable _FORTIFY_SOURCE with ICC 2012-09-29 20:07:36 -04:00
test Fix lo_export usage in example programs. 2012-10-08 21:19:54 -04:00
timezone Update time zone data files to tzdata release 2012f. 2012-09-19 10:44:45 -04:00
tools Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
tutorial Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Fix some oversights in distprep and maintainer-clean targets. 2011-03-10 00:04:05 -05:00
Makefile.global.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
Makefile.shlib Remove configure flag --disable-shared, as it is no longer used by any 2012-08-30 16:26:53 -04:00
nls-global.mk Lots of doc corrections. 2012-04-23 22:43:09 -04:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00