@ -3666,6 +3666,8 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
TableInfo * tbinfo = polinfo - > poltable ;
PQExpBuffer query ;
PQExpBuffer delqry ;
PQExpBuffer polprefix ;
char * qtabname ;
const char * cmd ;
char * tag ;
@ -3723,6 +3725,9 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
query = createPQExpBuffer ( ) ;
delqry = createPQExpBuffer ( ) ;
polprefix = createPQExpBuffer ( ) ;
qtabname = pg_strdup ( fmtId ( tbinfo - > dobj . name ) ) ;
appendPQExpBuffer ( query , " CREATE POLICY %s " , fmtId ( polinfo - > polname ) ) ;
@ -3743,6 +3748,9 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
appendPQExpBuffer ( delqry , " DROP POLICY %s " , fmtId ( polinfo - > polname ) ) ;
appendPQExpBuffer ( delqry , " ON %s; \n " , fmtQualifiedDumpable ( tbinfo ) ) ;
appendPQExpBuffer ( polprefix , " POLICY %s ON " ,
fmtId ( polinfo - > polname ) ) ;
tag = psprintf ( " %s %s " , tbinfo - > dobj . name , polinfo - > dobj . name ) ;
if ( polinfo - > dobj . dump & DUMP_COMPONENT_POLICY )
@ -3755,9 +3763,16 @@ dumpPolicy(Archive *fout, PolicyInfo *polinfo)
. createStmt = query - > data ,
. dropStmt = delqry - > data ) ) ;
if ( polinfo - > dobj . dump & DUMP_COMPONENT_COMMENT )
dumpComment ( fout , polprefix - > data , qtabname ,
tbinfo - > dobj . namespace - > dobj . name , tbinfo - > rolname ,
polinfo - > dobj . catId , 0 , polinfo - > dobj . dumpId ) ;
free ( tag ) ;
destroyPQExpBuffer ( query ) ;
destroyPQExpBuffer ( delqry ) ;
destroyPQExpBuffer ( polprefix ) ;
free ( qtabname ) ;
}
/*