From dcf5e319089e750d726a0e18a8c90b258c39362c Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter_e@gmx.net> Date: Tue, 12 May 2015 22:52:18 -0400 Subject: [PATCH] PL/Python: Remove procedure cache invalidation This was added to react to changes in the pg_transform catalog, but building with CLOBBER_CACHE_ALWAYS showed that PL/Python was not prepared for having its procedure cache cleared. Since this is a marginal use case, and we don't do this for other catalogs anyway, we can postpone this to another day. --- src/pl/plpython/plpy_procedure.c | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/src/pl/plpython/plpy_procedure.c b/src/pl/plpython/plpy_procedure.c index 858cecc64d2..00405f0adac 100644 --- a/src/pl/plpython/plpy_procedure.c +++ b/src/pl/plpython/plpy_procedure.c @@ -29,7 +29,6 @@ static HTAB *PLy_procedure_cache = NULL; static PLyProcedure *PLy_procedure_create(HeapTuple procTup, Oid fn_oid, bool is_trigger); -static void invalidate_procedure_caches(Datum arg, int cacheid, uint32 hashvalue); static bool PLy_procedure_argument_valid(PLyTypeInfo *arg); static bool PLy_procedure_valid(PLyProcedure *proc, HeapTuple procTup); static char *PLy_procedure_munge_source(const char *name, const char *src); @@ -45,29 +44,6 @@ init_procedure_caches(void) hash_ctl.entrysize = sizeof(PLyProcedureEntry); PLy_procedure_cache = hash_create("PL/Python procedures", 32, &hash_ctl, HASH_ELEM | HASH_BLOBS); - CacheRegisterSyscacheCallback(TRFTYPELANG, - invalidate_procedure_caches, - (Datum) 0); -} - -static void -invalidate_procedure_caches(Datum arg, int cacheid, uint32 hashvalue) -{ - HASH_SEQ_STATUS status; - PLyProcedureEntry *hentry; - - Assert(PLy_procedure_cache != NULL); - - /* flush all entries */ - hash_seq_init(&status, PLy_procedure_cache); - - while ((hentry = (PLyProcedureEntry *) hash_seq_search(&status))) - { - if (hash_search(PLy_procedure_cache, - (void *) &hentry->key, - HASH_REMOVE, NULL) == NULL) - elog(ERROR, "hash table corrupted"); - } } /* -- GitLab