Bruce Momjian wrote:
>
> > Also, please change vacuum:
> >
> > /* don't vacuum large objects for now - something breaks when we do */
> > if ( (strlen(rname) > 4) && rname[0] == 'X' &&
> > rname[1] == 'i' && rname[2] == 'n' &&
> > (rname[3] == 'v' || rname[3] == 'x'))
> >
> > There may be other places...
>
> Thanks. Fixed.
>
> I looked through the code for 'X', and it looks like that is the only
> place left.
>
> The lack of case-sensitivity could cause tables that start with xinv* to
> be confused as large objects.
>
> What do we do?
Use relkind in pg_class:
#define RELKIND_INDEX 'i' /* secondary index */
#define RELKIND_RELATION 'r' /* cataloged heap */
#define RELKIND_SPECIAL 's' /* special (non-heap) */
#define RELKIND_SEQUENCE 'S' /* SEQUENCE relation */
#define RELKIND_UNCATALOGED 'u' /* temporary heap */
+ #define RELKIND_LO_RELATION 'X' /* large object relation */
+ #define RELKIND_LO_INDEX 'x' /* large object index */
and change heap_create & heap_creatr to pass relkind to them.
But leave it for 6.2[345...]
BTW, it's better to start thinking about BLOB implementation...
Vadim
------------------------------