CLOB types in Oracle MERGE statements
This includes:
- [jOOQ/jOOQ#15724] BindingSetStatementContext should reference actual
ExecuteContext, if available
This includes:
- [jOOQ/jOOQ#15683] Incorrect DEFAULT values generated for Informix
- [jOOQ/jOOQ#15684] Add support for POSITION() in Informix via INSTR
even if there isn't a default constructor
This fixes:
- [jOOQ/jOOQ#15559] KotlinGenerator - isKotlinNotNullPojoAttributes
setting prevents generated DAO to set serial ID to pojo
UPDATE .. SET must not produce rows that will no longer be accessible under any policy, so for UPDATE, a policy might generate 2 predicates. A first one for the WHERE part to allow only updates on rows that already are valid according the policy, and a second one to check if the SET clause will produce rows that will still be valid.
For now, I'm settling for declaring inherited paths from child to parent, not from parent to child. This means we can make Policy<R> generic, and require paths to be Path<R> as well for added type safety.
When a policy generates a derived table in an outer join (where the InlineDerivedTable cannot be inlined), then we produced the policy predicate twice.
PostgreSQL's feature where policies can apply to statements (or commands, such as SELECT, INSERT, UPDATE, DELETE) may be a bit overengineered for jOOQ. It would be very hard to re-implement the same semantics as PostgreSQL, in particular because we also cannot distinguish between USING and CHECK semantics easily.
As such, let's keep things simple and implement only ALL semantics.
The prior implementation of working around DML table aliases in INSERT statements wasn't entirely correct with respect to how InlineDerivedTables are now handled. A minor refactor fixes the issue.
See also:
- [jOOQ/jOOQ#8382]
- [jOOQ/jOOQ#8384]
SchemaMapping may rename a table in the inline derived table's condition, so the inline derived table alias needs to take this into account as well.
There are probably quite a few related bugs in jOOQ, which aren't showing in existing integration tests yet...