Re: AW: [HACKERS] Another TEMP table trick

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: hannu(at)trust(dot)ee (Hannu Krosing)
Cc: Andreas(dot)Zeugswetter(at)telecom(dot)at, hackers(at)postgreSQL(dot)org
Subject: Re: AW: [HACKERS] Another TEMP table trick
Date: 1999-01-31 01:24:49
Message-ID: 199901310124.UAA01370@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> Bruce Momjian wrote:
> >
> > > There could be a problem with GUI tools that rely on these rows
> > > to format their output (like pgaccess or ODBC --> M$ Access) though.
> >
> > Oh, never thought of that. A select of pg_class will return no rows for
> > that table because it is a temp table.
>
> One more reson to move \d from psql to backend maybe with syntax like
> Oracle's "DESC xxx" unless there is something in ANSI standard for that.
>
> Or implement the ANSI system tables (I think there were some ;) and
> views.
>
> Then the front-end tools can be advised to use these (and TEMP TABLES
> can
> add rows to other (possibly structure-permanent) TEMP tables that are
> UNIONed
> withe real pg_class to give them real values.
>
> Or we can even implement just temp _rows_ for tables that exist in a
> session only (maybe like in independant uncommitted transactions),
> and add the info for temp tables to pg_class (and friends) as temp rows.

I have thought some more about it, and I now want to create proper
pg_class rows for the temp tables.

The temp tables are named pg_temp.$pid.$seqno. What I am going to do
for the temp table is to add an _extra_ entry in the system cache for
the user-supplied name RELNAME lookup. All other lookups of pg_class by
oid, and pg_attribute, etc use just the relid, which works without any
translation.

The advantage is that I can keep the system tables consistent, have less
code overhead, and allow things like sequential scans of pg_class see
the table, even though it will not be under the user-supplied name.

Most interfaces already don't display pg_* tables, so this will be OK.
I will add a new relkind for the temp tables. I will also now be able
to test in vacuum if the temp table was orphaned after a backend crash,
and delete it.

I will prevent psql \dS from displaying the temp tables.

Should be a few more days.
--
Bruce Momjian | http://www.op.net/~candle
maillist(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 1999-01-31 01:42:56 Re: [HACKERS] Reducing sema usage (was Postmaster dies with many child processes)
Previous Message Cary O'Brien 1999-01-31 01:09:45 Backends and semaphores