[HACKERS] Re: [PATCHES] Raymond Toy: Case sensitivity bug with large objects! - Mailing list pgsql-hackers

From Vadim B. Mikheev
Subject [HACKERS] Re: [PATCHES] Raymond Toy: Case sensitivity bug with large objects!
Date
Msg-id aa91374440fc52be32cf5d410fd17d98
Whole thread Raw
List pgsql-hackers
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

------------------------------

pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: [HACKERS] Re: [PATCHES] Raymond Toy: Case sensitivity bug with large objects!
Next
From: "Darrell A. Escola"
Date:
Subject: [HACKERS] Congrats! - Regression Test 100% on Linux-2.0.29