|
10 | 10 | #set($ghbug = 'https://github.com/tada/pljava/issues/') |
11 | 11 | #set($ghpull = 'https://github.com/tada/pljava/pull/') |
12 | 12 |
|
| 13 | +$h2 PL/Java 1.6.6 |
| 14 | + |
| 15 | +This is the sixth minor update in the PL/Java 1.6 series. It adds support |
| 16 | +for PostgreSQL 16 and confirms compatibility with Java 21, and fixes some bugs, |
| 17 | +with few other notable changes. Further information on the changes may be found |
| 18 | +below. |
| 19 | + |
| 20 | +$h3 Version compatibility |
| 21 | + |
| 22 | +PL/Java 1.6.6 can be built against recent PostgreSQL versions including 16, and |
| 23 | +older ones back to 9.5, using Java SE 9 or later. The Java version used at |
| 24 | +runtime does not have to be the same version used for building. PL/Java itself |
| 25 | +can run on any Java version 9 or later. PL/Java functions can be |
| 26 | +written for, and use features of, whatever Java version will be loaded at run |
| 27 | +time. See [version compatibility][versions] for more detail. |
| 28 | + |
| 29 | +Some builds of Java 20 are affected by a bug, [JDK-8309515][]. PL/Java will |
| 30 | +report an error if detects it is affected by that bug, and the solution can be |
| 31 | +to use a Java version earlier than 20, or one recent enough to have the bug |
| 32 | +fixed. The bug has been fixed in Java 21. |
| 33 | + |
| 34 | +PL/Java 1.6.6 will definitely no longer build on PostgreSQL versions older |
| 35 | +than 9.5. It has made no attempt to support them since 1.6.0, and lingering |
| 36 | +conditional code for older versions has now been removed. |
| 37 | + |
| 38 | +$h3 Changes |
| 39 | + |
| 40 | +$h4 Changes in XML support |
| 41 | + |
| 42 | +$h5 Java 17's standardized XML feature and property names added |
| 43 | + |
| 44 | +Java 17 added standardized, easy-to-remember names for a number of features and |
| 45 | +properties the underlying XML implementations had formerly supported under |
| 46 | +implementation-specific names. PL/Java's `Adjusting.XML` API already needed to |
| 47 | +know those various other names, to attempt using them to configure the desired |
| 48 | +features and properties. Now it tries the new standard names too. |
| 49 | + |
| 50 | +$h5 Better control when a feature or property can't be set as intended |
| 51 | + |
| 52 | +The original documentation for the feature and property setters in the |
| 53 | +`Adjusting.XML` API said "the adjusting methods are best-effort and do not |
| 54 | +provide an indication of whether the requested adjustment was made". (At the |
| 55 | +same time, failures could produce voluminous output to the log.) |
| 56 | + |
| 57 | +The new [`lax(boolean)`][adjlax] method offers more control. If not used, |
| 58 | +adjustment failures are logged (as before, but more compactly in the case of |
| 59 | +multiple failures in one sequence of adjustments). Or, `lax(true)` can be used |
| 60 | +to silently discard any failures up to that point in a sequence of adjustments, |
| 61 | +or `lax(false)` to have the exceptions chained together and thrown. |
| 62 | + |
| 63 | +The addition of the new Java 17 standardized names can complicate |
| 64 | +version-agnostic configuration of other elements in the Java XML APIs, such as |
| 65 | +`Transformer`, that are not directly covered by PL/Java's |
| 66 | +`Adjusting.XML.Parsing` methods. Client code may find the new `Adjusting.XML` |
| 67 | +method [`setFirstSupported`][adjsfs] convenient for that purpose; |
| 68 | +[an example][egsfs] illustrates. |
| 69 | + |
| 70 | +$h4 Packaging / testing |
| 71 | + |
| 72 | +$h5 Support choice of `PGJDBC` or `pgjdbc-ng` in `Node` |
| 73 | + |
| 74 | +The package jar produced as the last step of the build includes a |
| 75 | +[test harness](develop/node.html) similar to the `PostgresNode` Perl module. |
| 76 | +It formerly worked only with the `pgjdbc-ng` driver. Now it works with either |
| 77 | +`PGJDBC` or `pgjdbc-ng`, and provides features for writing test scripts that |
| 78 | +do not depend on the driver chosen. |
| 79 | + |
| 80 | +$h4 Source code |
| 81 | + |
| 82 | +* Minor changes to support PostgreSQL 16 |
| 83 | +* Conditional code supporting PostgreSQL versions older than 9.5 removed |
| 84 | +* Old non-HTML5 elements (rejected by Javadoc 17 and later) removed from |
| 85 | + doc comments |
| 86 | +* The `pureNonVirtualCalled` method removed to quiet warnings from recent |
| 87 | + C compilers |
| 88 | +* Schema qualification in embedded SQL added to two operators that had been |
| 89 | + overlooked in the earlier round of adding such qualification |
| 90 | +$h3 Bugs fixed |
| 91 | + |
| 92 | +* [`NEWLINE` pattern can fail to match](${ghbug}455) |
| 93 | + |
| 94 | +[adjlax]: pljava-api/apidocs/org.postgresql.pljava/org/postgresql/pljava/Adjusting.XML.Parsing.html#method.summary |
| 95 | +[adjsfs]: pljava-api/apidocs/org.postgresql.pljava/org/postgresql/pljava/Adjusting.XML.html#method.detail |
| 96 | +[egsfs]: https://github.com/tada/pljava/blob/V1_6_6/pljava-examples/src/main/java/org/postgresql/pljava/example/annotation/PassXML.java#L528 |
| 97 | + |
| 98 | +## A nice thing about using Velocity is that each release can be entered at |
| 99 | +## birth using h2 as its main heading, h3 and below within ... and then, when |
| 100 | +## it is moved under 'earlier releases', just define those variables to be |
| 101 | +## one heading level finer. Here goes: |
| 102 | +#set($h2 = '###') |
| 103 | +#set($h3 = '####') |
| 104 | +#set($h4 = '#####') |
| 105 | +#set($h5 = '######') |
| 106 | + |
13 | 107 | $h2 PL/Java 1.6.5 |
14 | 108 |
|
15 | 109 | This is the fifth minor update in the PL/Java 1.6 series. It adds support |
@@ -99,15 +193,6 @@ Tim Van Holder, `aadrian`, `sincatter`, `tayalrun1`. |
99 | 193 |
|
100 | 194 | $h2 Earlier releases |
101 | 195 |
|
102 | | -## A nice thing about using Velocity is that each release can be entered at |
103 | | -## birth using h2 as its main heading, h3 and below within ... and then, when |
104 | | -## it is moved under 'earlier releases', just define those variables to be |
105 | | -## one heading level finer. Here goes: |
106 | | -#set($h2 = '###') |
107 | | -#set($h3 = '####') |
108 | | -#set($h4 = '#####') |
109 | | -#set($h5 = '######') |
110 | | - |
111 | 196 | $h2 PL/Java 1.6.4 |
112 | 197 |
|
113 | 198 | This is the fourth minor update in the PL/Java 1.6 series. It is a minor |
|
0 commit comments