@@ -182,7 +182,6 @@ typedef struct RI_CompareHashEntry
182
182
* ----------
183
183
*/
184
184
static HTAB * ri_constraint_cache = NULL ;
185
- static long ri_constraint_cache_seq_count = 0 ;
186
185
static HTAB * ri_query_cache = NULL ;
187
186
static HTAB * ri_compare_cache = NULL ;
188
187
@@ -215,7 +214,6 @@ static bool ri_KeysEqual(Relation rel, HeapTuple oldtup, HeapTuple newtup,
215
214
static bool ri_AttributesEqual (Oid eq_opr , Oid typeid ,
216
215
Datum oldvalue , Datum newvalue );
217
216
218
- static void ri_InitConstraintCache (void );
219
217
static void ri_InitHashTables (void );
220
218
static void InvalidateConstraintCacheCallBack (Datum arg , int cacheid , uint32 hashvalue );
221
219
static SPIPlanPtr ri_FetchPreparedPlan (RI_QueryKey * key );
@@ -2934,20 +2932,6 @@ InvalidateConstraintCacheCallBack(Datum arg, int cacheid, uint32 hashvalue)
2934
2932
2935
2933
Assert (ri_constraint_cache != NULL );
2936
2934
2937
- /*
2938
- * Prevent an O(N^2) problem when creating large amounts of foreign
2939
- * key constraints with ALTER TABLE, like it happens at the end of
2940
- * a pg_dump with hundred-thousands of tables having references.
2941
- */
2942
- ri_constraint_cache_seq_count += hash_get_num_entries (ri_constraint_cache );
2943
- if (ri_constraint_cache_seq_count > 1000000 )
2944
- {
2945
- hash_destroy (ri_constraint_cache );
2946
- ri_InitConstraintCache ();
2947
- ri_constraint_cache_seq_count = 0 ;
2948
- return ;
2949
- }
2950
-
2951
2935
hash_seq_init (& status , ri_constraint_cache );
2952
2936
while ((hentry = (RI_ConstraintInfo * ) hash_seq_search (& status )) != NULL )
2953
2937
{
@@ -3342,15 +3326,13 @@ ri_NullCheck(HeapTuple tup,
3342
3326
3343
3327
3344
3328
/* ----------
3345
- * ri_InitConstraintCache
3346
- *
3347
- * Initialize ri_constraint_cache when new or being rebuilt.
3329
+ * ri_InitHashTables -
3348
3330
*
3349
- * This needs to be done from two places, so split it out to prevent drift .
3331
+ * Initialize our internal hash tables .
3350
3332
* ----------
3351
3333
*/
3352
3334
static void
3353
- ri_InitConstraintCache (void )
3335
+ ri_InitHashTables (void )
3354
3336
{
3355
3337
HASHCTL ctl ;
3356
3338
@@ -3361,20 +3343,6 @@ ri_InitConstraintCache(void)
3361
3343
ri_constraint_cache = hash_create ("RI constraint cache" ,
3362
3344
RI_INIT_CONSTRAINTHASHSIZE ,
3363
3345
& ctl , HASH_ELEM | HASH_FUNCTION );
3364
- }
3365
-
3366
- /* ----------
3367
- * ri_InitHashTables -
3368
- *
3369
- * Initialize our internal hash tables.
3370
- * ----------
3371
- */
3372
- static void
3373
- ri_InitHashTables (void )
3374
- {
3375
- HASHCTL ctl ;
3376
-
3377
- ri_InitConstraintCache ();
3378
3346
3379
3347
/* Arrange to flush cache on pg_constraint changes */
3380
3348
CacheRegisterSyscacheCallback (CONSTROID ,
0 commit comments