| From: | Vadim Mikheev <vadim(at)krs(dot)ru> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | Postgres Hackers List <hackers(at)postgreSQL(dot)org> |
| Subject: | Re: [HACKERS] Re: Freezing docs for v6.5 |
| Date: | 1999-06-04 01:53:54 |
| Message-ID: | 375731B2.60BEBC49@krs.ru |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Tom Lane wrote:
>
> Vadim Mikheev <vadim(at)krs(dot)ru> writes:
> >> On Thu, 3 Jun 1999, Tom Lane wrote:
> >>>> Bruce seemed to think that we could just flush the sys caches and
> >>>> relation cache completely during xact abort.
>
> > Could you remember me what's the problem with cache?
>
> The reported problem was that if a new relation is created, and then
> the transaction is aborted, the SysCache entry for the new relation's
> pg_class entry doesn't get removed. For example:
>
> test=> create table bug1 (f1 int28 primary key);
> ERROR: Can't find a default operator class for type 22.
> -- That's expected, since we have no index support for int28. But now:
> test=> create table bug1 (f1 int28);
> ERROR: Relation 'bug1' already exists
>
> The second try fails because it finds an entry for 'bug1' in the
> RELNAME SysCache, which was made before the create-index step of
> CREATE TABLE failed. That entry should not be there anymore.
Note this:
vac=> begin;
BEGIN
vac=> create table bug1 (f1 int28);
CREATE
vac=> abort;
ABORT
vac=> create table bug1 (f1 int28);
CREATE
I would leave this in 6.5 as is.
Vadim
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 1999-06-04 01:59:38 | Re: [HACKERS] Re: Freezing docs for v6.5 |
| Previous Message | Thomas Lockhart | 1999-06-04 01:51:13 | Re: [COMMITTERS] 'pgsql/doc/src/sgml/ref set.sgml' |