diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index ea6ed2ab99..b61353b5fa 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -367,6 +367,12 @@ class SelectQueryImpl extends AbstractSelect implements Sel } } + // [#3186] Firebird's FOR UPDATE clause has a different semantics. To achieve "regular" + // FOR UPDATE semantics, we should use FOR UPDATE WITH LOCK + if (context.configuration().dialect().family() == FIREBIRD) { + context.sql(" ").keyword("with lock"); + } + if (forUpdateMode != null) { context.sql(" "); context.keyword(forUpdateMode.toSQL());