The jOOQ 3.12 Open Source Edition will continue to support Java 8. The only things we gain from the JDK 11 dependency is:
- Updated logic for reflection when mapping into proxied default methods (that stuff has changed completely in JDK 9). This is a regression, which we can live with. The workaround is to write a custom
- Explicit dependency on the JDK 9 API, for which we provide a Java 8 compatible alternative via reactive streams anyway.
- JDBC 4.3 compatibility (mostly sharding). We currently don't use that yet.
We're not even using internally, outside of a few integration tests. So, we'll postpone the JDK 11 *requirement* (while supporting it nonetheless) to a later release, e.g. 3.13. We'll observe market share shifts. Currently Java 11's market share is a bit of a disappointment, so making it a requirement might be premature.
- Fixed a bug when FlywayFileComparator compares non-flyway files
- Added a unit test
- Added examples to jOOQ-examples module as submodules
- Split flyway migration in one more migration file
- Check in generated sources
The formatting logic is encapsulated by the new internal `XMLBuilder`
class which also required a new internal interface `XMLAppendable` which
is implemented by all XJC generated classes.
The XJC plugin was modified accordingly and all code was regenerated.
Also note that the `MiniJAXB` class was moved to package
`org.jooq.util.jaxb.tools`.
While marshalling MiniJAXB should only omit an XML element if the
corresponding @XmlElement annotation has `required = false`. With
`required = true` the output should instead have an empty XML element.
This newly introduced DISTINCT keyword needs to include all columns that appear in the ORDER BY clause. I'm not sure if the effect is still the desired one in MemSQL (nor why this even worked in MemSQL), but it doesn't work in MySQL this way.
SQLITE should normally be compared against the dialect family.
Also replace some occurrences of `context.configuration().dialect()`
with `context.dialect()`.
Implement support for new dialect SQLDialect#MEMSQL. Excluded from the
support are stored procedures, MemSQL specific DDL keywords, MemSQL
specific DML (like REPLACE), and for the time being also the PIVOT
clause (see #8643).
Approved-by: Lukas Eder
Using SQLite driver version 3.27.2 the jOOQ code generator no longer
generates the default value for VARCHAR typed columns, due to how the
driver determines the column type. Thus the PRAGMA TABLE_INFO query now
specifies the column types up-front.
Add <includeExpression> and <excludeExpression> as well as
<includeTypes> and <excludeTypes> to <forcedType>. The generator will
warn about usage conflicting with the legacy <expression>,
<expressions>, and <types> elements.
Using the new <onError/> (which accepts the values FAIL (default), LOG,
and SILENT) the generator's behavior on an encountered exceptions can be
controlled.
Some SQLDataTypes are "synthetic" aliases of other types, and as such could not yet be used as forcedType names because they were not recognised, despite what the manual says.