@ -4540,6 +4540,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
int i_relhasindex ;
int i_relhasrules ;
int i_relrowsec ;
int i_relforcerowsec ;
int i_relhasoids ;
int i_relfrozenxid ;
int i_relminmxid ;
@ -4593,7 +4594,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" (%s c.relowner) AS rolname, "
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" c.relrowsecurity, "
" c.relrowsecurity, c.relforcerowsecurity, "
" c.relfrozenxid, c.relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relminmxid AS tminmxid, "
@ -4635,6 +4636,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" c.relfrozenxid, c.relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relminmxid AS tminmxid, "
@ -4676,6 +4678,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" c.relfrozenxid, c.relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relminmxid AS tminmxid, "
@ -4717,6 +4720,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" 0 AS tminmxid, "
@ -4756,6 +4760,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" 0 AS tminmxid, "
@ -4794,6 +4799,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" 0 AS tminmxid, "
@ -4832,6 +4838,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" c.relchecks, (c.reltriggers <> 0) AS relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" 0 AS tminmxid, "
@ -4870,6 +4877,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relhasindex, relhasrules, relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -4907,6 +4915,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relhasindex, relhasrules, relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -4940,6 +4949,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relhasindex, relhasrules, relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -4968,6 +4978,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" relhasindex, relhasrules, "
" 't'::bool AS relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -5006,6 +5017,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
" relhasindex, relhasrules, "
" 't'::bool AS relhasoids, "
" 'f'::bool AS relrowsecurity, "
" 'f'::bool AS relforcerowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -5054,6 +5066,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
i_relhasindex = PQfnumber ( res , " relhasindex " ) ;
i_relhasrules = PQfnumber ( res , " relhasrules " ) ;
i_relrowsec = PQfnumber ( res , " relrowsecurity " ) ;
i_relforcerowsec = PQfnumber ( res , " relforcerowsecurity " ) ;
i_relhasoids = PQfnumber ( res , " relhasoids " ) ;
i_relfrozenxid = PQfnumber ( res , " relfrozenxid " ) ;
i_relminmxid = PQfnumber ( res , " relminmxid " ) ;
@ -5106,6 +5119,7 @@ getTables(Archive *fout, DumpOptions *dopt, int *numTables)
tblinfo [ i ] . hasrules = ( strcmp ( PQgetvalue ( res , i , i_relhasrules ) , " t " ) = = 0 ) ;
tblinfo [ i ] . hastriggers = ( strcmp ( PQgetvalue ( res , i , i_relhastriggers ) , " t " ) = = 0 ) ;
tblinfo [ i ] . rowsec = ( strcmp ( PQgetvalue ( res , i , i_relrowsec ) , " t " ) = = 0 ) ;
tblinfo [ i ] . forcerowsec = ( strcmp ( PQgetvalue ( res , i , i_relforcerowsec ) , " t " ) = = 0 ) ;
tblinfo [ i ] . hasoids = ( strcmp ( PQgetvalue ( res , i , i_relhasoids ) , " t " ) = = 0 ) ;
tblinfo [ i ] . relispopulated = ( strcmp ( PQgetvalue ( res , i , i_relispopulated ) , " t " ) = = 0 ) ;
tblinfo [ i ] . relreplident = * ( PQgetvalue ( res , i , i_relreplident ) ) ;
@ -14412,6 +14426,10 @@ dumpTableSchema(Archive *fout, DumpOptions *dopt, TableInfo *tbinfo)
appendPQExpBuffer ( q , " \n ALTER TABLE ONLY %s SET WITH OIDS; \n " ,
fmtId ( tbinfo - > dobj . name ) ) ;
if ( tbinfo - > forcerowsec )
appendPQExpBuffer ( q , " \n ALTER TABLE ONLY %s FORCE ROW LEVEL SECURITY; \n " ,
fmtId ( tbinfo - > dobj . name ) ) ;
if ( dopt - > binary_upgrade )
binary_upgrade_extension_member ( q , & tbinfo - > dobj , labelq - > data ) ;