Thread: [pgjdbc/pgjdbc] 050797: feat: read only transactions (#1252)

[pgjdbc/pgjdbc] 050797: feat: read only transactions (#1252)

From
Brett Okken
Date:
  Branch: refs/heads/master
  Home:   https://github.com/pgjdbc/pgjdbc
  Commit: 050797934a8a9c0ce2dff068eba14931988370ca
      https://github.com/pgjdbc/pgjdbc/commit/050797934a8a9c0ce2dff068eba14931988370ca
  Author: Brett Okken <brett.okken.os@gmail.com>
  Date:   2019-11-25 (Mon, 25 Nov 2019)

  Changed paths:
    M pgjdbc/src/main/java/org/postgresql/PGProperty.java
    M pgjdbc/src/main/java/org/postgresql/core/BaseConnection.java
    M pgjdbc/src/main/java/org/postgresql/core/QueryExecutor.java
    M pgjdbc/src/main/java/org/postgresql/core/v3/QueryExecutorImpl.java
    M pgjdbc/src/main/java/org/postgresql/ds/common/BaseDataSource.java
    M pgjdbc/src/main/java/org/postgresql/jdbc/PgConnection.java
    M pgjdbc/src/main/java/org/postgresql/jdbc/PgStatement.java
    M pgjdbc/src/test/java/org/postgresql/test/jdbc2/ConnectionTest.java

  Log Message:
  -----------
  feat: read only transactions (#1252)

* feat: read only transactions

If autocommit is set to false, read only will be set on begin
transaction.
If autocommit is true, it will continue to be managed at session level.
The queries to change session have been cached to avoid re-parsing each
time readonly value changes.

https://github.com/pgjdbc/pgjdbc/issues/1228
https://github.com/pgjdbc/pgjdbc/issues/848

* feat: read only transactions

* checkstyle and hamcrest test import

* add connection property with 3 options to control read only behavior

* fix missing property methods on BaseDataSource 
* avoid redundant static modifier

* more loosely couple read only hints to backend

* return default read only mode from data source.

* avoid case conversion