Message-ID: From: "davecramer (@davecramer)" To: "pgjdbc/pgjdbc" Date: Sat, 30 May 2026 15:56:58 +0000 Subject: [pgjdbc/pgjdbc] PR #4119: refactor: replace literal chars with PgMessageType constants List-Id: X-GitHub-Additions: 12 X-GitHub-Author-Id: 406518 X-GitHub-Author-Login: davecramer X-GitHub-Base: master X-GitHub-Changed-Files: 2 X-GitHub-Commits: 1 X-GitHub-Deletions: 7 X-GitHub-Draft: true X-GitHub-Head-Branch: fix_message_types X-GitHub-Head-SHA: 9aaa849cb7b2ca28bd599eb80394ea21f0b6dc74 X-GitHub-Issue: 4119 X-GitHub-Merge-SHA: 71353529583b400d3f7c22dafa543d8ed0f35042 X-GitHub-Repo: pgjdbc/pgjdbc X-GitHub-State: open X-GitHub-Type: pull_request X-GitHub-Url: https://github.com/pgjdbc/pgjdbc/pull/4119 Content-Type: text/plain; charset=utf-8 Replace raw character literals in QueryExecutorImpl with named constants from PgMessageType for readability and consistency: - 'A', 'E', 'N' in notification polling and processResults - 'I', 'T', 'E' transaction status in receiveRFQ Add TRANSACTION_IDLE, TRANSACTION_OPEN, TRANSACTION_FAILED constants. diff --git a/pgjdbc/src/main/java/org/postgresql/core/PgMessageType.java b/pgjdbc/src/main/java/org/postgresql/core/PgMessageType.java index 3c2bfb76fb..2a6a37934c 100644 --- a/pgjdbc/src/main/java/org/postgresql/core/PgMessageType.java +++ b/pgjdbc/src/main/java/org/postgresql/core/PgMessageType.java @@ -58,4 +58,9 @@ public class PgMessageType { public static final byte COPY_DONE = 'c'; public static final byte COPY_DATA = 'd'; + // ReadyForQuery transaction status indicators + public static final byte TRANSACTION_IDLE = 'I'; + public static final byte TRANSACTION_OPEN = 'T'; + public static final byte TRANSACTION_FAILED = 'E'; + } diff --git a/pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java b/pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java index 304a55f9cc..9afb9a3788 100644 --- a/pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java +++ b/pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java @@ -935,14 +935,14 @@ public void processNotifies(int timeoutMillis) throws SQLException { setSocketTimeout(0); // Don't timeout after first char } switch (c) { - case 'A': // Asynchronous Notify + case PgMessageType.ASYNCHRONOUS_NOTICE: receiveAsyncNotify(); timeoutMillis = -1; continue; - case 'E': + case PgMessageType.ERROR_RESPONSE: // Error Response (response to pretty much everything; backend then skips until Sync) throw receiveErrorResponse(); - case 'N': // Notice Response (warnings / info) + case PgMessageType.NOTICE_RESPONSE: // warnings / info SQLWarning warning = receiveNoticeResponse(); addWarning(warning); if (useTimeout) { @@ -2372,7 +2372,7 @@ protected void processResults(ResultHandler handler, int flags, boolean adaptive while (!endQuery) { c = pgStream.receiveChar(); switch (c) { - case 'A': // Asynchronous Notify + case PgMessageType.ASYNCHRONOUS_NOTICE: receiveAsyncNotify(); break; @@ -3002,15 +3002,15 @@ private void receiveRFQ() throws IOException { // Update connection state. switch (tStatus) { - case 'I': + case PgMessageType.TRANSACTION_IDLE: transactionFailCause = null; setTransactionState(TransactionState.IDLE); break; - case 'T': + case PgMessageType.TRANSACTION_OPEN: transactionFailCause = null; setTransactionState(TransactionState.OPEN); break; - case 'E': + case PgMessageType.TRANSACTION_FAILED: setTransactionState(TransactionState.FAILED); break; default: