pg_dump transaction's read-only mode - Mailing list pgsql-hackers

From Pavan Deolasee
Subject pg_dump transaction's read-only mode
Date
Msg-id CABOikdMUwdhR6nbFqMdAuhacNJ-mRS7=++DCmO5O_LfvSZTZow@mail.gmail.com
Whole thread Raw
List pgsql-hackers
I'm looking at the following code in pg_dump.c

/*    * Start transaction-snapshot mode transaction to dump consistent data.    */   ExecuteSqlStatement(fout,
"BEGIN");  if (fout->remoteVersion >= 90100)   {       if (serializable_deferrable)           ExecuteSqlStatement(fout,
                             "SET TRANSACTION ISOLATION LEVEL "                               "SERIALIZABLE, READ ONLY,
DEFERRABLE");      else           ExecuteSqlStatement(fout,                               "SET TRANSACTION ISOLATION
LEVEL"                               "REPEATABLE READ");   }   else       ExecuteSqlStatement(fout,
     "SET TRANSACTION ISOLATION LEVEL SERIALIZABLE");
 

Is there a reason why we do not the RR transaction as READ ONLY above
? I understand that unlike in the case of SERIALIZABLE transaction, it
may not have any performance impact. But isn't it a good practice
anyways to guard against any unintended database modification while
taking a dump or a safe guard against any future optimizations for
read-only transactions ? More so because RR seems to the default for
pg_dump

Thanks,
Pavan



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: 9.2rc1 produces incorrect results
Next
From: Daniel Farina
Date:
Subject: Re: txid failed epoch increment, again, aka 6291