On Sun, Oct 13, 2024 at 8:09 PM Alexander Korotkov <aekorot...@gmail.com> wrote: >
hi. Alexander. I don't fully understand all of it. but I did some tests anyway. static void cleanup_in_progress_typentries(void) { int i; if (in_progress_list_len > 1) elog(INFO, "%s:%d in_progress_list_len > 1", __FILE_NAME__, __LINE__); for (i = 0; i < in_progress_list_len; i++) { TypeCacheEntry *typentry; typentry = (TypeCacheEntry *) hash_search(TypeCacheHash, &in_progress_list[i], HASH_FIND, NULL); insert_rel_type_cache_if_needed(typentry); } in_progress_list_len = 0; } the regress still passed. I assume "elog(INFO, " won't interfere in cleanup_in_progress_typentries. So we lack tests for larger in_progress_list_len values or i missed something? /* Call check_delete_rel_type_cache() if we actually cleared something */ if (hadTupDescOrOpclass) delete_rel_type_cache_if_needed(typentry); /* * Call check_delete_rel_type_cache() if we cleaned * TCFLAGS_HAVE_PG_TYPE_DATA flag previously. */ if (hadPgTypeData) delete_rel_type_cache_if_needed(typentry); check_delete_rel_type_cache don't exist, so these comments are wrong?