Again about temporary table
От | Juris Krumins |
---|---|
Тема | Again about temporary table |
Дата | |
Msg-id | 004e01c36c6e$5ddd1c40$0201010a@ntbdc обсуждение исходный текст |
Ответы |
Re: Again about temporary table
|
Список | pgsql-general |
Couple a weeks ago (19.08.03 Subject: Temporaty tables) I've posted message with question about errors I'm getting while using create temporaty table command. So I'm start digging in src code as Tom Lane did and found about 4 places where such kind pf errors could happend PostgreSQL 7.3.3 src/backend/catalog/dependency.c : 1621 src/backend/catalog/heap.c : 1663 src/backend/catalog/pg_constraint.c : 445 src/backend/utils/adt/ruleutils.c : 3125 As I see all this errors depend on HeapTupleIsValid() function return code. If it's false then error happend. In 1) src/backend/utils/adt/ruleutils.c : 3125 HeapTupleIsValid() function is used in generate_relation_name(Oid relid), which is as I understand resposible to convert relid identificator into relation name 2) src/backend/catalog/dependency.c : 1621 HeapTupleIsValid() function is used in getRelationDescription(StringInfo buffer, Oid relid) function, which is getting relation description while specify relid. 3) src/backend/catalog/heap.c : 1663 HeapTupleIsValid() function is used in SetRelationNumChecks(Relation rel, int numchecks) function. I don't realy understand the meaning of that function 4) src/backend/catalog/pg_constraint.c : 445 HeapTupleIsValid() function is used in RemoveConstraintById(Oid conId) which is responsible for delete a single constraint record. So any ideas why I'm getting errors like: Warning: pg_exec() [function.pg-exec]: Query failed: ERROR: cache lookup of relation 149064743 failed . in table.php on line 169 The query on line 169 is : CREATE TEMP TABLE tmp_table1 AS SELECT advert.time_create, (SELECT employer.fullname FROM employer WHERE advert.empid=employer.id) as emp_name, (CASE WHEN advert.status1 = 'A' THEN advert.postname1 ELSE advert.postname2 END) as postname, advert.enddate, advert.id as id FROM good_adv as advert And right ahead Warning: pg_exec()[function.pg-exec]:Query failed: ERROR: Relation "tmp_table1" does not exist. On query like : SELECT * FROM tmp_table1
В списке pgsql-general по дате отправления: