From 35b7961c7581ae8a791d74e557fd63a17d9c0939 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 12 May 2025 14:53:51 +0200 Subject: [PATCH] [jOOQ/jOOQ#18450] Diff should drop PRIMARY KEY first, then NOT NULL constraint --- jOOQ/src/main/java/org/jooq/impl/Diff.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Diff.java b/jOOQ/src/main/java/org/jooq/impl/Diff.java index bdb7257d54..276a8b96d9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Diff.java +++ b/jOOQ/src/main/java/org/jooq/impl/Diff.java @@ -981,14 +981,20 @@ final class Diff { // [#18044] DROP CONSTRAINT / INDEX before everything, ADD CONSTRAINT / INDEX after everything // [#18383] FOREIGN KEY must be dropped before other constraints, or added after other constraints + // [#18450] DROP NOT NULL must happen after dropping constraints, SET NOT NULL before adding constraints if (q instanceof AlterTableImpl a) { - return a.$dropConstraint() instanceof QOM.ForeignKey || a.$dropConstraintType() == FOREIGN_KEY + return + a.$dropConstraint() instanceof QOM.ForeignKey || a.$dropConstraintType() == FOREIGN_KEY + ? -3 + : a.$dropConstraint() != null || a.$dropConstraintType() != null ? -2 - : a.$dropConstraint() != null + : a.$alterColumnNullability() == Nullability.NULL ? -1 : a.$addConstraint() instanceof QOM.ForeignKey || a.$dropConstraintType() == FOREIGN_KEY - ? 2 + ? 3 : a.$addConstraint() != null + ? 2 + : a.$alterColumnNullability() == Nullability.NOT_NULL ? 1 : 0; }