@ -2777,7 +2777,7 @@ dumpBlobs(Archive *fout, void *arg)
void
void
getRowSecurity ( Archive * fout , TableInfo tblinfo [ ] , int numTables )
getRowSecurity ( Archive * fout , TableInfo tblinfo [ ] , int numTables )
{
{
PQExpBuffer query = createPQExpBuffer ( ) ;
PQExpBuffer query ;
PGresult * res ;
PGresult * res ;
RowSecurityInfo * rsinfo ;
RowSecurityInfo * rsinfo ;
int i_oid ;
int i_oid ;
@ -2792,6 +2792,8 @@ getRowSecurity(Archive *fout, TableInfo tblinfo[], int numTables)
if ( fout - > remoteVersion < 90500 )
if ( fout - > remoteVersion < 90500 )
return ;
return ;
query = createPQExpBuffer ( ) ;
for ( i = 0 ; i < numTables ; i + + )
for ( i = 0 ; i < numTables ; i + + )
{
{
TableInfo * tbinfo = & tblinfo [ i ] ;
TableInfo * tbinfo = & tblinfo [ i ] ;
@ -2809,7 +2811,7 @@ getRowSecurity(Archive *fout, TableInfo tblinfo[], int numTables)
* We represent RLS enabled on a table by creating RowSecurityInfo
* We represent RLS enabled on a table by creating RowSecurityInfo
* object with an empty policy .
* object with an empty policy .
*/
*/
if ( tbinfo - > has rowsec)
if ( tbinfo - > rowsec )
{
{
/*
/*
* Note : use tableoid 0 so that this object won ' t be mistaken for
* Note : use tableoid 0 so that this object won ' t be mistaken for
@ -4534,7 +4536,7 @@ getTables(Archive *fout, int *numTables)
int i_relhastriggers ;
int i_relhastriggers ;
int i_relhasindex ;
int i_relhasindex ;
int i_relhasrules ;
int i_relhasrules ;
int i_relhas rowsec ;
int i_relrowsec ;
int i_relhasoids ;
int i_relhasoids ;
int i_relfrozenxid ;
int i_relfrozenxid ;
int i_relminmxid ;
int i_relminmxid ;
@ -4588,7 +4590,7 @@ getTables(Archive *fout, int *numTables)
" (%s c.relowner) AS rolname, "
" (%s c.relowner) AS rolname, "
" c.relchecks, c.relhastriggers, "
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" c.relhas rowsecurity, "
" c.relrowsecurity, "
" c.relfrozenxid, c.relminmxid, tc.oid AS toid, "
" c.relfrozenxid, c.relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relminmxid AS tminmxid, "
" tc.relminmxid AS tminmxid, "
@ -4629,7 +4631,7 @@ getTables(Archive *fout, int *numTables)
" (%s c.relowner) AS rolname, "
" (%s c.relowner) AS rolname, "
" c.relchecks, c.relhastriggers, "
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" c.relfrozenxid, c.relminmxid, tc.oid AS toid, "
" c.relfrozenxid, c.relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relminmxid AS tminmxid, "
" tc.relminmxid AS tminmxid, "
@ -4670,7 +4672,7 @@ getTables(Archive *fout, int *numTables)
" (%s c.relowner) AS rolname, "
" (%s c.relowner) AS rolname, "
" c.relchecks, c.relhastriggers, "
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" c.relfrozenxid, c.relminmxid, tc.oid AS toid, "
" c.relfrozenxid, c.relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relminmxid AS tminmxid, "
" tc.relminmxid AS tminmxid, "
@ -4711,7 +4713,7 @@ getTables(Archive *fout, int *numTables)
" (%s c.relowner) AS rolname, "
" (%s c.relowner) AS rolname, "
" c.relchecks, c.relhastriggers, "
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relfrozenxid AS tfrozenxid, "
" 0 AS tminmxid, "
" 0 AS tminmxid, "
@ -4750,7 +4752,7 @@ getTables(Archive *fout, int *numTables)
" (%s c.relowner) AS rolname, "
" (%s c.relowner) AS rolname, "
" c.relchecks, c.relhastriggers, "
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relfrozenxid AS tfrozenxid, "
" 0 AS tminmxid, "
" 0 AS tminmxid, "
@ -4788,7 +4790,7 @@ getTables(Archive *fout, int *numTables)
" (%s c.relowner) AS rolname, "
" (%s c.relowner) AS rolname, "
" c.relchecks, c.relhastriggers, "
" c.relchecks, c.relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relfrozenxid AS tfrozenxid, "
" 0 AS tminmxid, "
" 0 AS tminmxid, "
@ -4826,7 +4828,7 @@ getTables(Archive *fout, int *numTables)
" (%s c.relowner) AS rolname, "
" (%s c.relowner) AS rolname, "
" c.relchecks, (c.reltriggers <> 0) AS relhastriggers, "
" c.relchecks, (c.reltriggers <> 0) AS relhastriggers, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" c.relhasindex, c.relhasrules, c.relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" c.relfrozenxid, 0 AS relminmxid, tc.oid AS toid, "
" tc.relfrozenxid AS tfrozenxid, "
" tc.relfrozenxid AS tfrozenxid, "
" 0 AS tminmxid, "
" 0 AS tminmxid, "
@ -4864,7 +4866,7 @@ getTables(Archive *fout, int *numTables)
" (%s relowner) AS rolname, "
" (%s relowner) AS rolname, "
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relhasindex, relhasrules, relhasoids, "
" relhasindex, relhasrules, relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -4901,7 +4903,7 @@ getTables(Archive *fout, int *numTables)
" (%s relowner) AS rolname, "
" (%s relowner) AS rolname, "
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relhasindex, relhasrules, relhasoids, "
" relhasindex, relhasrules, relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -4934,7 +4936,7 @@ getTables(Archive *fout, int *numTables)
" (%s relowner) AS rolname, "
" (%s relowner) AS rolname, "
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relhasindex, relhasrules, relhasoids, "
" relhasindex, relhasrules, relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -4962,7 +4964,7 @@ getTables(Archive *fout, int *numTables)
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relhasindex, relhasrules, "
" relhasindex, relhasrules, "
" 't'::bool AS relhasoids, "
" 't'::bool AS relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -5000,7 +5002,7 @@ getTables(Archive *fout, int *numTables)
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relchecks, (reltriggers <> 0) AS relhastriggers, "
" relhasindex, relhasrules, "
" relhasindex, relhasrules, "
" 't'::bool AS relhasoids, "
" 't'::bool AS relhasoids, "
" 'f'::bool AS relhas rowsecurity, "
" 'f'::bool AS relrowsecurity, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS relfrozenxid, 0 AS relminmxid, "
" 0 AS toid, "
" 0 AS toid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
" 0 AS tfrozenxid, 0 AS tminmxid, "
@ -5048,7 +5050,7 @@ getTables(Archive *fout, int *numTables)
i_relhastriggers = PQfnumber ( res , " relhastriggers " ) ;
i_relhastriggers = PQfnumber ( res , " relhastriggers " ) ;
i_relhasindex = PQfnumber ( res , " relhasindex " ) ;
i_relhasindex = PQfnumber ( res , " relhasindex " ) ;
i_relhasrules = PQfnumber ( res , " relhasrules " ) ;
i_relhasrules = PQfnumber ( res , " relhasrules " ) ;
i_relhas rowsec = PQfnumber ( res , " relhas rowsecurity " ) ;
i_relrowsec = PQfnumber ( res , " relrowsecurity " ) ;
i_relhasoids = PQfnumber ( res , " relhasoids " ) ;
i_relhasoids = PQfnumber ( res , " relhasoids " ) ;
i_relfrozenxid = PQfnumber ( res , " relfrozenxid " ) ;
i_relfrozenxid = PQfnumber ( res , " relfrozenxid " ) ;
i_relminmxid = PQfnumber ( res , " relminmxid " ) ;
i_relminmxid = PQfnumber ( res , " relminmxid " ) ;
@ -5100,7 +5102,7 @@ getTables(Archive *fout, int *numTables)
tblinfo [ i ] . hasindex = ( strcmp ( PQgetvalue ( res , i , i_relhasindex ) , " t " ) = = 0 ) ;
tblinfo [ i ] . hasindex = ( strcmp ( PQgetvalue ( res , i , i_relhasindex ) , " t " ) = = 0 ) ;
tblinfo [ i ] . hasrules = ( strcmp ( PQgetvalue ( res , i , i_relhasrules ) , " t " ) = = 0 ) ;
tblinfo [ i ] . hasrules = ( strcmp ( PQgetvalue ( res , i , i_relhasrules ) , " t " ) = = 0 ) ;
tblinfo [ i ] . hastriggers = ( strcmp ( PQgetvalue ( res , i , i_relhastriggers ) , " t " ) = = 0 ) ;
tblinfo [ i ] . hastriggers = ( strcmp ( PQgetvalue ( res , i , i_relhastriggers ) , " t " ) = = 0 ) ;
tblinfo [ i ] . has rowsec = ( strcmp ( PQgetvalue ( res , i , i_relhas rowsec ) , " t " ) = = 0 ) ;
tblinfo [ i ] . rowsec = ( strcmp ( PQgetvalue ( res , i , i_relrowsec ) , " t " ) = = 0 ) ;
tblinfo [ i ] . hasoids = ( strcmp ( PQgetvalue ( res , i , i_relhasoids ) , " 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 ] . relispopulated = ( strcmp ( PQgetvalue ( res , i , i_relispopulated ) , " t " ) = = 0 ) ;
tblinfo [ i ] . relreplident = * ( PQgetvalue ( res , i , i_relreplident ) ) ;
tblinfo [ i ] . relreplident = * ( PQgetvalue ( res , i , i_relreplident ) ) ;