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
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 |