mirror of
https://github.com/postgres/postgres.git
synced 2026-02-23 01:40:33 -05:00
cache. I found if I manually added a line to flush the whole relation cache, the assert error disappeared. Looking through the code, I found that the relation cache is flushed at the end of each query if the reference count is zero for the relation. However, printf's showed that the rd_relcnt(reference count) for the accessed query was not returning to zero after each query. It turns out the parser was doing a heap_ropen in parser/analyze.c to get information about the table's columns, but was not doing a heap_close. This was causing the query after the ALTER TABLE ADD to see the old table structure, and the executor's assert was reporting the problem. |
||
|---|---|---|
| .. | ||
| catalog_utils.h | ||
| dbcommands.h | ||
| keywords.h | ||
| parse_query.h | ||
| parse_state.h | ||
| parsetree.h | ||
| scansup.h | ||
| sysfunc.h | ||