@ -14621,10 +14621,6 @@ getExtensionMembership(Archive *fout, ExtensionInfo extinfo[],
int nconfigitems ;
int nconditionitems ;
/* Tables of not-to-be-dumped extensions shouldn't be dumped */
if ( ! curext - > dobj . dump )
continue ;
if ( parsePGArray ( extconfig , & extconfigarray , & nconfigitems ) & &
parsePGArray ( extcondition , & extconditionarray , & nconditionitems ) & &
nconfigitems = = nconditionitems )
@ -14634,11 +14630,43 @@ getExtensionMembership(Archive *fout, ExtensionInfo extinfo[],
for ( j = 0 ; j < nconfigitems ; j + + )
{
TableInfo * configtbl ;
Oid configtbloid = atooid ( extconfigarray [ j ] ) ;
bool dumpobj = curext - > dobj . dump ;
configtbl = findTableByOid ( atooid ( extconfigarray [ j ] ) ) ;
configtbl = findTableByOid ( configtbloid ) ;
if ( configtbl = = NULL )
continue ;
/*
* Tables of not - to - be - dumped extensions shouldn ' t be dumped
* unless the table or its schema is explicitly included
*/
if ( ! curext - > dobj . dump )
{
/* check table explicitly requested */
if ( table_include_oids . head ! = NULL & &
simple_oid_list_member ( & table_include_oids ,
configtbloid ) )
dumpobj = true ;
/* check table's schema explicitly requested */
if ( configtbl - > dobj . namespace - > dobj . dump )
dumpobj = true ;
}
/* check table excluded by an exclusion switch */
if ( table_exclude_oids . head ! = NULL & &
simple_oid_list_member ( & table_exclude_oids ,
configtbloid ) )
dumpobj = false ;
/* check schema excluded by an exclusion switch */
if ( simple_oid_list_member ( & schema_exclude_oids ,
configtbl - > dobj . namespace - > dobj . catId . oid ) )
dumpobj = false ;
if ( dumpobj )
{
/*
* Note : config tables are dumped without OIDs regardless of
* the - - oids setting . This is because row filtering
@ -14652,6 +14680,7 @@ getExtensionMembership(Archive *fout, ExtensionInfo extinfo[],
}
}
}
}
if ( extconfigarray )
free ( extconfigarray ) ;
if ( extconditionarray )