summaryrefslogtreecommitdiffstats
path: root/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java')
-rw-r--r--gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java
index 3a288e20d0..bf488e35ca 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/schema/Schema_57.java
@@ -30,6 +30,7 @@ import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
import com.google.gerrit.server.git.LocalDiskRepositoryManager;
import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gerrit.server.git.ProjectConfig;
+import com.google.gwtorm.jdbc.JdbcSchema;
import com.google.gwtorm.server.OrmException;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -41,6 +42,8 @@ import org.eclipse.jgit.storage.file.FileBasedConfig;
import org.eclipse.jgit.util.FS;
import java.io.IOException;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
import java.util.Collections;
public class Schema_57 extends SchemaVersion {
@@ -95,6 +98,11 @@ public class Schema_57 extends SchemaVersion {
// Move the repository.*.createGroup to Create Project.
String[] createGroupList = cfg.getStringList("repository", "*", "createGroup");
+
+ // Prepare the account_group_includes query
+ PreparedStatement stmt = ((JdbcSchema) db).getConnection().
+ prepareStatement("SELECT * FROM account_group_includes WHERE group_id = ?");
+
for (String name : createGroupList) {
AccountGroup.NameKey key = new AccountGroup.NameKey(name);
AccountGroupName groupName = db.accountGroupNames().get(key);
@@ -117,9 +125,10 @@ public class Schema_57 extends SchemaVersion {
}
AccountGroup batch = db.accountGroups().get(sc.batchUsersGroupId);
+ stmt.setInt(1, sc.batchUsersGroupId.get());
if (batch != null
&& db.accountGroupMembers().byGroup(sc.batchUsersGroupId).toList().isEmpty()
- && db.accountGroupIncludes().byGroup(sc.batchUsersGroupId).toList().isEmpty()) {
+ && stmt.executeQuery().first() != false) {
// If the batch user group is not used, delete it.
//
db.accountGroups().delete(Collections.singleton(batch));
@@ -136,6 +145,8 @@ public class Schema_57 extends SchemaVersion {
md.setMessage("Upgrade to Gerrit Code Review schema 57\n");
config.commit(md);
+ } catch (SQLException err) {
+ throw new OrmException( "Cannot read account_group_includes", err);
} finally {
git.close();
}