Обсуждение: aliases for temp tables....
I've been looking everywhere and I can't find this: Everytime I create a temp table (Thanx Tom) within a procedure, a table named like pg_temp.###.# is created (I know this is MY temp table). How can I know the name (or alias) for this table so that I can, later on, check if it already exists. Example: I use a function to create a temp table named "mitabla1", so a physical table named pg_temp.32326.0 is created. I also create a temp table named "mitabla2" -> pg_temp.8732.2. I know there has to be a way of knowing which is which becuase if I run a select over "mitabla" I get the contents from the corresponding pg_temp.... table. I just couldn't find anywhere this information. Can anybody tell me where to find it or how? Thanx P.S. If I wasn't clear enough please let me know..... Cheers :-)
Alfonso Peniche <alfonso@iteso.mx> writes: > I've been looking everywhere and I can't find this: > Everytime I create a temp table (Thanx Tom) within a procedure, a table > named like pg_temp.###.# is created (I know this is MY temp table). How > can I know the name (or alias) for this table so that I can, later on, > check if it already exists. AFAIK there is no way to retrieve the temp-table name mapping from the backend. Sorry ... When we implement schemas (hopefully for 7.2) perhaps it will be possible to reimplement temp tables in a slightly less klugy way, so that this sort of problem goes away. regards, tom lane
> AFAIK there is no way to retrieve the temp-table name mapping from the > backend. Sorry ... > > When we implement schemas (hopefully for 7.2) perhaps it will be > possible to reimplement temp tables in a slightly less klugy way, > so that this sort of problem goes away. There is a linked list stored in utils/cache/temprel.c. There is no interface to that linked list. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026