[jOOQ/jOOQ#8796] Support FIREBIRD_3_0 in InsertOnDuplicateSetStep
The `InsertOnDuplicateSetStep#set()` methods should declare FIREBIRD_3_0 support as with `InsertOnConflictDoUpdateStep#doUpdate()`. Support this in `InsertQueryImpl` by emulating it using `MERGE`.
This commit is contained in:
parent
cb176e2e08
commit
f56955497f
@ -42,6 +42,7 @@ package org.jooq;
|
||||
import static org.jooq.SQLDialect.CUBRID;
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.DERBY;
|
||||
import static org.jooq.SQLDialect.FIREBIRD;
|
||||
import static org.jooq.SQLDialect.H2;
|
||||
import static org.jooq.SQLDialect.HSQLDB;
|
||||
// ...
|
||||
@ -99,7 +100,7 @@ public interface InsertOnDuplicateSetStep<R extends Record> {
|
||||
* <code>ON DUPLICATE KEY UPDATE</code> or
|
||||
* <code>ON CONFLICT ... DO UPDATE</code> clause.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
<T> InsertOnDuplicateSetMoreStep<R> set(Field<T> field, T value);
|
||||
|
||||
/**
|
||||
@ -107,7 +108,7 @@ public interface InsertOnDuplicateSetStep<R extends Record> {
|
||||
* <code>ON DUPLICATE KEY UPDATE</code> or
|
||||
* <code>ON CONFLICT ... DO UPDATE</code> clause.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
<T> InsertOnDuplicateSetMoreStep<R> set(Field<T> field, Field<T> value);
|
||||
|
||||
/**
|
||||
@ -115,7 +116,7 @@ public interface InsertOnDuplicateSetStep<R extends Record> {
|
||||
* <code>ON DUPLICATE KEY UPDATE</code> or
|
||||
* <code>ON CONFLICT ... DO UPDATE</code> clause.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
<T> InsertOnDuplicateSetMoreStep<R> set(Field<T> field, Select<? extends Record1<T>> value);
|
||||
|
||||
/**
|
||||
@ -127,7 +128,7 @@ public interface InsertOnDuplicateSetStep<R extends Record> {
|
||||
* without the necessity of casting the Java <code>null</code> literal to
|
||||
* <code>(T)</code>.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
<T> InsertOnDuplicateSetMoreStep<R> setNull(Field<T> field);
|
||||
|
||||
/**
|
||||
@ -142,7 +143,7 @@ public interface InsertOnDuplicateSetStep<R extends Record> {
|
||||
* <code>Field<T></code>. jOOQ will attempt to convert values to their
|
||||
* corresponding field's type.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
InsertOnDuplicateSetMoreStep<R> set(Map<?, ?> map);
|
||||
|
||||
/**
|
||||
@ -155,7 +156,7 @@ public interface InsertOnDuplicateSetStep<R extends Record> {
|
||||
*
|
||||
* @see #set(Map)
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
@Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
InsertOnDuplicateSetMoreStep<R> set(Record record);
|
||||
|
||||
}
|
||||
|
||||
@ -401,6 +401,7 @@ final class InsertQueryImpl<R extends Record> extends AbstractStoreQuery<R> impl
|
||||
|
||||
|
||||
case DERBY:
|
||||
case FIREBIRD:
|
||||
case H2:
|
||||
case HSQLDB: {
|
||||
ctx.visit(toMerge(ctx.configuration()));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user