diff --git a/common/src/main/java/me/lucko/luckperms/common/bulkupdate/BulkUpdate.java b/common/src/main/java/me/lucko/luckperms/common/bulkupdate/BulkUpdate.java index d4cfd57cd..4a81db134 100644 --- a/common/src/main/java/me/lucko/luckperms/common/bulkupdate/BulkUpdate.java +++ b/common/src/main/java/me/lucko/luckperms/common/bulkupdate/BulkUpdate.java @@ -103,6 +103,17 @@ public final class BulkUpdate { // (DELETE FROM or UPDATE) this.action.appendSql(builder); + return appendConstraintsAsSql(builder); + } + + /** + * Appends the constraints of this {@link BulkUpdate} to the provided statement builder in SQL syntax + * + * @param builder the statement builder to append the constraints to + * @return the same statement builder provided as input + */ + public PreparedStatementBuilder appendConstraintsAsSql(PreparedStatementBuilder builder) { + // if there are no constraints, just return without a WHERE clause if (this.queries.isEmpty()) { return builder; diff --git a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/sql/SqlStorage.java b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/sql/SqlStorage.java index bf49f450e..075e48108 100644 --- a/common/src/main/java/me/lucko/luckperms/common/storage/implementation/sql/SqlStorage.java +++ b/common/src/main/java/me/lucko/luckperms/common/storage/implementation/sql/SqlStorage.java @@ -261,10 +261,7 @@ public class SqlStorage implements StorageImplementation { if (bulkUpdate.isTrackingStatistics()) { PreparedStatementBuilder builder = new PreparedStatementBuilder(); builder.append(USER_PERMISSIONS_SELECT_DISTINCT); - if (!bulkUpdate.getQueries().isEmpty()) { - builder.append(" WHERE "); - bulkUpdate.getQueries().forEach(query -> query.appendSql(builder)); - } + bulkUpdate.appendConstraintsAsSql(builder); try (PreparedStatement lookup = builder.build(c, this.statementProcessor)) { try (ResultSet rs = lookup.executeQuery()) { @@ -291,10 +288,7 @@ public class SqlStorage implements StorageImplementation { if (bulkUpdate.isTrackingStatistics()) { PreparedStatementBuilder builder = new PreparedStatementBuilder(); builder.append(GROUP_PERMISSIONS_SELECT_ALL); - if (!bulkUpdate.getQueries().isEmpty()) { - builder.append(" WHERE "); - bulkUpdate.getQueries().forEach(query -> query.appendSql(builder)); - } + bulkUpdate.appendConstraintsAsSql(builder); try (PreparedStatement lookup = builder.build(c, this.statementProcessor)) { try (ResultSet rs = lookup.executeQuery()) {