Major overhaul of large-object implementation, by Denis Perchine with
authorTom Lane <[email protected]>
Tue, 24 Oct 2000 01:38:43 +0000 (01:38 +0000)
committerTom Lane <[email protected]>
Tue, 24 Oct 2000 01:38:43 +0000 (01:38 +0000)
kibitzing from Tom Lane.  Large objects are now all stored in a single
system relation "pg_largeobject" --- no more xinv or xinx files, no more
relkind 'l'.  This should offer substantial performance improvement for
large numbers of LOs, since there won't be directory bloat anymore.
It'll also fix problems like running out of locktable space when you
access thousands of LOs in one transaction.
Also clean up cruft in read/write routines.  LOs with "holes" in them
(never-written byte ranges) now work just like Unix files with holes do:
a hole reads as zeroes but doesn't occupy storage space.
INITDB forced!

info.c

diff --git a/info.c b/info.c
index 9c99a120adf1ed73c4f98a7476e27df4b355a087..9d4e75a9e0a6742b474dfb3e43fd756357df84b9 100644 (file)
--- a/info.c
+++ b/info.c
@@ -1007,8 +1007,7 @@ mylog("%s: entering...stmt=%u\n", func, stmt);
    }
 
 
-   /*  filter out large objects unconditionally (they are not system tables) and match users */
-   strcat(tables_query, " and relname !~ '^xinv[0-9]+'");
+   /* match users */
    strcat(tables_query, " and usesysid = relowner");
    strcat(tables_query, " order by relname");