pgjdbc/pgjdbc GitHub issues and pull requests (mirror)  
help / color / mirror / Atom feed
[pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
13+ messages / 4 participants
[nested] [flat]

* [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-26 14:00  "vlsi (@vlsi)" <[email protected]>
  0 siblings, 0 replies; 13+ messages in thread

From: vlsi (@vlsi) @ 2026-05-26 14:00 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

## What

`PGXAConnection` no longer saves and restores the JDBC `autoCommit` flag in any `XAResource` method. Every XA-protocol command is sent through `BaseConnection.execSQLUpdate` / `execSQLQuery`, which already pass `QueryExecutor.QUERY_SUPPRESS_BEGIN`. pgjdbc never prepends a `BEGIN` of its own around XA SQL, and the caller's `autoCommit` value is invariant across every `XAResource` call.

### Lifecycle mapping

| `XAResource` method | Wire command | How it is sent |
|---|---|---|
| `start(xid, TMNOFLAGS)` | `BEGIN` | `execSQLUpdate` with `QUERY_SUPPRESS_BEGIN` |
| `start(xid, TMJOIN)` | none | branch is already open; only XA state changes |
| `end(xid, …)` | none | branch is suspended; only XA state changes |
| `prepare(xid)` | `PREPARE TRANSACTION 'gid'` | `execSQLUpdate` with `QUERY_SUPPRESS_BEGIN` |
| `commit(xid, true)` | `COMMIT` | `execSQLUpdate` with `QUERY_SUPPRESS_BEGIN` |
| `commit(xid, false)` | `COMMIT PREPARED 'gid'` | `execSQLUpdate` with `QUERY_SUPPRESS_BEGIN` |
| `rollback(xid)` (current branch) | `ROLLBACK` | `execSQLUpdate` with `QUERY_SUPPRESS_BEGIN` |
| `rollback(xid)` (prepared) | `ROLLBACK PREPARED 'gid'` | `execSQLUpdate` with `QUERY_SUPPRESS_BEGIN` |
| `recover(TMSTARTRSCAN)` | `SELECT … FROM pg_prepared_xacts …` | `execSQLQuery` with `QUERY_SUPPRESS_BEGIN` |

`PGXAConnection.getConnection()` is unchanged. It still calls `setAutoCommit(true)` when `state == IDLE`, because that path returns a JDBC handle in the JDBC default state and does not manage the XA protocol.

## Why

The previous code saved and restored `autoCommit` around every `XAResource` call. The restore was inconsistent across methods and missing on failure paths. This broke recovery on managed datasources that pool connections with `autoCommit=false` (TomEE, WildFly, WebSphere Liberty).

The concrete failure: `recover()` ran `SELECT … FROM pg_prepared_xacts` through a plain `Statement`. On an `autoCommit=false` connection, pgjdbc auto-prepended a `BEGIN`, so `transactionState` was left `OPEN`. The next `commit(xid, false)` then failed with `Not implemented: 2nd phase commit must be issued using an idle connection`, aborting the recovery loop.

The simpler patch — wrap the `SELECT` in `setAutoCommit(true)` / `setAutoCommit(restored)` — was rejected. It would silently commit a pending local transaction on the same connection, and JTA 1.2 §3.4 forbids exactly that side effect. The full rationale is in the commit message.

## Resolved issues

This PR also fixes two related reports against the same Narayana + deferred-FK reproducer (`fladdimir/quarkus-postgres-2pc-test`):

- **Fixes #3123** — Narayana raises `HeuristicMixedException` after a failed `prepare()`, because the follow-up `rollback(xid)` returns `XAER_RMERR`.
- **Fixes #3153** — pgjdbc-internal diagnosis of the same path: `PGXAConnection.rollback(Xid)` should not return `XAER_RMERR` after a failed `prepare()`.

Both share root cause: pre-fix `prepare()` mutated `state` and `currentXid` **before** sending `PREPARE TRANSACTION`. When the SQL then failed (e.g. on a deferred FK), the driver thought the branch was already prepared; the follow-up `rollback(xid)` took the prepared-branch path and issued `ROLLBACK PREPARED` against a gid the server had never seen. After this PR, `prepare()` mutates state only on success; the follow-up `rollback(xid)` takes the active-branch path and issues a plain `ROLLBACK`, which succeeds cleanly (the server has already rolled back the transaction on PREPARE failure, so the `ROLLBACK` is a no-op with warning). `rollback(xid)` returns `XA_OK`, and Narayana no longer escalates to `HeuristicMixedException`.

The test `prepareFailure_leavesBranchRollbackable` directly exercises this scenario.

## Observable behaviour changes

These are flagged in `CHANGELOG.md` under `Changed`:

- `ConnectionHandler` now rejects `setAutoCommit(false)` during an active XA branch, where it used to be a permissive no-op. It also rejects `setSavepoint(...)`. The previous guard misspelled the method as `setSavePoint`, so savepoints silently went through. Both align with JTA 1.2 §3.4.
- `commitPrepared` and `rollback`-of-prepared return `XAER_RMFAIL` instead of `XAER_RMERR` when the connection arrives with a non-idle `TransactionState`. Transaction managers (Geronimo, Narayana, Atomikos) treat `XAER_RMFAIL` as retryable on a fresh `XAResource` and no longer abandon the prepared transaction.

## How to verify

```bash
./gradlew :postgresql:test --tests 'org.postgresql.test.xa.XADataSourceTest'
```

38 tests pass: 29 existing assertions plus 9 new tests.

New tests in `XADataSourceTest`:

1. `recover_withAutoCommitFalse_doesNotOpenTransaction`. The original repro: `recover()` on an `autoCommit=false` connection, followed by `commit(xid, false)`.
2. `recover_withUserTransactionInFlight_doesNotCommitUserWork`. `recover()` runs inside the caller's open transaction without committing it.
3. `recover_inFailedTransaction_failsWithRMERR`. `recover()` on a `FAILED` transaction surfaces `XAER_RMERR` without resetting the caller.
4. `commitPrepared_failsCleanlyOnDirtyConnection`. Expects `XAER_RMFAIL`; the caller's transaction is left intact.
5. `rollbackPrepared_failsCleanlyOnDirtyConnection`. Symmetric to (4).
6. `xaMethods_doNotChangeAutoCommit`. Invariance check on the success and failure paths.
7. `prepareFailure_leavesBranchRollbackable`. After a failed `PREPARE TRANSACTION` (deferred FK violation), `rollback(xid)` takes the active-branch path and issues `ROLLBACK`, not `ROLLBACK PREPARED`.
8. `connectionHandler_rejectsBothAutoCommitDirections`. Both `setAutoCommit(true)` and `setAutoCommit(false)` are rejected during an active XA branch.
9. `connectionHandler_rejectsSetSavepoint`. Both `setSavepoint()` and `setSavepoint(name)` are rejected.

The existing `autoCommit()` test is updated to assert the new invariant (`autoCommit` is left alone by `XAResource` methods).

### Integration scenarios for follow-up validation

These do not run in CI but match the original failing scenario:

- TomEE 9 with a `JtaManaged=true` datasource, `defaultAutoCommit=false`, and one prepared transaction left in `pg_prepared_xacts` from a previous run terminated by `kill -9`. Recovery completes on startup; the prepared transaction disappears from the catalogue.
- Narayana or Atomikos JTA driving 2-phase commit across two PostgreSQL datasources, then a crash-restart cycle. Recovery converges without manual `ROLLBACK PREPARED` from a DBA.

## Notes for reviewers

- The `localAutoCommitMode` field disappears. No subclass in this codebase relies on it; downstream forks of `PGXAConnection` should treat this as a breaking change at the subclass level.
- `PgConnection.commit()` and `PgConnection.rollback()` throw when `autoCommit=true`, so the new code sends `COMMIT` / `ROLLBACK` through `execSQLUpdate` rather than the JDBC entry points.

## Follow-ups (out of scope)

- Audit `PGPooledConnection` for the same save/restore-of-autoCommit pattern.
- Decide whether `start(TMNOFLAGS)` should reject a connection that arrives with `transactionState != IDLE`, or silently roll back the dangling local transaction. JTA does not specify; a short note on the `XAResource` Javadoc would resolve the ambiguity.

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c0270c0cca..4137b06225 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,8 +9,13 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
 * feat: invalidate the prepared-statement cache after CREATE/DROP/ALTER so callers no longer trip on "cached plan must not change result type" without opting into `autosave=ALWAYS`. Controlled by the new `flushCacheOnDdl` connection property (default `true`); set to `false` for the prior behaviour.
 
 ### Changed
+* chore: `PGXAConnection.ConnectionHandler` now rejects `setAutoCommit(false)` and `setSavepoint(...)` during an active XA branch, in addition to the long-rejected `setAutoCommit(true)` / `commit()` / `rollback()`. The `setSavepoint` rejection was already meant to be in place but the guard misspelled the method name as `setSavePoint`, so savepoints silently went through. Both changes bring the proxy in line with JTA 1.2 §3.4.
+* chore: `commitPrepared` / `rollback`-of-prepared now return `XAER_RMFAIL` instead of `XAER_RMERR` when the underlying connection is left in a non-idle `TransactionState`. Transaction managers (Geronimo, Narayana, Atomikos) treat `XAER_RMFAIL` as retryable on a fresh `XAResource`; the prepared transaction is no longer abandoned.
+
 ### Fixed
 * fix: getCharacterStream wraps String in StringReader [PR #4063](https://github.com/pgjdbc/pgjdbc/pull/4063)
+* fix: `PGXAConnection` no longer saves and restores the underlying connection's JDBC `autoCommit` flag. All XA-protocol SQL (`BEGIN`, `PREPARE TRANSACTION`, `COMMIT`, `ROLLBACK`, `COMMIT PREPARED`, `ROLLBACK PREPARED`, the `recover()` SELECT) is sent through `QUERY_SUPPRESS_BEGIN`, so the caller's `autoCommit` value is invariant across every `XAResource` call. Fixes the "2nd phase commit must be issued using an idle connection" failure during recovery on managed datasources that pool connections with `autoCommit=false` (TomEE, WildFly, WebSphere Liberty).
+* fix: `PGXAConnection.prepare()` now mutates XA state only after `PREPARE TRANSACTION` succeeds. A failed `PREPARE` previously left the driver thinking the branch was already prepared, so the follow-up `rollback(xid)` tried `ROLLBACK PREPARED` against a non-existent gid and returned `XAER_RMERR`. Transaction managers (Narayana) escalated this to `HeuristicMixedException`. With the fix, `rollback(xid)` takes the active-branch path and issues a plain `ROLLBACK`, which the server accepts cleanly. Fixes [Issue #3153](https://github.com/pgjdbc/pgjdbc/issues/3153), [Issue #3123](https://github.com/pgjdbc/pgjdbc/issues/3123).
 
 ## [42.7.11] (2026-04-28)
 
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/bg.po b/pgjdbc/src/main/java/org/postgresql/translation/bg.po
index f015a0b3b1..a41ae9a765 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/bg.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/bg.po
@@ -1942,37 +1942,45 @@ msgstr "SQL статус на сървъра: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Методите за управление на транзакции setAutoCommit, commit, rollback и "
+"setSavepoint не са разрешени, докато XA транзакция е активна."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr "Невалидни флагове {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr "xid не може да бъде null"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
-msgstr "Връзката е заета с друга транзакция"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
+msgstr ""
+"Връзката вече е свързана с активен XA клон. Завършете текущия клон, преди да "
+"започнете нов. start xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
 msgstr "спиране / започване не се поддържа за момента"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
@@ -1981,114 +1989,140 @@ msgstr ""
 "Транзакция в транзакция не се поддържа за момента. xid={0}, currentXid={1}, "
 "state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr "Грешка при изключване на autocommit"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Грешка при отваряне на транзакция. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
-"опита да извика end без съответстващо извикване на start. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() е извикан без съответстващо извикване на start(). end xid={0}, "
+"currentXid={1}, state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
+#, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
-"Грешка при възстановяване на състоянието преди подготвена транзакция. "
-"rollback xid={0}, preparedXid={1}, currentXid={2}"
+"Транзакцията вече е подготвена на тази връзка. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "Текущата връзка няма свързан xid. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"Невъзможна комбинация: Prepare трябва да бъде издадено чрез използване на "
-"същата връзка, при която е започната транзакцията. currentXid={0}, prepare "
-"xid={1}"
+"Prepare трябва да бъде издаден на връзката, на която е започнат клонът. "
+"Транзакция в транзакция не се поддържа. prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr "Prepare извикано преди края. prepare xid={0}, state={1}"
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "Prepare е извикан преди end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr "Грешка при подготвяне на транзакция. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
-msgstr "Грешка при възстановяване"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Грешка при възстановяване. flag={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+"Не може да се направи rollback на подготвена транзакция, докато на тази "
+"връзка тече локална транзакция. Първо направете commit или rollback на "
+"локалната транзакция. rollback xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
+#, java-format
+msgid ""
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"Грешка при възстановяване на състоянието преди подготвена транзакция. "
-"rollback xid={0}, preparedXid={1}, currentXid={2}"
+"Грешка при възстановяване на състоянието на транзакция. rollback xid={0}, "
+"preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"Едно-фазов commit е извикан за xid {0}, но връзката е подготвена с xid {1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
-"Невъзможна комбинация: едно-фазов commit трябва да бъде издаден чрез "
-"използване на същата връзка, при която е започнал"
+"Едно-фазов commit трябва да бъде издаден на връзката, на която е започнат "
+"клонът. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "Едно-фазов commit с непознат xid. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr "commit извикан преди end. commit xid={0}, state={1}"
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "commit() е извикан преди end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr "Грешка при едно-фазов commit. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
-"Невъзможна комбинация: втората фаза на commit задължително трябва да бъде "
-"издадена при свободна връзка. commit xid={0}, currentXid={1}, state={2}, "
-"transactionState={3}"
+"Втората фаза на commit не може да бъде издадена, докато на тази връзка е "
+"активен XA клон. commit xid={0}, currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
+#, java-format
+msgid ""
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
+msgstr ""
+"Втората фаза на commit на подготвена транзакция не може да бъде издадена, "
+"докато на тази връзка тече локална транзакция. Първо направете commit или "
+"rollback на локалната транзакция. commit xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
+#, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"Грешка при възстановяване на състоянието преди подготвена транзакция. commit "
-"xid={0}, preparedXid={1}, currentXid={2}"
+"Грешка при commit на подготвена транзакция. commit xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr "Евристичен commit или rollback не се поддържа. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/cs.po b/pgjdbc/src/main/java/org/postgresql/translation/cs.po
index f46ede7b15..c8a9b9cc32 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/cs.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/cs.po
@@ -1870,135 +1870,188 @@ msgstr "Server SQLState: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Metody řízení transakce setAutoCommit, commit, rollback a setSavepoint "
+"nejsou povoleny, pokud je aktivní XA transakce."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
+#, java-format
 msgid "Invalid flags {0}"
-msgstr "Vadná délka proudu {0}."
+msgstr "Neplatné příznaky {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
-msgstr ""
+msgstr "xid nesmí být null"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 msgstr ""
+"Připojení je již přiřazeno k aktivní XA větvi. Před zahájením nové větve "
+"ukončete tu stávající. start xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
-msgstr ""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
+msgstr "Suspend/resume není implementováno"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
 "supported. xid={0}, currentXid={1}, state={2}, flags={3}"
 msgstr ""
+"Byl požadován neplatný stav protokolu. Pokus o prokládání transakcí není "
+"podporován. xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr ""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Chyba při otevírání transakce. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
+"end() bylo zavoláno bez odpovídajícího start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
+"Transakce již byla na tomto připojení připravena. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "Aktuální připojení nemá přiřazené xid. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
+"Prepare musí být vydáno na připojení, které větev zahájilo. Prokládání "
+"transakcí není podporováno. prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr ""
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "Prepare bylo zavoláno před end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
-msgstr ""
+msgstr "Chyba při přípravě transakce. prepare xid={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Chyba při obnově. flag={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
 msgstr ""
+"Nelze odvolat připravenou transakci, dokud na tomto připojení probíhá "
+"lokální transakce. Nejprve potvrďte nebo odvolejte lokální transakci. "
+"rollback xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
+"Chyba při odvolávání transakce. rollback xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"Jednofázové potvrzení bylo zavoláno pro xid {0}, ale připojení bylo "
+"připraveno s xid {1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
+"Jednofázové potvrzení musí být vydáno na připojení, které větev zahájilo. "
+"commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "Jednofázové potvrzení s neznámým xid. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr ""
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "commit() bylo zavoláno před end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
+msgstr "Chyba při jednofázovém potvrzení. commit xid={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
+msgid ""
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
+"Druhou fázi potvrzení nelze vydat, pokud je na tomto připojení aktivní XA "
+"větev. commit xid={0}, currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
 msgstr ""
+"Nelze provést druhou fázi potvrzení připravené transakce, dokud na tomto "
+"připojení probíhá lokální transakce. Nejprve potvrďte nebo odvolejte lokální "
+"transakci. commit xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
+"Chyba při potvrzování připravené transakce. commit xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
-msgstr ""
+msgstr "Heuristické commit/rollback není podporováno. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/de.po b/pgjdbc/src/main/java/org/postgresql/translation/de.po
index 1a19a706d3..854ce903a8 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/de.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/de.po
@@ -1993,142 +1993,190 @@ msgstr "Server SQLState: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Die Transaktionssteuerungsmethoden setAutoCommit, commit, rollback und "
+"setSavepoint sind nicht erlaubt, solange eine XA-Transaktion aktiv ist."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
+#, java-format
 msgid "Invalid flags {0}"
-msgstr "Ungültige Flags"
+msgstr "Ungültige Flags {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr "Die xid darf nicht null sein."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
-msgstr "Die Verbindung ist derzeit mit einer anderen Transaktion beschäftigt."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
+msgstr ""
+"Die Verbindung ist bereits mit einem aktiven XA-Zweig verknüpft. Beenden Sie "
+"den aktuellen Zweig, bevor Sie einen neuen starten. start xid={0}, "
+"currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
 msgstr "Anhalten/Fortsetzen ist nicht implementiert."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
 "supported. xid={0}, currentXid={1}, state={2}, flags={3}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr "Fehler beim Abschalten von Autocommit."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Beim Öffnen der Transaktion trat ein Fehler auf. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
+#, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
-"Es wurde versucht, ohne dazugehörigen ''start''-Aufruf ''end'' aufzurufen."
+"end() wurde ohne zugehörigen start()-Aufruf aufgerufen. end xid={0}, "
+"currentXid={1}, state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
+"Auf dieser Verbindung wurde bereits eine Transaktion vorbereitet. prepare "
+"xid={0}, preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "Mit der aktuellen Verbindung ist keine xid verknüpft. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
+#, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"Nicht implementiert: ''Prepare'' muss über die selbe Verbindung abgesetzt "
-"werden, die die Transaktion startete."
+"Prepare muss über die Verbindung abgesetzt werden, die den Zweig gestartet "
+"hat. Verschachtelte Transaktionen werden nicht unterstützt. prepare xid={0}, "
+"currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
-#, fuzzy, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr "''Prepare'' wurde vor ''end'' aufgerufen."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
+#, java-format
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "Prepare wurde vor end() aufgerufen. prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
+#, java-format
 msgid "Error preparing transaction. prepare xid={0}"
-msgstr "Beim Vorbereiten der Transaktion trat ein Fehler auf."
+msgstr "Beim Vorbereiten der Transaktion trat ein Fehler auf. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
-msgstr "Beim Wiederherstellen trat ein Fehler auf."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Beim Wiederherstellen trat ein Fehler auf. flag={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+"Eine vorbereitete Transaktion kann nicht zurückgerollt werden, solange auf "
+"dieser Verbindung eine lokale Transaktion läuft. Bestätigen oder rollen Sie "
+"zuerst die lokale Transaktion zurück. rollback xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
+#, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
+"currentXid={2}"
+msgstr ""
+"Fehler beim Zurückrollen der Transaktion. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
-msgstr "Fehler beim Rollback einer vorbereiteten Transaktion."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"Einphasige Bestätigung wurde für xid {0} aufgerufen, die Verbindung wurde "
+"jedoch mit xid {1} vorbereitet."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
-"Nicht implementiert: Die einphasige Bestätigung muss über die selbe "
-"Verbindung abgewickelt werden, die verwendet wurde, um sie zu beginnen."
+"Die einphasige Bestätigung muss über die Verbindung abgesetzt werden, die "
+"den Zweig gestartet hat. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
 msgstr ""
+"Einphasige Bestätigung mit unbekannter xid. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
-#, fuzzy, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr "''Commit'' wurde vor ''end'' aufgerufen."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
+#, java-format
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "commit() wurde vor end() aufgerufen. commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
+#, java-format
 msgid "Error during one-phase commit. commit xid={0}"
-msgstr "Bei der einphasigen Bestätigung trat ein Fehler auf."
+msgstr "Bei der einphasigen Bestätigung trat ein Fehler auf. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
-"Nicht implementiert: Die zweite Bestätigungsphase muss über eine im Leerlauf "
-"befindliche Verbindung abgewickelt werden."
+"Die zweite Bestätigungsphase kann nicht abgesetzt werden, solange auf dieser "
+"Verbindung ein XA-Zweig aktiv ist. commit xid={0}, currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
+#, java-format
+msgid ""
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
+msgstr ""
+"Die zweite Bestätigungsphase einer vorbereiteten Transaktion kann nicht "
+"ausgeführt werden, solange auf dieser Verbindung eine lokale Transaktion "
+"läuft. Bestätigen oder rollen Sie zuerst die lokale Transaktion zurück. "
+"commit xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
+#, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
-msgstr "Fehler beim Rollback einer vorbereiteten Transaktion."
+msgstr ""
+"Fehler beim Bestätigen einer vorbereiteten Transaktion. commit xid={0}, "
+"preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
+#, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
-msgstr "Heuristisches Commit/Rollback wird nicht unterstützt."
+msgstr "Heuristisches Commit/Rollback wird nicht unterstützt. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/es.po b/pgjdbc/src/main/java/org/postgresql/translation/es.po
index bf5c82cd56..236a0615c5 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/es.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/es.po
@@ -1863,136 +1863,185 @@ msgstr "SQLState del servidor: {0}."
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Los métodos de control de transacción setAutoCommit, commit, rollback y "
+"setSavepoint no están permitidos mientras una transacción XA está activa."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 msgstr ""
+"La conexión ya está asociada a una rama XA activa. Finalice la rama actual "
+"antes de iniciar una nueva. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-#, fuzzy
-msgid "suspend/resume not implemented"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
 msgstr "Este método aún no ha sido implementado."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
 "supported. xid={0}, currentXid={1}, state={2}, flags={3}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr ""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Error al abrir la transacción. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
+"Se llamó a end() sin una llamada start() correspondiente. end xid={0}, "
+"currentXid={1}, state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
+"La transacción ya había sido preparada en esta conexión. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "La conexión actual no tiene un xid asociado. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
+"Prepare debe emitirse en la conexión que inició la rama. El entrelazado de "
+"transacciones no está soportado. prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr ""
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "Se llamó a Prepare antes de end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Error durante la recuperación. flag={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
 msgstr ""
+"No se puede deshacer una transacción preparada mientras hay una transacción "
+"local en curso en esta conexión. Confirme o deshaga primero la transacción "
+"local. rollback xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
+"Error al deshacer la transacción. rollback xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"Se invocó commit de una fase para xid {0} pero la conexión fue preparada con "
+"xid {1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
+"El commit de una fase debe emitirse en la conexión que inició la rama. "
+"commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "Commit de una fase con xid desconocido. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr ""
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "Se llamó a commit() antes de end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
+msgid ""
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
+msgstr ""
+"No se puede emitir el commit de segunda fase mientras hay una rama XA activa "
+"en esta conexión. commit xid={0}, currentXid={1}, state={2}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
 msgstr ""
+"No se puede confirmar (segunda fase) una transacción preparada mientras hay "
+"una transacción local en curso en esta conexión. Confirme o deshaga primero "
+"la transacción local. commit xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr ""
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/fr.po b/pgjdbc/src/main/java/org/postgresql/translation/fr.po
index 0412e370dd..6afc7a40fc 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/fr.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/fr.po
@@ -1971,141 +1971,190 @@ msgstr "SQLState serveur : {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Les méthodes de contrôle de transaction setAutoCommit, commit, rollback et "
+"setSavepoint ne sont pas autorisées lorsqu''une transaction XA est active."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
+#, java-format
 msgid "Invalid flags {0}"
-msgstr "Drapeaux invalides"
+msgstr "Drapeaux invalides {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr "xid ne doit pas être nul"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
-msgstr "La connection est occupée avec une autre transaction"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
+msgstr ""
+"La connection est déjà associée à une branche XA active. Terminez la branche "
+"en cours avant d''en démarrer une nouvelle. start xid={0}, currentXid={1}, "
+"state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
-msgstr "suspend/resume pas implémenté"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
+msgstr "Suspend/resume pas implémenté"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
 "supported. xid={0}, currentXid={1}, state={2}, flags={3}"
 msgstr ""
+"État de protocole demandé invalide. L''entrelacement de transactions n''est "
+"pas supporté. xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr "Erreur en désactivant autocommit"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Erreur à l''ouverture de la transaction. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
+#, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
-msgstr "tentative d''appel de fin sans l''appel start correspondant"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
+msgstr ""
+"end() appelé sans start() correspondant. end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
+"La transaction a déjà été préparée sur cette connection. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "La connection courante n''a pas de xid associé. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
+#, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"Pas implémenté: Prepare doit être envoyé sur la même connection qui a "
-"démarré la transaction"
+"Prepare doit être envoyé sur la connection qui a démarré la branche. "
+"L''entrelacement de transactions n''est pas supporté. prepare xid={0}, "
+"currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
-#, fuzzy, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr "Préparation appelée avant la fin"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
+#, java-format
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "Préparation appelée avant end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
+#, java-format
 msgid "Error preparing transaction. prepare xid={0}"
-msgstr "Erreur en préparant la transaction"
+msgstr "Erreur en préparant la transaction. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
-msgstr "Erreur durant la restauration"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Erreur durant la restauration. flag={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+"Impossible d''annuler une transaction préparée tant qu''une transaction "
+"locale est en cours sur cette connection. Validez ou annulez d''abord la "
+"transaction locale. rollback xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
+#, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
+"currentXid={2}"
+msgstr ""
+"Erreur en annulant la transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
-msgstr "Erreur en annulant une transaction préparée"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"Commit à une phase appelé pour xid {0} mais la connection a été préparée "
+"avec xid {1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
-"Pas implémenté: le commit à une phase doit avoir lieu en utilisant la même "
-"connection que celle où il a commencé"
+"Le commit à une phase doit être envoyé sur la connection qui a démarré la "
+"branche. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "Commit à une phase avec un xid inconnu. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
-#, fuzzy, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr "Commit appelé avant la fin"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
+#, java-format
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "commit() appelé avant end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
+#, java-format
 msgid "Error during one-phase commit. commit xid={0}"
-msgstr "Erreur pendant le commit à une phase"
+msgstr "Erreur pendant le commit à une phase. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
-"Pas implémenté: le commit à deux phase doit être envoyé sur une connection "
-"inutilisée"
+"Le commit à deux phases ne peut être envoyé tant qu''une branche XA est "
+"active sur cette connection. commit xid={0}, currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
+#, java-format
+msgid ""
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
+msgstr ""
+"Impossible de valider en deuxième phase une transaction préparée tant "
+"qu''une transaction locale est en cours sur cette connection. Validez ou "
+"annulez d''abord la transaction locale. commit xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
+#, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
-msgstr "Erreur en annulant une transaction préparée"
+msgstr ""
+"Erreur en validant une transaction préparée. commit xid={0}, "
+"preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
+#, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
-msgstr "Heuristic commit/rollback non supporté"
+msgstr "Heuristic commit/rollback non supporté. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/it.po b/pgjdbc/src/main/java/org/postgresql/translation/it.po
index d21670a39c..5fefc86bff 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/it.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/it.po
@@ -1974,142 +1974,190 @@ msgstr "SQLState del server: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"I metodi di controllo della transazione setAutoCommit, commit, rollback e "
+"setSavepoint non sono consentiti mentre una transazione XA è attiva."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
+#, java-format
 msgid "Invalid flags {0}"
-msgstr "Flag non validi"
+msgstr "Flag non validi {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr "xid non può essere NULL"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
-msgstr "La connessione è utilizzata da un''altra transazione"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
+msgstr ""
+"La connessione è già associata a un ramo XA attivo. Terminare il ramo "
+"corrente prima di avviarne uno nuovo. start xid={0}, currentXid={1}, "
+"state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
-msgstr "«suspend»/«resume» non implementato"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
+msgstr "«Suspend»/«resume» non implementato"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
 "supported. xid={0}, currentXid={1}, state={2}, flags={3}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-#, fuzzy
-msgid "Error disabling autocommit"
-msgstr "Errore durante il commit \"one-phase\""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Errore nell''apertura della transazione. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
+#, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
-msgstr "È stata chiamata «end» senza la corrispondente chiamata a «start»"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
+msgstr ""
+"end() chiamato senza una corrispondente start(). end xid={0}, "
+"currentXid={1}, state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
+"La transazione è già stata preparata su questa connessione. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "La connessione corrente non ha un xid associato. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
+#, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"Non implementato: «Prepare» deve essere eseguito nella stessa connessione "
-"che ha iniziato la transazione."
+"«Prepare» deve essere eseguito sulla connessione che ha avviato il ramo. "
+"L''interleaving delle transazioni non è supportato. prepare xid={0}, "
+"currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
-#, fuzzy, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr "«Prepare» invocato prima della fine"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
+#, java-format
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "«Prepare» invocato prima di end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
+#, java-format
 msgid "Error preparing transaction. prepare xid={0}"
-msgstr "Errore nel preparare una transazione"
+msgstr "Errore nella preparazione della transazione. prepare xid={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Errore durante il ripristino. flag={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
-msgstr "Errore durante il ripristino"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+"Impossibile effettuare il rollback di una transazione preparata mentre una "
+"transazione locale è in corso su questa connessione. Eseguire prima il "
+"commit o il rollback della transazione locale. rollback xid={0}, "
+"transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
+#, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
-msgstr "Errore durante il «rollback» di una transazione preparata"
+msgstr ""
+"Errore durante il rollback della transazione. rollback xid={0}, "
+"preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"Commit «one-phase» invocato per xid {0} ma la connessione è stata preparata "
+"con xid {1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
-"Non implementato: il commit \"one-phase\" deve essere invocato sulla stessa "
-"connessione che ha iniziato la transazione."
+"Il commit «one-phase» deve essere eseguito sulla connessione che ha avviato "
+"il ramo. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "Commit «one-phase» con xid sconosciuto. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
-#, fuzzy, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr "«Commit» è stato chiamato prima della fine"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
+#, java-format
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "commit() invocato prima di end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
+#, java-format
 msgid "Error during one-phase commit. commit xid={0}"
-msgstr "Errore durante il commit \"one-phase\""
+msgstr "Errore durante il commit «one-phase». commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
-"Non implementato: la seconda fase del «commit» deve essere effettuata con "
-"una connessione non in uso"
+"Il commit di seconda fase non può essere eseguito mentre un ramo XA è attivo "
+"su questa connessione. commit xid={0}, currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
+#, java-format
+msgid ""
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
+msgstr ""
+"Impossibile eseguire il commit di seconda fase di una transazione preparata "
+"mentre una transazione locale è in corso su questa connessione. Eseguire "
+"prima il commit o il rollback della transazione locale. commit xid={0}, "
+"transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
+#, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
-msgstr "Errore durante il «rollback» di una transazione preparata"
+msgstr ""
+"Errore durante il commit di una transazione preparata. commit xid={0}, "
+"preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
+#, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
-msgstr "«Commit» e «rollback» euristici non sono supportati"
+msgstr "«Commit»/«rollback» euristico non supportato. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/ja.po b/pgjdbc/src/main/java/org/postgresql/translation/ja.po
index ef8aa0a70b..aec62a80a3 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/ja.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/ja.po
@@ -1930,39 +1930,46 @@ msgstr "サーバ SQLState: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
-"トランザクション制御メソッド setAutoCommit(true), commit, rollback, "
-"setSavePoint は、XAトランザクションが有効である間は利用できません。"
+"トランザクション制御メソッド setAutoCommit, commit, rollback, setSavepoint "
+"は、XAトランザクションが有効である間は利用できません。"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr "不正なフラグ {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr "xidはnullではいけません。"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
-msgstr "接続は、別のトランザクションを処理中です"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
+msgstr ""
+"接続はすでに有効な XA ブランチと関連付けられています。新しいブランチを開始す"
+"る前に、現在のブランチを終了してください。start xid={0}, currentXid={1}, "
+"state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
 msgstr "停止/再開 は実装されていません。"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
@@ -1971,65 +1978,80 @@ msgstr ""
 "不正なプロトコル状態が要求されました。Transaction interleaving を試みましたが"
 "実装されていません。xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr "自動コミットの無効化処理中のエラー"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "トランザクションの開始エラー。start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
-"対応する start の呼び出しなしで、end を呼び出しました。state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"対応する start() の呼び出しなしで、end() が呼び出されました。end xid={0}, "
+"currentXid={1}, state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
-"すでにプリペアされているトランザクションをプリペアしようとしました、プリペア"
-"されている xid={0}, プリペアしようとした xid={1}"
+"この接続ではすでにトランザクションがプリペアされています。prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
 msgstr "この接続は xid と関連付けられていません。プリペア xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"実装されていません: Prepareは、トランザクションを開始したものと同じコネクショ"
-"ンで発行しなくてはなりません。currentXid={0}, prepare xid={1}"
+"prepare は、ブランチを開始した接続で発行しなくてはなりません。Transaction "
+"interleaving はサポートされていません。prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr "end より前に prepare が呼ばれました prepare xid={0}, state={1}"
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "end() より前に prepare が呼ばれました。prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr "トランザクションの準備エラー。prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
-msgstr "recover 処理中のエラー"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "recover 処理中のエラー。flag={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+"この接続でローカルトランザクションが進行中のため、プリペアドトランザクション"
+"をロールバックできません。先にローカルトランザクションを commit または "
+"rollback してください。rollback xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"プリペアドトランザクションのロールバック中のエラー rollback xid={0}, "
-"preparedXid={1}, currentXid={2}"
+"トランザクションのロールバック中のエラー。rollback xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
@@ -2037,39 +2059,51 @@ msgstr ""
 "単相コミットが xid {0} に対してよびだされましたが、コネクションは xid {1} と"
 "関連付けられています"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
-"実装されていません: 単一フェーズのCOMMITは、開始時と同じ接続で発行されなけれ"
-"ばなりません。"
+"単相コミットは、ブランチを開始した接続で発行しなくてはなりません。commit "
+"xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
 msgstr "未知の xid の単相コミット。 コミットxid={0}, 現在のxid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr "end の前に COMMIT を呼びました commit xid={0}, state={1}"
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "end() の前に commit() が呼ばれました。commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr "単一フェーズのCOMMITの処理中のエラー commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
+msgid ""
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
+msgstr ""
+"この接続で XA ブランチが有効である間は、第二フェーズの commit を発行できませ"
+"ん。commit xid={0}, currentXid={1}, state={2}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
 msgstr ""
-"実装されていません: 第二フェーズの COMMIT は、待機接続で使わなくてはなりませ"
-"ん。xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"この接続でローカルトランザクションが進行中のため、プリペアドトランザクション"
+"の第二フェーズの commit を実行できません。先にローカルトランザクションを "
+"commit または rollback してください。commit xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
@@ -2078,7 +2112,7 @@ msgstr ""
 "プリペアドトランザクションの COMMIT 処理中のエラー。commit xid={0}, "
 "preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr ""
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/ko.po b/pgjdbc/src/main/java/org/postgresql/translation/ko.po
index 87ae7db6e5..18e7f90e56 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/ko.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/ko.po
@@ -1921,39 +1921,45 @@ msgstr ""
 "StreamWrapper 누수가 감지되었습니다. StreamWrapper.close()가 호출되지 않았습"
 "니다."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
-"XA 트랜잭션이 활성 상태인 동안 트랜잭션 제어 메서드 setAutoCommit(true), "
-"commit, rollback 및 setSavePoint가 허용되지 않습니다."
+"XA 트랜잭션이 활성 상태인 동안 트랜잭션 제어 메서드 setAutoCommit, commit, "
+"rollback 및 setSavepoint가 허용되지 않습니다."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr "잘못된 플래그 {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr "xid는 null일 수 없습니다."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
-msgstr "연결이 다른 트랜잭션으로 바쁩니다."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
+msgstr ""
+"연결이 이미 활성 XA 분기와 연관되어 있습니다. 새 분기를 시작하기 전에 현재 분"
+"기를 종료하십시오. start xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
 msgstr "일시 중지/다시 시작이 구현되지 않았습니다."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
@@ -1962,63 +1968,79 @@ msgstr ""
 "잘못된 프로토콜 상태 요청됨. 트랜잭션 교차 시도는 지원되지 않습니다. "
 "xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr "자동 커밋 비활성화 오류"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "트랜잭션 열기 오류. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
-"해당 시작 호출 없이 end를 호출하려고 했습니다. state={0}, start xid={1}, "
-"currentXid={2}, preparedXid={3}"
+"일치하는 start() 호출 없이 end()가 호출되었습니다. end xid={0}, "
+"currentXid={1}, state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
-msgstr "이미 준비된 트랜잭션 준비, 준비된 xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
+msgstr ""
+"이 연결에서 트랜잭션이 이미 준비되었습니다. prepare xid={0}, preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
 msgstr "현재 연결에는 연결된 xid가 없습니다. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"구현되지 않음: Prepare는 트랜잭션을 시작한 동일한 연결을 사용하여 발행해야 합"
-"니다. currentXid={0}, prepare xid={1}"
+"Prepare는 분기를 시작한 연결에서 발행해야 합니다. 트랜잭션 교차는 지원되지 않"
+"습니다. prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr "end 이전에 호출 준비. prepare xid={0}, state={1}"
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "end() 호출 전에 Prepare가 호출되었습니다. prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr "트랜잭션 준비 오류. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
-msgstr "복구 중 오류"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "복구 중 오류. flag={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+"이 연결에서 로컬 트랜잭션이 진행 중인 동안에는 준비된 트랜잭션을 롤백할 수 없"
+"습니다. 먼저 로컬 트랜잭션을 커밋하거나 롤백하십시오. rollback xid={0}, "
+"transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"준비된 트랜잭션을 롤백하는 중 오류가 발생했습니다. 롤백 xid={0}, "
+"트랜잭션을 롤백하는 중 오류가 발생했습니다. rollback xid={0}, "
 "preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
@@ -2026,39 +2048,49 @@ msgstr ""
 "1단계 커밋이 xid {0} 에 대해 호출되었으나 연결이 xid {1}(으)로 준비되었습니"
 "다."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
-msgstr ""
-"구현되지 않음: 1단계 커밋은 시작하는 데 사용된 동일한 연결을 사용하여 발행해"
-"야 합니다."
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
+msgstr "1단계 커밋은 분기를 시작한 연결에서 발행해야 합니다. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
 msgstr "알 수 없는 xid와 1단계 커밋. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr "end 이전에 호출 커밋. commit xid={0}, state={1}"
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "end() 호출 전에 commit()이 호출되었습니다. commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr "1단계 커밋 중 오류 발생. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
+msgid ""
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
+msgstr ""
+"이 연결에서 XA 분기가 활성 상태인 동안에는 2단계 커밋을 발행할 수 없습니다. "
+"commit xid={0}, currentXid={1}, state={2}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
 msgstr ""
-"구현되지 않음: 2단계 커밋은 유휴 연결을 사용하여 발행해야 합니다. commit "
-"xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"이 연결에서 로컬 트랜잭션이 진행 중인 동안에는 준비된 트랜잭션의 2단계 커밋"
+"을 수행할 수 없습니다. 먼저 로컬 트랜잭션을 커밋하거나 롤백하십시오. commit "
+"xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
@@ -2067,7 +2099,7 @@ msgstr ""
 "준비된 트랜잭션을 커밋하는 중 오류가 발생했습니다. commit xid={0}, "
 "preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr "휴리스틱 커밋/롤백이 지원되지 않습니다. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages.pot b/pgjdbc/src/main/java/org/postgresql/translation/messages.pot
index 519ae1fe48..e6e83190d5 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages.pot
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages.pot
@@ -1829,135 +1829,160 @@ msgstr ""
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
 "supported. xid={0}, currentXid={1}, state={2}, flags={3}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
+#, java-format
+msgid ""
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
+msgid "commit() called before end(). commit xid={0}, state={1}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
+msgid ""
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
+msgstr ""
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr ""
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_bg.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_bg.java
index 1a4e3bc956..0ff7dd022e 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_bg.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_bg.java
@@ -3,390 +3,406 @@
 public class messages_bg extends java.util.ResourceBundle {
   private static final java.lang.String[] table;
   static {
-    java.lang.String[] t = new java.lang.String[890];
+    java.lang.String[] t = new java.lang.String[866];
     t[0] = "";
     t[1] = "Project-Id-Version: JDBC Driver for PostgreSQL 8.x\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2009-12-28 00:01+0100\nLast-Translator: <[email protected]>\nLanguage-Team: <[email protected]>\nLanguage: \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nX-Poedit-Language: Bulgarian\nX-Poedit-Country: BULGARIA\n";
-    t[2] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
-    t[3] = "CallableStatement функция бе обработена и изходния параметър {0} бе от тип {1}, обаче тип {2} бе използван.";
-    t[6] = "Too many update results were returned.";
-    t[7] = "Твърде много резултати бяха получени при актуализацията.";
-    t[10] = "There are no rows in this ResultSet.";
-    t[11] = "В този ResultSet няма редове.";
-    t[14] = "Detail: {0}";
-    t[15] = "Подробност: {0}";
-    t[20] = "Invalid fetch direction constant: {0}.";
-    t[21] = "Невалидна константа за fetch посоката: {0}.";
-    t[22] = "No function outputs were registered.";
-    t[23] = "Резултати от функцията не бяха регистрирани.";
-    t[24] = "The array index is out of range: {0}";
-    t[25] = "Индексът на масив е извън обхвата: {0}";
-    t[26] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
-    t[27] = "Тип на удостоверяване {0} не се поддържа. Проверете дали сте конфигурирали pg_hba.conf файла, да включва IP адреса на клиента или подмрежата, и че се използва схема за удостоверяване, поддържана от драйвъра.";
-    t[40] = "Large Objects may not be used in auto-commit mode.";
-    t[41] = "Големи обекти LOB не могат да се използват в auto-commit модус.";
-    t[46] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
-    t[47] = "Операцията изисква резултатите да са scrollable, но този ResultSet е FORWARD_ONLY.";
-    t[48] = "Zero bytes may not occur in string parameters.";
-    t[49] = "Не може да има нула байта в низ параметрите.";
-    t[50] = "The JVM claims not to support the encoding: {0}";
-    t[51] = "JVM не поддържа тази кодова таблица за момента: {0}";
-    t[54] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
-    t[55] = "Връзката не бе осъществена, поради вашите настройки за сигурност. Може би трябва да предоставите java.net.SocketPermission права на сървъра и порта с базата данни, към който искате да се свържете.";
-    t[62] = "Database connection failed when canceling copy operation";
-    t[63] = "Неосъществена връзка към базата данни при прекъсване на копирането";
-    t[78] = "Error loading default settings from driverconfig.properties";
-    t[79] = "Грешка при зареждане на настройките по подразбиране от файла driverconfig.properties";
-    t[82] = "Unable to decode xml data.";
-    t[83] = "Не може да декодира XML данните.";
-    t[92] = "Unable to find name datatype in the system catalogs.";
-    t[93] = "Не може да се намери името на типа данни в системните каталози.";
-    t[94] = "Tried to read from inactive copy";
-    t[95] = "Опит за четене при неактивно копиране";
-    t[96] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
-    t[97] = "ResultSet не може да се обновява. Заявката генерираща този резултат трябва да селектира само една таблица, както и всички първични ключове в нея. За повече информация, вижте раздел 5.6 на JDBC 2.1 API Specification.";
-    t[98] = "Cannot cast an instance of {0} to type {1}";
-    t[99] = "Не може да преобразува инстанция на {0} към тип {1}";
-    t[102] = "Requested CopyOut but got {0}";
-    t[103] = "Зададено CopyOut но получено {0}";
-    t[106] = "Not implemented: Prepare must be issued using the same connection that started the transaction. currentXid={0}, prepare xid={1}";
-    t[107] = "Невъзможна комбинация: Prepare трябва да бъде издадено чрез използване на същата връзка, при която е започната транзакцията. currentXid={0}, prepare xid={1}";
-    t[108] = "Can''t use query methods that take a query string on a PreparedStatement.";
-    t[109] = "Не може да се употребяват методи за заявка, които ползват низове на PreparedStatement.";
-    t[114] = "Conversion of money failed.";
-    t[115] = "Неуспешно валутно преобразуване.";
-    t[118] = "Tried to obtain lock while already holding it";
-    t[119] = "Опит за получаване на заключване/резервация докато вече е получено";
-    t[120] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
-    t[121] = "Този SQLXML обект не е инициализиран, така че не могат да се извличат данни от него.";
-    t[122] = "This SQLXML object has already been freed.";
-    t[123] = "Този SQLXML обект вече е освободен.";
-    t[124] = "Invalid stream length {0}.";
-    t[125] = "Невалидна дължина {0} на потока данни.";
-    t[130] = "Position: {0}";
-    t[131] = "Позиция: {0}";
-    t[132] = "The server does not support SSL.";
-    t[133] = "Сървърът не поддържа SSL.";
-    t[134] = "Got {0} error responses to single copy cancel request";
-    t[135] = "Получени {0} отговори за грешка при единствено искане да се прекъсне копирането";
-    t[136] = "DataSource has been closed.";
-    t[137] = "Източникът на данни е прекъснат.";
-    t[138] = "Unable to convert DOMResult SQLXML data to a string.";
-    t[139] = "Не може да преобразува DOMResult SQLXML данни в низ.";
-    t[144] = "Invalid UUID data.";
-    t[145] = "Невалидни UUID данни.";
-    t[148] = "The fastpath function {0} is unknown.";
-    t[149] = "Функцията {0} е неизвестна.";
-    t[154] = "Connection has been closed.";
-    t[155] = "Връзката бе прекъсната.";
-    t[156] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
-    t[157] = "Тази заявка не декларира изходен параметър. Ползвайте '{' ?= call ... '}' за да декларирате такъв.";
-    t[158] = "A connection could not be made using the requested protocol {0}.";
-    t[159] = "Не може да осъществи връзка, ползвайки искания протокол {0}.";
-    t[162] = "The maximum field size must be a value greater than or equal to 0.";
-    t[163] = "Максималният размер на полето трябва да бъде стойност по-голяма или равна на 0.";
-    t[166] = "GSS Authentication failed";
-    t[167] = "GSS удостоверяването бе неуспешно";
-    t[176] = "Unknown XML Result class: {0}";
-    t[177] = "Неизвестен XML изходящ клас: {0}";
-    t[180] = "Server SQLState: {0}";
-    t[181] = "SQL статус на сървъра: {0}";
-    t[182] = "Unknown Response Type {0}.";
-    t[183] = "Неизвестен тип на отговор {0}.";
-    t[186] = "Tried to cancel an inactive copy operation";
-    t[187] = "Опит за прекъсване на неактивно копиране";
-    t[190] = "This PooledConnection has already been closed.";
-    t[191] = "Тази PooledConnection връзка бе вече прекъсната.";
-    t[200] = "Multiple ResultSets were returned by the query.";
-    t[201] = "Заявката върна няколко ResultSets.";
-    t[204] = "Unsupported Types value: {0}";
-    t[205] = "Неподдържана стойност за тип: {0}";
-    t[206] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
-    t[207] = "CallableStatement функция бе декларирана, но обработена като registerOutParameter(1, <some type>) ";
-    t[208] = "Cannot retrieve the name of an unnamed savepoint.";
-    t[209] = "Не може да определи името на неупомената savepoint.";
-    t[220] = "Cannot change transaction read-only property in the middle of a transaction.";
-    t[221] = "Не може да променяте правата на транзакцията по време на нейното извършване.";
-    t[222] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
-    t[223] = "Прекалено голяма дължина {0} на съобщението. Това може да е причинено от прекалено голяма или неправилно зададена дължина на InputStream параметри.";
-    t[224] = "The parameter index is out of range: {0}, number of parameters: {1}.";
-    t[225] = "Параметърният индекс е извън обхват: {0}, брой параметри: {1}.";
-    t[226] = "Transaction isolation level {0} not supported.";
-    t[227] = "Изолационно ниво на транзакциите {0} не се поддържа.";
-    t[234] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
-    t[235] = "Не може да се обнови ResultSet, когато се намираме преди началото или след края на резултатите.";
-    t[238] = "tried to call end without corresponding start call. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[239] = "опита да извика end без съответстващо извикване на start. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[242] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
-    t[243] = "Този SQLXML обект вече е инициализиран и не може да бъде променен.";
-    t[250] = "Conversion to type {0} failed: {1}.";
-    t[251] = "Неуспешно преобразуване към тип {0}: {1}.";
-    t[252] = "The SSLSocketFactory class provided {0} could not be instantiated.";
-    t[253] = "Класът SSLSocketFactory връща {0} и не може да бъде инстанцииран.";
-    t[254] = "Unable to create SAXResult for SQLXML.";
-    t[255] = "Не може да се създаде SAXResult за SQLXML.";
-    t[256] = "Interrupted while attempting to connect.";
-    t[257] = "Опита за осъществяване на връзка бе своевременно прекъснат. ";
-    t[260] = "Protocol error.  Session setup failed.";
-    t[261] = "Грешка в протокола. Неуспешна настройка на сесията.";
-    t[264] = "Database connection failed when starting copy";
-    t[265] = "Неосъществена връзка към базата данни при започване на копирането";
-    t[272] = "Cannot call cancelRowUpdates() when on the insert row.";
-    t[273] = "Не може да се изпълни cancelRowUpdates() метода, когато се намираме при редицата на въвеждане.";
-    t[274] = "Unable to bind parameter values for statement.";
-    t[275] = "Не може да подготви параметрите на командата.";
-    t[280] = "A result was returned when none was expected.";
-    t[281] = "Бе получен резултат, когато такъв не бе очакван.";
-    t[282] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
-    t[283] = "Параметърът standard_conforming_strings при сървъра бе докладван като {0}. JDBC драйвъра очаква този параметър да бъде on или off.";
-    t[284] = "Unable to translate data into the desired encoding.";
-    t[285] = "Невъзможно преобразуване на данни в желаното кодиране.";
-    t[292] = "CommandComplete expected COPY but got: {0}";
-    t[293] = "Очаквано командно допълнение COPY но получено: {0}";
-    t[294] = "Provided InputStream failed.";
-    t[295] = "Зададения InputStream поток е неуспешен.";
-    t[296] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[297] = "Транзакция в транзакция не се поддържа за момента. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[304] = "{0} function takes four and only four argument.";
-    t[305] = "Функцията {0} може да приеме четири и само четири аргумента.";
-    t[306] = "{0} function doesn''t take any argument.";
-    t[307] = "Функцията {0} не може да приема аргументи.";
-    t[310] = "Got CopyOutResponse from server during an active {0}";
-    t[311] = "Получен CopyOutResponse отговор от сървъра при активно {0}";
-    t[322] = "No value specified for parameter {0}.";
-    t[323] = "Няма стойност, определена за параметър {0}.";
-    t[326] = "Error disabling autocommit";
-    t[327] = "Грешка при изключване на autocommit";
-    t[330] = "Received CommandComplete ''{0}'' without an active copy operation";
-    t[331] = "Получено командно допълнение ''{0}'' без активна команда за копиране";
-    t[332] = "Returning autogenerated keys is not supported.";
-    t[333] = "Автоматично генерирани ключове не се поддържат.";
-    t[336] = "Cannot change transaction isolation level in the middle of a transaction.";
-    t[337] = "Не може да променяте изолационното ниво на транзакцията по време на нейното извършване.";
-    t[340] = "An unexpected result was returned by a query.";
-    t[341] = "Заявката върна неочакван резултат.";
-    t[346] = "Conversion of interval failed";
-    t[347] = "Неуспешно преобразуване на интервал";
-    t[350] = "This ResultSet is closed.";
-    t[351] = "Операциите по този ResultSet са били прекратени.";
-    t[352] = "Read from copy failed.";
-    t[353] = "Четене от копието неуспешно.";
-    t[354] = "Unable to load the class {0} responsible for the datatype {1}";
-    t[355] = "Невъзможно е зареждането на клас {0}, отговарящ за типа данни {1}";
-    t[356] = "Failed to convert binary xml data to encoding: {0}.";
-    t[357] = "Неуспешно преобразуване на двоични XML данни за кодиране съгласно: {0}.";
-    t[362] = "Connection attempt timed out.";
-    t[363] = "Времето за осъществяване на връзката изтече (таймаут).";
-    t[364] = "Expected command status BEGIN, got {0}.";
-    t[365] = "Очаквана команда BEGIN, получена {0}.";
-    t[372] = "This copy stream is closed.";
-    t[373] = "Потока за копиране на данните е затворен.";
-    t[376] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
-    t[377] = "Не може да се определи SQL тип, който да се използва за инстанцията на {0}. Ползвайте метода setObject() с точни стойности, за да определите типа.";
-    t[378] = "Can''t refresh the insert row.";
-    t[379] = "Не може да обнови въведения ред.";
-    t[382] = "You must specify at least one column value to insert a row.";
-    t[383] = "Трябва да посочите поне една стойност за колона, за да вмъкнете ред.";
-    t[388] = "Connection is busy with another transaction";
-    t[389] = "Връзката е заета с друга транзакция";
-    t[392] = "Bad value for type {0} : {1}";
-    t[393] = "Невалидна стойност за тип {0} : {1}";
-    t[396] = "This statement has been closed.";
-    t[397] = "Командата е извършена.";
-    t[406] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
-    t[407] = "В момента се намираме преди края на ResultSet. Тук не може да се изпълни deleteRow() метода.";
-    t[414] = "{0} function takes two or three arguments.";
-    t[415] = "Функцията {0} може да приеме два или три аргумента.";
-    t[416] = "{0} function takes three and only three arguments.";
-    t[417] = "Функцията {0} може да приеме три и само три аргумента.";
-    t[418] = "Unable to find server array type for provided name {0}.";
-    t[419] = "Не може да се намери типа на сървърен масив за зададеното име {0}.";
-    t[420] = "Fastpath call {0} - No result was returned and we expected an integer.";
-    t[421] = "Извикване на {0} - няма резултати и а бе очаквано цяло число.";
-    t[426] = "Database connection failed when ending copy";
-    t[427] = "Неосъществена връзка към базата данни при завършване на копирането";
-    t[428] = "Cannot write to copy a byte of value {0}";
-    t[429] = "Няма пишещи права, за да копира байтова стойност {0}";
-    t[430] = "Results cannot be retrieved from a CallableStatement before it is executed.";
-    t[431] = "Резултати от CallableStatement функция не могат да бъдат получени, преди тя да бъде обработена.";
-    t[432] = "Cannot reference a savepoint after it has been released.";
-    t[433] = "Не може да референцира savepoint, след като е била освободена.";
-    t[434] = "Failed to create object for: {0}.";
-    t[435] = "Неуспешно създаване на обект за: {0}.";
-    t[438] = "Unexpected packet type during copy: {0}";
-    t[439] = "Неочакван тип пакет при копиране: {0}";
-    t[442] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
-    t[443] = "Невъзможно е да се определи стойността за MaxIndexKeys поради липса на системния каталог с данни.";
-    t[444] = "Tried to end inactive copy";
-    t[445] = "Опит за прекъсване на неактивно копиране";
-    t[450] = "Unexpected copydata from server for {0}";
-    t[451] = "Неочаквано CopyData от сървъра за {0}";
-    t[460] = "Zero bytes may not occur in identifiers.";
-    t[461] = "Не може да има нула байта в идентификаторите.";
-    t[462] = "Error during one-phase commit. commit xid={0}";
-    t[463] = "Грешка при едно-фазов commit. commit xid={0}";
-    t[464] = "Ran out of memory retrieving query results.";
-    t[465] = "Недостатъчна памет при представяна на резултатите от заявката.";
-    t[468] = "Unable to create StAXResult for SQLXML";
-    t[469] = "Не може да се създаде StAXResult за SQLXML.";
-    t[470] = "Location: File: {0}, Routine: {1}, Line: {2}";
-    t[471] = "Местоположение: Файл: {0}, Функция: {1}, Ред: {2}";
-    t[482] = "A CallableStatement was executed with an invalid number of parameters";
-    t[483] = "CallableStatement функция бе обработена, но с непозволен брой параметри.";
-    t[496] = "Interrupted while waiting to obtain lock on database connection";
-    t[497] = "Прекъсване при чакане да получи заключване/резервация при връзка към базата данни";
-    t[502] = "LOB positioning offsets start at 1.";
-    t[503] = "Позиционалният офсет при големи обекти LOB започва от 1.";
-    t[506] = "Returning autogenerated keys by column index is not supported.";
-    t[507] = "Автоматично генерирани ключове спрямо индекс на колона не се поддържат.";
-    t[510] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
-    t[511] = "В момента се намираме в началото на ResultSet. Тук не може да се изпълни deleteRow() метода.";
-    t[518] = "Fetch size must be a value greater than or equal to 0.";
-    t[519] = "Размера за fetch size трябва да бъде по-голям или равен на 0.";
-    t[524] = "Truncation of large objects is only implemented in 8.3 and later servers.";
-    t[525] = "Скъсяване на големи обекти LOB е осъществено само във версии след 8.3.";
-    t[526] = "Statement has been closed.";
-    t[527] = "Командата е завършена.";
-    t[540] = "Database connection failed when writing to copy";
-    t[541] = "Неосъществена връзка към базата данни при опит за копиране";
-    t[544] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
-    t[545] = "Параметърът DateStyle при сървъра бе променен на {0}. JDBC драйвъра изисква DateStyle започва с ISO за да функционира правилно.";
-    t[546] = "Provided Reader failed.";
-    t[547] = "Грешка с ползвания четец.";
-    t[550] = "Not on the insert row.";
-    t[551] = "Не сме в редицата на въвеждане.";
-    t[570] = "Not implemented: 2nd phase commit must be issued using an idle connection. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[571] = "Невъзможна комбинация: втората фаза на commit задължително трябва да бъде издадена при свободна връзка. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[596] = "Tried to write to an inactive copy operation";
-    t[597] = "Опит за писане при неактивна операция за копиране";
-    t[606] = "An error occurred while setting up the SSL connection.";
-    t[607] = "Възникна грешка при осъществяване на SSL връзката.";
-    t[614] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
-    t[615] = "Възникна неочаквана грешка с драйвъра. Моля докадвайте това изключение. ";
-    t[618] = "No results were returned by the query.";
-    t[619] = "Няма намерени резултати за заявката.";
-    t[620] = "ClientInfo property not supported.";
-    t[621] = "Информацията за ClientInfo не се поддържа.";
-    t[622] = "Unexpected error writing large object to database.";
-    t[623] = "Неочаквана грешка при записване на голям обект LOB в базата данни.";
-    t[628] = "The JVM claims not to support the {0} encoding.";
-    t[629] = "JVM не поддържа за момента {0} кодовата таблица.";
-    t[630] = "Unknown XML Source class: {0}";
-    t[631] = "Неизвестен XML входящ клас: {0}";
-    t[632] = "Interval {0} not yet implemented";
-    t[633] = "Интервалът {0} не е валиден все още.";
-    t[638] = "Tried to break lock on database connection";
-    t[639] = "Опит за премахване на заключването/резервацията при връзка към базата данни";
-    t[642] = "Missing expected error response to copy cancel request";
-    t[643] = "Липсва очакван отговор при грешка да прекъсне копирането";
-    t[652] = "Requested CopyIn but got {0}";
-    t[653] = "Зададено CopyIn но получено {0}";
-    t[656] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
-    t[657] = "Отчетен параметър от тип {0}, но обработено като get{1} (sqltype={2}). ";
-    t[662] = "Unsupported value for stringtype parameter: {0}";
-    t[663] = "Непозволена стойност за StringType параметър: {0}";
-    t[670] = "Cannot tell if path is open or closed: {0}.";
-    t[671] = "Не може да определи дали адреса е отворен или затворен: {0}.";
-    t[672] = "Expected an EOF from server, got: {0}";
-    t[673] = "Очакван край на файла от сървъра, но получено: {0}";
-    t[680] = "Copying from database failed: {0}";
-    t[681] = "Копирането от базата данни бе неуспешно: {0}";
-    t[682] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
-    t[683] = "Връзката бе автоматично прекъсната, защото нова връзка за същата беше осъществена или PooledConnection връзката е вече прекъсната.";
-    t[694] = "PostgreSQL LOBs can only index to: {0}";
-    t[695] = "PostgreSQL индексира големи обекти LOB само до: {0}";
-    t[698] = "Custom type maps are not supported.";
-    t[699] = "Специфични типови съответствия не се поддържат.";
-    t[700] = "xid must not be null";
-    t[701] = "xid не може да бъде null";
-    t[706] = "Internal Position: {0}";
-    t[707] = "Вътрешна позиция: {0}";
-    t[708] = "Error during recover";
-    t[709] = "Грешка при възстановяване";
-    t[712] = "Method {0} is not yet implemented.";
-    t[713] = "Методът {0} все още не е функционален.";
-    t[714] = "Unexpected command status: {0}.";
-    t[715] = "Неочакван статус на команда: {0}.";
-    t[718] = "The column index is out of range: {0}, number of columns: {1}.";
-    t[719] = "Индексът на колоната е извън стойностен обхват: {0}, брой колони: {1}.";
-    t[730] = "Unknown ResultSet holdability setting: {0}.";
-    t[731] = "Неизвестна ResultSet holdability настройка: {0}.";
+    t[4] = "Unknown Response Type {0}.";
+    t[5] = "Неизвестен тип на отговор {0}.";
+    t[6] = "Tried to read from inactive copy";
+    t[7] = "Опит за четене при неактивно копиране";
+    t[8] = "Interrupted while attempting to connect.";
+    t[9] = "Опита за осъществяване на връзка бе своевременно прекъснат. ";
+    t[12] = "The SSLSocketFactory class provided {0} could not be instantiated.";
+    t[13] = "Класът SSLSocketFactory връща {0} и не може да бъде инстанцииран.";
+    t[16] = "Read from copy failed.";
+    t[17] = "Четене от копието неуспешно.";
+    t[18] = "Unknown type {0}.";
+    t[19] = "Неизвестен тип {0}.";
+    t[20] = "Missing expected error response to copy cancel request";
+    t[21] = "Липсва очакван отговор при грешка да прекъсне копирането";
+    t[26] = "Zero bytes may not occur in identifiers.";
+    t[27] = "Не може да има нула байта в идентификаторите.";
+    t[30] = "{0} function doesn''t take any argument.";
+    t[31] = "Функцията {0} не може да приема аргументи.";
+    t[32] = "Fastpath call {0} - No result was returned and we expected an integer.";
+    t[33] = "Извикване на {0} - няма резултати и а бе очаквано цяло число.";
+    t[34] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
+    t[35] = "ResultSet не може да се обновява. Заявката генерираща този резултат трябва да селектира само една таблица, както и всички първични ключове в нея. За повече информация, вижте раздел 5.6 на JDBC 2.1 API Specification.";
+    t[36] = "An error occurred while setting up the SSL connection.";
+    t[37] = "Възникна грешка при осъществяване на SSL връзката.";
+    t[42] = "Database connection failed when reading from copy";
+    t[43] = "Неосъществена връзка към базата данни при четене от копие";
+    t[44] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
+    t[45] = "В момента се намираме в началото на ResultSet. Тук не може да се изпълни deleteRow() метода.";
+    t[46] = "Returning autogenerated keys is not supported.";
+    t[47] = "Автоматично генерирани ключове не се поддържат.";
+    t[50] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
+    t[51] = "Тип на удостоверяване {0} не се поддържа. Проверете дали сте конфигурирали pg_hba.conf файла, да включва IP адреса на клиента или подмрежата, и че се използва схема за удостоверяване, поддържана от драйвъра.";
+    t[56] = "{0} function takes two and only two arguments.";
+    t[57] = "Функцията {0} може да приеме два и само два аргумента.";
+    t[64] = "Unable to find server array type for provided name {0}.";
+    t[65] = "Не може да се намери типа на сървърен масив за зададеното име {0}.";
+    t[66] = "Error preparing transaction. prepare xid={0}";
+    t[67] = "Грешка при подготвяне на транзакция. prepare xid={0}";
+    t[68] = "The maximum field size must be a value greater than or equal to 0.";
+    t[69] = "Максималният размер на полето трябва да бъде стойност по-голяма или равна на 0.";
+    t[72] = "Unable to create SAXResult for SQLXML.";
+    t[73] = "Не може да се създаде SAXResult за SQLXML.";
+    t[76] = "Tried to obtain lock while already holding it";
+    t[77] = "Опит за получаване на заключване/резервация докато вече е получено";
+    t[80] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
+    t[81] = "Възникна неочаквана грешка с драйвъра. Моля докадвайте това изключение. ";
+    t[88] = "No results were returned by the query.";
+    t[89] = "Няма намерени резултати за заявката.";
+    t[90] = "Database connection failed when canceling copy operation";
+    t[91] = "Неосъществена връзка към базата данни при прекъсване на копирането";
+    t[94] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
+    t[95] = "Операцията изисква резултатите да са scrollable, но този ResultSet е FORWARD_ONLY.";
+    t[98] = "Invalid stream length {0}.";
+    t[99] = "Невалидна дължина {0} на потока данни.";
+    t[106] = "This copy stream is closed.";
+    t[107] = "Потока за копиране на данните е затворен.";
+    t[108] = "The column index is out of range: {0}, number of columns: {1}.";
+    t[109] = "Индексът на колоната е извън стойностен обхват: {0}, брой колони: {1}.";
+    t[114] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
+    t[115] = "Този SQLXML обект не е инициализиран, така че не могат да се извличат данни от него.";
+    t[116] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
+    t[117] = "Преждевременен край на входящ поток на данни, очаквани {0} байта, но прочетени само {1}.";
+    t[118] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
+    t[119] = "Връзката не бе осъществена, поради вашите настройки за сигурност. Може би трябва да предоставите java.net.SocketPermission права на сървъра и порта с базата данни, към който искате да се свържете.";
+    t[122] = "Copying from database failed: {0}";
+    t[123] = "Копирането от базата данни бе неуспешно: {0}";
+    t[130] = "The server does not support SSL.";
+    t[131] = "Сървърът не поддържа SSL.";
+    t[132] = "Not on the insert row.";
+    t[133] = "Не сме в редицата на въвеждане.";
+    t[140] = "Unexpected command status: {0}.";
+    t[141] = "Неочакван статус на команда: {0}.";
+    t[142] = "A connection could not be made using the requested protocol {0}.";
+    t[143] = "Не може да осъществи връзка, ползвайки искания протокол {0}.";
+    t[148] = "Provided Reader failed.";
+    t[149] = "Грешка с ползвания четец.";
+    t[150] = "Error during recover. flag={0}";
+    t[151] = "Грешка при възстановяване. flag={0}";
+    t[152] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[153] = "Евристичен commit или rollback не се поддържа. forget xid={0}";
+    t[156] = "Interrupted while waiting to obtain lock on database connection";
+    t[157] = "Прекъсване при чакане да получи заключване/резервация при връзка към базата данни";
+    t[160] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[161] = "Транзакция в транзакция не се поддържа за момента. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[162] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
+    t[163] = "Не може да се обнови ResultSet, когато се намираме преди началото или след края на резултатите.";
+    t[166] = "Invalid UUID data.";
+    t[167] = "Невалидни UUID данни.";
+    t[168] = "wasNull cannot be call before fetching a result.";
+    t[169] = "wasNull не може да бьде изпълнен, преди наличието на резултата.";
+    t[170] = "Cannot call cancelRowUpdates() when on the insert row.";
+    t[171] = "Не може да се изпълни cancelRowUpdates() метода, когато се намираме при редицата на въвеждане.";
+    t[174] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[175] = "Не може да се направи rollback на подготвена транзакция, докато на тази връзка тече локална транзакция. Първо направете commit или rollback на локалната транзакция. rollback xid={0}, transactionState={1}";
+    t[184] = "Can''t refresh the insert row.";
+    t[185] = "Не може да обнови въведения ред.";
+    t[186] = "This SQLXML object has already been freed.";
+    t[187] = "Този SQLXML обект вече е освободен.";
+    t[188] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[189] = "Prepare трябва да бъде издаден на връзката, на която е започнат клонът. Транзакция в транзакция не се поддържа. prepare xid={0}, currentXid={1}";
+    t[198] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[199] = "Едно-фазов commit с непознат xid. commit xid={0}, currentXid={1}";
+    t[202] = "The column name {0} was not found in this ResultSet.";
+    t[203] = "Името на колоната {0} не бе намерено в този ResultSet.";
+    t[208] = "Database connection failed when starting copy";
+    t[209] = "Неосъществена връзка към базата данни при започване на копирането";
+    t[210] = "Invalid flags {0}";
+    t[211] = "Невалидни флагове {0}";
+    t[214] = "Can''t use query methods that take a query string on a PreparedStatement.";
+    t[215] = "Не може да се употребяват методи за заявка, които ползват низове на PreparedStatement.";
+    t[216] = "CommandComplete expected COPY but got: {0}";
+    t[217] = "Очаквано командно допълнение COPY но получено: {0}";
+    t[226] = "{0} function takes two or three arguments.";
+    t[227] = "Функцията {0} може да приеме два или три аргумента.";
+    t[228] = "Conversion of interval failed";
+    t[229] = "Неуспешно преобразуване на интервал";
+    t[242] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
+    t[243] = "Прекалено голяма дължина {0} на съобщението. Това може да е причинено от прекалено голяма или неправилно зададена дължина на InputStream параметри.";
+    t[254] = "The JVM claims not to support the encoding: {0}";
+    t[255] = "JVM не поддържа тази кодова таблица за момента: {0}";
+    t[256] = "Unable to bind parameter values for statement.";
+    t[257] = "Не може да подготви параметрите на командата.";
+    t[260] = "Ran out of memory retrieving query results.";
+    t[261] = "Недостатъчна памет при представяна на резултатите от заявката.";
+    t[262] = "Tried to write to an inactive copy operation";
+    t[263] = "Опит за писане при неактивна операция за копиране";
+    t[264] = "Tried to end inactive copy";
+    t[265] = "Опит за прекъсване на неактивно копиране";
+    t[268] = "This PooledConnection has already been closed.";
+    t[269] = "Тази PooledConnection връзка бе вече прекъсната.";
+    t[272] = "Detail: {0}";
+    t[273] = "Подробност: {0}";
+    t[276] = "ClientInfo property not supported.";
+    t[277] = "Информацията за ClientInfo не се поддържа.";
+    t[288] = "Cannot reference a savepoint after it has been released.";
+    t[289] = "Не може да референцира savepoint, след като е била освободена.";
+    t[292] = "Failed to create object for: {0}.";
+    t[293] = "Неуспешно създаване на обект за: {0}.";
+    t[298] = "Protocol error.  Session setup failed.";
+    t[299] = "Грешка в протокола. Неуспешна настройка на сесията.";
+    t[302] = "Position: {0}";
+    t[303] = "Позиция: {0}";
+    t[304] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[305] = "Втората фаза на commit на подготвена транзакция не може да бъде издадена, докато на тази връзка тече локална транзакция. Първо направете commit или rollback на локалната транзакция. commit xid={0}, transactionState={1}";
+    t[310] = "Unknown ResultSet holdability setting: {0}.";
+    t[311] = "Неизвестна ResultSet holdability настройка: {0}.";
+    t[318] = "Conversion of money failed.";
+    t[319] = "Неуспешно валутно преобразуване.";
+    t[320] = "Where: {0}";
+    t[321] = "Където: {0}";
+    t[324] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[325] = "Връзката вече е свързана с активен XA клон. Завършете текущия клон, преди да започнете нов. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[330] = "Suspend/resume not implemented";
+    t[331] = "спиране / започване не се поддържа за момента";
+    t[334] = "Bad value for type {0} : {1}";
+    t[335] = "Невалидна стойност за тип {0} : {1}";
+    t[338] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
+    t[339] = "ResultSets с concurrency CONCUR_READ_ONLY не могат да бъдат актуализирани.";
+    t[340] = "Cannot change transaction isolation level in the middle of a transaction.";
+    t[341] = "Не може да променяте изолационното ниво на транзакцията по време на нейното извършване.";
+    t[346] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
+    t[347] = "Този SQLXML обект вече е инициализиран и не може да бъде променен.";
+    t[348] = "Unable to create StAXResult for SQLXML";
+    t[349] = "Не може да се създаде StAXResult за SQLXML.";
+    t[356] = "Can''t use relative move methods while on the insert row.";
+    t[357] = "Не може да се използват относителни методи за движение, когато се намираме при редицата на въвеждане.";
+    t[360] = "Invalid fetch direction constant: {0}.";
+    t[361] = "Невалидна константа за fetch посоката: {0}.";
+    t[368] = "Requested CopyIn but got {0}";
+    t[369] = "Зададено CopyIn но получено {0}";
+    t[370] = "Unable to find name datatype in the system catalogs.";
+    t[371] = "Не може да се намери името на типа данни в системните каталози.";
+    t[374] = "Expected command status BEGIN, got {0}.";
+    t[375] = "Очаквана команда BEGIN, получена {0}.";
+    t[376] = "The JVM claims not to support the {0} encoding.";
+    t[377] = "JVM не поддържа за момента {0} кодовата таблица.";
+    t[378] = "Error opening transaction. start xid={0}";
+    t[379] = "Грешка при отваряне на транзакция. start xid={0}";
+    t[380] = "The fastpath function {0} is unknown.";
+    t[381] = "Функцията {0} е неизвестна.";
+    t[382] = "The connection attempt failed.";
+    t[383] = "Опита за връзка бе неуспешен.";
+    t[384] = "Fetch size must be a value greater than or equal to 0.";
+    t[385] = "Размера за fetch size трябва да бъде по-голям или равен на 0.";
+    t[386] = "Server SQLState: {0}";
+    t[387] = "SQL статус на сървъра: {0}";
+    t[394] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
+    t[395] = "Параметърът standard_conforming_strings при сървъра бе докладван като {0}. JDBC драйвъра очаква този параметър да бъде on или off.";
+    t[398] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[399] = "Грешка при възстановяване на състоянието на транзакция. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[402] = "Unknown Types value.";
+    t[403] = "Стойност от неизвестен тип.";
+    t[408] = "Internal Query: {0}";
+    t[409] = "Вътрешна заявка: {0}";
+    t[410] = "Results cannot be retrieved from a CallableStatement before it is executed.";
+    t[411] = "Резултати от CallableStatement функция не могат да бъдат получени, преди тя да бъде обработена.";
+    t[416] = "Connection has been closed.";
+    t[417] = "Връзката бе прекъсната.";
+    t[420] = "Malformed function or procedure escape syntax at offset {0}.";
+    t[421] = "Непозволен синтаксис на функция или процедура при офсет {0}.";
+    t[432] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[433] = "Едно-фазов commit е извикан за xid {0}, но връзката е подготвена с xid {1}";
+    t[434] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
+    t[435] = "Бяха намерени невалидни данни. Това най-вероятно се дължи на съхранявани данни, съдържащи символи, които са невалидни за набора от знаци при създаване на базата данни. Чест пример за това е съхраняване на 8bit данни в SQL_ASCII бази данни.";
+    t[436] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[437] = "Едно-фазов commit трябва да бъде издаден на връзката, на която е започнат клонът. commit xid={0}";
+    t[450] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
+    t[451] = "Невъзможно е да се определи стойността за MaxIndexKeys поради липса на системния каталог с данни.";
+    t[452] = "A CallableStatement was executed with nothing returned.";
+    t[453] = "CallableStatement функция бе обработена, но няма резултати.";
+    t[454] = "You must specify at least one column value to insert a row.";
+    t[455] = "Трябва да посочите поне една стойност за колона, за да вмъкнете ред.";
+    t[458] = "Unexpected copydata from server for {0}";
+    t[459] = "Неочаквано CopyData от сървъра за {0}";
+    t[464] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[465] = "Методите за управление на транзакции setAutoCommit, commit, rollback и setSavepoint не са разрешени, докато XA транзакция е активна.";
+    t[466] = "Cannot retrieve the id of a named savepoint.";
+    t[467] = "Не може да определи ID на спомената savepoint.";
+    t[468] = "Unsupported Types value: {0}";
+    t[469] = "Неподдържана стойност за тип: {0}";
+    t[472] = "LOB positioning offsets start at 1.";
+    t[473] = "Позиционалният офсет при големи обекти LOB започва от 1.";
+    t[480] = "No value specified for parameter {0}.";
+    t[481] = "Няма стойност, определена за параметър {0}.";
+    t[482] = "PostgreSQL LOBs can only index to: {0}";
+    t[483] = "PostgreSQL индексира големи обекти LOB само до: {0}";
+    t[492] = "Statement has been closed.";
+    t[493] = "Командата е завършена.";
+    t[494] = "The array index is out of range: {0}";
+    t[495] = "Индексът на масив е извън обхвата: {0}";
+    t[500] = "Unexpected packet type during copy: {0}";
+    t[501] = "Неочакван тип пакет при копиране: {0}";
+    t[510] = "Cannot convert an instance of {0} to type {1}";
+    t[511] = "Не може да преобразува инстанцията на {0} във вида {1}";
+    t[516] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
+    t[517] = "CallableStatement функция бе декларирана, но обработена като registerOutParameter(1, <some type>) ";
+    t[520] = "A result was returned when none was expected.";
+    t[521] = "Бе получен резултат, когато такъв не бе очакван.";
+    t[522] = "xid must not be null";
+    t[523] = "xid не може да бъде null";
+    t[526] = "Tried to break lock on database connection";
+    t[527] = "Опит за премахване на заключването/резервацията при връзка към базата данни";
+    t[536] = "Provided InputStream failed.";
+    t[537] = "Зададения InputStream поток е неуспешен.";
+    t[538] = "Conversion to type {0} failed: {1}.";
+    t[539] = "Неуспешно преобразуване към тип {0}: {1}.";
+    t[542] = "Method {0} is not yet implemented.";
+    t[543] = "Методът {0} все още не е функционален.";
+    t[548] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
+    t[549] = "CallableStatement функция бе обработена и изходния параметър {0} бе от тип {1}, обаче тип {2} бе използван.";
+    t[554] = "Unsupported value for stringtype parameter: {0}";
+    t[555] = "Непозволена стойност за StringType параметър: {0}";
+    t[558] = "Internal Position: {0}";
+    t[559] = "Вътрешна позиция: {0}";
+    t[560] = "Unable to load the class {0} responsible for the datatype {1}";
+    t[561] = "Невъзможно е зареждането на клас {0}, отговарящ за типа данни {1}";
+    t[564] = "Unable to convert DOMResult SQLXML data to a string.";
+    t[565] = "Не може да преобразува DOMResult SQLXML данни в низ.";
+    t[578] = "Cannot establish a savepoint in auto-commit mode.";
+    t[579] = "Не може да се установи savepoint в auto-commit модус.";
+    t[580] = "Unable to decode xml data.";
+    t[581] = "Не може да декодира XML данните.";
+    t[586] = "Unknown XML Source class: {0}";
+    t[587] = "Неизвестен XML входящ клас: {0}";
+    t[588] = "The array index is out of range: {0}, number of elements: {1}.";
+    t[589] = "Индексът на масив е извън обхвата: {0}, брой елементи: {1}.";
+    t[592] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[593] = "Текущата връзка няма свързан xid. prepare xid={0}";
+    t[594] = "DataSource has been closed.";
+    t[595] = "Източникът на данни е прекъснат.";
+    t[598] = "The parameter index is out of range: {0}, number of parameters: {1}.";
+    t[599] = "Параметърният индекс е извън обхват: {0}, брой параметри: {1}.";
+    t[600] = "An unexpected result was returned by a query.";
+    t[601] = "Заявката върна неочакван резултат.";
+    t[608] = "Unable to translate data into the desired encoding.";
+    t[609] = "Невъзможно преобразуване на данни в желаното кодиране.";
+    t[610] = "Unknown XML Result class: {0}";
+    t[611] = "Неизвестен XML изходящ клас: {0}";
+    t[614] = "Location: File: {0}, Routine: {1}, Line: {2}";
+    t[615] = "Местоположение: Файл: {0}, Функция: {1}, Ред: {2}";
+    t[618] = "Expected an EOF from server, got: {0}";
+    t[619] = "Очакван край на файла от сървъра, но получено: {0}";
+    t[620] = "commit() called before end(). commit xid={0}, state={1}";
+    t[621] = "commit() е извикан преди end(). commit xid={0}, state={1}";
+    t[626] = "Unexpected error writing large object to database.";
+    t[627] = "Неочаквана грешка при записване на голям обект LOB в базата данни.";
+    t[630] = "GSS Authentication failed";
+    t[631] = "GSS удостоверяването бе неуспешно";
+    t[632] = "Received CommandComplete ''{0}'' without an active copy operation";
+    t[633] = "Получено командно допълнение ''{0}'' без активна команда за копиране";
+    t[638] = "Cannot write to copy a byte of value {0}";
+    t[639] = "Няма пишещи права, за да копира байтова стойност {0}";
+    t[650] = "A CallableStatement was executed with an invalid number of parameters";
+    t[651] = "CallableStatement функция бе обработена, но с непозволен брой параметри.";
+    t[652] = "{0} function takes four and only four argument.";
+    t[653] = "Функцията {0} може да приеме четири и само четири аргумента.";
+    t[654] = "{0} function takes one and only one argument.";
+    t[655] = "Функцията {0} може да приеме само един единствен аргумент.";
+    t[660] = "Tried to cancel an inactive copy operation";
+    t[661] = "Опит за прекъсване на неактивно копиране";
+    t[662] = "Error during one-phase commit. commit xid={0}";
+    t[663] = "Грешка при едно-фазов commit. commit xid={0}";
+    t[664] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[665] = "Грешка при commit на подготвена транзакция. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[666] = "This statement has been closed.";
+    t[667] = "Командата е извършена.";
+    t[672] = "Cannot cast an instance of {0} to type {1}";
+    t[673] = "Не може да преобразува инстанция на {0} към тип {1}";
+    t[674] = "Query timeout must be a value greater than or equals to 0.";
+    t[675] = "Времето за изпълнение на заявката трябва да бъде стойност по-голяма или равна на 0.";
+    t[676] = "Cannot call updateRow() when on the insert row.";
+    t[677] = "Не може да се изпълни updateRow() метода, когато се намираме при редицата на въвеждане.";
+    t[686] = "No function outputs were registered.";
+    t[687] = "Резултати от функцията не бяха регистрирани.";
+    t[690] = "Database connection failed when writing to copy";
+    t[691] = "Неосъществена връзка към базата данни при опит за копиране";
+    t[694] = "Failed to convert binary xml data to encoding: {0}.";
+    t[695] = "Неуспешно преобразуване на двоични XML данни за кодиране съгласно: {0}.";
+    t[704] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
+    t[705] = "В момента се намираме преди края на ResultSet. Тук не може да се изпълни deleteRow() метода.";
+    t[706] = "Got CopyOutResponse from server during an active {0}";
+    t[707] = "Получен CopyOutResponse отговор от сървъра при активно {0}";
+    t[708] = "Custom type maps are not supported.";
+    t[709] = "Специфични типови съответствия не се поддържат.";
+    t[710] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
+    t[711] = "Тази заявка не декларира изходен параметър. Ползвайте '{' ?= call ... '}' за да декларирате такъв.";
+    t[712] = "Error loading default settings from driverconfig.properties";
+    t[713] = "Грешка при зареждане на настройките по подразбиране от файла driverconfig.properties";
+    t[716] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[717] = "Prepare е извикан преди end(). prepare xid={0}, state={1}";
+    t[720] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[721] = "Втората фаза на commit не може да бъде издадена, докато на тази връзка е активен XA клон. commit xid={0}, currentXid={1}, state={2}";
+    t[722] = "Large Objects may not be used in auto-commit mode.";
+    t[723] = "Големи обекти LOB не могат да се използват в auto-commit модус.";
+    t[728] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
+    t[729] = "Отчетен параметър от тип {0}, но обработено като get{1} (sqltype={2}). ";
     t[734] = "Cannot call deleteRow() when on the insert row.";
     t[735] = "Не може да се изпълни deleteRow() метода, когато се намираме при редицата на въвеждане.";
-    t[740] = "ResultSet not positioned properly, perhaps you need to call next.";
-    t[741] = "ResultSet не е референциран правилно. Вероятно трябва да придвижите курсора посредством next.";
-    t[742] = "wasNull cannot be call before fetching a result.";
-    t[743] = "wasNull не може да бьде изпълнен, преди наличието на резултата.";
-    t[746] = "{0} function takes two and only two arguments.";
-    t[747] = "Функцията {0} може да приеме два и само два аргумента.";
-    t[750] = "Malformed function or procedure escape syntax at offset {0}.";
-    t[751] = "Непозволен синтаксис на функция или процедура при офсет {0}.";
-    t[752] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
-    t[753] = "Преждевременен край на входящ поток на данни, очаквани {0} байта, но прочетени само {1}.";
-    t[756] = "Got CopyData without an active copy operation";
-    t[757] = "Получено CopyData без наличие на активна операция за копиране";
-    t[758] = "Cannot retrieve the id of a named savepoint.";
-    t[759] = "Не може да определи ID на спомената savepoint.";
-    t[770] = "Where: {0}";
-    t[771] = "Където: {0}";
-    t[778] = "Got CopyInResponse from server during an active {0}";
-    t[779] = "Получен CopyInResponse отговор от сървъра при активно {0}";
-    t[780] = "Cannot convert an instance of {0} to type {1}";
-    t[781] = "Не може да преобразува инстанцията на {0} във вида {1}";
-    t[784] = "Not implemented: one-phase commit must be issued using the same connection that was used to start it";
-    t[785] = "Невъзможна комбинация: едно-фазов commit трябва да бъде издаден чрез използване на същата връзка, при която е започнал";
-    t[790] = "Invalid flags {0}";
-    t[791] = "Невалидни флагове {0}";
-    t[798] = "Query timeout must be a value greater than or equals to 0.";
-    t[799] = "Времето за изпълнение на заявката трябва да бъде стойност по-голяма или равна на 0.";
-    t[802] = "Hint: {0}";
-    t[803] = "Забележка: {0}";
-    t[810] = "The array index is out of range: {0}, number of elements: {1}.";
-    t[811] = "Индексът на масив е извън обхвата: {0}, брой елементи: {1}.";
-    t[812] = "Internal Query: {0}";
-    t[813] = "Вътрешна заявка: {0}";
-    t[816] = "commit called before end. commit xid={0}, state={1}";
-    t[817] = "commit извикан преди end. commit xid={0}, state={1}";
-    t[826] = "Unknown type {0}.";
-    t[827] = "Неизвестен тип {0}.";
-    t[828] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
-    t[829] = "ResultSets с concurrency CONCUR_READ_ONLY не могат да бъдат актуализирани.";
-    t[830] = "The connection attempt failed.";
-    t[831] = "Опита за връзка бе неуспешен.";
-    t[834] = "{0} function takes one and only one argument.";
-    t[835] = "Функцията {0} може да приеме само един единствен аргумент.";
-    t[838] = "suspend/resume not implemented";
-    t[839] = "спиране / започване не се поддържа за момента";
-    t[840] = "Error preparing transaction. prepare xid={0}";
-    t[841] = "Грешка при подготвяне на транзакция. prepare xid={0}";
-    t[852] = "Heuristic commit/rollback not supported. forget xid={0}";
-    t[853] = "Евристичен commit или rollback не се поддържа. forget xid={0}";
-    t[856] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
-    t[857] = "Бяха намерени невалидни данни. Това най-вероятно се дължи на съхранявани данни, съдържащи символи, които са невалидни за набора от знаци при създаване на базата данни. Чест пример за това е съхраняване на 8bit данни в SQL_ASCII бази данни.";
-    t[858] = "Cannot establish a savepoint in auto-commit mode.";
-    t[859] = "Не може да се установи savepoint в auto-commit модус.";
-    t[862] = "The column name {0} was not found in this ResultSet.";
-    t[863] = "Името на колоната {0} не бе намерено в този ResultSet.";
-    t[864] = "Prepare called before end. prepare xid={0}, state={1}";
-    t[865] = "Prepare извикано преди края. prepare xid={0}, state={1}";
-    t[866] = "Unknown Types value.";
-    t[867] = "Стойност от неизвестен тип.";
-    t[870] = "Cannot call updateRow() when on the insert row.";
-    t[871] = "Не може да се изпълни updateRow() метода, когато се намираме при редицата на въвеждане.";
-    t[876] = "Database connection failed when reading from copy";
-    t[877] = "Неосъществена връзка към базата данни при четене от копие";
-    t[880] = "Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
-    t[881] = "Грешка при възстановяване на състоянието преди подготвена транзакция. rollback xid={0}, preparedXid={1}, currentXid={2}";
-    t[882] = "Can''t use relative move methods while on the insert row.";
-    t[883] = "Не може да се използват относителни методи за движение, когато се намираме при редицата на въвеждане.";
-    t[884] = "free() was called on this LOB previously";
-    t[885] = "Функцията free() бе вече извикана за този голям обект LOB";
-    t[888] = "A CallableStatement was executed with nothing returned.";
-    t[889] = "CallableStatement функция бе обработена, но няма резултати.";
+    t[736] = "Connection attempt timed out.";
+    t[737] = "Времето за осъществяване на връзката изтече (таймаут).";
+    t[740] = "Got CopyInResponse from server during an active {0}";
+    t[741] = "Получен CopyInResponse отговор от сървъра при активно {0}";
+    t[744] = "Got {0} error responses to single copy cancel request";
+    t[745] = "Получени {0} отговори за грешка при единствено искане да се прекъсне копирането";
+    t[770] = "Database connection failed when ending copy";
+    t[771] = "Неосъществена връзка към базата данни при завършване на копирането";
+    t[774] = "Multiple ResultSets were returned by the query.";
+    t[775] = "Заявката върна няколко ResultSets.";
+    t[776] = "Cannot change transaction read-only property in the middle of a transaction.";
+    t[777] = "Не може да променяте правата на транзакцията по време на нейното извършване.";
+    t[778] = "ResultSet not positioned properly, perhaps you need to call next.";
+    t[779] = "ResultSet не е референциран правилно. Вероятно трябва да придвижите курсора посредством next.";
+    t[780] = "Too many update results were returned.";
+    t[781] = "Твърде много резултати бяха получени при актуализацията.";
+    t[784] = "{0} function takes three and only three arguments.";
+    t[785] = "Функцията {0} може да приеме три и само три аргумента.";
+    t[792] = "Returning autogenerated keys by column index is not supported.";
+    t[793] = "Автоматично генерирани ключове спрямо индекс на колона не се поддържат.";
+    t[794] = "This ResultSet is closed.";
+    t[795] = "Операциите по този ResultSet са били прекратени.";
+    t[796] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
+    t[797] = "Връзката бе автоматично прекъсната, защото нова връзка за същата беше осъществена или PooledConnection връзката е вече прекъсната.";
+    t[798] = "Truncation of large objects is only implemented in 8.3 and later servers.";
+    t[799] = "Скъсяване на големи обекти LOB е осъществено само във версии след 8.3.";
+    t[800] = "Cannot retrieve the name of an unnamed savepoint.";
+    t[801] = "Не може да определи името на неупомената savepoint.";
+    t[804] = "Transaction isolation level {0} not supported.";
+    t[805] = "Изолационно ниво на транзакциите {0} не се поддържа.";
+    t[810] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
+    t[811] = "Не може да се определи SQL тип, който да се използва за инстанцията на {0}. Ползвайте метода setObject() с точни стойности, за да определите типа.";
+    t[816] = "free() was called on this LOB previously";
+    t[817] = "Функцията free() бе вече извикана за този голям обект LOB";
+    t[818] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[819] = "Транзакцията вече е подготвена на тази връзка. prepare xid={0}, preparedXid={1}";
+    t[820] = "There are no rows in this ResultSet.";
+    t[821] = "В този ResultSet няма редове.";
+    t[824] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[825] = "end() е извикан без съответстващо извикване на start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[830] = "Zero bytes may not occur in string parameters.";
+    t[831] = "Не може да има нула байта в низ параметрите.";
+    t[838] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
+    t[839] = "Параметърът DateStyle при сървъра бе променен на {0}. JDBC драйвъра изисква DateStyle започва с ISO за да функционира правилно.";
+    t[842] = "Hint: {0}";
+    t[843] = "Забележка: {0}";
+    t[850] = "Interval {0} not yet implemented";
+    t[851] = "Интервалът {0} не е валиден все още.";
+    t[852] = "Requested CopyOut but got {0}";
+    t[853] = "Зададено CopyOut но получено {0}";
+    t[854] = "Got CopyData without an active copy operation";
+    t[855] = "Получено CopyData без наличие на активна операция за копиране";
+    t[860] = "Cannot tell if path is open or closed: {0}.";
+    t[861] = "Не може да определи дали адреса е отворен или затворен: {0}.";
     table = t;
   }
   public java.lang.Object handleGetObject (java.lang.String msgid) throws java.util.MissingResourceException {
     int hash_val = msgid.hashCode() & 0x7fffffff;
-    int idx = (hash_val % 445) << 1;
+    int idx = (hash_val % 433) << 1;
     {
       java.lang.Object found = table[idx];
       if (found == null)
@@ -394,11 +410,11 @@ public java.lang.Object handleGetObject (java.lang.String msgid) throws java.uti
       if (msgid.equals(found))
         return table[idx + 1];
     }
-    int incr = ((hash_val % 443) + 1) << 1;
+    int incr = ((hash_val % 431) + 1) << 1;
     for (;;) {
       idx += incr;
-      if (idx >= 890)
-        idx -= 890;
+      if (idx >= 866)
+        idx -= 866;
       java.lang.Object found = table[idx];
       if (found == null)
         return null;
@@ -410,13 +426,13 @@ public java.util.Enumeration getKeys () {
     return
       new java.util.Enumeration() {
         private int idx = 0;
-        { while (idx < 890 && table[idx] == null) idx += 2; }
+        { while (idx < 866 && table[idx] == null) idx += 2; }
         public boolean hasMoreElements () {
-          return (idx < 890);
+          return (idx < 866);
         }
         public java.lang.Object nextElement () {
           java.lang.Object key = table[idx];
-          do idx += 2; while (idx < 890 && table[idx] == null);
+          do idx += 2; while (idx < 866 && table[idx] == null);
           return key;
         }
       };
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_cs.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_cs.java
index 4ab1acb8fa..30dc3023a5 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_cs.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_cs.java
@@ -3,180 +3,230 @@
 public class messages_cs extends java.util.ResourceBundle {
   private static final java.lang.String[] table;
   static {
-    java.lang.String[] t = new java.lang.String[346];
+    java.lang.String[] t = new java.lang.String[430];
     t[0] = "";
     t[1] = "Project-Id-Version: PostgreSQL JDBC Driver 8.0\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2005-08-21 20:00+0200\nLast-Translator: Petr Dittrich <[email protected]>\nLanguage-Team: \nLanguage: \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n";
-    t[2] = "Can''t refresh the insert row.";
-    t[3] = "Nemohu obnovit vkládaný řádek.";
-    t[6] = "There are no rows in this ResultSet.";
-    t[7] = "Žádný řádek v ResultSet.";
-    t[8] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
-    t[9] = "Nalezena vada ve znakových datech. Toto může být způsobeno uloženými daty obsahujícími znaky, které jsou závadné pro znakovou sadu nastavenou při zakládání databáze. Nejznámejší příklad je ukládání 8bitových dat vSQL_ASCII databázi.";
-    t[10] = "Malformed function or procedure escape syntax at offset {0}.";
-    t[11] = "Poškozená funkce nebo opuštění procedury na pozici {0}.";
-    t[14] = "An error occurred while setting up the SSL connection.";
-    t[15] = "Nastala chyba při nastavení SSL spojení.";
-    t[16] = "Cannot cast an instance of {0} to type {1}";
-    t[17] = "Nemohu přetypovat instanci {0} na typ {1}";
-    t[20] = "Invalid stream length {0}.";
-    t[21] = "Vadná délka proudu {0}.";
-    t[24] = "Unexpected command status: {0}.";
-    t[25] = "Neočekávaný stav příkazu: {0}.";
-    t[32] = "A connection could not be made using the requested protocol {0}.";
-    t[33] = "Spojení nelze vytvořit s použitím žádaného protokolu {0}.";
-    t[36] = "{0} function takes two or three arguments.";
-    t[37] = "Funkce {0} bere dva nebo tři argumenty.";
-    t[38] = "Bad value for type {0} : {1}";
-    t[39] = "Špatná hodnota pro typ {0} : {1}";
-    t[40] = "An I/O error occurred while sending to the backend.";
-    t[41] = "Vystupně/výstupní chyba při odesílání k backend.";
-    t[48] = "Unknown type {0}.";
-    t[49] = "Neznámý typ {0}.";
-    t[52] = "The server does not support SSL.";
-    t[53] = "Server nepodporuje SSL.";
-    t[56] = "No results were returned by the query.";
-    t[57] = "Neobdržen žádný výsledek dotazu.";
-    t[60] = "Cannot call updateRow() when on the insert row.";
-    t[61] = "Nemohu volat updateRow() na vlkádaném řádku.";
-    t[62] = "Where: {0}";
-    t[63] = "Kde: {0}";
-    t[66] = "The array index is out of range: {0}, number of elements: {1}.";
-    t[67] = "Index pole mimo rozsah: {0}, počet prvků: {1}.";
-    t[68] = "Not on the insert row.";
-    t[69] = "Ne na vkládaném řádku.";
-    t[72] = "Cannot call cancelRowUpdates() when on the insert row.";
-    t[73] = "Nemůžete volat cancelRowUpdates() při vkládání řádku.";
-    t[82] = "Server SQLState: {0}";
-    t[83] = "Server SQLState: {0}";
-    t[84] = "The SSLSocketFactory class provided {0} could not be instantiated.";
-    t[85] = "Třída SSLSocketFactory poskytla {0} což nemůže být instancionizováno.";
-    t[88] = "The maximum field size must be a value greater than or equal to 0.";
-    t[89] = "Maximální velikost pole musí být nezáporné číslo.";
-    t[92] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
-    t[93] = "ResultSet není aktualizavatelný. Dotaz musí vybírat pouze z jedné tabulky a musí obsahovat všechny primární klíče tabulky. Koukni do JDBC 2.1 API Specifikace, sekce 5.6 pro více podrobností.";
-    t[100] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
-    t[101] = "ResultSets se souběžností CONCUR_READ_ONLY nemůže být aktualizováno";
-    t[108] = "The parameter index is out of range: {0}, number of parameters: {1}.";
-    t[109] = "Index parametru mimo rozsah: {0}, počet parametrů {1}.";
-    t[110] = "Unsupported Types value: {0}";
-    t[111] = "Nepodporovaná hodnota typu: {0}";
-    t[112] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
-    t[113] = "Právě jste za pozicí konce ResultSetu. Zde nemůžete volat deleteRow().s";
-    t[114] = "This ResultSet is closed.";
-    t[115] = "Tento ResultSet je uzavřený.";
-    t[122] = "Unable to load the class {0} responsible for the datatype {1}";
-    t[123] = "Nemohu načíst třídu {0} odpovědnou za typ {1}";
-    t[126] = "The column name {0} was not found in this ResultSet.";
-    t[127] = "Sloupec pojmenovaný {0} nebyl nalezen v ResultSet.";
-    t[134] = "LOB positioning offsets start at 1.";
-    t[135] = "Začátek pozicování LOB začína na 1.";
-    t[138] = "Error loading default settings from driverconfig.properties";
-    t[139] = "Chyba načítání standardního nastavení z driverconfig.properties";
-    t[142] = "The array index is out of range: {0}";
-    t[143] = "Index pole mimo rozsah: {0}";
-    t[144] = "Detail: {0}";
-    t[145] = "Detail: {0}";
-    t[146] = "Unknown Types value.";
-    t[147] = "Neznámá hodnota typu.";
-    t[150] = "Large Objects may not be used in auto-commit mode.";
-    t[151] = "Velké objecky nemohou být použity v auto-commit modu.";
-    t[152] = "You must specify at least one column value to insert a row.";
-    t[153] = "Musíte vyplnit alespoň jeden sloupec pro vložení řádku.";
-    t[154] = "Unable to translate data into the desired encoding.";
-    t[155] = "Nemohu přeložit data do požadovaného kódování.";
-    t[156] = "{0} function takes one and only one argument.";
-    t[157] = "Funkce {0} bere jeden argument.";
-    t[160] = "Cannot reference a savepoint after it has been released.";
-    t[161] = "Nemohu získat odkaz na savepoint, když byl uvolněn.";
-    t[168] = "Cannot retrieve the id of a named savepoint.";
-    t[169] = "Nemohu získat id nepojmenovaného savepointu.";
-    t[170] = "Unknown Response Type {0}.";
-    t[171] = "Neznámý typ odpovědi {0}.";
-    t[178] = "Invalid fetch direction constant: {0}.";
-    t[179] = "Špatný směr čtení: {0}.";
-    t[180] = "Multiple ResultSets were returned by the query.";
-    t[181] = "Vícenásobný ResultSet byl vrácen dotazem.";
-    t[184] = "Query timeout must be a value greater than or equals to 0.";
-    t[185] = "Časový limit dotazu musí být nezáporné číslo.";
-    t[186] = "Too many update results were returned.";
-    t[187] = "Bylo vráceno příliš mnoho výsledků aktualizací.";
-    t[190] = "The connection attempt failed.";
-    t[191] = "Pokus o připojení selhal.";
-    t[204] = "Protocol error.  Session setup failed.";
-    t[205] = "Chyba protokolu. Nastavení relace selhalo.";
-    t[206] = "This PooledConnection has already been closed.";
-    t[207] = "Tento PooledConnection byl uzavřen.";
-    t[208] = "DataSource has been closed.";
-    t[209] = "DataSource byl uzavřen.";
-    t[210] = "Unable to find name datatype in the system catalogs.";
-    t[211] = "Nemohu najít název typu v systémovém katalogu.";
-    t[212] = "Method {0} is not yet implemented.";
-    t[213] = "Metoda {0} není implementována.";
-    t[216] = "Hint: {0}";
-    t[217] = "Rada: {0}";
-    t[218] = "No value specified for parameter {0}.";
-    t[219] = "Nespecifikována hodnota parametru {0}.";
-    t[222] = "Position: {0}";
-    t[223] = "Pozice: {0}";
-    t[224] = "Can''t use relative move methods while on the insert row.";
-    t[225] = "Nemůžete používat relativní přesuny při vkládání řádku.";
-    t[226] = "Cannot call deleteRow() when on the insert row.";
-    t[227] = "Nemůžete volat deleteRow() při vkládání řádku.";
-    t[228] = "Cannot establish a savepoint in auto-commit mode.";
-    t[229] = "Nemohu vytvořit savepoint v auto-commit modu.";
-    t[240] = "The JVM claims not to support the encoding: {0}";
-    t[241] = "JVM tvrdí, že nepodporuje kodování: {0}";
-    t[248] = "Connection has been closed.";
-    t[249] = "Spojeni bylo uzavřeno.";
-    t[254] = "Unexpected error writing large object to database.";
-    t[255] = "Neočekávaná chyba při zapisování velkého objektu do databáze.";
-    t[256] = "This statement has been closed.";
-    t[257] = "Příkaz byl uzavřen.";
-    t[258] = "Failed to create object for: {0}.";
-    t[259] = "Selhalo vytvoření objektu: {0}.";
-    t[270] = "Statement has been closed.";
-    t[271] = "Statement byl uzavřen.";
-    t[276] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
-    t[277] = "Ověření typu {0} není podporováno. Zkontrolujte zda konfigurační soubor pg_hba.conf obsahuje klientskou IP adresu či podsíť a zda je použité ověřenovací schéma podporováno ovladačem.";
-    t[278] = "A CallableStatement was executed with nothing returned.";
-    t[279] = "CallableStatement byl spuštěn, leč nic nebylo vráceno.";
-    t[282] = "A result was returned when none was expected.";
-    t[283] = "Obdržen výsledek, ikdyž žádný nebyl očekáván.";
-    t[294] = "{0} function takes two and only two arguments.";
-    t[295] = "Funkce {0} bere právě dva argumenty.";
-    t[304] = "Provided Reader failed.";
-    t[305] = "Selhal poskytnutý Reader.";
-    t[306] = "Fetch size must be a value greater than or equal to 0.";
-    t[307] = "Nabraná velikost musí být nezáporná.";
-    t[308] = "Location: File: {0}, Routine: {1}, Line: {2}";
-    t[309] = "Poloha: Soubor: {0}, Rutina: {1}, Řádek: {2}";
-    t[310] = "Cannot retrieve the name of an unnamed savepoint.";
-    t[311] = "Nemohu získat název nepojmenovaného savepointu.";
-    t[312] = "Returning autogenerated keys is not supported.";
-    t[313] = "Vrácení automaticky generovaných klíčů není podporováno.";
-    t[314] = "An unexpected result was returned by a query.";
-    t[315] = "Obdržen neočekávaný výsledek dotazu.";
-    t[316] = "The column index is out of range: {0}, number of columns: {1}.";
-    t[317] = "Index sloupece je mimo rozsah: {0}, počet sloupců: {1}.";
-    t[318] = "Expected command status BEGIN, got {0}.";
-    t[319] = "Očekáván příkaz BEGIN, obdržen {0}.";
-    t[324] = "Conversion of money failed.";
-    t[325] = "Převod peněz selhal.";
-    t[326] = "The JVM claims not to support the {0} encoding.";
-    t[327] = "JVM tvrdí, že nepodporuje kodování {0}.";
-    t[332] = "{0} function takes four and only four argument.";
-    t[333] = "Funkce {0} bere přesně čtyři argumenty.";
-    t[334] = "{0} function doesn''t take any argument.";
-    t[335] = "Funkce {0} nebere žádný argument.";
-    t[336] = "Provided InputStream failed.";
-    t[337] = "Selhal poskytnutý InputStream.";
-    t[338] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
-    t[339] = "Něco neobvyklého přinutilo ovladač selhat. Prosím nahlaste tuto vyjímku.";
+    t[6] = "Hint: {0}";
+    t[7] = "Rada: {0}";
+    t[10] = "Protocol error.  Session setup failed.";
+    t[11] = "Chyba protokolu. Nastavení relace selhalo.";
+    t[12] = "Cannot reference a savepoint after it has been released.";
+    t[13] = "Nemohu získat odkaz na savepoint, když byl uvolněn.";
+    t[20] = "Server SQLState: {0}";
+    t[21] = "Server SQLState: {0}";
+    t[22] = "An unexpected result was returned by a query.";
+    t[23] = "Obdržen neočekávaný výsledek dotazu.";
+    t[28] = "Error loading default settings from driverconfig.properties";
+    t[29] = "Chyba načítání standardního nastavení z driverconfig.properties";
+    t[36] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
+    t[37] = "Ověření typu {0} není podporováno. Zkontrolujte zda konfigurační soubor pg_hba.conf obsahuje klientskou IP adresu či podsíť a zda je použité ověřenovací schéma podporováno ovladačem.";
+    t[38] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
+    t[39] = "ResultSets se souběžností CONCUR_READ_ONLY nemůže být aktualizováno";
+    t[40] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[41] = "Aktuální připojení nemá přiřazené xid. prepare xid={0}";
+    t[44] = "Connection has been closed.";
+    t[45] = "Spojeni bylo uzavřeno.";
+    t[48] = "Invalid stream length {0}.";
+    t[49] = "Vadná délka proudu {0}.";
+    t[52] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[53] = "Byl požadován neplatný stav protokolu. Pokus o prokládání transakcí není podporován. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[58] = "Bad value for type {0} : {1}";
+    t[59] = "Špatná hodnota pro typ {0} : {1}";
+    t[66] = "{0} function doesn''t take any argument.";
+    t[67] = "Funkce {0} nebere žádný argument.";
+    t[68] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[69] = "end() bylo zavoláno bez odpovídajícího start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[70] = "xid must not be null";
+    t[71] = "xid nesmí být null";
+    t[72] = "No value specified for parameter {0}.";
+    t[73] = "Nespecifikována hodnota parametru {0}.";
+    t[74] = "Cannot call cancelRowUpdates() when on the insert row.";
+    t[75] = "Nemůžete volat cancelRowUpdates() při vkládání řádku.";
+    t[78] = "Error during one-phase commit. commit xid={0}";
+    t[79] = "Chyba při jednofázovém potvrzení. commit xid={0}";
+    t[82] = "Position: {0}";
+    t[83] = "Pozice: {0}";
+    t[84] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[85] = "Připojení je již přiřazeno k aktivní XA větvi. Před zahájením nové větve ukončete tu stávající. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[86] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
+    t[87] = "Nalezena vada ve znakových datech. Toto může být způsobeno uloženými daty obsahujícími znaky, které jsou závadné pro znakovou sadu nastavenou při zakládání databáze. Nejznámejší příklad je ukládání 8bitových dat vSQL_ASCII databázi.";
+    t[90] = "Invalid flags {0}";
+    t[91] = "Neplatné příznaky {0}";
+    t[92] = "Can''t use relative move methods while on the insert row.";
+    t[93] = "Nemůžete používat relativní přesuny při vkládání řádku.";
+    t[94] = "Unsupported Types value: {0}";
+    t[95] = "Nepodporovaná hodnota typu: {0}";
+    t[98] = "Fetch size must be a value greater than or equal to 0.";
+    t[99] = "Nabraná velikost musí být nezáporná.";
+    t[100] = "The connection attempt failed.";
+    t[101] = "Pokus o připojení selhal.";
+    t[102] = "An I/O error occurred while sending to the backend.";
+    t[103] = "Vystupně/výstupní chyba při odesílání k backend.";
+    t[104] = "The JVM claims not to support the encoding: {0}";
+    t[105] = "JVM tvrdí, že nepodporuje kodování: {0}";
+    t[106] = "Invalid fetch direction constant: {0}.";
+    t[107] = "Špatný směr čtení: {0}.";
+    t[108] = "Cannot retrieve the name of an unnamed savepoint.";
+    t[109] = "Nemohu získat název nepojmenovaného savepointu.";
+    t[110] = "This PooledConnection has already been closed.";
+    t[111] = "Tento PooledConnection byl uzavřen.";
+    t[112] = "Method {0} is not yet implemented.";
+    t[113] = "Metoda {0} není implementována.";
+    t[114] = "Unexpected command status: {0}.";
+    t[115] = "Neočekávaný stav příkazu: {0}.";
+    t[118] = "This ResultSet is closed.";
+    t[119] = "Tento ResultSet je uzavřený.";
+    t[120] = "Cannot call updateRow() when on the insert row.";
+    t[121] = "Nemohu volat updateRow() na vlkádaném řádku.";
+    t[124] = "This statement has been closed.";
+    t[125] = "Příkaz byl uzavřen.";
+    t[130] = "{0} function takes one and only one argument.";
+    t[131] = "Funkce {0} bere jeden argument.";
+    t[134] = "Where: {0}";
+    t[135] = "Kde: {0}";
+    t[136] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
+    t[137] = "Právě jste za pozicí konce ResultSetu. Zde nemůžete volat deleteRow().s";
+    t[138] = "LOB positioning offsets start at 1.";
+    t[139] = "Začátek pozicování LOB začína na 1.";
+    t[144] = "Unable to translate data into the desired encoding.";
+    t[145] = "Nemohu přeložit data do požadovaného kódování.";
+    t[146] = "DataSource has been closed.";
+    t[147] = "DataSource byl uzavřen.";
+    t[150] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[151] = "Druhou fázi potvrzení nelze vydat, pokud je na tomto připojení aktivní XA větev. commit xid={0}, currentXid={1}, state={2}";
+    t[154] = "The array index is out of range: {0}";
+    t[155] = "Index pole mimo rozsah: {0}";
+    t[158] = "A CallableStatement was executed with nothing returned.";
+    t[159] = "CallableStatement byl spuštěn, leč nic nebylo vráceno.";
+    t[164] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[165] = "Chyba při potvrzování připravené transakce. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[168] = "A result was returned when none was expected.";
+    t[169] = "Obdržen výsledek, ikdyž žádný nebyl očekáván.";
+    t[170] = "Malformed function or procedure escape syntax at offset {0}.";
+    t[171] = "Poškozená funkce nebo opuštění procedury na pozici {0}.";
+    t[172] = "The SSLSocketFactory class provided {0} could not be instantiated.";
+    t[173] = "Třída SSLSocketFactory poskytla {0} což nemůže být instancionizováno.";
+    t[178] = "No results were returned by the query.";
+    t[179] = "Neobdržen žádný výsledek dotazu.";
+    t[180] = "There are no rows in this ResultSet.";
+    t[181] = "Žádný řádek v ResultSet.";
+    t[182] = "A connection could not be made using the requested protocol {0}.";
+    t[183] = "Spojení nelze vytvořit s použitím žádaného protokolu {0}.";
+    t[192] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[193] = "Heuristické commit/rollback není podporováno. forget xid={0}";
+    t[198] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[199] = "Metody řízení transakce setAutoCommit, commit, rollback a setSavepoint nejsou povoleny, pokud je aktivní XA transakce.";
+    t[202] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[203] = "Nelze odvolat připravenou transakci, dokud na tomto připojení probíhá lokální transakce. Nejprve potvrďte nebo odvolejte lokální transakci. rollback xid={0}, transactionState={1}";
+    t[206] = "Statement has been closed.";
+    t[207] = "Statement byl uzavřen.";
+    t[210] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[211] = "Jednofázové potvrzení bylo zavoláno pro xid {0}, ale připojení bylo připraveno s xid {1}";
+    t[216] = "The parameter index is out of range: {0}, number of parameters: {1}.";
+    t[217] = "Index parametru mimo rozsah: {0}, počet parametrů {1}.";
+    t[220] = "Multiple ResultSets were returned by the query.";
+    t[221] = "Vícenásobný ResultSet byl vrácen dotazem.";
+    t[228] = "Query timeout must be a value greater than or equals to 0.";
+    t[229] = "Časový limit dotazu musí být nezáporné číslo.";
+    t[230] = "Cannot retrieve the id of a named savepoint.";
+    t[231] = "Nemohu získat id nepojmenovaného savepointu.";
+    t[234] = "Unable to load the class {0} responsible for the datatype {1}";
+    t[235] = "Nemohu načíst třídu {0} odpovědnou za typ {1}";
+    t[236] = "Location: File: {0}, Routine: {1}, Line: {2}";
+    t[237] = "Poloha: Soubor: {0}, Rutina: {1}, Řádek: {2}";
+    t[238] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[239] = "Prepare musí být vydáno na připojení, které větev zahájilo. Prokládání transakcí není podporováno. prepare xid={0}, currentXid={1}";
+    t[242] = "The server does not support SSL.";
+    t[243] = "Server nepodporuje SSL.";
+    t[246] = "{0} function takes two and only two arguments.";
+    t[247] = "Funkce {0} bere právě dva argumenty.";
+    t[262] = "Unknown Response Type {0}.";
+    t[263] = "Neznámý typ odpovědi {0}.";
+    t[266] = "Error preparing transaction. prepare xid={0}";
+    t[267] = "Chyba při přípravě transakce. prepare xid={0}";
+    t[268] = "The column index is out of range: {0}, number of columns: {1}.";
+    t[269] = "Index sloupece je mimo rozsah: {0}, počet sloupců: {1}.";
+    t[276] = "An error occurred while setting up the SSL connection.";
+    t[277] = "Nastala chyba při nastavení SSL spojení.";
+    t[282] = "Conversion of money failed.";
+    t[283] = "Převod peněz selhal.";
+    t[284] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[285] = "Prepare bylo zavoláno před end(). prepare xid={0}, state={1}";
+    t[286] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
+    t[287] = "ResultSet není aktualizavatelný. Dotaz musí vybírat pouze z jedné tabulky a musí obsahovat všechny primární klíče tabulky. Koukni do JDBC 2.1 API Specifikace, sekce 5.6 pro více podrobností.";
+    t[288] = "Cannot establish a savepoint in auto-commit mode.";
+    t[289] = "Nemohu vytvořit savepoint v auto-commit modu.";
+    t[294] = "{0} function takes two or three arguments.";
+    t[295] = "Funkce {0} bere dva nebo tři argumenty.";
+    t[296] = "Unknown Types value.";
+    t[297] = "Neznámá hodnota typu.";
+    t[308] = "Error during recover. flag={0}";
+    t[309] = "Chyba při obnově. flag={0}";
+    t[310] = "The array index is out of range: {0}, number of elements: {1}.";
+    t[311] = "Index pole mimo rozsah: {0}, počet prvků: {1}.";
+    t[312] = "You must specify at least one column value to insert a row.";
+    t[313] = "Musíte vyplnit alespoň jeden sloupec pro vložení řádku.";
+    t[322] = "Suspend/resume not implemented";
+    t[323] = "Suspend/resume není implementováno";
+    t[330] = "Not on the insert row.";
+    t[331] = "Ne na vkládaném řádku.";
+    t[334] = "Failed to create object for: {0}.";
+    t[335] = "Selhalo vytvoření objektu: {0}.";
+    t[336] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[337] = "Chyba při odvolávání transakce. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[338] = "Error opening transaction. start xid={0}";
+    t[339] = "Chyba při otevírání transakce. start xid={0}";
+    t[342] = "The maximum field size must be a value greater than or equal to 0.";
+    t[343] = "Maximální velikost pole musí být nezáporné číslo.";
+    t[350] = "Can''t refresh the insert row.";
+    t[351] = "Nemohu obnovit vkládaný řádek.";
+    t[354] = "{0} function takes four and only four argument.";
+    t[355] = "Funkce {0} bere přesně čtyři argumenty.";
+    t[356] = "Too many update results were returned.";
+    t[357] = "Bylo vráceno příliš mnoho výsledků aktualizací.";
+    t[360] = "Large Objects may not be used in auto-commit mode.";
+    t[361] = "Velké objecky nemohou být použity v auto-commit modu.";
+    t[364] = "Expected command status BEGIN, got {0}.";
+    t[365] = "Očekáván příkaz BEGIN, obdržen {0}.";
+    t[366] = "Provided Reader failed.";
+    t[367] = "Selhal poskytnutý Reader.";
+    t[368] = "The column name {0} was not found in this ResultSet.";
+    t[369] = "Sloupec pojmenovaný {0} nebyl nalezen v ResultSet.";
+    t[372] = "Returning autogenerated keys is not supported.";
+    t[373] = "Vrácení automaticky generovaných klíčů není podporováno.";
+    t[376] = "commit() called before end(). commit xid={0}, state={1}";
+    t[377] = "commit() bylo zavoláno před end(). commit xid={0}, state={1}";
+    t[378] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[379] = "Nelze provést druhou fázi potvrzení připravené transakce, dokud na tomto připojení probíhá lokální transakce. Nejprve potvrďte nebo odvolejte lokální transakci. commit xid={0}, transactionState={1}";
+    t[384] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
+    t[385] = "Něco neobvyklého přinutilo ovladač selhat. Prosím nahlaste tuto vyjímku.";
+    t[386] = "Cannot cast an instance of {0} to type {1}";
+    t[387] = "Nemohu přetypovat instanci {0} na typ {1}";
+    t[392] = "Unable to find name datatype in the system catalogs.";
+    t[393] = "Nemohu najít název typu v systémovém katalogu.";
+    t[398] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[399] = "Transakce již byla na tomto připojení připravena. prepare xid={0}, preparedXid={1}";
+    t[402] = "Unexpected error writing large object to database.";
+    t[403] = "Neočekávaná chyba při zapisování velkého objektu do databáze.";
+    t[406] = "Unknown type {0}.";
+    t[407] = "Neznámý typ {0}.";
+    t[410] = "Cannot call deleteRow() when on the insert row.";
+    t[411] = "Nemůžete volat deleteRow() při vkládání řádku.";
+    t[414] = "Provided InputStream failed.";
+    t[415] = "Selhal poskytnutý InputStream.";
+    t[420] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[421] = "Jednofázové potvrzení s neznámým xid. commit xid={0}, currentXid={1}";
+    t[422] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[423] = "Jednofázové potvrzení musí být vydáno na připojení, které větev zahájilo. commit xid={0}";
+    t[424] = "Detail: {0}";
+    t[425] = "Detail: {0}";
+    t[428] = "The JVM claims not to support the {0} encoding.";
+    t[429] = "JVM tvrdí, že nepodporuje kodování {0}.";
     table = t;
   }
   public java.lang.Object handleGetObject (java.lang.String msgid) throws java.util.MissingResourceException {
     int hash_val = msgid.hashCode() & 0x7fffffff;
-    int idx = (hash_val % 173) << 1;
+    int idx = (hash_val % 215) << 1;
     {
       java.lang.Object found = table[idx];
       if (found == null)
@@ -184,11 +234,11 @@ public java.lang.Object handleGetObject (java.lang.String msgid) throws java.uti
       if (msgid.equals(found))
         return table[idx + 1];
     }
-    int incr = ((hash_val % 171) + 1) << 1;
+    int incr = ((hash_val % 213) + 1) << 1;
     for (;;) {
       idx += incr;
-      if (idx >= 346)
-        idx -= 346;
+      if (idx >= 430)
+        idx -= 430;
       java.lang.Object found = table[idx];
       if (found == null)
         return null;
@@ -200,13 +250,13 @@ public java.util.Enumeration getKeys () {
     return
       new java.util.Enumeration() {
         private int idx = 0;
-        { while (idx < 346 && table[idx] == null) idx += 2; }
+        { while (idx < 430 && table[idx] == null) idx += 2; }
         public boolean hasMoreElements () {
-          return (idx < 346);
+          return (idx < 430);
         }
         public java.lang.Object nextElement () {
           java.lang.Object key = table[idx];
-          do idx += 2; while (idx < 346 && table[idx] == null);
+          do idx += 2; while (idx < 430 && table[idx] == null);
           return key;
         }
       };
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_de.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_de.java
index 325d362b00..5f28703465 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_de.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_de.java
@@ -20,32 +20,44 @@ public class messages_de extends java.util.ResourceBundle {
     t[31] = "Keine Verbindung innerhalb des Zeitintervalls möglich.";
     t[32] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
     t[33] = "Der in SQL für eine Instanz von {0} zu verwendende Datentyp kann nicht abgeleitet werden. Benutzen Sie ''setObject()'' mit einem expliziten Typ, um ihn festzulegen.";
+    t[36] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[37] = "Die Verbindung ist bereits mit einem aktiven XA-Zweig verknüpft. Beenden Sie den aktuellen Zweig, bevor Sie einen neuen starten. start xid={0}, currentXid={1}, state={2}, flags={3}";
     t[38] = "Where: {0}";
     t[39] = "Wobei: {0}";
     t[42] = "ResultSet not positioned properly, perhaps you need to call next.";
     t[43] = "Das ResultSet ist nicht richtig positioniert. Eventuell muss ''next'' aufgerufen werden.";
+    t[44] = "Error during one-phase commit. commit xid={0}";
+    t[45] = "Bei der einphasigen Bestätigung trat ein Fehler auf. commit xid={0}";
     t[48] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
     t[49] = "Der Parameter ''Date Style'' wurde auf dem Server auf {0} verändert. Der JDBC-Treiber setzt für korrekte Funktion voraus, dass ''Date Style'' mit ''ISO'' beginnt.";
     t[58] = "Cannot change transaction read-only property in the middle of a transaction.";
     t[59] = "Die Nur-Lesen-Eigenschaft einer Transaktion kann nicht während der Transaktion verändert werden.";
+    t[62] = "commit() called before end(). commit xid={0}, state={1}";
+    t[63] = "commit() wurde vor end() aufgerufen. commit xid={0}, state={1}";
     t[72] = "No results were returned by the query.";
     t[73] = "Die Abfrage lieferte kein Ergebnis.";
     t[76] = "Cannot tell if path is open or closed: {0}.";
     t[77] = "Es konnte nicht ermittelt werden, ob der Pfad offen oder geschlossen ist: {0}.";
+    t[80] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[81] = "Die zweite Bestätigungsphase kann nicht abgesetzt werden, solange auf dieser Verbindung ein XA-Zweig aktiv ist. commit xid={0}, currentXid={1}, state={2}";
     t[88] = "The fastpath function {0} is unknown.";
     t[89] = "Die Fastpath-Funktion {0} ist unbekannt.";
     t[92] = "Cannot retrieve the id of a named savepoint.";
     t[93] = "Die ID eines benamten Rettungspunktes kann nicht ermittelt werden.";
     t[100] = "The column index is out of range: {0}, number of columns: {1}.";
     t[101] = "Der Spaltenindex {0} ist außerhalb des gültigen Bereichs. Anzahl Spalten: {1}.";
-    t[102] = "Error during recover";
-    t[103] = "Beim Wiederherstellen trat ein Fehler auf.";
     t[104] = "Protocol error.  Session setup failed.";
     t[105] = "Protokollfehler.  Die Sitzung konnte nicht gestartet werden.";
+    t[108] = "Suspend/resume not implemented";
+    t[109] = "Anhalten/Fortsetzen ist nicht implementiert.";
     t[112] = "free() was called on this LOB previously";
     t[113] = "free() wurde bereits für dieses LOB aufgerufen.";
+    t[114] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[115] = "end() wurde ohne zugehörigen start()-Aufruf aufgerufen. end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
     t[116] = "Unable to translate data into the desired encoding.";
     t[117] = "Die Daten konnten nicht in die gewünschte Kodierung gewandelt werden.";
+    t[126] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[127] = "Prepare wurde vor end() aufgerufen. prepare xid={0}, state={1}";
     t[130] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
     t[131] = "Das ResultSet kann nicht aktualisiert werden.  Die Abfrage, die es erzeugte, darf nur eine Tabelle und muss darin alle Primärschlüssel auswählen. Siehe JDBC 2.1 API-Spezifikation, Abschnitt 5.6 für mehr Details.";
     t[138] = "Cannot retrieve the name of an unnamed savepoint.";
@@ -54,8 +66,8 @@ public class messages_de extends java.util.ResourceBundle {
     t[143] = "Der Arrayindex {0} ist außerhalb des gültigen Bereichs. Vorhandene Elemente: {1}.";
     t[144] = "Cannot cast an instance of {0} to type {1}";
     t[145] = "Die Typwandlung für eine Instanz von {0} nach {1} ist nicht möglich.";
-    t[150] = "Connection is busy with another transaction";
-    t[151] = "Die Verbindung ist derzeit mit einer anderen Transaktion beschäftigt.";
+    t[152] = "Error during recover. flag={0}";
+    t[153] = "Beim Wiederherstellen trat ein Fehler auf. flag={0}";
     t[158] = "Bad value for type {0} : {1}";
     t[159] = "Unzulässiger Wert für den Typ {0} : {1}.";
     t[160] = "An unexpected result was returned by a query.";
@@ -76,6 +88,8 @@ public class messages_de extends java.util.ResourceBundle {
     t[187] = "Die Anweisung wurde geschlossen.";
     t[188] = "Error loading default settings from driverconfig.properties";
     t[189] = "Fehler beim Laden der Voreinstellungen aus driverconfig.properties";
+    t[190] = "Invalid flags {0}";
+    t[191] = "Ungültige Flags {0}";
     t[196] = "xid must not be null";
     t[197] = "Die xid darf nicht null sein.";
     t[204] = "Conversion to type {0} failed: {1}.";
@@ -92,6 +106,8 @@ public class messages_de extends java.util.ResourceBundle {
     t[219] = "Unerwarteter Befehlsstatus: {0}.";
     t[220] = "Cannot reference a savepoint after it has been released.";
     t[221] = "Ein Rettungspunkt kann nicht angesprochen werden, nach dem er entfernt wurde.";
+    t[222] = "Error opening transaction. start xid={0}";
+    t[223] = "Beim Öffnen der Transaktion trat ein Fehler auf. start xid={0}";
     t[228] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
     t[229] = "Der Authentifizierungstyp {0} wird nicht unterstützt. Stellen Sie sicher, dass die Datei ''pg_hba.conf'' die IP-Adresse oder das Subnetz des Clients enthält und dass der Client ein Authentifizierungsschema nutzt, das vom Treiber unterstützt wird.";
     t[242] = "Internal Position: {0}";
@@ -116,8 +132,8 @@ public class messages_de extends java.util.ResourceBundle {
     t[279] = "Diese PooledConnection ist bereits geschlossen worden.";
     t[280] = "Cannot call cancelRowUpdates() when on the insert row.";
     t[281] = "''cancelRowUpdates()'' kann in der Einfügezeile nicht aufgerufen werden.";
-    t[286] = "Error disabling autocommit";
-    t[287] = "Fehler beim Abschalten von Autocommit.";
+    t[284] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[285] = "Eine vorbereitete Transaktion kann nicht zurückgerollt werden, solange auf dieser Verbindung eine lokale Transaktion läuft. Bestätigen oder rollen Sie zuerst die lokale Transaktion zurück. rollback xid={0}, transactionState={1}";
     t[288] = "PostgreSQL LOBs can only index to: {0}";
     t[289] = "LOBs in PostgreSQL können nur auf {0} verweisen.";
     t[290] = "Provided InputStream failed.";
@@ -126,6 +142,10 @@ public class messages_de extends java.util.ResourceBundle {
     t[299] = "Beim Schreiben eines LargeObjects (LOB) in die Datenbank trat ein unerwarteter Fehler auf.";
     t[300] = "Fetch size must be a value greater than or equal to 0.";
     t[301] = "Die Fetch-Größe muss ein Wert größer oder gleich Null sein.";
+    t[310] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[311] = "Fehler beim Bestätigen einer vorbereiteten Transaktion. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[312] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[313] = "Auf dieser Verbindung wurde bereits eine Transaktion vorbereitet. prepare xid={0}, preparedXid={1}";
     t[314] = "The parameter index is out of range: {0}, number of parameters: {1}.";
     t[315] = "Der Parameterindex {0} ist außerhalb des gültigen Bereichs. Es gibt {1} Parameter.";
     t[316] = "Not on the insert row.";
@@ -148,6 +168,8 @@ public class messages_de extends java.util.ResourceBundle {
     t[365] = "Die Methode {0} ist noch nicht implementiert.";
     t[368] = "Unknown ResultSet holdability setting: {0}.";
     t[369] = "Unbekannte Einstellung für die Haltbarkeit des ResultSets: {0}.";
+    t[374] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[375] = "Die zweite Bestätigungsphase einer vorbereiteten Transaktion kann nicht ausgeführt werden, solange auf dieser Verbindung eine lokale Transaktion läuft. Bestätigen oder rollen Sie zuerst die lokale Transaktion zurück. commit xid={0}, transactionState={1}";
     t[376] = "wasNull cannot be call before fetching a result.";
     t[377] = "wasNull kann nicht aufgerufen werden, bevor ein Ergebnis abgefragt wurde.";
     t[378] = "Returning autogenerated keys is not supported.";
@@ -156,6 +178,8 @@ public class messages_de extends java.util.ResourceBundle {
     t[381] = "Das ResultSet kann nicht aktualisiert werden, da es entweder vor oder nach dem Ende der Ergebnisse ist.";
     t[384] = "Unable to bind parameter values for statement.";
     t[385] = "Der Anweisung konnten keine Parameterwerte zugewiesen werden.";
+    t[390] = "Error preparing transaction. prepare xid={0}";
+    t[391] = "Beim Vorbereiten der Transaktion trat ein Fehler auf. prepare xid={0}";
     t[396] = "LOB positioning offsets start at 1.";
     t[397] = "Positionsoffsets für LOBs beginnen bei 1.";
     t[404] = "Transaction isolation level {0} not supported.";
@@ -166,6 +190,8 @@ public class messages_de extends java.util.ResourceBundle {
     t[413] = "Die Umwandlung eines Intervalls schlug fehl.";
     t[414] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
     t[415] = "Eine CallableStatement-Funktion wurde ausgeführt und der Rückgabewert {0} war vom Typ {1}. Jedoch wurde der Typ {2} dafür registriert.";
+    t[416] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[417] = "Die Transaktionssteuerungsmethoden setAutoCommit, commit, rollback und setSavepoint sind nicht erlaubt, solange eine XA-Transaktion aktiv ist.";
     t[422] = "Statement has been closed.";
     t[423] = "Die Anweisung wurde geschlossen.";
     t[424] = "Fastpath call {0} - No result was returned and we expected an integer.";
@@ -178,8 +204,6 @@ public class messages_de extends java.util.ResourceBundle {
     t[433] = "Unbekannter Typ.";
     t[434] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
     t[435] = "Die Operation erfordert ein scrollbares ResultSet, dieses jedoch ist FORWARD_ONLY.";
-    t[444] = "suspend/resume not implemented";
-    t[445] = "Anhalten/Fortsetzen ist nicht implementiert.";
     t[454] = "Conversion of money failed.";
     t[455] = "Die Umwandlung eines Währungsbetrags schlug fehl.";
     t[462] = "The SSLSocketFactory class provided {0} could not be instantiated.";
@@ -212,6 +236,8 @@ public class messages_de extends java.util.ResourceBundle {
     t[519] = "Das Abfragetimeout muss ein Wert größer oder gleich Null sein.";
     t[520] = "There are no rows in this ResultSet.";
     t[521] = "Es gibt keine Zeilen in diesem ResultSet.";
+    t[524] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[525] = "Heuristisches Commit/Rollback wird nicht unterstützt. forget xid={0}";
     t[528] = "Provided Reader failed.";
     t[529] = "Der bereitgestellte Reader scheiterte.";
     t[530] = "Internal Query: {0}";
@@ -220,6 +246,8 @@ public class messages_de extends java.util.ResourceBundle {
     t[533] = "Die JVM behauptet, die Zeichenkodierung {0} nicht zu unterstützen.";
     t[544] = "The column name {0} was not found in this ResultSet.";
     t[545] = "Der Spaltenname {0} wurde in diesem ResultSet nicht gefunden.";
+    t[546] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[547] = "Fehler beim Zurückrollen der Transaktion. rollback xid={0}, preparedXid={1}, currentXid={2}";
     t[560] = "No value specified for parameter {0}.";
     t[561] = "Für den Parameter {0} wurde kein Wert angegeben.";
     t[562] = "Can''t refresh the insert row.";
@@ -230,8 +258,10 @@ public class messages_de extends java.util.ResourceBundle {
     t[569] = "Die ClientInfo-Eigenschaft ist nicht unterstützt.";
     t[570] = "Malformed function or procedure escape syntax at offset {0}.";
     t[571] = "Unzulässige Syntax für ein Funktions- oder Prozedur-Escape an Offset {0}.";
-    t[582] = "Not implemented: one-phase commit must be issued using the same connection that was used to start it";
-    t[583] = "Nicht implementiert: Die einphasige Bestätigung muss über die selbe Verbindung abgewickelt werden, die verwendet wurde, um sie zu beginnen.";
+    t[590] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[591] = "Einphasige Bestätigung wurde für xid {0} aufgerufen, die Verbindung wurde jedoch mit xid {1} vorbereitet.";
+    t[602] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[603] = "Einphasige Bestätigung mit unbekannter xid. commit xid={0}, currentXid={1}";
     t[606] = "Position: {0}";
     t[607] = "Position: {0}";
     t[612] = "Detail: {0}";
@@ -262,12 +292,18 @@ public class messages_de extends java.util.ResourceBundle {
     t[645] = "Zu viele Updateergebnisse wurden zurückgegeben.";
     t[650] = "Cannot convert an instance of {0} to type {1}";
     t[651] = "Die Typwandlung für eine Instanz von {0} nach {1} ist nicht möglich.";
+    t[652] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[653] = "Prepare muss über die Verbindung abgesetzt werden, die den Zweig gestartet hat. Verschachtelte Transaktionen werden nicht unterstützt. prepare xid={0}, currentXid={1}";
+    t[660] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[661] = "Die einphasige Bestätigung muss über die Verbindung abgesetzt werden, die den Zweig gestartet hat. commit xid={0}";
     t[664] = "The maximum field size must be a value greater than or equal to 0.";
     t[665] = "Die maximale Feldgröße muss ein Wert größer oder gleich Null sein.";
     t[666] = "Interval {0} not yet implemented";
     t[667] = "Intervall {0} ist noch nicht implementiert.";
     t[668] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
     t[669] = "Ein Parameter des Typs {0} wurde registriert, jedoch erfolgte ein Aufruf get{1} (sqltype={2}).";
+    t[672] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[673] = "Mit der aktuellen Verbindung ist keine xid verknüpft. prepare xid={0}";
     t[674] = "Cannot establish a savepoint in auto-commit mode.";
     t[675] = "Ein Rettungspunkt kann im Modus ''auto-commit'' nicht erstellt werden.";
     t[676] = "A result was returned when none was expected.";
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_es.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_es.java
index 389c1ce119..293d93b7ad 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_es.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_es.java
@@ -3,44 +3,80 @@
 public class messages_es extends java.util.ResourceBundle {
   private static final java.lang.String[] table;
   static {
-    java.lang.String[] t = new java.lang.String[62];
+    java.lang.String[] t = new java.lang.String[178];
     t[0] = "";
     t[1] = "Project-Id-Version: JDBC PostgreSQL Driver\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2004-10-22 16:51-0300\nLast-Translator: Diego Gil <[email protected]>\nLanguage-Team: \nLanguage: \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nX-Poedit-Language: Spanish\n";
-    t[6] = "An unexpected result was returned by a query.";
-    t[7] = "Una consulta retornó un resultado inesperado.";
-    t[8] = "A result was returned when none was expected.";
-    t[9] = "Se retornó un resultado cuando no se esperaba ninguno.";
-    t[10] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
-    t[11] = "Algo inusual ha ocurrido que provocó un fallo en el controlador. Por favor reporte esta excepción.";
-    t[14] = "The server does not support SSL.";
-    t[15] = "Este servidor no soporta SSL.";
-    t[18] = "No value specified for parameter {0}.";
-    t[19] = "No se ha especificado un valor para el parámetro {0}.";
-    t[22] = "The array index is out of range: {0}, number of elements: {1}.";
-    t[23] = "El índice del arreglo esta fuera de rango: {0}, número de elementos: {1}.";
-    t[24] = "Protocol error.  Session setup failed.";
-    t[25] = "Error de protocolo. Falló el inicio de la sesión.";
-    t[28] = "The column index is out of range: {0}, number of columns: {1}.";
-    t[29] = "El índice de la columna está fuera de rango: {0}, número de columnas: {1}.";
-    t[36] = "No results were returned by the query.";
-    t[37] = "La consulta no retornó ningún resultado.";
-    t[38] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
-    t[39] = "Final prematuro del flujo de entrada, se esperaban {0} bytes, pero solo se leyeron {1}.";
-    t[42] = "Unknown Response Type {0}.";
-    t[43] = "Tipo de respuesta desconocida {0}.";
-    t[44] = "Server SQLState: {0}";
-    t[45] = "SQLState del servidor: {0}.";
-    t[46] = "The connection attempt failed.";
-    t[47] = "El intento de conexión falló.";
-    t[48] = "An error occurred while setting up the SSL connection.";
-    t[49] = "Ha ocorrido un error mientras se establecía la conexión SSL.";
-    t[56] = "Failed to create object for: {0}.";
-    t[57] = "Fallo al crear objeto: {0}.";
+    t[2] = "Server SQLState: {0}";
+    t[3] = "SQLState del servidor: {0}.";
+    t[4] = "Unknown Response Type {0}.";
+    t[5] = "Tipo de respuesta desconocida {0}.";
+    t[6] = "The column index is out of range: {0}, number of columns: {1}.";
+    t[7] = "El índice de la columna está fuera de rango: {0}, número de columnas: {1}.";
+    t[12] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[13] = "No se puede deshacer una transacción preparada mientras hay una transacción local en curso en esta conexión. Confirme o deshaga primero la transacción local. rollback xid={0}, transactionState={1}";
+    t[40] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
+    t[41] = "Final prematuro del flujo de entrada, se esperaban {0} bytes, pero solo se leyeron {1}.";
+    t[56] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[57] = "Se llamó a Prepare antes de end(). prepare xid={0}, state={1}";
+    t[66] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[67] = "Se llamó a end() sin una llamada start() correspondiente. end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[68] = "commit() called before end(). commit xid={0}, state={1}";
+    t[69] = "Se llamó a commit() antes de end(). commit xid={0}, state={1}";
+    t[72] = "An error occurred while setting up the SSL connection.";
+    t[73] = "Ha ocorrido un error mientras se establecía la conexión SSL.";
+    t[78] = "Failed to create object for: {0}.";
+    t[79] = "Fallo al crear objeto: {0}.";
+    t[80] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
+    t[81] = "Algo inusual ha ocurrido que provocó un fallo en el controlador. Por favor reporte esta excepción.";
+    t[82] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[83] = "Los métodos de control de transacción setAutoCommit, commit, rollback y setSavepoint no están permitidos mientras una transacción XA está activa.";
+    t[84] = "No results were returned by the query.";
+    t[85] = "La consulta no retornó ningún resultado.";
+    t[92] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[93] = "Prepare debe emitirse en la conexión que inició la rama. El entrelazado de transacciones no está soportado. prepare xid={0}, currentXid={1}";
+    t[96] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[97] = "Error al deshacer la transacción. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[98] = "The array index is out of range: {0}, number of elements: {1}.";
+    t[99] = "El índice del arreglo esta fuera de rango: {0}, número de elementos: {1}.";
+    t[102] = "A result was returned when none was expected.";
+    t[103] = "Se retornó un resultado cuando no se esperaba ninguno.";
+    t[104] = "Protocol error.  Session setup failed.";
+    t[105] = "Error de protocolo. Falló el inicio de la sesión.";
+    t[106] = "Error during recover. flag={0}";
+    t[107] = "Error durante la recuperación. flag={0}";
+    t[108] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[109] = "El commit de una fase debe emitirse en la conexión que inició la rama. commit xid={0}";
+    t[118] = "The connection attempt failed.";
+    t[119] = "El intento de conexión falló.";
+    t[122] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[123] = "No se puede confirmar (segunda fase) una transacción preparada mientras hay una transacción local en curso en esta conexión. Confirme o deshaga primero la transacción local. commit xid={0}, transactionState={1}";
+    t[128] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[129] = "La conexión ya está asociada a una rama XA activa. Finalice la rama actual antes de iniciar una nueva. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[130] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[131] = "Se invocó commit de una fase para xid {0} pero la conexión fue preparada con xid {1}";
+    t[132] = "The server does not support SSL.";
+    t[133] = "Este servidor no soporta SSL.";
+    t[134] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[135] = "La conexión actual no tiene un xid asociado. prepare xid={0}";
+    t[140] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[141] = "La transacción ya había sido preparada en esta conexión. prepare xid={0}, preparedXid={1}";
+    t[144] = "No value specified for parameter {0}.";
+    t[145] = "No se ha especificado un valor para el parámetro {0}.";
+    t[156] = "Error opening transaction. start xid={0}";
+    t[157] = "Error al abrir la transacción. start xid={0}";
+    t[158] = "Suspend/resume not implemented";
+    t[159] = "Este método aún no ha sido implementado.";
+    t[162] = "An unexpected result was returned by a query.";
+    t[163] = "Una consulta retornó un resultado inesperado.";
+    t[172] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[173] = "Commit de una fase con xid desconocido. commit xid={0}, currentXid={1}";
+    t[174] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[175] = "No se puede emitir el commit de segunda fase mientras hay una rama XA activa en esta conexión. commit xid={0}, currentXid={1}, state={2}";
     table = t;
   }
   public java.lang.Object handleGetObject (java.lang.String msgid) throws java.util.MissingResourceException {
     int hash_val = msgid.hashCode() & 0x7fffffff;
-    int idx = (hash_val % 31) << 1;
+    int idx = (hash_val % 89) << 1;
     {
       java.lang.Object found = table[idx];
       if (found == null)
@@ -48,11 +84,11 @@ public java.lang.Object handleGetObject (java.lang.String msgid) throws java.uti
       if (msgid.equals(found))
         return table[idx + 1];
     }
-    int incr = ((hash_val % 29) + 1) << 1;
+    int incr = ((hash_val % 87) + 1) << 1;
     for (;;) {
       idx += incr;
-      if (idx >= 62)
-        idx -= 62;
+      if (idx >= 178)
+        idx -= 178;
       java.lang.Object found = table[idx];
       if (found == null)
         return null;
@@ -64,13 +100,13 @@ public java.util.Enumeration getKeys () {
     return
       new java.util.Enumeration() {
         private int idx = 0;
-        { while (idx < 62 && table[idx] == null) idx += 2; }
+        { while (idx < 178 && table[idx] == null) idx += 2; }
         public boolean hasMoreElements () {
-          return (idx < 62);
+          return (idx < 178);
         }
         public java.lang.Object nextElement () {
           java.lang.Object key = table[idx];
-          do idx += 2; while (idx < 62 && table[idx] == null);
+          do idx += 2; while (idx < 178 && table[idx] == null);
           return key;
         }
       };
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_fr.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_fr.java
index 71d98e3ef5..02648d3e91 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_fr.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_fr.java
@@ -20,32 +20,44 @@ public class messages_fr extends java.util.ResourceBundle {
     t[31] = "La tentative de connexion a échoué dans le délai imparti.";
     t[32] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
     t[33] = "Impossible de déduire le type SQL à utiliser pour une instance de {0}. Utilisez setObject() avec une valeur de type explicite pour spécifier le type à utiliser.";
+    t[36] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[37] = "La connection est déjà associée à une branche XA active. Terminez la branche en cours avant d''en démarrer une nouvelle. start xid={0}, currentXid={1}, state={2}, flags={3}";
     t[38] = "Where: {0}";
     t[39] = "Où : {0}";
     t[42] = "ResultSet not positioned properly, perhaps you need to call next.";
     t[43] = "Le ResultSet n''est pas positionné correctement, vous devez peut-être appeler next().";
+    t[44] = "Error during one-phase commit. commit xid={0}";
+    t[45] = "Erreur pendant le commit à une phase. commit xid={0}";
     t[48] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
     t[49] = "Le paramètre DateStyle du serveur a été changé pour {0}. Le pilote JDBC nécessite que DateStyle commence par ISO pour un fonctionnement correct.";
     t[58] = "Cannot change transaction read-only property in the middle of a transaction.";
     t[59] = "Impossible de changer la propriété read-only d''une transaction au milieu d''une transaction.";
+    t[62] = "commit() called before end(). commit xid={0}, state={1}";
+    t[63] = "commit() appelé avant end(). commit xid={0}, state={1}";
     t[72] = "No results were returned by the query.";
     t[73] = "Aucun résultat retourné par la requête.";
     t[76] = "Cannot tell if path is open or closed: {0}.";
     t[77] = "Impossible de dire si path est fermé ou ouvert : {0}.";
+    t[80] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[81] = "Le commit à deux phases ne peut être envoyé tant qu''une branche XA est active sur cette connection. commit xid={0}, currentXid={1}, state={2}";
     t[88] = "The fastpath function {0} is unknown.";
     t[89] = "La fonction fastpath {0} est inconnue.";
     t[92] = "Cannot retrieve the id of a named savepoint.";
     t[93] = "Impossible de retrouver l''identifiant d''un savepoint nommé.";
     t[100] = "The column index is out of range: {0}, number of columns: {1}.";
     t[101] = "L''indice de la colonne est hors limite : {0}, nombre de colonnes : {1}.";
-    t[102] = "Error during recover";
-    t[103] = "Erreur durant la restauration";
     t[104] = "Protocol error.  Session setup failed.";
     t[105] = "Erreur de protocole. Ouverture de la session en échec.";
+    t[108] = "Suspend/resume not implemented";
+    t[109] = "Suspend/resume pas implémenté";
     t[112] = "free() was called on this LOB previously";
     t[113] = "free() a été appelée auparavant sur ce LOB";
+    t[114] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[115] = "end() appelé sans start() correspondant. end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
     t[116] = "Unable to translate data into the desired encoding.";
     t[117] = "Impossible de traduire les données dans l''encodage désiré.";
+    t[126] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[127] = "Préparation appelée avant end(). prepare xid={0}, state={1}";
     t[130] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
     t[131] = "Le ResultSet n''est pas modifiable. La requête qui a généré ce résultat doit sélectionner seulement une table, et doit sélectionner toutes les clés primaires de cette table. Voir la spécification de l''API JDBC 2.1, section 5.6 pour plus de détails.";
     t[138] = "Cannot retrieve the name of an unnamed savepoint.";
@@ -54,8 +66,8 @@ public class messages_fr extends java.util.ResourceBundle {
     t[143] = "L''indice du tableau est hors limites : {0}, nombre d''éléments : {1}.";
     t[144] = "Cannot cast an instance of {0} to type {1}";
     t[145] = "Impossible de convertir une instance de {0} vers le type {1}";
-    t[150] = "Connection is busy with another transaction";
-    t[151] = "La connection est occupée avec une autre transaction";
+    t[152] = "Error during recover. flag={0}";
+    t[153] = "Erreur durant la restauration. flag={0}";
     t[158] = "Bad value for type {0} : {1}";
     t[159] = "Mauvaise valeur pour le type {0} : {1}";
     t[160] = "An unexpected result was returned by a query.";
@@ -76,6 +88,8 @@ public class messages_fr extends java.util.ResourceBundle {
     t[187] = "Ce statement a été fermé.";
     t[188] = "Error loading default settings from driverconfig.properties";
     t[189] = "Erreur de chargement des valeurs par défaut depuis driverconfig.properties";
+    t[190] = "Invalid flags {0}";
+    t[191] = "Drapeaux invalides {0}";
     t[196] = "xid must not be null";
     t[197] = "xid ne doit pas être nul";
     t[204] = "Conversion to type {0} failed: {1}.";
@@ -90,6 +104,8 @@ public class messages_fr extends java.util.ResourceBundle {
     t[219] = "Statut de commande inattendu : {0}.";
     t[220] = "Cannot reference a savepoint after it has been released.";
     t[221] = "Impossible de référencer un savepoint après qu''il ait été libéré.";
+    t[222] = "Error opening transaction. start xid={0}";
+    t[223] = "Erreur à l''ouverture de la transaction. start xid={0}";
     t[228] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
     t[229] = "Le type d''authentification {0} n''est pas supporté. Vérifiez que vous avez configuré le fichier pg_hba.conf pour inclure l''adresse IP du client ou le sous-réseau et qu''il utilise un schéma d''authentification supporté par le pilote.";
     t[242] = "Internal Position: {0}";
@@ -114,8 +130,8 @@ public class messages_fr extends java.util.ResourceBundle {
     t[279] = "Cette PooledConnection a déjà été fermée.";
     t[280] = "Cannot call cancelRowUpdates() when on the insert row.";
     t[281] = "Impossible d''appeler cancelRowUpdates() pendant l''insertion d''une ligne.";
-    t[286] = "Error disabling autocommit";
-    t[287] = "Erreur en désactivant autocommit";
+    t[284] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[285] = "Impossible d''annuler une transaction préparée tant qu''une transaction locale est en cours sur cette connection. Validez ou annulez d''abord la transaction locale. rollback xid={0}, transactionState={1}";
     t[288] = "PostgreSQL LOBs can only index to: {0}";
     t[289] = "Les LOB PostgreSQL peuvent seulement s''indicer à: {0}";
     t[290] = "Provided InputStream failed.";
@@ -124,6 +140,10 @@ public class messages_fr extends java.util.ResourceBundle {
     t[299] = "Erreur inattendue pendant l''écriture de large object dans la base.";
     t[300] = "Fetch size must be a value greater than or equal to 0.";
     t[301] = "Fetch size doit être une valeur supérieur ou égal à 0.";
+    t[310] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[311] = "État de protocole demandé invalide. L''entrelacement de transactions n''est pas supporté. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[312] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[313] = "La transaction a déjà été préparée sur cette connection. prepare xid={0}, preparedXid={1}";
     t[314] = "The parameter index is out of range: {0}, number of parameters: {1}.";
     t[315] = "L''indice du paramètre est hors limites : {0}, nombre de paramètres : {1}.";
     t[316] = "Not on the insert row.";
@@ -148,6 +168,8 @@ public class messages_fr extends java.util.ResourceBundle {
     t[365] = "La fonction {0} n''est pas encore implémentée.";
     t[368] = "Unknown ResultSet holdability setting: {0}.";
     t[369] = "Paramètre holdability du ResultSet inconnu : {0}.";
+    t[374] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[375] = "Impossible de valider en deuxième phase une transaction préparée tant qu''une transaction locale est en cours sur cette connection. Validez ou annulez d''abord la transaction locale. commit xid={0}, transactionState={1}";
     t[376] = "wasNull cannot be call before fetching a result.";
     t[377] = "wasNull ne peut pas être appelé avant la récupération d''un résultat.";
     t[378] = "Returning autogenerated keys is not supported.";
@@ -156,6 +178,8 @@ public class messages_fr extends java.util.ResourceBundle {
     t[381] = "Impossible de mettre à jour le ResultSet car c''est soit avant le début ou après la fin des résultats.";
     t[384] = "Unable to bind parameter values for statement.";
     t[385] = "Incapable de lier les valeurs des paramètres pour la commande.";
+    t[390] = "Error preparing transaction. prepare xid={0}";
+    t[391] = "Erreur en préparant la transaction. prepare xid={0}";
     t[396] = "LOB positioning offsets start at 1.";
     t[397] = "Les décalages de position des LOB commencent à 1.";
     t[404] = "Transaction isolation level {0} not supported.";
@@ -166,6 +190,8 @@ public class messages_fr extends java.util.ResourceBundle {
     t[413] = "La conversion de l''intervalle a échoué";
     t[414] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
     t[415] = "Une fonction CallableStatement a été exécutée et le paramètre en sortie {0} était du type {1} alors que le type {2} était prévu.";
+    t[416] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[417] = "Les méthodes de contrôle de transaction setAutoCommit, commit, rollback et setSavepoint ne sont pas autorisées lorsqu''une transaction XA est active.";
     t[422] = "Statement has been closed.";
     t[423] = "Statement a été fermé.";
     t[424] = "Fastpath call {0} - No result was returned and we expected an integer.";
@@ -178,8 +204,6 @@ public class messages_fr extends java.util.ResourceBundle {
     t[433] = "Valeur de Types inconnue.";
     t[434] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
     t[435] = "L''opération nécessite un scrollable ResultSet, mais ce ResultSet est FORWARD_ONLY.";
-    t[444] = "suspend/resume not implemented";
-    t[445] = "suspend/resume pas implémenté";
     t[450] = "No function outputs were registered.";
     t[451] = "Aucune fonction outputs n''a été enregistrée.";
     t[454] = "Conversion of money failed.";
@@ -214,6 +238,8 @@ public class messages_fr extends java.util.ResourceBundle {
     t[519] = "Query timeout doit être une valeur supérieure ou égale à 0.";
     t[520] = "There are no rows in this ResultSet.";
     t[521] = "Il n''y pas pas de lignes dans ce ResultSet.";
+    t[524] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[525] = "Heuristic commit/rollback non supporté. forget xid={0}";
     t[528] = "Provided Reader failed.";
     t[529] = "Le Reader fourni a échoué.";
     t[530] = "Internal Query: {0}";
@@ -222,6 +248,8 @@ public class messages_fr extends java.util.ResourceBundle {
     t[533] = "Une erreur d''entrée/sortie a eu lieu lors d''envoi vers le serveur.";
     t[544] = "The column name {0} was not found in this ResultSet.";
     t[545] = "Le nom de colonne {0} n''a pas été trouvé dans ce ResultSet.";
+    t[546] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[547] = "Erreur en annulant la transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
     t[560] = "No value specified for parameter {0}.";
     t[561] = "Pas de valeur spécifiée pour le paramètre {0}.";
     t[562] = "Can''t refresh the insert row.";
@@ -230,8 +258,12 @@ public class messages_fr extends java.util.ResourceBundle {
     t[567] = "L''indice du tableau est hors limites : {0}";
     t[570] = "Malformed function or procedure escape syntax at offset {0}.";
     t[571] = "Syntaxe de fonction ou d''échappement de procédure malformée à l''indice {0}.";
-    t[582] = "Not implemented: one-phase commit must be issued using the same connection that was used to start it";
-    t[583] = "Pas implémenté: le commit à une phase doit avoir lieu en utilisant la même connection que celle où il a commencé";
+    t[578] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[579] = "Erreur en validant une transaction préparée. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[590] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[591] = "Commit à une phase appelé pour xid {0} mais la connection a été préparée avec xid {1}";
+    t[602] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[603] = "Commit à une phase avec un xid inconnu. commit xid={0}, currentXid={1}";
     t[606] = "Position: {0}";
     t[607] = "Position : {0}";
     t[612] = "Detail: {0}";
@@ -262,12 +294,18 @@ public class messages_fr extends java.util.ResourceBundle {
     t[645] = "Trop de résultats de mise à jour ont été retournés.";
     t[650] = "Cannot convert an instance of {0} to type {1}";
     t[651] = "Impossible de convertir une instance de type {0} vers le type {1}";
+    t[652] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[653] = "Prepare doit être envoyé sur la connection qui a démarré la branche. L''entrelacement de transactions n''est pas supporté. prepare xid={0}, currentXid={1}";
+    t[660] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[661] = "Le commit à une phase doit être envoyé sur la connection qui a démarré la branche. commit xid={0}";
     t[664] = "The maximum field size must be a value greater than or equal to 0.";
     t[665] = "La taille maximum des champs doit être une valeur supérieure ou égale à 0.";
     t[666] = "Interval {0} not yet implemented";
     t[667] = "L''interval {0} n''est pas encore implémenté";
     t[668] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
     t[669] = "Un paramètre de type {0} a été enregistré, mais un appel à get{1} (sqltype={2}) a été fait.";
+    t[672] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[673] = "La connection courante n''a pas de xid associé. prepare xid={0}";
     t[674] = "Cannot establish a savepoint in auto-commit mode.";
     t[675] = "Impossible d''établir un savepoint en mode auto-commit.";
     t[676] = "A result was returned when none was expected.";
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_it.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_it.java
index dc394ca2db..88c1e3851b 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_it.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_it.java
@@ -20,30 +20,42 @@ public class messages_it extends java.util.ResourceBundle {
     t[31] = "Il tentativo di connessione è scaduto.";
     t[32] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
     t[33] = "Non è possibile identificare il tipo SQL da usare per l''istanza di tipo «{0}». Usare «setObject()» specificando esplicitamente il tipo da usare per questo valore.";
+    t[36] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[37] = "La connessione è già associata a un ramo XA attivo. Terminare il ramo corrente prima di avviarne uno nuovo. start xid={0}, currentXid={1}, state={2}, flags={3}";
     t[38] = "Where: {0}";
     t[39] = "Dove: {0}";
     t[42] = "ResultSet not positioned properly, perhaps you need to call next.";
     t[43] = "Il «ResultSet» non è correttamente posizionato; forse è necessario invocare «next()».";
+    t[44] = "Error during one-phase commit. commit xid={0}";
+    t[45] = "Errore durante il commit «one-phase». commit xid={0}";
     t[48] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
     t[49] = "Il parametro del server «DateStyle» è stato cambiato in {0}. Il driver JDBC richiede che «DateStyle» cominci con «ISO» per un corretto funzionamento.";
     t[58] = "Cannot change transaction read-only property in the middle of a transaction.";
     t[59] = "Non è possibile modificare la proprietà «read-only» delle transazioni nel mezzo di una transazione.";
+    t[62] = "commit() called before end(). commit xid={0}, state={1}";
+    t[63] = "commit() invocato prima di end(). commit xid={0}, state={1}";
     t[72] = "No results were returned by the query.";
     t[73] = "Nessun risultato è stato restituito dalla query.";
     t[76] = "Cannot tell if path is open or closed: {0}.";
     t[77] = "Impossibile stabilire se il percorso è aperto o chiuso: {0}.";
+    t[80] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[81] = "Il commit di seconda fase non può essere eseguito mentre un ramo XA è attivo su questa connessione. commit xid={0}, currentXid={1}, state={2}";
     t[88] = "The fastpath function {0} is unknown.";
     t[89] = "La funzione fastpath «{0}» è sconosciuta.";
     t[92] = "Cannot retrieve the id of a named savepoint.";
     t[93] = "Non è possibile trovare l''id del punto di ripristino indicato.";
     t[100] = "The column index is out of range: {0}, number of columns: {1}.";
     t[101] = "Indice di colonna, {0}, è maggiore del numero di colonne {1}.";
-    t[102] = "Error during recover";
-    t[103] = "Errore durante il ripristino";
     t[104] = "Protocol error.  Session setup failed.";
     t[105] = "Errore di protocollo. Impostazione della sessione fallita.";
+    t[108] = "Suspend/resume not implemented";
+    t[109] = "«Suspend»/«resume» non implementato";
+    t[114] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[115] = "end() chiamato senza una corrispondente start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
     t[116] = "Unable to translate data into the desired encoding.";
     t[117] = "Impossibile tradurre i dati nella codifica richiesta.";
+    t[126] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[127] = "«Prepare» invocato prima di end(). prepare xid={0}, state={1}";
     t[130] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
     t[131] = "Il «ResultSet» non è aggiornabile. La query che lo genera deve selezionare una sola tabella e deve selezionarne tutti i campi che ne compongono la chiave primaria. Si vedano le specifiche dell''API JDBC 2.1, sezione 5.6, per ulteriori dettagli.";
     t[138] = "Cannot retrieve the name of an unnamed savepoint.";
@@ -52,8 +64,8 @@ public class messages_it extends java.util.ResourceBundle {
     t[143] = "L''indice dell''array è fuori intervallo: {0}, numero di elementi: {1}.";
     t[144] = "Cannot cast an instance of {0} to type {1}";
     t[145] = "Non è possibile fare il cast di una istanza di «{0}» al tipo «{1}».";
-    t[150] = "Connection is busy with another transaction";
-    t[151] = "La connessione è utilizzata da un''altra transazione";
+    t[152] = "Error during recover. flag={0}";
+    t[153] = "Errore durante il ripristino. flag={0}";
     t[158] = "Bad value for type {0} : {1}";
     t[159] = "Il valore «{1}» non è adeguato al tipo «{0}».";
     t[160] = "An unexpected result was returned by a query.";
@@ -72,6 +84,8 @@ public class messages_it extends java.util.ResourceBundle {
     t[187] = "Questo statement è stato chiuso.";
     t[188] = "Error loading default settings from driverconfig.properties";
     t[189] = "Si è verificato un errore caricando le impostazioni predefinite da «driverconfig.properties».";
+    t[190] = "Invalid flags {0}";
+    t[191] = "Flag non validi {0}";
     t[196] = "xid must not be null";
     t[197] = "xid non può essere NULL";
     t[204] = "Conversion to type {0} failed: {1}.";
@@ -86,6 +100,8 @@ public class messages_it extends java.util.ResourceBundle {
     t[219] = "Stato del comando non previsto: {0}.";
     t[220] = "Cannot reference a savepoint after it has been released.";
     t[221] = "Non è possibile utilizzare un punto di ripristino successivamente al suo rilascio.";
+    t[222] = "Error opening transaction. start xid={0}";
+    t[223] = "Errore nell''apertura della transazione. start xid={0}";
     t[228] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
     t[229] = "L''autenticazione di tipo {0} non è supportata. Verificare che nel file di configurazione pg_hba.conf sia presente l''indirizzo IP o la sottorete del client, e che lo schema di autenticazione utilizzato sia supportato dal driver.";
     t[242] = "Internal Position: {0}";
@@ -106,8 +122,8 @@ public class messages_it extends java.util.ResourceBundle {
     t[279] = "Questo «PooledConnection» è stato chiuso.";
     t[280] = "Cannot call cancelRowUpdates() when on the insert row.";
     t[281] = "Non è possibile invocare «cancelRowUpdates()» durante l''inserimento di una riga.";
-    t[286] = "Not implemented: one-phase commit must be issued using the same connection that was used to start it";
-    t[287] = "Non implementato: il commit \"one-phase\" deve essere invocato sulla stessa connessione che ha iniziato la transazione.";
+    t[284] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[285] = "Impossibile effettuare il rollback di una transazione preparata mentre una transazione locale è in corso su questa connessione. Eseguire prima il commit o il rollback della transazione locale. rollback xid={0}, transactionState={1}";
     t[288] = "PostgreSQL LOBs can only index to: {0}";
     t[289] = "Il massimo valore per l''indice dei LOB di PostgreSQL è {0}. ";
     t[290] = "Provided InputStream failed.";
@@ -116,6 +132,10 @@ public class messages_it extends java.util.ResourceBundle {
     t[299] = "Errore inatteso inviando un «large object» al database.";
     t[300] = "Fetch size must be a value greater than or equal to 0.";
     t[301] = "La dimensione dell''area di «fetch» deve essere maggiore o eguale a 0.";
+    t[310] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[311] = "Errore durante il commit di una transazione preparata. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[312] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[313] = "La transazione è già stata preparata su questa connessione. prepare xid={0}, preparedXid={1}";
     t[314] = "The parameter index is out of range: {0}, number of parameters: {1}.";
     t[315] = "Il parametro indice è fuori intervallo: {0}, numero di elementi: {1}.";
     t[316] = "Not on the insert row.";
@@ -138,12 +158,16 @@ public class messages_it extends java.util.ResourceBundle {
     t[365] = "Il metodo «{0}» non è stato ancora implementato.";
     t[368] = "Unknown ResultSet holdability setting: {0}.";
     t[369] = "Il parametro «holdability» per il «ResultSet» è sconosciuto: {0}.";
+    t[374] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[375] = "Impossibile eseguire il commit di seconda fase di una transazione preparata mentre una transazione locale è in corso su questa connessione. Eseguire prima il commit o il rollback della transazione locale. commit xid={0}, transactionState={1}";
     t[378] = "Returning autogenerated keys is not supported.";
     t[379] = "La restituzione di chiavi autogenerate non è supportata.";
     t[380] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
     t[381] = "Non è possibile aggiornare il «ResultSet» perché la posizione attuale è precedente all''inizio o successiva alla file dei risultati.";
     t[384] = "Unable to bind parameter values for statement.";
     t[385] = "Impossibile fare il «bind» dei valori passati come parametri per lo statement.";
+    t[390] = "Error preparing transaction. prepare xid={0}";
+    t[391] = "Errore nella preparazione della transazione. prepare xid={0}";
     t[396] = "LOB positioning offsets start at 1.";
     t[397] = "L''offset per la posizione dei LOB comincia da 1.";
     t[404] = "Transaction isolation level {0} not supported.";
@@ -154,6 +178,8 @@ public class messages_it extends java.util.ResourceBundle {
     t[413] = "Fallita la conversione di un «interval».";
     t[414] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
     t[415] = "È stato eseguito un «CallableStatement» ma il parametro in uscita «{0}» era di tipo «{1}» al posto di «{2}», che era stato dichiarato.";
+    t[416] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[417] = "I metodi di controllo della transazione setAutoCommit, commit, rollback e setSavepoint non sono consentiti mentre una transazione XA è attiva.";
     t[422] = "Statement has been closed.";
     t[423] = "Questo «Statement» è stato chiuso.";
     t[424] = "Fastpath call {0} - No result was returned and we expected an integer.";
@@ -166,8 +192,6 @@ public class messages_it extends java.util.ResourceBundle {
     t[433] = "Valore di tipo sconosciuto.";
     t[434] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
     t[435] = "L''operazione richiete un «ResultSet» scorribile mentre questo è «FORWARD_ONLY».";
-    t[444] = "suspend/resume not implemented";
-    t[445] = "«suspend»/«resume» non implementato";
     t[454] = "Conversion of money failed.";
     t[455] = "Fallita la conversione di un «money».";
     t[462] = "The SSLSocketFactory class provided {0} could not be instantiated.";
@@ -200,6 +224,8 @@ public class messages_it extends java.util.ResourceBundle {
     t[519] = "Il timeout relativo alle query deve essere maggiore o eguale a 0.";
     t[520] = "There are no rows in this ResultSet.";
     t[521] = "Non ci sono righe in questo «ResultSet».";
+    t[524] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[525] = "«Commit»/«rollback» euristico non supportato. forget xid={0}";
     t[528] = "Provided Reader failed.";
     t[529] = "Il «Reader» fornito è fallito.";
     t[530] = "Internal Query: {0}";
@@ -208,6 +234,8 @@ public class messages_it extends java.util.ResourceBundle {
     t[533] = "Si è verificato un errore di I/O nella spedizione di dati al server.";
     t[544] = "The column name {0} was not found in this ResultSet.";
     t[545] = "Colonna denominata «{0}» non è presente in questo «ResultSet».";
+    t[546] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[547] = "Errore durante il rollback della transazione. rollback xid={0}, preparedXid={1}, currentXid={2}";
     t[560] = "No value specified for parameter {0}.";
     t[561] = "Nessun valore specificato come parametro {0}.";
     t[562] = "Can''t refresh the insert row.";
@@ -216,6 +244,10 @@ public class messages_it extends java.util.ResourceBundle {
     t[567] = "Indice di colonna fuori dall''intervallo ammissibile: {0}";
     t[570] = "Malformed function or procedure escape syntax at offset {0}.";
     t[571] = "Sequenza di escape definita erroneamente nella funzione o procedura all''offset {0}.";
+    t[590] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[591] = "Commit «one-phase» invocato per xid {0} ma la connessione è stata preparata con xid {1}";
+    t[602] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[603] = "Commit «one-phase» con xid sconosciuto. commit xid={0}, currentXid={1}";
     t[606] = "Position: {0}";
     t[607] = "Posizione: {0}";
     t[612] = "Detail: {0}";
@@ -246,12 +278,18 @@ public class messages_it extends java.util.ResourceBundle {
     t[645] = "Sono stati restituiti troppi aggiornamenti.";
     t[650] = "Cannot convert an instance of {0} to type {1}";
     t[651] = "Non è possibile convertire una istanza di «{0}» nel tipo «{1}»";
+    t[652] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[653] = "«Prepare» deve essere eseguito sulla connessione che ha avviato il ramo. L''interleaving delle transazioni non è supportato. prepare xid={0}, currentXid={1}";
+    t[660] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[661] = "Il commit «one-phase» deve essere eseguito sulla connessione che ha avviato il ramo. commit xid={0}";
     t[664] = "The maximum field size must be a value greater than or equal to 0.";
     t[665] = "La dimensione massima del campo deve essere maggiore o eguale a 0.";
     t[666] = "Interval {0} not yet implemented";
     t[667] = "L''intervallo «{0}» non è stato ancora implementato.";
     t[668] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
     t[669] = "È stato definito il parametro di tipo «{0}», ma poi è stato invocato il metodo «get{1}()» (sqltype={2}).";
+    t[672] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[673] = "La connessione corrente non ha un xid associato. prepare xid={0}";
     t[674] = "Cannot establish a savepoint in auto-commit mode.";
     t[675] = "Non è possibile impostare i punti di ripristino in modalità «auto-commit».";
     t[676] = "A result was returned when none was expected.";
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_ja.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_ja.java
index 5a12fbfd3d..fa8ff04516 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_ja.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_ja.java
@@ -10,8 +10,6 @@ public class messages_ja extends java.util.ResourceBundle {
     t[7] = "PostgreSQL LOB 上の位置指定は最大 {0} までです";
     t[14] = "The server does not support SSL.";
     t[15] = "サーバはSSLをサポートしていません。";
-    t[22] = "Error disabling autocommit";
-    t[23] = "自動コミットの無効化処理中のエラー";
     t[24] = "Hint: {0}";
     t[25] = "ヒント: {0}";
     t[28] = "Interrupted while attempting to connect.";
@@ -26,8 +24,6 @@ public class messages_ja extends java.util.ResourceBundle {
     t[47] = "データソースはクローズされました。";
     t[54] = "The fastpath function {0} is unknown.";
     t[55] = "{0} は未知の fastpath 関数です。";
-    t[64] = "Prepare called before end. prepare xid={0}, state={1}";
-    t[65] = "end より前に prepare が呼ばれました prepare xid={0}, state={1}";
     t[66] = "Internal Query: {0}";
     t[67] = "内部クエリ: {0}";
     t[68] = "An unexpected result was returned by a query.";
@@ -40,6 +36,8 @@ public class messages_ja extends java.util.ResourceBundle {
     t[89] = "CopyIn を要求しましたが {0} が返却されました";
     t[90] = "Tried to write to an inactive copy operation";
     t[91] = "実行中ではないコピー操作に書き込もうとしました";
+    t[92] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[93] = "接続はすでに有効な XA ブランチと関連付けられています。新しいブランチを開始する前に、現在のブランチを終了してください。start xid={0}, currentXid={1}, state={2}, flags={3}";
     t[94] = "{0} function takes four and only four argument.";
     t[95] = "{0} 関数はちょうど4個の引数を取ります。";
     t[98] = "Unable to decode xml data.";
@@ -82,14 +80,10 @@ public class messages_ja extends java.util.ResourceBundle {
     t[167] = "xidはnullではいけません。";
     t[168] = "Database connection failed when canceling copy operation";
     t[169] = "コピー操作中断のためのデータベース接続に失敗しました";
-    t[174] = "tried to call end without corresponding start call. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[175] = "対応する start の呼び出しなしで、end を呼び出しました。state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
     t[180] = "Enter SSL password: ";
     t[181] = "SSLパスワード入力: ";
     t[182] = "{0} function takes one and only one argument.";
     t[183] = "{0} 関数はちょうど1個の引数を取ります。";
-    t[184] = "suspend/resume not implemented";
-    t[185] = "停止/再開 は実装されていません。";
     t[192] = "Interrupted while waiting to obtain lock on database connection";
     t[193] = "データベース接続のロック待ちの最中に割り込みがありました";
     t[194] = "Could not find a java cryptographic algorithm: X.509 CertificateFactory not available.";
@@ -110,8 +104,6 @@ public class messages_ja extends java.util.ResourceBundle {
     t[223] = "SSLコンテクストを初期化できませんでした。";
     t[224] = "An error occurred reading the certificate";
     t[225] = "証明書の読み込み中にエラーが起きました";
-    t[228] = "Transaction control methods setAutoCommit(true), commit, rollback and setSavePoint not allowed while an XA transaction is active.";
-    t[229] = "トランザクション制御メソッド setAutoCommit(true), commit, rollback, setSavePoint は、XAトランザクションが有効である間は利用できません。";
     t[234] = "Could not open SSL root certificate file {0}.";
     t[235] = "SSLルート証明書ファイル {0} をオープンできませんでした。";
     t[236] = "Received CommandComplete ''{0}'' without an active copy operation";
@@ -146,6 +138,8 @@ public class messages_ja extends java.util.ResourceBundle {
     t[307] = "CallableStatement は不正な数のパラメータで実行されました。";
     t[308] = "Could not read SSL key file {0}.";
     t[309] = "SSL keyファイル {0} を読めませんでした。";
+    t[310] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[311] = "単相コミットは、ブランチを開始した接続で発行しなくてはなりません。commit xid={0}";
     t[316] = "Unknown ResultSet holdability setting: {0}.";
     t[317] = "ResultSet の holdability に対する未知の設定値です: {0}";
     t[320] = "Unexpected error writing large object to database.";
@@ -162,8 +156,6 @@ public class messages_ja extends java.util.ResourceBundle {
     t[339] = "この ResultSet はクローズされています。";
     t[340] = "Returning autogenerated keys by column index is not supported.";
     t[341] = "列インデックスで自動生成キーを返すことはサポートされていません。";
-    t[348] = "Error during recover";
-    t[349] = "recover 処理中のエラー";
     t[350] = "Cannot truncate LOB to a negative length.";
     t[351] = "LOBを負の長さに切り詰めることはできません。";
     t[356] = "Can''t use executeWithFlags(int) on a Statement.";
@@ -186,16 +178,18 @@ public class messages_ja extends java.util.ResourceBundle {
     t[391] = "JVMでサポートされないエンコーディングです: {0}";
     t[392] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
     t[393] = "このSQLXMLオブジェクトは既に初期化済みであるため、これ以上操作できません。";
+    t[394] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[395] = "end() より前に prepare が呼ばれました。prepare xid={0}, state={1}";
     t[400] = "The environment variable containing the server's SSL certificate must not be empty.";
     t[401] = "サーバのSSL証明書を指定する環境変数は空であってはなりません。";
     t[404] = "Database connection failed when ending copy";
     t[405] = "コピー操作の終了中にデータベース接続で異常が発生しました";
-    t[414] = "Not implemented: Prepare must be issued using the same connection that started the transaction. currentXid={0}, prepare xid={1}";
-    t[415] = "実装されていません: Prepareは、トランザクションを開始したものと同じコネクションで発行しなくてはなりません。currentXid={0}, prepare xid={1}";
+    t[418] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[419] = "トランザクションのロールバック中のエラー。rollback xid={0}, preparedXid={1}, currentXid={2}";
     t[424] = "Invalid UUID data.";
     t[425] = "不正なUUIDデータです。";
-    t[428] = "commit called before end. commit xid={0}, state={1}";
-    t[429] = "end の前に COMMIT を呼びました commit xid={0}, state={1}";
+    t[428] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[429] = "この接続ではすでにトランザクションがプリペアされています。prepare xid={0}, preparedXid={1}";
     t[430] = "Custom type maps are not supported.";
     t[431] = "カスタム型マップはサポートされません。";
     t[436] = "Method {0} is not yet implemented.";
@@ -226,6 +220,8 @@ public class messages_ja extends java.util.ResourceBundle {
     t[491] = "位置: {0}";
     t[492] = "Conversion to type {0} failed: {1}.";
     t[493] = "{0} への型変換に失敗しました: {1}";
+    t[500] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[501] = "この接続でローカルトランザクションが進行中のため、プリペアドトランザクションをロールバックできません。先にローカルトランザクションを commit または rollback してください。rollback xid={0}, transactionState={1}";
     t[502] = "Failed to create object for: {0}.";
     t[503] = "{0} のオブジェクトの生成に失敗しました。";
     t[504] = "A CallableStatement was executed with nothing returned.";
@@ -234,6 +230,8 @@ public class messages_ja extends java.util.ResourceBundle {
     t[511] = "SSL keyファイルのパスワードを読めませんでした。コンソールは利用できません。";
     t[514] = "Cannot call cancelRowUpdates() when on the insert row.";
     t[515] = "行挿入時に cancelRowUpdates() を呼び出せません。";
+    t[516] = "commit() called before end(). commit xid={0}, state={1}";
+    t[517] = "end() の前に commit() が呼ばれました。commit xid={0}, state={1}";
     t[518] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
     t[519] = "システムカタログにデータがないため MaxIndexKeys の値を決定できません。";
     t[520] = "Not on the insert row.";
@@ -246,6 +244,8 @@ public class messages_ja extends java.util.ResourceBundle {
     t[541] = "行挿入時に deleteRow() を呼び出せません。";
     t[544] = "Provided Reader failed.";
     t[545] = "渡された Reader で異常が発生しました。";
+    t[548] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[549] = "この接続で XA ブランチが有効である間は、第二フェーズの commit を発行できません。commit xid={0}, currentXid={1}, state={2}";
     t[550] = "Unable to find keywords in the system catalogs.";
     t[551] = "キーワードはシステムカタログにありません。";
     t[552] = "Invalid sslmode value: {0}";
@@ -260,6 +260,8 @@ public class messages_ja extends java.util.ResourceBundle {
     t[571] = "{0}型のカラムの値を指定の型 {1} に変換できませんでした。";
     t[572] = "No hstore extension installed.";
     t[573] = "hstore 拡張がインストールされてません。";
+    t[576] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[577] = "トランザクション制御メソッド setAutoCommit, commit, rollback, setSavepoint は、XAトランザクションが有効である間は利用できません。";
     t[580] = "Error during one-phase commit. commit xid={0}";
     t[581] = "単一フェーズのCOMMITの処理中のエラー commit xid={0}";
     t[586] = "Invalid stream length {0}.";
@@ -280,6 +282,8 @@ public class messages_ja extends java.util.ResourceBundle {
     t[617] = "バイナリxmlデータのエンコード: {0} への変換に失敗しました。";
     t[626] = "The server''s client_encoding parameter was changed to {0}. The JDBC driver requires client_encoding to be UTF8 for correct operation.";
     t[627] = "サーバの client_encoding パラメータが {0} に変わりました。JDBCドライバが正しく動作するためには、 client_encoding は UTF8 である必要があります。";
+    t[628] = "Suspend/resume not implemented";
+    t[629] = "停止/再開 は実装されていません。";
     t[630] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
     t[631] = "何らかの異常によりドライバが動作できません。この例外を報告して下さい。";
     t[636] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
@@ -374,20 +378,24 @@ public class messages_ja extends java.util.ResourceBundle {
     t[829] = "SQLXMLに対するStAXResultを生成できません。";
     t[832] = "Tried to cancel an inactive copy operation";
     t[833] = "実行中ではないコピー操作の中断を試みました";
-    t[834] = "Not implemented: 2nd phase commit must be issued using an idle connection. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[835] = "実装されていません: 第二フェーズの COMMIT は、待機接続で使わなくてはなりません。xid={0}, currentXid={1}, state={2}, transactionState={3}";
     t[844] = "{0} function takes two or three arguments.";
     t[845] = "{0} 関数は2個、または3個の引数を取ります。";
     t[846] = "Zero bytes may not occur in string parameters.";
     t[847] = "バイト値0を文字列ラメータに含めることはできません。";
     t[848] = "Could not read SSL root certificate file {0}.";
     t[849] = "SSLルート証明書ファイル {0} を読めませんでした。";
+    t[850] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[851] = "この接続でローカルトランザクションが進行中のため、プリペアドトランザクションの第二フェーズの commit を実行できません。先にローカルトランザクションを commit または rollback してください。commit xid={0}, transactionState={1}";
     t[852] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
     t[853] = "バインドメッセージ長 {0} は長すぎます。InputStreamのパラメータにとても大きな長さ、あるいは不正確な長さが設定されている可能性があります。";
     t[862] = "No IOException expected from StringBuffer or StringBuilder";
     t[863] = "StringBuffer または StringBuilder からの IOException は想定されていません";
     t[864] = "Unsupported binary encoding of {0}.";
     t[865] = "{0} 型に対するサポートされないバイナリエンコーディング。";
+    t[868] = "Error opening transaction. start xid={0}";
+    t[869] = "トランザクションの開始エラー。start xid={0}";
+    t[870] = "Error during recover. flag={0}";
+    t[871] = "recover 処理中のエラー。flag={0}";
     t[878] = "Can''t refresh the insert row.";
     t[879] = "挿入行を再フェッチすることはできません。";
     t[880] = "This SQLXML object has already been freed.";
@@ -436,6 +444,8 @@ public class messages_ja extends java.util.ResourceBundle {
     t[973] = "関数またはプロシージャの間違ったエスケープ構文が位置{0}で見つかりました。";
     t[978] = "Unable to bind parameter values for statement.";
     t[979] = "ステートメントのパラメータ値をバインドできませんでした。";
+    t[980] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[981] = "対応する start() の呼び出しなしで、end() が呼び出されました。end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
     t[986] = "{0} function takes two and only two arguments.";
     t[987] = "{0} 関数はちょうど2個の引数を取ります。";
     t[992] = "A connection could not be made using the requested protocol {0}.";
@@ -464,8 +474,6 @@ public class messages_ja extends java.util.ResourceBundle {
     t[1019] = "すでに取得中のロックを取得しようとしました";
     t[1020] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
     t[1021] = "RsultSet の開始点より前にいるため、deleteRow() を呼ぶことはできません。";
-    t[1022] = "Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
-    t[1023] = "プリペアドトランザクションのロールバック中のエラー rollback xid={0}, preparedXid={1}, currentXid={2}";
     t[1028] = "Validating connection.";
     t[1029] = "コネクションを検証しています";
     t[1032] = "Invalid elements {0}";
@@ -474,8 +482,8 @@ public class messages_ja extends java.util.ResourceBundle {
     t[1035] = "行挿入には、最低でも1つの列の値が必要です。";
     t[1036] = "The JVM claims not to support the {0} encoding.";
     t[1037] = "JVMは、エンコーディング {0} をサポートしません。";
-    t[1038] = "Not implemented: one-phase commit must be issued using the same connection that was used to start it";
-    t[1039] = "実装されていません: 単一フェーズのCOMMITは、開始時と同じ接続で発行されなければなりません。";
+    t[1038] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[1039] = "prepare は、ブランチを開始した接続で発行しなくてはなりません。Transaction interleaving はサポートされていません。prepare xid={0}, currentXid={1}";
     t[1040] = "Invalid flags {0}";
     t[1041] = "不正なフラグ {0}";
     t[1046] = "Got CopyBothResponse from server during an active {0}";
@@ -486,8 +494,6 @@ public class messages_ja extends java.util.ResourceBundle {
     t[1057] = "SSL keyファイル {0} を復号できませんでした。";
     t[1060] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
     t[1061] = "入力ストリームが途中で終了しました、{0} バイトを読み込もうとしましたが、 {1} バイトしかありませんでした。";
-    t[1062] = "Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}";
-    t[1063] = "すでにプリペアされているトランザクションをプリペアしようとしました、プリペアされている xid={0}, プリペアしようとした xid={1}";
     t[1064] = "Cannot call updateRow() when on the insert row.";
     t[1065] = "挿入行上では updateRow() を呼び出すことができません。";
     t[1068] = "Unexpected packet type during copy: {0}";
@@ -536,8 +542,6 @@ public class messages_ja extends java.util.ResourceBundle {
     t[1161] = "バックエンドへの送信中に、入出力エラーが起こりました。";
     t[1162] = "Truncation of large objects is only implemented in 8.3 and later servers.";
     t[1163] = "ラージオブジェクトの切り詰めは、バージョン8.3 以降のサーバでのみ実装されています。";
-    t[1168] = "Connection is busy with another transaction";
-    t[1169] = "接続は、別のトランザクションを処理中です";
     t[1176] = "Batch entry {0} {1} was aborted: {2}  Call getNextException to see other errors in the batch.";
     t[1177] = "バッチ {0} {1} はアボートしました: {2} このバッチの他のエラーは getNextException を呼び出すことで確認できます。";
     table = t;
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_ko.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_ko.java
index f33bcbf7e5..10e51c2703 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_ko.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_ko.java
@@ -3,664 +3,668 @@
 public class messages_ko extends java.util.ResourceBundle {
   private static final java.lang.String[] table;
   static {
-    java.lang.String[] t = new java.lang.String[1658];
+    java.lang.String[] t = new java.lang.String[1502];
     t[0] = "";
     t[1] = "Project-Id-Version: head-ko\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2024-05-29 11:10+0500\nLast-Translator: Sheeraz Majeed<[email protected]>\nLanguage-Team: PostgreSQL Translators<[email protected]>\nLanguage: ko\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n";
-    t[6] = "Unknown value for ResultSet holdability";
-    t[7] = "ResultSet 유지 가능성에 대한 알 수 없는 값입니다.";
-    t[12] = "Could not read SSL key file {0}.";
-    t[13] = "SSL 키 파일 {0} 을(를) 읽을 수 없습니다.";
-    t[14] = "The hostname {0} could not be verified by hostnameverifier {1}.";
-    t[15] = "hostnameverifier {1} 이(가) 호스트 이름 {0}을(를) 확인할 수 없습니다.";
-    t[18] = "This ResultSet is closed.";
-    t[19] = "이 ResultSet은 닫혔습니다.";
-    t[20] = "Not implemented: 2nd phase commit must be issued using an idle connection. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[21] = "구현되지 않음: 2단계 커밋은 유휴 연결을 사용하여 발행해야 합니다. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[24] = "Value is not an OID: {0}";
-    t[25] = "값이 OID가 아닙니다: {0}";
-    t[26] = "Unable to parse URL {0}";
-    t[27] = "URL {0} 을(를) 파싱할 수 없습니다";
-    t[30] = "Multiple ResultSets were returned by the query.";
-    t[31] = "쿼리에서 여러 ResultSet이 반환되었습니다.";
-    t[36] = "Hint: {0}";
-    t[37] = "힌트: {0}";
-    t[40] = "No value specified for parameter {0}.";
-    t[41] = "매개 변수 {0} 에 대해 지정된 값이 없습니다.";
-    t[42] = "This statement has been closed.";
-    t[43] = "이 문이 닫혔습니다.";
-    t[46] = "A connection could not be made using the requested protocol {0}.";
-    t[47] = "요청된 프로토콜 {0} 을(를) 사용하여 연결할 수 없습니다.";
-    t[50] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
-    t[51] = "서버의 DateStyle 매개 변수가 {0} 으로 변경되었습니다. JDBC 드라이버는 올바른 작동을 위해 DateStyle이 ISO로 시작해야 합니다.";
-    t[58] = "Result set exceeded maxResultBuffer limit. Received:  {0}; Current limit: {1}";
-    t[59] = "결과 집합이 maxResultBuffer 한도를 초과했습니다. 받은 값: {0}; 현재 한도: {1}";
-    t[60] = "Cannot establish a savepoint in auto-commit mode.";
-    t[61] = "자동 커밋 모드에서는 세이브포인트를 설정할 수 없습니다.";
-    t[62] = "Unsupported property name: {0}";
-    t[63] = "지원되지 않는 속성 이름: {0}";
-    t[64] = "CommandComplete expected COPY but got: {0}";
-    t[65] = "CommandComplete는 COPY를 예상했으나 대신 다음을 받았습니다: {0}";
-    t[66] = "Invalid UUID data.";
-    t[67] = "잘못된 UUID 데이터입니다.";
-    t[74] = "Where: {0}";
-    t[75] = "위치: {0}";
-    t[82] = "free() was called on this LOB previously";
-    t[83] = "이 LOB에서 이전에 free()가 호출되었습니다.";
-    t[94] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
-    t[95] = "준비된 트랜잭션을 커밋하는 중 오류가 발생했습니다. commit xid={0}, preparedXid={1}, currentXid={2}";
-    t[96] = "Database connection failed when ending copy";
-    t[97] = "복사를 종료하는 동안 데이터베이스 연결 실패";
-    t[98] = "Database cannot be null";
-    t[99] = "데이터베이스는 null일 수 없습니다.";
-    t[108] = "Statement has been closed.";
-    t[109] = "Statement가 닫혔습니다.";
-    t[118] = "The HostnameVerifier class provided {0} could not be instantiated.";
-    t[119] = "제공된 HostnameVerifier 클래스 {0} 을(를) 인스턴스화할 수 없습니다.";
-    t[124] = "Cannot call deleteRow() when on the insert row.";
-    t[125] = "삽입 행에 있는 동안 deleteRow()를 호출할 수 없습니다.";
-    t[128] = "Invalid elements {0}";
-    t[129] = "잘못된 요소 {0}";
-    t[134] = "Transaction isolation level {0} not supported.";
-    t[135] = "트랜잭션 격리 수준 {0} 이(가) 지원되지 않습니다.";
-    t[144] = "Unexpected command status: {0}.";
-    t[145] = "예상치 못한 명령 상태: {0}.";
-    t[150] = "Cannot reference a savepoint after it has been released.";
-    t[151] = "해제된 후에는 세이브포인트를 참조할 수 없습니다.";
-    t[156] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
-    t[157] = "동시성 CONCUR_READ_ONLY를 가진 ResultSet은 업데이트할 수 없습니다.";
-    t[162] = "Error preparing transaction. prepare xid={0}";
-    t[163] = "트랜잭션 준비 오류. prepare xid={0}";
-    t[168] = "Cannot cast to boolean: \"{0}\"";
-    t[169] = "boolean으로 캐스팅할 수 없습니다: \"{0}\"";
-    t[174] = "Unknown XML Source class: {0}";
-    t[175] = "알 수 없는 XML 소스 클래스: {0}";
-    t[178] = "{0} function doesn''t take any argument.";
-    t[179] = "{0} 함수는 인수를 받지 않습니다.";
-    t[180] = "Tried to obtain lock while already holding it";
-    t[181] = "이미 잠금을 보유한 상태에서 잠금을 얻으려고 시도했습니다.";
-    t[192] = "Unable to get network timeout.";
-    t[193] = "네트워크 시간 초과를 가져올 수 없습니다.";
-    t[194] = "{0} returned no results";
-    t[195] = "{0} 반환된 결과가 없습니다.";
-    t[196] = "Current connection does not have an associated xid. prepare xid={0}";
-    t[197] = "현재 연결에는 연결된 xid가 없습니다. prepare xid={0}";
-    t[200] = "Fetch size must be a value greater than or equal to 0.";
-    t[201] = "가져오기 크기는 0보다 크거나 같아야 합니다.";
-    t[202] = "Can''t use query methods that take a query string on a PreparedStatement.";
-    t[203] = "PreparedStatement에서 쿼리 문자열을 사용하는 쿼리 메서드를 사용할 수 없습니다.";
-    t[204] = "Cannot convert an instance of {0} to type {1}";
-    t[205] = "{0} 의 인스턴스를 유형 {1} (으)로 변환할 수 없습니다.";
-    t[206] = "Cannot change transaction read-only property in the middle of a transaction.";
-    t[207] = "트랜잭션 중간에 트랜잭션 읽기 전용 속성을 변경할 수 없습니다.";
-    t[218] = "Unable to decode xml data.";
-    t[219] = "xml 데이터를 디코딩할 수 없습니다.";
-    t[230] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
-    t[231] = "이 SQLXML 객체는 이미 초기화되었으므로 더 이상 조작할 수 없습니다.";
-    t[232] = "No function outputs were registered.";
-    t[233] = "등록된 함수 출력이 없습니다.";
-    t[234] = "Unknown ResultSet holdability setting: {0}.";
-    t[235] = "알 수 없는 ResultSet 유지 가능성 설정: {0}.";
-    t[238] = "Can not write data to large object {0}, requested write length: {1}";
-    t[239] = "대형 객체 {0} 에 데이터를 쓸 수 없습니다. 요청된 쓰기 길이: {1}";
-    t[240] = "Interrupted while waiting to obtain lock on database connection";
-    t[241] = "데이터베이스 연결에서 잠금을 얻기 위해 대기하는 동안 중단되었습니다.";
-    t[252] = "Detail: {0}";
-    t[253] = "세부 정보: {0}";
-    t[262] = "Returning autogenerated keys by column index is not supported.";
-    t[263] = "열 인덱스별 자동 생성 키 반환이 지원되지 않습니다.";
-    t[264] = " (pgjdbc: autodetected server-encoding to be {0}, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf)";
-    t[265] = "(pgjdbc: 서버 인코딩이 {0} (으)로 자동 감지되었습니다. 메시지를 읽을 수 없는 경우 데이터베이스 로그 및/또는 호스트, 포트, dbname, 사용자, 비밀번호, pg_hba.conf를 확인하십시오.)";
-    t[270] = "{0} function takes four and only four argument.";
-    t[271] = "{0} 함수는 네 개의 인수만 받습니다.";
-    t[280] = "Read from copy failed.";
-    t[281] = "복사에서 읽기 실패.";
-    t[282] = "Conversion of money failed.";
-    t[283] = "금액 변환 실패.";
-    t[286] = "CopyIn copy direction can't receive data";
-    t[287] = "CopyIn 복사 방향은 데이터를 수신할 수 없습니다.";
-    t[290] = "Hostname {0} is invalid";
-    t[291] = "호스트 이름 {0} 이(가) 유효하지 않습니다.";
-    t[296] = "Fastpath call {0} - No result was returned and we expected a numeric.";
-    t[297] = "Fastpath 호출 {0} - 결과가 반환되지 않았고 숫자를 예상했습니다.";
-    t[298] = "The JVM claims not to support the {0} encoding.";
-    t[299] = "JVM이 {0} 인코딩을 지원하지 않는다고 주장합니다.";
-    t[300] = "Database connection failed when writing to copy";
-    t[301] = "복사에 쓰는 동안 데이터베이스 연결 실패";
-    t[302] = "{0} function takes three and only three arguments.";
-    t[303] = "{0} 함수는 세 개의 인수만 받습니다.";
-    t[304] = "Missing expected error response to copy cancel request";
-    t[305] = "복사 취소 요청에 대한 예상 오류 응답이 누락되었습니다.";
-    t[310] = "Zero bytes may not occur in string parameters.";
-    t[311] = "문자열 매개 변수에 0 바이트가 발생할 수 없습니다.";
-    t[318] = "Server name validation failed: certificate for host {0} dNSName entries subjectAltName, but none of them match. Assuming server name validation failed";
-    t[319] = "서버 이름 유효성 검사 실패: 호스트 {0} dNSName 항목 subjectAltName에 대한 인증서가 있지만 일치하지 않습니다. 서버 이름 유효성 검사 실패로 가정";
-    t[322] = "User cannot be null";
-    t[323] = "사용자는 null일 수 없습니다.";
-    t[326] = "Unable to find pkcs12 keystore.";
-    t[327] = "pkcs12 키 저장소를 찾을 수 없습니다.";
-    t[328] = "The column name {0} was not found in this ResultSet.";
-    t[329] = "이 ResultSet에서 열 이름 {0} 을(를) 찾을 수 없습니다.";
-    t[332] = "A CallableStatement was executed with nothing returned.";
-    t[333] = "CallableStatement가 실행되었으나 반환된 값이 없습니다.";
-    t[336] = "PostgreSQL LOBs can only index to: {0}";
-    t[337] = "PostgreSQL LOB는 다음으로만 인덱싱할 수 있습니다: {0}";
-    t[338] = "Connection has been closed.";
-    t[339] = "연결이 닫혔습니다.";
-    t[342] = "Got {0} error responses to single copy cancel request";
-    t[343] = "단일 복사 취소 요청에 대해 {0} 오류 응답을 받았습니다.";
-    t[348] = "This SQLXML object has already been freed.";
-    t[349] = "이 SQLXML 객체는 이미 해제되었습니다.";
-    t[350] = "Fastpath call {0} - No result was returned and we expected an integer.";
-    t[351] = "Fastpath 호출 {0} - 결과가 반환되지 않았고 정수를 예상했습니다.";
-    t[360] = "Can''t refresh the insert row.";
-    t[361] = "삽입 행을 새로 고칠 수 없습니다.";
-    t[370] = "Requested CopyDual but got {0}";
-    t[371] = "요청된 CopyDual 대신 {0} 을(를) 받았습니다.";
-    t[372] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
-    t[373] = "1단계 커밋이 xid {0} 에 대해 호출되었으나 연결이 xid {1}(으)로 준비되었습니다.";
-    t[374] = "Unsupported Types value: {0}";
-    t[375] = "지원되지 않는 유형 값: {0}";
-    t[378] = "Invalid timeout ({0}<0).";
-    t[379] = "잘못된 시간 초과 ({0}<0).";
-    t[398] = "PreparedStatement can have at most {0} parameters. Please consider using arrays, or splitting the query in several ones, or using COPY. Given query has {1} parameters";
-    t[399] = "PreparedStatement는 최대 {0} 개의 매개 변수를 가질 수 있습니다. 배열을 사용하거나 쿼리를 여러 개로 나누거나 COPY를 사용하는 것을 고려하십시오. 주어진 쿼리는 {1} 개의 매개 변수를 가집니다.";
-    t[400] = "Invalid sslmode value: {0}";
-    t[401] = "잘못된 sslmode 값: {0}";
-    t[402] = "{0} parameter value must be an integer but was: {1}";
-    t[403] = "{0} 매개 변수 값은 정수여야 하지만 실제로는: {1} 입니다.";
-    t[412] = "Cannot retrieve the name of an unnamed savepoint.";
-    t[413] = "이름이 없는 세이브포인트의 이름을 검색할 수 없습니다.";
-    t[416] = "Cannot call updateRow() when on the insert row.";
-    t[417] = "삽입 행에 있는 동안 updateRow()를 호출할 수 없습니다.";
-    t[422] = "Error releasing savepoint";
-    t[423] = "세이브포인트 해제 오류";
-    t[424] = "The environment variable containing the server's SSL certificate must not be empty.";
-    t[425] = "서버의 SSL 인증서를 포함하는 환경 변수는 비어 있을 수 없습니다.";
-    t[426] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
-    t[427] = "드라이버가 실패하는 비정상적인 현상이 발생했습니다. 이 예외를 보고해 주세요.";
-    t[430] = "Failed to set ClientInfo property: {0}";
-    t[431] = "ClientInfo 속성 설정 실패: {0}";
-    t[432] = "Properties for the driver contains a non-string value for the key {0}";
-    t[433] = "드라이버의 속성에 문자열이 아닌 값이 포함되어 있습니다. 키: {0}";
-    t[450] = "Unable to instantiate SecBufferDesc, so SSPI is unavailable";
-    t[451] = "SecBufferDesc을 인스턴스화할 수 없어 SSPI를 사용할 수 없습니다.";
-    t[458] = "The array index is out of range: {0}";
-    t[459] = "배열 인덱스가 범위를 벗어났습니다: {0}";
-    t[460] = "Provided Reader failed.";
-    t[461] = "제공된 Reader가 실패했습니다.";
-    t[466] = "ClientInfo property not supported.";
-    t[467] = "ClientInfo 속성이 지원되지 않습니다.";
-    t[470] = "No X509TrustManager found";
-    t[471] = "X509TrustManager를 찾을 수 없습니다.";
-    t[476] = "Unable to parse X509Certificate for hostname {0}";
-    t[477] = "호스트 이름 {0} 에 대한 X509Certificate을(를) 구문 분석할 수 없습니다.";
-    t[478] = "Tried to read from inactive copy";
-    t[479] = "비활성 복사에서 읽기를 시도했습니다.";
-    t[480] = "LOB positioning offsets start at 1.";
-    t[481] = "LOB 위치 오프셋은 1부터 시작합니다.";
-    t[482] = "Unable to create StAXResult for SQLXML";
-    t[483] = "SQLXML에 대한 StAXResult를 생성할 수 없습니다.";
-    t[496] = "Got CopyData without an active copy operation";
-    t[497] = "활성 복사 작업 없이 CopyData를 받았습니다.";
-    t[498] = "Could not decrypt SSL key file {0}.";
-    t[499] = "SSL 키 파일 {0} 을(를) 해독할 수 없습니다.";
-    t[502] = "An error occurred while trying to get the socket timeout.";
-    t[503] = "소켓 시간 초과를 가져오는 동안 오류가 발생했습니다.";
-    t[508] = "Neither Subject.doAs (Java before 18) nor Subject.callAs (Java 18+) method found";
-    t[509] = "Subject.doAs (Java 18 이전) 또는 Subject.callAs (Java 18+) 메서드가 발견되지 않았습니다.";
-    t[510] = "Internal Query: {0}";
-    t[511] = "내부 쿼리: {0}";
-    t[520] = "Server name validation failed: certificate for hostname {0} has no DNS subjectAltNames, and it CommonName is missing as well";
-    t[521] = "서버 이름 유효성 검사 실패: 호스트 이름 {0} 에 대한 인증서에 DNS subjectAltNames가 없으며 CommonName도 없습니다.";
-    t[524] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
-    t[525] = "인증 유형 {0} 이(가) 지원되지 않습니다. pg_hba.conf 파일에 클라이언트의 IP 주소 또는 서브넷이 포함되어 있고, 드라이버가 지원하는 인증 방식을 사용하고 있는지 확인하십시오.";
-    t[526] = "Unknown Response Type {0}.";
-    t[527] = "알 수 없는 응답 유형 {0}.";
-    t[540] = "Method {0} is not yet implemented.";
-    t[541] = "메서드 {0} 이(가) 아직 구현되지 않았습니다.";
-    t[544] = "Error during recover";
-    t[545] = "복구 중 오류";
-    t[550] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
-    t[551] = "CallableStatement 함수가 실행되었고 out 매개 변수 {0} 의 유형이 {1} 이었지만 유형 {2} 가 등록되었습니다.";
-    t[556] = "Could not find a java cryptographic algorithm: X.509 CertificateFactory not available.";
-    t[557] = "Java 암호화 알고리즘을 찾을 수 없습니다: X.509 CertificateFactory를 사용할 수 없습니다.";
-    t[558] = "Unable to load Authentication Plugin {0}";
-    t[559] = "인증 플러그인 {0} 을(를) 로드할 수 없습니다.";
-    t[560] = "No eligible primary or unique key found for table {0}.";
-    t[561] = "테이블 {0} 에 대해 적합한 기본 키 또는 고유 키가 없습니다.";
-    t[564] = "Invalid gssEncMode value: {0}";
-    t[565] = "잘못된 gssEncMode 값: {0}";
-    t[566] = "Expected a row when reading password_encryption but none was found";
-    t[567] = "password_encryption을 읽을 때 행이 예상되었으나 아무 것도 발견되지 않았습니다.";
-    t[568] = "Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}";
-    t[569] = "이미 준비된 트랜잭션 준비, 준비된 xid {0}, prepare xid={1}";
-    t[574] = "Malformed function or procedure escape syntax at offset {0}.";
-    t[575] = "오프셋 {0} 에서 잘못된 함수 또는 절차 이스케이프 구문입니다.";
-    t[576] = "Not implemented: one-phase commit must be issued using the same connection that was used to start it";
-    t[577] = "구현되지 않음: 1단계 커밋은 시작하는 데 사용된 동일한 연결을 사용하여 발행해야 합니다.";
-    t[584] = "The sslfactoryarg property must start with the prefix file:, classpath:, env:, sys:, or -----BEGIN CERTIFICATE-----.";
-    t[585] = "sslfactoryarg 속성은 file:, classpath:, env:, sys: 또는 -----BEGIN CERTIFICATE----- 접두사로 시작해야 합니다.";
-    t[590] = "A CallableStatement was executed with an invalid number of parameters";
-    t[591] = "CallableStatement가 잘못된 수의 매개 변수로 실행되었습니다.";
-    t[598] = "Unsupported value for stringtype parameter: {0}";
-    t[599] = "stringtype 매개 변수에 대한 지원되지 않는 값: {0}";
-    t[604] = "Unknown value for ResultSet concurrency";
-    t[605] = "ResultSet 동시성에 대한 알 수 없는 값입니다.";
-    t[608] = "Not on the insert row.";
-    t[609] = "삽입 행에 있지 않습니다.";
-    t[616] = "ResultSet not positioned properly, perhaps you need to call next.";
-    t[617] = "ResultSet이 올바르게 위치하지 않았습니다. 아마도 next를 호출해야 할 것입니다.";
-    t[622] = "The parameter index is out of range: {0}, number of parameters: {1}.";
-    t[623] = "매개 변수 인덱스가 범위를 벗어났습니다: {0}, 매개 변수 수: {1}.";
-    t[624] = "Large Objects may not be used in auto-commit mode.";
-    t[625] = "대형 객체는 자동 커밋 모드에서 사용할 수 없습니다.";
-    t[630] = "Tried to write to an inactive copy operation";
-    t[631] = "비활성 복사 작업에 쓰기를 시도했습니다.";
-    t[632] = "Invalid stream length {0}.";
-    t[633] = "잘못된 스트림 길이 {0}.";
-    t[636] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
-    t[637] = "{0} 의 인스턴스에 사용할 SQL 유형을 추론할 수 없습니다. 명시적 유형 값을 사용하여 setObject()를 사용하여 사용할 유형을 지정하십시오.";
-    t[640] = "Cannot cast an instance of {0} to type {1}";
-    t[641] = "{0} 의 인스턴스를 유형 {1}(으)로 캐스팅할 수 없습니다.";
-    t[648] = "Can not close large object {0}";
-    t[649] = "대형 객체 {0} 을(를) 닫을 수 없습니다.";
-    t[654] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
-    t[655] = "결과의 시작 전이나 끝 후에 있기 때문에 ResultSet을 업데이트할 수 없습니다.";
-    t[656] = "Cannot change transaction isolation level in the middle of a transaction.";
-    t[657] = "트랜잭션 중간에 트랜잭션 격리 수준을 변경할 수 없습니다.";
+    t[2] = "Read from copy failed.";
+    t[3] = "복사에서 읽기 실패.";
+    t[8] = "Requested CopyIn but got {0}";
+    t[9] = "요청된 CopyIn 대신 {0} 을(를) 받았습니다.";
+    t[10] = "Connection to {0} refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.";
+    t[11] = "{0} 에 대한 연결이 거부되었습니다. 호스트 이름과 포트가 올바른지, 그리고 postmaster가 TCP/IP 연결을 수락하고 있는지 확인하십시오.";
+    t[16] = "Can't convert {0} to {1} literal";
+    t[17] = "{0} 을(를) {1} 리터럴로 변환할 수 없습니다.";
+    t[18] = "Unsupported property name: {0}";
+    t[19] = "지원되지 않는 속성 이름: {0}";
+    t[28] = "This connection has been closed.";
+    t[29] = "이 연결은 닫혔습니다.";
+    t[38] = "Batch entry {0} {1} was aborted: {2}  Call getNextException to see other errors in the batch.";
+    t[39] = "배치 항목 {0} {1} 이(가) 중단되었습니다: {2} 배치의 다른 오류를 보려면 getNextException을 호출하십시오.";
+    t[48] = "Unexpected command status: {0}.";
+    t[49] = "예상치 못한 명령 상태: {0}.";
+    t[58] = "An error occurred while trying to get the socket timeout.";
+    t[59] = "소켓 시간 초과를 가져오는 동안 오류가 발생했습니다.";
+    t[60] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
+    t[61] = "잘못된 문자 데이터가 발견되었습니다. 이는 데이터베이스가 생성된 문자 세트에 대해 잘못된 문자를 포함하는 저장된 데이터로 인해 발생할 가능성이 큽니다. 가장 일반적인 예는 SQL_ASCII 데이터베이스에 8비트 데이터를 저장하는 것입니다.";
+    t[62] = "Fetch size must be a value greater than or equal to 0.";
+    t[63] = "가져오기 크기는 0보다 크거나 같아야 합니다.";
+    t[64] = "The server does not support GSS Encryption.";
+    t[65] = "서버가 GSS 암호화를 지원하지 않습니다.";
+    t[72] = "A result was returned when none was expected.";
+    t[73] = "예상치 못한 결과가 반환되었습니다.";
+    t[82] = "Tried to end inactive copy";
+    t[83] = "비활성 복사를 끝내려고 시도했습니다.";
+    t[84] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
+    t[85] = "서버의 standard_conforming_strings 매개 변수가 {0} 으로 보고되었습니다. JDBC 드라이버는 켜짐 또는 꺼짐을 예상했습니다.";
+    t[92] = "Unable to load the class {0} responsible for the datatype {1}";
+    t[93] = "데이터 유형 {1} 을 담당하는 클래스 {0} 을(를) 로드할 수 없습니다.";
+    t[102] = "The parameter index is out of range: {0}, number of parameters: {1}.";
+    t[103] = "매개 변수 인덱스가 범위를 벗어났습니다: {0}, 매개 변수 수: {1}.";
+    t[104] = "Unknown value for ResultSet type";
+    t[105] = "ResultSet 유형에 대한 알 수 없는 값입니다.";
+    t[106] = "Could not close SSL certificate file {0}.";
+    t[107] = "SSL 인증서 파일 {0} 을(를) 닫을 수 없습니다.";
+    t[112] = "Could not read password for SSL key file, console is not available.";
+    t[113] = "SSL 키 파일의 비밀번호를 읽을 수 없습니다. 콘솔을 사용할 수 없습니다.";
+    t[124] = "Unsupported properties: {0}";
+    t[125] = "지원되지 않는 속성: {0}";
+    t[132] = "Invalid fetch direction constant: {0}.";
+    t[133] = "잘못된 가져오기 방향 상수: {0}.";
+    t[134] = "Protocol error.  Session setup failed.";
+    t[135] = "프로토콜 오류. 세션 설정 실패.";
+    t[146] = "Unexpected packet type during copy: {0}";
+    t[147] = "복사 중 예상치 못한 패킷 유형: {0}";
+    t[148] = "Error opening transaction. start xid={0}";
+    t[149] = "트랜잭션 열기 오류. start xid={0}";
+    t[152] = "Validating connection.";
+    t[153] = "연결을 검증 중입니다.";
+    t[154] = "The SSLSocketFactory class provided {0} could not be instantiated.";
+    t[155] = "제공된 SSLSocketFactory 클래스 {0} 을(를) 인스턴스화할 수 없습니다.";
+    t[156] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[157] = "end() 호출 전에 Prepare가 호출되었습니다. prepare xid={0}, state={1}";
+    t[158] = "Unable to bind parameter values for statement.";
+    t[159] = "문에 대한 매개 변수 값을 바인딩할 수 없습니다.";
+    t[162] = "The array index is out of range: {0}, number of elements: {1}.";
+    t[163] = "배열 인덱스가 범위를 벗어났습니다: {0}, 요소 수: {1}.";
+    t[168] = "The system property containing the server's SSL certificate must not be empty.";
+    t[169] = "서버의 SSL 인증서를 포함하는 시스템 속성은 비어 있을 수 없습니다.";
+    t[170] = "The fastpath function {0} is unknown.";
+    t[171] = "Fastpath 함수 {0} 은(는) 알려지지 않았습니다.";
+    t[172] = "Hint: {0}";
+    t[173] = "힌트: {0}";
+    t[174] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
+    t[175] = "유형 {0} 의 매개 변수가 등록되었지만 get{1} (sqltype={2}) 호출이 이루어졌습니다.";
+    t[180] = "Fastpath call {0} - No result was returned or wrong size while expecting a long.";
+    t[181] = "Fastpath 호출 {0} - 결과가 반환되지 않았거나 long을 예상하는 동안 잘못된 크기입니다.";
+    t[188] = "Hostname {0} is invalid";
+    t[189] = "호스트 이름 {0} 이(가) 유효하지 않습니다.";
+    t[190] = "Can not reset stream for large object {0} to position {1}";
+    t[191] = "대형 객체 {0} 에 대한 스트림을 위치 {1} (으)로 재설정할 수 없습니다.";
+    t[204] = "Backend timezone is not known. Backend should have returned TimeZone when establishing a connection";
+    t[205] = "백엔드 표준 시간대를 알 수 없습니다. 연결을 설정할 때 백엔드에서 TimeZone을 반환해야 합니다.";
+    t[208] = "LOB positioning offsets start at 1.";
+    t[209] = "LOB 위치 오프셋은 1부터 시작합니다.";
+    t[212] = "Maximum number of rows must be a value greater than or equal to 0.";
+    t[213] = "최대 행 수는 0보다 크거나 같아야 합니다.";
+    t[214] = "Cannot tell if path is open or closed: {0}.";
+    t[215] = "경로가 열려 있는지 닫혀 있는지 알 수 없습니다: {0}.";
+    t[216] = "Ran out of memory retrieving query results.";
+    t[217] = "쿼리 결과를 검색하는 동안 메모리가 부족했습니다.";
+    t[232] = "Conversion of money failed.";
+    t[233] = "금액 변환 실패.";
+    t[234] = "Invalid stream length {0}.";
+    t[235] = "잘못된 스트림 길이 {0}.";
+    t[242] = "Fastpath call {0} - No result was returned and we expected a numeric.";
+    t[243] = "Fastpath 호출 {0} - 결과가 반환되지 않았고 숫자를 예상했습니다.";
+    t[246] = "Can not close large object {0}";
+    t[247] = "대형 객체 {0} 을(를) 닫을 수 없습니다.";
+    t[248] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
+    t[249] = "드라이버가 실패하는 비정상적인 현상이 발생했습니다. 이 예외를 보고해 주세요.";
+    t[250] = "{0} function takes four and only four argument.";
+    t[251] = "{0} 함수는 네 개의 인수만 받습니다.";
+    t[256] = "Cannot truncate LOB to a negative length.";
+    t[257] = "LOB를 음수 길이로 잘릴 수 없습니다.";
+    t[264] = "Copying from database failed: {0}";
+    t[265] = "데이터베이스에서 복사 실패: {0}";
+    t[270] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
+    t[271] = "같은 PooledConnection에 대해 새 연결이 열리거나 PooledConnection이 닫혔기 때문에 연결이 자동으로 닫혔습니다.";
+    t[272] = "Result set exceeded maxResultBuffer limit. Received:  {0}; Current limit: {1}";
+    t[273] = "결과 집합이 maxResultBuffer 한도를 초과했습니다. 받은 값: {0}; 현재 한도: {1}";
+    t[298] = "Database connection failed when writing to copy";
+    t[299] = "복사에 쓰는 동안 데이터베이스 연결 실패";
+    t[308] = "Unable to convert DOMResult SQLXML data to a string.";
+    t[309] = "DOMResult SQLXML 데이터를 문자열로 변환할 수 없습니다.";
+    t[310] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[311] = "휴리스틱 커밋/롤백이 지원되지 않습니다. forget xid={0}";
+    t[312] = "The sslfactoryarg property may not be empty.";
+    t[313] = "sslfactoryarg 속성은 비어 있을 수 없습니다.";
+    t[320] = "Server name validation failed: certificate for hostname {0} has no DNS subjectAltNames, and it CommonName is missing as well";
+    t[321] = "서버 이름 유효성 검사 실패: 호스트 이름 {0} 에 대한 인증서에 DNS subjectAltNames가 없으며 CommonName도 없습니다.";
+    t[322] = "Error during one-phase commit. commit xid={0}";
+    t[323] = "1단계 커밋 중 오류 발생. commit xid={0}";
+    t[324] = "The column index is out of range: {0}, number of columns: {1}.";
+    t[325] = "열 인덱스가 범위를 벗어났습니다: {0}, 열 수: {1}.";
+    t[330] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
+    t[331] = "결과의 시작 전이나 끝 후에 있기 때문에 ResultSet을 업데이트할 수 없습니다.";
+    t[332] = "Unable to get network timeout.";
+    t[333] = "네트워크 시간 초과를 가져올 수 없습니다.";
+    t[334] = "Database connection failed when starting copy";
+    t[335] = "복사 시작 시 데이터베이스 연결 실패";
+    t[338] = "Got CopyBothResponse from server during an active {0}";
+    t[339] = "활성 {0} 중 서버로부터 CopyBothResponse를 받았습니다.";
+    t[340] = "Cannot call deleteRow() when on the insert row.";
+    t[341] = "삽입 행에 있는 동안 deleteRow()를 호출할 수 없습니다.";
+    t[346] = "Expected a row when reading password_encryption but none was found";
+    t[347] = "password_encryption을 읽을 때 행이 예상되었으나 아무 것도 발견되지 않았습니다.";
+    t[348] = "Zero bytes may not occur in string parameters.";
+    t[349] = "문자열 매개 변수에 0 바이트가 발생할 수 없습니다.";
+    t[354] = "Cannot change transaction read-only property in the middle of a transaction.";
+    t[355] = "트랜잭션 중간에 트랜잭션 읽기 전용 속성을 변경할 수 없습니다.";
+    t[356] = "Cannot retrieve the name of an unnamed savepoint.";
+    t[357] = "이름이 없는 세이브포인트의 이름을 검색할 수 없습니다.";
+    t[360] = "The server does not support GSS Encoding.";
+    t[361] = "서버가 GSS 인코딩을 지원하지 않습니다.";
+    t[362] = "Could not decrypt SSL key file {0}.";
+    t[363] = "SSL 키 파일 {0} 을(를) 해독할 수 없습니다.";
+    t[370] = "Database connection failed when reading from copy";
+    t[371] = "복사에서 읽는 동안 데이터베이스 연결 실패";
+    t[372] = "Invalid Inet data.";
+    t[373] = "잘못된 Inet 데이터입니다.";
+    t[374] = "Where: {0}";
+    t[375] = "위치: {0}";
+    t[376] = "Error preparing transaction. prepare xid={0}";
+    t[377] = "트랜잭션 준비 오류. prepare xid={0}";
+    t[388] = "Unable to find keywords in the system catalogs.";
+    t[389] = "시스템 카탈로그에서 키워드를 찾을 수 없습니다.";
+    t[394] = "Suspend/resume not implemented";
+    t[395] = "일시 중지/다시 시작이 구현되지 않았습니다.";
+    t[404] = "Could not initialize SSL context.";
+    t[405] = "SSL 컨텍스트를 초기화할 수 없습니다.";
+    t[406] = "Statement has been closed.";
+    t[407] = "Statement가 닫혔습니다.";
+    t[410] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
+    t[411] = "이 SQLXML 객체는 이미 초기화되었으므로 더 이상 조작할 수 없습니다.";
+    t[414] = "Location: File: {0}, Routine: {1}, Line: {2}";
+    t[415] = "위치: 파일: {0}, 루틴: {1}, 줄: {2}";
+    t[420] = "This statement has been closed.";
+    t[421] = "이 문이 닫혔습니다.";
+    t[422] = "Failed to create object for: {0}.";
+    t[423] = "{0} 에 대한 개체 생성 실패.";
+    t[424] = "Internal Position: {0}";
+    t[425] = "내부 위치: {0}";
+    t[428] = "Server name validation pass for {0}, subjectAltName {1}";
+    t[429] = "서버 이름 유효성 검사가 {0}, subjectAltName {1} 에 대해 통과했습니다.";
+    t[436] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[437] = "준비된 트랜잭션을 커밋하는 중 오류가 발생했습니다. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[438] = "Invalid UUID data.";
+    t[439] = "잘못된 UUID 데이터입니다.";
+    t[446] = "No value specified for parameter {0}.";
+    t[447] = "매개 변수 {0} 에 대해 지정된 값이 없습니다.";
+    t[448] = "The server requested SCRAM-based authentication, but the password is an empty string.";
+    t[449] = "서버가 SCRAM 기반 인증을 요청했지만, 비밀번호가 빈 문자열입니다.";
+    t[456] = "Malformed function or procedure escape syntax at offset {0}.";
+    t[457] = "오프셋 {0} 에서 잘못된 함수 또는 절차 이스케이프 구문입니다.";
+    t[464] = "No function outputs were registered.";
+    t[465] = "등록된 함수 출력이 없습니다.";
+    t[484] = "Unable to set network timeout.";
+    t[485] = "네트워크 시간 초과를 설정할 수 없습니다.";
+    t[488] = "An error occurred while setting up the SSL connection.";
+    t[489] = "SSL 연결을 설정하는 동안 오류가 발생했습니다.";
+    t[500] = "No results were returned by the query.";
+    t[501] = "쿼리에서 반환된 결과가 없습니다.";
+    t[506] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[507] = "1단계 커밋은 분기를 시작한 연결에서 발행해야 합니다. commit xid={0}";
+    t[510] = "Got CopyData without an active copy operation";
+    t[511] = "활성 복사 작업 없이 CopyData를 받았습니다.";
+    t[512] = "User cannot be null";
+    t[513] = "사용자는 null일 수 없습니다.";
+    t[518] = "This PooledConnection has already been closed.";
+    t[519] = "이 PooledConnection은 이미 닫혔습니다.";
+    t[522] = "conversion to {0} from {1} not supported";
+    t[523] = "{1} 에서 {0} (으)로의 변환이 지원되지 않습니다.";
+    t[526] = "Cannot cast to boolean: \"{0}\"";
+    t[527] = "boolean으로 캐스팅할 수 없습니다: \"{0}\"";
+    t[528] = "Unsupported value for stringtype parameter: {0}";
+    t[529] = "stringtype 매개 변수에 대한 지원되지 않는 값: {0}";
+    t[530] = "Too many update results were returned.";
+    t[531] = "너무 많은 업데이트 결과가 반환되었습니다.";
+    t[534] = "CommandComplete expected COPY but got: {0}";
+    t[535] = "CommandComplete는 COPY를 예상했으나 대신 다음을 받았습니다: {0}";
+    t[536] = "The array index is out of range: {0}";
+    t[537] = "배열 인덱스가 범위를 벗어났습니다: {0}";
+    t[540] = "The server requested password-based authentication, but no password was provided by plugin {0}";
+    t[541] = "서버가 비밀번호 기반 인증을 요청했으나, 플러그인 {0} 에서 비밀번호를 제공하지 않았습니다.";
+    t[542] = "Method {0} is not yet implemented.";
+    t[543] = "메서드 {0} 이(가) 아직 구현되지 않았습니다.";
+    t[550] = "Got CopyInResponse from server during an active {0}";
+    t[551] = "활성 {0} 중 서버로부터 CopyInResponse를 받았습니다.";
+    t[556] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[557] = "연결이 이미 활성 XA 분기와 연관되어 있습니다. 새 분기를 시작하기 전에 현재 분기를 종료하십시오. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[560] = "Server name validation failed: hostname {0} does not match common name {1}";
+    t[561] = "서버 이름 유효성 검사 실패: 호스트 이름 {0} 이(가) 공통 이름 {1} 과(와) 일치하지 않습니다.";
+    t[562] = "Unknown value for ResultSet concurrency";
+    t[563] = "ResultSet 동시성에 대한 알 수 없는 값입니다.";
+    t[566] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
+    t[567] = "인증 유형 {0} 이(가) 지원되지 않습니다. pg_hba.conf 파일에 클라이언트의 IP 주소 또는 서브넷이 포함되어 있고, 드라이버가 지원하는 인증 방식을 사용하고 있는지 확인하십시오.";
+    t[568] = "Unexpected packet type during replication: {0}";
+    t[569] = "복제 중 예상치 못한 패킷 유형: {0}";
+    t[570] = "Interval {0} not yet implemented";
+    t[571] = "구간 {0} 은(는) 아직 구현되지 않았습니다.";
+    t[572] = "Unknown Types value.";
+    t[573] = "알 수 없는 유형 값입니다.";
+    t[574] = "Interrupted while waiting to obtain lock on database connection";
+    t[575] = "데이터베이스 연결에서 잠금을 얻기 위해 대기하는 동안 중단되었습니다.";
+    t[582] = "Conversion of interval failed";
+    t[583] = "간격 변환 실패";
+    t[584] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
+    t[585] = "{0} 의 인스턴스에 사용할 SQL 유형을 추론할 수 없습니다. 명시적 유형 값을 사용하여 setObject()를 사용하여 사용할 유형을 지정하십시오.";
+    t[586] = "Enter SSL password: ";
+    t[587] = "SSL 비밀번호 입력: ";
+    t[588] = "This SQLXML object has already been freed.";
+    t[589] = "이 SQLXML 객체는 이미 해제되었습니다.";
+    t[590] = "Could not find a java cryptographic algorithm: X.509 CertificateFactory not available.";
+    t[591] = "Java 암호화 알고리즘을 찾을 수 없습니다: X.509 CertificateFactory를 사용할 수 없습니다.";
+    t[594] = "Error during recover. flag={0}";
+    t[595] = "복구 중 오류. flag={0}";
+    t[600] = "Could not find a server with specified targetServerType: {0}";
+    t[601] = "지정된 targetServerType을 가진 서버를 찾을 수 없습니다: {0}";
+    t[606] = "Zero bytes may not occur in identifiers.";
+    t[607] = "식별자에 0 바이트가 발생할 수 없습니다.";
+    t[608] = "free() was called on this LOB previously";
+    t[609] = "이 LOB에서 이전에 free()가 호출되었습니다.";
+    t[612] = "Unable to parse URL {0}";
+    t[613] = "URL {0} 을(를) 파싱할 수 없습니다";
+    t[614] = "Could not read password for SSL key file by callbackhandler {0}.";
+    t[615] = "콜백 핸들러 {0} 을(를) 사용하여 SSL 키 파일의 비밀번호를 읽을 수 없습니다.";
+    t[618] = "{0} function doesn''t take any argument.";
+    t[619] = "{0} 함수는 인수를 받지 않습니다.";
+    t[634] = "PostgreSQL LOBs can only index to: {0}";
+    t[635] = "PostgreSQL LOB는 다음으로만 인덱싱할 수 있습니다: {0}";
+    t[636] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
+    t[637] = "서버의 DateStyle 매개 변수가 {0} 으로 변경되었습니다. JDBC 드라이버는 올바른 작동을 위해 DateStyle이 ISO로 시작해야 합니다.";
+    t[638] = "Expected command status BEGIN, got {0}.";
+    t[639] = "예상한 명령 상태 BEGIN 대신 {0} 을(를) 받았습니다.";
+    t[640] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[641] = "XA 트랜잭션이 활성 상태인 동안 트랜잭션 제어 메서드 setAutoCommit, commit, rollback 및 setSavepoint가 허용되지 않습니다.";
+    t[646] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
+    t[647] = "이 문은 OUT 매개 변수를 선언하지 않습니다. OUT 매개 변수를 선언하려면 '{' ?= call ... '}'을 사용하십시오.";
+    t[648] = "You must specify at least one column value to insert a row.";
+    t[649] = "행을 삽입하려면 적어도 하나의 열 값을 지정해야 합니다.";
+    t[652] = "hstore key must not be null";
+    t[653] = "hstore 키는 null일 수 없습니다.";
+    t[658] = "Large Objects may not be used in auto-commit mode.";
+    t[659] = "대형 객체는 자동 커밋 모드에서 사용할 수 없습니다.";
     t[660] = "Requested CopyOut but got {0}";
     t[661] = "요청된 CopyOut 대신 {0} 을(를) 받았습니다.";
-    t[664] = "Cannot truncate LOB to a negative length.";
-    t[665] = "LOB를 음수 길이로 잘릴 수 없습니다.";
-    t[668] = "COPY commands are only supported using the CopyManager API.";
-    t[669] = "COPY 명령은 CopyManager API를 사용하여서만 지원됩니다.";
-    t[676] = "Protocol error.  Session setup failed.";
-    t[677] = "프로토콜 오류. 세션 설정 실패.";
-    t[682] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
-    t[683] = "ResultSet은 업데이트할 수 없습니다. 이 결과 집합을 생성한 쿼리는 하나의 테이블만 선택해야 하며 해당 테이블의 모든 기본 키를 선택해야 합니다. 자세한 내용은 JDBC 2.1 API 명세서 섹션 5.6을 참조하십시오.";
-    t[684] = "Error disabling autocommit";
-    t[685] = "자동 커밋 비활성화 오류";
-    t[692] = "Provided InputStream failed.";
-    t[693] = "제공된 InputStream이 실패했습니다.";
-    t[698] = "Tried to cancel an inactive copy operation";
-    t[699] = "비활성 복사 작업을 취소하려고 시도했습니다.";
-    t[712] = "GSS Authentication failed";
-    t[713] = "GSS 인증 실패";
-    t[714] = "Server name validation pass for {0}, subjectAltName {1}";
-    t[715] = "서버 이름 유효성 검사가 {0}, subjectAltName {1} 에 대해 통과했습니다.";
-    t[734] = "Unable to bind parameter values for statement.";
-    t[735] = "문에 대한 매개 변수 값을 바인딩할 수 없습니다.";
-    t[736] = "Server name validation failed: unable to extract common name from X509Certificate for hostname {0}";
-    t[737] = "서버 이름 유효성 검사 실패: 호스트 이름 {0} 에 대한 X509Certificate에서 공통 이름을 추출할 수 없습니다.";
-    t[742] = "Unexpected copydata from server for {0}";
-    t[743] = "{0} 에 대한 서버의 예상치 못한 copydata";
-    t[744] = "Bad value for type timestamp/date/time: {0}";
-    t[745] = "유형 타임스탬프/날짜/시간에 대한 잘못된 값: {0}";
-    t[746] = "Server does not support temporary replication slots";
-    t[747] = "서버가 임시 복제 슬롯을 지원하지 않습니다.";
-    t[756] = "Unable to find resource {0} via Thread contextClassLoader {1}";
-    t[757] = "스레드 contextClassLoader {1} 을(를) 통해 리소스 {0} 을(를) 찾을 수 없습니다.";
-    t[764] = "Unable to convert DOMResult SQLXML data to a string.";
-    t[765] = "DOMResult SQLXML 데이터를 문자열로 변환할 수 없습니다.";
-    t[766] = "A result was returned when none was expected.";
-    t[767] = "예상치 못한 결과가 반환되었습니다.";
-    t[770] = "The array index is out of range: {0}, number of elements: {1}.";
-    t[771] = "배열 인덱스가 범위를 벗어났습니다: {0}, 요소 수: {1}.";
-    t[778] = "Could not close SSL certificate file {0}.";
-    t[779] = "SSL 인증서 파일 {0} 을(를) 닫을 수 없습니다.";
-    t[780] = "You must specify at least one column value to insert a row.";
-    t[781] = "행을 삽입하려면 적어도 하나의 열 값을 지정해야 합니다.";
-    t[782] = "SSL error: {0}";
-    t[783] = "SSL 오류: {0}";
-    t[784] = "Unable to find server array type for provided name {0}.";
-    t[785] = "제공된 이름 {0} 에 대한 서버 배열 유형을 찾을 수 없습니다.";
-    t[786] = "Can not flush large object {0}";
-    t[787] = "대형 객체 {0} 을(를) 플러시할 수 없습니다.";
-    t[796] = "Unexpected packet type during replication: {0}";
-    t[797] = "복제 중 예상치 못한 패킷 유형: {0}";
-    t[804] = "Results cannot be retrieved from a CallableStatement before it is executed.";
-    t[805] = "CallableStatement가 실행되기 전에 결과를 검색할 수 없습니다.";
-    t[806] = "Position: {0}";
-    t[807] = "위치: {0}";
-    t[816] = "Database connection failed when reading from copy";
-    t[817] = "복사에서 읽는 동안 데이터베이스 연결 실패";
-    t[820] = "This replication stream has been closed.";
-    t[821] = "이 복제 스트림은 닫혔습니다.";
-    t[832] = "Error during one-phase commit. commit xid={0}";
-    t[833] = "1단계 커밋 중 오류 발생. commit xid={0}";
-    t[846] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
-    t[847] = "현재 ResultSet의 끝 이후에 위치해 있습니다. 여기에서 deleteRow()를 호출할 수 없습니다.";
-    t[850] = "Database connection failed when starting copy";
-    t[851] = "복사 시작 시 데이터베이스 연결 실패";
-    t[856] = "The server requested password-based authentication, but no password was provided by plugin {0}";
-    t[857] = "서버가 비밀번호 기반 인증을 요청했으나, 플러그인 {0} 에서 비밀번호를 제공하지 않았습니다.";
-    t[858] = "Got CopyOutResponse from server during an active {0}";
-    t[859] = "활성 {0} 중 서버로부터 CopyOutResponse를 받았습니다.";
-    t[862] = "SHOW password_encryption returned null value";
-    t[863] = "SHOW password_encryption이 null 값을 반환했습니다.";
-    t[864] = "Invalid fetch direction constant: {0}.";
-    t[865] = "잘못된 가져오기 방향 상수: {0}.";
-    t[868] = "Leak detected: Connection.close() was not called";
-    t[869] = "누출 감지됨: Connection.close()가 호출되지 않았습니다.";
-    t[870] = "Requested CopyIn but got {0}";
-    t[871] = "요청된 CopyIn 대신 {0} 을(를) 받았습니다.";
-    t[872] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
-    t[873] = "잘못된 문자 데이터가 발견되었습니다. 이는 데이터베이스가 생성된 문자 세트에 대해 잘못된 문자를 포함하는 저장된 데이터로 인해 발생할 가능성이 큽니다. 가장 일반적인 예는 SQL_ASCII 데이터베이스에 8비트 데이터를 저장하는 것입니다.";
-    t[874] = "xid must not be null";
-    t[875] = "xid는 null일 수 없습니다.";
-    t[876] = "Unknown value for ResultSet type";
-    t[877] = "ResultSet 유형에 대한 알 수 없는 값입니다.";
-    t[880] = "Invalid Inet data.";
-    t[881] = "잘못된 Inet 데이터입니다.";
-    t[884] = "Batch entry {0} {1} was aborted: {2}  Call getNextException to see other errors in the batch.";
-    t[885] = "배치 항목 {0} {1} 이(가) 중단되었습니다: {2} 배치의 다른 오류를 보려면 getNextException을 호출하십시오.";
-    t[886] = "The system property containing the server's SSL certificate must not be empty.";
-    t[887] = "서버의 SSL 인증서를 포함하는 시스템 속성은 비어 있을 수 없습니다.";
-    t[894] = "Cannot retrieve the id of a named savepoint.";
-    t[895] = "이름이 지정된 세이브포인트의 ID를 검색할 수 없습니다.";
-    t[898] = "commit called before end. commit xid={0}, state={1}";
-    t[899] = "end 이전에 호출 커밋. commit xid={0}, state={1}";
-    t[906] = "Unknown type {0}.";
-    t[907] = "알 수 없는 유형 {0}.";
-    t[914] = "The server does not support GSS Encryption.";
-    t[915] = "서버가 GSS 암호화를 지원하지 않습니다.";
-    t[924] = "Can''t use relative move methods while on the insert row.";
-    t[925] = "삽입 행에 있는 동안 상대적 이동 메서드를 사용할 수 없습니다.";
-    t[930] = "The server does not support GSS Encoding.";
-    t[931] = "서버가 GSS 인코딩을 지원하지 않습니다.";
-    t[934] = "Unable to load the class {0} responsible for the datatype {1}";
-    t[935] = "데이터 유형 {1} 을 담당하는 클래스 {0} 을(를) 로드할 수 없습니다.";
-    t[936] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
-    t[937] = "입력 스트림의 조기 종료, 예상 {0} 바이트 중 {1} 바이트만 읽었습니다.";
-    t[940] = "No IOException expected from StringBuffer or StringBuilder";
-    t[941] = "StringBuffer 또는 StringBuilder에서 IOException이 발생하지 않았습니다.";
-    t[942] = "Can''t use executeWithFlags(int) on a Statement.";
-    t[943] = "문에서 executeWithFlags(int)를 사용할 수 없습니다.";
-    t[946] = "Cannot write to copy a byte of value {0}";
-    t[947] = "값 {0} 의 바이트를 복사에 쓸 수 없습니다.";
-    t[954] = "The SocketFactory class provided {0} could not be instantiated.";
-    t[955] = "제공된 SocketFactory 클래스 {0} 을(를) 인스턴스화할 수 없습니다.";
-    t[960] = "suspend/resume not implemented";
-    t[961] = "일시 중지/다시 시작이 구현되지 않았습니다.";
-    t[964] = "Network timeout must be a value greater than or equal to 0.";
-    t[965] = "네트워크 시간 초과는 0보다 크거나 같아야 합니다.";
-    t[970] = "Invalid flags {0}";
-    t[971] = "잘못된 플래그 {0}";
-    t[976] = "Unable to parse the count in command completion tag: {0}.";
-    t[977] = "명령 완료 태그의 카운트를 파싱할 수 없습니다: {0}.";
-    t[984] = "No hstore extension installed.";
-    t[985] = "설치된 hstore 확장이 없습니다.";
-    t[996] = "tried to call end without corresponding start call. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[997] = "해당 시작 호출 없이 end를 호출하려고 했습니다. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[1002] = "Got CopyInResponse from server during an active {0}";
-    t[1003] = "활성 {0} 중 서버로부터 CopyInResponse를 받았습니다.";
-    t[1006] = "The fastpath function {0} is unknown.";
-    t[1007] = "Fastpath 함수 {0} 은(는) 알려지지 않았습니다.";
-    t[1008] = "Connection is busy with another transaction";
-    t[1009] = "연결이 다른 트랜잭션으로 바쁩니다.";
-    t[1016] = "Cannot call cancelRowUpdates() when on the insert row.";
-    t[1017] = "삽입 행에 있는 동안 cancelRowUpdates()를 호출할 수 없습니다.";
-    t[1018] = "Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
-    t[1019] = "준비된 트랜잭션을 롤백하는 중 오류가 발생했습니다. 롤백 xid={0}, preparedXid={1}, currentXid={2}";
-    t[1020] = "Connection attempt timed out.";
-    t[1021] = "연결 시도가 시간 초과되었습니다.";
-    t[1022] = "An error occurred while trying to reset the socket timeout.";
-    t[1023] = "소켓 시간 초과를 재설정하는 동안 오류가 발생했습니다.";
-    t[1024] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
-    t[1025] = "이 문은 OUT 매개 변수를 선언하지 않습니다. OUT 매개 변수를 선언하려면 '{' ?= call ... '}'을 사용하십시오.";
-    t[1026] = "Copying from database failed: {0}";
-    t[1027] = "데이터베이스에서 복사 실패: {0}";
-    t[1034] = "Interrupted while attempting to connect.";
-    t[1035] = "연결 시도 중 중단되었습니다.";
-    t[1042] = "Transaction control methods setAutoCommit(true), commit, rollback and setSavePoint not allowed while an XA transaction is active.";
-    t[1043] = "XA 트랜잭션이 활성 상태인 동안 트랜잭션 제어 메서드 setAutoCommit(true), commit, rollback 및 setSavePoint가 허용되지 않습니다.";
-    t[1064] = "Truncation of large objects is only implemented in 8.3 and later servers.";
-    t[1065] = "대형 객체의 잘림은 8.3 이후의 서버에서만 구현됩니다.";
-    t[1078] = "An error occurred while setting up the SSL connection.";
-    t[1079] = "SSL 연결을 설정하는 동안 오류가 발생했습니다.";
-    t[1082] = "Can not reset stream for large object {0} to position {1}";
-    t[1083] = "대형 객체 {0} 에 대한 스트림을 위치 {1} (으)로 재설정할 수 없습니다.";
-    t[1084] = "DataSource has been closed.";
-    t[1085] = "DataSource가 닫혔습니다.";
-    t[1102] = "Ran out of memory retrieving query results.";
-    t[1103] = "쿼리 결과를 검색하는 동안 메모리가 부족했습니다.";
-    t[1106] = "Could not find a server with specified targetServerType: {0}";
-    t[1107] = "지정된 targetServerType을 가진 서버를 찾을 수 없습니다: {0}";
-    t[1110] = "Could not read password for SSL key file, console is not available.";
-    t[1111] = "SSL 키 파일의 비밀번호를 읽을 수 없습니다. 콘솔을 사용할 수 없습니다.";
-    t[1118] = "The connection attempt failed.";
-    t[1119] = "연결 시도가 실패했습니다.";
-    t[1120] = "Unsupported type conversion to {0}.";
-    t[1121] = "{0} 으로의 지원되지 않는 유형 변환.";
-    t[1130] = "Unable to translate data into the desired encoding.";
-    t[1131] = "데이터를 원하는 인코딩으로 변환할 수 없습니다.";
-    t[1132] = "The server''s client_encoding parameter was changed to {0}. The JDBC driver requires client_encoding to be UTF8 for correct operation.";
-    t[1133] = "서버의 client_encoding 매개 변수가 {0} 으로 변경되었습니다. JDBC 드라이버는 올바른 작동을 위해 client_encoding이 UTF8이어야 합니다.";
-    t[1134] = "conversion to {0} from {1} not supported";
-    t[1135] = "{1} 에서 {0} (으)로의 변환이 지원되지 않습니다.";
-    t[1138] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
-    t[1139] = "보안 정책으로 인해 연결을 시도할 수 없습니다. 데이터베이스 서버 호스트와 연결하고자 하는 포트에 java.net.SocketPermission 연결 권한을 부여해야 할 것입니다.";
-    t[1140] = "The password callback class provided {0} could not be instantiated.";
-    t[1141] = "제공된 비밀번호 콜백 클래스 {0} 을(를) 인스턴스화할 수 없습니다.";
-    t[1142] = "Unable to convert bytea parameter at position {0} to literal";
-    t[1143] = "위치 {0} 의 bytea 매개 변수를 리터럴로 변환할 수 없습니다.";
-    t[1144] = "Unable to parse certificates for hostname {0}";
-    t[1145] = "호스트 이름 {0} 에 대한 인증서를 구문 분석할 수 없습니다.";
-    t[1146] = "Could not initialize SSL context.";
-    t[1147] = "SSL 컨텍스트를 초기화할 수 없습니다.";
-    t[1158] = "Tried to break lock on database connection";
-    t[1159] = "데이터베이스 연결에서 잠금을 해제하려고 시도했습니다.";
-    t[1160] = "Database connection failed when canceling copy operation";
-    t[1161] = "복사 작업을 취소하는 동안 데이터베이스 연결 실패";
-    t[1168] = "This copy stream is closed.";
-    t[1169] = "이 복사 스트림은 닫혀 있습니다.";
-    t[1174] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
-    t[1175] = "작업에는 스크롤 가능한 ResultSet이 필요하지만 이 ResultSet은 FORWARD_ONLY입니다.";
-    t[1176] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
-    t[1177] = "시스템 카탈로그 데이터가 누락되어 MaxIndexKeys 값을 결정할 수 없습니다.";
-    t[1178] = "Zero bytes may not occur in identifiers.";
-    t[1179] = "식별자에 0 바이트가 발생할 수 없습니다.";
-    t[1180] = "An error occurred reading the certificate";
-    t[1181] = "인증서를 읽는 동안 오류가 발생했습니다.";
-    t[1182] = "Interval {0} not yet implemented";
-    t[1183] = "구간 {0} 은(는) 아직 구현되지 않았습니다.";
-    t[1192] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
-    t[1193] = "알 수 없는 xid와 1단계 커밋. commit xid={0}, currentXid={1}";
-    t[1194] = "Backend timezone is not known. Backend should have returned TimeZone when establishing a connection";
-    t[1195] = "백엔드 표준 시간대를 알 수 없습니다. 연결을 설정할 때 백엔드에서 TimeZone을 반환해야 합니다.";
-    t[1196] = "Conversion to type {0} failed: {1}.";
-    t[1197] = "유형 {0} 으로 변환 실패: {1}.";
-    t[1202] = "Returning autogenerated keys is not supported.";
-    t[1203] = "자동 생성된 키 반환이 지원되지 않습니다.";
-    t[1204] = "Expected an EOF from server, got: {0}";
-    t[1205] = "서버로부터 EOF를 기대했지만, 대신: {0} 을(를) 받았습니다.";
-    t[1210] = "Location: File: {0}, Routine: {1}, Line: {2}";
-    t[1211] = "위치: 파일: {0}, 루틴: {1}, 줄: {2}";
-    t[1216] = "Failed to setup DataSource.";
-    t[1217] = "DataSource 설정 실패.";
-    t[1218] = "Prepare called before end. prepare xid={0}, state={1}";
-    t[1219] = "end 이전에 호출 준비. prepare xid={0}, state={1}";
-    t[1248] = "Received CommandComplete ''{0}'' without an active copy operation";
-    t[1249] = "활성 복사 작업 없이 CommandComplete ''{0}'' 을(를) 받았습니다.";
-    t[1250] = "Conversion of interval failed";
-    t[1251] = "간격 변환 실패";
-    t[1254] = "Not implemented: Prepare must be issued using the same connection that started the transaction. currentXid={0}, prepare xid={1}";
-    t[1255] = "구현되지 않음: Prepare는 트랜잭션을 시작한 동일한 연결을 사용하여 발행해야 합니다. currentXid={0}, prepare xid={1}";
-    t[1260] = "WARNING! Required to allocate {0} bytes, which exceeded possible heap memory size. Assigned {1} bytes as limit.";
-    t[1261] = "경고! {0} 바이트를 할당해야 하는데 이는 가능한 힙 메모리 크기를 초과했습니다. {1} 바이트를 한도로 할당했습니다.";
-    t[1262] = "Unable to close connection properly";
-    t[1263] = "연결을 올바르게 닫을 수 없습니다.";
-    t[1264] = "Cannot convert the column of type {0} to requested type {1}.";
-    t[1265] = "유형 {0} 의 열을 요청된 유형 {1} (으)로 변환할 수 없습니다.";
-    t[1268] = "{0} function takes two or three arguments.";
-    t[1269] = "{0} 함수는 두 개 또는 세 개의 인수를 받습니다.";
-    t[1278] = "Could not read SSL root certificate file {0}.";
-    t[1279] = "SSL 루트 인증서 파일 {0} 을(를) 읽을 수 없습니다.";
-    t[1290] = "Could not open SSL root certificate file {0}.";
-    t[1291] = "SSL 루트 인증서 파일 {0} 을(를) 열 수 없습니다.";
-    t[1294] = "The server does not support SSL.";
-    t[1295] = "서버가 SSL을 지원하지 않습니다.";
-    t[1296] = "Connection to {0} refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.";
-    t[1297] = "{0} 에 대한 연결이 거부되었습니다. 호스트 이름과 포트가 올바른지, 그리고 postmaster가 TCP/IP 연결을 수락하고 있는지 확인하십시오.";
-    t[1300] = "Added parameters index out of range: {0}, number of columns: {1}.";
-    t[1301] = "추가된 매개 변수 인덱스가 범위를 벗어났습니다: {0}, 열 수: {1}.";
-    t[1302] = "Can't convert {0} to {1} literal";
-    t[1303] = "{0} 을(를) {1} 리터럴로 변환할 수 없습니다.";
-    t[1304] = "No certificates found for hostname {0}";
-    t[1305] = "호스트 이름 {0} 에 대한 인증서를 찾을 수 없습니다.";
-    t[1306] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
-    t[1307] = "같은 PooledConnection에 대해 새 연결이 열리거나 PooledConnection이 닫혔기 때문에 연결이 자동으로 닫혔습니다.";
-    t[1308] = "Cannot commit when autoCommit is enabled.";
-    t[1309] = "autoCommit이 활성화된 상태에서 커밋할 수 없습니다.";
-    t[1312] = "Enter SSL password: ";
-    t[1313] = "SSL 비밀번호 입력: ";
-    t[1314] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
-    t[1315] = "서버의 standard_conforming_strings 매개 변수가 {0} 으로 보고되었습니다. JDBC 드라이버는 켜짐 또는 꺼짐을 예상했습니다.";
-    t[1318] = "Too many update results were returned.";
-    t[1319] = "너무 많은 업데이트 결과가 반환되었습니다.";
-    t[1322] = "StreamWrapper leak detected StreamWrapper.close() was not called. ";
-    t[1323] = "StreamWrapper 누수가 감지되었습니다. StreamWrapper.close()가 호출되지 않았습니다.";
-    t[1326] = "Unsupported binary encoding of {0}.";
-    t[1327] = "{0} 의 지원되지 않는 이진 인코딩.";
-    t[1334] = "Unexpected packet type during copy: {0}";
-    t[1335] = "복사 중 예상치 못한 패킷 유형: {0}";
-    t[1340] = "Maximum number of rows must be a value greater than or equal to 0.";
-    t[1341] = "최대 행 수는 0보다 크거나 같아야 합니다.";
-    t[1354] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
-    t[1355] = "유형 {0} 의 매개 변수가 등록되었지만 get{1} (sqltype={2}) 호출이 이루어졌습니다.";
-    t[1362] = "oid type {0} not known and not a number";
-    t[1363] = "oid 유형 {0} 이(가) 알려지지 않았고 숫자가 아닙니다.";
-    t[1366] = "Unable to find resource {0} via class {1} ClassLoader {2}";
-    t[1367] = "클래스 {1} ClassLoader {2} 을(를) 통해 리소스 {0} 을(를) 찾을 수 없습니다.";
-    t[1368] = "There are no rows in this ResultSet.";
-    t[1369] = "이 ResultSet에는 행이 없습니다.";
-    t[1370] = "No results were returned by the query.";
-    t[1371] = "쿼리에서 반환된 결과가 없습니다.";
-    t[1372] = "Query timeout must be a value greater than or equals to 0.";
-    t[1373] = "쿼리 시간 초과는 0보다 크거나 같아야 합니다.";
-    t[1374] = "Cannot tell if path is open or closed: {0}.";
-    t[1375] = "경로가 열려 있는지 닫혀 있는지 알 수 없습니다: {0}.";
-    t[1376] = "An error occurred while setting up the GSS Encoded connection.";
-    t[1377] = "GSS 인코딩된 연결을 설정하는 동안 오류가 발생했습니다.";
-    t[1380] = "Unknown Types value.";
-    t[1381] = "알 수 없는 유형 값입니다.";
-    t[1384] = "Object is too large to send over the protocol.";
-    t[1385] = "객체가 프로토콜을 통해 보내기에는 너무 큽니다.";
-    t[1386] = "Unable to create SAXResult for SQLXML.";
-    t[1387] = "SQLXML에 대한 SAXResult를 생성할 수 없습니다.";
-    t[1388] = "An I/O error occurred while sending to the backend.";
-    t[1389] = "백엔드로 전송하는 동안 I/O 오류가 발생했습니다.";
-    t[1392] = "This connection has been closed.";
-    t[1393] = "이 연결은 닫혔습니다.";
-    t[1396] = "Internal Position: {0}";
-    t[1397] = "내부 위치: {0}";
-    t[1400] = "The column index is out of range: {0}, number of columns: {1}.";
-    t[1401] = "열 인덱스가 범위를 벗어났습니다: {0}, 열 수: {1}.";
-    t[1416] = "The server requested SCRAM-based authentication, but no password was provided.";
-    t[1417] = "서버가 SCRAM 기반 인증을 요청했지만, 비밀번호가 제공되지 않았습니다.";
-    t[1418] = "hstore key must not be null";
-    t[1419] = "hstore 키는 null일 수 없습니다.";
-    t[1426] = "Could not open SSL certificate file {0}.";
-    t[1427] = "SSL 인증서 파일 {0} 을(를) 열 수 없습니다.";
-    t[1428] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
-    t[1429] = "바인드 메시지 길이 {0} 이 너무 깁니다. 이는 매우 크거나 잘못된 길이 지정이 InputStream 매개 변수에 포함되어 있을 때 발생할 수 있습니다.";
-    t[1434] = "Can not read data from large object {0}, position: {1}, buffer size: {2}";
-    t[1435] = "대형 객체 {0} 에서 데이터를 읽을 수 없습니다. 위치: {1}, 버퍼 크기: {2}";
-    t[1436] = "Tried to end inactive copy";
-    t[1437] = "비활성 복사를 끝내려고 시도했습니다.";
-    t[1438] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
-    t[1439] = "현재 ResultSet의 시작 이전에 위치해 있습니다. 여기에서 deleteRow()를 호출할 수 없습니다.";
-    t[1442] = "Custom type maps are not supported.";
-    t[1443] = "사용자 정의 유형 맵은 지원되지 않습니다.";
-    t[1444] = "Server SQLState: {0}";
-    t[1445] = "서버 SQL 상태: {0}";
-    t[1446] = "Could not find a java cryptographic algorithm: {0}.";
-    t[1447] = "Java 암호화 알고리즘을 찾을 수 없습니다: {0}.";
-    t[1452] = "Loading the SSL root certificate {0} into a TrustManager failed.";
-    t[1453] = "SSL 루트 인증서 {0} 을(를) TrustManager로 로드하지 못했습니다.";
-    t[1456] = "The sslfactoryarg property may not be empty.";
-    t[1457] = "sslfactoryarg 속성은 비어 있을 수 없습니다.";
-    t[1458] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
-    t[1459] = "CallableStatement가 선언되었지만 registerOutParameter(1, <some type>) 호출이 이루어지지 않았습니다.";
-    t[1468] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[1469] = "잘못된 프로토콜 상태 요청됨. 트랜잭션 교차 시도는 지원되지 않습니다. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[1474] = "Fastpath call {0} - No result was returned and we expected a long.";
-    t[1475] = "Fastpath 호출 {0} - 결과가 반환되지 않았고 long을 예상했습니다.";
-    t[1476] = "Error loading default settings from driverconfig.properties";
-    t[1477] = "driverconfig.properties에서 기본 설정을 로드하는 중 오류 발생";
-    t[1484] = "Failed to convert binary xml data to encoding: {0}.";
-    t[1485] = "이진 xml 데이터를 인코딩 {0} (으)로 변환하지 못했습니다.";
-    t[1488] = "Fastpath call {0} - No result was returned or wrong size while expecting a long.";
-    t[1489] = "Fastpath 호출 {0} - 결과가 반환되지 않았거나 long을 예상하는 동안 잘못된 크기입니다.";
-    t[1490] = "Unexpected error writing large object to database.";
-    t[1491] = "데이터베이스에 대형 객체를 쓰는 동안 예상치 못한 오류가 발생했습니다.";
-    t[1492] = "An unexpected result was returned by a query.";
-    t[1493] = "쿼리가 예상치 못한 결과를 반환했습니다.";
-    t[1496] = "wasNull cannot be call before fetching a result.";
-    t[1497] = "wasNull은 결과를 가져오기 전에 호출할 수 없습니다.";
-    t[1502] = "{0} function takes two and only two arguments.";
-    t[1503] = "{0} 함수는 두 개의 인수만 받습니다.";
-    t[1514] = "Loading the SSL certificate {0} into a KeyManager failed.";
-    t[1515] = "SSL 인증서 {0} 을(를) KeyManager로 로드하지 못했습니다.";
-    t[1518] = "Unable to find keywords in the system catalogs.";
-    t[1519] = "시스템 카탈로그에서 키워드를 찾을 수 없습니다.";
-    t[1524] = "Cannot rollback when autoCommit is enabled.";
-    t[1525] = "autoCommit이 활성화된 상태에서 롤백할 수 없습니다.";
-    t[1526] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
-    t[1527] = "이 SQLXML 객체가 초기화되지 않았으므로 데이터를 검색할 수 없습니다.";
-    t[1532] = "{0} function takes one and only one argument.";
-    t[1533] = "{0} 함수는 한 개의 인수만 받습니다.";
-    t[1536] = "The JVM claims not to support the encoding: {0}";
-    t[1537] = "JVM이 인코딩을 지원하지 않는다고 주장합니다: {0}";
-    t[1538] = "The server requested SCRAM-based authentication, but the password is an empty string.";
-    t[1539] = "서버가 SCRAM 기반 인증을 요청했지만, 비밀번호가 빈 문자열입니다.";
-    t[1544] = "Bad value for type {0} : {1}";
-    t[1545] = "유형 {0} 에 대한 잘못된 값: {1}";
-    t[1552] = "Unable to determine a value for DefaultTransactionIsolation due to missing  entry in pg_catalog.pg_settings WHERE name='default_transaction_isolation'.";
-    t[1553] = "pg_catalog.pg_settings에 name='default_transaction_isolation' 항목이 누락되어 DefaultTransactionIsolation 값을 결정할 수 없습니다.";
-    t[1558] = "This PooledConnection has already been closed.";
-    t[1559] = "이 PooledConnection은 이미 닫혔습니다.";
-    t[1560] = "PGStream is closed";
-    t[1561] = "PGStream이 닫혔습니다.";
-    t[1562] = "Unable to set network timeout.";
-    t[1563] = "네트워크 시간 초과를 설정할 수 없습니다.";
-    t[1568] = "Fastpath call {0} - No result was returned or wrong size while expecting an integer.";
-    t[1569] = "Fastpath 호출 {0} - 결과가 반환되지 않았거나 정수를 예상하는 동안 잘못된 크기입니다.";
-    t[1582] = "Could not instantiate xmlFactoryFactory: {0}";
-    t[1583] = "xmlFactoryFactory를 인스턴스화할 수 없습니다: {0}";
-    t[1584] = "Invalid targetServerType value: {0}";
-    t[1585] = "잘못된 targetServerType 값: {0}";
-    t[1592] = "Could not read password for SSL key file by callbackhandler {0}.";
-    t[1593] = "콜백 핸들러 {0} 을(를) 사용하여 SSL 키 파일의 비밀번호를 읽을 수 없습니다.";
-    t[1594] = "Unable to find name datatype in the system catalogs.";
-    t[1595] = "시스템 카탈로그에서 이름 데이터 유형을 찾을 수 없습니다.";
-    t[1602] = "Got CopyBothResponse from server during an active {0}";
-    t[1603] = "활성 {0} 중 서버로부터 CopyBothResponse를 받았습니다.";
-    t[1604] = "Unsupported properties: {0}";
-    t[1605] = "지원되지 않는 속성: {0}";
-    t[1606] = "Heuristic commit/rollback not supported. forget xid={0}";
-    t[1607] = "휴리스틱 커밋/롤백이 지원되지 않습니다. forget xid={0}";
-    t[1608] = "Validating connection.";
-    t[1609] = "연결을 검증 중입니다.";
-    t[1614] = "The maximum field size must be a value greater than or equal to 0.";
-    t[1615] = "최대 필드 크기는 0보다 크거나 같아야 합니다.";
-    t[1616] = "Expected command status BEGIN, got {0}.";
-    t[1617] = "예상한 명령 상태 BEGIN 대신 {0} 을(를) 받았습니다.";
-    t[1634] = "Unknown XML Result class: {0}";
-    t[1635] = "알 수 없는 XML 결과 클래스: {0}";
-    t[1642] = "Server name validation failed: hostname {0} does not match common name {1}";
-    t[1643] = "서버 이름 유효성 검사 실패: 호스트 이름 {0} 이(가) 공통 이름 {1} 과(와) 일치하지 않습니다.";
-    t[1644] = "One or more ClientInfo failed.";
-    t[1645] = "하나 이상의 ClientInfo가 실패했습니다.";
-    t[1650] = "The SSLSocketFactory class provided {0} could not be instantiated.";
-    t[1651] = "제공된 SSLSocketFactory 클래스 {0} 을(를) 인스턴스화할 수 없습니다.";
-    t[1656] = "Failed to create object for: {0}.";
-    t[1657] = "{0} 에 대한 개체 생성 실패.";
+    t[662] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[663] = "현재 연결에는 연결된 xid가 없습니다. prepare xid={0}";
+    t[664] = "No certificates found for hostname {0}";
+    t[665] = "호스트 이름 {0} 에 대한 인증서를 찾을 수 없습니다.";
+    t[670] = "Value is not an OID: {0}";
+    t[671] = "값이 OID가 아닙니다: {0}";
+    t[674] = "The column name {0} was not found in this ResultSet.";
+    t[675] = "이 ResultSet에서 열 이름 {0} 을(를) 찾을 수 없습니다.";
+    t[680] = "Failed to convert binary xml data to encoding: {0}.";
+    t[681] = "이진 xml 데이터를 인코딩 {0} (으)로 변환하지 못했습니다.";
+    t[682] = "Detail: {0}";
+    t[683] = "세부 정보: {0}";
+    t[684] = "oid type {0} not known and not a number";
+    t[685] = "oid 유형 {0} 이(가) 알려지지 않았고 숫자가 아닙니다.";
+    t[686] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
+    t[687] = "현재 ResultSet의 시작 이전에 위치해 있습니다. 여기에서 deleteRow()를 호출할 수 없습니다.";
+    t[692] = "Server name validation failed: certificate for host {0} dNSName entries subjectAltName, but none of them match. Assuming server name validation failed";
+    t[693] = "서버 이름 유효성 검사 실패: 호스트 {0} dNSName 항목 subjectAltName에 대한 인증서가 있지만 일치하지 않습니다. 서버 이름 유효성 검사 실패로 가정";
+    t[696] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
+    t[697] = "이 SQLXML 객체가 초기화되지 않았으므로 데이터를 검색할 수 없습니다.";
+    t[700] = "WARNING! Required to allocate {0} bytes, which exceeded possible heap memory size. Assigned {1} bytes as limit.";
+    t[701] = "경고! {0} 바이트를 할당해야 하는데 이는 가능한 힙 메모리 크기를 초과했습니다. {1} 바이트를 한도로 할당했습니다.";
+    t[702] = "Interrupted while attempting to connect.";
+    t[703] = "연결 시도 중 중단되었습니다.";
+    t[706] = "{0} returned no results";
+    t[707] = "{0} 반환된 결과가 없습니다.";
+    t[712] = "Tried to break lock on database connection";
+    t[713] = "데이터베이스 연결에서 잠금을 해제하려고 시도했습니다.";
+    t[716] = "DataSource has been closed.";
+    t[717] = "DataSource가 닫혔습니다.";
+    t[722] = "Returning autogenerated keys by column index is not supported.";
+    t[723] = "열 인덱스별 자동 생성 키 반환이 지원되지 않습니다.";
+    t[728] = "The sslfactoryarg property must start with the prefix file:, classpath:, env:, sys:, or -----BEGIN CERTIFICATE-----.";
+    t[729] = "sslfactoryarg 속성은 file:, classpath:, env:, sys: 또는 -----BEGIN CERTIFICATE----- 접두사로 시작해야 합니다.";
+    t[736] = "Unable to parse certificates for hostname {0}";
+    t[737] = "호스트 이름 {0} 에 대한 인증서를 구문 분석할 수 없습니다.";
+    t[738] = "Invalid elements {0}";
+    t[739] = "잘못된 요소 {0}";
+    t[740] = "Unable to find name datatype in the system catalogs.";
+    t[741] = "시스템 카탈로그에서 이름 데이터 유형을 찾을 수 없습니다.";
+    t[760] = "Unable to parse the count in command completion tag: {0}.";
+    t[761] = "명령 완료 태그의 카운트를 파싱할 수 없습니다: {0}.";
+    t[762] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[763] = "이 연결에서 트랜잭션이 이미 준비되었습니다. prepare xid={0}, preparedXid={1}";
+    t[766] = "The connection attempt failed.";
+    t[767] = "연결 시도가 실패했습니다.";
+    t[768] = "Added parameters index out of range: {0}, number of columns: {1}.";
+    t[769] = "추가된 매개 변수 인덱스가 범위를 벗어났습니다: {0}, 열 수: {1}.";
+    t[774] = "Tried to cancel an inactive copy operation";
+    t[775] = "비활성 복사 작업을 취소하려고 시도했습니다.";
+    t[778] = "Query timeout must be a value greater than or equals to 0.";
+    t[779] = "쿼리 시간 초과는 0보다 크거나 같아야 합니다.";
+    t[782] = "Cannot convert the column of type {0} to requested type {1}.";
+    t[783] = "유형 {0} 의 열을 요청된 유형 {1} (으)로 변환할 수 없습니다.";
+    t[786] = "Internal Query: {0}";
+    t[787] = "내부 쿼리: {0}";
+    t[788] = "Unknown XML Source class: {0}";
+    t[789] = "알 수 없는 XML 소스 클래스: {0}";
+    t[794] = "The JVM claims not to support the encoding: {0}";
+    t[795] = "JVM이 인코딩을 지원하지 않는다고 주장합니다: {0}";
+    t[798] = "Unexpected copydata from server for {0}";
+    t[799] = "{0} 에 대한 서버의 예상치 못한 copydata";
+    t[802] = "Unknown type {0}.";
+    t[803] = "알 수 없는 유형 {0}.";
+    t[808] = "Cannot call updateRow() when on the insert row.";
+    t[809] = "삽입 행에 있는 동안 updateRow()를 호출할 수 없습니다.";
+    t[812] = "Server name validation failed: unable to extract common name from X509Certificate for hostname {0}";
+    t[813] = "서버 이름 유효성 검사 실패: 호스트 이름 {0} 에 대한 X509Certificate에서 공통 이름을 추출할 수 없습니다.";
+    t[814] = "Requested CopyDual but got {0}";
+    t[815] = "요청된 CopyDual 대신 {0} 을(를) 받았습니다.";
+    t[816] = "Missing expected error response to copy cancel request";
+    t[817] = "복사 취소 요청에 대한 예상 오류 응답이 누락되었습니다.";
+    t[818] = "Cannot cast an instance of {0} to type {1}";
+    t[819] = "{0} 의 인스턴스를 유형 {1}(으)로 캐스팅할 수 없습니다.";
+    t[822] = "Invalid gssEncMode value: {0}";
+    t[823] = "잘못된 gssEncMode 값: {0}";
+    t[824] = "No hstore extension installed.";
+    t[825] = "설치된 hstore 확장이 없습니다.";
+    t[830] = "Invalid timeout ({0}<0).";
+    t[831] = "잘못된 시간 초과 ({0}<0).";
+    t[832] = "Unable to create StAXResult for SQLXML";
+    t[833] = "SQLXML에 대한 StAXResult를 생성할 수 없습니다.";
+    t[836] = "Transaction isolation level {0} not supported.";
+    t[837] = "트랜잭션 격리 수준 {0} 이(가) 지원되지 않습니다.";
+    t[838] = "The HostnameVerifier class provided {0} could not be instantiated.";
+    t[839] = "제공된 HostnameVerifier 클래스 {0} 을(를) 인스턴스화할 수 없습니다.";
+    t[842] = "Unable to find resource {0} via class {1} ClassLoader {2}";
+    t[843] = "클래스 {1} ClassLoader {2} 을(를) 통해 리소스 {0} 을(를) 찾을 수 없습니다.";
+    t[844] = "An unexpected result was returned by a query.";
+    t[845] = "쿼리가 예상치 못한 결과를 반환했습니다.";
+    t[846] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[847] = "1단계 커밋이 xid {0} 에 대해 호출되었으나 연결이 xid {1}(으)로 준비되었습니다.";
+    t[852] = "A CallableStatement was executed with an invalid number of parameters";
+    t[853] = "CallableStatement가 잘못된 수의 매개 변수로 실행되었습니다.";
+    t[854] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
+    t[855] = "입력 스트림의 조기 종료, 예상 {0} 바이트 중 {1} 바이트만 읽었습니다.";
+    t[862] = "Database connection failed when canceling copy operation";
+    t[863] = "복사 작업을 취소하는 동안 데이터베이스 연결 실패";
+    t[870] = "This copy stream is closed.";
+    t[871] = "이 복사 스트림은 닫혀 있습니다.";
+    t[872] = "Failed to setup DataSource.";
+    t[873] = "DataSource 설정 실패.";
+    t[874] = "{0} function takes one and only one argument.";
+    t[875] = "{0} 함수는 한 개의 인수만 받습니다.";
+    t[876] = "Can''t use relative move methods while on the insert row.";
+    t[877] = "삽입 행에 있는 동안 상대적 이동 메서드를 사용할 수 없습니다.";
+    t[880] = "Could not find a java cryptographic algorithm: {0}.";
+    t[881] = "Java 암호화 알고리즘을 찾을 수 없습니다: {0}.";
+    t[882] = "No eligible primary or unique key found for table {0}.";
+    t[883] = "테이블 {0} 에 대해 적합한 기본 키 또는 고유 키가 없습니다.";
+    t[890] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
+    t[891] = "작업에는 스크롤 가능한 ResultSet이 필요하지만 이 ResultSet은 FORWARD_ONLY입니다.";
+    t[892] = "Tried to read from inactive copy";
+    t[893] = "비활성 복사에서 읽기를 시도했습니다.";
+    t[898] = "A connection could not be made using the requested protocol {0}.";
+    t[899] = "요청된 프로토콜 {0} 을(를) 사용하여 연결할 수 없습니다.";
+    t[902] = "The maximum field size must be a value greater than or equal to 0.";
+    t[903] = "최대 필드 크기는 0보다 크거나 같아야 합니다.";
+    t[908] = "Could not open SSL root certificate file {0}.";
+    t[909] = "SSL 루트 인증서 파일 {0} 을(를) 열 수 없습니다.";
+    t[912] = "Error loading default settings from driverconfig.properties";
+    t[913] = "driverconfig.properties에서 기본 설정을 로드하는 중 오류 발생";
+    t[914] = "{0} function takes two and only two arguments.";
+    t[915] = "{0} 함수는 두 개의 인수만 받습니다.";
+    t[918] = "Unknown ResultSet holdability setting: {0}.";
+    t[919] = "알 수 없는 ResultSet 유지 가능성 설정: {0}.";
+    t[920] = "The JVM claims not to support the {0} encoding.";
+    t[921] = "JVM이 {0} 인코딩을 지원하지 않는다고 주장합니다.";
+    t[932] = "The server does not support SSL.";
+    t[933] = "서버가 SSL을 지원하지 않습니다.";
+    t[934] = "Provided InputStream failed.";
+    t[935] = "제공된 InputStream이 실패했습니다.";
+    t[946] = "No X509TrustManager found";
+    t[947] = "X509TrustManager를 찾을 수 없습니다.";
+    t[948] = "Connection attempt timed out.";
+    t[949] = "연결 시도가 시간 초과되었습니다.";
+    t[950] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
+    t[951] = "CallableStatement가 선언되었지만 registerOutParameter(1, <some type>) 호출이 이루어지지 않았습니다.";
+    t[954] = "Can not write data to large object {0}, requested write length: {1}";
+    t[955] = "대형 객체 {0} 에 데이터를 쓸 수 없습니다. 요청된 쓰기 길이: {1}";
+    t[956] = "Can not read data from large object {0}, position: {1}, buffer size: {2}";
+    t[957] = "대형 객체 {0} 에서 데이터를 읽을 수 없습니다. 위치: {1}, 버퍼 크기: {2}";
+    t[958] = "Could not read SSL key file {0}.";
+    t[959] = "SSL 키 파일 {0} 을(를) 읽을 수 없습니다.";
+    t[964] = "ClientInfo property not supported.";
+    t[965] = "ClientInfo 속성이 지원되지 않습니다.";
+    t[966] = "Can''t use executeWithFlags(int) on a Statement.";
+    t[967] = "문에서 executeWithFlags(int)를 사용할 수 없습니다.";
+    t[970] = "Unknown Response Type {0}.";
+    t[971] = "알 수 없는 응답 유형 {0}.";
+    t[976] = "Unable to find resource {0} via Thread contextClassLoader {1}";
+    t[977] = "스레드 contextClassLoader {1} 을(를) 통해 리소스 {0} 을(를) 찾을 수 없습니다.";
+    t[986] = "Could not instantiate xmlFactoryFactory: {0}";
+    t[987] = "xmlFactoryFactory를 인스턴스화할 수 없습니다: {0}";
+    t[988] = "Truncation of large objects is only implemented in 8.3 and later servers.";
+    t[989] = "대형 객체의 잘림은 8.3 이후의 서버에서만 구현됩니다.";
+    t[996] = "Unsupported binary encoding of {0}.";
+    t[997] = "{0} 의 지원되지 않는 이진 인코딩.";
+    t[998] = "Unexpected error writing large object to database.";
+    t[999] = "데이터베이스에 대형 객체를 쓰는 동안 예상치 못한 오류가 발생했습니다.";
+    t[1004] = "Can''t refresh the insert row.";
+    t[1005] = "삽입 행을 새로 고칠 수 없습니다.";
+    t[1008] = "ResultSet not positioned properly, perhaps you need to call next.";
+    t[1009] = "ResultSet이 올바르게 위치하지 않았습니다. 아마도 next를 호출해야 할 것입니다.";
+    t[1016] = "Server SQLState: {0}";
+    t[1017] = "서버 SQL 상태: {0}";
+    t[1022] = "Cannot call cancelRowUpdates() when on the insert row.";
+    t[1023] = "삽입 행에 있는 동안 cancelRowUpdates()를 호출할 수 없습니다.";
+    t[1032] = "The hostname {0} could not be verified by hostnameverifier {1}.";
+    t[1033] = "hostnameverifier {1} 이(가) 호스트 이름 {0}을(를) 확인할 수 없습니다.";
+    t[1034] = "{0} function takes two or three arguments.";
+    t[1035] = "{0} 함수는 두 개 또는 세 개의 인수를 받습니다.";
+    t[1044] = "Unable to determine a value for DefaultTransactionIsolation due to missing  entry in pg_catalog.pg_settings WHERE name='default_transaction_isolation'.";
+    t[1045] = "pg_catalog.pg_settings에 name='default_transaction_isolation' 항목이 누락되어 DefaultTransactionIsolation 값을 결정할 수 없습니다.";
+    t[1058] = "SHOW password_encryption returned null value";
+    t[1059] = "SHOW password_encryption이 null 값을 반환했습니다.";
+    t[1060] = "Invalid sslmode value: {0}";
+    t[1061] = "잘못된 sslmode 값: {0}";
+    t[1072] = "Object is too large to send over the protocol.";
+    t[1073] = "객체가 프로토콜을 통해 보내기에는 너무 큽니다.";
+    t[1076] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[1077] = "Prepare는 분기를 시작한 연결에서 발행해야 합니다. 트랜잭션 교차는 지원되지 않습니다. prepare xid={0}, currentXid={1}";
+    t[1082] = "Invalid targetServerType value: {0}";
+    t[1083] = "잘못된 targetServerType 값: {0}";
+    t[1086] = "Cannot rollback when autoCommit is enabled.";
+    t[1087] = "autoCommit이 활성화된 상태에서 롤백할 수 없습니다.";
+    t[1088] = "Fastpath call {0} - No result was returned and we expected a long.";
+    t[1089] = "Fastpath 호출 {0} - 결과가 반환되지 않았고 long을 예상했습니다.";
+    t[1090] = "The password callback class provided {0} could not be instantiated.";
+    t[1091] = "제공된 비밀번호 콜백 클래스 {0} 을(를) 인스턴스화할 수 없습니다.";
+    t[1092] = "wasNull cannot be call before fetching a result.";
+    t[1093] = "wasNull은 결과를 가져오기 전에 호출할 수 없습니다.";
+    t[1094] = "One or more ClientInfo failed.";
+    t[1095] = "하나 이상의 ClientInfo가 실패했습니다.";
+    t[1098] = "Network timeout must be a value greater than or equal to 0.";
+    t[1099] = "네트워크 시간 초과는 0보다 크거나 같아야 합니다.";
+    t[1106] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[1107] = "잘못된 프로토콜 상태 요청됨. 트랜잭션 교차 시도는 지원되지 않습니다. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[1110] = "Conversion to type {0} failed: {1}.";
+    t[1111] = "유형 {0} 으로 변환 실패: {1}.";
+    t[1114] = "There are no rows in this ResultSet.";
+    t[1115] = "이 ResultSet에는 행이 없습니다.";
+    t[1116] = " (pgjdbc: autodetected server-encoding to be {0}, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf)";
+    t[1117] = "(pgjdbc: 서버 인코딩이 {0} (으)로 자동 감지되었습니다. 메시지를 읽을 수 없는 경우 데이터베이스 로그 및/또는 호스트, 포트, dbname, 사용자, 비밀번호, pg_hba.conf를 확인하십시오.)";
+    t[1124] = "Unable to convert bytea parameter at position {0} to literal";
+    t[1125] = "위치 {0} 의 bytea 매개 변수를 리터럴로 변환할 수 없습니다.";
+    t[1130] = "SSL error: {0}";
+    t[1131] = "SSL 오류: {0}";
+    t[1136] = "Unable to close connection properly";
+    t[1137] = "연결을 올바르게 닫을 수 없습니다.";
+    t[1140] = "The server''s client_encoding parameter was changed to {0}. The JDBC driver requires client_encoding to be UTF8 for correct operation.";
+    t[1141] = "서버의 client_encoding 매개 변수가 {0} 으로 변경되었습니다. JDBC 드라이버는 올바른 작동을 위해 client_encoding이 UTF8이어야 합니다.";
+    t[1144] = "Received CommandComplete ''{0}'' without an active copy operation";
+    t[1145] = "활성 복사 작업 없이 CommandComplete ''{0}'' 을(를) 받았습니다.";
+    t[1146] = "Cannot convert an instance of {0} to type {1}";
+    t[1147] = "{0} 의 인스턴스를 유형 {1} (으)로 변환할 수 없습니다.";
+    t[1148] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[1149] = "일치하는 start() 호출 없이 end()가 호출되었습니다. end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[1150] = "Can''t use query methods that take a query string on a PreparedStatement.";
+    t[1151] = "PreparedStatement에서 쿼리 문자열을 사용하는 쿼리 메서드를 사용할 수 없습니다.";
+    t[1152] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
+    t[1153] = "동시성 CONCUR_READ_ONLY를 가진 ResultSet은 업데이트할 수 없습니다.";
+    t[1154] = "COPY commands are only supported using the CopyManager API.";
+    t[1155] = "COPY 명령은 CopyManager API를 사용하여서만 지원됩니다.";
+    t[1158] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[1159] = "알 수 없는 xid와 1단계 커밋. commit xid={0}, currentXid={1}";
+    t[1170] = "Connection has been closed.";
+    t[1171] = "연결이 닫혔습니다.";
+    t[1172] = "The server requested SCRAM-based authentication, but no password was provided.";
+    t[1173] = "서버가 SCRAM 기반 인증을 요청했지만, 비밀번호가 제공되지 않았습니다.";
+    t[1176] = "CopyIn copy direction can't receive data";
+    t[1177] = "CopyIn 복사 방향은 데이터를 수신할 수 없습니다.";
+    t[1180] = "A CallableStatement was executed with nothing returned.";
+    t[1181] = "CallableStatement가 실행되었으나 반환된 값이 없습니다.";
+    t[1190] = "Results cannot be retrieved from a CallableStatement before it is executed.";
+    t[1191] = "CallableStatement가 실행되기 전에 결과를 검색할 수 없습니다.";
+    t[1192] = "Loading the SSL root certificate {0} into a TrustManager failed.";
+    t[1193] = "SSL 루트 인증서 {0} 을(를) TrustManager로 로드하지 못했습니다.";
+    t[1200] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[1201] = "트랜잭션을 롤백하는 중 오류가 발생했습니다. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[1206] = "Failed to set ClientInfo property: {0}";
+    t[1207] = "ClientInfo 속성 설정 실패: {0}";
+    t[1208] = "Neither Subject.doAs (Java before 18) nor Subject.callAs (Java 18+) method found";
+    t[1209] = "Subject.doAs (Java 18 이전) 또는 Subject.callAs (Java 18+) 메서드가 발견되지 않았습니다.";
+    t[1216] = "Bad value for type {0} : {1}";
+    t[1217] = "유형 {0} 에 대한 잘못된 값: {1}";
+    t[1218] = "Provided Reader failed.";
+    t[1219] = "제공된 Reader가 실패했습니다.";
+    t[1222] = "Unable to find pkcs12 keystore.";
+    t[1223] = "pkcs12 키 저장소를 찾을 수 없습니다.";
+    t[1228] = "Returning autogenerated keys is not supported.";
+    t[1229] = "자동 생성된 키 반환이 지원되지 않습니다.";
+    t[1236] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[1237] = "이 연결에서 로컬 트랜잭션이 진행 중인 동안에는 준비된 트랜잭션의 2단계 커밋을 수행할 수 없습니다. 먼저 로컬 트랜잭션을 커밋하거나 롤백하십시오. commit xid={0}, transactionState={1}";
+    t[1238] = "Error releasing savepoint";
+    t[1239] = "세이브포인트 해제 오류";
+    t[1240] = "Unsupported Types value: {0}";
+    t[1241] = "지원되지 않는 유형 값: {0}";
+    t[1242] = "The environment variable containing the server's SSL certificate must not be empty.";
+    t[1243] = "서버의 SSL 인증서를 포함하는 환경 변수는 비어 있을 수 없습니다.";
+    t[1244] = "Unknown value for ResultSet holdability";
+    t[1245] = "ResultSet 유지 가능성에 대한 알 수 없는 값입니다.";
+    t[1246] = "Tried to obtain lock while already holding it";
+    t[1247] = "이미 잠금을 보유한 상태에서 잠금을 얻으려고 시도했습니다.";
+    t[1250] = "Fastpath call {0} - No result was returned and we expected an integer.";
+    t[1251] = "Fastpath 호출 {0} - 결과가 반환되지 않았고 정수를 예상했습니다.";
+    t[1254] = "Cannot retrieve the id of a named savepoint.";
+    t[1255] = "이름이 지정된 세이브포인트의 ID를 검색할 수 없습니다.";
+    t[1256] = "Cannot commit when autoCommit is enabled.";
+    t[1257] = "autoCommit이 활성화된 상태에서 커밋할 수 없습니다.";
+    t[1260] = "Could not read SSL root certificate file {0}.";
+    t[1261] = "SSL 루트 인증서 파일 {0} 을(를) 읽을 수 없습니다.";
+    t[1270] = "Unsupported type conversion to {0}.";
+    t[1271] = "{0} 으로의 지원되지 않는 유형 변환.";
+    t[1272] = "Unable to translate data into the desired encoding.";
+    t[1273] = "데이터를 원하는 인코딩으로 변환할 수 없습니다.";
+    t[1274] = "Database cannot be null";
+    t[1275] = "데이터베이스는 null일 수 없습니다.";
+    t[1276] = "PGStream is closed";
+    t[1277] = "PGStream이 닫혔습니다.";
+    t[1282] = "An error occurred reading the certificate";
+    t[1283] = "인증서를 읽는 동안 오류가 발생했습니다.";
+    t[1286] = "Fastpath call {0} - No result was returned or wrong size while expecting an integer.";
+    t[1287] = "Fastpath 호출 {0} - 결과가 반환되지 않았거나 정수를 예상하는 동안 잘못된 크기입니다.";
+    t[1290] = "Unable to instantiate SecBufferDesc, so SSPI is unavailable";
+    t[1291] = "SecBufferDesc을 인스턴스화할 수 없어 SSPI를 사용할 수 없습니다.";
+    t[1296] = "Unable to decode xml data.";
+    t[1297] = "xml 데이터를 디코딩할 수 없습니다.";
+    t[1298] = "This replication stream has been closed.";
+    t[1299] = "이 복제 스트림은 닫혔습니다.";
+    t[1300] = "Bad value for type timestamp/date/time: {0}";
+    t[1301] = "유형 타임스탬프/날짜/시간에 대한 잘못된 값: {0}";
+    t[1302] = "Invalid flags {0}";
+    t[1303] = "잘못된 플래그 {0}";
+    t[1306] = "Loading the SSL certificate {0} into a KeyManager failed.";
+    t[1307] = "SSL 인증서 {0} 을(를) KeyManager로 로드하지 못했습니다.";
+    t[1308] = "commit() called before end(). commit xid={0}, state={1}";
+    t[1309] = "end() 호출 전에 commit()이 호출되었습니다. commit xid={0}, state={1}";
+    t[1310] = "Server does not support temporary replication slots";
+    t[1311] = "서버가 임시 복제 슬롯을 지원하지 않습니다.";
+    t[1312] = "GSS Authentication failed";
+    t[1313] = "GSS 인증 실패";
+    t[1316] = "Expected an EOF from server, got: {0}";
+    t[1317] = "서버로부터 EOF를 기대했지만, 대신: {0} 을(를) 받았습니다.";
+    t[1322] = "Could not open SSL certificate file {0}.";
+    t[1323] = "SSL 인증서 파일 {0} 을(를) 열 수 없습니다.";
+    t[1324] = "{0} function takes three and only three arguments.";
+    t[1325] = "{0} 함수는 세 개의 인수만 받습니다.";
+    t[1328] = "Cannot write to copy a byte of value {0}";
+    t[1329] = "값 {0} 의 바이트를 복사에 쓸 수 없습니다.";
+    t[1330] = "An I/O error occurred while sending to the backend.";
+    t[1331] = "백엔드로 전송하는 동안 I/O 오류가 발생했습니다.";
+    t[1334] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[1335] = "이 연결에서 로컬 트랜잭션이 진행 중인 동안에는 준비된 트랜잭션을 롤백할 수 없습니다. 먼저 로컬 트랜잭션을 커밋하거나 롤백하십시오. rollback xid={0}, transactionState={1}";
+    t[1338] = "Multiple ResultSets were returned by the query.";
+    t[1339] = "쿼리에서 여러 ResultSet이 반환되었습니다.";
+    t[1342] = "Cannot change transaction isolation level in the middle of a transaction.";
+    t[1343] = "트랜잭션 중간에 트랜잭션 격리 수준을 변경할 수 없습니다.";
+    t[1352] = "Unable to load Authentication Plugin {0}";
+    t[1353] = "인증 플러그인 {0} 을(를) 로드할 수 없습니다.";
+    t[1354] = "The SocketFactory class provided {0} could not be instantiated.";
+    t[1355] = "제공된 SocketFactory 클래스 {0} 을(를) 인스턴스화할 수 없습니다.";
+    t[1356] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[1357] = "이 연결에서 XA 분기가 활성 상태인 동안에는 2단계 커밋을 발행할 수 없습니다. commit xid={0}, currentXid={1}, state={2}";
+    t[1358] = "Unable to create SAXResult for SQLXML.";
+    t[1359] = "SQLXML에 대한 SAXResult를 생성할 수 없습니다.";
+    t[1360] = "Not on the insert row.";
+    t[1361] = "삽입 행에 있지 않습니다.";
+    t[1362] = "Can not flush large object {0}";
+    t[1363] = "대형 객체 {0} 을(를) 플러시할 수 없습니다.";
+    t[1368] = "This ResultSet is closed.";
+    t[1369] = "이 ResultSet은 닫혔습니다.";
+    t[1370] = "An error occurred while setting up the GSS Encoded connection.";
+    t[1371] = "GSS 인코딩된 연결을 설정하는 동안 오류가 발생했습니다.";
+    t[1374] = "PreparedStatement can have at most {0} parameters. Please consider using arrays, or splitting the query in several ones, or using COPY. Given query has {1} parameters";
+    t[1375] = "PreparedStatement는 최대 {0} 개의 매개 변수를 가질 수 있습니다. 배열을 사용하거나 쿼리를 여러 개로 나누거나 COPY를 사용하는 것을 고려하십시오. 주어진 쿼리는 {1} 개의 매개 변수를 가집니다.";
+    t[1376] = "Database connection failed when ending copy";
+    t[1377] = "복사를 종료하는 동안 데이터베이스 연결 실패";
+    t[1380] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
+    t[1381] = "ResultSet은 업데이트할 수 없습니다. 이 결과 집합을 생성한 쿼리는 하나의 테이블만 선택해야 하며 해당 테이블의 모든 기본 키를 선택해야 합니다. 자세한 내용은 JDBC 2.1 API 명세서 섹션 5.6을 참조하십시오.";
+    t[1386] = "{0} parameter value must be an integer but was: {1}";
+    t[1387] = "{0} 매개 변수 값은 정수여야 하지만 실제로는: {1} 입니다.";
+    t[1392] = "Cannot establish a savepoint in auto-commit mode.";
+    t[1393] = "자동 커밋 모드에서는 세이브포인트를 설정할 수 없습니다.";
+    t[1396] = "Unable to find server array type for provided name {0}.";
+    t[1397] = "제공된 이름 {0} 에 대한 서버 배열 유형을 찾을 수 없습니다.";
+    t[1400] = "StreamWrapper leak detected StreamWrapper.close() was not called. ";
+    t[1401] = "StreamWrapper 누수가 감지되었습니다. StreamWrapper.close()가 호출되지 않았습니다.";
+    t[1402] = "Tried to write to an inactive copy operation";
+    t[1403] = "비활성 복사 작업에 쓰기를 시도했습니다.";
+    t[1404] = "Custom type maps are not supported.";
+    t[1405] = "사용자 정의 유형 맵은 지원되지 않습니다.";
+    t[1406] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
+    t[1407] = "바인드 메시지 길이 {0} 이 너무 깁니다. 이는 매우 크거나 잘못된 길이 지정이 InputStream 매개 변수에 포함되어 있을 때 발생할 수 있습니다.";
+    t[1412] = "Position: {0}";
+    t[1413] = "위치: {0}";
+    t[1414] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
+    t[1415] = "현재 ResultSet의 끝 이후에 위치해 있습니다. 여기에서 deleteRow()를 호출할 수 없습니다.";
+    t[1422] = "xid must not be null";
+    t[1423] = "xid는 null일 수 없습니다.";
+    t[1428] = "No IOException expected from StringBuffer or StringBuilder";
+    t[1429] = "StringBuffer 또는 StringBuilder에서 IOException이 발생하지 않았습니다.";
+    t[1430] = "An error occurred while trying to reset the socket timeout.";
+    t[1431] = "소켓 시간 초과를 재설정하는 동안 오류가 발생했습니다.";
+    t[1436] = "Unable to parse X509Certificate for hostname {0}";
+    t[1437] = "호스트 이름 {0} 에 대한 X509Certificate을(를) 구문 분석할 수 없습니다.";
+    t[1438] = "Got CopyOutResponse from server during an active {0}";
+    t[1439] = "활성 {0} 중 서버로부터 CopyOutResponse를 받았습니다.";
+    t[1440] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
+    t[1441] = "CallableStatement 함수가 실행되었고 out 매개 변수 {0} 의 유형이 {1} 이었지만 유형 {2} 가 등록되었습니다.";
+    t[1442] = "Got {0} error responses to single copy cancel request";
+    t[1443] = "단일 복사 취소 요청에 대해 {0} 오류 응답을 받았습니다.";
+    t[1460] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
+    t[1461] = "보안 정책으로 인해 연결을 시도할 수 없습니다. 데이터베이스 서버 호스트와 연결하고자 하는 포트에 java.net.SocketPermission 연결 권한을 부여해야 할 것입니다.";
+    t[1462] = "Properties for the driver contains a non-string value for the key {0}";
+    t[1463] = "드라이버의 속성에 문자열이 아닌 값이 포함되어 있습니다. 키: {0}";
+    t[1472] = "Leak detected: Connection.close() was not called";
+    t[1473] = "누출 감지됨: Connection.close()가 호출되지 않았습니다.";
+    t[1476] = "Cannot reference a savepoint after it has been released.";
+    t[1477] = "해제된 후에는 세이브포인트를 참조할 수 없습니다.";
+    t[1486] = "Unknown XML Result class: {0}";
+    t[1487] = "알 수 없는 XML 결과 클래스: {0}";
+    t[1490] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
+    t[1491] = "시스템 카탈로그 데이터가 누락되어 MaxIndexKeys 값을 결정할 수 없습니다.";
     table = t;
   }
   public java.lang.Object handleGetObject (java.lang.String msgid) throws java.util.MissingResourceException {
     int hash_val = msgid.hashCode() & 0x7fffffff;
-    int idx = (hash_val % 829) << 1;
+    int idx = (hash_val % 751) << 1;
     {
       java.lang.Object found = table[idx];
       if (found == null)
@@ -668,11 +672,11 @@ public java.lang.Object handleGetObject (java.lang.String msgid) throws java.uti
       if (msgid.equals(found))
         return table[idx + 1];
     }
-    int incr = ((hash_val % 827) + 1) << 1;
+    int incr = ((hash_val % 749) + 1) << 1;
     for (;;) {
       idx += incr;
-      if (idx >= 1658)
-        idx -= 1658;
+      if (idx >= 1502)
+        idx -= 1502;
       java.lang.Object found = table[idx];
       if (found == null)
         return null;
@@ -684,13 +688,13 @@ public java.util.Enumeration getKeys () {
     return
       new java.util.Enumeration() {
         private int idx = 0;
-        { while (idx < 1658 && table[idx] == null) idx += 2; }
+        { while (idx < 1502 && table[idx] == null) idx += 2; }
         public boolean hasMoreElements () {
-          return (idx < 1658);
+          return (idx < 1502);
         }
         public java.lang.Object nextElement () {
           java.lang.Object key = table[idx];
-          do idx += 2; while (idx < 1658 && table[idx] == null);
+          do idx += 2; while (idx < 1502 && table[idx] == null);
           return key;
         }
       };
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_nl.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_nl.java
index 74f35710d0..525648dd73 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_nl.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_nl.java
@@ -3,42 +3,92 @@
 public class messages_nl extends java.util.ResourceBundle {
   private static final java.lang.String[] table;
   static {
-    java.lang.String[] t = new java.lang.String[36];
+    java.lang.String[] t = new java.lang.String[134];
     t[0] = "";
     t[1] = "Project-Id-Version: PostgreSQL JDBC Driver 8.0\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2004-10-11 23:55-0700\nLast-Translator: Arnout Kuiper <[email protected]>\nLanguage-Team: Dutch <[email protected]>\nLanguage: nl\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n";
-    t[2] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
-    t[3] = "Iets ongewoons is opgetreden, wat deze driver doet falen. Rapporteer deze fout AUB: {0}";
-    t[8] = "Unknown Types value.";
-    t[9] = "Onbekende Types waarde.";
-    t[12] = "Fastpath call {0} - No result was returned and we expected an integer.";
-    t[13] = "Fastpath aanroep {0} - Geen resultaat werd teruggegeven, terwijl we een integer verwacht hadden.";
-    t[20] = "The fastpath function {0} is unknown.";
-    t[21] = "De fastpath functie {0} is onbekend.";
-    t[22] = "No results were returned by the query.";
-    t[23] = "Geen resultaten werden teruggegeven door de query.";
-    t[26] = "An unexpected result was returned by a query.";
-    t[27] = "Een onverwacht resultaat werd teruggegeven door een query";
+    t[2] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[3] = "Prepare aangeroepen vóór end(). prepare xid={0}, state={1}";
+    t[4] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[5] = "One-phase commit met onbekende xid. commit xid={0}, currentXid={1}";
+    t[8] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[9] = "Transactie is al voorbereid op deze verbinding. prepare xid={0}, preparedXid={1}";
+    t[10] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[11] = "Verbinding is al gekoppeld aan een actieve XA-tak. Beëindig de huidige tak voordat u een nieuwe start. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[16] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[17] = "One-phase commit moet worden uitgevoerd op de verbinding die de tak heeft gestart. commit xid={0}";
+    t[20] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[21] = "Fout bij het terugdraaien van de transactie. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[24] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[25] = "2nd phase commit kan niet worden uitgevoerd terwijl er een XA-tak actief is op deze verbinding. commit xid={0}, currentXid={1}, state={2}";
+    t[28] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[29] = "Transactiebeheermethoden setAutoCommit, commit, rollback en setSavepoint zijn niet toegestaan terwijl een XA-transactie actief is.";
+    t[34] = "Unknown Types value.";
+    t[35] = "Onbekende Types waarde.";
+    t[40] = "Error opening transaction. start xid={0}";
+    t[41] = "Fout bij het openen van de transactie. start xid={0}";
+    t[48] = "commit() called before end(). commit xid={0}, state={1}";
+    t[49] = "commit() aangeroepen vóór end(). commit xid={0}, state={1}";
+    t[50] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[51] = "end() aangeroepen zonder bijbehorende start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[52] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[53] = "Huidige verbinding heeft geen gekoppelde xid. prepare xid={0}";
+    t[56] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[57] = "Kan een voorbereide transactie niet terugdraaien terwijl er een lokale transactie loopt op deze verbinding. Commit of rollback eerst de lokale transactie. rollback xid={0}, transactionState={1}";
+    t[58] = "Error during recover. flag={0}";
+    t[59] = "Fout tijdens recover. flag={0}";
+    t[64] = "The fastpath function {0} is unknown.";
+    t[65] = "De fastpath functie {0} is onbekend.";
+    t[74] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
+    t[75] = "Iets ongewoons is opgetreden, wat deze driver doet falen. Rapporteer deze fout AUB: {0}";
+    t[84] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[85] = "One-phase commit aangeroepen voor xid {0} maar verbinding is voorbereid met xid {1}";
+    t[94] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[95] = "Prepare moet worden uitgevoerd op de verbinding die de tak heeft gestart. Transactie-interleaving wordt niet ondersteund. prepare xid={0}, currentXid={1}";
+    t[96] = "An unexpected result was returned by a query.";
+    t[97] = "Een onverwacht resultaat werd teruggegeven door een query";
+    t[100] = "Suspend/resume not implemented";
+    t[101] = "Suspend/resume is niet geïmplementeerd";
+    t[112] = "Fastpath call {0} - No result was returned and we expected an integer.";
+    t[113] = "Fastpath aanroep {0} - Geen resultaat werd teruggegeven, terwijl we een integer verwacht hadden.";
+    t[114] = "No results were returned by the query.";
+    t[115] = "Geen resultaten werden teruggegeven door de query.";
+    t[130] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[131] = "Kan een voorbereide transactie niet via 2nd phase commit afronden terwijl er een lokale transactie loopt op deze verbinding. Commit of rollback eerst de lokale transactie. commit xid={0}, transactionState={1}";
     table = t;
   }
   public java.lang.Object handleGetObject (java.lang.String msgid) throws java.util.MissingResourceException {
     int hash_val = msgid.hashCode() & 0x7fffffff;
-    int idx = (hash_val % 18) << 1;
-    java.lang.Object found = table[idx];
-    if (found != null && msgid.equals(found))
-      return table[idx + 1];
-    return null;
+    int idx = (hash_val % 67) << 1;
+    {
+      java.lang.Object found = table[idx];
+      if (found == null)
+        return null;
+      if (msgid.equals(found))
+        return table[idx + 1];
+    }
+    int incr = ((hash_val % 65) + 1) << 1;
+    for (;;) {
+      idx += incr;
+      if (idx >= 134)
+        idx -= 134;
+      java.lang.Object found = table[idx];
+      if (found == null)
+        return null;
+      if (msgid.equals(found))
+        return table[idx + 1];
+    }
   }
   public java.util.Enumeration getKeys () {
     return
       new java.util.Enumeration() {
         private int idx = 0;
-        { while (idx < 36 && table[idx] == null) idx += 2; }
+        { while (idx < 134 && table[idx] == null) idx += 2; }
         public boolean hasMoreElements () {
-          return (idx < 36);
+          return (idx < 134);
         }
         public java.lang.Object nextElement () {
           java.lang.Object key = table[idx];
-          do idx += 2; while (idx < 36 && table[idx] == null);
+          do idx += 2; while (idx < 134 && table[idx] == null);
           return key;
         }
       };
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_pl.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_pl.java
index fbf2524ed8..f74f0f129e 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_pl.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_pl.java
@@ -3,140 +3,178 @@
 public class messages_pl extends java.util.ResourceBundle {
   private static final java.lang.String[] table;
   static {
-    java.lang.String[] t = new java.lang.String[242];
+    java.lang.String[] t = new java.lang.String[346];
     t[0] = "";
     t[1] = "Project-Id-Version: head-pl\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2005-05-22 03:01+0200\nLast-Translator: Jarosław Jan Pyszny <[email protected]>\nLanguage-Team:  <[email protected]>\nLanguage: \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nX-Generator: KBabel 1.10\nPlural-Forms:  nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n";
-    t[2] = "No value specified for parameter {0}.";
-    t[3] = "Nie podano wartości dla parametru {0}.";
-    t[4] = "ResultSet not positioned properly, perhaps you need to call next.";
-    t[5] = "Zła pozycja w ResultSet, może musisz wywołać next.";
-    t[12] = "The column index is out of range: {0}, number of columns: {1}.";
-    t[13] = "Indeks kolumny jest poza zakresem: {0}, liczba kolumn: {1}.";
-    t[14] = "Hint: {0}";
-    t[15] = "Wskazówka: {0}";
-    t[20] = "Connection has been closed.";
-    t[21] = "Połączenie zostało zamknięte.";
-    t[24] = "Unable to load the class {0} responsible for the datatype {1}";
-    t[25] = "Nie jest możliwe załadowanie klasy {0} odpowiedzialnej za typ danych {1}";
-    t[26] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
-    t[27] = "Połączenie zostało zamknięte automatycznie, ponieważ nowe połączenie zostało otwarte dla tego samego PooledConnection lub PooledConnection zostało zamknięte.";
-    t[28] = "Unknown Types value.";
-    t[29] = "Nieznana wartość Types.";
-    t[36] = "Detail: {0}";
-    t[37] = "Szczegóły: {0}";
-    t[40] = "The server does not support SSL.";
-    t[41] = "Serwer nie obsługuje SSL.";
-    t[42] = "Unknown Response Type {0}.";
-    t[43] = "Nieznany typ odpowiedzi {0}.";
-    t[44] = "Internal Query: {0}";
-    t[45] = "Wewnętrzne Zapytanie: {0}";
-    t[46] = "Location: File: {0}, Routine: {1}, Line: {2}";
-    t[47] = "Lokalizacja: Plik: {0}, Procedura: {1}, Linia: {2}";
-    t[50] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
-    t[51] = "Uwierzytelnienie typu {0} nie jest obsługiwane. Upewnij się, że skonfigurowałeś plik pg_hba.conf tak, że zawiera on adres IP lub podsieć klienta oraz że użyta metoda uwierzytelnienia jest wspierana przez ten sterownik.";
-    t[52] = "Bad value for type {0} : {1}";
-    t[53] = "Zła wartość dla typu {0}: {1}";
-    t[54] = "This ResultSet is closed.";
-    t[55] = "Ten ResultSet jest zamknięty.";
-    t[60] = "Failed to create object for: {0}.";
-    t[61] = "Nie powiodło się utworzenie obiektu dla: {0}.";
-    t[62] = "Expected command status BEGIN, got {0}.";
-    t[63] = "Spodziewano się statusu komendy BEGIN, otrzymano {0}.";
-    t[64] = "The connection attempt failed.";
-    t[65] = "Próba nawiązania połączenia nie powiodła się.";
-    t[66] = "No results were returned by the query.";
-    t[67] = "Zapytanie nie zwróciło żadnych wyników.";
-    t[70] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
-    t[71] = "Funkcja CallableStatement została zadeklarowana, ale nie wywołano registerOutParameter (1, <jakiś typ>).";
-    t[74] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
-    t[75] = "Przedwczesny koniec strumienia wejściowego, oczekiwano {0} bajtów, odczytano tylko {1}.";
-    t[76] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
-    t[77] = "Coś niezwykłego spowodowało pad sterownika. Proszę, zgłoś ten wyjątek.";
-    t[78] = "Unknown type {0}.";
-    t[79] = "Nieznany typ {0}.";
-    t[84] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
-    t[85] = "Aktualna pozycja przed początkiem ResultSet. Nie można wywołać deleteRow().";
-    t[86] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
-    t[87] = "Znaleziono nieprawidłowy znak. Najprawdopodobniej jest to spowodowane przechowywaniem w bazie znaków, które nie pasują do zestawu znaków wybranego podczas tworzenia bazy danych. Najczęstszy przykład to przechowywanie 8-bitowych znaków w bazie o kodowaniu SQL_ASCII.";
-    t[90] = "Query timeout must be a value greater than or equals to 0.";
-    t[91] = "Timeout zapytania musi być wartością dodatnią lub 0.";
-    t[96] = "Unsupported Types value: {0}";
-    t[97] = "Nieznana wartość Types: {0}";
-    t[100] = "This PooledConnection has already been closed.";
-    t[101] = "To PooledConnection zostało już zamknięte.";
-    t[102] = "Protocol error.  Session setup failed.";
-    t[103] = "Błąd protokołu. Nie udało się utworzyć sesji.";
-    t[104] = "Server SQLState: {0}";
-    t[105] = "Serwer SQLState: {0}";
-    t[108] = "Cannot call cancelRowUpdates() when on the insert row.";
-    t[109] = "Nie można wywołać cancelRowUpdates() na wstawianym rekordzie.";
-    t[110] = "Where: {0}";
-    t[111] = "Gdzie: {0}";
-    t[112] = "The parameter index is out of range: {0}, number of parameters: {1}.";
-    t[113] = "Indeks parametru jest poza zakresem: {0}, liczba parametrów: {1}.";
-    t[114] = "A connection could not be made using the requested protocol {0}.";
-    t[115] = "Nie można było nawiązać połączenia stosując żądany protokołu {0}.";
-    t[116] = "Conversion to type {0} failed: {1}.";
-    t[117] = "Konwersja do typu {0} nie powiodła się: {1}.";
-    t[120] = "Error loading default settings from driverconfig.properties";
-    t[121] = "Błąd podczas wczytywania ustawień domyślnych z driverconfig.properties";
-    t[124] = "An error occurred while setting up the SSL connection.";
-    t[125] = "Wystąpił błąd podczas ustanawiania połączenia SSL.";
-    t[130] = "There are no rows in this ResultSet.";
-    t[131] = "Nie ma żadnych wierszy w tym ResultSet.";
-    t[132] = "Transaction isolation level {0} not supported.";
-    t[133] = "Poziom izolacji transakcji {0} nie jest obsługiwany.";
-    t[144] = "Cannot tell if path is open or closed: {0}.";
-    t[145] = "Nie można stwierdzić, czy ścieżka jest otwarta czy zamknięta: {0}.";
-    t[146] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
-    t[147] = "Aktualna pozycja za końcem ResultSet. Nie można wywołać deleteRow().";
-    t[148] = "The maximum field size must be a value greater than or equal to 0.";
-    t[149] = "Maksymalny rozmiar pola musi być wartością dodatnią lub 0.";
-    t[150] = "Unexpected command status: {0}.";
-    t[151] = "Nieoczekiwany status komendy: {0}.";
-    t[158] = "Conversion of money failed.";
-    t[159] = "Konwersja typu money nie powiodła się.";
-    t[168] = "Zero bytes may not occur in string parameters.";
-    t[169] = "Zerowe bajty nie mogą pojawiać się w parametrach typu łańcuch znakowy.";
-    t[172] = "Fastpath call {0} - No result was returned and we expected an integer.";
-    t[173] = "Wywołanie fastpath {0} - Nie otrzymano żadnego wyniku, a oczekiwano liczby całkowitej.";
-    t[180] = "The fastpath function {0} is unknown.";
-    t[181] = "Funkcja fastpath {0} jest nieznana.";
-    t[184] = "Fetch size must be a value greater than or equal to 0.";
-    t[185] = "Rozmiar pobierania musi być wartością dodatnią lub 0.";
-    t[186] = "The array index is out of range: {0}";
-    t[187] = "Indeks tablicy jest poza zakresem: {0}";
-    t[190] = "DataSource has been closed.";
-    t[191] = "DataSource zostało zamknięte.";
-    t[196] = "Position: {0}";
-    t[197] = "Pozycja: {0}";
-    t[200] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
-    t[201] = "ResultSet nie jest modyfikowalny (not updateable). Zapytanie, które zwróciło ten wynik musi dotyczyć tylko jednej tabeli oraz musi pobierać wszystkie klucze główne tej tabeli. Zobacz Specyfikację JDBC 2.1 API, rozdział 5.6, by uzyskać więcej szczegółów.";
-    t[204] = "Method {0} is not yet implemented.";
-    t[205] = "Metoda {0}nie jest jeszcze obsługiwana.";
-    t[206] = "Too many update results were returned.";
-    t[207] = "Zapytanie nie zwróciło żadnych wyników.";
-    t[208] = "Cannot call deleteRow() when on the insert row.";
-    t[209] = "Nie można wywołać deleteRow() na wstawianym rekordzie.";
-    t[212] = "Cannot call updateRow() when on the insert row.";
-    t[213] = "Nie można wywołać updateRow() na wstawianym rekordzie.";
-    t[214] = "An unexpected result was returned by a query.";
-    t[215] = "Zapytanie zwróciło nieoczekiwany wynik.";
-    t[222] = "Internal Position: {0}";
-    t[223] = "Wewnętrzna Pozycja: {0}";
-    t[226] = "Conversion of interval failed";
-    t[227] = "Konwersja typu interval nie powiodła się";
-    t[232] = "A result was returned when none was expected.";
-    t[233] = "Zwrócono wynik zapytania, choć nie był on oczekiwany.";
-    t[234] = "The array index is out of range: {0}, number of elements: {1}.";
-    t[235] = "Indeks tablicy jest poza zakresem: {0}, liczba elementów: {1}.";
-    t[236] = "Not on the insert row.";
-    t[237] = "Nie na wstawianym rekordzie.";
+    t[4] = "Internal Query: {0}";
+    t[5] = "Wewnętrzne Zapytanie: {0}";
+    t[6] = "There are no rows in this ResultSet.";
+    t[7] = "Nie ma żadnych wierszy w tym ResultSet.";
+    t[8] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
+    t[9] = "Znaleziono nieprawidłowy znak. Najprawdopodobniej jest to spowodowane przechowywaniem w bazie znaków, które nie pasują do zestawu znaków wybranego podczas tworzenia bazy danych. Najczęstszy przykład to przechowywanie 8-bitowych znaków w bazie o kodowaniu SQL_ASCII.";
+    t[12] = "Fastpath call {0} - No result was returned and we expected an integer.";
+    t[13] = "Wywołanie fastpath {0} - Nie otrzymano żadnego wyniku, a oczekiwano liczby całkowitej.";
+    t[14] = "An error occurred while setting up the SSL connection.";
+    t[15] = "Wystąpił błąd podczas ustanawiania połączenia SSL.";
+    t[20] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
+    t[21] = "Funkcja CallableStatement została zadeklarowana, ale nie wywołano registerOutParameter (1, <jakiś typ>).";
+    t[24] = "Unexpected command status: {0}.";
+    t[25] = "Nieoczekiwany status komendy: {0}.";
+    t[32] = "A connection could not be made using the requested protocol {0}.";
+    t[33] = "Nie można było nawiązać połączenia stosując żądany protokołu {0}.";
+    t[38] = "Bad value for type {0} : {1}";
+    t[39] = "Zła wartość dla typu {0}: {1}";
+    t[40] = "Not on the insert row.";
+    t[41] = "Nie na wstawianym rekordzie.";
+    t[42] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
+    t[43] = "Przedwczesny koniec strumienia wejściowego, oczekiwano {0} bajtów, odczytano tylko {1}.";
+    t[46] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[47] = "Błąd podczas wycofywania transakcji. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[48] = "Unknown type {0}.";
+    t[49] = "Nieznany typ {0}.";
+    t[52] = "The server does not support SSL.";
+    t[53] = "Serwer nie obsługuje SSL.";
+    t[60] = "Cannot call updateRow() when on the insert row.";
+    t[61] = "Nie można wywołać updateRow() na wstawianym rekordzie.";
+    t[62] = "Where: {0}";
+    t[63] = "Gdzie: {0}";
+    t[70] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[71] = "Jednofazowe zatwierdzenie z nieznanym xid. commit xid={0}, currentXid={1}";
+    t[72] = "Cannot call cancelRowUpdates() when on the insert row.";
+    t[73] = "Nie można wywołać cancelRowUpdates() na wstawianym rekordzie.";
+    t[82] = "Server SQLState: {0}";
+    t[83] = "Serwer SQLState: {0}";
+    t[88] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[89] = "Transakcja została już przygotowana na tym połączeniu. prepare xid={0}, preparedXid={1}";
+    t[92] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
+    t[93] = "ResultSet nie jest modyfikowalny (not updateable). Zapytanie, które zwróciło ten wynik musi dotyczyć tylko jednej tabeli oraz musi pobierać wszystkie klucze główne tej tabeli. Zobacz Specyfikację JDBC 2.1 API, rozdział 5.6, by uzyskać więcej szczegółów.";
+    t[96] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[97] = "Nie można wykonać dwufazowego zatwierdzenia (faza 2), gdy na tym połączeniu jest aktywna gałąź XA. commit xid={0}, currentXid={1}, state={2}";
+    t[102] = "Cannot tell if path is open or closed: {0}.";
+    t[103] = "Nie można stwierdzić, czy ścieżka jest otwarta czy zamknięta: {0}.";
+    t[104] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[105] = "Nie można wycofać przygotowanej transakcji, gdy na tym połączeniu trwa transakcja lokalna. Najpierw zatwierdź lub wycofaj transakcję lokalną. rollback xid={0}, transactionState={1}";
+    t[108] = "The parameter index is out of range: {0}, number of parameters: {1}.";
+    t[109] = "Indeks parametru jest poza zakresem: {0}, liczba parametrów: {1}.";
+    t[110] = "Unsupported Types value: {0}";
+    t[111] = "Nieznana wartość Types: {0}";
+    t[112] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
+    t[113] = "Aktualna pozycja za końcem ResultSet. Nie można wywołać deleteRow().";
+    t[114] = "This ResultSet is closed.";
+    t[115] = "Ten ResultSet jest zamknięty.";
+    t[120] = "Conversion of interval failed";
+    t[121] = "Konwersja typu interval nie powiodła się";
+    t[122] = "Unable to load the class {0} responsible for the datatype {1}";
+    t[123] = "Nie jest możliwe załadowanie klasy {0} odpowiedzialnej za typ danych {1}";
+    t[130] = "Suspend/resume not implemented";
+    t[131] = "Wstrzymywanie/wznawianie nie zostało zaimplementowane";
+    t[132] = "commit() called before end(). commit xid={0}, state={1}";
+    t[133] = "Wywołano commit() przed end(). commit xid={0}, state={1}";
+    t[134] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[135] = "Jednofazowe zatwierdzenie musi zostać wykonane na połączeniu, które rozpoczęło gałąź. commit xid={0}";
+    t[138] = "Error loading default settings from driverconfig.properties";
+    t[139] = "Błąd podczas wczytywania ustawień domyślnych z driverconfig.properties";
+    t[142] = "The array index is out of range: {0}";
+    t[143] = "Indeks tablicy jest poza zakresem: {0}";
+    t[144] = "Detail: {0}";
+    t[145] = "Szczegóły: {0}";
+    t[146] = "Unknown Types value.";
+    t[147] = "Nieznana wartość Types.";
+    t[154] = "The maximum field size must be a value greater than or equal to 0.";
+    t[155] = "Maksymalny rozmiar pola musi być wartością dodatnią lub 0.";
+    t[158] = "Error opening transaction. start xid={0}";
+    t[159] = "Błąd podczas otwierania transakcji. start xid={0}";
+    t[168] = "ResultSet not positioned properly, perhaps you need to call next.";
+    t[169] = "Zła pozycja w ResultSet, może musisz wywołać next.";
+    t[170] = "Unknown Response Type {0}.";
+    t[171] = "Nieznany typ odpowiedzi {0}.";
+    t[182] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[183] = "Wywołano prepare przed end(). prepare xid={0}, state={1}";
+    t[184] = "Query timeout must be a value greater than or equals to 0.";
+    t[185] = "Timeout zapytania musi być wartością dodatnią lub 0.";
+    t[186] = "Too many update results were returned.";
+    t[187] = "Zapytanie nie zwróciło żadnych wyników.";
+    t[190] = "The connection attempt failed.";
+    t[191] = "Próba nawiązania połączenia nie powiodła się.";
+    t[198] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
+    t[199] = "Połączenie zostało zamknięte automatycznie, ponieważ nowe połączenie zostało otwarte dla tego samego PooledConnection lub PooledConnection zostało zamknięte.";
+    t[204] = "Protocol error.  Session setup failed.";
+    t[205] = "Błąd protokołu. Nie udało się utworzyć sesji.";
+    t[206] = "This PooledConnection has already been closed.";
+    t[207] = "To PooledConnection zostało już zamknięte.";
+    t[208] = "DataSource has been closed.";
+    t[209] = "DataSource zostało zamknięte.";
+    t[212] = "Method {0} is not yet implemented.";
+    t[213] = "Metoda {0}nie jest jeszcze obsługiwana.";
+    t[216] = "Hint: {0}";
+    t[217] = "Wskazówka: {0}";
+    t[218] = "No value specified for parameter {0}.";
+    t[219] = "Nie podano wartości dla parametru {0}.";
+    t[220] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[221] = "Wywołano end() bez odpowiadającego start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[222] = "Position: {0}";
+    t[223] = "Pozycja: {0}";
+    t[226] = "Cannot call deleteRow() when on the insert row.";
+    t[227] = "Nie można wywołać deleteRow() na wstawianym rekordzie.";
+    t[238] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[239] = "Bieżące połączenie nie ma powiązanego xid. prepare xid={0}";
+    t[244] = "Internal Position: {0}";
+    t[245] = "Wewnętrzna Pozycja: {0}";
+    t[248] = "Connection has been closed.";
+    t[249] = "Połączenie zostało zamknięte.";
+    t[254] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
+    t[255] = "Aktualna pozycja przed początkiem ResultSet. Nie można wywołać deleteRow().";
+    t[258] = "Failed to create object for: {0}.";
+    t[259] = "Nie powiodło się utworzenie obiektu dla: {0}.";
+    t[260] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[261] = "Metody sterowania transakcją setAutoCommit, commit, rollback i setSavepoint nie są dozwolone, gdy transakcja XA jest aktywna.";
+    t[264] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[265] = "Połączenie jest już powiązane z aktywną gałęzią XA. Zakończ bieżącą gałąź przed rozpoczęciem nowej. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[270] = "No results were returned by the query.";
+    t[271] = "Zapytanie nie zwróciło żadnych wyników.";
+    t[274] = "Error during recover. flag={0}";
+    t[275] = "Błąd podczas odzyskiwania. flag={0}";
+    t[276] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
+    t[277] = "Uwierzytelnienie typu {0} nie jest obsługiwane. Upewnij się, że skonfigurowałeś plik pg_hba.conf tak, że zawiera on adres IP lub podsieć klienta oraz że użyta metoda uwierzytelnienia jest wspierana przez ten sterownik.";
+    t[278] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[279] = "Nie można zatwierdzić (faza 2) przygotowanej transakcji, gdy na tym połączeniu trwa transakcja lokalna. Najpierw zatwierdź lub wycofaj transakcję lokalną. commit xid={0}, transactionState={1}";
+    t[280] = "Conversion to type {0} failed: {1}.";
+    t[281] = "Konwersja do typu {0} nie powiodła się: {1}.";
+    t[282] = "A result was returned when none was expected.";
+    t[283] = "Zwrócono wynik zapytania, choć nie był on oczekiwany.";
+    t[290] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[291] = "Prepare musi zostać wykonane na połączeniu, które rozpoczęło gałąź. Przeplatanie transakcji nie jest obsługiwane. prepare xid={0}, currentXid={1}";
+    t[292] = "Transaction isolation level {0} not supported.";
+    t[293] = "Poziom izolacji transakcji {0} nie jest obsługiwany.";
+    t[296] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[297] = "Nieprawidłowy stan protokołu. Przeplatanie transakcji nie jest obsługiwane. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[306] = "Fetch size must be a value greater than or equal to 0.";
+    t[307] = "Rozmiar pobierania musi być wartością dodatnią lub 0.";
+    t[308] = "Location: File: {0}, Routine: {1}, Line: {2}";
+    t[309] = "Lokalizacja: Plik: {0}, Procedura: {1}, Linia: {2}";
+    t[314] = "An unexpected result was returned by a query.";
+    t[315] = "Zapytanie zwróciło nieoczekiwany wynik.";
+    t[316] = "The column index is out of range: {0}, number of columns: {1}.";
+    t[317] = "Indeks kolumny jest poza zakresem: {0}, liczba kolumn: {1}.";
+    t[318] = "Expected command status BEGIN, got {0}.";
+    t[319] = "Spodziewano się statusu komendy BEGIN, otrzymano {0}.";
+    t[320] = "The fastpath function {0} is unknown.";
+    t[321] = "Funkcja fastpath {0} jest nieznana.";
+    t[324] = "Conversion of money failed.";
+    t[325] = "Konwersja typu money nie powiodła się.";
+    t[328] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[329] = "Wywołano jednofazowe zatwierdzenie dla xid {0}, ale połączenie zostało przygotowane z xid {1}";
+    t[332] = "The array index is out of range: {0}, number of elements: {1}.";
+    t[333] = "Indeks tablicy jest poza zakresem: {0}, liczba elementów: {1}.";
+    t[338] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
+    t[339] = "Coś niezwykłego spowodowało pad sterownika. Proszę, zgłoś ten wyjątek.";
+    t[342] = "Zero bytes may not occur in string parameters.";
+    t[343] = "Zerowe bajty nie mogą pojawiać się w parametrach typu łańcuch znakowy.";
     table = t;
   }
   public java.lang.Object handleGetObject (java.lang.String msgid) throws java.util.MissingResourceException {
     int hash_val = msgid.hashCode() & 0x7fffffff;
-    int idx = (hash_val % 121) << 1;
+    int idx = (hash_val % 173) << 1;
     {
       java.lang.Object found = table[idx];
       if (found == null)
@@ -144,11 +182,11 @@ public java.lang.Object handleGetObject (java.lang.String msgid) throws java.uti
       if (msgid.equals(found))
         return table[idx + 1];
     }
-    int incr = ((hash_val % 119) + 1) << 1;
+    int incr = ((hash_val % 171) + 1) << 1;
     for (;;) {
       idx += incr;
-      if (idx >= 242)
-        idx -= 242;
+      if (idx >= 346)
+        idx -= 346;
       java.lang.Object found = table[idx];
       if (found == null)
         return null;
@@ -160,13 +198,13 @@ public java.util.Enumeration getKeys () {
     return
       new java.util.Enumeration() {
         private int idx = 0;
-        { while (idx < 242 && table[idx] == null) idx += 2; }
+        { while (idx < 346 && table[idx] == null) idx += 2; }
         public boolean hasMoreElements () {
-          return (idx < 242);
+          return (idx < 346);
         }
         public java.lang.Object nextElement () {
           java.lang.Object key = table[idx];
-          do idx += 2; while (idx < 242 && table[idx] == null);
+          do idx += 2; while (idx < 346 && table[idx] == null);
           return key;
         }
       };
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_pt_BR.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_pt_BR.java
index 938b5f4df9..ba171bb0b3 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_pt_BR.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_pt_BR.java
@@ -3,334 +3,352 @@
 public class messages_pt_BR extends java.util.ResourceBundle {
   private static final java.lang.String[] table;
   static {
-    java.lang.String[] t = new java.lang.String[794];
+    java.lang.String[] t = new java.lang.String[686];
     t[0] = "";
     t[1] = "Project-Id-Version: PostgreSQL 8.4\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2004-10-31 20:48-0300\nLast-Translator: Euler Taveira de Oliveira <[email protected]>\nLanguage-Team: Brazilian Portuguese <[email protected]>\nLanguage: pt_BR\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\n";
-    t[2] = "Not implemented: 2nd phase commit must be issued using an idle connection. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[3] = "Não está implementado: efetivação da segunda fase deve ser executada utilizado uma conexão ociosa. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[4] = "DataSource has been closed.";
-    t[5] = "DataSource foi fechado.";
-    t[8] = "Invalid flags {0}";
-    t[9] = "Marcadores={0} inválidos";
-    t[18] = "Where: {0}";
-    t[19] = "Onde: {0}";
-    t[26] = "The connection attempt failed.";
-    t[27] = "A tentativa de conexão falhou.";
-    t[28] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
-    t[29] = "Posicionado depois do fim do ResultSet.  Você não pode chamar deleteRow() aqui.";
-    t[32] = "Can''t use query methods that take a query string on a PreparedStatement.";
-    t[33] = "Não pode utilizar métodos de consulta que pegam uma consulta de um comando preparado.";
-    t[36] = "Multiple ResultSets were returned by the query.";
-    t[37] = "ResultSets múltiplos foram retornados pela consulta.";
-    t[50] = "Too many update results were returned.";
-    t[51] = "Muitos resultados de atualização foram retornados.";
-    t[66] = "The column name {0} was not found in this ResultSet.";
-    t[67] = "A nome da coluna {0} não foi encontrado neste ResultSet.";
-    t[70] = "Fastpath call {0} - No result was returned and we expected an integer.";
-    t[71] = "Chamada ao Fastpath {0} - Nenhum resultado foi retornado e nós esperávamos um inteiro.";
-    t[74] = "Protocol error.  Session setup failed.";
-    t[75] = "Erro de Protocolo. Configuração da sessão falhou.";
-    t[76] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
-    t[77] = "Uma função foi declarada mas nenhuma chamada a registerOutParameter (1, <algum_tipo>) foi feita.";
-    t[78] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
-    t[79] = "ResultSets com CONCUR_READ_ONLY concorrentes não podem ser atualizados.";
-    t[90] = "LOB positioning offsets start at 1.";
-    t[91] = "Deslocamentos da posição de LOB começam em 1.";
-    t[92] = "Internal Position: {0}";
-    t[93] = "Posição Interna: {0}";
-    t[96] = "free() was called on this LOB previously";
-    t[97] = "free() já foi chamado neste LOB";
-    t[100] = "Cannot change transaction read-only property in the middle of a transaction.";
-    t[101] = "Não pode mudar propriedade somente-leitura da transação no meio de uma transação.";
-    t[102] = "The JVM claims not to support the {0} encoding.";
-    t[103] = "A JVM reclamou que não suporta a codificação {0}.";
-    t[108] = "{0} function doesn''t take any argument.";
-    t[109] = "função {0} não recebe nenhum argumento.";
-    t[112] = "xid must not be null";
-    t[113] = "xid não deve ser nulo";
-    t[122] = "The server does not support SSL.";
-    t[123] = "O servidor não suporta SSL.";
-    t[124] = "Custom type maps are not supported.";
-    t[125] = "Mapeamento de tipos personalizados não são suportados.";
-    t[148] = "Hint: {0}";
-    t[149] = "Dica: {0}";
-    t[152] = "Unable to find name datatype in the system catalogs.";
-    t[153] = "Não foi possível encontrar tipo de dado name nos catálogos do sistema.";
-    t[156] = "Unsupported Types value: {0}";
-    t[157] = "Valor de Types não é suportado: {0}";
-    t[158] = "Unknown type {0}.";
-    t[159] = "Tipo desconhecido {0}.";
-    t[166] = "{0} function takes two and only two arguments.";
-    t[167] = "função {0} recebe somente dois argumentos.";
-    t[186] = "PostgreSQL LOBs can only index to: {0}";
-    t[187] = "LOBs do PostgreSQL só podem indexar até: {0}";
-    t[194] = "Method {0} is not yet implemented.";
-    t[195] = "Método {0} ainda não foi implementado.";
-    t[198] = "Error loading default settings from driverconfig.properties";
-    t[199] = "Erro ao carregar configurações padrão do driverconfig.properties";
-    t[200] = "Results cannot be retrieved from a CallableStatement before it is executed.";
-    t[201] = "Resultados não podem ser recuperados de uma função antes dela ser executada.";
-    t[202] = "Large Objects may not be used in auto-commit mode.";
-    t[203] = "Objetos Grandes não podem ser usados no modo de efetivação automática (auto-commit).";
-    t[208] = "Expected command status BEGIN, got {0}.";
-    t[209] = "Status do comando BEGIN esperado, recebeu {0}.";
-    t[218] = "Invalid fetch direction constant: {0}.";
-    t[219] = "Constante de direção da busca é inválida: {0}.";
-    t[222] = "{0} function takes three and only three arguments.";
-    t[223] = "função {0} recebe três e somente três argumentos.";
-    t[226] = "This SQLXML object has already been freed.";
-    t[227] = "Este objeto SQLXML já foi liberado.";
-    t[228] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
-    t[229] = "Não pode atualizar o ResultSet porque ele está antes do início ou depois do fim dos resultados.";
-    t[232] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
-    t[233] = "Parâmetro do tipo {0} foi registrado, mas uma chamada a get{1} (tiposql={2}) foi feita.";
-    t[236] = "Cannot establish a savepoint in auto-commit mode.";
-    t[237] = "Não pode estabelecer um savepoint no modo de efetivação automática (auto-commit).";
-    t[240] = "Fetch size must be a value greater than or equal to 0.";
-    t[241] = "Tamanho da busca deve ser um valor maior ou igual a 0.";
-    t[242] = "Cannot retrieve the id of a named savepoint.";
-    t[243] = "Não pode recuperar o id de um savepoint com nome.";
-    t[244] = "The column index is out of range: {0}, number of columns: {1}.";
-    t[245] = "O índice da coluna está fora do intervalo: {0}, número de colunas: {1}.";
-    t[250] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
-    t[251] = "Alguma coisa não usual ocorreu para causar a falha do driver. Por favor reporte esta exceção.";
-    t[260] = "Cannot cast an instance of {0} to type {1}";
-    t[261] = "Não pode converter uma instância de {0} para tipo {1}";
-    t[264] = "Unknown Types value.";
-    t[265] = "Valor de Types desconhecido.";
-    t[266] = "Invalid stream length {0}.";
-    t[267] = "Tamanho de dado {0} é inválido.";
-    t[272] = "Cannot retrieve the name of an unnamed savepoint.";
-    t[273] = "Não pode recuperar o nome de um savepoint sem nome.";
-    t[274] = "Unable to translate data into the desired encoding.";
-    t[275] = "Não foi possível traduzir dado para codificação desejada.";
-    t[276] = "Expected an EOF from server, got: {0}";
-    t[277] = "Esperado um EOF do servidor, recebido: {0}";
-    t[278] = "Bad value for type {0} : {1}";
-    t[279] = "Valor inválido para tipo {0} : {1}";
-    t[286] = "Unable to create SAXResult for SQLXML.";
-    t[287] = "Não foi possível criar SAXResult para SQLXML.";
-    t[292] = "Error during recover";
-    t[293] = "Erro durante recuperação";
-    t[294] = "tried to call end without corresponding start call. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[295] = "tentou executar end sem a chamada ao start correspondente. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[296] = "Truncation of large objects is only implemented in 8.3 and later servers.";
-    t[297] = "Truncar objetos grandes só é implementado por servidores 8.3 ou superiores.";
-    t[298] = "This PooledConnection has already been closed.";
-    t[299] = "Este PooledConnection já foi fechado.";
-    t[302] = "ClientInfo property not supported.";
-    t[303] = "propriedade ClientInfo não é suportada.";
-    t[312] = "A connection could not be made using the requested protocol {0}.";
-    t[313] = "A conexão não pode ser feita usando protocolo informado {0}.";
-    t[318] = "Unknown XML Result class: {0}";
-    t[319] = "Classe XML Result desconhecida: {0}";
-    t[322] = "There are no rows in this ResultSet.";
-    t[323] = "Não há nenhum registro neste ResultSet.";
-    t[324] = "Unexpected command status: {0}.";
-    t[325] = "Status do comando inesperado: {0}.";
-    t[330] = "Heuristic commit/rollback not supported. forget xid={0}";
-    t[331] = "Efetivação/Cancelamento heurístico não é suportado. forget xid={0}";
-    t[334] = "Not on the insert row.";
-    t[335] = "Não está inserindo um registro.";
-    t[336] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
-    t[337] = "Este objeto SQLXML já foi inicializado, então você não pode manipulá-lo depois.";
-    t[344] = "Server SQLState: {0}";
-    t[345] = "SQLState: {0}";
-    t[348] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
-    t[349] = "O parâmetro do servidor standard_conforming_strings foi definido como {0}. O driver JDBC espera que seja on ou off.";
-    t[364] = "The array index is out of range: {0}, number of elements: {1}.";
-    t[365] = "O índice da matriz está fora do intervalo: {0}, número de elementos: {1}.";
-    t[374] = "suspend/resume not implemented";
-    t[375] = "suspender/recomeçar não está implementado";
-    t[378] = "Not implemented: one-phase commit must be issued using the same connection that was used to start it";
-    t[379] = "Não está implementado: efetivada da primeira fase deve ser executada utilizando a mesma conexão que foi utilizada para iniciá-la";
-    t[380] = "Error during one-phase commit. commit xid={0}";
-    t[381] = "Erro durante efetivação de uma fase. commit xid={0}";
-    t[398] = "Cannot call cancelRowUpdates() when on the insert row.";
-    t[399] = "Não pode chamar cancelRowUpdates() quando estiver inserindo registro.";
-    t[400] = "Cannot reference a savepoint after it has been released.";
-    t[401] = "Não pode referenciar um savepoint após ele ser descartado.";
-    t[402] = "You must specify at least one column value to insert a row.";
-    t[403] = "Você deve especificar pelo menos uma coluna para inserir um registro.";
-    t[404] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
-    t[405] = "Não foi possível determinar um valor para MaxIndexKeys por causa de falta de dados no catálogo do sistema.";
-    t[410] = "commit called before end. commit xid={0}, state={1}";
-    t[411] = "commit executado antes do end. commit xid={0}, state={1}";
-    t[412] = "The JVM claims not to support the encoding: {0}";
-    t[413] = "A JVM reclamou que não suporta a codificação: {0}";
-    t[414] = "{0} function takes two or three arguments.";
-    t[415] = "função {0} recebe dois ou três argumentos.";
-    t[428] = "Unable to convert DOMResult SQLXML data to a string.";
-    t[429] = "Não foi possível converter dado SQLXML do DOMResult para uma cadeia de caracteres.";
-    t[434] = "Unable to decode xml data.";
-    t[435] = "Não foi possível decodificar dado xml.";
-    t[440] = "Unexpected error writing large object to database.";
-    t[441] = "Erro inesperado ao escrever objeto grande no banco de dados.";
-    t[442] = "Zero bytes may not occur in string parameters.";
-    t[443] = "Zero bytes não podem ocorrer em parâmetros de cadeia de caracteres.";
-    t[444] = "A result was returned when none was expected.";
-    t[445] = "Um resultado foi retornado quando nenhum era esperado.";
-    t[448] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
-    t[449] = "Fim de entrada prematuro, eram esperados {0} bytes, mas somente {1} foram lidos.";
-    t[450] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
-    t[451] = "ResultSet não é atualizável. A consulta que gerou esse conjunto de resultados deve selecionar somente uma tabela, e deve selecionar todas as chaves primárias daquela tabela. Veja a especificação na API do JDBC 2.1, seção 5.6 para obter mais detalhes.";
-    t[454] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
-    t[455] = "Tamanho de mensagem de ligação {0} é muito longo. Isso pode ser causado por especificações de tamanho incorretas ou muito grandes nos parâmetros do InputStream.";
-    t[460] = "Statement has been closed.";
-    t[461] = "Comando foi fechado.";
-    t[462] = "No value specified for parameter {0}.";
-    t[463] = "Nenhum valor especificado para parâmetro {0}.";
-    t[468] = "The array index is out of range: {0}";
-    t[469] = "O índice da matriz está fora do intervalo: {0}";
-    t[474] = "Unable to bind parameter values for statement.";
-    t[475] = "Não foi possível ligar valores de parâmetro ao comando.";
-    t[476] = "Can''t refresh the insert row.";
-    t[477] = "Não pode renovar um registro inserido.";
-    t[480] = "The maximum field size must be a value greater than or equal to 0.";
-    t[481] = "O tamanho máximo de um campo deve ser um valor maior ou igual a 0.";
-    t[482] = "Cannot change transaction isolation level in the middle of a transaction.";
-    t[483] = "Não pode mudar nível de isolamento da transação no meio de uma transação.";
-    t[498] = "Provided InputStream failed.";
-    t[499] = "InputStream fornecido falhou.";
-    t[500] = "The parameter index is out of range: {0}, number of parameters: {1}.";
-    t[501] = "O índice de parâmetro está fora do intervalo: {0}, número de parâmetros: {1}.";
-    t[502] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
-    t[503] = "O parâmetro do servidor DateStyle foi alterado para {0}. O driver JDBC requer que o DateStyle começe com ISO para operação normal.";
-    t[508] = "Connection attempt timed out.";
-    t[509] = "Tentativa de conexão falhou.";
-    t[512] = "Internal Query: {0}";
-    t[513] = "Consulta Interna: {0}";
-    t[514] = "Error preparing transaction. prepare xid={0}";
-    t[515] = "Erro ao preparar transação. prepare xid={0}";
-    t[518] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
-    t[519] = "O tipo de autenticação {0} não é suportado. Verifique se você configurou o arquivo pg_hba.conf incluindo a subrede ou endereço IP do cliente, e se está utilizando o esquema de autenticação suportado pelo driver.";
-    t[526] = "Interval {0} not yet implemented";
-    t[527] = "Intervalo {0} ainda não foi implementado";
-    t[532] = "Conversion of interval failed";
-    t[533] = "Conversão de interval falhou";
-    t[540] = "Query timeout must be a value greater than or equals to 0.";
-    t[541] = "Tempo de espera da consulta deve ser um valor maior ou igual a 0.";
-    t[542] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
-    t[543] = "Conexão foi fechada automaticamente porque uma nova conexão foi aberta pelo mesmo PooledConnection ou o PooledConnection foi fechado.";
-    t[544] = "ResultSet not positioned properly, perhaps you need to call next.";
-    t[545] = "ResultSet não está posicionado corretamente, talvez você precise chamar next.";
-    t[546] = "Prepare called before end. prepare xid={0}, state={1}";
-    t[547] = "Prepare executado antes do end. prepare xid={0}, state={1}";
-    t[548] = "Invalid UUID data.";
-    t[549] = "dado UUID é inválido.";
-    t[550] = "This statement has been closed.";
-    t[551] = "Este comando foi fechado.";
-    t[552] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
-    t[553] = "Não pode inferir um tipo SQL a ser usado para uma instância de {0}. Use setObject() com um valor de Types explícito para especificar o tipo a ser usado.";
-    t[554] = "Cannot call updateRow() when on the insert row.";
-    t[555] = "Não pode chamar updateRow() quando estiver inserindo registro.";
-    t[562] = "Detail: {0}";
-    t[563] = "Detalhe: {0}";
-    t[566] = "Cannot call deleteRow() when on the insert row.";
-    t[567] = "Não pode chamar deleteRow() quando estiver inserindo registro.";
-    t[568] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
-    t[569] = "Posicionado antes do início do ResultSet.  Você não pode chamar deleteRow() aqui.";
-    t[576] = "Unknown XML Source class: {0}";
-    t[577] = "Classe XML Source desconhecida: {0}";
-    t[578] = "Unknown Response Type {0}.";
-    t[579] = "Tipo de Resposta Desconhecido {0}.";
-    t[582] = "Unsupported value for stringtype parameter: {0}";
-    t[583] = "Valor do parâmetro stringtype não é suportado: {0}";
-    t[584] = "Conversion to type {0} failed: {1}.";
-    t[585] = "Conversão para tipo {0} falhou: {1}.";
-    t[586] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
-    t[587] = "Este objeto SQLXML não foi inicializado, então você não pode recuperar dados dele.";
-    t[600] = "Unable to load the class {0} responsible for the datatype {1}";
-    t[601] = "Não foi possível carregar a classe {0} responsável pelo tipo de dado {1}";
-    t[604] = "The fastpath function {0} is unknown.";
-    t[605] = "A função do fastpath {0} é desconhecida.";
-    t[608] = "Malformed function or procedure escape syntax at offset {0}.";
-    t[609] = "Sintaxe de escape mal formada da função ou do procedimento no deslocamento {0}.";
-    t[612] = "Provided Reader failed.";
-    t[613] = "Reader fornecido falhou.";
-    t[616] = "Failed to create object for: {0}.";
-    t[617] = "Falhou ao criar objeto para: {0}.";
-    t[620] = "Conversion of money failed.";
-    t[621] = "Conversão de money falhou.";
-    t[622] = "Connection has been closed.";
-    t[623] = "Conexão foi fechada.";
-    t[626] = "An unexpected result was returned by a query.";
-    t[627] = "Um resultado inesperado foi retornado pela consulta.";
-    t[644] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[645] = "Intercalação de transação não está implementado. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[646] = "An error occurred while setting up the SSL connection.";
-    t[647] = "Um erro ocorreu ao estabelecer uma conexão SSL.";
-    t[656] = "Not implemented: Prepare must be issued using the same connection that started the transaction. currentXid={0}, prepare xid={1}";
-    t[657] = "Não está implementado: Prepare deve ser executado utilizando a mesma conexão que iniciou a transação. currentXid={0}, prepare xid={1}";
-    t[658] = "The SSLSocketFactory class provided {0} could not be instantiated.";
-    t[659] = "A classe SSLSocketFactory forneceu {0} que não pôde ser instanciado.";
-    t[662] = "Failed to convert binary xml data to encoding: {0}.";
-    t[663] = "Falhou ao converter dados xml binários para codificação: {0}.";
-    t[670] = "Position: {0}";
-    t[671] = "Posição: {0}";
-    t[676] = "Location: File: {0}, Routine: {1}, Line: {2}";
-    t[677] = "Local: Arquivo: {0}, Rotina: {1}, Linha: {2}";
-    t[684] = "Cannot tell if path is open or closed: {0}.";
-    t[685] = "Não pode dizer se caminho está aberto ou fechado: {0}.";
-    t[690] = "Unable to create StAXResult for SQLXML";
-    t[691] = "Não foi possível criar StAXResult para SQLXML";
-    t[700] = "Cannot convert an instance of {0} to type {1}";
-    t[701] = "Não pode converter uma instância de {0} para tipo {1}";
-    t[710] = "{0} function takes four and only four argument.";
-    t[711] = "função {0} recebe somente quatro argumentos.";
-    t[716] = "Error disabling autocommit";
-    t[717] = "Erro ao desabilitar autocommit";
-    t[718] = "Interrupted while attempting to connect.";
-    t[719] = "Interrompido ao tentar se conectar.";
-    t[722] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
-    t[723] = "Sua política de segurança impediu que a conexão pudesse ser estabelecida. Você provavelmente precisa conceder permissão em java.net.SocketPermission para a máquina e a porta do servidor de banco de dados que você deseja se conectar.";
-    t[734] = "No function outputs were registered.";
-    t[735] = "Nenhum saída de função foi registrada.";
-    t[736] = "{0} function takes one and only one argument.";
-    t[737] = "função {0} recebe somente um argumento.";
-    t[744] = "This ResultSet is closed.";
-    t[745] = "Este ResultSet está fechado.";
-    t[746] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
-    t[747] = "Caracter inválido foi encontrado. Isso é mais comumente causado por dado armazenado que contém caracteres que são inválidos para a codificação que foi criado o banco de dados. O exemplo mais comum disso é armazenar dados de 8 bits em um banco de dados SQL_ASCII.";
-    t[752] = "GSS Authentication failed";
-    t[753] = "Autenticação GSS falhou";
-    t[754] = "Ran out of memory retrieving query results.";
-    t[755] = "Memória insuficiente ao recuperar resultados da consulta.";
-    t[756] = "Returning autogenerated keys is not supported.";
-    t[757] = "Retorno de chaves geradas automaticamente não é suportado.";
-    t[760] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
-    t[761] = "Operação requer um ResultSet rolável, mas este ResultSet é FORWARD_ONLY (somente para frente).";
-    t[762] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
-    t[763] = "Uma função foi executada e o parâmetro de retorno {0} era do tipo {1} contudo tipo {2} foi registrado.";
-    t[764] = "Unable to find server array type for provided name {0}.";
-    t[765] = "Não foi possível encontrar tipo matriz para nome fornecido {0}.";
-    t[768] = "Unknown ResultSet holdability setting: {0}.";
-    t[769] = "Definição de durabilidade do ResultSet desconhecida: {0}.";
-    t[772] = "Transaction isolation level {0} not supported.";
-    t[773] = "Nível de isolamento da transação {0} não é suportado.";
-    t[774] = "Zero bytes may not occur in identifiers.";
-    t[775] = "Zero bytes não podem ocorrer em identificadores.";
-    t[776] = "No results were returned by the query.";
-    t[777] = "Nenhum resultado foi retornado pela consulta.";
-    t[778] = "A CallableStatement was executed with nothing returned.";
-    t[779] = "Uma função foi executada e nada foi retornado.";
-    t[780] = "wasNull cannot be call before fetching a result.";
-    t[781] = "wasNull não pode ser chamado antes de obter um resultado.";
-    t[784] = "Returning autogenerated keys by column index is not supported.";
-    t[785] = "Retorno de chaves geradas automaticamente por índice de coluna não é suportado.";
-    t[786] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
-    t[787] = "Este comando não declara um parâmetro de saída. Utilize '{' ?= chamada ... '}' para declarar um)";
-    t[788] = "Can''t use relative move methods while on the insert row.";
-    t[789] = "Não pode utilizar métodos de movimentação relativos enquanto estiver inserindo registro.";
-    t[790] = "A CallableStatement was executed with an invalid number of parameters";
-    t[791] = "Uma função foi executada com um número inválido de parâmetros";
-    t[792] = "Connection is busy with another transaction";
-    t[793] = "Conexão está ocupada com outra transação";
+    t[2] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
+    t[3] = "Conexão foi fechada automaticamente porque uma nova conexão foi aberta pelo mesmo PooledConnection ou o PooledConnection foi fechado.";
+    t[10] = "Failed to create object for: {0}.";
+    t[11] = "Falhou ao criar objeto para: {0}.";
+    t[16] = "Unsupported Types value: {0}";
+    t[17] = "Valor de Types não é suportado: {0}";
+    t[20] = "{0} function doesn''t take any argument.";
+    t[21] = "função {0} não recebe nenhum argumento.";
+    t[24] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
+    t[25] = "Posicionado depois do fim do ResultSet.  Você não pode chamar deleteRow() aqui.";
+    t[28] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[29] = "end() chamado sem um start() correspondente. end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[30] = "Connection attempt timed out.";
+    t[31] = "Tentativa de conexão falhou.";
+    t[32] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
+    t[33] = "Não pode inferir um tipo SQL a ser usado para uma instância de {0}. Use setObject() com um valor de Types explícito para especificar o tipo a ser usado.";
+    t[36] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[37] = "A conexão já está associada a um ramo XA ativo. Finalize o ramo atual antes de iniciar um novo. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[38] = "Where: {0}";
+    t[39] = "Onde: {0}";
+    t[42] = "ResultSet not positioned properly, perhaps you need to call next.";
+    t[43] = "ResultSet não está posicionado corretamente, talvez você precise chamar next.";
+    t[44] = "Error during one-phase commit. commit xid={0}";
+    t[45] = "Erro durante efetivação de uma fase. commit xid={0}";
+    t[48] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
+    t[49] = "O parâmetro do servidor DateStyle foi alterado para {0}. O driver JDBC requer que o DateStyle começe com ISO para operação normal.";
+    t[58] = "Custom type maps are not supported.";
+    t[59] = "Mapeamento de tipos personalizados não são suportados.";
+    t[60] = "Error preparing transaction. prepare xid={0}";
+    t[61] = "Erro ao preparar transação. prepare xid={0}";
+    t[62] = "commit() called before end(). commit xid={0}, state={1}";
+    t[63] = "commit() chamado antes de end(). commit xid={0}, state={1}";
+    t[72] = "No results were returned by the query.";
+    t[73] = "Nenhum resultado foi retornado pela consulta.";
+    t[76] = "Cannot tell if path is open or closed: {0}.";
+    t[77] = "Não pode dizer se caminho está aberto ou fechado: {0}.";
+    t[80] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[81] = "A efetivação da segunda fase não pode ser executada enquanto um ramo XA estiver ativo nesta conexão. commit xid={0}, currentXid={1}, state={2}";
+    t[82] = "Returning autogenerated keys by column index is not supported.";
+    t[83] = "Retorno de chaves geradas automaticamente por índice de coluna não é suportado.";
+    t[88] = "The fastpath function {0} is unknown.";
+    t[89] = "A função do fastpath {0} é desconhecida.";
+    t[92] = "Cannot retrieve the id of a named savepoint.";
+    t[93] = "Não pode recuperar o id de um savepoint com nome.";
+    t[100] = "The column index is out of range: {0}, number of columns: {1}.";
+    t[101] = "O índice da coluna está fora do intervalo: {0}, número de colunas: {1}.";
+    t[104] = "Protocol error.  Session setup failed.";
+    t[105] = "Erro de Protocolo. Configuração da sessão falhou.";
+    t[108] = "Suspend/resume not implemented";
+    t[109] = "Suspender/retomar não está implementado";
+    t[110] = "Unable to find server array type for provided name {0}.";
+    t[111] = "Não foi possível encontrar tipo matriz para nome fornecido {0}.";
+    t[112] = "free() was called on this LOB previously";
+    t[113] = "free() já foi chamado neste LOB";
+    t[114] = "Unknown XML Result class: {0}";
+    t[115] = "Classe XML Result desconhecida: {0}";
+    t[116] = "Unable to translate data into the desired encoding.";
+    t[117] = "Não foi possível traduzir dado para codificação desejada.";
+    t[126] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[127] = "Prepare chamado antes de end(). prepare xid={0}, state={1}";
+    t[130] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
+    t[131] = "ResultSet não é atualizável. A consulta que gerou esse conjunto de resultados deve selecionar somente uma tabela, e deve selecionar todas as chaves primárias daquela tabela. Veja a especificação na API do JDBC 2.1, seção 5.6 para obter mais detalhes.";
+    t[136] = "Unable to create SAXResult for SQLXML.";
+    t[137] = "Não foi possível criar SAXResult para SQLXML.";
+    t[138] = "Cannot retrieve the name of an unnamed savepoint.";
+    t[139] = "Não pode recuperar o nome de um savepoint sem nome.";
+    t[142] = "The array index is out of range: {0}, number of elements: {1}.";
+    t[143] = "O índice da matriz está fora do intervalo: {0}, número de elementos: {1}.";
+    t[144] = "Cannot cast an instance of {0} to type {1}";
+    t[145] = "Não pode converter uma instância de {0} para tipo {1}";
+    t[152] = "Error during recover. flag={0}";
+    t[153] = "Erro durante recuperação. flag={0}";
+    t[158] = "Bad value for type {0} : {1}";
+    t[159] = "Valor inválido para tipo {0} : {1}";
+    t[160] = "An unexpected result was returned by a query.";
+    t[161] = "Um resultado inesperado foi retornado pela consulta.";
+    t[162] = "Expected command status BEGIN, got {0}.";
+    t[163] = "Status do comando BEGIN esperado, recebeu {0}.";
+    t[166] = "Unable to load the class {0} responsible for the datatype {1}";
+    t[167] = "Não foi possível carregar a classe {0} responsável pelo tipo de dado {1}";
+    t[168] = "Cannot change transaction isolation level in the middle of a transaction.";
+    t[169] = "Não pode mudar nível de isolamento da transação no meio de uma transação.";
+    t[174] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
+    t[175] = "O parâmetro do servidor standard_conforming_strings foi definido como {0}. O driver JDBC espera que seja on ou off.";
+    t[178] = "Invalid stream length {0}.";
+    t[179] = "Tamanho de dado {0} é inválido.";
+    t[180] = "Unable to decode xml data.";
+    t[181] = "Não foi possível decodificar dado xml.";
+    t[184] = "Results cannot be retrieved from a CallableStatement before it is executed.";
+    t[185] = "Resultados não podem ser recuperados de uma função antes dela ser executada.";
+    t[186] = "This statement has been closed.";
+    t[187] = "Este comando foi fechado.";
+    t[188] = "Error loading default settings from driverconfig.properties";
+    t[189] = "Erro ao carregar configurações padrão do driverconfig.properties";
+    t[190] = "Invalid flags {0}";
+    t[191] = "Marcadores={0} inválidos";
+    t[196] = "Failed to convert binary xml data to encoding: {0}.";
+    t[197] = "Falhou ao converter dados xml binários para codificação: {0}.";
+    t[204] = "Conversion to type {0} failed: {1}.";
+    t[205] = "Conversão para tipo {0} falhou: {1}.";
+    t[206] = "DataSource has been closed.";
+    t[207] = "DataSource foi fechado.";
+    t[208] = "Connection has been closed.";
+    t[209] = "Conexão foi fechada.";
+    t[210] = "A CallableStatement was executed with nothing returned.";
+    t[211] = "Uma função foi executada e nada foi retornado.";
+    t[212] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
+    t[213] = "Sua política de segurança impediu que a conexão pudesse ser estabelecida. Você provavelmente precisa conceder permissão em java.net.SocketPermission para a máquina e a porta do servidor de banco de dados que você deseja se conectar.";
+    t[218] = "Unexpected command status: {0}.";
+    t[219] = "Status do comando inesperado: {0}.";
+    t[220] = "Cannot reference a savepoint after it has been released.";
+    t[221] = "Não pode referenciar um savepoint após ele ser descartado.";
+    t[222] = "Error opening transaction. start xid={0}";
+    t[223] = "Erro ao abrir transação. start xid={0}";
+    t[228] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
+    t[229] = "O tipo de autenticação {0} não é suportado. Verifique se você configurou o arquivo pg_hba.conf incluindo a subrede ou endereço IP do cliente, e se está utilizando o esquema de autenticação suportado pelo driver.";
+    t[242] = "Internal Position: {0}";
+    t[243] = "Posição Interna: {0}";
+    t[244] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
+    t[245] = "Este comando não declara um parâmetro de saída. Utilize '{' ?= chamada ... '}' para declarar um)";
+    t[256] = "Location: File: {0}, Routine: {1}, Line: {2}";
+    t[257] = "Local: Arquivo: {0}, Rotina: {1}, Linha: {2}";
+    t[258] = "Unknown type {0}.";
+    t[259] = "Tipo desconhecido {0}.";
+    t[260] = "Ran out of memory retrieving query results.";
+    t[261] = "Memória insuficiente ao recuperar resultados da consulta.";
+    t[264] = "Zero bytes may not occur in string parameters.";
+    t[265] = "Zero bytes não podem ocorrer em parâmetros de cadeia de caracteres.";
+    t[266] = "{0} function takes four and only four argument.";
+    t[267] = "função {0} recebe somente quatro argumentos.";
+    t[268] = "Truncation of large objects is only implemented in 8.3 and later servers.";
+    t[269] = "Truncar objetos grandes só é implementado por servidores 8.3 ou superiores.";
+    t[270] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
+    t[271] = "Caracter inválido foi encontrado. Isso é mais comumente causado por dado armazenado que contém caracteres que são inválidos para a codificação que foi criado o banco de dados. O exemplo mais comum disso é armazenar dados de 8 bits em um banco de dados SQL_ASCII.";
+    t[278] = "This PooledConnection has already been closed.";
+    t[279] = "Este PooledConnection já foi fechado.";
+    t[280] = "Cannot call cancelRowUpdates() when on the insert row.";
+    t[281] = "Não pode chamar cancelRowUpdates() quando estiver inserindo registro.";
+    t[284] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[285] = "Não é possível cancelar uma transação preparada enquanto uma transação local estiver em andamento nesta conexão. Efetive ou cancele a transação local primeiro. rollback xid={0}, transactionState={1}";
+    t[288] = "PostgreSQL LOBs can only index to: {0}";
+    t[289] = "LOBs do PostgreSQL só podem indexar até: {0}";
+    t[290] = "Provided InputStream failed.";
+    t[291] = "InputStream fornecido falhou.";
+    t[298] = "Unexpected error writing large object to database.";
+    t[299] = "Erro inesperado ao escrever objeto grande no banco de dados.";
+    t[300] = "Fetch size must be a value greater than or equal to 0.";
+    t[301] = "Tamanho da busca deve ser um valor maior ou igual a 0.";
+    t[310] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[311] = "Intercalação de transação não está implementado. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[312] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[313] = "A transação já havia sido preparada nesta conexão. prepare xid={0}, preparedXid={1}";
+    t[314] = "The parameter index is out of range: {0}, number of parameters: {1}.";
+    t[315] = "O índice de parâmetro está fora do intervalo: {0}, número de parâmetros: {1}.";
+    t[316] = "Not on the insert row.";
+    t[317] = "Não está inserindo um registro.";
+    t[320] = "{0} function takes two and only two arguments.";
+    t[321] = "função {0} recebe somente dois argumentos.";
+    t[322] = "Cannot change transaction read-only property in the middle of a transaction.";
+    t[323] = "Não pode mudar propriedade somente-leitura da transação no meio de uma transação.";
+    t[330] = "GSS Authentication failed";
+    t[331] = "Autenticação GSS falhou";
+    t[332] = "Unknown Response Type {0}.";
+    t[333] = "Tipo de Resposta Desconhecido {0}.";
+    t[334] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
+    t[335] = "Este objeto SQLXML não foi inicializado, então você não pode recuperar dados dele.";
+    t[336] = "An error occurred while setting up the SSL connection.";
+    t[337] = "Um erro ocorreu ao estabelecer uma conexão SSL.";
+    t[344] = "Invalid UUID data.";
+    t[345] = "dado UUID é inválido.";
+    t[354] = "Zero bytes may not occur in identifiers.";
+    t[355] = "Zero bytes não podem ocorrer em identificadores.";
+    t[360] = "A connection could not be made using the requested protocol {0}.";
+    t[361] = "A conexão não pode ser feita usando protocolo informado {0}.";
+    t[362] = "You must specify at least one column value to insert a row.";
+    t[363] = "Você deve especificar pelo menos uma coluna para inserir um registro.";
+    t[364] = "Method {0} is not yet implemented.";
+    t[365] = "Método {0} ainda não foi implementado.";
+    t[368] = "Unknown ResultSet holdability setting: {0}.";
+    t[369] = "Definição de durabilidade do ResultSet desconhecida: {0}.";
+    t[374] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[375] = "Não é possível executar a efetivação da segunda fase de uma transação preparada enquanto uma transação local estiver em andamento nesta conexão. Efetive ou cancele a transação local primeiro. commit xid={0}, transactionState={1}";
+    t[376] = "wasNull cannot be call before fetching a result.";
+    t[377] = "wasNull não pode ser chamado antes de obter um resultado.";
+    t[378] = "Returning autogenerated keys is not supported.";
+    t[379] = "Retorno de chaves geradas automaticamente não é suportado.";
+    t[380] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
+    t[381] = "Não pode atualizar o ResultSet porque ele está antes do início ou depois do fim dos resultados.";
+    t[384] = "Unable to bind parameter values for statement.";
+    t[385] = "Não foi possível ligar valores de parâmetro ao comando.";
+    t[390] = "Unable to create StAXResult for SQLXML";
+    t[391] = "Não foi possível criar StAXResult para SQLXML";
+    t[394] = "Unknown XML Source class: {0}";
+    t[395] = "Classe XML Source desconhecida: {0}";
+    t[396] = "LOB positioning offsets start at 1.";
+    t[397] = "Deslocamentos da posição de LOB começam em 1.";
+    t[402] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
+    t[403] = "Este objeto SQLXML já foi inicializado, então você não pode manipulá-lo depois.";
+    t[404] = "Transaction isolation level {0} not supported.";
+    t[405] = "Nível de isolamento da transação {0} não é suportado.";
+    t[406] = "{0} function takes two or three arguments.";
+    t[407] = "função {0} recebe dois ou três argumentos.";
+    t[412] = "Conversion of interval failed";
+    t[413] = "Conversão de interval falhou";
+    t[414] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
+    t[415] = "Uma função foi executada e o parâmetro de retorno {0} era do tipo {1} contudo tipo {2} foi registrado.";
+    t[416] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[417] = "Métodos de controle de transação setAutoCommit, commit, rollback e setSavepoint não são permitidos enquanto uma transação XA estiver ativa.";
+    t[422] = "Statement has been closed.";
+    t[423] = "Comando foi fechado.";
+    t[424] = "Fastpath call {0} - No result was returned and we expected an integer.";
+    t[425] = "Chamada ao Fastpath {0} - Nenhum resultado foi retornado e nós esperávamos um inteiro.";
+    t[428] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
+    t[429] = "Alguma coisa não usual ocorreu para causar a falha do driver. Por favor reporte esta exceção.";
+    t[430] = "This ResultSet is closed.";
+    t[431] = "Este ResultSet está fechado.";
+    t[432] = "Unknown Types value.";
+    t[433] = "Valor de Types desconhecido.";
+    t[434] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
+    t[435] = "Operação requer um ResultSet rolável, mas este ResultSet é FORWARD_ONLY (somente para frente).";
+    t[450] = "No function outputs were registered.";
+    t[451] = "Nenhum saída de função foi registrada.";
+    t[454] = "Conversion of money failed.";
+    t[455] = "Conversão de money falhou.";
+    t[460] = "xid must not be null";
+    t[461] = "xid não deve ser nulo";
+    t[462] = "The SSLSocketFactory class provided {0} could not be instantiated.";
+    t[463] = "A classe SSLSocketFactory forneceu {0} que não pôde ser instanciado.";
+    t[466] = "Large Objects may not be used in auto-commit mode.";
+    t[467] = "Objetos Grandes não podem ser usados no modo de efetivação automática (auto-commit).";
+    t[468] = "{0} function takes one and only one argument.";
+    t[469] = "função {0} recebe somente um argumento.";
+    t[470] = "Unable to convert DOMResult SQLXML data to a string.";
+    t[471] = "Não foi possível converter dado SQLXML do DOMResult para uma cadeia de caracteres.";
+    t[474] = "Cannot call updateRow() when on the insert row.";
+    t[475] = "Não pode chamar updateRow() quando estiver inserindo registro.";
+    t[478] = "Can''t use relative move methods while on the insert row.";
+    t[479] = "Não pode utilizar métodos de movimentação relativos enquanto estiver inserindo registro.";
+    t[482] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
+    t[483] = "ResultSets com CONCUR_READ_ONLY concorrentes não podem ser atualizados.";
+    t[484] = "Unable to find name datatype in the system catalogs.";
+    t[485] = "Não foi possível encontrar tipo de dado name nos catálogos do sistema.";
+    t[486] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
+    t[487] = "Tamanho de mensagem de ligação {0} é muito longo. Isso pode ser causado por especificações de tamanho incorretas ou muito grandes nos parâmetros do InputStream.";
+    t[488] = "Can''t use query methods that take a query string on a PreparedStatement.";
+    t[489] = "Não pode utilizar métodos de consulta que pegam uma consulta de um comando preparado.";
+    t[490] = "A CallableStatement was executed with an invalid number of parameters";
+    t[491] = "Uma função foi executada com um número inválido de parâmetros";
+    t[500] = "Cannot call deleteRow() when on the insert row.";
+    t[501] = "Não pode chamar deleteRow() quando estiver inserindo registro.";
+    t[502] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
+    t[503] = "Uma função foi declarada mas nenhuma chamada a registerOutParameter (1, <algum_tipo>) foi feita.";
+    t[508] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
+    t[509] = "Posicionado antes do início do ResultSet.  Você não pode chamar deleteRow() aqui.";
+    t[510] = "{0} function takes three and only three arguments.";
+    t[511] = "função {0} recebe três e somente três argumentos.";
+    t[518] = "Query timeout must be a value greater than or equals to 0.";
+    t[519] = "Tempo de espera da consulta deve ser um valor maior ou igual a 0.";
+    t[520] = "There are no rows in this ResultSet.";
+    t[521] = "Não há nenhum registro neste ResultSet.";
+    t[524] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[525] = "Efetivação/Cancelamento heurístico não é suportado. forget xid={0}";
+    t[528] = "Provided Reader failed.";
+    t[529] = "Reader fornecido falhou.";
+    t[530] = "Internal Query: {0}";
+    t[531] = "Consulta Interna: {0}";
+    t[532] = "The JVM claims not to support the {0} encoding.";
+    t[533] = "A JVM reclamou que não suporta a codificação {0}.";
+    t[544] = "The column name {0} was not found in this ResultSet.";
+    t[545] = "A nome da coluna {0} não foi encontrado neste ResultSet.";
+    t[546] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[547] = "Erro ao cancelar transação. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[554] = "Unsupported value for stringtype parameter: {0}";
+    t[555] = "Valor do parâmetro stringtype não é suportado: {0}";
+    t[560] = "No value specified for parameter {0}.";
+    t[561] = "Nenhum valor especificado para parâmetro {0}.";
+    t[562] = "Can''t refresh the insert row.";
+    t[563] = "Não pode renovar um registro inserido.";
+    t[566] = "The array index is out of range: {0}";
+    t[567] = "O índice da matriz está fora do intervalo: {0}";
+    t[568] = "ClientInfo property not supported.";
+    t[569] = "propriedade ClientInfo não é suportada.";
+    t[570] = "Malformed function or procedure escape syntax at offset {0}.";
+    t[571] = "Sintaxe de escape mal formada da função ou do procedimento no deslocamento {0}.";
+    t[578] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[579] = "Erro ao efetivar transação preparada. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[586] = "This SQLXML object has already been freed.";
+    t[587] = "Este objeto SQLXML já foi liberado.";
+    t[590] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[591] = "Efetivação de uma fase chamada para o xid {0}, mas a conexão foi preparada com o xid {1}";
+    t[602] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[603] = "Efetivação de uma fase com xid desconhecido. commit xid={0}, currentXid={1}";
+    t[606] = "Position: {0}";
+    t[607] = "Posição: {0}";
+    t[612] = "Detail: {0}";
+    t[613] = "Detalhe: {0}";
+    t[616] = "The JVM claims not to support the encoding: {0}";
+    t[617] = "A JVM reclamou que não suporta a codificação: {0}";
+    t[618] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
+    t[619] = "Não foi possível determinar um valor para MaxIndexKeys por causa de falta de dados no catálogo do sistema.";
+    t[620] = "Invalid fetch direction constant: {0}.";
+    t[621] = "Constante de direção da busca é inválida: {0}.";
+    t[622] = "Multiple ResultSets were returned by the query.";
+    t[623] = "ResultSets múltiplos foram retornados pela consulta.";
+    t[626] = "The server does not support SSL.";
+    t[627] = "O servidor não suporta SSL.";
+    t[630] = "Server SQLState: {0}";
+    t[631] = "SQLState: {0}";
+    t[632] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
+    t[633] = "Fim de entrada prematuro, eram esperados {0} bytes, mas somente {1} foram lidos.";
+    t[636] = "Expected an EOF from server, got: {0}";
+    t[637] = "Esperado um EOF do servidor, recebido: {0}";
+    t[638] = "Hint: {0}";
+    t[639] = "Dica: {0}";
+    t[640] = "Interrupted while attempting to connect.";
+    t[641] = "Interrompido ao tentar se conectar.";
+    t[642] = "The connection attempt failed.";
+    t[643] = "A tentativa de conexão falhou.";
+    t[644] = "Too many update results were returned.";
+    t[645] = "Muitos resultados de atualização foram retornados.";
+    t[650] = "Cannot convert an instance of {0} to type {1}";
+    t[651] = "Não pode converter uma instância de {0} para tipo {1}";
+    t[652] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[653] = "Prepare deve ser executado na conexão que iniciou o ramo. Intercalação de transações não é suportada. prepare xid={0}, currentXid={1}";
+    t[660] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[661] = "A efetivação de uma fase deve ser executada na conexão que iniciou o ramo. commit xid={0}";
+    t[664] = "The maximum field size must be a value greater than or equal to 0.";
+    t[665] = "O tamanho máximo de um campo deve ser um valor maior ou igual a 0.";
+    t[666] = "Interval {0} not yet implemented";
+    t[667] = "Intervalo {0} ainda não foi implementado";
+    t[668] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
+    t[669] = "Parâmetro do tipo {0} foi registrado, mas uma chamada a get{1} (tiposql={2}) foi feita.";
+    t[672] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[673] = "A conexão atual não possui um xid associado. prepare xid={0}";
+    t[674] = "Cannot establish a savepoint in auto-commit mode.";
+    t[675] = "Não pode estabelecer um savepoint no modo de efetivação automática (auto-commit).";
+    t[676] = "A result was returned when none was expected.";
+    t[677] = "Um resultado foi retornado quando nenhum era esperado.";
     table = t;
   }
   public java.lang.Object handleGetObject (java.lang.String msgid) throws java.util.MissingResourceException {
     int hash_val = msgid.hashCode() & 0x7fffffff;
-    int idx = (hash_val % 397) << 1;
+    int idx = (hash_val % 343) << 1;
     {
       java.lang.Object found = table[idx];
       if (found == null)
@@ -338,11 +356,11 @@ public java.lang.Object handleGetObject (java.lang.String msgid) throws java.uti
       if (msgid.equals(found))
         return table[idx + 1];
     }
-    int incr = ((hash_val % 395) + 1) << 1;
+    int incr = ((hash_val % 341) + 1) << 1;
     for (;;) {
       idx += incr;
-      if (idx >= 794)
-        idx -= 794;
+      if (idx >= 686)
+        idx -= 686;
       java.lang.Object found = table[idx];
       if (found == null)
         return null;
@@ -354,13 +372,13 @@ public java.util.Enumeration getKeys () {
     return
       new java.util.Enumeration() {
         private int idx = 0;
-        { while (idx < 794 && table[idx] == null) idx += 2; }
+        { while (idx < 686 && table[idx] == null) idx += 2; }
         public boolean hasMoreElements () {
-          return (idx < 794);
+          return (idx < 686);
         }
         public java.lang.Object nextElement () {
           java.lang.Object key = table[idx];
-          do idx += 2; while (idx < 794 && table[idx] == null);
+          do idx += 2; while (idx < 686 && table[idx] == null);
           return key;
         }
       };
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_ru.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_ru.java
index 7800d74d1c..a3a422611b 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_ru.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_ru.java
@@ -8,12 +8,14 @@ public class messages_ru extends java.util.ResourceBundle {
     t[1] = "Project-Id-Version: JDBC Driver for PostgreSQL 8.x.x\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2016-01-07 15:09+0300\nLast-Translator: Vladimir Sitnikov <[email protected]>\nLanguage-Team: pgsql-rus <[email protected]>\nLanguage: ru_RU\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nX-Generator: Poedit 1.5.7\n";
     t[8] = "Unknown Types value.";
     t[9] = "Неизвестное значение Types.";
+    t[10] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[11] = "Методы управления транзакциями (setAutoCommit, commit, rollback и setSavepoint) запрещены во время активной XA-транзакции.";
     t[12] = "The column name {0} was not found in this ResultSet.";
     t[13] = "Колонки {0} не найдено в этом ResultSet’’е.";
     t[18] = "The array index is out of range: {0}, number of elements: {1}.";
     t[19] = "Индекс массива вне диапазона: {0}. Допустимые значения: 1..{1}";
-    t[22] = "Error during one-phase commit. commit xid={0}";
-    t[23] = "Ошибка при однофазной фиксации транзакции. commit xid={0}";
+    t[22] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[23] = "Вызов end() без соответствующего вызова start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
     t[26] = "An error occurred while setting up the SSL connection.";
     t[27] = "Ошибка при установке SSL-подсоединения.";
     t[30] = "Failed to create object for: {0}.";
@@ -28,10 +30,10 @@ public class messages_ru extends java.util.ResourceBundle {
     t[49] = "Что-то пошло не так: из классов StringBuffer и StringBuilder исключений не ожидалось";
     t[54] = "Position: {0}";
     t[55] = "Позиция: {0}";
+    t[56] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[57] = "Невозможно выполнить вторую фазу фиксации подготовленной транзакции, пока на соединении выполняется локальная транзакция. Сначала зафиксируйте или откатите локальную транзакцию. commit xid={0}, transactionState={1}";
     t[60] = "No results were returned by the query.";
     t[61] = "Запрос не вернул результатов.";
-    t[66] = "tried to call end without corresponding start call. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[67] = "Невозможно завершить транзакцию, т.к. транзакция не была начата. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
     t[76] = "Unexpected command status: {0}.";
     t[77] = "Неожиданный статус команды: {0}.";
     t[84] = "Unsupported property name: {0}";
@@ -44,10 +46,12 @@ public class messages_ru extends java.util.ResourceBundle {
     t[97] = "Ошибка протокола.  Установление сессии не удалось.";
     t[100] = "The password callback class provided {0} could not be instantiated.";
     t[101] = "Невозможно создать password callback с помощью указанного класса {0}";
-    t[104] = "suspend/resume not implemented";
-    t[105] = "Операции XA suspend/resume не реализованы";
+    t[106] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[107] = "Однофазная фиксация должна выполняться на том соединении, которое начало ветвь. commit xid={0}";
     t[116] = "Fastpath call {0} - No result was returned and we expected a long.";
     t[117] = "Вызов fastpath {0} ничего не вернул, а ожидалось long";
+    t[124] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[125] = "Вторую фазу фиксации нельзя выполнить, пока на соединении активна XA-ветвь. commit xid={0}, currentXid={1}, state={2}";
     t[128] = "The connection attempt failed.";
     t[129] = "Ошибка при попытке подсоединения.";
     t[130] = "Transaction isolation level {0} not supported.";
@@ -72,8 +76,12 @@ public class messages_ru extends java.util.ResourceBundle {
     t[167] = "Ошибка ввода/вывода при отправке бэкенду";
     t[184] = "An error occurred reading the certificate";
     t[185] = "Ошибка при чтении сертификата";
-    t[196] = "commit called before end. commit xid={0}, state={1}";
-    t[197] = "Операция commit должна вызываться только после операции end. commit xid={0}, state={1}";
+    t[190] = "Error during one-phase commit. commit xid={0}";
+    t[191] = "Ошибка при однофазной фиксации транзакции. commit xid={0}";
+    t[196] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[197] = "Невозможно откатить подготовленную транзакцию, пока на соединении выполняется локальная транзакция. Сначала зафиксируйте или откатите локальную транзакцию. rollback xid={0}, transactionState={1}";
+    t[200] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[201] = "Prepare должен выполняться на том соединении, которое начало ветвь. Чередование транзакций не поддерживается. prepare xid={0}, currentXid={1}";
     t[202] = "Interval {0} not yet implemented";
     t[203] = "Интеврвал {0} ещё не реализован";
     t[210] = "Unknown Response Type {0}.";
@@ -86,6 +94,8 @@ public class messages_ru extends java.util.ResourceBundle {
     t[227] = "Закончилось время ожидания";
     t[232] = "An unexpected result was returned by a query.";
     t[233] = "Запрос вернул неожиданный результат.";
+    t[234] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[235] = "Соединение уже связано с активной XA-ветвью. Завершите текущую ветвь, прежде чем начинать новую. start xid={0}, currentXid={1}, state={2}, flags={3}";
     t[236] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
     t[237] = "Ошибка при фиксации подготовленной транзакции. commit xid={0}, preparedXid={1}, currentXid={2}";
     t[242] = "Unknown type {0}.";
@@ -94,26 +104,32 @@ public class messages_ru extends java.util.ResourceBundle {
     t[251] = "Ожидание COPY блокировки прервано получением interrupt";
     t[262] = "Invalid targetServerType value: {0}";
     t[263] = "Неверное значение targetServerType: {0}";
+    t[264] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[265] = "У текущего соединения нет связанного xid. prepare xid={0}";
     t[270] = "A result was returned when none was expected.";
     t[271] = "Результат возвращён когда его не ожидалось.";
     t[272] = "Detail: {0}";
     t[273] = "Подробности: {0}";
     t[276] = "The column index is out of range: {0}, number of columns: {1}.";
     t[277] = "Индекс колонки вне диапазона: {0}. Допустимые значения: 1..{1}";
+    t[280] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[281] = "Однофазная фиксация запрошена для xid {0}, но соединение подготовлено с xid {1}";
     t[284] = "This ResultSet is closed.";
     t[285] = "ResultSet закрыт.";
     t[298] = "Requested CopyIn but got {0}";
     t[299] = "Ожидался ответ CopyIn, а получен {0}";
     t[302] = "Conversion to type {0} failed: {1}.";
     t[303] = "Ошибка при преобразовании к типу {0}: {1}";
-    t[306] = "Not implemented: Prepare must be issued using the same connection that started the transaction. currentXid={0}, prepare xid={1}";
-    t[307] = "В каком соединении транзакцию начинали, в таком и вызывайте prepare. По-другому не работает. currentXid={0}, prepare xid={1}";
+    t[306] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[307] = "Транзакция уже подготовлена на этом соединении. prepare xid={0}, preparedXid={1}";
     t[308] = "Server SQLState: {0}";
     t[309] = "SQLState сервера: {0}";
     t[314] = "Connection to {0} refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.";
     t[315] = "Подсоединение по адресу {0} отклонено. Проверьте что хост и порт указаны правильно и что postmaster принимает TCP/IP-подсоединения.";
     t[318] = "Invalid flags {0}";
     t[319] = "Неверные флаги {0}";
+    t[322] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[323] = "Ошибка при откате транзакции. rollback xid={0}, preparedXid={1}, currentXid={2}";
     t[326] = "Statement has been closed.";
     t[327] = "Statement закрыт.";
     t[328] = "Too many update results were returned.";
@@ -136,6 +152,8 @@ public class messages_ru extends java.util.ResourceBundle {
     t[367] = "Ошибка при выполнении prepare для транзакции {0}";
     t[368] = "Invalid timeout ({0}<0).";
     t[369] = "Значение таймаута должно быть неотрицательным: {0}";
+    t[370] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[371] = "Однофазная фиксация с неизвестным xid. commit xid={0}, currentXid={1}";
     t[374] = "Unsupported value for stringtype parameter: {0}";
     t[375] = "Неподдерживаемое значение для параметра stringtype: {0}";
     t[380] = "Requested CopyOut but got {0}";
@@ -144,22 +162,26 @@ public class messages_ru extends java.util.ResourceBundle {
     t[383] = "Это соединение уже было закрыто";
     t[392] = "Could not find a server with specified targetServerType: {0}";
     t[393] = "Не удалось найти сервер с указанным значением targetServerType: {0}";
+    t[396] = "Error opening transaction. start xid={0}";
+    t[397] = "Ошибка при открытии транзакции. start xid={0}";
     t[402] = "Interrupted while attempting to connect.";
     t[403] = "Подключение прервано получаением interrupt";
     t[406] = "The parameter index is out of range: {0}, number of parameters: {1}.";
     t[407] = "Индекс параметра вне диапазона: {0}. Допустимые значения: 1..{1}";
     t[410] = "Unable to bind parameter values for statement.";
     t[411] = "Не в состоянии ассоциировать значения параметров для команды (PGBindException)";
+    t[412] = "commit() called before end(). commit xid={0}, state={1}";
+    t[413] = "commit() вызван до end(). commit xid={0}, state={1}";
+    t[418] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[419] = "prepare вызван до end(). prepare xid={0}, state={1}";
     t[420] = "Cannot write to copy a byte of value {0}";
     t[421] = "Значение byte должно быть в диапазоне 0..255, переданное значение: {0}";
     t[422] = "Ran out of memory retrieving query results.";
     t[423] = "Недостаточно памяти для обработки результатов запроса. Попробуйте увеличить -Xmx или проверьте размеры обрабатываемых данных";
-    t[434] = "Prepare called before end. prepare xid={0}, state={1}";
-    t[435] = "Вызов prepare должен происходить только после вызова end. prepare xid={0}, state={1}";
     t[436] = "Hint: {0}";
     t[437] = "Подсказка: {0}";
-    t[440] = "Not implemented: 2nd phase commit must be issued using an idle connection. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[441] = "Духфазная фиксация работает только, если соединение неактивно (state=idle и транзакцция отсутствует). commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
+    t[442] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[443] = "Эвристический commit/rollback не поддерживается. forget xid={0}";
     t[444] = "This copy stream is closed.";
     t[445] = "Поток уже был закрыт";
     t[450] = "The server does not support SSL.";
@@ -188,12 +210,14 @@ public class messages_ru extends java.util.ResourceBundle {
     t[515] = "DataSource закрыт.";
     t[518] = "The HostnameVerifier class provided {0} could not be instantiated.";
     t[519] = "Невозможно создать HostnameVerifier с помощью указанного класса {0}";
-    t[520] = "Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
-    t[521] = "Ошибка при откате подготовленной транзакции. rollback xid={0}, preparedXid={1}, currentXid={2}";
     t[522] = "Unable to create SAXResult for SQLXML.";
     t[523] = "Невозможно создать SAXResult для SQLXML";
     t[530] = "This connection has been closed.";
     t[531] = "Соединение уже было закрыто";
+    t[534] = "Error during recover. flag={0}";
+    t[535] = "Ошибка при восстановлении. flag={0}";
+    t[542] = "Suspend/resume not implemented";
+    t[543] = "Операции XA suspend/resume не реализованы";
     t[544] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
     t[545] = "Раннее завершение входного потока, ожидалось байт: {0}, но считано только {1}";
     t[550] = "Unsupported binary encoding of {0}.";
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_sr.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_sr.java
index 4823b8e09f..71f6657a7d 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_sr.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_sr.java
@@ -3,332 +3,350 @@
 public class messages_sr extends java.util.ResourceBundle {
   private static final java.lang.String[] table;
   static {
-    java.lang.String[] t = new java.lang.String[794];
+    java.lang.String[] t = new java.lang.String[686];
     t[0] = "";
     t[1] = "Project-Id-Version: PostgreSQL 8.1\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2009-05-26 11:13+0100\nLast-Translator: Bojan Škaljac <skaljac (at) gmail.com>\nLanguage-Team: Srpski <[email protected]>\nLanguage: \nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nX-Poedit-Language: Serbian\nX-Poedit-Country: YUGOSLAVIA\n";
-    t[2] = "Not implemented: 2nd phase commit must be issued using an idle connection. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[3] = "Nije implementirano: Dvofazni commit mora biti izdat uz korištenje besposlene konekcije. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[4] = "DataSource has been closed.";
-    t[5] = "DataSource je zatvoren.";
-    t[8] = "Invalid flags {0}";
-    t[9] = "Nevažeće zastavice {0}";
-    t[18] = "Where: {0}";
-    t[19] = "Gde: {0}";
-    t[26] = "The connection attempt failed.";
-    t[27] = "Pokušaj konektovanja propao.";
-    t[28] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
-    t[29] = "Trenutna pozicija posle kraja ResultSet-a.  Ne možete pozvati deleteRow() na toj poziciji.";
-    t[32] = "Can''t use query methods that take a query string on a PreparedStatement.";
-    t[33] = "Ne možete da koristite metode za upit koji uzimaju string iz upita u PreparedStatement-u.";
-    t[36] = "Multiple ResultSets were returned by the query.";
-    t[37] = "Višestruki ResultSet-vi su vraćeni od strane upita.";
-    t[50] = "Too many update results were returned.";
-    t[51] = "Previše rezultata za ažuriranje je vraćeno.";
-    t[66] = "The column name {0} was not found in this ResultSet.";
-    t[67] = "Ime kolone {0} nije pronadjeno u ResultSet.";
-    t[70] = "Fastpath call {0} - No result was returned and we expected an integer.";
-    t[71] = "Fastpath poziv {0} - Nikakav rezultat nije vraćen a očekivan je integer.";
-    t[74] = "Protocol error.  Session setup failed.";
-    t[75] = "Greška protokola.  Zakazivanje sesije propalo.";
-    t[76] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
-    t[77] = "CallableStatement jedeklarisan ali nije bilo poziva registerOutParameter (1, <neki_tip>).";
-    t[78] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
-    t[79] = "ResultSets sa osobinom CONCUR_READ_ONLY ne moeže biti ažuriran.";
-    t[90] = "LOB positioning offsets start at 1.";
-    t[91] = "LOB pozicija ofset počinje kod 1.";
-    t[92] = "Internal Position: {0}";
-    t[93] = "Interna pozicija: {0}";
-    t[96] = "free() was called on this LOB previously";
-    t[97] = "free() je pozvan na ovom LOB-u prethodno";
-    t[100] = "Cannot change transaction read-only property in the middle of a transaction.";
-    t[101] = "Nije moguće izmeniti read-only osobinu transakcije u sred izvršavanja transakcije.";
-    t[102] = "The JVM claims not to support the {0} encoding.";
-    t[103] = "JVM tvrdi da ne podržava {0} encoding.";
-    t[108] = "{0} function doesn''t take any argument.";
-    t[109] = "Funkcija {0} nema parametara.";
-    t[112] = "xid must not be null";
-    t[113] = "xid ne sme biti null";
-    t[122] = "The server does not support SSL.";
-    t[123] = "Server ne podržava SSL.";
-    t[124] = "Custom type maps are not supported.";
-    t[125] = "Mape sa korisnički definisanim tipovima nisu podržane.";
-    t[148] = "Hint: {0}";
-    t[149] = "Nagovest: {0}";
-    t[152] = "Unable to find name datatype in the system catalogs.";
-    t[153] = "Nije moguće pronaći ime tipa podatka u sistemskom katalogu.";
-    t[156] = "Unsupported Types value: {0}";
-    t[157] = "Za tip nije podržana vrednost: {0}";
-    t[158] = "Unknown type {0}.";
-    t[159] = "Nepoznat tip {0}.";
-    t[166] = "{0} function takes two and only two arguments.";
-    t[167] = "Funkcija {0} prima dva i samo dva parametra.";
-    t[186] = "PostgreSQL LOBs can only index to: {0}";
-    t[187] = "PostgreSQL LOB mogu jedino da označavaju: {0}";
-    t[194] = "Method {0} is not yet implemented.";
-    t[195] = "Metod {0} nije još impelemtiran.";
-    t[198] = "Error loading default settings from driverconfig.properties";
-    t[199] = "Greška u čitanju standardnih podešavanja iz driverconfig.properties";
-    t[200] = "Results cannot be retrieved from a CallableStatement before it is executed.";
-    t[201] = "Razultat nemože da se primi iz CallableStatement pre nego što se on izvrši.";
-    t[202] = "Large Objects may not be used in auto-commit mode.";
-    t[203] = "Veliki objekti (Large Object) se nemogu koristiti u auto-commit modu.";
-    t[208] = "Expected command status BEGIN, got {0}.";
-    t[209] = "Očekivan status komande je BEGIN, a dobijeno je {0}.";
-    t[218] = "Invalid fetch direction constant: {0}.";
-    t[219] = "Pogrešna konstanta za direkciju donošenja: {0}.";
-    t[222] = "{0} function takes three and only three arguments.";
-    t[223] = "Funkcija {0} prima tri i samo tri parametra.";
-    t[226] = "This SQLXML object has already been freed.";
-    t[227] = "Ovaj SQLXML je već obrisan.";
-    t[228] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
-    t[229] = "Nije moguće ažurirati ResultSet zato što je ili početak ili kraj rezultata.";
-    t[232] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
-    t[233] = "Parametar tipa {0} je registrovan,ali poziv za get{1} (sql tip={2}) je izvršen.";
-    t[234] = "Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
-    t[235] = "Greška prilikom povratka na prethodo pripremljenu transakciju. rollback xid={0}, preparedXid={1}, currentXid={2}";
-    t[236] = "Cannot establish a savepoint in auto-commit mode.";
-    t[237] = "U auto-commit modu nije moguće podešavanje tački snimanja.";
-    t[240] = "Fetch size must be a value greater than or equal to 0.";
-    t[241] = "Doneta veličina mora biti vrednost veća ili jednaka 0.";
-    t[242] = "Cannot retrieve the id of a named savepoint.";
-    t[243] = "Nije moguće primiti id imena tačke snimanja.";
-    t[244] = "The column index is out of range: {0}, number of columns: {1}.";
-    t[245] = "Indeks kolone van osega: {0}, broj kolona: {1}.";
-    t[250] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
-    t[251] = "Nešto neobično se dogodilo i drajver je zakazao. Molim prijavite ovaj izuzetak.";
-    t[260] = "Cannot cast an instance of {0} to type {1}";
-    t[261] = "Nije moguće kastovati instancu {0} u tip {1}";
-    t[264] = "Unknown Types value.";
-    t[265] = "Nepoznata vrednost za Types.";
-    t[266] = "Invalid stream length {0}.";
-    t[267] = "Nevažeća dužina toka {0}.";
-    t[272] = "Cannot retrieve the name of an unnamed savepoint.";
-    t[273] = "Nije moguće izvaditi ime tačke snimanja koja nema ime.";
-    t[274] = "Unable to translate data into the desired encoding.";
-    t[275] = "Nije moguće prevesti podatke u odabrani encoding format.";
-    t[276] = "Expected an EOF from server, got: {0}";
-    t[277] = "Očekivan EOF od servera, a dobijeno: {0}";
-    t[278] = "Bad value for type {0} : {1}";
-    t[279] = "Pogrešna vrednost za tip {0} : {1}";
-    t[286] = "Unable to create SAXResult for SQLXML.";
-    t[287] = "Nije moguće kreirati SAXResult za SQLXML.";
-    t[292] = "Error during recover";
-    t[293] = "Greška prilikom oporavljanja.";
-    t[294] = "tried to call end without corresponding start call. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[295] = "Pokušaj pozivanja kraja pre odgovarajućeg početka. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[296] = "Truncation of large objects is only implemented in 8.3 and later servers.";
-    t[297] = "Skraćivanje velikih objekata je implementirano samo u 8.3 i novijim serverima.";
-    t[298] = "This PooledConnection has already been closed.";
-    t[299] = "PooledConnection je već zatvoren.";
-    t[302] = "ClientInfo property not supported.";
-    t[303] = "ClientInfo property nije podržan.";
-    t[312] = "A connection could not be made using the requested protocol {0}.";
-    t[313] = "Konekciju nije moguće kreirati uz pomoć protokola {0}.";
-    t[318] = "Unknown XML Result class: {0}";
-    t[319] = "nepoznata XML klasa rezultata: {0}";
-    t[322] = "There are no rows in this ResultSet.";
-    t[323] = "U ResultSet-u nema redova.";
-    t[324] = "Unexpected command status: {0}.";
-    t[325] = "Neočekivan komandni status: {0}.";
-    t[330] = "Heuristic commit/rollback not supported. forget xid={0}";
-    t[331] = "Heuristički commit/rollback nije podržan. forget xid={0}";
-    t[334] = "Not on the insert row.";
-    t[335] = "Nije mod ubacivanja redova.";
-    t[336] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
-    t[337] = "SQLXML objekat je već inicijalizovan, tako da ga nije moguće dodatno menjati.";
-    t[344] = "Server SQLState: {0}";
-    t[345] = "SQLState servera: {0}";
-    t[348] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
-    t[349] = "Serverov standard_conforming_strings parametar javlja {0}. JDBC drajver ocekuje on ili off.";
-    t[364] = "The array index is out of range: {0}, number of elements: {1}.";
-    t[365] = "Indeks niza je van opsega: {0}, broj elemenata: {1}.";
-    t[374] = "suspend/resume not implemented";
-    t[375] = "obustavljanje/nastavljanje nije implementirano.";
-    t[378] = "Not implemented: one-phase commit must be issued using the same connection that was used to start it";
-    t[379] = "Nije implementirano: Commit iz jedne faze mora biti izdat uz korištenje iste konekcije koja je korištena za startovanje.";
-    t[380] = "Error during one-phase commit. commit xid={0}";
-    t[381] = "Kreška prilikom commit-a iz jedne faze. commit xid={0}";
-    t[398] = "Cannot call cancelRowUpdates() when on the insert row.";
-    t[399] = "Nije moguće pozvati cancelRowUpdates() prilikom ubacivanja redova.";
-    t[400] = "Cannot reference a savepoint after it has been released.";
-    t[401] = "Nije moguće referenciranje tačke snimanja nakon njenog oslobađanja.";
-    t[402] = "You must specify at least one column value to insert a row.";
-    t[403] = "Morate specificirati barem jednu vrednost za kolonu da bi ste ubacili red.";
-    t[404] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
-    t[405] = "Nije moguće odrediti vrednost za MaxIndexKezs zbog nedostatka podataka u sistemskom katalogu.";
-    t[412] = "The JVM claims not to support the encoding: {0}";
-    t[413] = "JVM tvrdi da ne podržava encoding: {0}";
-    t[414] = "{0} function takes two or three arguments.";
-    t[415] = "Funkcija {0} prima dva ili tri parametra.";
-    t[428] = "Unable to convert DOMResult SQLXML data to a string.";
-    t[429] = "Nije moguće konvertovati DOMResult SQLXML podatke u string.";
-    t[434] = "Unable to decode xml data.";
-    t[435] = "Neuspešno dekodiranje XML podataka.";
-    t[440] = "Unexpected error writing large object to database.";
-    t[441] = "Neočekivana greška prilikom upisa velikog objekta u bazu podataka.";
-    t[442] = "Zero bytes may not occur in string parameters.";
-    t[443] = "Nula bajtovji se ne smeju pojavljivati u string parametrima.";
-    t[444] = "A result was returned when none was expected.";
-    t[445] = "Rezultat vraćen ali nikakav rezultat nije očekivan.";
-    t[448] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
-    t[449] = "Prevremen završetak ulaznog toka podataka,očekivano {0} bajtova, a pročitano samo {1}.";
-    t[450] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
-    t[451] = "ResultSet nije moguće ažurirati. Upit koji je generisao ovaj razultat mora selektoati jedino tabelu,i mora selektovati sve primrne ključeve iz te tabele. Pogledajte API specifikaciju za JDBC 2.1, sekciju 5.6 za više detalja.";
-    t[454] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
-    t[455] = "Dužina vezivne poruke {0} prevelika.  Ovo je možda rezultat veoma velike ili pogrešne dužine specifikacije za InputStream parametre.";
-    t[460] = "Statement has been closed.";
-    t[461] = "Statemen je već zatvoren.";
-    t[462] = "No value specified for parameter {0}.";
-    t[463] = "Nije zadata vrednost za parametar {0}.";
-    t[468] = "The array index is out of range: {0}";
-    t[469] = "Indeks niza je van opsega: {0}";
-    t[474] = "Unable to bind parameter values for statement.";
-    t[475] = "Nije moguće naći vrednost vezivnog parametra za izjavu (statement).";
-    t[476] = "Can''t refresh the insert row.";
-    t[477] = "Nije moguće osvežiti ubačeni red.";
-    t[480] = "The maximum field size must be a value greater than or equal to 0.";
-    t[481] = "Maksimalna vrednost veličine polja mora biti vrednost veća ili jednaka 0.";
-    t[482] = "Cannot change transaction isolation level in the middle of a transaction.";
-    t[483] = "Nije moguće izmeniti nivo izolacije transakcije u sred izvršavanja transakcije.";
-    t[498] = "Provided InputStream failed.";
-    t[499] = "Pribaljeni InputStream zakazao.";
-    t[500] = "The parameter index is out of range: {0}, number of parameters: {1}.";
-    t[501] = "Index parametra je van opsega: {0}, broj parametara je: {1}.";
-    t[502] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
-    t[503] = "Serverov DataStyle parametar promenjen u {0}. JDBC zahteva da DateStyle počinje sa ISO za uspešno završavanje operacije.";
-    t[508] = "Connection attempt timed out.";
-    t[509] = "Isteklo je vreme za pokušaj konektovanja.";
-    t[512] = "Internal Query: {0}";
-    t[513] = "Interni upit: {0}";
-    t[514] = "Error preparing transaction. prepare xid={0}";
-    t[515] = "Greška u pripremanju transakcije. prepare xid={0}";
-    t[518] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
-    t[519] = "Tip autentifikacije {0} nije podržan. Proverite dali imate podešen pg_hba.conf fajl koji uključuje klijentovu IP adresu ili podmrežu, i da ta mreža koristi šemu autentifikacije koja je podržana od strane ovog drajvera.";
-    t[526] = "Interval {0} not yet implemented";
-    t[527] = "Interval {0} još nije implementiran.";
-    t[532] = "Conversion of interval failed";
-    t[533] = "Konverzija intervala propala.";
-    t[540] = "Query timeout must be a value greater than or equals to 0.";
-    t[541] = "Tajm-aut mora biti vrednost veća ili jednaka 0.";
-    t[542] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
-    t[543] = "Konekcija je zatvorena automatski zato što je nova konekcija otvorena za isti PooledConnection ili je PooledConnection zatvoren.";
-    t[544] = "ResultSet not positioned properly, perhaps you need to call next.";
-    t[545] = "ResultSet nije pravilno pozicioniran, možda je potrebno da pozovete next.";
-    t[546] = "Prepare called before end. prepare xid={0}, state={1}";
-    t[547] = "Pripremanje poziva pre kraja. prepare xid={0}, state={1}";
-    t[548] = "Invalid UUID data.";
-    t[549] = "Nevažeća UUID podatak.";
-    t[550] = "This statement has been closed.";
-    t[551] = "Statement je zatvoren.";
-    t[552] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
-    t[553] = "Nije moguće zaključiti SQL tip koji bi se koristio sa instancom {0}. Koristite setObject() sa zadatim eksplicitnim tipom vrednosti.";
-    t[554] = "Cannot call updateRow() when on the insert row.";
-    t[555] = "Nije moguće pozvati updateRow() prilikom ubacivanja redova.";
-    t[562] = "Detail: {0}";
-    t[563] = "Detalji: {0}";
-    t[566] = "Cannot call deleteRow() when on the insert row.";
-    t[567] = "Nije moguće pozvati deleteRow() prilikom ubacivanja redova.";
-    t[568] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
-    t[569] = "Trenutna pozicija pre početka ResultSet-a.  Ne možete pozvati deleteRow() na toj poziciji.";
-    t[576] = "Unknown XML Source class: {0}";
-    t[577] = "Nepoznata XML ulazna klasa: {0}";
-    t[578] = "Unknown Response Type {0}.";
-    t[579] = "Nepoznat tip odziva {0}.";
-    t[582] = "Unsupported value for stringtype parameter: {0}";
-    t[583] = "Vrednost za parametar tipa string nije podržana: {0}";
-    t[584] = "Conversion to type {0} failed: {1}.";
-    t[585] = "Konverzija u tip {0} propala: {1}.";
-    t[586] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
-    t[587] = "SQLXML objekat nije inicijalizovan tako da nije moguće preuzimati podatke iz njega.";
-    t[600] = "Unable to load the class {0} responsible for the datatype {1}";
-    t[601] = "Nije moguće učitati kalsu {0} odgovornu za tip podataka {1}";
-    t[604] = "The fastpath function {0} is unknown.";
-    t[605] = "Fastpath funkcija {0} je nepoznata.";
-    t[608] = "Malformed function or procedure escape syntax at offset {0}.";
-    t[609] = "Pogrešna sintaksa u funkciji ili proceduri na poziciji {0}.";
-    t[612] = "Provided Reader failed.";
-    t[613] = "Pribavljeni čitač (Reader) zakazao.";
-    t[616] = "Failed to create object for: {0}.";
-    t[617] = "Propao pokušaj kreiranja objekta za: {0}.";
-    t[620] = "Conversion of money failed.";
-    t[621] = "Konverzija novca (money) propala.";
-    t[622] = "Connection has been closed.";
-    t[623] = "Konekcija je već zatvorena.";
-    t[626] = "An unexpected result was returned by a query.";
-    t[627] = "Nepredviđen rezultat je vraćen od strane upita.";
-    t[644] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[645] = "Preplitanje transakcija nije implementirano. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[646] = "An error occurred while setting up the SSL connection.";
-    t[647] = "Greška se dogodila prilikom podešavanja SSL konekcije.";
-    t[656] = "Not implemented: Prepare must be issued using the same connection that started the transaction. currentXid={0}, prepare xid={1}";
-    t[657] = "Nije implementirano: Spremanje mora biti pozvano uz korišćenje iste konekcije koja se koristi za startovanje transakcije. currentXid={0}, prepare xid={1}";
-    t[658] = "The SSLSocketFactory class provided {0} could not be instantiated.";
-    t[659] = "SSLSocketFactory klasa koju pruža {0} se nemože instancirati.";
-    t[662] = "Failed to convert binary xml data to encoding: {0}.";
-    t[663] = "Neuspešno konvertovanje binarnih XML podataka u kodnu stranu: {0}.";
-    t[670] = "Position: {0}";
-    t[671] = "Pozicija: {0}";
-    t[676] = "Location: File: {0}, Routine: {1}, Line: {2}";
-    t[677] = "Lokacija: Fajl: {0}, Rutina: {1}, Linija: {2}";
-    t[684] = "Cannot tell if path is open or closed: {0}.";
-    t[685] = "Nije moguće utvrditi dali je putanja otvorena ili zatvorena: {0}.";
-    t[690] = "Unable to create StAXResult for SQLXML";
-    t[691] = "Nije moguće kreirati StAXResult za SQLXML";
-    t[700] = "Cannot convert an instance of {0} to type {1}";
-    t[701] = "Nije moguće konvertovati instancu {0} u tip {1}";
-    t[710] = "{0} function takes four and only four argument.";
-    t[711] = "Funkcija {0} prima četiri i samo četiri parametra.";
-    t[718] = "Interrupted while attempting to connect.";
-    t[719] = "Prekinut pokušaj konektovanja.";
-    t[722] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
-    t[723] = "Sigurnosna podešavanja su sprečila konekciju. Verovatno je potrebno da dozvolite konekciju klasi java.net.SocketPermission na bazu na serveru.";
-    t[734] = "No function outputs were registered.";
-    t[735] = "Nije registrovan nikakv izlaz iz funkcije.";
-    t[736] = "{0} function takes one and only one argument.";
-    t[737] = "Funkcija {0} prima jedan i samo jedan parametar.";
-    t[744] = "This ResultSet is closed.";
-    t[745] = "ResultSet je zatvoren.";
-    t[746] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
-    t[747] = "Pronađeni su nevažeći karakter podaci. Uzrok je najverovatnije to što pohranjeni podaci sadrže karaktere koji su nevažeći u setu karaktera sa kojima je baza kreirana.  Npr. Čuvanje 8bit podataka u SQL_ASCII bazi podataka.";
-    t[752] = "Error disabling autocommit";
-    t[753] = "Greška u isključivanju autokomita";
-    t[754] = "Ran out of memory retrieving query results.";
-    t[755] = "Nestalo je memorije prilikom preuzimanja rezultata upita.";
-    t[756] = "Returning autogenerated keys is not supported.";
-    t[757] = "Vraćanje autogenerisanih ključeva nije podržano.";
-    t[760] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
-    t[761] = "Operacija zahteva skrolabilan ResultSet,ali ovaj ResultSet je FORWARD_ONLY.";
-    t[762] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
-    t[763] = "CallableStatement funkcija je izvršena dok je izlazni parametar {0} tipa {1} a tip {2} je registrovan kao izlazni parametar.";
-    t[764] = "Unable to find server array type for provided name {0}.";
-    t[765] = "Neuspešno nalaženje liste servera za zadato ime {0}.";
-    t[768] = "Unknown ResultSet holdability setting: {0}.";
-    t[769] = "Nepoznata ResultSet podešavanja za mogućnost držanja (holdability): {0}.";
-    t[772] = "Transaction isolation level {0} not supported.";
-    t[773] = "Nivo izolacije transakcije {0} nije podržan.";
-    t[774] = "Zero bytes may not occur in identifiers.";
-    t[775] = "Nula bajtovji se ne smeju pojavljivati u identifikatorima.";
-    t[776] = "No results were returned by the query.";
-    t[777] = "Nikakav rezultat nije vraćen od strane upita.";
-    t[778] = "A CallableStatement was executed with nothing returned.";
-    t[779] = "CallableStatement je izvršen ali ništa nije vrećeno kao rezultat.";
-    t[780] = "wasNull cannot be call before fetching a result.";
-    t[781] = "wasNull nemože biti pozvan pre zahvatanja rezultata.";
-    t[784] = "Returning autogenerated keys by column index is not supported.";
-    t[785] = "Vraćanje autogenerisanih ključeva po kloloni nije podržano.";
-    t[786] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
-    t[787] = "Izraz ne deklariše izlazni parametar. Koristite '{' ?= poziv ... '}' za deklarisanje.";
-    t[788] = "Can''t use relative move methods while on the insert row.";
-    t[789] = "Ne može se koristiti metod relativnog pomeranja prilikom ubacivanja redova.";
-    t[790] = "A CallableStatement was executed with an invalid number of parameters";
-    t[791] = "CallableStatement je izvršen sa nevažećim brojem parametara";
-    t[792] = "Connection is busy with another transaction";
-    t[793] = "Konekcija je zauzeta sa drugom transakciom.";
+    t[2] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
+    t[3] = "Konekcija je zatvorena automatski zato što je nova konekcija otvorena za isti PooledConnection ili je PooledConnection zatvoren.";
+    t[10] = "Failed to create object for: {0}.";
+    t[11] = "Propao pokušaj kreiranja objekta za: {0}.";
+    t[16] = "Unsupported Types value: {0}";
+    t[17] = "Za tip nije podržana vrednost: {0}";
+    t[20] = "{0} function doesn''t take any argument.";
+    t[21] = "Funkcija {0} nema parametara.";
+    t[24] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
+    t[25] = "Trenutna pozicija posle kraja ResultSet-a.  Ne možete pozvati deleteRow() na toj poziciji.";
+    t[28] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[29] = "end() pozvan bez odgovarajućeg start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[30] = "Connection attempt timed out.";
+    t[31] = "Isteklo je vreme za pokušaj konektovanja.";
+    t[32] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
+    t[33] = "Nije moguće zaključiti SQL tip koji bi se koristio sa instancom {0}. Koristite setObject() sa zadatim eksplicitnim tipom vrednosti.";
+    t[36] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[37] = "Konekcija je već pridružena aktivnoj XA grani. Završite trenutnu granu pre pokretanja nove. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[38] = "Where: {0}";
+    t[39] = "Gde: {0}";
+    t[42] = "ResultSet not positioned properly, perhaps you need to call next.";
+    t[43] = "ResultSet nije pravilno pozicioniran, možda je potrebno da pozovete next.";
+    t[44] = "Error during one-phase commit. commit xid={0}";
+    t[45] = "Kreška prilikom commit-a iz jedne faze. commit xid={0}";
+    t[48] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
+    t[49] = "Serverov DataStyle parametar promenjen u {0}. JDBC zahteva da DateStyle počinje sa ISO za uspešno završavanje operacije.";
+    t[58] = "Custom type maps are not supported.";
+    t[59] = "Mape sa korisnički definisanim tipovima nisu podržane.";
+    t[60] = "Error preparing transaction. prepare xid={0}";
+    t[61] = "Greška u pripremanju transakcije. prepare xid={0}";
+    t[62] = "commit() called before end(). commit xid={0}, state={1}";
+    t[63] = "commit() pozvan pre end(). commit xid={0}, state={1}";
+    t[72] = "No results were returned by the query.";
+    t[73] = "Nikakav rezultat nije vraćen od strane upita.";
+    t[76] = "Cannot tell if path is open or closed: {0}.";
+    t[77] = "Nije moguće utvrditi dali je putanja otvorena ili zatvorena: {0}.";
+    t[80] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[81] = "Dvofazni commit ne može biti izdat dok je XA grana aktivna na ovoj konekciji. commit xid={0}, currentXid={1}, state={2}";
+    t[82] = "Returning autogenerated keys by column index is not supported.";
+    t[83] = "Vraćanje autogenerisanih ključeva po kloloni nije podržano.";
+    t[88] = "The fastpath function {0} is unknown.";
+    t[89] = "Fastpath funkcija {0} je nepoznata.";
+    t[92] = "Cannot retrieve the id of a named savepoint.";
+    t[93] = "Nije moguće primiti id imena tačke snimanja.";
+    t[100] = "The column index is out of range: {0}, number of columns: {1}.";
+    t[101] = "Indeks kolone van osega: {0}, broj kolona: {1}.";
+    t[104] = "Protocol error.  Session setup failed.";
+    t[105] = "Greška protokola.  Zakazivanje sesije propalo.";
+    t[108] = "Suspend/resume not implemented";
+    t[109] = "Obustavljanje/nastavljanje nije implementirano";
+    t[110] = "Unable to find server array type for provided name {0}.";
+    t[111] = "Neuspešno nalaženje liste servera za zadato ime {0}.";
+    t[112] = "free() was called on this LOB previously";
+    t[113] = "free() je pozvan na ovom LOB-u prethodno";
+    t[114] = "Unknown XML Result class: {0}";
+    t[115] = "nepoznata XML klasa rezultata: {0}";
+    t[116] = "Unable to translate data into the desired encoding.";
+    t[117] = "Nije moguće prevesti podatke u odabrani encoding format.";
+    t[126] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[127] = "Prepare pozvan pre end(). prepare xid={0}, state={1}";
+    t[130] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
+    t[131] = "ResultSet nije moguće ažurirati. Upit koji je generisao ovaj razultat mora selektoati jedino tabelu,i mora selektovati sve primrne ključeve iz te tabele. Pogledajte API specifikaciju za JDBC 2.1, sekciju 5.6 za više detalja.";
+    t[136] = "Unable to create SAXResult for SQLXML.";
+    t[137] = "Nije moguće kreirati SAXResult za SQLXML.";
+    t[138] = "Cannot retrieve the name of an unnamed savepoint.";
+    t[139] = "Nije moguće izvaditi ime tačke snimanja koja nema ime.";
+    t[142] = "The array index is out of range: {0}, number of elements: {1}.";
+    t[143] = "Indeks niza je van opsega: {0}, broj elemenata: {1}.";
+    t[144] = "Cannot cast an instance of {0} to type {1}";
+    t[145] = "Nije moguće kastovati instancu {0} u tip {1}";
+    t[152] = "Error during recover. flag={0}";
+    t[153] = "Greška prilikom oporavljanja. flag={0}";
+    t[158] = "Bad value for type {0} : {1}";
+    t[159] = "Pogrešna vrednost za tip {0} : {1}";
+    t[160] = "An unexpected result was returned by a query.";
+    t[161] = "Nepredviđen rezultat je vraćen od strane upita.";
+    t[162] = "Expected command status BEGIN, got {0}.";
+    t[163] = "Očekivan status komande je BEGIN, a dobijeno je {0}.";
+    t[166] = "Unable to load the class {0} responsible for the datatype {1}";
+    t[167] = "Nije moguće učitati kalsu {0} odgovornu za tip podataka {1}";
+    t[168] = "Cannot change transaction isolation level in the middle of a transaction.";
+    t[169] = "Nije moguće izmeniti nivo izolacije transakcije u sred izvršavanja transakcije.";
+    t[174] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
+    t[175] = "Serverov standard_conforming_strings parametar javlja {0}. JDBC drajver ocekuje on ili off.";
+    t[178] = "Invalid stream length {0}.";
+    t[179] = "Nevažeća dužina toka {0}.";
+    t[180] = "Unable to decode xml data.";
+    t[181] = "Neuspešno dekodiranje XML podataka.";
+    t[184] = "Results cannot be retrieved from a CallableStatement before it is executed.";
+    t[185] = "Razultat nemože da se primi iz CallableStatement pre nego što se on izvrši.";
+    t[186] = "This statement has been closed.";
+    t[187] = "Statement je zatvoren.";
+    t[188] = "Error loading default settings from driverconfig.properties";
+    t[189] = "Greška u čitanju standardnih podešavanja iz driverconfig.properties";
+    t[190] = "Invalid flags {0}";
+    t[191] = "Nevažeće zastavice {0}";
+    t[196] = "Failed to convert binary xml data to encoding: {0}.";
+    t[197] = "Neuspešno konvertovanje binarnih XML podataka u kodnu stranu: {0}.";
+    t[204] = "Conversion to type {0} failed: {1}.";
+    t[205] = "Konverzija u tip {0} propala: {1}.";
+    t[206] = "DataSource has been closed.";
+    t[207] = "DataSource je zatvoren.";
+    t[208] = "Connection has been closed.";
+    t[209] = "Konekcija je već zatvorena.";
+    t[210] = "A CallableStatement was executed with nothing returned.";
+    t[211] = "CallableStatement je izvršen ali ništa nije vrećeno kao rezultat.";
+    t[212] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
+    t[213] = "Sigurnosna podešavanja su sprečila konekciju. Verovatno je potrebno da dozvolite konekciju klasi java.net.SocketPermission na bazu na serveru.";
+    t[218] = "Unexpected command status: {0}.";
+    t[219] = "Neočekivan komandni status: {0}.";
+    t[220] = "Cannot reference a savepoint after it has been released.";
+    t[221] = "Nije moguće referenciranje tačke snimanja nakon njenog oslobađanja.";
+    t[222] = "Error opening transaction. start xid={0}";
+    t[223] = "Greška prilikom otvaranja transakcije. start xid={0}";
+    t[228] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
+    t[229] = "Tip autentifikacije {0} nije podržan. Proverite dali imate podešen pg_hba.conf fajl koji uključuje klijentovu IP adresu ili podmrežu, i da ta mreža koristi šemu autentifikacije koja je podržana od strane ovog drajvera.";
+    t[242] = "Internal Position: {0}";
+    t[243] = "Interna pozicija: {0}";
+    t[244] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
+    t[245] = "Izraz ne deklariše izlazni parametar. Koristite '{' ?= poziv ... '}' za deklarisanje.";
+    t[256] = "Location: File: {0}, Routine: {1}, Line: {2}";
+    t[257] = "Lokacija: Fajl: {0}, Rutina: {1}, Linija: {2}";
+    t[258] = "Unknown type {0}.";
+    t[259] = "Nepoznat tip {0}.";
+    t[260] = "Ran out of memory retrieving query results.";
+    t[261] = "Nestalo je memorije prilikom preuzimanja rezultata upita.";
+    t[264] = "Zero bytes may not occur in string parameters.";
+    t[265] = "Nula bajtovji se ne smeju pojavljivati u string parametrima.";
+    t[266] = "{0} function takes four and only four argument.";
+    t[267] = "Funkcija {0} prima četiri i samo četiri parametra.";
+    t[268] = "Truncation of large objects is only implemented in 8.3 and later servers.";
+    t[269] = "Skraćivanje velikih objekata je implementirano samo u 8.3 i novijim serverima.";
+    t[270] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
+    t[271] = "Pronađeni su nevažeći karakter podaci. Uzrok je najverovatnije to što pohranjeni podaci sadrže karaktere koji su nevažeći u setu karaktera sa kojima je baza kreirana.  Npr. Čuvanje 8bit podataka u SQL_ASCII bazi podataka.";
+    t[278] = "This PooledConnection has already been closed.";
+    t[279] = "PooledConnection je već zatvoren.";
+    t[280] = "Cannot call cancelRowUpdates() when on the insert row.";
+    t[281] = "Nije moguće pozvati cancelRowUpdates() prilikom ubacivanja redova.";
+    t[284] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[285] = "Nije moguće poništiti pripremljenu transakciju dok je lokalna transakcija u toku na ovoj konekciji. Prvo izvršite commit ili rollback lokalne transakcije. rollback xid={0}, transactionState={1}";
+    t[288] = "PostgreSQL LOBs can only index to: {0}";
+    t[289] = "PostgreSQL LOB mogu jedino da označavaju: {0}";
+    t[290] = "Provided InputStream failed.";
+    t[291] = "Pribaljeni InputStream zakazao.";
+    t[298] = "Unexpected error writing large object to database.";
+    t[299] = "Neočekivana greška prilikom upisa velikog objekta u bazu podataka.";
+    t[300] = "Fetch size must be a value greater than or equal to 0.";
+    t[301] = "Doneta veličina mora biti vrednost veća ili jednaka 0.";
+    t[310] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[311] = "Preplitanje transakcija nije implementirano. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[312] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[313] = "Transakcija je već pripremljena na ovoj konekciji. prepare xid={0}, preparedXid={1}";
+    t[314] = "The parameter index is out of range: {0}, number of parameters: {1}.";
+    t[315] = "Index parametra je van opsega: {0}, broj parametara je: {1}.";
+    t[316] = "Not on the insert row.";
+    t[317] = "Nije mod ubacivanja redova.";
+    t[320] = "{0} function takes two and only two arguments.";
+    t[321] = "Funkcija {0} prima dva i samo dva parametra.";
+    t[322] = "Cannot change transaction read-only property in the middle of a transaction.";
+    t[323] = "Nije moguće izmeniti read-only osobinu transakcije u sred izvršavanja transakcije.";
+    t[330] = "Unsupported value for stringtype parameter: {0}";
+    t[331] = "Vrednost za parametar tipa string nije podržana: {0}";
+    t[332] = "Unknown Response Type {0}.";
+    t[333] = "Nepoznat tip odziva {0}.";
+    t[334] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
+    t[335] = "SQLXML objekat nije inicijalizovan tako da nije moguće preuzimati podatke iz njega.";
+    t[336] = "An error occurred while setting up the SSL connection.";
+    t[337] = "Greška se dogodila prilikom podešavanja SSL konekcije.";
+    t[344] = "Invalid UUID data.";
+    t[345] = "Nevažeća UUID podatak.";
+    t[354] = "Zero bytes may not occur in identifiers.";
+    t[355] = "Nula bajtovji se ne smeju pojavljivati u identifikatorima.";
+    t[360] = "A connection could not be made using the requested protocol {0}.";
+    t[361] = "Konekciju nije moguće kreirati uz pomoć protokola {0}.";
+    t[362] = "You must specify at least one column value to insert a row.";
+    t[363] = "Morate specificirati barem jednu vrednost za kolonu da bi ste ubacili red.";
+    t[364] = "Method {0} is not yet implemented.";
+    t[365] = "Metod {0} nije još impelemtiran.";
+    t[368] = "Unknown ResultSet holdability setting: {0}.";
+    t[369] = "Nepoznata ResultSet podešavanja za mogućnost držanja (holdability): {0}.";
+    t[374] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[375] = "Nije moguće izvršiti dvofazni commit pripremljene transakcije dok je lokalna transakcija u toku na ovoj konekciji. Prvo izvršite commit ili rollback lokalne transakcije. commit xid={0}, transactionState={1}";
+    t[376] = "wasNull cannot be call before fetching a result.";
+    t[377] = "wasNull nemože biti pozvan pre zahvatanja rezultata.";
+    t[378] = "Returning autogenerated keys is not supported.";
+    t[379] = "Vraćanje autogenerisanih ključeva nije podržano.";
+    t[380] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
+    t[381] = "Nije moguće ažurirati ResultSet zato što je ili početak ili kraj rezultata.";
+    t[384] = "Unable to bind parameter values for statement.";
+    t[385] = "Nije moguće naći vrednost vezivnog parametra za izjavu (statement).";
+    t[390] = "Unable to create StAXResult for SQLXML";
+    t[391] = "Nije moguće kreirati StAXResult za SQLXML";
+    t[394] = "Unknown XML Source class: {0}";
+    t[395] = "Nepoznata XML ulazna klasa: {0}";
+    t[396] = "LOB positioning offsets start at 1.";
+    t[397] = "LOB pozicija ofset počinje kod 1.";
+    t[402] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
+    t[403] = "SQLXML objekat je već inicijalizovan, tako da ga nije moguće dodatno menjati.";
+    t[404] = "Transaction isolation level {0} not supported.";
+    t[405] = "Nivo izolacije transakcije {0} nije podržan.";
+    t[406] = "{0} function takes two or three arguments.";
+    t[407] = "Funkcija {0} prima dva ili tri parametra.";
+    t[412] = "Conversion of interval failed";
+    t[413] = "Konverzija intervala propala.";
+    t[414] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
+    t[415] = "CallableStatement funkcija je izvršena dok je izlazni parametar {0} tipa {1} a tip {2} je registrovan kao izlazni parametar.";
+    t[416] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[417] = "Metode za kontrolu transakcije setAutoCommit, commit, rollback i setSavepoint nisu dozvoljene dok je XA transakcija aktivna.";
+    t[422] = "Statement has been closed.";
+    t[423] = "Statemen je već zatvoren.";
+    t[424] = "Fastpath call {0} - No result was returned and we expected an integer.";
+    t[425] = "Fastpath poziv {0} - Nikakav rezultat nije vraćen a očekivan je integer.";
+    t[428] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
+    t[429] = "Nešto neobično se dogodilo i drajver je zakazao. Molim prijavite ovaj izuzetak.";
+    t[430] = "This ResultSet is closed.";
+    t[431] = "ResultSet je zatvoren.";
+    t[432] = "Unknown Types value.";
+    t[433] = "Nepoznata vrednost za Types.";
+    t[434] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
+    t[435] = "Operacija zahteva skrolabilan ResultSet,ali ovaj ResultSet je FORWARD_ONLY.";
+    t[450] = "No function outputs were registered.";
+    t[451] = "Nije registrovan nikakv izlaz iz funkcije.";
+    t[454] = "Conversion of money failed.";
+    t[455] = "Konverzija novca (money) propala.";
+    t[460] = "xid must not be null";
+    t[461] = "xid ne sme biti null";
+    t[462] = "The SSLSocketFactory class provided {0} could not be instantiated.";
+    t[463] = "SSLSocketFactory klasa koju pruža {0} se nemože instancirati.";
+    t[466] = "Large Objects may not be used in auto-commit mode.";
+    t[467] = "Veliki objekti (Large Object) se nemogu koristiti u auto-commit modu.";
+    t[468] = "{0} function takes one and only one argument.";
+    t[469] = "Funkcija {0} prima jedan i samo jedan parametar.";
+    t[470] = "Unable to convert DOMResult SQLXML data to a string.";
+    t[471] = "Nije moguće konvertovati DOMResult SQLXML podatke u string.";
+    t[474] = "Cannot call updateRow() when on the insert row.";
+    t[475] = "Nije moguće pozvati updateRow() prilikom ubacivanja redova.";
+    t[478] = "Can''t use relative move methods while on the insert row.";
+    t[479] = "Ne može se koristiti metod relativnog pomeranja prilikom ubacivanja redova.";
+    t[482] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
+    t[483] = "ResultSets sa osobinom CONCUR_READ_ONLY ne moeže biti ažuriran.";
+    t[484] = "Unable to find name datatype in the system catalogs.";
+    t[485] = "Nije moguće pronaći ime tipa podatka u sistemskom katalogu.";
+    t[486] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
+    t[487] = "Dužina vezivne poruke {0} prevelika.  Ovo je možda rezultat veoma velike ili pogrešne dužine specifikacije za InputStream parametre.";
+    t[488] = "Can''t use query methods that take a query string on a PreparedStatement.";
+    t[489] = "Ne možete da koristite metode za upit koji uzimaju string iz upita u PreparedStatement-u.";
+    t[490] = "A CallableStatement was executed with an invalid number of parameters";
+    t[491] = "CallableStatement je izvršen sa nevažećim brojem parametara";
+    t[500] = "Cannot call deleteRow() when on the insert row.";
+    t[501] = "Nije moguće pozvati deleteRow() prilikom ubacivanja redova.";
+    t[502] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
+    t[503] = "CallableStatement jedeklarisan ali nije bilo poziva registerOutParameter (1, <neki_tip>).";
+    t[508] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
+    t[509] = "Trenutna pozicija pre početka ResultSet-a.  Ne možete pozvati deleteRow() na toj poziciji.";
+    t[510] = "{0} function takes three and only three arguments.";
+    t[511] = "Funkcija {0} prima tri i samo tri parametra.";
+    t[518] = "Query timeout must be a value greater than or equals to 0.";
+    t[519] = "Tajm-aut mora biti vrednost veća ili jednaka 0.";
+    t[520] = "There are no rows in this ResultSet.";
+    t[521] = "U ResultSet-u nema redova.";
+    t[524] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[525] = "Heuristički commit/rollback nije podržan. forget xid={0}";
+    t[528] = "Provided Reader failed.";
+    t[529] = "Pribavljeni čitač (Reader) zakazao.";
+    t[530] = "Internal Query: {0}";
+    t[531] = "Interni upit: {0}";
+    t[532] = "The JVM claims not to support the {0} encoding.";
+    t[533] = "JVM tvrdi da ne podržava {0} encoding.";
+    t[544] = "The column name {0} was not found in this ResultSet.";
+    t[545] = "Ime kolone {0} nije pronadjeno u ResultSet.";
+    t[546] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[547] = "Greška prilikom poništavanja transakcije. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[560] = "No value specified for parameter {0}.";
+    t[561] = "Nije zadata vrednost za parametar {0}.";
+    t[562] = "Can''t refresh the insert row.";
+    t[563] = "Nije moguće osvežiti ubačeni red.";
+    t[566] = "The array index is out of range: {0}";
+    t[567] = "Indeks niza je van opsega: {0}";
+    t[568] = "ClientInfo property not supported.";
+    t[569] = "ClientInfo property nije podržan.";
+    t[570] = "Malformed function or procedure escape syntax at offset {0}.";
+    t[571] = "Pogrešna sintaksa u funkciji ili proceduri na poziciji {0}.";
+    t[578] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[579] = "Greška prilikom potvrđivanja pripremljene transakcije. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[586] = "This SQLXML object has already been freed.";
+    t[587] = "Ovaj SQLXML je već obrisan.";
+    t[590] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[591] = "One-phase commit pozvan za xid {0}, ali konekcija je pripremljena sa xid {1}";
+    t[602] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[603] = "One-phase commit sa nepoznatim xid. commit xid={0}, currentXid={1}";
+    t[606] = "Position: {0}";
+    t[607] = "Pozicija: {0}";
+    t[612] = "Detail: {0}";
+    t[613] = "Detalji: {0}";
+    t[616] = "The JVM claims not to support the encoding: {0}";
+    t[617] = "JVM tvrdi da ne podržava encoding: {0}";
+    t[618] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
+    t[619] = "Nije moguće odrediti vrednost za MaxIndexKezs zbog nedostatka podataka u sistemskom katalogu.";
+    t[620] = "Invalid fetch direction constant: {0}.";
+    t[621] = "Pogrešna konstanta za direkciju donošenja: {0}.";
+    t[622] = "Multiple ResultSets were returned by the query.";
+    t[623] = "Višestruki ResultSet-vi su vraćeni od strane upita.";
+    t[626] = "The server does not support SSL.";
+    t[627] = "Server ne podržava SSL.";
+    t[630] = "Server SQLState: {0}";
+    t[631] = "SQLState servera: {0}";
+    t[632] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
+    t[633] = "Prevremen završetak ulaznog toka podataka,očekivano {0} bajtova, a pročitano samo {1}.";
+    t[636] = "Expected an EOF from server, got: {0}";
+    t[637] = "Očekivan EOF od servera, a dobijeno: {0}";
+    t[638] = "Hint: {0}";
+    t[639] = "Nagovest: {0}";
+    t[640] = "Interrupted while attempting to connect.";
+    t[641] = "Prekinut pokušaj konektovanja.";
+    t[642] = "The connection attempt failed.";
+    t[643] = "Pokušaj konektovanja propao.";
+    t[644] = "Too many update results were returned.";
+    t[645] = "Previše rezultata za ažuriranje je vraćeno.";
+    t[650] = "Cannot convert an instance of {0} to type {1}";
+    t[651] = "Nije moguće konvertovati instancu {0} u tip {1}";
+    t[652] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[653] = "Prepare mora biti pozvan na konekciji koja je pokrenula granu. Preplitanje transakcija nije podržano. prepare xid={0}, currentXid={1}";
+    t[660] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[661] = "One-phase commit mora biti izdat na konekciji koja je pokrenula granu. commit xid={0}";
+    t[664] = "The maximum field size must be a value greater than or equal to 0.";
+    t[665] = "Maksimalna vrednost veličine polja mora biti vrednost veća ili jednaka 0.";
+    t[666] = "Interval {0} not yet implemented";
+    t[667] = "Interval {0} još nije implementiran.";
+    t[668] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
+    t[669] = "Parametar tipa {0} je registrovan,ali poziv za get{1} (sql tip={2}) je izvršen.";
+    t[672] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[673] = "Trenutna konekcija nema pridružen xid. prepare xid={0}";
+    t[674] = "Cannot establish a savepoint in auto-commit mode.";
+    t[675] = "U auto-commit modu nije moguće podešavanje tački snimanja.";
+    t[676] = "A result was returned when none was expected.";
+    t[677] = "Rezultat vraćen ali nikakav rezultat nije očekivan.";
     table = t;
   }
   public java.lang.Object handleGetObject (java.lang.String msgid) throws java.util.MissingResourceException {
     int hash_val = msgid.hashCode() & 0x7fffffff;
-    int idx = (hash_val % 397) << 1;
+    int idx = (hash_val % 343) << 1;
     {
       java.lang.Object found = table[idx];
       if (found == null)
@@ -336,11 +354,11 @@ public java.lang.Object handleGetObject (java.lang.String msgid) throws java.uti
       if (msgid.equals(found))
         return table[idx + 1];
     }
-    int incr = ((hash_val % 395) + 1) << 1;
+    int incr = ((hash_val % 341) + 1) << 1;
     for (;;) {
       idx += incr;
-      if (idx >= 794)
-        idx -= 794;
+      if (idx >= 686)
+        idx -= 686;
       java.lang.Object found = table[idx];
       if (found == null)
         return null;
@@ -352,13 +370,13 @@ public java.util.Enumeration getKeys () {
     return
       new java.util.Enumeration() {
         private int idx = 0;
-        { while (idx < 794 && table[idx] == null) idx += 2; }
+        { while (idx < 686 && table[idx] == null) idx += 2; }
         public boolean hasMoreElements () {
-          return (idx < 794);
+          return (idx < 686);
         }
         public java.lang.Object nextElement () {
           java.lang.Object key = table[idx];
-          do idx += 2; while (idx < 794 && table[idx] == null);
+          do idx += 2; while (idx < 686 && table[idx] == null);
           return key;
         }
       };
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_tr.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_tr.java
index ebf37d3b46..3ca491e1c1 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_tr.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_tr.java
@@ -3,334 +3,350 @@
 public class messages_tr extends java.util.ResourceBundle {
   private static final java.lang.String[] table;
   static {
-    java.lang.String[] t = new java.lang.String[794];
+    java.lang.String[] t = new java.lang.String[686];
     t[0] = "";
     t[1] = "Project-Id-Version: jdbc-tr\nReport-Msgid-Bugs-To: \nPO-Revision-Date: 2009-05-31 21:47+0200\nLast-Translator: Devrim GÜNDÜZ <[email protected]>\nLanguage-Team: Turkish <[email protected]>\nLanguage: tr\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit\nX-Generator: KBabel 1.3.1\nX-Poedit-Language: Turkish\nX-Poedit-Country: TURKEY\n";
-    t[2] = "Not implemented: 2nd phase commit must be issued using an idle connection. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[3] = "Desteklenmiyor: 2nd phase commit, atıl bir bağlantıdan başlatılmalıdır. commit xid={0}, currentXid={1}, state={2}, transactionState={3}";
-    t[4] = "DataSource has been closed.";
-    t[5] = "DataSource kapatıldı.";
-    t[8] = "Invalid flags {0}";
-    t[9] = "Geçersiz seçenekler {0}";
-    t[18] = "Where: {0}";
-    t[19] = "Where: {0}";
-    t[26] = "The connection attempt failed.";
-    t[27] = "Bağlantı denemesi başarısız oldu.";
-    t[28] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
-    t[29] = "Şu an ResultSet sonucundan sonra konumlandı. deleteRow() burada çağırabilirsiniz.";
-    t[32] = "Can''t use query methods that take a query string on a PreparedStatement.";
-    t[33] = "PreparedStatement ile sorgu satırı alan sorgu yöntemleri kullanılamaz.";
-    t[36] = "Multiple ResultSets were returned by the query.";
-    t[37] = "Sorgu tarafından birden fazla ResultSet getirildi.";
-    t[50] = "Too many update results were returned.";
-    t[51] = "Çok fazla güncelleme sonucu döndürüldü.";
-    t[66] = "The column name {0} was not found in this ResultSet.";
-    t[67] = "Bu ResultSet içinde {0} sütun adı bulunamadı.";
-    t[70] = "Fastpath call {0} - No result was returned and we expected an integer.";
-    t[71] = "Fastpath call {0} - Integer beklenirken hiçbir sonuç getirilmedi.";
-    t[74] = "Protocol error.  Session setup failed.";
-    t[75] = "Protokol hatası.  Oturum kurulumu başarısız oldu.";
-    t[76] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
-    t[77] = "CallableStatement bildirildi ancak registerOutParameter(1, < bir tip>) tanıtımı yapılmadı.";
-    t[78] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
-    t[79] = "Eş zamanlama CONCUR_READ_ONLY olan ResultSet''ler değiştirilemez";
-    t[90] = "LOB positioning offsets start at 1.";
-    t[91] = "LOB bağlangıç adresi 1Den başlıyor";
-    t[92] = "Internal Position: {0}";
-    t[93] = "Internal Position: {0}";
-    t[96] = "free() was called on this LOB previously";
-    t[97] = "Bu LOB'da free() daha önce çağırıldı";
-    t[100] = "Cannot change transaction read-only property in the middle of a transaction.";
-    t[101] = "Transaction ortasında geçerli transactionun read-only özellği değiştirilemez.";
-    t[102] = "The JVM claims not to support the {0} encoding.";
-    t[103] = "JVM, {0} dil kodlamasını desteklememektedir.";
-    t[108] = "{0} function doesn''t take any argument.";
-    t[109] = "{0} fonksiyonu parametre almaz.";
-    t[112] = "xid must not be null";
-    t[113] = "xid null olamaz";
-    t[122] = "The server does not support SSL.";
-    t[123] = "Sunucu SSL desteklemiyor.";
-    t[124] = "Custom type maps are not supported.";
-    t[125] = "Özel tip eşleştirmeleri desteklenmiyor.";
-    t[148] = "Hint: {0}";
-    t[149] = "İpucu: {0}";
-    t[152] = "Unable to find name datatype in the system catalogs.";
-    t[153] = "Sistem kataloglarında name veri tipi bulunamıyor.";
-    t[156] = "Unsupported Types value: {0}";
-    t[157] = "Geçersiz Types değeri: {0}";
-    t[158] = "Unknown type {0}.";
-    t[159] = "Bilinmeyen tip {0}.";
-    t[166] = "{0} function takes two and only two arguments.";
-    t[167] = "{0} fonksiyonunu sadece iki parametre alabilir.";
-    t[186] = "PostgreSQL LOBs can only index to: {0}";
-    t[187] = "PostgreSQL LOB göstergeleri sadece {0} referans edebilir";
-    t[194] = "Method {0} is not yet implemented.";
-    t[195] = "{0} yöntemi henüz kodlanmadı.";
-    t[198] = "Error loading default settings from driverconfig.properties";
-    t[199] = "driverconfig.properties dosyasından varsayılan ayarları yükleme hatası";
-    t[200] = "Results cannot be retrieved from a CallableStatement before it is executed.";
-    t[201] = "CallableStatement çalıştırılmadan sonuçlar ondan alınamaz.";
-    t[202] = "Large Objects may not be used in auto-commit mode.";
-    t[203] = "Auto-commit biçimde large object kullanılamaz.";
-    t[208] = "Expected command status BEGIN, got {0}.";
-    t[209] = "BEGIN komut durumunu beklenirken {0} alındı.";
-    t[218] = "Invalid fetch direction constant: {0}.";
-    t[219] = "Getirme yönü değişmezi geçersiz: {0}.";
-    t[222] = "{0} function takes three and only three arguments.";
-    t[223] = "{0} fonksiyonunu sadece üç parametre alabilir.";
-    t[226] = "This SQLXML object has already been freed.";
-    t[227] = "Bu SQLXML nesnesi zaten boşaltılmış.";
-    t[228] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
-    t[229] = "ResultSet, sonuçların ilk kaydından önce veya son kaydından sonra olduğu için güncelleme yapılamamaktadır.";
-    t[232] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
-    t[233] = "{0} tipinde parametre tanıtıldı, ancak {1} (sqltype={2}) tipinde geri getirmek için çağrı yapıldı.";
-    t[234] = "Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
-    t[235] = "Hazırlanmış transaction rollback hatası. rollback xid={0}, preparedXid={1}, currentXid={2}";
-    t[236] = "Cannot establish a savepoint in auto-commit mode.";
-    t[237] = "Auto-commit biçimde savepoint oluşturulamıyor.";
-    t[240] = "Fetch size must be a value greater than or equal to 0.";
-    t[241] = "Fetch boyutu sıfır veya daha büyük bir değer olmalıdır.";
-    t[242] = "Cannot retrieve the id of a named savepoint.";
-    t[243] = "Adlandırılmış savepointin id değerine erişilemiyor.";
-    t[244] = "The column index is out of range: {0}, number of columns: {1}.";
-    t[245] = "Sütun gçstergesi kapsam dışıdır: {0}, sütun sayısı: {1}.";
-    t[250] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
-    t[251] = "Sıradışı bir durum sürücünün hata vermesine sebep oldu. Lütfen bu durumu geliştiricilere bildirin.";
-    t[260] = "Cannot cast an instance of {0} to type {1}";
-    t[261] = "{0} tipi {1} tipine dönüştürülemiyor";
-    t[264] = "Unknown Types value.";
-    t[265] = "Geçersiz Types değeri.";
-    t[266] = "Invalid stream length {0}.";
-    t[267] = "Geçersiz akım uzunluğu {0}.";
-    t[272] = "Cannot retrieve the name of an unnamed savepoint.";
-    t[273] = "Adı verilmemiş savepointin id değerine erişilemiyor.";
-    t[274] = "Unable to translate data into the desired encoding.";
-    t[275] = "Veri, istenilen dil kodlamasına çevrilemiyor.";
-    t[276] = "Expected an EOF from server, got: {0}";
-    t[277] = "Sunucudan EOF beklendi; ama {0} alındı.";
-    t[278] = "Bad value for type {0} : {1}";
-    t[279] = "{0} veri tipi için geçersiz değer : {1}";
-    t[286] = "Unable to create SAXResult for SQLXML.";
-    t[287] = "SQLXML için SAXResult yaratılamadı.";
-    t[292] = "Error during recover";
-    t[293] = "Kurtarma sırasında hata";
-    t[294] = "tried to call end without corresponding start call. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[295] = "start çağırımı olmadan end çağırılmıştır. state={0}, start xid={1}, currentXid={2}, preparedXid={3}";
-    t[296] = "Truncation of large objects is only implemented in 8.3 and later servers.";
-    t[297] = "Large objectlerin temizlenmesi 8.3 ve sonraki sürümlerde kodlanmıştır.";
-    t[298] = "This PooledConnection has already been closed.";
-    t[299] = "Geçerli PooledConnection zaten önceden kapatıldı.";
-    t[302] = "ClientInfo property not supported.";
-    t[303] = "Clientinfo property'si desteklenememktedir.";
-    t[312] = "A connection could not be made using the requested protocol {0}.";
-    t[313] = "İstenilen protokol ile bağlantı kurulamadı {0}";
-    t[318] = "Unknown XML Result class: {0}";
-    t[319] = "Bilinmeyen XML Sonuç sınıfı: {0}.";
-    t[322] = "There are no rows in this ResultSet.";
-    t[323] = "Bu ResultSet içinde kayıt bulunamadı.";
-    t[324] = "Unexpected command status: {0}.";
-    t[325] = "Beklenmeyen komut durumu: {0}.";
-    t[330] = "Heuristic commit/rollback not supported. forget xid={0}";
-    t[331] = "Heuristic commit/rollback desteklenmiyor. forget xid={0}";
-    t[334] = "Not on the insert row.";
-    t[335] = "Insert kaydı değil.";
-    t[336] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
-    t[337] = "Bu SQLXML nesnesi daha önceden ilklendirilmiştir; o yüzden daha fazla müdahale edilemez.";
-    t[344] = "Server SQLState: {0}";
-    t[345] = "Sunucu SQLState: {0}";
-    t[348] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
-    t[349] = "İstemcinin client_standard_conforming_strings parametresi {0} olarak raporlandı. JDBC sürücüsü on ya da off olarak bekliyordu.";
-    t[364] = "The array index is out of range: {0}, number of elements: {1}.";
-    t[365] = "Dizin göstergisi kapsam dışıdır: {0}, öğe sayısı: {1}.";
-    t[374] = "suspend/resume not implemented";
-    t[375] = "suspend/resume desteklenmiyor";
-    t[378] = "Not implemented: one-phase commit must be issued using the same connection that was used to start it";
-    t[379] = "Desteklenmiyor: one-phase commit, işlevinde başlatan ve bitiren bağlantı aynı olmalıdır";
-    t[380] = "Error during one-phase commit. commit xid={0}";
-    t[381] = "One-phase commit sırasında hata. commit xid={0}";
-    t[398] = "Cannot call cancelRowUpdates() when on the insert row.";
-    t[399] = "Insert edilmiş kaydın üzerindeyken cancelRowUpdates() çağırılamaz.";
-    t[400] = "Cannot reference a savepoint after it has been released.";
-    t[401] = "Bırakıldıktan sonra savepoint referans edilemez.";
-    t[402] = "You must specify at least one column value to insert a row.";
-    t[403] = "Bir satır eklemek için en az bir sütun değerini belirtmelisiniz.";
-    t[404] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
-    t[405] = "Sistem kataloğu olmadığından MaxIndexKeys değerini tespit edilememektedir.";
-    t[410] = "commit called before end. commit xid={0}, state={1}";
-    t[411] = "commit, sondan önce çağırıldı. commit xid={0}, state={1}";
-    t[412] = "The JVM claims not to support the encoding: {0}";
-    t[413] = "JVM, {0} dil kodlamasını desteklememektedir.";
-    t[414] = "{0} function takes two or three arguments.";
-    t[415] = "{0} fonksiyonu yalnız iki veya üç argüman alabilir.";
-    t[428] = "Unable to convert DOMResult SQLXML data to a string.";
-    t[429] = "DOMResult SQLXML verisini diziye dönüştürülemedi.";
-    t[434] = "Unable to decode xml data.";
-    t[435] = "XML verisinin kodu çözülemedi.";
-    t[440] = "Unexpected error writing large object to database.";
-    t[441] = "Large object veritabanına yazılırken beklenmeyan hata.";
-    t[442] = "Zero bytes may not occur in string parameters.";
-    t[443] = "String parametrelerinde sıfır bayt olamaz.";
-    t[444] = "A result was returned when none was expected.";
-    t[445] = "Hiçbir sonuç kebklenimezken sonuç getirildi.";
-    t[448] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
-    t[449] = "Giriş akımında beklenmeyen dosya sonu, {0} bayt beklenirken sadece {1} bayt alındı.";
-    t[450] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
-    t[451] = "ResultSet değiştirilemez. Bu sonucu üreten sorgu tek bir tablodan sorgulamalı ve tablonun tüm primary key alanları belirtmelidir. Daha fazla bilgi için bk. JDBC 2.1 API Specification, section 5.6.";
-    t[454] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
-    t[455] = "Bind mesaj uzunluğu ({0}) fazla uzun. Bu durum InputStream yalnış uzunluk belirtimlerden kaynaklanabilir.";
-    t[460] = "Statement has been closed.";
-    t[461] = "Komut kapatıldı.";
-    t[462] = "No value specified for parameter {0}.";
-    t[463] = "{0} parametresi için hiç bir değer belirtilmedi.";
-    t[468] = "The array index is out of range: {0}";
-    t[469] = "Dizi göstergesi kapsam dışıdır: {0}";
-    t[474] = "Unable to bind parameter values for statement.";
-    t[475] = "Komut için parametre değerlei bağlanamadı.";
-    t[476] = "Can''t refresh the insert row.";
-    t[477] = "Inser satırı yenilenemiyor.";
-    t[480] = "The maximum field size must be a value greater than or equal to 0.";
-    t[481] = "En büyük alan boyutu sıfır ya da sıfırdan büyük bir değer olmalı.";
-    t[482] = "Cannot change transaction isolation level in the middle of a transaction.";
-    t[483] = "Transaction ortasında geçerli transactionun transaction isolation level özellği değiştirilemez.";
-    t[498] = "Provided InputStream failed.";
-    t[499] = "Sağlanmış InputStream başarısız.";
-    t[500] = "The parameter index is out of range: {0}, number of parameters: {1}.";
-    t[501] = "Dizin göstergisi kapsam dışıdır: {0}, öğe sayısı: {1}.";
-    t[502] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
-    t[503] = "Sunucunun DateStyle parametresi {0} olarak değiştirildi. JDBC sürücüsü doğru işlemesi için DateStyle tanımının ISO işle başlamasını gerekir.";
-    t[508] = "Connection attempt timed out.";
-    t[509] = "Bağlantı denemesi zaman aşımına uğradı.";
-    t[512] = "Internal Query: {0}";
-    t[513] = "Internal Query: {0}";
-    t[514] = "Error preparing transaction. prepare xid={0}";
-    t[515] = "Transaction hazırlama hatası. prepare xid={0}";
-    t[518] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
-    t[519] = "{0} yetkinlendirme tipi desteklenmemektedir. pg_hba.conf dosyanızı istemcinin IP adresini ya da subnetini içerecek şekilde ayarlayıp ayarlamadığınızı ve sürücü tarafından desteklenen yetkilendirme yöntemlerinden birisini kullanıp kullanmadığını kontrol ediniz.";
-    t[526] = "Interval {0} not yet implemented";
-    t[527] = "{0} aralığı henüz kodlanmadı.";
-    t[532] = "Conversion of interval failed";
-    t[533] = "Interval dönüştürmesi başarısız.";
-    t[540] = "Query timeout must be a value greater than or equals to 0.";
-    t[541] = "Sorgu zaman aşımı değer sıfır veya sıfırdan büyük bir sayı olmalıdır.";
-    t[542] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
-    t[543] = "PooledConnection kapatıldığı için veya aynı PooledConnection için yeni bir bağlantı açıldığı için geçerli bağlantı otomatik kapatıldı.";
-    t[544] = "ResultSet not positioned properly, perhaps you need to call next.";
-    t[545] = "ResultSet doğru konumlanmamıştır, next işlemi çağırmanız gerekir.";
-    t[546] = "Prepare called before end. prepare xid={0}, state={1}";
-    t[547] = "Sondan önce prepare çağırılmış. prepare xid={0}, state={1}";
-    t[548] = "Invalid UUID data.";
-    t[549] = "Geçersiz UUID verisi.";
-    t[550] = "This statement has been closed.";
-    t[551] = "Bu komut kapatıldı.";
-    t[552] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
-    t[553] = "{0}''nin örneği ile kullanılacak SQL tip bulunamadı. Kullanılacak tip belirtmek için kesin Types değerleri ile setObject() kullanın.";
-    t[554] = "Cannot call updateRow() when on the insert row.";
-    t[555] = "Insert  kaydı üzerinde updateRow() çağırılamaz.";
-    t[562] = "Detail: {0}";
-    t[563] = "Ayrıntı: {0}";
-    t[566] = "Cannot call deleteRow() when on the insert row.";
-    t[567] = "Insert  kaydı üzerinde deleteRow() çağırılamaz.";
-    t[568] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
-    t[569] = "Şu an ResultSet başlangcıından önce konumlandı. deleteRow() burada çağırabilirsiniz.";
-    t[576] = "Unknown XML Source class: {0}";
-    t[577] = "Bilinmeyen XML Kaynak Sınıfı: {0}";
-    t[578] = "Unknown Response Type {0}.";
-    t[579] = "Bilinmeyen yanıt tipi {0}";
-    t[582] = "Unsupported value for stringtype parameter: {0}";
-    t[583] = "strinftype parametresi için destekleneyen değer: {0}";
-    t[584] = "Conversion to type {0} failed: {1}.";
-    t[585] = "{0} veri tipine dönüştürme hatası: {1}.";
-    t[586] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
-    t[587] = "Bu SQLXML nesnesi ilklendirilmemiş; o yüzden ondan veri alamazsınız.";
-    t[600] = "Unable to load the class {0} responsible for the datatype {1}";
-    t[601] = "{1} veri tipinden sorumlu {0} sınıfı yüklenemedi";
-    t[604] = "The fastpath function {0} is unknown.";
-    t[605] = "{0} fastpath fonksiyonu bilinmemektedir.";
-    t[608] = "Malformed function or procedure escape syntax at offset {0}.";
-    t[609] = "{0} adresinde fonksiyon veya yordamda kaçış söz dizimi geçersiz.";
-    t[612] = "Provided Reader failed.";
-    t[613] = "Sağlanmış InputStream başarısız.";
-    t[616] = "Failed to create object for: {0}.";
-    t[617] = "{0} için nesne oluşturma hatası.";
-    t[620] = "Conversion of money failed.";
-    t[621] = "Money dönüştürmesi başarısız.";
-    t[622] = "Connection has been closed.";
-    t[623] = "Bağlantı kapatıldı.";
-    t[626] = "An unexpected result was returned by a query.";
-    t[627] = "Sorgu beklenmeyen bir sonuç döndürdü.";
-    t[644] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[645] = "Transaction interleaving desteklenmiyor. xid={0}, currentXid={1}, state={2}, flags={3}";
-    t[646] = "An error occurred while setting up the SSL connection.";
-    t[647] = "SSL bağlantısı ayarlanırken bir hata oluştu.";
-    t[656] = "Not implemented: Prepare must be issued using the same connection that started the transaction. currentXid={0}, prepare xid={1}";
-    t[657] = "Desteklenmiyor: Prepare, transaction başlatran bağlantı tarafından çağırmalıdır. currentXid={0}, prepare xid={1}";
-    t[658] = "The SSLSocketFactory class provided {0} could not be instantiated.";
-    t[659] = "SSLSocketFactory {0} ile örneklenmedi.";
-    t[662] = "Failed to convert binary xml data to encoding: {0}.";
-    t[663] = "xml verisinin şu dil kodlamasına çevirilmesi başarısız oldu: {0}";
-    t[670] = "Position: {0}";
-    t[671] = "Position: {0}";
-    t[676] = "Location: File: {0}, Routine: {1}, Line: {2}";
-    t[677] = "Yer: Dosya: {0}, Yordam: {1}, Satır: {2}";
-    t[684] = "Cannot tell if path is open or closed: {0}.";
-    t[685] = "Pathın açık mı kapalı olduğunu tespit edilemiyor: {0}.";
-    t[690] = "Unable to create StAXResult for SQLXML";
-    t[691] = "SQLXML için StAXResult yaratılamadı";
-    t[700] = "Cannot convert an instance of {0} to type {1}";
-    t[701] = "{0} instance, {1} tipine dönüştürülemiyor";
-    t[710] = "{0} function takes four and only four argument.";
-    t[711] = "{0} fonksiyonunu yalnız dört parametre alabilir.";
-    t[718] = "Interrupted while attempting to connect.";
-    t[719] = "Bağlanırken kesildi.";
-    t[722] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
-    t[723] = "Güvenlik politikanız bağlantının kurulmasını engelledi. java.net.SocketPermission'a veritabanına ve de bağlanacağı porta bağlantı izni vermelisiniz.";
-    t[734] = "No function outputs were registered.";
-    t[735] = "Hiçbir fonksiyon çıktısı kaydedilmedi.";
-    t[736] = "{0} function takes one and only one argument.";
-    t[737] = "{0} fonksiyonunu yalnız tek bir parametre alabilir.";
-    t[744] = "This ResultSet is closed.";
-    t[745] = "ResultSet kapalıdır.";
-    t[746] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
-    t[747] = "Geçersiz karakterler bulunmuştur. Bunun sebebi, verilerde veritabanın desteklediği dil kodlamadaki karakterlerin dışında bir karaktere rastlamasıdır. Bunun en yaygın örneği 8 bitlik veriyi SQL_ASCII veritabanında saklamasıdır.";
-    t[752] = "Error disabling autocommit";
-    t[753] = "autocommit'i devre dışı bırakma sırasında hata";
-    t[754] = "Ran out of memory retrieving query results.";
-    t[755] = "Sorgu sonuçları alınırken bellek yetersiz.";
-    t[756] = "Returning autogenerated keys is not supported.";
-    t[757] = "Otomatik üretilen değerlerin getirilmesi desteklenememktedir.";
-    t[760] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
-    t[761] = "İşlem, kaydırılabilen ResultSet gerektirir, ancak bu ResultSet FORWARD_ONLYdir.";
-    t[762] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
-    t[763] = "CallableStatement çalıştırıldı, ancak {2} tipi kaydedilmesine rağmen döndürme parametresi {0} ve tipi {1} idi.";
-    t[764] = "Unable to find server array type for provided name {0}.";
-    t[765] = "Belirtilen {0} adı için sunucu array tipi bulunamadı.";
-    t[768] = "Unknown ResultSet holdability setting: {0}.";
-    t[769] = "ResultSet tutabilme ayarı geçersiz: {0}.";
-    t[772] = "Transaction isolation level {0} not supported.";
-    t[773] = "Transaction isolation level {0} desteklenmiyor.";
-    t[774] = "Zero bytes may not occur in identifiers.";
-    t[775] = "Belirteçlerde sıfır bayt olamaz.";
-    t[776] = "No results were returned by the query.";
-    t[777] = "Sorgudan hiç bir sonuç dönmedi.";
-    t[778] = "A CallableStatement was executed with nothing returned.";
-    t[779] = "CallableStatement çalıştırma sonucunda veri getirilmedi.";
-    t[780] = "wasNull cannot be call before fetching a result.";
-    t[781] = "wasNull sonuç çekmeden önce çağırılamaz.";
-    t[784] = "Returning autogenerated keys by column index is not supported.";
-    t[785] = "Kolonların indexlenmesi ile otomatik olarak oluşturulan anahtarların döndürülmesi desteklenmiyor.";
-    t[786] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
-    t[787] = "Bu komut OUT parametresi bildirmemektedir.  Bildirmek için '{' ?= call ... '}' kullanın.";
-    t[788] = "Can''t use relative move methods while on the insert row.";
-    t[789] = "Insert kaydı üzerinde relative move method kullanılamaz.";
-    t[790] = "A CallableStatement was executed with an invalid number of parameters";
-    t[791] = "CallableStatement geçersiz sayıda parametre ile çalıştırıldı.";
-    t[792] = "Connection is busy with another transaction";
-    t[793] = "Bağlantı, başka bir transaction tarafından meşgul ediliyor";
+    t[2] = "Connection has been closed automatically because a new connection was opened for the same PooledConnection or the PooledConnection has been closed.";
+    t[3] = "PooledConnection kapatıldığı için veya aynı PooledConnection için yeni bir bağlantı açıldığı için geçerli bağlantı otomatik kapatıldı.";
+    t[10] = "Failed to create object for: {0}.";
+    t[11] = "{0} için nesne oluşturma hatası.";
+    t[16] = "Unsupported Types value: {0}";
+    t[17] = "Geçersiz Types değeri: {0}";
+    t[20] = "{0} function doesn''t take any argument.";
+    t[21] = "{0} fonksiyonu parametre almaz.";
+    t[24] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
+    t[25] = "Şu an ResultSet sonucundan sonra konumlandı. deleteRow() burada çağırabilirsiniz.";
+    t[28] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[29] = "Eşleşen bir start() çağrısı olmadan end() çağrıldı. end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[30] = "Connection attempt timed out.";
+    t[31] = "Bağlantı denemesi zaman aşımına uğradı.";
+    t[32] = "Can''t infer the SQL type to use for an instance of {0}. Use setObject() with an explicit Types value to specify the type to use.";
+    t[33] = "{0}''nin örneği ile kullanılacak SQL tip bulunamadı. Kullanılacak tip belirtmek için kesin Types değerleri ile setObject() kullanın.";
+    t[36] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[37] = "Bağlantı zaten etkin bir XA dalı ile ilişkilendirilmiş. Yenisini başlatmadan önce mevcut dalı sonlandırın. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[38] = "Where: {0}";
+    t[39] = "Where: {0}";
+    t[42] = "ResultSet not positioned properly, perhaps you need to call next.";
+    t[43] = "ResultSet doğru konumlanmamıştır, next işlemi çağırmanız gerekir.";
+    t[44] = "Error during one-phase commit. commit xid={0}";
+    t[45] = "One-phase commit sırasında hata. commit xid={0}";
+    t[48] = "The server''s DateStyle parameter was changed to {0}. The JDBC driver requires DateStyle to begin with ISO for correct operation.";
+    t[49] = "Sunucunun DateStyle parametresi {0} olarak değiştirildi. JDBC sürücüsü doğru işlemesi için DateStyle tanımının ISO işle başlamasını gerekir.";
+    t[58] = "Custom type maps are not supported.";
+    t[59] = "Özel tip eşleştirmeleri desteklenmiyor.";
+    t[60] = "Error preparing transaction. prepare xid={0}";
+    t[61] = "Transaction hazırlama hatası. prepare xid={0}";
+    t[62] = "commit() called before end(). commit xid={0}, state={1}";
+    t[63] = "end() çağrılmadan önce commit() çağrıldı. commit xid={0}, state={1}";
+    t[72] = "No results were returned by the query.";
+    t[73] = "Sorgudan hiç bir sonuç dönmedi.";
+    t[76] = "Cannot tell if path is open or closed: {0}.";
+    t[77] = "Pathın açık mı kapalı olduğunu tespit edilemiyor: {0}.";
+    t[80] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[81] = "Bu bağlantıda bir XA dalı etkinken 2. faz commit çağrılamaz. commit xid={0}, currentXid={1}, state={2}";
+    t[82] = "Returning autogenerated keys by column index is not supported.";
+    t[83] = "Kolonların indexlenmesi ile otomatik olarak oluşturulan anahtarların döndürülmesi desteklenmiyor.";
+    t[88] = "The fastpath function {0} is unknown.";
+    t[89] = "{0} fastpath fonksiyonu bilinmemektedir.";
+    t[92] = "Cannot retrieve the id of a named savepoint.";
+    t[93] = "Adlandırılmış savepointin id değerine erişilemiyor.";
+    t[100] = "The column index is out of range: {0}, number of columns: {1}.";
+    t[101] = "Sütun gçstergesi kapsam dışıdır: {0}, sütun sayısı: {1}.";
+    t[104] = "Protocol error.  Session setup failed.";
+    t[105] = "Protokol hatası.  Oturum kurulumu başarısız oldu.";
+    t[108] = "Suspend/resume not implemented";
+    t[109] = "Suspend/resume desteklenmiyor";
+    t[110] = "Unable to find server array type for provided name {0}.";
+    t[111] = "Belirtilen {0} adı için sunucu array tipi bulunamadı.";
+    t[112] = "free() was called on this LOB previously";
+    t[113] = "Bu LOB'da free() daha önce çağırıldı";
+    t[114] = "Unknown XML Result class: {0}";
+    t[115] = "Bilinmeyen XML Sonuç sınıfı: {0}.";
+    t[116] = "Unable to translate data into the desired encoding.";
+    t[117] = "Veri, istenilen dil kodlamasına çevrilemiyor.";
+    t[126] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[127] = "end() çağrılmadan önce prepare çağrıldı. prepare xid={0}, state={1}";
+    t[130] = "ResultSet is not updateable.  The query that generated this result set must select only one table, and must select all primary keys from that table. See the JDBC 2.1 API Specification, section 5.6 for more details.";
+    t[131] = "ResultSet değiştirilemez. Bu sonucu üreten sorgu tek bir tablodan sorgulamalı ve tablonun tüm primary key alanları belirtmelidir. Daha fazla bilgi için bk. JDBC 2.1 API Specification, section 5.6.";
+    t[136] = "Unable to create SAXResult for SQLXML.";
+    t[137] = "SQLXML için SAXResult yaratılamadı.";
+    t[138] = "Cannot retrieve the name of an unnamed savepoint.";
+    t[139] = "Adı verilmemiş savepointin id değerine erişilemiyor.";
+    t[142] = "The array index is out of range: {0}, number of elements: {1}.";
+    t[143] = "Dizin göstergisi kapsam dışıdır: {0}, öğe sayısı: {1}.";
+    t[144] = "Cannot cast an instance of {0} to type {1}";
+    t[145] = "{0} tipi {1} tipine dönüştürülemiyor";
+    t[152] = "Error during recover. flag={0}";
+    t[153] = "Kurtarma sırasında hata. flag={0}";
+    t[158] = "Bad value for type {0} : {1}";
+    t[159] = "{0} veri tipi için geçersiz değer : {1}";
+    t[160] = "An unexpected result was returned by a query.";
+    t[161] = "Sorgu beklenmeyen bir sonuç döndürdü.";
+    t[162] = "Expected command status BEGIN, got {0}.";
+    t[163] = "BEGIN komut durumunu beklenirken {0} alındı.";
+    t[166] = "Unable to load the class {0} responsible for the datatype {1}";
+    t[167] = "{1} veri tipinden sorumlu {0} sınıfı yüklenemedi";
+    t[168] = "Cannot change transaction isolation level in the middle of a transaction.";
+    t[169] = "Transaction ortasında geçerli transactionun transaction isolation level özellği değiştirilemez.";
+    t[174] = "The server''s standard_conforming_strings parameter was reported as {0}. The JDBC driver expected on or off.";
+    t[175] = "İstemcinin client_standard_conforming_strings parametresi {0} olarak raporlandı. JDBC sürücüsü on ya da off olarak bekliyordu.";
+    t[178] = "Invalid stream length {0}.";
+    t[179] = "Geçersiz akım uzunluğu {0}.";
+    t[180] = "Unable to decode xml data.";
+    t[181] = "XML verisinin kodu çözülemedi.";
+    t[184] = "Results cannot be retrieved from a CallableStatement before it is executed.";
+    t[185] = "CallableStatement çalıştırılmadan sonuçlar ondan alınamaz.";
+    t[186] = "This statement has been closed.";
+    t[187] = "Bu komut kapatıldı.";
+    t[188] = "Error loading default settings from driverconfig.properties";
+    t[189] = "driverconfig.properties dosyasından varsayılan ayarları yükleme hatası";
+    t[190] = "Invalid flags {0}";
+    t[191] = "Geçersiz seçenekler {0}";
+    t[196] = "Failed to convert binary xml data to encoding: {0}.";
+    t[197] = "xml verisinin şu dil kodlamasına çevirilmesi başarısız oldu: {0}";
+    t[204] = "Conversion to type {0} failed: {1}.";
+    t[205] = "{0} veri tipine dönüştürme hatası: {1}.";
+    t[206] = "DataSource has been closed.";
+    t[207] = "DataSource kapatıldı.";
+    t[208] = "Connection has been closed.";
+    t[209] = "Bağlantı kapatıldı.";
+    t[210] = "A CallableStatement was executed with nothing returned.";
+    t[211] = "CallableStatement çalıştırma sonucunda veri getirilmedi.";
+    t[212] = "Your security policy has prevented the connection from being attempted.  You probably need to grant the connect java.net.SocketPermission to the database server host and port that you wish to connect to.";
+    t[213] = "Güvenlik politikanız bağlantının kurulmasını engelledi. java.net.SocketPermission'a veritabanına ve de bağlanacağı porta bağlantı izni vermelisiniz.";
+    t[218] = "Unexpected command status: {0}.";
+    t[219] = "Beklenmeyen komut durumu: {0}.";
+    t[220] = "Cannot reference a savepoint after it has been released.";
+    t[221] = "Bırakıldıktan sonra savepoint referans edilemez.";
+    t[222] = "Error opening transaction. start xid={0}";
+    t[223] = "Transaction açma hatası. start xid={0}";
+    t[228] = "The authentication type {0} is not supported. Check that you have configured the pg_hba.conf file to include the client''s IP address or subnet, and that it is using an authentication scheme supported by the driver.";
+    t[229] = "{0} yetkinlendirme tipi desteklenmemektedir. pg_hba.conf dosyanızı istemcinin IP adresini ya da subnetini içerecek şekilde ayarlayıp ayarlamadığınızı ve sürücü tarafından desteklenen yetkilendirme yöntemlerinden birisini kullanıp kullanmadığını kontrol ediniz.";
+    t[242] = "Internal Position: {0}";
+    t[243] = "Internal Position: {0}";
+    t[244] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
+    t[245] = "Bu komut OUT parametresi bildirmemektedir.  Bildirmek için '{' ?= call ... '}' kullanın.";
+    t[256] = "Location: File: {0}, Routine: {1}, Line: {2}";
+    t[257] = "Yer: Dosya: {0}, Yordam: {1}, Satır: {2}";
+    t[258] = "Unknown type {0}.";
+    t[259] = "Bilinmeyen tip {0}.";
+    t[260] = "Ran out of memory retrieving query results.";
+    t[261] = "Sorgu sonuçları alınırken bellek yetersiz.";
+    t[264] = "Zero bytes may not occur in string parameters.";
+    t[265] = "String parametrelerinde sıfır bayt olamaz.";
+    t[266] = "{0} function takes four and only four argument.";
+    t[267] = "{0} fonksiyonunu yalnız dört parametre alabilir.";
+    t[268] = "Truncation of large objects is only implemented in 8.3 and later servers.";
+    t[269] = "Large objectlerin temizlenmesi 8.3 ve sonraki sürümlerde kodlanmıştır.";
+    t[270] = "Invalid character data was found.  This is most likely caused by stored data containing characters that are invalid for the character set the database was created in.  The most common example of this is storing 8bit data in a SQL_ASCII database.";
+    t[271] = "Geçersiz karakterler bulunmuştur. Bunun sebebi, verilerde veritabanın desteklediği dil kodlamadaki karakterlerin dışında bir karaktere rastlamasıdır. Bunun en yaygın örneği 8 bitlik veriyi SQL_ASCII veritabanında saklamasıdır.";
+    t[278] = "This PooledConnection has already been closed.";
+    t[279] = "Geçerli PooledConnection zaten önceden kapatıldı.";
+    t[280] = "Cannot call cancelRowUpdates() when on the insert row.";
+    t[281] = "Insert edilmiş kaydın üzerindeyken cancelRowUpdates() çağırılamaz.";
+    t[284] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[285] = "Bu bağlantıda bir yerel transaction sürerken hazırlanmış transaction rollback edilemez. Önce yerel transaction''ı commit veya rollback edin. rollback xid={0}, transactionState={1}";
+    t[288] = "PostgreSQL LOBs can only index to: {0}";
+    t[289] = "PostgreSQL LOB göstergeleri sadece {0} referans edebilir";
+    t[290] = "Provided InputStream failed.";
+    t[291] = "Sağlanmış InputStream başarısız.";
+    t[298] = "Unexpected error writing large object to database.";
+    t[299] = "Large object veritabanına yazılırken beklenmeyan hata.";
+    t[300] = "Fetch size must be a value greater than or equal to 0.";
+    t[301] = "Fetch boyutu sıfır veya daha büyük bir değer olmalıdır.";
+    t[310] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[311] = "Transaction interleaving desteklenmiyor. xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[312] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[313] = "Transaction bu bağlantıda zaten hazırlanmış. prepare xid={0}, preparedXid={1}";
+    t[314] = "The parameter index is out of range: {0}, number of parameters: {1}.";
+    t[315] = "Dizin göstergisi kapsam dışıdır: {0}, öğe sayısı: {1}.";
+    t[316] = "Not on the insert row.";
+    t[317] = "Insert kaydı değil.";
+    t[320] = "{0} function takes two and only two arguments.";
+    t[321] = "{0} fonksiyonunu sadece iki parametre alabilir.";
+    t[322] = "Cannot change transaction read-only property in the middle of a transaction.";
+    t[323] = "Transaction ortasında geçerli transactionun read-only özellği değiştirilemez.";
+    t[330] = "Unsupported value for stringtype parameter: {0}";
+    t[331] = "strinftype parametresi için destekleneyen değer: {0}";
+    t[332] = "Unknown Response Type {0}.";
+    t[333] = "Bilinmeyen yanıt tipi {0}";
+    t[334] = "This SQLXML object has not been initialized, so you cannot retrieve data from it.";
+    t[335] = "Bu SQLXML nesnesi ilklendirilmemiş; o yüzden ondan veri alamazsınız.";
+    t[336] = "An error occurred while setting up the SSL connection.";
+    t[337] = "SSL bağlantısı ayarlanırken bir hata oluştu.";
+    t[344] = "Invalid UUID data.";
+    t[345] = "Geçersiz UUID verisi.";
+    t[354] = "Zero bytes may not occur in identifiers.";
+    t[355] = "Belirteçlerde sıfır bayt olamaz.";
+    t[360] = "A connection could not be made using the requested protocol {0}.";
+    t[361] = "İstenilen protokol ile bağlantı kurulamadı {0}";
+    t[362] = "You must specify at least one column value to insert a row.";
+    t[363] = "Bir satır eklemek için en az bir sütun değerini belirtmelisiniz.";
+    t[364] = "Method {0} is not yet implemented.";
+    t[365] = "{0} yöntemi henüz kodlanmadı.";
+    t[368] = "Unknown ResultSet holdability setting: {0}.";
+    t[369] = "ResultSet tutabilme ayarı geçersiz: {0}.";
+    t[374] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[375] = "Bu bağlantıda bir yerel transaction sürerken hazırlanmış transaction 2. faz commit edilemez. Önce yerel transaction''ı commit veya rollback edin. commit xid={0}, transactionState={1}";
+    t[376] = "wasNull cannot be call before fetching a result.";
+    t[377] = "wasNull sonuç çekmeden önce çağırılamaz.";
+    t[378] = "Returning autogenerated keys is not supported.";
+    t[379] = "Otomatik üretilen değerlerin getirilmesi desteklenememktedir.";
+    t[380] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
+    t[381] = "ResultSet, sonuçların ilk kaydından önce veya son kaydından sonra olduğu için güncelleme yapılamamaktadır.";
+    t[384] = "Unable to bind parameter values for statement.";
+    t[385] = "Komut için parametre değerlei bağlanamadı.";
+    t[390] = "Unable to create StAXResult for SQLXML";
+    t[391] = "SQLXML için StAXResult yaratılamadı";
+    t[394] = "Unknown XML Source class: {0}";
+    t[395] = "Bilinmeyen XML Kaynak Sınıfı: {0}";
+    t[396] = "LOB positioning offsets start at 1.";
+    t[397] = "LOB bağlangıç adresi 1Den başlıyor";
+    t[402] = "This SQLXML object has already been initialized, so you cannot manipulate it further.";
+    t[403] = "Bu SQLXML nesnesi daha önceden ilklendirilmiştir; o yüzden daha fazla müdahale edilemez.";
+    t[404] = "Transaction isolation level {0} not supported.";
+    t[405] = "Transaction isolation level {0} desteklenmiyor.";
+    t[406] = "{0} function takes two or three arguments.";
+    t[407] = "{0} fonksiyonu yalnız iki veya üç argüman alabilir.";
+    t[412] = "Conversion of interval failed";
+    t[413] = "Interval dönüştürmesi başarısız.";
+    t[414] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
+    t[415] = "CallableStatement çalıştırıldı, ancak {2} tipi kaydedilmesine rağmen döndürme parametresi {0} ve tipi {1} idi.";
+    t[416] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[417] = "XA transaction etkinken setAutoCommit, commit, rollback ve setSavepoint transaction kontrol metotlarına izin verilmez.";
+    t[422] = "Statement has been closed.";
+    t[423] = "Komut kapatıldı.";
+    t[424] = "Fastpath call {0} - No result was returned and we expected an integer.";
+    t[425] = "Fastpath call {0} - Integer beklenirken hiçbir sonuç getirilmedi.";
+    t[428] = "Something unusual has occurred to cause the driver to fail. Please report this exception.";
+    t[429] = "Sıradışı bir durum sürücünün hata vermesine sebep oldu. Lütfen bu durumu geliştiricilere bildirin.";
+    t[430] = "This ResultSet is closed.";
+    t[431] = "ResultSet kapalıdır.";
+    t[432] = "Unknown Types value.";
+    t[433] = "Geçersiz Types değeri.";
+    t[434] = "Operation requires a scrollable ResultSet, but this ResultSet is FORWARD_ONLY.";
+    t[435] = "İşlem, kaydırılabilen ResultSet gerektirir, ancak bu ResultSet FORWARD_ONLYdir.";
+    t[450] = "No function outputs were registered.";
+    t[451] = "Hiçbir fonksiyon çıktısı kaydedilmedi.";
+    t[454] = "Conversion of money failed.";
+    t[455] = "Money dönüştürmesi başarısız.";
+    t[460] = "xid must not be null";
+    t[461] = "xid null olamaz";
+    t[462] = "The SSLSocketFactory class provided {0} could not be instantiated.";
+    t[463] = "SSLSocketFactory {0} ile örneklenmedi.";
+    t[466] = "Large Objects may not be used in auto-commit mode.";
+    t[467] = "Auto-commit biçimde large object kullanılamaz.";
+    t[468] = "{0} function takes one and only one argument.";
+    t[469] = "{0} fonksiyonunu yalnız tek bir parametre alabilir.";
+    t[470] = "Unable to convert DOMResult SQLXML data to a string.";
+    t[471] = "DOMResult SQLXML verisini diziye dönüştürülemedi.";
+    t[474] = "Cannot call updateRow() when on the insert row.";
+    t[475] = "Insert  kaydı üzerinde updateRow() çağırılamaz.";
+    t[478] = "Can''t use relative move methods while on the insert row.";
+    t[479] = "Insert kaydı üzerinde relative move method kullanılamaz.";
+    t[482] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
+    t[483] = "Eş zamanlama CONCUR_READ_ONLY olan ResultSet''ler değiştirilemez";
+    t[484] = "Unable to find name datatype in the system catalogs.";
+    t[485] = "Sistem kataloglarında name veri tipi bulunamıyor.";
+    t[486] = "Bind message length {0} too long.  This can be caused by very large or incorrect length specifications on InputStream parameters.";
+    t[487] = "Bind mesaj uzunluğu ({0}) fazla uzun. Bu durum InputStream yalnış uzunluk belirtimlerden kaynaklanabilir.";
+    t[488] = "Can''t use query methods that take a query string on a PreparedStatement.";
+    t[489] = "PreparedStatement ile sorgu satırı alan sorgu yöntemleri kullanılamaz.";
+    t[490] = "A CallableStatement was executed with an invalid number of parameters";
+    t[491] = "CallableStatement geçersiz sayıda parametre ile çalıştırıldı.";
+    t[500] = "Cannot call deleteRow() when on the insert row.";
+    t[501] = "Insert  kaydı üzerinde deleteRow() çağırılamaz.";
+    t[502] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
+    t[503] = "CallableStatement bildirildi ancak registerOutParameter(1, < bir tip>) tanıtımı yapılmadı.";
+    t[508] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
+    t[509] = "Şu an ResultSet başlangcıından önce konumlandı. deleteRow() burada çağırabilirsiniz.";
+    t[510] = "{0} function takes three and only three arguments.";
+    t[511] = "{0} fonksiyonunu sadece üç parametre alabilir.";
+    t[518] = "Query timeout must be a value greater than or equals to 0.";
+    t[519] = "Sorgu zaman aşımı değer sıfır veya sıfırdan büyük bir sayı olmalıdır.";
+    t[520] = "There are no rows in this ResultSet.";
+    t[521] = "Bu ResultSet içinde kayıt bulunamadı.";
+    t[524] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[525] = "Heuristic commit/rollback desteklenmiyor. forget xid={0}";
+    t[528] = "Provided Reader failed.";
+    t[529] = "Sağlanmış InputStream başarısız.";
+    t[530] = "Internal Query: {0}";
+    t[531] = "Internal Query: {0}";
+    t[532] = "The JVM claims not to support the {0} encoding.";
+    t[533] = "JVM, {0} dil kodlamasını desteklememektedir.";
+    t[544] = "The column name {0} was not found in this ResultSet.";
+    t[545] = "Bu ResultSet içinde {0} sütun adı bulunamadı.";
+    t[546] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[547] = "Transaction rollback hatası. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[560] = "No value specified for parameter {0}.";
+    t[561] = "{0} parametresi için hiç bir değer belirtilmedi.";
+    t[562] = "Can''t refresh the insert row.";
+    t[563] = "Inser satırı yenilenemiyor.";
+    t[566] = "The array index is out of range: {0}";
+    t[567] = "Dizi göstergesi kapsam dışıdır: {0}";
+    t[568] = "ClientInfo property not supported.";
+    t[569] = "Clientinfo property'si desteklenememktedir.";
+    t[570] = "Malformed function or procedure escape syntax at offset {0}.";
+    t[571] = "{0} adresinde fonksiyon veya yordamda kaçış söz dizimi geçersiz.";
+    t[578] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[579] = "Hazırlanmış transaction commit hatası. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[586] = "This SQLXML object has already been freed.";
+    t[587] = "Bu SQLXML nesnesi zaten boşaltılmış.";
+    t[590] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[591] = "One-phase commit xid {0} için çağrıldı, ancak bağlantı xid {1} ile hazırlanmıştı";
+    t[602] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[603] = "Bilinmeyen xid ile one-phase commit. commit xid={0}, currentXid={1}";
+    t[606] = "Position: {0}";
+    t[607] = "Position: {0}";
+    t[612] = "Detail: {0}";
+    t[613] = "Ayrıntı: {0}";
+    t[616] = "The JVM claims not to support the encoding: {0}";
+    t[617] = "JVM, {0} dil kodlamasını desteklememektedir.";
+    t[618] = "Unable to determine a value for MaxIndexKeys due to missing system catalog data.";
+    t[619] = "Sistem kataloğu olmadığından MaxIndexKeys değerini tespit edilememektedir.";
+    t[620] = "Invalid fetch direction constant: {0}.";
+    t[621] = "Getirme yönü değişmezi geçersiz: {0}.";
+    t[622] = "Multiple ResultSets were returned by the query.";
+    t[623] = "Sorgu tarafından birden fazla ResultSet getirildi.";
+    t[626] = "The server does not support SSL.";
+    t[627] = "Sunucu SSL desteklemiyor.";
+    t[630] = "Server SQLState: {0}";
+    t[631] = "Sunucu SQLState: {0}";
+    t[632] = "Premature end of input stream, expected {0} bytes, but only read {1}.";
+    t[633] = "Giriş akımında beklenmeyen dosya sonu, {0} bayt beklenirken sadece {1} bayt alındı.";
+    t[636] = "Expected an EOF from server, got: {0}";
+    t[637] = "Sunucudan EOF beklendi; ama {0} alındı.";
+    t[638] = "Hint: {0}";
+    t[639] = "İpucu: {0}";
+    t[640] = "Interrupted while attempting to connect.";
+    t[641] = "Bağlanırken kesildi.";
+    t[642] = "The connection attempt failed.";
+    t[643] = "Bağlantı denemesi başarısız oldu.";
+    t[644] = "Too many update results were returned.";
+    t[645] = "Çok fazla güncelleme sonucu döndürüldü.";
+    t[650] = "Cannot convert an instance of {0} to type {1}";
+    t[651] = "{0} instance, {1} tipine dönüştürülemiyor";
+    t[652] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[653] = "Prepare, dalı başlatan bağlantı üzerinde çağrılmalıdır. Transaction interleaving desteklenmiyor. prepare xid={0}, currentXid={1}";
+    t[660] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[661] = "One-phase commit, dalı başlatan bağlantı üzerinde çağrılmalıdır. commit xid={0}";
+    t[664] = "The maximum field size must be a value greater than or equal to 0.";
+    t[665] = "En büyük alan boyutu sıfır ya da sıfırdan büyük bir değer olmalı.";
+    t[666] = "Interval {0} not yet implemented";
+    t[667] = "{0} aralığı henüz kodlanmadı.";
+    t[668] = "Parameter of type {0} was registered, but call to get{1} (sqltype={2}) was made.";
+    t[669] = "{0} tipinde parametre tanıtıldı, ancak {1} (sqltype={2}) tipinde geri getirmek için çağrı yapıldı.";
+    t[672] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[673] = "Mevcut bağlantının ilişkilendirilmiş bir xid''i yok. prepare xid={0}";
+    t[674] = "Cannot establish a savepoint in auto-commit mode.";
+    t[675] = "Auto-commit biçimde savepoint oluşturulamıyor.";
+    t[676] = "A result was returned when none was expected.";
+    t[677] = "Hiçbir sonuç kebklenimezken sonuç getirildi.";
     table = t;
   }
   public java.lang.Object handleGetObject (java.lang.String msgid) throws java.util.MissingResourceException {
     int hash_val = msgid.hashCode() & 0x7fffffff;
-    int idx = (hash_val % 397) << 1;
+    int idx = (hash_val % 343) << 1;
     {
       java.lang.Object found = table[idx];
       if (found == null)
@@ -338,11 +354,11 @@ public java.lang.Object handleGetObject (java.lang.String msgid) throws java.uti
       if (msgid.equals(found))
         return table[idx + 1];
     }
-    int incr = ((hash_val % 395) + 1) << 1;
+    int incr = ((hash_val % 341) + 1) << 1;
     for (;;) {
       idx += incr;
-      if (idx >= 794)
-        idx -= 794;
+      if (idx >= 686)
+        idx -= 686;
       java.lang.Object found = table[idx];
       if (found == null)
         return null;
@@ -354,13 +370,13 @@ public java.util.Enumeration getKeys () {
     return
       new java.util.Enumeration() {
         private int idx = 0;
-        { while (idx < 794 && table[idx] == null) idx += 2; }
+        { while (idx < 686 && table[idx] == null) idx += 2; }
         public boolean hasMoreElements () {
-          return (idx < 794);
+          return (idx < 686);
         }
         public java.lang.Object nextElement () {
           java.lang.Object key = table[idx];
-          do idx += 2; while (idx < 794 && table[idx] == null);
+          do idx += 2; while (idx < 686 && table[idx] == null);
           return key;
         }
       };
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_zh_CN.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_zh_CN.java
index fff86dd266..30d1e0f2d8 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_zh_CN.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_zh_CN.java
@@ -22,26 +22,32 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[37] = "大型对象的截断(Truncation)仅被实作执行在 8.3 和后来的服务器。";
     t[40] = "Cannot retrieve the name of an unnamed savepoint.";
     t[41] = "无法取得未命名储存点(Savepoint)的名称。";
+    t[42] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[43] = "调用 end() 时未匹配到对应的 start()。end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
     t[46] = "An error occurred while setting up the SSL connection.";
     t[47] = "进行 SSL 连线时发生错误。";
-    t[50] = "suspend/resume not implemented";
-    t[51] = "暂停(suspend)/再继续(resume)尚未被实作。";
     t[60] = "{0} function takes one and only one argument.";
     t[61] = "{0} 函式取得一个且仅有一个引数。";
     t[62] = "Conversion to type {0} failed: {1}.";
     t[63] = "转换类型 {0} 失败:{1}。";
+    t[64] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[65] = "在此连接上有本地事务正在进行时,无法对已预备的事务执行二阶段提交。请先提交或回滚该本地事务。commit xid={0}, transactionState={1}";
     t[66] = "Conversion of money failed.";
     t[67] = "money 转换失败。";
     t[70] = "A result was returned when none was expected.";
     t[71] = "传回预期之外的结果。";
     t[80] = "This PooledConnection has already been closed.";
     t[81] = "这个 PooledConnection 已经被关闭。";
+    t[82] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[83] = "在此连接上有 XA 分支处于活动状态时,无法发起二阶段提交。commit xid={0}, currentXid={1}, state={2}";
     t[84] = "Multiple ResultSets were returned by the query.";
     t[85] = "查询传回多个 ResultSet。";
     t[90] = "Not on the insert row.";
     t[91] = "不在新增的数据列上。";
     t[94] = "An unexpected result was returned by a query.";
     t[95] = "传回非预期的查询结果。";
+    t[96] = "Error during recover. flag={0}";
+    t[97] = "recover 过程中出错。flag={0}";
     t[102] = "Internal Query: {0}";
     t[103] = "内部查询:{0}";
     t[106] = "The array index is out of range: {0}";
@@ -54,10 +60,16 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[117] = "不明的原因导致驱动程序造成失败,请回报这个例外。";
     t[120] = "The array index is out of range: {0}, number of elements: {1}.";
     t[121] = "阵列索引超过许可范围:{0},元素数量:{1}。";
+    t[134] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[135] = "对未知 xid 的一阶段提交。commit xid={0}, currentXid={1}";
     t[138] = "Invalid flags {0}";
     t[139] = "无效的旗标 flags {0}";
     t[146] = "Unexpected error writing large object to database.";
     t[147] = "将大型对象(large object)写入数据库时发生不明错误。";
+    t[148] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[149] = "在 XA 事务处于活动状态时,不允许调用 setAutoCommit、commit、rollback 和 setSavepoint 等事务控制方法。";
+    t[150] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[151] = "此连接上的事务已被预备。prepare xid={0}, preparedXid={1}";
     t[162] = "Query timeout must be a value greater than or equals to 0.";
     t[163] = "查询逾时等候时间必须大于或等于 0。";
     t[170] = "Unknown type {0}.";
@@ -70,12 +82,16 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[181] = "尝试连线已失败。";
     t[182] = "No value specified for parameter {0}.";
     t[183] = "未设定参数值 {0} 的内容。";
+    t[188] = "Suspend/resume not implemented";
+    t[189] = "尚未实现 Suspend/resume。";
     t[190] = "Provided Reader failed.";
     t[191] = "提供的 Reader 已失败。";
     t[194] = "Unsupported value for stringtype parameter: {0}";
     t[195] = "字符类型参数值未被支持:{0}";
     t[198] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
     t[199] = "已经宣告 CallableStatement 函式,但是尚未呼叫 registerOutParameter (1, <some_type>) 。";
+    t[202] = "Error opening transaction. start xid={0}";
+    t[203] = "开启事务时出错。start xid={0}";
     t[204] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
     t[205] = "不能在 ResultSet 的第一笔数据之前呼叫 deleteRow()。";
     t[214] = "The maximum field size must be a value greater than or equal to 0.";
@@ -88,6 +104,8 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[227] = "隔绝 {0} 尚未被实作。";
     t[238] = "Fastpath call {0} - No result was returned and we expected an integer.";
     t[239] = "Fastpath 呼叫 {0} - 没有传回值,且应该传回一个整数。";
+    t[240] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[241] = "在 end() 之前调用了 Prepare。prepare xid={0}, state={1}";
     t[246] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
     t[247] = "ResultSets 与并发同作(Concurrency) CONCUR_READ_ONLY 不能被更新。";
     t[250] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
@@ -96,14 +114,20 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[257] = "无法参照已经被释放的储存点。";
     t[260] = "Unsupported Types value: {0}";
     t[261] = "未被支持的类型值:{0}";
+    t[264] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[265] = "Prepare 必须在启动该分支的连接上发起。不支持事务交错(transaction interleaving)。prepare xid={0}, currentXid={1}";
     t[266] = "Protocol error.  Session setup failed.";
     t[267] = "通讯协定错误,Session 初始化失败。";
+    t[268] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[269] = "连接已与一个活动的 XA 分支关联。在开始新分支之前,请先结束当前分支。start xid={0}, currentXid={1}, state={2}, flags={3}";
     t[274] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
     t[275] = "不能在 ResultSet 的最后一笔数据之后呼叫 deleteRow()。";
     t[278] = "Internal Position: {0}";
     t[279] = "内部位置:{0}";
     t[280] = "Zero bytes may not occur in identifiers.";
     t[281] = "在标识识别符中不存在零位元组。";
+    t[284] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[285] = "当前连接没有关联的 xid。prepare xid={0}";
     t[288] = "{0} function doesn''t take any argument.";
     t[289] = "{0} 函式无法取得任何的引数。";
     t[300] = "This statement has been closed.";
@@ -130,6 +154,8 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[365] = "DataSource 已经被关闭。";
     t[368] = "The column name {0} was not found in this ResultSet.";
     t[369] = "ResultSet 中找不到栏位名称 {0}。";
+    t[370] = "commit() called before end(). commit xid={0}, state={1}";
+    t[371] = "在 end() 之前调用了 commit()。commit xid={0}, state={1}";
     t[372] = "ResultSet not positioned properly, perhaps you need to call next.";
     t[373] = "查询结果指标位置不正确,您也许需要呼叫 ResultSet 的 next() 方法。";
     t[378] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
@@ -140,6 +166,8 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[383] = "{0} 函式取得二个或三个引数。";
     t[384] = "The JVM claims not to support the {0} encoding.";
     t[385] = "JVM 声明并不支援 {0} 编码。";
+    t[386] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[387] = "在此连接上有本地事务正在进行时,无法回滚已预备的事务。请先提交或回滚该本地事务。rollback xid={0}, transactionState={1}";
     t[396] = "Unknown Response Type {0}.";
     t[397] = "不明的回应类型 {0}。";
     t[398] = "The parameter index is out of range: {0}, number of parameters: {1}.";
@@ -152,6 +180,8 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[415] = "{0} 函式取得四个且仅有四个引数。";
     t[416] = "Unable to translate data into the desired encoding.";
     t[417] = "无法将数据转成目标编码。";
+    t[420] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[421] = "对 xid {0} 调用了一阶段提交,但该连接是用 xid {1} 进行预备的";
     t[424] = "Can''t use relative move methods while on the insert row.";
     t[425] = "不能在新增的数据列上使用相对位置 move 方法。";
     t[434] = "Invalid stream length {0}.";
@@ -170,6 +200,8 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[461] = "提供的 InputStream 已失败。";
     t[462] = "Invalid fetch direction constant: {0}.";
     t[463] = "无效的 fetch 方向常数:{0}。";
+    t[468] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[469] = "一阶段提交必须在启动该分支的连接上发起。commit xid={0}";
     t[472] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
     t[473] = "事物交易隔绝(Transaction interleaving)未被实作。xid={0}, currentXid={1}, state={2}, flags={3}";
     t[474] = "{0} function takes two and only two arguments.";
@@ -184,6 +216,8 @@ public class messages_zh_CN extends java.util.ResourceBundle {
     t[483] = "Connection 已自动结束,因为一个新的  PooledConnection 连线被开启或者或 PooledConnection 已被关闭。";
     t[488] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
     t[489] = "一个 CallableStatement 执行函式后输出的参数类型为 {1} 值为 {0},但是已注册的类型是 {2}。";
+    t[492] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[493] = "回滚事务时出错。rollback xid={0}, preparedXid={1}, currentXid={2}";
     t[494] = "Cannot cast an instance of {0} to type {1}";
     t[495] = "不能转换一个 {0} 实例到类型 {1}";
     t[498] = "Cannot retrieve the id of a named savepoint.";
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/messages_zh_TW.java b/pgjdbc/src/main/java/org/postgresql/translation/messages_zh_TW.java
index ba51649d24..b42e76f46d 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/messages_zh_TW.java
+++ b/pgjdbc/src/main/java/org/postgresql/translation/messages_zh_TW.java
@@ -16,32 +16,42 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[17] = "無法重讀新增的資料列。";
     t[18] = "Connection has been closed.";
     t[19] = "Connection 已經被關閉。";
+    t[20] = "Error during one-phase commit. commit xid={0}";
+    t[21] = "執行單階段 commit 時發生錯誤。commit xid={0}";
     t[24] = "Bad value for type {0} : {1}";
     t[25] = "不良的型別值 {0} : {1}";
+    t[26] = "Error preparing transaction. prepare xid={0}";
+    t[27] = "準備交易時發生錯誤。prepare xid={0}";
     t[36] = "Truncation of large objects is only implemented in 8.3 and later servers.";
     t[37] = "大型物件的截斷(Truncation)僅被實作執行在 8.3 和後來的伺服器。";
     t[40] = "Cannot retrieve the name of an unnamed savepoint.";
     t[41] = "無法取得未命名儲存點(Savepoint)的名稱。";
+    t[42] = "end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
+    t[43] = "呼叫 end() 時沒有對應的 start()。end xid={0}, currentXid={1}, state={2}, preparedXid={3}";
     t[46] = "An error occurred while setting up the SSL connection.";
     t[47] = "進行 SSL 連線時發生錯誤。";
-    t[50] = "suspend/resume not implemented";
-    t[51] = "暫停(suspend)/再繼續(resume)尚未被實作。";
     t[60] = "{0} function takes one and only one argument.";
     t[61] = "{0} 函式取得一個且僅有一個引數。";
     t[62] = "Conversion to type {0} failed: {1}.";
     t[63] = "轉換型別 {0} 失敗:{1}。";
+    t[64] = "Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. commit xid={0}, transactionState={1}";
+    t[65] = "當此連線上有本機交易進行中時,無法對已 prepare 的交易執行第二階段 commit。請先 commit 或 rollback 本機交易。commit xid={0}, transactionState={1}";
     t[66] = "Conversion of money failed.";
     t[67] = "money 轉換失敗。";
     t[70] = "A result was returned when none was expected.";
     t[71] = "傳回預期之外的結果。";
     t[80] = "This PooledConnection has already been closed.";
     t[81] = "這個 PooledConnection 已經被關閉。";
+    t[82] = "2nd phase commit cannot be issued while an XA branch is active on this connection. commit xid={0}, currentXid={1}, state={2}";
+    t[83] = "當此連線上有 XA 分支進行中時,無法執行第二階段 commit。commit xid={0}, currentXid={1}, state={2}";
     t[84] = "Multiple ResultSets were returned by the query.";
     t[85] = "查詢傳回多個 ResultSet。";
     t[90] = "Not on the insert row.";
     t[91] = "不在新增的資料列上。";
     t[94] = "An unexpected result was returned by a query.";
     t[95] = "傳回非預期的查詢結果。";
+    t[96] = "Error during recover. flag={0}";
+    t[97] = "復原(recover)時發生錯誤。flag={0}";
     t[102] = "Internal Query: {0}";
     t[103] = "內部查詢:{0}";
     t[106] = "The array index is out of range: {0}";
@@ -54,10 +64,16 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[117] = "不明的原因導致驅動程式造成失敗,請回報這個例外。";
     t[120] = "The array index is out of range: {0}, number of elements: {1}.";
     t[121] = "陣列索引超過許可範圍:{0},元素數量:{1}。";
+    t[134] = "One-phase commit with unknown xid. commit xid={0}, currentXid={1}";
+    t[135] = "單階段 commit 使用了未知的 xid。commit xid={0}, currentXid={1}";
     t[138] = "Invalid flags {0}";
     t[139] = "無效的旗標 {0}";
     t[146] = "Unexpected error writing large object to database.";
     t[147] = "將大型物件(large object)寫入資料庫時發生不明錯誤。";
+    t[148] = "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active.";
+    t[149] = "當 XA 交易進行中時,不允許使用交易控制方法 setAutoCommit、commit、rollback 及 setSavepoint。";
+    t[150] = "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}";
+    t[151] = "此連線上的交易已完成 prepare。prepare xid={0}, preparedXid={1}";
     t[162] = "Query timeout must be a value greater than or equals to 0.";
     t[163] = "查詢逾時等候時間必須大於或等於 0。";
     t[170] = "Unknown type {0}.";
@@ -70,12 +86,16 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[181] = "嘗試連線已失敗。";
     t[182] = "No value specified for parameter {0}.";
     t[183] = "未設定參數值 {0} 的內容。";
+    t[188] = "Suspend/resume not implemented";
+    t[189] = "暫停(suspend)/再繼續(resume)尚未被實作。";
     t[190] = "Provided Reader failed.";
     t[191] = "提供的 Reader 已失敗。";
     t[194] = "Unsupported value for stringtype parameter: {0}";
     t[195] = "字串型別參數值未被支持:{0}";
     t[198] = "A CallableStatement was declared, but no call to registerOutParameter(1, <some type>) was made.";
     t[199] = "已經宣告 CallableStatement 函式,但是尚未呼叫 registerOutParameter (1, <some_type>) 。";
+    t[202] = "Error opening transaction. start xid={0}";
+    t[203] = "開啟交易時發生錯誤。start xid={0}";
     t[204] = "Currently positioned before the start of the ResultSet.  You cannot call deleteRow() here.";
     t[205] = "不能在 ResultSet 的第一筆資料之前呼叫 deleteRow()。";
     t[214] = "The maximum field size must be a value greater than or equal to 0.";
@@ -88,6 +108,8 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[227] = "隔絕 {0} 尚未被實作。";
     t[238] = "Fastpath call {0} - No result was returned and we expected an integer.";
     t[239] = "Fastpath 呼叫 {0} - 沒有傳回值,且應該傳回一個整數。";
+    t[240] = "Prepare called before end(). prepare xid={0}, state={1}";
+    t[241] = "在 end() 之前呼叫 Prepare。prepare xid={0}, state={1}";
     t[246] = "ResultSets with concurrency CONCUR_READ_ONLY cannot be updated.";
     t[247] = "ResultSets 與並發同作(Concurrency) CONCUR_READ_ONLY 不能被更新。";
     t[250] = "This statement does not declare an OUT parameter.  Use '{' ?= call ... '}' to declare one.";
@@ -96,18 +118,26 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[257] = "無法參照已經被釋放的儲存點。";
     t[260] = "Unsupported Types value: {0}";
     t[261] = "未被支持的型別值:{0}";
+    t[264] = "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}";
+    t[265] = "Prepare 必須在啟動該分支的連線上執行。不支援事物交易隔絕(Transaction interleaving)。prepare xid={0}, currentXid={1}";
     t[266] = "Protocol error.  Session setup failed.";
     t[267] = "通訊協定錯誤,Session 初始化失敗。";
+    t[268] = "Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}";
+    t[269] = "連線已關聯至作用中的 XA 分支。請先結束目前的分支,再啟動新的分支。start xid={0}, currentXid={1}, state={2}, flags={3}";
     t[274] = "Currently positioned after the end of the ResultSet.  You cannot call deleteRow() here.";
     t[275] = "不能在 ResultSet 的最後一筆資料之後呼叫 deleteRow()。";
     t[278] = "Internal Position: {0}";
     t[279] = "內部位置:{0}";
     t[280] = "Zero bytes may not occur in identifiers.";
     t[281] = "在標識識別符中不存在零位元組。";
+    t[284] = "Current connection does not have an associated xid. prepare xid={0}";
+    t[285] = "目前連線沒有關聯的 xid。prepare xid={0}";
     t[288] = "{0} function doesn''t take any argument.";
     t[289] = "{0} 函式無法取得任何的引數。";
     t[300] = "This statement has been closed.";
     t[301] = "這個 statement 已經被關閉。";
+    t[308] = "Heuristic commit/rollback not supported. forget xid={0}";
+    t[309] = "不支援啟發式(heuristic) commit/rollback。forget xid={0}";
     t[318] = "Cannot establish a savepoint in auto-commit mode.";
     t[319] = "在自動確認事物交易模式無法建立儲存點(Savepoint)。";
     t[320] = "Position: {0}";
@@ -130,6 +160,8 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[365] = "DataSource 已經被關閉。";
     t[368] = "The column name {0} was not found in this ResultSet.";
     t[369] = "ResultSet 中找不到欄位名稱 {0}。";
+    t[370] = "commit() called before end(). commit xid={0}, state={1}";
+    t[371] = "在 end() 之前呼叫 commit()。commit xid={0}, state={1}";
     t[372] = "ResultSet not positioned properly, perhaps you need to call next.";
     t[373] = "查詢結果指標位置不正確,您也許需要呼叫 ResultSet 的 next() 方法。";
     t[378] = "Cannot update the ResultSet because it is either before the start or after the end of the results.";
@@ -140,6 +172,8 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[383] = "{0} 函式取得二個或三個引數。";
     t[384] = "The JVM claims not to support the {0} encoding.";
     t[385] = "JVM 聲明並不支援 {0} 編碼。";
+    t[386] = "Cannot rollback prepared transaction while a local transaction is in progress on this connection. Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}";
+    t[387] = "當此連線上有本機交易進行中時,無法回復(rollback)已 prepare 的交易。請先 commit 或 rollback 本機交易。rollback xid={0}, transactionState={1}";
     t[396] = "Unknown Response Type {0}.";
     t[397] = "不明的回應類型 {0}。";
     t[398] = "The parameter index is out of range: {0}, number of parameters: {1}.";
@@ -152,6 +186,8 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[415] = "{0} 函式取得四個且僅有四個引數。";
     t[416] = "Unable to translate data into the desired encoding.";
     t[417] = "無法將資料轉成目標編碼。";
+    t[420] = "One-phase commit called for xid {0} but connection was prepared with xid {1}";
+    t[421] = "對 xid {0} 呼叫單階段 commit,但連線已使用 xid {1} 完成 prepare";
     t[424] = "Can''t use relative move methods while on the insert row.";
     t[425] = "不能在新增的資料列上使用相對位置 move 方法。";
     t[434] = "Invalid stream length {0}.";
@@ -166,10 +202,14 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[451] = "隔絕(Interval)轉換失敗。";
     t[452] = "Cannot tell if path is open or closed: {0}.";
     t[453] = "無法得知 path 是開啟或關閉:{0}。";
+    t[456] = "Error committing prepared transaction. commit xid={0}, preparedXid={1}, currentXid={2}";
+    t[457] = "提交(commit)已 prepare 的交易時發生錯誤。commit xid={0}, preparedXid={1}, currentXid={2}";
     t[460] = "Provided InputStream failed.";
     t[461] = "提供的 InputStream 已失敗。";
     t[462] = "Invalid fetch direction constant: {0}.";
     t[463] = "無效的 fetch 方向常數:{0}。";
+    t[468] = "One-phase commit must be issued on the connection that started the branch. commit xid={0}";
+    t[469] = "單階段 commit 必須在啟動該分支的連線上執行。commit xid={0}";
     t[472] = "Invalid protocol state requested. Attempted transaction interleaving is not supported. xid={0}, currentXid={1}, state={2}, flags={3}";
     t[473] = "事物交易隔絕(Transaction interleaving)未被實作。xid={0}, currentXid={1}, state={2}, flags={3}";
     t[474] = "{0} function takes two and only two arguments.";
@@ -184,6 +224,8 @@ public class messages_zh_TW extends java.util.ResourceBundle {
     t[483] = "Connection 已自動結束,因為一個新的  PooledConnection 連線被開啟或者或 PooledConnection 已被關閉。";
     t[488] = "A CallableStatement function was executed and the out parameter {0} was of type {1} however type {2} was registered.";
     t[489] = "一個 CallableStatement 執行函式後輸出的參數型別為 {1} 值為 {0},但是已註冊的型別是 {2}。";
+    t[492] = "Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}";
+    t[493] = "回復(rollback)交易時發生錯誤。rollback xid={0}, preparedXid={1}, currentXid={2}";
     t[494] = "Cannot cast an instance of {0} to type {1}";
     t[495] = "不能轉換一個 {0} 實例到型別 {1}";
     t[498] = "Cannot retrieve the id of a named savepoint.";
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/nl.po b/pgjdbc/src/main/java/org/postgresql/translation/nl.po
index 74a899f8c3..d2a706efc1 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/nl.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/nl.po
@@ -1865,136 +1865,186 @@ msgstr ""
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Transactiebeheermethoden setAutoCommit, commit, rollback en setSavepoint "
+"zijn niet toegestaan terwijl een XA-transactie actief is."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 msgstr ""
+"Verbinding is al gekoppeld aan een actieve XA-tak. Beëindig de huidige tak "
+"voordat u een nieuwe start. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-#, fuzzy
-msgid "suspend/resume not implemented"
-msgstr "Deze methode is nog niet geimplementeerd"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
+msgstr "Suspend/resume is niet geïmplementeerd"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
 "supported. xid={0}, currentXid={1}, state={2}, flags={3}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr ""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Fout bij het openen van de transactie. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
+"end() aangeroepen zonder bijbehorende start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
+"Transactie is al voorbereid op deze verbinding. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "Huidige verbinding heeft geen gekoppelde xid. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
+"Prepare moet worden uitgevoerd op de verbinding die de tak heeft gestart. "
+"Transactie-interleaving wordt niet ondersteund. prepare xid={0}, "
+"currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr ""
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "Prepare aangeroepen vóór end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Fout tijdens recover. flag={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
 msgstr ""
+"Kan een voorbereide transactie niet terugdraaien terwijl er een lokale "
+"transactie loopt op deze verbinding. Commit of rollback eerst de lokale "
+"transactie. rollback xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
+"Fout bij het terugdraaien van de transactie. rollback xid={0}, "
+"preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"One-phase commit aangeroepen voor xid {0} maar verbinding is voorbereid met "
+"xid {1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
+"One-phase commit moet worden uitgevoerd op de verbinding die de tak heeft "
+"gestart. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "One-phase commit met onbekende xid. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr ""
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "commit() aangeroepen vóór end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
+msgid ""
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
+msgstr ""
+"2nd phase commit kan niet worden uitgevoerd terwijl er een XA-tak actief is "
+"op deze verbinding. commit xid={0}, currentXid={1}, state={2}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
 msgstr ""
+"Kan een voorbereide transactie niet via 2nd phase commit afronden terwijl er "
+"een lokale transactie loopt op deze verbinding. Commit of rollback eerst de "
+"lokale transactie. commit xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr ""
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/pl.po b/pgjdbc/src/main/java/org/postgresql/translation/pl.po
index 86c8e76961..c9486b299c 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/pl.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/pl.po
@@ -1894,137 +1894,187 @@ msgstr "Serwer SQLState: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Metody sterowania transakcją setAutoCommit, commit, rollback i setSavepoint "
+"nie są dozwolone, gdy transakcja XA jest aktywna."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 msgstr ""
+"Połączenie jest już powiązane z aktywną gałęzią XA. Zakończ bieżącą gałąź "
+"przed rozpoczęciem nowej. start xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
-msgstr ""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
+msgstr "Wstrzymywanie/wznawianie nie zostało zaimplementowane"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
+#, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
 "supported. xid={0}, currentXid={1}, state={2}, flags={3}"
 msgstr ""
-"Poziom izolacji transakcji {0} nie jest obsługiwany. xid={0}, "
-"currentXid={1}, state={2}, flags={3}"
+"Nieprawidłowy stan protokołu. Przeplatanie transakcji nie jest obsługiwane. "
+"xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr ""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Błąd podczas otwierania transakcji. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
+"Wywołano end() bez odpowiadającego start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
+"Transakcja została już przygotowana na tym połączeniu. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "Bieżące połączenie nie ma powiązanego xid. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
+"Prepare musi zostać wykonane na połączeniu, które rozpoczęło gałąź. "
+"Przeplatanie transakcji nie jest obsługiwane. prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr ""
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "Wywołano prepare przed end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Błąd podczas odzyskiwania. flag={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
 msgstr ""
+"Nie można wycofać przygotowanej transakcji, gdy na tym połączeniu trwa "
+"transakcja lokalna. Najpierw zatwierdź lub wycofaj transakcję lokalną. "
+"rollback xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
+"Błąd podczas wycofywania transakcji. rollback xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"Wywołano jednofazowe zatwierdzenie dla xid {0}, ale połączenie zostało "
+"przygotowane z xid {1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
+"Jednofazowe zatwierdzenie musi zostać wykonane na połączeniu, które "
+"rozpoczęło gałąź. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
 msgstr ""
+"Jednofazowe zatwierdzenie z nieznanym xid. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr ""
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "Wywołano commit() przed end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
+msgid ""
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
+msgstr ""
+"Nie można wykonać dwufazowego zatwierdzenia (faza 2), gdy na tym połączeniu "
+"jest aktywna gałąź XA. commit xid={0}, currentXid={1}, state={2}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
 msgstr ""
+"Nie można zatwierdzić (faza 2) przygotowanej transakcji, gdy na tym "
+"połączeniu trwa transakcja lokalna. Najpierw zatwierdź lub wycofaj "
+"transakcję lokalną. commit xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr ""
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/pt_BR.po b/pgjdbc/src/main/java/org/postgresql/translation/pt_BR.po
index 5d59e76bce..7b41fa8554 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/pt_BR.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/pt_BR.po
@@ -1959,37 +1959,45 @@ msgstr "SQLState: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Métodos de controle de transação setAutoCommit, commit, rollback e "
+"setSavepoint não são permitidos enquanto uma transação XA estiver ativa."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr "Marcadores={0} inválidos"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr "xid não deve ser nulo"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
-msgstr "Conexão está ocupada com outra transação"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
+msgstr ""
+"A conexão já está associada a um ramo XA ativo. Finalize o ramo atual antes "
+"de iniciar um novo. start xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
-msgstr "suspender/recomeçar não está implementado"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
+msgstr "Suspender/retomar não está implementado"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
@@ -1998,111 +2006,142 @@ msgstr ""
 "Intercalação de transação não está implementado. xid={0}, currentXid={1}, "
 "state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr "Erro ao desabilitar autocommit"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Erro ao abrir transação. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
-"tentou executar end sem a chamada ao start correspondente. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() chamado sem um start() correspondente. end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
+#, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
-"Erro ao cancelar transação preparada. rollback xid={0}, preparedXid={1}"
+"A transação já havia sido preparada nesta conexão. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "A conexão atual não possui um xid associado. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"Não está implementado: Prepare deve ser executado utilizando a mesma conexão "
-"que iniciou a transação. currentXid={0}, prepare xid={1}"
+"Prepare deve ser executado na conexão que iniciou o ramo. Intercalação de "
+"transações não é suportada. prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr "Prepare executado antes do end. prepare xid={0}, state={1}"
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "Prepare chamado antes de end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr "Erro ao preparar transação. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
-msgstr "Erro durante recuperação"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Erro durante recuperação. flag={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+"Não é possível cancelar uma transação preparada enquanto uma transação local "
+"estiver em andamento nesta conexão. Efetive ou cancele a transação local "
+"primeiro. rollback xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
+#, java-format
+msgid ""
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"Erro ao cancelar transação preparada. rollback xid={0}, preparedXid={1}"
+"Erro ao cancelar transação. rollback xid={0}, preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"Efetivação de uma fase chamada para o xid {0}, mas a conexão foi preparada "
+"com o xid {1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
-"Não está implementado: efetivada da primeira fase deve ser executada "
-"utilizando a mesma conexão que foi utilizada para iniciá-la"
+"A efetivação de uma fase deve ser executada na conexão que iniciou o ramo. "
+"commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
 msgstr ""
+"Efetivação de uma fase com xid desconhecido. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr "commit executado antes do end. commit xid={0}, state={1}"
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "commit() chamado antes de end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr "Erro durante efetivação de uma fase. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
-"Não está implementado: efetivação da segunda fase deve ser executada "
-"utilizado uma conexão ociosa. commit xid={0}, currentXid={1}, state={2}, "
-"transactionState={3}"
+"A efetivação da segunda fase não pode ser executada enquanto um ramo XA "
+"estiver ativo nesta conexão. commit xid={0}, currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
+#, java-format
+msgid ""
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
+msgstr ""
+"Não é possível executar a efetivação da segunda fase de uma transação "
+"preparada enquanto uma transação local estiver em andamento nesta conexão. "
+"Efetive ou cancele a transação local primeiro. commit xid={0}, "
+"transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
+#, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"Erro ao cancelar transação preparada. commit xid={0}, preparedXid={1}, "
+"Erro ao efetivar transação preparada. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr "Efetivação/Cancelamento heurístico não é suportado. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/ru.po b/pgjdbc/src/main/java/org/postgresql/translation/ru.po
index d64b3c4115..2f40072ed3 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/ru.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/ru.po
@@ -1941,39 +1941,47 @@ msgstr "SQLState сервера: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Методы управления транзакциями (setAutoCommit, commit, rollback и "
+"setSavepoint) запрещены во время активной XA-транзакции."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr "Неверные флаги {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 msgstr ""
+"Соединение уже связано с активной XA-ветвью. Завершите текущую ветвь, прежде "
+"чем начинать новую. start xid={0}, currentXid={1}, state={2}, flags={3}"
 
 # key: postgresql.unimplemented
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
 msgstr "Операции XA suspend/resume не реализованы"
 
 # key: postgresql.con.isolevel
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
@@ -1982,106 +1990,132 @@ msgstr ""
 "Чередование транзакций в одном соединении не поддерживается. Предыдущую "
 "транзакцию нужно завершить xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr ""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Ошибка при открытии транзакции. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
-"Невозможно завершить транзакцию, т.к. транзакция не была начата. state={0}, "
-"start xid={1}, currentXid={2}, preparedXid={3}"
+"Вызов end() без соответствующего вызова start(). end xid={0}, "
+"currentXid={1}, state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
+#, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
-"Ошибка при откате подготовленной транзакции. rollback xid={0}, "
-"preparedXid={1}, currentXid={2}"
+"Транзакция уже подготовлена на этом соединении. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "У текущего соединения нет связанного xid. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"В каком соединении транзакцию начинали, в таком и вызывайте prepare. По-"
-"другому не работает. currentXid={0}, prepare xid={1}"
+"Prepare должен выполняться на том соединении, которое начало ветвь. "
+"Чередование транзакций не поддерживается. prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr ""
-"Вызов prepare должен происходить только после вызова end. prepare xid={0}, "
-"state={1}"
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "prepare вызван до end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr "Ошибка при выполнении prepare для транзакции {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Ошибка при восстановлении. flag={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
 msgstr ""
+"Невозможно откатить подготовленную транзакцию, пока на соединении "
+"выполняется локальная транзакция. Сначала зафиксируйте или откатите "
+"локальную транзакцию. rollback xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"Ошибка при откате подготовленной транзакции. rollback xid={0}, "
-"preparedXid={1}, currentXid={2}"
+"Ошибка при откате транзакции. rollback xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"Однофазная фиксация запрошена для xid {0}, но соединение подготовлено с xid "
+"{1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
+"Однофазная фиксация должна выполняться на том соединении, которое начало "
+"ветвь. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "Однофазная фиксация с неизвестным xid. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr ""
-"Операция commit должна вызываться только после операции end. commit xid={0}, "
-"state={1}"
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "commit() вызван до end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr "Ошибка при однофазной фиксации транзакции. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
-"Духфазная фиксация работает только, если соединение неактивно (state=idle и "
-"транзакцция отсутствует). commit xid={0}, currentXid={1}, state={2}, "
-"transactionState={3}"
+"Вторую фазу фиксации нельзя выполнить, пока на соединении активна XA-ветвь. "
+"commit xid={0}, currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
+#, java-format
+msgid ""
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
+msgstr ""
+"Невозможно выполнить вторую фазу фиксации подготовленной транзакции, пока на "
+"соединении выполняется локальная транзакция. Сначала зафиксируйте или "
+"откатите локальную транзакцию. commit xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
@@ -2090,7 +2124,7 @@ msgstr ""
 "Ошибка при фиксации подготовленной транзакции. commit xid={0}, "
 "preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
-msgstr ""
+msgstr "Эвристический commit/rollback не поддерживается. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/sr.po b/pgjdbc/src/main/java/org/postgresql/translation/sr.po
index f959ff5722..ab87b4e031 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/sr.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/sr.po
@@ -1941,37 +1941,45 @@ msgstr "SQLState servera: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"Metode za kontrolu transakcije setAutoCommit, commit, rollback i "
+"setSavepoint nisu dozvoljene dok je XA transakcija aktivna."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr "Nevažeće zastavice {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr "xid ne sme biti null"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
-msgstr "Konekcija je zauzeta sa drugom transakciom."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
+msgstr ""
+"Konekcija je već pridružena aktivnoj XA grani. Završite trenutnu granu pre "
+"pokretanja nove. start xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
-msgstr "obustavljanje/nastavljanje nije implementirano."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
+msgstr "Obustavljanje/nastavljanje nije implementirano"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
@@ -1980,114 +1988,140 @@ msgstr ""
 "Preplitanje transakcija nije implementirano. xid={0}, currentXid={1}, "
 "state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr "Greška u isključivanju autokomita"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Greška prilikom otvaranja transakcije. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
-"Pokušaj pozivanja kraja pre odgovarajućeg početka. state={0}, start xid={1}, "
-"currentXid={2}, preparedXid={3}"
+"end() pozvan bez odgovarajućeg start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
+#, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
-"Greška prilikom povratka na prethodo pripremljenu transakciju. rollback "
-"xid={0}, preparedXid={1}, currentXid={2}"
+"Transakcija je već pripremljena na ovoj konekciji. prepare xid={0}, "
+"preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "Trenutna konekcija nema pridružen xid. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"Nije implementirano: Spremanje mora biti pozvano uz korišćenje iste "
-"konekcije koja se koristi za startovanje transakcije. currentXid={0}, "
-"prepare xid={1}"
+"Prepare mora biti pozvan na konekciji koja je pokrenula granu. Preplitanje "
+"transakcija nije podržano. prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr "Pripremanje poziva pre kraja. prepare xid={0}, state={1}"
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "Prepare pozvan pre end(). prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr "Greška u pripremanju transakcije. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
-msgstr "Greška prilikom oporavljanja."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Greška prilikom oporavljanja. flag={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+"Nije moguće poništiti pripremljenu transakciju dok je lokalna transakcija u "
+"toku na ovoj konekciji. Prvo izvršite commit ili rollback lokalne "
+"transakcije. rollback xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
+#, java-format
+msgid ""
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"Greška prilikom povratka na prethodo pripremljenu transakciju. rollback "
-"xid={0}, preparedXid={1}, currentXid={2}"
+"Greška prilikom poništavanja transakcije. rollback xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"One-phase commit pozvan za xid {0}, ali konekcija je pripremljena sa xid {1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
-"Nije implementirano: Commit iz jedne faze mora biti izdat uz korištenje iste "
-"konekcije koja je korištena za startovanje."
+"One-phase commit mora biti izdat na konekciji koja je pokrenula granu. "
+"commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "One-phase commit sa nepoznatim xid. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
-#, fuzzy, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr "commit pozvan pre kraja."
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
+#, java-format
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "commit() pozvan pre end(). commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr "Kreška prilikom commit-a iz jedne faze. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
-"Nije implementirano: Dvofazni commit mora biti izdat uz korištenje "
-"besposlene konekcije. commit xid={0}, currentXid={1}, state={2}, "
-"transactionState={3}"
+"Dvofazni commit ne može biti izdat dok je XA grana aktivna na ovoj "
+"konekciji. commit xid={0}, currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
+#, java-format
+msgid ""
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
+msgstr ""
+"Nije moguće izvršiti dvofazni commit pripremljene transakcije dok je lokalna "
+"transakcija u toku na ovoj konekciji. Prvo izvršite commit ili rollback "
+"lokalne transakcije. commit xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
+#, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"Greška prilikom povratka na prethodo pripremljenu transakciju. commit "
-"xid={0}, preparedXid={1}, currentXid={2}"
+"Greška prilikom potvrđivanja pripremljene transakcije. commit xid={0}, "
+"preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr "Heuristički commit/rollback nije podržan. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/tr.po b/pgjdbc/src/main/java/org/postgresql/translation/tr.po
index 2005394d86..4f979396f4 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/tr.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/tr.po
@@ -1915,37 +1915,46 @@ msgstr "Sunucu SQLState: {0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"XA transaction etkinken setAutoCommit, commit, rollback ve setSavepoint "
+"transaction kontrol metotlarına izin verilmez."
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr "Geçersiz seçenekler {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr "xid null olamaz"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
-msgstr "Bağlantı, başka bir transaction tarafından meşgul ediliyor"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
+msgstr ""
+"Bağlantı zaten etkin bir XA dalı ile ilişkilendirilmiş. Yenisini başlatmadan "
+"önce mevcut dalı sonlandırın. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
-msgstr "suspend/resume desteklenmiyor"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
+msgstr "Suspend/resume desteklenmiyor"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
@@ -1954,112 +1963,140 @@ msgstr ""
 "Transaction interleaving desteklenmiyor. xid={0}, currentXid={1}, state={2}, "
 "flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr "autocommit'i devre dışı bırakma sırasında hata"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "Transaction açma hatası. start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
-"start çağırımı olmadan end çağırılmıştır. state={0}, start xid={1}, "
-"currentXid={2}, preparedXid={3}"
+"Eşleşen bir start() çağrısı olmadan end() çağrıldı. end xid={0}, "
+"currentXid={1}, state={2}, preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
+#, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
 msgstr ""
-"Hazırlanmış transaction rollback hatası. rollback xid={0}, preparedXid={1}, "
-"currentXid={2}"
+"Transaction bu bağlantıda zaten hazırlanmış. prepare xid={0}, preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "Mevcut bağlantının ilişkilendirilmiş bir xid''i yok. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
-"Desteklenmiyor: Prepare, transaction başlatran bağlantı tarafından "
-"çağırmalıdır. currentXid={0}, prepare xid={1}"
+"Prepare, dalı başlatan bağlantı üzerinde çağrılmalıdır. Transaction "
+"interleaving desteklenmiyor. prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr "Sondan önce prepare çağırılmış. prepare xid={0}, state={1}"
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "end() çağrılmadan önce prepare çağrıldı. prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr "Transaction hazırlama hatası. prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
-msgstr "Kurtarma sırasında hata"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "Kurtarma sırasında hata. flag={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
+msgstr ""
+"Bu bağlantıda bir yerel transaction sürerken hazırlanmış transaction "
+"rollback edilemez. Önce yerel transaction''ı commit veya rollback edin. "
+"rollback xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
+#, java-format
+msgid ""
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"Hazırlanmış transaction rollback hatası. rollback xid={0}, preparedXid={1}, "
+"Transaction rollback hatası. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
 msgstr ""
+"One-phase commit xid {0} için çağrıldı, ancak bağlantı xid {1} ile "
+"hazırlanmıştı"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
 msgstr ""
-"Desteklenmiyor: one-phase commit, işlevinde başlatan ve bitiren bağlantı "
-"aynı olmalıdır"
+"One-phase commit, dalı başlatan bağlantı üzerinde çağrılmalıdır. commit "
+"xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "Bilinmeyen xid ile one-phase commit. commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr "commit, sondan önce çağırıldı. commit xid={0}, state={1}"
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "end() çağrılmadan önce commit() çağrıldı. commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr "One-phase commit sırasında hata. commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
-"Desteklenmiyor: 2nd phase commit, atıl bir bağlantıdan başlatılmalıdır. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Bu bağlantıda bir XA dalı etkinken 2. faz commit çağrılamaz. commit xid={0}, "
+"currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
-#, fuzzy, java-format
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
+#, java-format
+msgid ""
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
+msgstr ""
+"Bu bağlantıda bir yerel transaction sürerken hazırlanmış transaction 2. faz "
+"commit edilemez. Önce yerel transaction''ı commit veya rollback edin. commit "
+"xid={0}, transactionState={1}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
+#, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
-"Hazırlanmış transaction rollback hatası. commit xid={0}, preparedXid={1}, "
+"Hazırlanmış transaction commit hatası. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr "Heuristic commit/rollback desteklenmiyor. forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/zh_CN.po b/pgjdbc/src/main/java/org/postgresql/translation/zh_CN.po
index 1f19802617..4ad325b777 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/zh_CN.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/zh_CN.po
@@ -1874,37 +1874,45 @@ msgstr "服务器 SQLState:{0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"在 XA 事务处于活动状态时,不允许调用 setAutoCommit、commit、rollback 和 "
+"setSavepoint 等事务控制方法。"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr "无效的旗标 flags {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 msgstr ""
+"连接已与一个活动的 XA 分支关联。在开始新分支之前,请先结束当前分支。start "
+"xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
-msgstr "暂停(suspend)/再继续(resume)尚未被实作。"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
+msgstr "尚未实现 Suspend/resume。"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
@@ -1913,98 +1921,129 @@ msgstr ""
 "事物交易隔绝(Transaction interleaving)未被实作。xid={0}, currentXid={1}, "
 "state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr ""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "开启事务时出错。start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
+"调用 end() 时未匹配到对应的 start()。end xid={0}, currentXid={1}, state={2}, "
+"preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
-msgstr ""
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
+msgstr "此连接上的事务已被预备。prepare xid={0}, preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "当前连接没有关联的 xid。prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
+"Prepare 必须在启动该分支的连接上发起。不支持事务交错(transaction "
+"interleaving)。prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr ""
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "在 end() 之前调用了 Prepare。prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "recover 过程中出错。flag={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
 msgstr ""
+"在此连接上有本地事务正在进行时,无法回滚已预备的事务。请先提交或回滚该本地事"
+"务。rollback xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
-msgstr ""
+msgstr "回滚事务时出错。rollback xid={0}, preparedXid={1}, currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
-msgstr ""
+msgstr "对 xid {0} 调用了一阶段提交,但该连接是用 xid {1} 进行预备的"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
-msgstr ""
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
+msgstr "一阶段提交必须在启动该分支的连接上发起。commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "对未知 xid 的一阶段提交。commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr ""
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "在 end() 之前调用了 commit()。commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
+msgid ""
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
+msgstr ""
+"在此连接上有 XA 分支处于活动状态时,无法发起二阶段提交。commit xid={0}, "
+"currentXid={1}, state={2}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
 msgstr ""
+"在此连接上有本地事务正在进行时,无法对已预备的事务执行二阶段提交。请先提交或"
+"回滚该本地事务。commit xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
 msgstr ""
diff --git a/pgjdbc/src/main/java/org/postgresql/translation/zh_TW.po b/pgjdbc/src/main/java/org/postgresql/translation/zh_TW.po
index f8e46ead00..01d8d14c89 100644
--- a/pgjdbc/src/main/java/org/postgresql/translation/zh_TW.po
+++ b/pgjdbc/src/main/java/org/postgresql/translation/zh_TW.po
@@ -1874,37 +1874,45 @@ msgstr "伺服器 SQLState:{0}"
 msgid "StreamWrapper leak detected StreamWrapper.close() was not called. "
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:134
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:138
 msgid ""
-"Transaction control methods setAutoCommit(true), commit, rollback and "
-"setSavePoint not allowed while an XA transaction is active."
+"Transaction control methods setAutoCommit, commit, rollback and setSavepoint "
+"are not allowed while an XA transaction is active."
 msgstr ""
+"當 XA 交易進行中時,不允許使用交易控制方法 setAutoCommit、commit、rollback "
+"及 setSavepoint。"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:192
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:278
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:387
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:407
 #, java-format
 msgid "Invalid flags {0}"
 msgstr "無效的旗標 {0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:196
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:282
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:500
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:290
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:524
 msgid "xid must not be null"
 msgstr ""
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:200
-msgid "Connection is busy with another transaction"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:205
+#, java-format
+msgid ""
+"Connection is already associated with an active XA branch. End the current "
+"branch before starting a new one. start xid={0}, currentXid={1}, state={2}, "
+"flags={3}"
 msgstr ""
+"連線已關聯至作用中的 XA 分支。請先結束目前的分支,再啟動新的分支。start "
+"xid={0}, currentXid={1}, state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:209
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:292
-msgid "suspend/resume not implemented"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:215
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:301
+msgid "Suspend/resume not implemented"
 msgstr "暫停(suspend)/再繼續(resume)尚未被實作。"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:217
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:224
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:228
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:223
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:230
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:234
 #, java-format
 msgid ""
 "Invalid protocol state requested. Attempted transaction interleaving is not "
@@ -1913,98 +1921,133 @@ msgstr ""
 "事物交易隔絕(Transaction interleaving)未被實作。xid={0}, currentXid={1}, "
 "state={2}, flags={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:239
-msgid "Error disabling autocommit"
-msgstr ""
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:246
+#, java-format
+msgid "Error opening transaction. start xid={0}"
+msgstr "開啟交易時發生錯誤。start xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:286
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:294
 #, java-format
 msgid ""
-"tried to call end without corresponding start call. state={0}, start "
-"xid={1}, currentXid={2}, preparedXid={3}"
+"end() called without a matching start(). end xid={0}, currentXid={1}, "
+"state={2}, preparedXid={3}"
 msgstr ""
+"呼叫 end() 時沒有對應的 start()。end xid={0}, currentXid={1}, state={2}, "
+"preparedXid={3}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:332
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:341
 #, java-format
 msgid ""
-"Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}"
-msgstr ""
+"Transaction was already prepared on this connection. prepare xid={0}, "
+"preparedXid={1}"
+msgstr "此連線上的交易已完成 prepare。prepare xid={0}, preparedXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:335
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:345
 #, java-format
 msgid "Current connection does not have an associated xid. prepare xid={0}"
-msgstr ""
+msgstr "目前連線沒有關聯的 xid。prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:342
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:352
 #, java-format
 msgid ""
-"Not implemented: Prepare must be issued using the same connection that "
-"started the transaction. currentXid={0}, prepare xid={1}"
+"Prepare must be issued on the connection that started the branch. "
+"Transaction interleaving is not supported. prepare xid={0}, currentXid={1}"
 msgstr ""
+"Prepare 必須在啟動該分支的連線上執行。不支援事物交易隔絕(Transaction "
+"interleaving)。prepare xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:346
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:356
 #, java-format
-msgid "Prepare called before end. prepare xid={0}, state={1}"
-msgstr ""
+msgid "Prepare called before end(). prepare xid={0}, state={1}"
+msgstr "在 end() 之前呼叫 Prepare。prepare xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:366
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:368
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:382
 #, java-format
 msgid "Error preparing transaction. prepare xid={0}"
-msgstr ""
+msgstr "準備交易時發生錯誤。prepare xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:425
-msgid "Error during recover"
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:441
+#, java-format
+msgid "Error during recover. flag={0}"
+msgstr "復原(recover)時發生錯誤。flag={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:487
+#, java-format
+msgid ""
+"Cannot rollback prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"rollback xid={0}, transactionState={1}"
 msgstr ""
+"當此連線上有本機交易進行中時,無法回復(rollback)已 prepare 的交易。請先 "
+"commit 或 rollback 本機交易。rollback xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:489
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:513
 #, java-format
 msgid ""
-"Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, "
+"Error rolling back transaction. rollback xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
+"回復(rollback)交易時發生錯誤。rollback xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:530
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:553
 #, java-format
 msgid ""
 "One-phase commit called for xid {0} but connection was prepared with xid {1}"
-msgstr ""
+msgstr "對 xid {0} 呼叫單階段 commit,但連線已使用 xid {1} 完成 prepare"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:538
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:561
+#, java-format
 msgid ""
-"Not implemented: one-phase commit must be issued using the same connection "
-"that was used to start it"
-msgstr ""
+"One-phase commit must be issued on the connection that started the branch. "
+"commit xid={0}"
+msgstr "單階段 commit 必須在啟動該分支的連線上執行。commit xid={0}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:542
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:565
 #, java-format
 msgid "One-phase commit with unknown xid. commit xid={0}, currentXid={1}"
-msgstr ""
+msgstr "單階段 commit 使用了未知的 xid。commit xid={0}, currentXid={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:546
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:569
 #, java-format
-msgid "commit called before end. commit xid={0}, state={1}"
-msgstr ""
+msgid "commit() called before end(). commit xid={0}, state={1}"
+msgstr "在 end() 之前呼叫 commit()。commit xid={0}, state={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:557
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:581
 #, java-format
 msgid "Error during one-phase commit. commit xid={0}"
+msgstr "執行單階段 commit 時發生錯誤。commit xid={0}"
+
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:614
+#, java-format
+msgid ""
+"2nd phase commit cannot be issued while an XA branch is active on this "
+"connection. commit xid={0}, currentXid={1}, state={2}"
 msgstr ""
+"當此連線上有 XA 分支進行中時,無法執行第二階段 commit。commit xid={0}, "
+"currentXid={1}, state={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:585
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:627
 #, java-format
 msgid ""
-"Not implemented: 2nd phase commit must be issued using an idle connection. "
-"commit xid={0}, currentXid={1}, state={2}, transactionState={3}"
+"Cannot 2nd phase commit prepared transaction while a local transaction is in "
+"progress on this connection. Commit or rollback the local transaction first. "
+"commit xid={0}, transactionState={1}"
 msgstr ""
+"當此連線上有本機交易進行中時,無法對已 prepare 的交易執行第二階段 commit。請"
+"先 commit 或 rollback 本機交易。commit xid={0}, transactionState={1}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:618
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:654
 #, java-format
 msgid ""
 "Error committing prepared transaction. commit xid={0}, preparedXid={1}, "
 "currentXid={2}"
 msgstr ""
+"提交(commit)已 prepare 的交易時發生錯誤。commit xid={0}, preparedXid={1}, "
+"currentXid={2}"
 
-#: src/main/java/org/postgresql/xa/PGXAConnection.java:635
+#: src/main/java/org/postgresql/xa/PGXAConnection.java:671
 #, java-format
 msgid "Heuristic commit/rollback not supported. forget xid={0}"
-msgstr ""
+msgstr "不支援啟發式(heuristic) commit/rollback。forget xid={0}"
diff --git a/pgjdbc/src/main/java/org/postgresql/xa/PGXAConnection.java b/pgjdbc/src/main/java/org/postgresql/xa/PGXAConnection.java
index 8bca9a4575..c1926a9906 100644
--- a/pgjdbc/src/main/java/org/postgresql/xa/PGXAConnection.java
+++ b/pgjdbc/src/main/java/org/postgresql/xa/PGXAConnection.java
@@ -24,7 +24,6 @@
 import java.sql.Connection;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.logging.Level;
@@ -43,6 +42,18 @@
  *
  * <p>Two-phase commit requires PostgreSQL server version 8.1 or higher.</p>
  *
+ * <p>XA-protocol SQL (BEGIN, PREPARE TRANSACTION, COMMIT, ROLLBACK, COMMIT PREPARED,
+ * ROLLBACK PREPARED, and the recover() SELECT) is sent through
+ * {@link org.postgresql.core.BaseConnection#execSQLUpdate(String) execSQLUpdate} /
+ * {@link org.postgresql.core.BaseConnection#execSQLQuery(String) execSQLQuery}, both of which set
+ * {@code QueryExecutor.QUERY_SUPPRESS_BEGIN}. As a result, the caller's JDBC {@code autoCommit}
+ * flag is invariant across every {@code XAResource} call; the driver never prepends a {@code BEGIN}
+ * of its own around XA SQL.</p>
+ *
+ * <p>{@link #getConnection()} is the exception: when {@code state == IDLE} it sets
+ * {@code autoCommit=true} on the returned handle, because that path returns a JDBC handle in the
+ * JDBC default state to the caller and is not part of the XA protocol.</p>
+ *
  * @author Heikki Linnakangas ([email protected])
  */
 public class PGXAConnection extends PGPooledConnection implements XAConnection, XAResource {
@@ -61,13 +72,6 @@ public class PGXAConnection extends PGPooledConnection implements XAConnection,
   private @Nullable Xid preparedXid;
   private boolean committedOrRolledBack;
 
-  /*
-   * When an XA transaction is started, we put the underlying connection into non-autocommit mode.
-   * The old setting is saved in localAutoCommitMode, so that we can restore it when the XA
-   * transaction ends and the connection returns into local transaction mode.
-   */
-  private boolean localAutoCommitMode = true;
-
   private void debug(String s) {
     if (LOGGER.isLoggable(Level.FINEST)) {
       LOGGER.log(Level.FINEST, "XAResource {0}: {1}", new Object[]{Integer.toHexString(this.hashCode()), s});
@@ -127,11 +131,11 @@ private class ConnectionHandler implements InvocationHandler {
         String methodName = method.getName();
         if ("commit".equals(methodName)
             || "rollback".equals(methodName)
-            || "setSavePoint".equals(methodName)
-            || ("setAutoCommit".equals(methodName) && castNonNull((Boolean) args[0]))) {
+            || "setSavepoint".equals(methodName)
+            || "setAutoCommit".equals(methodName)) {
           throw new PSQLException(
               GT.tr(
-                  "Transaction control methods setAutoCommit(true), commit, rollback and setSavePoint not allowed while an XA transaction is active."),
+                  "Transaction control methods setAutoCommit, commit, rollback and setSavepoint are not allowed while an XA transaction is active."),
               PSQLState.OBJECT_NOT_IN_STATE);
         }
       }
@@ -197,7 +201,9 @@ public void start(Xid xid, int flags) throws XAException {
     }
 
     if (state == State.ACTIVE) {
-      throw new PGXAException(GT.tr("Connection is busy with another transaction"),
+      throw new PGXAException(
+          GT.tr("Connection is already associated with an active XA branch. End the current branch before starting a new one. start xid={0}, currentXid={1}, state={2}, flags={3}",
+              xid, currentXid, state, flags),
           XAException.XAER_PROTO);
     }
 
@@ -206,7 +212,7 @@ public void start(Xid xid, int flags) throws XAException {
 
     // Check implementation deficiency preconditions
     if (flags == TMRESUME) {
-      throw new PGXAException(GT.tr("suspend/resume not implemented"), XAException.XAER_RMERR);
+      throw new PGXAException(GT.tr("Suspend/resume not implemented"), XAException.XAER_RMERR);
     }
 
     // It's ok to join an ended transaction. WebLogic does that.
@@ -229,14 +235,16 @@ public void start(Xid xid, int flags) throws XAException {
           XAException.XAER_RMERR);
     }
 
-    // Only need save localAutoCommitMode for NOFLAGS, TMRESUME and TMJOIN already saved old
-    // localAutoCommitMode.
+    // TMNOFLAGS opens a fresh server-side transaction with an explicit BEGIN sent below
+    // QUERY_SUPPRESS_BEGIN so the JDBC autoCommit flag is left alone. TMJOIN attaches to an existing
+    // (ended) branch, where BEGIN was already sent at the prior start(TMNOFLAGS) call, so no SQL is
+    // issued here.
     if (flags == TMNOFLAGS) {
       try {
-        localAutoCommitMode = conn.getAutoCommit();
-        conn.setAutoCommit(false);
+        conn.execSQLUpdate("BEGIN");
       } catch (SQLException ex) {
-        throw new PGXAException(GT.tr("Error disabling autocommit"), ex, XAException.XAER_RMERR);
+        throw new PGXAException(GT.tr("Error opening transaction. start xid={0}", xid), ex,
+            XAException.XAER_RMERR);
       }
     }
 
@@ -283,13 +291,14 @@ public void end(Xid xid, int flags) throws XAException {
     }
 
     if (state != State.ACTIVE || !xid.equals(currentXid)) {
-      throw new PGXAException(GT.tr("tried to call end without corresponding start call. state={0}, start xid={1}, currentXid={2}, preparedXid={3}", state, xid, currentXid, preparedXid),
+      throw new PGXAException(GT.tr("end() called without a matching start(). end xid={0}, currentXid={1}, state={2}, preparedXid={3}",
+              xid, currentXid, state, preparedXid),
           XAException.XAER_PROTO);
     }
 
     // Check implementation deficiency preconditions
     if (flags == XAResource.TMSUSPEND) {
-      throw new PGXAException(GT.tr("suspend/resume not implemented"), XAException.XAER_RMERR);
+      throw new PGXAException(GT.tr("Suspend/resume not implemented"), XAException.XAER_RMERR);
     }
 
     // We ignore TMFAIL. It's just a hint to the RM. We could roll back immediately
@@ -329,7 +338,8 @@ public int prepare(Xid xid) throws XAException {
             + " while it was prepared in past with prepared xid " + preparedXid);
       }
       throw new PGXAException(GT.tr(
-          "Preparing already prepared transaction, the prepared xid {0}, prepare xid={1}", preparedXid, xid), XAException.XAER_PROTO);
+          "Transaction was already prepared on this connection. prepare xid={0}, preparedXid={1}", xid, preparedXid),
+          XAException.XAER_PROTO);
     } else if (currentXid == null) {
       throw new PGXAException(GT.tr(
           "Current connection does not have an associated xid. prepare xid={0}", xid), XAException.XAER_NOTA);
@@ -339,11 +349,23 @@ public int prepare(Xid xid) throws XAException {
         debug("Error to prepare xid " + xid + ", the current connection already bound with xid " + currentXid);
       }
       throw new PGXAException(GT.tr(
-          "Not implemented: Prepare must be issued using the same connection that started the transaction. currentXid={0}, prepare xid={1}", currentXid, xid),
+          "Prepare must be issued on the connection that started the branch. Transaction interleaving is not supported. prepare xid={0}, currentXid={1}", xid, currentXid),
           XAException.XAER_RMERR);
     }
     if (state != State.ENDED) {
-      throw new PGXAException(GT.tr("Prepare called before end. prepare xid={0}, state={1}", xid), XAException.XAER_INVAL);
+      throw new PGXAException(GT.tr("Prepare called before end(). prepare xid={0}, state={1}", xid, state),
+          XAException.XAER_INVAL);
+    }
+
+    try {
+      String s = RecoveredXid.xidToString(xid);
+      conn.execSQLUpdate("PREPARE TRANSACTION '" + s + "'");
+    } catch (SQLException ex) {
+      // Mutate XA state only after PREPARE TRANSACTION succeeds. On failure state stays ENDED with
+      // currentXid set, so the transaction manager can recover by calling rollback(xid) — which
+      // takes the active-branch path and issues a plain ROLLBACK against the still-open server
+      // transaction.
+      throw new PGXAException(GT.tr("Error preparing transaction. prepare xid={0}", xid), ex, mapSQLStateToXAErrorCode(ex));
     }
 
     state = State.IDLE;
@@ -351,12 +373,6 @@ public int prepare(Xid xid) throws XAException {
     currentXid = null;
 
     try {
-      String s = RecoveredXid.xidToString(xid);
-
-      try (Statement stmt = conn.createStatement()) {
-        stmt.executeUpdate("PREPARE TRANSACTION '" + s + "'");
-      }
-      conn.setAutoCommit(localAutoCommitMode);
       if (conn.isReadOnly()) {
         return XA_RDONLY;
       } else {
@@ -381,6 +397,10 @@ public int prepare(Xid xid) throws XAException {
    */
   @Override
   public Xid[] recover(int flag) throws XAException {
+    if (LOGGER.isLoggable(Level.FINEST)) {
+      debug("recover called with flag=" + flag);
+    }
+
     // Check preconditions
     if (flag != TMSTARTRSCAN && flag != TMENDRSCAN && flag != TMNOFLAGS
         && flag != (TMSTARTRSCAN | TMENDRSCAN)) {
@@ -394,36 +414,31 @@ public Xid[] recover(int flag) throws XAException {
     // an empty array otherwise.
     if ((flag & TMSTARTRSCAN) == 0) {
       return new Xid[0];
-    } else {
-      try {
-        Statement stmt = conn.createStatement();
-        try {
-          // If this connection is simultaneously used for a transaction,
-          // this query gets executed inside that transaction. It's OK,
-          // except if the transaction is in abort-only state and the
-          // backed refuses to process new queries. Hopefully not a problem
-          // in practise.
-          // PostgreSQL requires the user to own the transaction in order to successfully execute
-          // commit prepared or rollback prepared
-          // See https://github.com/postgres/postgres/blob/15afb7d61c142a9254a6612c6774aff4f358fb69/src/backend/acces...
-          ResultSet rs = stmt.executeQuery(
-              "SELECT gid FROM pg_prepared_xacts where database = current_database() and pg_has_role(current_user, owner, 'member')");
-          List<Xid> l = new ArrayList<>();
-          while (rs.next()) {
-            Xid recoveredXid = RecoveredXid.stringToXid(castNonNull(rs.getString(1)));
-            if (recoveredXid != null) {
-              l.add(recoveredXid);
-            }
-          }
-          rs.close();
+    }
 
-          return l.toArray(new Xid[0]);
-        } finally {
-          stmt.close();
+    // execSQLQuery passes QUERY_SUPPRESS_BEGIN, so this SELECT never causes pgjdbc to prepend a
+    // BEGIN regardless of the caller's autoCommit setting. If the caller has a local transaction
+    // already open on this connection, the SELECT runs inside it as a metadata read; it does not
+    // extend or close the caller's transaction.
+    //
+    // PostgreSQL requires the user to own the transaction in order to successfully execute COMMIT
+    // PREPARED or ROLLBACK PREPARED, so the WHERE clause filters by current_user.
+    // See https://github.com/postgres/postgres/blob/15afb7d61c142a9254a6612c6774aff4f358fb69/src/backend/acces...
+    try (ResultSet rs = conn.execSQLQuery(
+        "SELECT gid FROM pg_prepared_xacts where database = current_database() and pg_has_role(current_user, owner, 'member')")) {
+      List<Xid> l = new ArrayList<>();
+      while (rs.next()) {
+        Xid recoveredXid = RecoveredXid.stringToXid(castNonNull(rs.getString(1)));
+        if (recoveredXid != null) {
+          l.add(recoveredXid);
         }
-      } catch (SQLException ex) {
-        throw new PGXAException(GT.tr("Error during recover"), ex, XAException.XAER_RMERR);
       }
+      if (LOGGER.isLoggable(Level.FINEST)) {
+        debug("recover returning " + l.size() + " prepared xid(s)");
+      }
+      return l.toArray(new Xid[0]);
+    } catch (SQLException ex) {
+      throw new PGXAException(GT.tr("Error during recover. flag={0}", flag), ex, XAException.XAER_RMERR);
     }
   }
 
@@ -453,20 +468,29 @@ public void rollback(Xid xid) throws XAException {
 
     try {
       if (currentXid != null && currentXid.equals(xid)) {
+        // Active branch: ROLLBACK closes the server transaction that start() opened. Use the
+        // QUERY_SUPPRESS_BEGIN path so it works regardless of the caller's autoCommit, and so it
+        // accepts a connection that is in TransactionState.FAILED (PG accepts ROLLBACK there).
+        conn.execSQLUpdate("ROLLBACK");
         state = State.IDLE;
         currentXid = null;
-        conn.rollback();
-        conn.setAutoCommit(localAutoCommitMode);
       } else {
-        String s = RecoveredXid.xidToString(xid);
-
-        conn.setAutoCommit(true);
-        Statement stmt = conn.createStatement();
-        try {
-          stmt.executeUpdate("ROLLBACK PREPARED '" + s + "'");
-        } finally {
-          stmt.close();
+        // Prepared branch: ROLLBACK PREPARED is not allowed inside a transaction block. Refuse
+        // upfront rather than commit/rollback the caller's local transaction silently. XAER_RMFAIL
+        // lets the transaction manager retry on a fresh XAResource.
+        if (conn.getTransactionState() != TransactionState.IDLE) {
+          if (LOGGER.isLoggable(Level.FINEST)) {
+            debug("rollback prepared rejected: local transaction in progress. rollback xid=" + xid
+                + ", transactionState=" + conn.getTransactionState());
+          }
+          throw new PGXAException(
+              GT.tr("Cannot rollback prepared transaction while a local transaction is in progress on this connection. "
+                  + "Commit or rollback the local transaction first. rollback xid={0}, transactionState={1}",
+                  xid, conn.getTransactionState()),
+              XAException.XAER_RMFAIL);
         }
+        String s = RecoveredXid.xidToString(xid);
+        conn.execSQLUpdate("ROLLBACK PREPARED '" + s + "'");
       }
       committedOrRolledBack = true;
     } catch (SQLException ex) {
@@ -486,7 +510,7 @@ public void rollback(Xid xid) throws XAException {
         }
         errorCode = XAException.XAER_RMFAIL;
       }
-      throw new PGXAException(GT.tr("Error rolling back prepared transaction. rollback xid={0}, preparedXid={1}, currentXid={2}", xid, preparedXid, currentXid), ex, errorCode);
+      throw new PGXAException(GT.tr("Error rolling back transaction. rollback xid={0}, preparedXid={1}, currentXid={2}", xid, preparedXid, currentXid), ex, errorCode);
     }
   }
 
@@ -524,38 +548,42 @@ public void commit(Xid xid, boolean onePhase) throws XAException {
    * </ol>
    */
   private void commitOnePhase(Xid xid) throws XAException {
-    try {
-      // Check preconditions
-      if (xid.equals(preparedXid)) { // TODO: check if the condition should be negated
-        throw new PGXAException(GT.tr("One-phase commit called for xid {0} but connection was prepared with xid {1}",
-            xid, preparedXid), XAException.XAER_PROTO);
-      }
-      if (currentXid == null && !committedOrRolledBack) {
-        // In fact, we don't know if xid is bogus, or if it just wasn't associated with this connection.
-        // Assume it's our fault.
-        // TODO: pick proper error message. Current one does not clarify what went wrong
-        throw new PGXAException(GT.tr(
-            "Not implemented: one-phase commit must be issued using the same connection that was used to start it", xid),
-            XAException.XAER_RMERR);
-      }
-      if (!xid.equals(currentXid) || committedOrRolledBack) {
-        throw new PGXAException(GT.tr("One-phase commit with unknown xid. commit xid={0}, currentXid={1}",
-            xid, currentXid), XAException.XAER_NOTA);
-      }
-      if (state != State.ENDED) {
-        throw new PGXAException(GT.tr("commit called before end. commit xid={0}, state={1}", xid, state), XAException.XAER_PROTO);
-      }
-
-      // Preconditions are met. Commit
-      state = State.IDLE;
-      currentXid = null;
-      committedOrRolledBack = true;
+    // Check preconditions
+    if (xid.equals(preparedXid)) { // TODO: check if the condition should be negated
+      throw new PGXAException(GT.tr("One-phase commit called for xid {0} but connection was prepared with xid {1}",
+          xid, preparedXid), XAException.XAER_PROTO);
+    }
+    if (currentXid == null && !committedOrRolledBack) {
+      // We cannot tell whether xid is unknown to this resource manager or whether the caller
+      // routed the commit to the wrong connection. Treat it as the latter, which is the typical
+      // application-server bug.
+      throw new PGXAException(GT.tr(
+          "One-phase commit must be issued on the connection that started the branch. commit xid={0}", xid),
+          XAException.XAER_RMERR);
+    }
+    if (!xid.equals(currentXid) || committedOrRolledBack) {
+      throw new PGXAException(GT.tr("One-phase commit with unknown xid. commit xid={0}, currentXid={1}",
+          xid, currentXid), XAException.XAER_NOTA);
+    }
+    if (state != State.ENDED) {
+      throw new PGXAException(GT.tr("commit() called before end(). commit xid={0}, state={1}", xid, state),
+          XAException.XAER_PROTO);
+    }
 
-      conn.commit();
-      conn.setAutoCommit(localAutoCommitMode);
+    // Send COMMIT through QUERY_SUPPRESS_BEGIN so it works regardless of the caller's autoCommit.
+    // Cannot use conn.commit() because PgConnection.commit() throws when autoCommit=true, and the
+    // new contract leaves autoCommit at whatever the caller set.
+    try {
+      conn.execSQLUpdate("COMMIT");
     } catch (SQLException ex) {
+      // Mutate XA state only after COMMIT succeeds. On failure state stays ENDED with currentXid
+      // set, so the transaction manager can recover by calling rollback(xid).
       throw new PGXAException(GT.tr("Error during one-phase commit. commit xid={0}", xid), ex, mapSQLStateToXAErrorCode(ex));
     }
+
+    state = State.IDLE;
+    currentXid = null;
+    committedOrRolledBack = true;
   }
 
   /**
@@ -575,28 +603,36 @@ private void commitOnePhase(Xid xid) throws XAException {
    * </ol>
    */
   private void commitPrepared(Xid xid) throws XAException {
-    try {
-      // Check preconditions. The connection mustn't be used for another
-      // other XA or local transaction, or the COMMIT PREPARED command
-      // would mess it up.
-      if (state != State.IDLE
-          || conn.getTransactionState() != TransactionState.IDLE) {
-        throw new PGXAException(
-            GT.tr("Not implemented: 2nd phase commit must be issued using an idle connection. commit xid={0}, currentXid={1}, state={2}, transactionState={3}", xid, currentXid, state, conn.getTransactionState()),
-            XAException.XAER_RMERR);
+    // The XA state of this XAResource must be IDLE — we cannot commit a prepared transaction while
+    // a different XA branch is still active on this connection.
+    if (state != State.IDLE) {
+      if (LOGGER.isLoggable(Level.FINEST)) {
+        debug("2-phase commit rejected: XA branch active. commit xid=" + xid
+            + ", currentXid=" + currentXid + ", state=" + state);
       }
+      throw new PGXAException(
+          GT.tr("2nd phase commit cannot be issued while an XA branch is active on this connection. "
+              + "commit xid={0}, currentXid={1}, state={2}", xid, currentXid, state),
+          XAException.XAER_PROTO);
+    }
+    // The underlying connection must also be outside any local transaction. COMMIT PREPARED is not
+    // allowed inside a transaction block, and we must not silently commit or roll back the caller's
+    // local work. XAER_RMFAIL lets the transaction manager retry on a fresh XAResource.
+    if (conn.getTransactionState() != TransactionState.IDLE) {
+      if (LOGGER.isLoggable(Level.FINEST)) {
+        debug("2-phase commit rejected: local transaction in progress. commit xid=" + xid
+            + ", transactionState=" + conn.getTransactionState());
+      }
+      throw new PGXAException(
+          GT.tr("Cannot 2nd phase commit prepared transaction while a local transaction is in progress on this connection. "
+              + "Commit or rollback the local transaction first. commit xid={0}, transactionState={1}",
+              xid, conn.getTransactionState()),
+          XAException.XAER_RMFAIL);
+    }
 
+    try {
       String s = RecoveredXid.xidToString(xid);
-
-      localAutoCommitMode = conn.getAutoCommit();
-      conn.setAutoCommit(true);
-      Statement stmt = conn.createStatement();
-      try {
-        stmt.executeUpdate("COMMIT PREPARED '" + s + "'");
-      } finally {
-        stmt.close();
-        conn.setAutoCommit(localAutoCommitMode);
-      }
+      conn.execSQLUpdate("COMMIT PREPARED '" + s + "'");
       committedOrRolledBack = true;
     } catch (SQLException ex) {
       int errorCode = XAException.XAER_RMERR;
diff --git a/pgjdbc/src/test/java/org/postgresql/test/xa/XADataSourceTest.java b/pgjdbc/src/test/java/org/postgresql/test/xa/XADataSourceTest.java
index aae4f83593..15a50a9718 100644
--- a/pgjdbc/src/test/java/org/postgresql/test/xa/XADataSourceTest.java
+++ b/pgjdbc/src/test/java/org/postgresql/test/xa/XADataSourceTest.java
@@ -14,6 +14,8 @@
 import static org.junit.jupiter.api.Assertions.fail;
 import static org.junit.jupiter.api.Assumptions.assumeTrue;
 
+import org.postgresql.core.BaseConnection;
+import org.postgresql.core.TransactionState;
 import org.postgresql.test.TestUtil;
 import org.postgresql.test.annotations.tags.Xa;
 import org.postgresql.test.jdbc2.optional.BaseDataSourceTest;
@@ -324,35 +326,36 @@ void autoCommit() throws Exception {
     // per normal JDBC rules.
     assertTrue(conn.getAutoCommit());
 
-    // When in an XA transaction, autocommit should be false
+    // XAResource methods leave the JDBC autoCommit flag invariant (see xaMethods_doNotChangeAutoCommit
+    // for the full per-method check). Spot-check the one-phase and two-phase paths here.
     xaRes.start(xid, XAResource.TMNOFLAGS);
-    assertFalse(conn.getAutoCommit());
+    assertTrue(conn.getAutoCommit(), "start() must not change autoCommit");
     xaRes.end(xid, XAResource.TMSUCCESS);
-    assertFalse(conn.getAutoCommit());
+    assertTrue(conn.getAutoCommit(), "end() must not change autoCommit");
     xaRes.commit(xid, true);
-    assertTrue(conn.getAutoCommit());
+    assertTrue(conn.getAutoCommit(), "one-phase commit() must not change autoCommit");
 
     xaRes.start(xid, XAResource.TMNOFLAGS);
     xaRes.end(xid, XAResource.TMSUCCESS);
     xaRes.prepare(xid);
-    assertTrue(conn.getAutoCommit());
+    assertTrue(conn.getAutoCommit(), "prepare() must not change autoCommit");
     xaRes.commit(xid, false);
-    assertTrue(conn.getAutoCommit());
+    assertTrue(conn.getAutoCommit(), "two-phase commit() must not change autoCommit");
 
-    // Check that autocommit is reset to true after a 1-phase rollback
+    // Same for a 1-phase rollback
     xaRes.start(xid, XAResource.TMNOFLAGS);
     xaRes.end(xid, XAResource.TMSUCCESS);
     xaRes.rollback(xid);
-    assertTrue(conn.getAutoCommit());
+    assertTrue(conn.getAutoCommit(), "1-phase rollback() must not change autoCommit");
 
-    // Check that autocommit is reset to true after a 2-phase rollback
+    // Same for a 2-phase rollback
     xaRes.start(xid, XAResource.TMNOFLAGS);
     xaRes.end(xid, XAResource.TMSUCCESS);
     xaRes.prepare(xid);
     xaRes.rollback(xid);
-    assertTrue(conn.getAutoCommit());
+    assertTrue(conn.getAutoCommit(), "2-phase rollback() must not change autoCommit");
 
-    // Check that autoCommit is set correctly after a getConnection-call
+    // close()+getConnection() during an active XA branch returns to the same server transaction
     conn = xaconn.getConnection();
     assertTrue(conn.getAutoCommit());
 
@@ -364,7 +367,9 @@ void autoCommit() throws Exception {
 
     conn.close();
     conn = xaconn.getConnection();
-    assertFalse(conn.getAutoCommit());
+    // state != IDLE on getConnection(), so the JDBC handle is not reset to autoCommit=true here.
+    // The physical connection's autoCommit is whatever it was before start() (true in this test).
+    assertTrue(conn.getAutoCommit());
 
     Timestamp ts2 = getTransactionTimestamp(conn);
 
@@ -846,4 +851,348 @@ void mappingOfConstraintViolations() throws Exception {
    *
    * xaRes.commit(xid1, true); xaRes.commit(xid2, true); xaRes.commit(xid3, true); }
    */
+
+  private TransactionState transactionState(Connection c) throws SQLException {
+    return c.unwrap(BaseConnection.class).getTransactionState();
+  }
+
+  /**
+   * recover() on a connection with autoCommit=false must not leave the connection in OPEN: the
+   * SELECT against pg_prepared_xacts uses QUERY_SUPPRESS_BEGIN, so pgjdbc does not prepend a BEGIN.
+   * A follow-up commit(xid, false) on the recovered xid then succeeds, instead of failing the
+   * "2nd phase commit must be issued using an idle connection" precondition.
+   */
+  @Test
+  void recover_withAutoCommitFalse_doesNotOpenTransaction() throws Exception {
+    Xid xid = new CustomXid(0xa1000001);
+    xaRes.start(xid, XAResource.TMNOFLAGS);
+    conn.createStatement().executeUpdate("INSERT INTO testxa1 VALUES (1)");
+    xaRes.end(xid, XAResource.TMSUCCESS);
+    xaRes.prepare(xid);
+
+    // Simulate the managed-datasource scenario: the recovery flow lands on a connection that the
+    // pool has put into autoCommit=false.
+    conn.setAutoCommit(false);
+    assertEquals(TransactionState.IDLE, transactionState(conn),
+        "autoCommit=false alone must not start a transaction");
+
+    Xid[] recovered = xaRes.recover(XAResource.TMSTARTRSCAN);
+    assertTrue(Arrays.asList(recovered).contains(xid), "Did not recover prepared xid");
+    assertEquals(TransactionState.IDLE, transactionState(conn),
+        "recover() must leave transactionState=IDLE on an autoCommit=false connection");
+
+    // Same XAResource, same xid → 2nd phase commit must succeed.
+    xaRes.commit(xid, false);
+    assertEquals(TransactionState.IDLE, transactionState(conn));
+  }
+
+  /**
+   * recover() called on a connection that already has an open local transaction must not commit
+   * or roll back that transaction. The SELECT against pg_prepared_xacts runs inside the caller's
+   * transaction with QUERY_SUPPRESS_BEGIN; transactionState ends where it started.
+   */
+  @Test
+  void recover_withUserTransactionInFlight_doesNotCommitUserWork() throws Exception {
+    // First, prepare a transaction so recover() has something to return.
+    Xid prepared = new CustomXid(0xa1000002);
+    xaRes.start(prepared, XAResource.TMNOFLAGS);
+    conn.createStatement().executeUpdate("INSERT INTO testxa1 VALUES (2)");
+    xaRes.end(prepared, XAResource.TMSUCCESS);
+    xaRes.prepare(prepared);
+
+    // Now open a local transaction on the same physical connection with an unrelated INSERT.
+    conn.setAutoCommit(false);
+    conn.createStatement().executeUpdate("INSERT INTO testxa1 VALUES (99)");
+    assertEquals(TransactionState.OPEN, transactionState(conn));
+
+    // recover() must see the prepared xid and leave the local transaction OPEN.
+    Xid[] recovered = xaRes.recover(XAResource.TMSTARTRSCAN);
+    assertTrue(Arrays.asList(recovered).contains(prepared), "Did not recover prepared xid");
+    assertEquals(TransactionState.OPEN, transactionState(conn),
+        "recover() must not change the caller's transactionState");
+
+    // Roll back the local transaction. The unrelated INSERT must be gone.
+    conn.rollback();
+    try (ResultSet rs = dbConn.createStatement().executeQuery("SELECT count(*) FROM testxa1 WHERE foo = 99")) {
+      rs.next();
+      assertEquals(0, rs.getInt(1), "recover() must not have committed the caller's INSERT");
+    }
+
+    // Clean up the prepared transaction.
+    conn.setAutoCommit(true);
+    xaRes.rollback(prepared);
+  }
+
+  /**
+   * When the caller's local transaction is already in FAILED state, recover() cannot read
+   * pg_prepared_xacts (PG rejects the SELECT with "current transaction is aborted"). The driver
+   * surfaces this as XAException(XAER_RMERR); the caller's transaction is left untouched.
+   */
+  @Test
+  void recover_inFailedTransaction_failsWithRMERR() throws Exception {
+    conn.setAutoCommit(false);
+    // Force the connection into TransactionState.FAILED by running a query that errors inside the
+    // caller's transaction.
+    try (Statement st = conn.createStatement()) {
+      st.executeUpdate("SELECT 1 FROM no_such_table_for_xa_test");
+      fail("Expected SQL error to put transaction into FAILED");
+    } catch (SQLException expected) {
+      // ignore
+    }
+    assertEquals(TransactionState.FAILED, transactionState(conn));
+
+    try {
+      xaRes.recover(XAResource.TMSTARTRSCAN);
+      fail("recover() must fail on a FAILED transaction");
+    } catch (XAException xae) {
+      assertEquals(XAException.XAER_RMERR, xae.errorCode,
+          "recover() on a FAILED transaction expects XAER_RMERR");
+    }
+    assertEquals(TransactionState.FAILED, transactionState(conn),
+        "recover() must not silently reset the caller's transaction");
+
+    // Clean up so the @AfterEach connection close does not complain.
+    conn.rollback();
+    conn.setAutoCommit(true);
+  }
+
+  /**
+   * commit(xid, false) on a connection where the caller has left a local transaction open must
+   * fail with XAER_RMFAIL, not silently commit the caller's work. XAER_RMFAIL signals the
+   * transaction manager to retry on a fresh XAResource.
+   */
+  @Test
+  void commitPrepared_failsCleanlyOnDirtyConnection() throws Exception {
+    // Prepare a transaction on a separate XAConnection so we can attempt the 2-phase commit on a
+    // connection that is also holding a local transaction.
+    Xid prepared = new CustomXid(0xa1000003);
+    XAConnection xaconn2 = xaDs.getXAConnection();
+    try {
+      XAResource xaRes2 = xaconn2.getXAResource();
+      Connection conn2 = xaconn2.getConnection();
+      xaRes2.start(prepared, XAResource.TMNOFLAGS);
+      conn2.createStatement().executeUpdate("INSERT INTO testxa1 VALUES (3)");
+      xaRes2.end(prepared, XAResource.TMSUCCESS);
+      xaRes2.prepare(prepared);
+    } finally {
+      xaconn2.close();
+    }
+
+    // Open a local transaction on the recovery connection.
+    conn.setAutoCommit(false);
+    conn.createStatement().executeUpdate("INSERT INTO testxa1 VALUES (88)");
+    assertEquals(TransactionState.OPEN, transactionState(conn));
+
+    try {
+      xaRes.commit(prepared, false);
+      fail("commit(prepared, false) must fail on a connection with an open local transaction");
+    } catch (XAException xae) {
+      assertEquals(XAException.XAER_RMFAIL, xae.errorCode,
+          "commit(prepared, false) on a dirty connection expects XAER_RMFAIL");
+    }
+    assertEquals(TransactionState.OPEN, transactionState(conn),
+        "commit(prepared, false) must not touch the caller's transaction");
+
+    // Clean up.
+    conn.rollback();
+    conn.setAutoCommit(true);
+    xaRes.rollback(prepared);
+  }
+
+  /**
+   * Symmetric to {@link #commitPrepared_failsCleanlyOnDirtyConnection()}: rollback(xid) of a
+   * prepared transaction on a connection with an open local transaction must fail with
+   * XAER_RMFAIL, not silently roll back the caller's work.
+   */
+  @Test
+  void rollbackPrepared_failsCleanlyOnDirtyConnection() throws Exception {
+    Xid prepared = new CustomXid(0xa1000004);
+    XAConnection xaconn2 = xaDs.getXAConnection();
+    try {
+      XAResource xaRes2 = xaconn2.getXAResource();
+      Connection conn2 = xaconn2.getConnection();
+      xaRes2.start(prepared, XAResource.TMNOFLAGS);
+      conn2.createStatement().executeUpdate("INSERT INTO testxa1 VALUES (4)");
+      xaRes2.end(prepared, XAResource.TMSUCCESS);
+      xaRes2.prepare(prepared);
+    } finally {
+      xaconn2.close();
+    }
+
+    conn.setAutoCommit(false);
+    conn.createStatement().executeUpdate("INSERT INTO testxa1 VALUES (77)");
+    assertEquals(TransactionState.OPEN, transactionState(conn));
+
+    try {
+      xaRes.rollback(prepared);
+      fail("rollback(prepared) must fail on a connection with an open local transaction");
+    } catch (XAException xae) {
+      assertEquals(XAException.XAER_RMFAIL, xae.errorCode,
+          "rollback(prepared) on a dirty connection expects XAER_RMFAIL");
+    }
+    assertEquals(TransactionState.OPEN, transactionState(conn),
+        "rollback(prepared) must not touch the caller's transaction");
+
+    // Clean up.
+    conn.rollback();
+    conn.setAutoCommit(true);
+    xaRes.rollback(prepared);
+  }
+
+  /**
+   * XAResource methods must not change the caller's JDBC autoCommit flag on either the success or
+   * the failure path. Verified on every method in the lifecycle.
+   */
+  @Test
+  void xaMethods_doNotChangeAutoCommit() throws Exception {
+    for (boolean initial : new boolean[]{true, false}) {
+      // Reset the connection to a known state before each iteration.
+      if (!conn.getAutoCommit()) {
+        conn.rollback();
+      }
+      conn.setAutoCommit(initial);
+      assertEquals(initial, conn.getAutoCommit(), "precondition for initial=" + initial);
+
+      Xid xid = new CustomXid(0xa1000010 + (initial ? 1 : 0));
+
+      xaRes.start(xid, XAResource.TMNOFLAGS);
+      assertEquals(initial, conn.getAutoCommit(), "start() must not change autoCommit");
+
+      conn.createStatement().executeUpdate("INSERT INTO testxa1 VALUES (10)");
+      assertEquals(initial, conn.getAutoCommit(), "user SQL must not change autoCommit");
+
+      xaRes.end(xid, XAResource.TMSUCCESS);
+      assertEquals(initial, conn.getAutoCommit(), "end() must not change autoCommit");
+
+      xaRes.prepare(xid);
+      assertEquals(initial, conn.getAutoCommit(), "prepare() must not change autoCommit");
+
+      xaRes.commit(xid, false);
+      assertEquals(initial, conn.getAutoCommit(), "2-phase commit() must not change autoCommit");
+
+      Xid[] recovered = xaRes.recover(XAResource.TMSTARTRSCAN);
+      Arrays.toString(recovered); // silence unused warnings; the call is the point
+      assertEquals(initial, conn.getAutoCommit(), "recover() must not change autoCommit");
+    }
+
+    // Also check the failure path: a forced PREPARE TRANSACTION failure via a deferred FK
+    // violation must leave autoCommit untouched.
+    Xid xid = new CustomXid(0xa1000020);
+    conn.setAutoCommit(true);
+    xaRes.start(xid, XAResource.TMNOFLAGS);
+    conn.createStatement().executeUpdate("SET CONSTRAINTS ALL DEFERRED");
+    conn.createStatement().executeUpdate("INSERT INTO testxa3 VALUES (404)");
+    xaRes.end(xid, XAResource.TMSUCCESS);
+    try {
+      xaRes.prepare(xid);
+      fail("prepare() with a deferred constraint violation must fail");
+    } catch (XAException expected) {
+      // ignore
+    }
+    assertTrue(conn.getAutoCommit(),
+        "prepare() must not change autoCommit even when PREPARE TRANSACTION fails");
+
+    xaRes.rollback(xid);
+    assertTrue(conn.getAutoCommit());
+  }
+
+  /**
+   * When PREPARE TRANSACTION fails (here, on a deferred foreign-key constraint), the driver must leave the XA
+   * branch in a state where the transaction manager can recover it by calling rollback(xid).
+   * That means {@code state == ENDED} with {@code currentXid == xid}, so rollback(xid) takes the
+   * active-branch path and issues a plain ROLLBACK — not the prepared-branch path that would
+   * issue ROLLBACK PREPARED against a non-existent gid.
+   *
+   * <p>Reproduces the scenario from
+   * <a href="https://github.com/pgjdbc/pgjdbc/issues/3123">Issue #3123</a> (Narayana escalating
+   * a failed prepare to {@code HeuristicMixedException}) and
+   * <a href="https://github.com/pgjdbc/pgjdbc/issues/3153">Issue #3153</a> (the pgjdbc-internal
+   * diagnosis: rollback() should not return XAER_RMERR after a failed prepare).</p>
+   */
+  @Test
+  void prepareFailure_leavesBranchRollbackable() throws Exception {
+    // Use a deferred FK constraint violation to force PREPARE TRANSACTION to fail. The INSERT
+    // succeeds inside the branch, end() succeeds, but PREPARE evaluates the deferred constraint
+    // and rejects the commit.
+    Xid xid = new CustomXid(0xa1000030);
+    xaRes.start(xid, XAResource.TMNOFLAGS);
+    conn.createStatement().executeUpdate("SET CONSTRAINTS ALL DEFERRED");
+    conn.createStatement().executeUpdate("INSERT INTO testxa3 VALUES (777)");
+    xaRes.end(xid, XAResource.TMSUCCESS);
+    try {
+      xaRes.prepare(xid);
+      fail("PREPARE TRANSACTION with a deferred constraint violation must fail");
+    } catch (XAException expected) {
+      // ignore
+    }
+
+    // The driver must still let us roll back the active branch. The successful rollback issues
+    // ROLLBACK (active-branch path) and clears the INSERT from the server transaction. If state
+    // had been mutated to IDLE before SQL — as the pre-fix code did — rollback(xid) would have
+    // taken the prepared-branch path and tried ROLLBACK PREPARED against a gid the server has
+    // never seen.
+    xaRes.rollback(xid);
+
+    try (ResultSet rs = dbConn.createStatement().executeQuery("SELECT count(*) FROM testxa3 WHERE foo = 777")) {
+      rs.next();
+      assertEquals(0, rs.getInt(1), "rollback() after a failed prepare() must roll back the active branch");
+    }
+  }
+
+  /**
+   * The ConnectionHandler proxy must reject both setAutoCommit(true) and setAutoCommit(false)
+   * while an XA branch is active on the connection, per JTA 1.2 §3.4. The previous behaviour
+   * blocked only setAutoCommit(true).
+   */
+  @Test
+  void connectionHandler_rejectsBothAutoCommitDirections() throws Exception {
+    Xid xid = new CustomXid(0xa1000040);
+    xaRes.start(xid, XAResource.TMNOFLAGS);
+    try {
+      try {
+        conn.setAutoCommit(true);
+        fail("setAutoCommit(true) must be rejected during an active XA branch");
+      } catch (PSQLException expected) {
+        // ignore
+      }
+      try {
+        conn.setAutoCommit(false);
+        fail("setAutoCommit(false) must be rejected during an active XA branch");
+      } catch (PSQLException expected) {
+        // ignore
+      }
+    } finally {
+      xaRes.end(xid, XAResource.TMSUCCESS);
+      xaRes.rollback(xid);
+    }
+  }
+
+  /**
+   * The ConnectionHandler must also reject {@code setSavepoint()} and {@code setSavepoint(name)}
+   * while an XA branch is active, per JTA 1.2 §3.4. Until this fix the guard misspelled the
+   * method name as {@code setSavePoint}, so savepoints silently went through to the underlying
+   * connection.
+   */
+  @Test
+  void connectionHandler_rejectsSetSavepoint() throws Exception {
+    Xid xid = new CustomXid(0xa1000041);
+    xaRes.start(xid, XAResource.TMNOFLAGS);
+    try {
+      try {
+        conn.setSavepoint();
+        fail("setSavepoint() must be rejected during an active XA branch");
+      } catch (PSQLException expected) {
+        // ignore
+      }
+      try {
+        conn.setSavepoint("xa_sp");
+        fail("setSavepoint(name) must be rejected during an active XA branch");
+      } catch (PSQLException expected) {
+        // ignore
+      }
+    } finally {
+      xaRes.end(xid, XAResource.TMSUCCESS);
+      xaRes.rollback(xid);
+    }
+  }
 }


^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-26 16:39  "davecramer (@davecramer)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: davecramer (@davecramer) @ 2026-05-26 16:39 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/translation/bg.po)

I would add `are` not allowed

^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-26 16:42  "vlsi (@vlsi)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: vlsi (@vlsi) @ 2026-05-26 16:42 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/translation/bg.po)

Frankly, I tried to minimise the changes to the exception texts unless absolutely required as old exception messages might be literally located in handbooks, greps, etc.

Do you think it is worth overhaul the English messages?

^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-26 16:51  "davecramer (@davecramer)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: davecramer (@davecramer) @ 2026-05-26 16:51 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/translation/bg.po)

I would not support overhauling them. The only reason I mentioned it was because you were changing that line.

^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-26 16:51  "davecramer (@davecramer)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: davecramer (@davecramer) @ 2026-05-26 16:51 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

LGTM

^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-26 16:56  "vlsi (@vlsi)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: vlsi (@vlsi) @ 2026-05-26 16:56 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

(on pgjdbc/src/main/java/org/postgresql/translation/bg.po)

I've added `are` here

^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-27 09:11  "denis-anisimov (@denis-anisimov)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: denis-anisimov (@denis-anisimov) @ 2026-05-27 09:11 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

The original problem has been discovered with the driver using it with Geronimo as a TM inside TomEE.

If DataSource is configured using `DefaultAutoCommit false` property then method `XAResource::recover` begins a transaction with the previous driver version. And then it becomes impossible to complete recovery using methods "commit"/"rollback" since there is a check in the method "commitPrepared" against the opened transaction.

It throws XAException with RMERR ("-3" ) error code which is fatal for the TM, it may not be handled properly in any way.

Now the latest driver version with this fix is tested and there are no regressions noticed and the behavior of the "XAResource::recover" method is correct: there is no transaction anymore.

Also the check in the "commitPrepared"  method is corrected and it throws now RMFAIL ("-7") error which Geronimo TM handles properly.

^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-27 09:51  "vlsi (@vlsi)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: vlsi (@vlsi) @ 2026-05-27 09:51 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

Thanks @denis-anisimov for testing.

@davecramer the PR is ready: 38 tests green, resolves [#3123](https://github.com/pgjdbc/pgjdbc/issues/3123) and [#3153](https://github.com/pgjdbc/pgjdbc/issues/3153) (both from 2024), aligns the no-touch-autoCommit behaviour with Oracle / MSSQL / MySQL drivers.

One open question for you: the PR currently ships refreshed translations for all 16 message catalogues (machine-generated; only Russian was reviewed by hand). Two options:

a) Keep them as shipped. The catalogues stay in sync with the new English messages; any fuzzy entries can be refreshed by native speakers later.
b) Drop everything but Russian. Non-Russian users see English fallback for the new messages until a native speaker refreshes them.

I lean towards (a) but I'm fine with (b). Which do you prefer?

^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-27 10:14  "davecramer (@davecramer)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: davecramer (@davecramer) @ 2026-05-27 10:14 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

Can we change the name of this to `PGXAConnection no longer saves and restores the caller's autoCommit`

^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-27 10:54  "svendiedrichsen (@svendiedrichsen)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: svendiedrichsen (@svendiedrichsen) @ 2026-05-27 10:54 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

Dave Cramer ***@***.***> schrieb am Mi., 27. Mai 2026, 12:14:

> *davecramer* left a comment (pgjdbc/pgjdbc#4114)
> <https://github.com/pgjdbc/pgjdbc/pull/4114#issuecomment-4553596689;
>
> Can we change the name of this to PGXAConnection no longer saves and
> restores the caller's autoCommit
>
> —
> Reply to this email directly, view it on GitHub
> <https://github.com/pgjdbc/pgjdbc/pull/4114?email_source=notifications&email_token=AAXXNHRMCC6OLW...;,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAXXNHQO3WHUVH6Y2ZGEXSL4425ZNAVCNFSM6AAAAACZNVYZCS...;
> .
> You are receiving this because you are subscribed to this thread.Message
> ID: ***@***.***>
>


^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-27 10:55  "svendiedrichsen (@svendiedrichsen)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: svendiedrichsen (@svendiedrichsen) @ 2026-05-27 10:55 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

Ci

Sven Diedrichsen ***@***.***> schrieb am Mi., 27. Mai 2026,
12:54:

>
> Dave Cramer ***@***.***> schrieb am Mi., 27. Mai 2026,
> 12:14:
>
>> *davecramer* left a comment (pgjdbc/pgjdbc#4114)
>> <https://github.com/pgjdbc/pgjdbc/pull/4114#issuecomment-4553596689;
>>
>> Can we change the name of this to PGXAConnection no longer saves and
>> restores the caller's autoCommit
>>
>> —
>> Reply to this email directly, view it on GitHub
>> <https://github.com/pgjdbc/pgjdbc/pull/4114?email_source=notifications&email_token=AAXXNHRMCC6OLW...;,
>> or unsubscribe
>> <https://github.com/notifications/unsubscribe-auth/AAXXNHQO3WHUVH6Y2ZGEXSL4425ZNAVCNFSM6AAAAACZNVYZCS...;
>> .
>> You are receiving this because you are subscribed to this thread.Message
>> ID: ***@***.***>
>>
>


^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-27 16:12  "vlsi (@vlsi)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: vlsi (@vlsi) @ 2026-05-27 16:12 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

Done in 69a632e: title, commit subject, CHANGELOG and PR body updated. Let me know if anything else before merging.

^ permalink  raw  reply  [nested|flat] 13+ messages in thread

* Re: [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit
@ 2026-05-27 16:33  "davecramer (@davecramer)" <[email protected]>
  11 siblings, 0 replies; 13+ messages in thread

From: davecramer (@davecramer) @ 2026-05-27 16:33 UTC (permalink / raw)
  To: pgjdbc/pgjdbc <[email protected]>

LGTM

^ permalink  raw  reply  [nested|flat] 13+ messages in thread


end of thread, other threads:[~2026-05-27 16:33 UTC | newest]

Thread overview: 13+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2026-05-26 14:00 [pgjdbc/pgjdbc] PR #4114: fix: PGXAConnection no longer saves and restores the caller's autoCommit "vlsi (@vlsi)" <[email protected]>
2026-05-26 16:39 ` "davecramer (@davecramer)" <[email protected]>
2026-05-26 16:42 ` "vlsi (@vlsi)" <[email protected]>
2026-05-26 16:51 ` "davecramer (@davecramer)" <[email protected]>
2026-05-26 16:51 ` "davecramer (@davecramer)" <[email protected]>
2026-05-26 16:56 ` "vlsi (@vlsi)" <[email protected]>
2026-05-27 09:11 ` "denis-anisimov (@denis-anisimov)" <[email protected]>
2026-05-27 09:51 ` "vlsi (@vlsi)" <[email protected]>
2026-05-27 10:14 ` "davecramer (@davecramer)" <[email protected]>
2026-05-27 10:54 ` "svendiedrichsen (@svendiedrichsen)" <[email protected]>
2026-05-27 10:55 ` "svendiedrichsen (@svendiedrichsen)" <[email protected]>
2026-05-27 16:12 ` "vlsi (@vlsi)" <[email protected]>
2026-05-27 16:33 ` "davecramer (@davecramer)" <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox