-
- Downloads
Use a private memory context to store rule information in each relcache
entry that has rules. This allows us to release the rule parsetrees on relcache flush without needing a working freeObject() routine. Formerly, the rule trees were leaked permanently at relcache flush. Also, clean up handling of rule creation and deletion --- there was not sufficient locking of the relation being modified, and there was no reliable notification of other backends that a relcache reload was needed. Also, clean up relcache.c code so that scans of system tables needed to load a relcache entry are done in the caller's memory context, not in CacheMemoryContext. This prevents any un-pfreed memory from those scans from becoming a permanent memory leak.
Showing
- src/backend/catalog/index.c 15 additions, 24 deletionssrc/backend/catalog/index.c
- src/backend/commands/trigger.c 33 additions, 15 deletionssrc/backend/commands/trigger.c
- src/backend/rewrite/rewriteDefine.c 43 additions, 80 deletionssrc/backend/rewrite/rewriteDefine.c
- src/backend/rewrite/rewriteHandler.c 6 additions, 6 deletionssrc/backend/rewrite/rewriteHandler.c
- src/backend/rewrite/rewriteRemove.c 34 additions, 39 deletionssrc/backend/rewrite/rewriteRemove.c
- src/backend/rewrite/rewriteSupport.c 18 additions, 178 deletionssrc/backend/rewrite/rewriteSupport.c
- src/backend/utils/cache/relcache.c 188 additions, 161 deletionssrc/backend/utils/cache/relcache.c
- src/include/catalog/index.h 3 additions, 2 deletionssrc/include/catalog/index.h
- src/include/rewrite/rewriteSupport.h 2 additions, 9 deletionssrc/include/rewrite/rewriteSupport.h
- src/include/utils/rel.h 3 additions, 2 deletionssrc/include/utils/rel.h
Loading
Please register or sign in to comment