File tree Expand file tree Collapse file tree 1 file changed +11
-1
lines changed
Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -423,11 +423,21 @@ relarr_lookup_rel(RelInfoArr *rel_arr,
423423 const char * nspname , const char * relname ,
424424 Cluster whichCluster )
425425{
426- int relnum ;
426+ static int relnum = 0 ;
427427
428428 if (!rel_arr || !relname )
429429 return NULL ;
430430
431+ /* Test most recent lookup first, for speed */
432+ if (strcmp (rel_arr -> rels [relnum ].nspname , nspname ) == 0 &&
433+ strcmp (rel_arr -> rels [relnum ].relname , relname ) == 0 )
434+ return & rel_arr -> rels [relnum ];
435+
436+ if (relnum + 1 < rel_arr -> nrels &&
437+ strcmp (rel_arr -> rels [relnum + 1 ].nspname , nspname ) == 0 &&
438+ strcmp (rel_arr -> rels [relnum + 1 ].relname , relname ) == 0 )
439+ return & rel_arr -> rels [relnum + 1 ];
440+
431441 for (relnum = 0 ; relnum < rel_arr -> nrels ; relnum ++ )
432442 {
433443 if (strcmp (rel_arr -> rels [relnum ].nspname , nspname ) == 0 &&
You can’t perform that action at this time.
0 commit comments