@@ -9604,7 +9604,7 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
96049604PQExpBuffer asPart ;
96059605PGresult * res ;
96069606char * funcsig ;/* identity signature */
9607- char * funcfullsig ;/* full signature */
9607+ char * funcfullsig = NULL ;/* full signature */
96089608char * funcsig_tag ;
96099609char * proretset ;
96109610char * prosrc ;
@@ -9912,13 +9912,10 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
99129912funcsig = format_function_arguments (finfo ,funciargs , false);
99139913}
99149914else
9915- {
99169915/* pre-8.4, do it ourselves */
99179916funcsig = format_function_arguments_old (fout ,
99189917finfo ,nallargs ,allargtypes ,
99199918argmodes ,argnames );
9920- funcfullsig = funcsig ;
9921- }
99229919
99239920funcsig_tag = format_function_signature (fout ,finfo , false);
99249921
@@ -9929,7 +9926,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
99299926fmtId (finfo -> dobj .namespace -> dobj .name ),
99309927funcsig );
99319928
9932- appendPQExpBuffer (q ,"CREATE FUNCTION %s " ,funcfullsig );
9929+ appendPQExpBuffer (q ,"CREATE FUNCTION %s " ,funcfullsig ?funcfullsig :
9930+ funcsig );
99339931if (funcresult )
99349932appendPQExpBuffer (q ,"RETURNS %s" ,funcresult );
99359933else
@@ -10052,6 +10050,8 @@ dumpFunc(Archive *fout, FuncInfo *finfo)
1005210050destroyPQExpBuffer (labelq );
1005310051destroyPQExpBuffer (asPart );
1005410052free (funcsig );
10053+ if (funcfullsig )
10054+ free (funcfullsig );
1005510055free (funcsig_tag );
1005610056if (allargtypes )
1005710057free (allargtypes );
@@ -11508,7 +11508,7 @@ dumpAgg(Archive *fout, AggInfo *agginfo)
1150811508PQExpBuffer labelq ;
1150911509PQExpBuffer details ;
1151011510char * aggsig ;/* identity signature */
11511- char * aggfullsig ;/* full signature */
11511+ char * aggfullsig = NULL ;/* full signature */
1151211512char * aggsig_tag ;
1151311513PGresult * res ;
1151411514int i_aggtransfn ;
@@ -11656,11 +11656,8 @@ dumpAgg(Archive *fout, AggInfo *agginfo)
1165611656aggsig = format_function_arguments (& agginfo -> aggfn ,funciargs , true);
1165711657}
1165811658else
11659- {
1166011659/* pre-8.4, do it ourselves */
1166111660aggsig = format_aggregate_signature (agginfo ,fout , true);
11662- aggfullsig = aggsig ;
11663- }
1166411661
1166511662aggsig_tag = format_aggregate_signature (agginfo ,fout , false);
1166611663
@@ -11730,7 +11727,7 @@ dumpAgg(Archive *fout, AggInfo *agginfo)
1173011727aggsig );
1173111728
1173211729appendPQExpBuffer (q ,"CREATE AGGREGATE %s (\n%s\n);\n" ,
11733- aggfullsig ,details -> data );
11730+ aggfullsig ? aggfullsig : aggsig ,details -> data );
1173411731
1173511732appendPQExpBuffer (labelq ,"AGGREGATE %s" ,aggsig );
1173611733
@@ -11773,6 +11770,8 @@ dumpAgg(Archive *fout, AggInfo *agginfo)
1177311770agginfo -> aggfn .rolname ,agginfo -> aggfn .proacl );
1177411771
1177511772free (aggsig );
11773+ if (aggfullsig )
11774+ free (aggfullsig );
1177611775free (aggsig_tag );
1177711776
1177811777PQclear (res );