ERRCODE_READ_ONLY_SQL_TRANSACTION.v1.patch

text/x-patch

Filename: ERRCODE_READ_ONLY_SQL_TRANSACTION.v1.patch
Type: text/x-patch
Part: 0
Message: ERRCODE_READ_ONLY_SQL_TRANSACTION

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: unified
Series: patch v1
File+
src/backend/access/transam/varsup.c 3 1
src/backend/access/transam/xlog.c 3 1
diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c
index 8c045fb..62031eb 100644
--- a/src/backend/access/transam/varsup.c
+++ b/src/backend/access/transam/varsup.c
@@ -60,7 +60,9 @@ GetNewTransactionId(bool isSubXact)
 
 	/* safety check, we should never get this far in a HS slave */
 	if (RecoveryInProgress())
-		elog(ERROR, "cannot assign TransactionIds during recovery");
+		ereport(ERROR,
+				(errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
+				 errmsg("cannot assign TransactionIds during recovery")));
 
 	LWLockAcquire(XidGenLock, LW_EXCLUSIVE);
 
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 19ef66b..8ac194a 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -713,7 +713,9 @@ XLogInsert(RmgrId rmid, uint8 info, XLogRecData *rdata)
 
 	/* cross-check on whether we should be here or not */
 	if (!XLogInsertAllowed())
-		elog(ERROR, "cannot make new WAL entries during recovery");
+		ereport(ERROR,
+				(errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
+				 errmsg("cannot make new WAL entries during recovery")));
 
 	/* info's high bits are reserved for use by me */
 	if (info & XLR_INFO_MASK)