Remove cached change status from PatchSetApproval
With the SQL search system removed, the caching of change status in these objects is no longer necessary or even used. Change-Id: I49798f477c10e49d17c1ba1a7e438fbf6c16c392
This commit is contained in:
@@ -129,20 +129,11 @@ public final class PatchSetApproval {
|
|||||||
@Column(id = 3)
|
@Column(id = 3)
|
||||||
protected Timestamp granted;
|
protected Timestamp granted;
|
||||||
|
|
||||||
/** <i>Cached copy of Change.open.</i> */
|
|
||||||
@Column(id = 4)
|
|
||||||
protected boolean changeOpen;
|
|
||||||
|
|
||||||
/** <i>Cached copy of Change.sortKey</i>; only if {@link #changeOpen} = false */
|
|
||||||
@Column(id = 5, length = 16, notNull = false)
|
|
||||||
protected String changeSortKey;
|
|
||||||
|
|
||||||
protected PatchSetApproval() {
|
protected PatchSetApproval() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public PatchSetApproval(PatchSetApproval.Key k, short v, Timestamp ts) {
|
public PatchSetApproval(PatchSetApproval.Key k, short v, Timestamp ts) {
|
||||||
key = k;
|
key = k;
|
||||||
changeOpen = true;
|
|
||||||
setValue(v);
|
setValue(v);
|
||||||
setGranted(ts);
|
setGranted(ts);
|
||||||
}
|
}
|
||||||
@@ -150,7 +141,6 @@ public final class PatchSetApproval {
|
|||||||
public PatchSetApproval(final PatchSet.Id psId, final PatchSetApproval src) {
|
public PatchSetApproval(final PatchSet.Id psId, final PatchSetApproval src) {
|
||||||
key =
|
key =
|
||||||
new PatchSetApproval.Key(psId, src.getAccountId(), src.getLabelId());
|
new PatchSetApproval.Key(psId, src.getAccountId(), src.getLabelId());
|
||||||
changeOpen = true;
|
|
||||||
value = src.getValue();
|
value = src.getValue();
|
||||||
granted = src.granted;
|
granted = src.granted;
|
||||||
}
|
}
|
||||||
@@ -187,11 +177,6 @@ public final class PatchSetApproval {
|
|||||||
granted = ts;
|
granted = ts;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cache(final Change c) {
|
|
||||||
changeOpen = c.open;
|
|
||||||
changeSortKey = c.sortKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getLabel() {
|
public String getLabel() {
|
||||||
return getLabelId().get();
|
return getLabelId().get();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,23 +48,10 @@ public class ApprovalsUtil {
|
|||||||
private final ReviewDb db;
|
private final ReviewDb db;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public ApprovalsUtil(ReviewDb db) {
|
ApprovalsUtil(ReviewDb db) {
|
||||||
this.db = db;
|
this.db = db;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Resync the changeOpen status which is cached in the approvals table for
|
|
||||||
* performance reasons
|
|
||||||
*/
|
|
||||||
public void syncChangeStatus(final Change change) throws OrmException {
|
|
||||||
final List<PatchSetApproval> approvals =
|
|
||||||
db.patchSetApprovals().byChange(change.getId()).toList();
|
|
||||||
for (PatchSetApproval a : approvals) {
|
|
||||||
a.cache(change);
|
|
||||||
}
|
|
||||||
db.patchSetApprovals().update(approvals);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copy min/max scores from one patch set to another.
|
* Copy min/max scores from one patch set to another.
|
||||||
*
|
*
|
||||||
@@ -135,11 +122,9 @@ public class ApprovalsUtil {
|
|||||||
List<PatchSetApproval> cells = Lists.newArrayListWithCapacity(need.size());
|
List<PatchSetApproval> cells = Lists.newArrayListWithCapacity(need.size());
|
||||||
LabelId labelId = Iterables.getLast(allTypes).getLabelId();
|
LabelId labelId = Iterables.getLast(allTypes).getLabelId();
|
||||||
for (Account.Id account : need) {
|
for (Account.Id account : need) {
|
||||||
PatchSetApproval psa = new PatchSetApproval(
|
cells.add(new PatchSetApproval(
|
||||||
new PatchSetApproval.Key(ps.getId(), account, labelId),
|
new PatchSetApproval.Key(ps.getId(), account, labelId),
|
||||||
(short) 0, TimeUtil.nowTs());
|
(short) 0, TimeUtil.nowTs()));
|
||||||
psa.cache(change);
|
|
||||||
cells.add(psa);
|
|
||||||
}
|
}
|
||||||
db.patchSetApprovals().insert(cells);
|
db.patchSetApprovals().insert(cells);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import com.google.gerrit.extensions.webui.UiAction;
|
|||||||
import com.google.gerrit.reviewdb.client.Change;
|
import com.google.gerrit.reviewdb.client.Change;
|
||||||
import com.google.gerrit.reviewdb.client.ChangeMessage;
|
import com.google.gerrit.reviewdb.client.ChangeMessage;
|
||||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||||
import com.google.gerrit.server.ApprovalsUtil;
|
|
||||||
import com.google.gerrit.server.ChangeUtil;
|
import com.google.gerrit.server.ChangeUtil;
|
||||||
import com.google.gerrit.server.IdentifiedUser;
|
import com.google.gerrit.server.IdentifiedUser;
|
||||||
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
||||||
@@ -51,7 +50,6 @@ public class Abandon implements RestModifyView<ChangeResource, AbandonInput>,
|
|||||||
private final ChangeHooks hooks;
|
private final ChangeHooks hooks;
|
||||||
private final AbandonedSender.Factory abandonedSenderFactory;
|
private final AbandonedSender.Factory abandonedSenderFactory;
|
||||||
private final Provider<ReviewDb> dbProvider;
|
private final Provider<ReviewDb> dbProvider;
|
||||||
private final Provider<ApprovalsUtil> approvals;
|
|
||||||
private final ChangeJson json;
|
private final ChangeJson json;
|
||||||
private final ChangeIndexer indexer;
|
private final ChangeIndexer indexer;
|
||||||
|
|
||||||
@@ -59,13 +57,11 @@ public class Abandon implements RestModifyView<ChangeResource, AbandonInput>,
|
|||||||
Abandon(ChangeHooks hooks,
|
Abandon(ChangeHooks hooks,
|
||||||
AbandonedSender.Factory abandonedSenderFactory,
|
AbandonedSender.Factory abandonedSenderFactory,
|
||||||
Provider<ReviewDb> dbProvider,
|
Provider<ReviewDb> dbProvider,
|
||||||
Provider<ApprovalsUtil> approvals,
|
|
||||||
ChangeJson json,
|
ChangeJson json,
|
||||||
ChangeIndexer indexer) {
|
ChangeIndexer indexer) {
|
||||||
this.hooks = hooks;
|
this.hooks = hooks;
|
||||||
this.abandonedSenderFactory = abandonedSenderFactory;
|
this.abandonedSenderFactory = abandonedSenderFactory;
|
||||||
this.dbProvider = dbProvider;
|
this.dbProvider = dbProvider;
|
||||||
this.approvals = approvals;
|
|
||||||
this.json = json;
|
this.json = json;
|
||||||
this.indexer = indexer;
|
this.indexer = indexer;
|
||||||
}
|
}
|
||||||
@@ -106,7 +102,6 @@ public class Abandon implements RestModifyView<ChangeResource, AbandonInput>,
|
|||||||
}
|
}
|
||||||
message = newMessage(input, caller, change);
|
message = newMessage(input, caller, change);
|
||||||
db.changeMessages().insert(Collections.singleton(message));
|
db.changeMessages().insert(Collections.singleton(message));
|
||||||
approvals.get().syncChangeStatus(change);
|
|
||||||
db.commit();
|
db.commit();
|
||||||
} finally {
|
} finally {
|
||||||
db.rollback();
|
db.rollback();
|
||||||
|
|||||||
@@ -394,7 +394,6 @@ public class PostReview implements RestModifyView<RevisionResource, ReviewInput>
|
|||||||
} else if (c != null && c.getValue() != ent.getValue()) {
|
} else if (c != null && c.getValue() != ent.getValue()) {
|
||||||
c.setValue(ent.getValue());
|
c.setValue(ent.getValue());
|
||||||
c.setGranted(timestamp);
|
c.setGranted(timestamp);
|
||||||
c.cache(change);
|
|
||||||
upd.add(c);
|
upd.add(c);
|
||||||
labelDelta.add(format(normName, c.getValue()));
|
labelDelta.add(format(normName, c.getValue()));
|
||||||
categories.put(normName, c.getValue());
|
categories.put(normName, c.getValue());
|
||||||
@@ -407,7 +406,6 @@ public class PostReview implements RestModifyView<RevisionResource, ReviewInput>
|
|||||||
lt.getLabelId()),
|
lt.getLabelId()),
|
||||||
ent.getValue(), TimeUtil.nowTs());
|
ent.getValue(), TimeUtil.nowTs());
|
||||||
c.setGranted(timestamp);
|
c.setGranted(timestamp);
|
||||||
c.cache(change);
|
|
||||||
ins.add(c);
|
ins.add(c);
|
||||||
labelDelta.add(format(normName, c.getValue()));
|
labelDelta.add(format(normName, c.getValue()));
|
||||||
categories.put(normName, c.getValue());
|
categories.put(normName, c.getValue());
|
||||||
@@ -436,7 +434,6 @@ public class PostReview implements RestModifyView<RevisionResource, ReviewInput>
|
|||||||
.getLabelId()),
|
.getLabelId()),
|
||||||
(short) 0, TimeUtil.nowTs());
|
(short) 0, TimeUtil.nowTs());
|
||||||
c.setGranted(timestamp);
|
c.setGranted(timestamp);
|
||||||
c.cache(change);
|
|
||||||
ins.add(c);
|
ins.add(c);
|
||||||
} else {
|
} else {
|
||||||
// Pick a random label that is about to be deleted and keep it.
|
// Pick a random label that is about to be deleted and keep it.
|
||||||
@@ -444,7 +441,6 @@ public class PostReview implements RestModifyView<RevisionResource, ReviewInput>
|
|||||||
PatchSetApproval c = i.next();
|
PatchSetApproval c = i.next();
|
||||||
c.setValue((short) 0);
|
c.setValue((short) 0);
|
||||||
c.setGranted(timestamp);
|
c.setGranted(timestamp);
|
||||||
c.cache(change);
|
|
||||||
i.remove();
|
i.remove();
|
||||||
upd.add(c);
|
upd.add(c);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
|
|
||||||
package com.google.gerrit.server.change;
|
package com.google.gerrit.server.change;
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
@@ -302,10 +301,8 @@ public class PostReviewers implements RestModifyView<ChangeResource, AddReviewer
|
|||||||
PatchSet.Id patchSetId, Account.Id reviewerId) {
|
PatchSet.Id patchSetId, Account.Id reviewerId) {
|
||||||
LabelId id =
|
LabelId id =
|
||||||
Iterables.getLast(ctl.getLabelTypes().getLabelTypes()).getLabelId();
|
Iterables.getLast(ctl.getLabelTypes().getLabelTypes()).getLabelId();
|
||||||
PatchSetApproval dummyApproval = new PatchSetApproval(
|
return new PatchSetApproval(
|
||||||
new PatchSetApproval.Key(patchSetId, reviewerId, id), (short) 0,
|
new PatchSetApproval.Key(patchSetId, reviewerId, id), (short) 0,
|
||||||
TimeUtil.nowTs());
|
TimeUtil.nowTs());
|
||||||
dummyApproval.cache(ctl.getChange());
|
|
||||||
return dummyApproval;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ import com.google.gerrit.reviewdb.client.Change;
|
|||||||
import com.google.gerrit.reviewdb.client.Change.Status;
|
import com.google.gerrit.reviewdb.client.Change.Status;
|
||||||
import com.google.gerrit.reviewdb.client.ChangeMessage;
|
import com.google.gerrit.reviewdb.client.ChangeMessage;
|
||||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||||
import com.google.gerrit.server.ApprovalsUtil;
|
|
||||||
import com.google.gerrit.server.ChangeUtil;
|
import com.google.gerrit.server.ChangeUtil;
|
||||||
import com.google.gerrit.server.IdentifiedUser;
|
import com.google.gerrit.server.IdentifiedUser;
|
||||||
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
import com.google.gerrit.server.change.ChangeJson.ChangeInfo;
|
||||||
@@ -52,7 +51,6 @@ public class Restore implements RestModifyView<ChangeResource, RestoreInput>,
|
|||||||
private final ChangeHooks hooks;
|
private final ChangeHooks hooks;
|
||||||
private final RestoredSender.Factory restoredSenderFactory;
|
private final RestoredSender.Factory restoredSenderFactory;
|
||||||
private final Provider<ReviewDb> dbProvider;
|
private final Provider<ReviewDb> dbProvider;
|
||||||
private final Provider<ApprovalsUtil> approvals;
|
|
||||||
private final ChangeJson json;
|
private final ChangeJson json;
|
||||||
private final ChangeIndexer indexer;
|
private final ChangeIndexer indexer;
|
||||||
|
|
||||||
@@ -60,13 +58,11 @@ public class Restore implements RestModifyView<ChangeResource, RestoreInput>,
|
|||||||
Restore(ChangeHooks hooks,
|
Restore(ChangeHooks hooks,
|
||||||
RestoredSender.Factory restoredSenderFactory,
|
RestoredSender.Factory restoredSenderFactory,
|
||||||
Provider<ReviewDb> dbProvider,
|
Provider<ReviewDb> dbProvider,
|
||||||
Provider<ApprovalsUtil> approvals,
|
|
||||||
ChangeJson json,
|
ChangeJson json,
|
||||||
ChangeIndexer indexer) {
|
ChangeIndexer indexer) {
|
||||||
this.hooks = hooks;
|
this.hooks = hooks;
|
||||||
this.restoredSenderFactory = restoredSenderFactory;
|
this.restoredSenderFactory = restoredSenderFactory;
|
||||||
this.dbProvider = dbProvider;
|
this.dbProvider = dbProvider;
|
||||||
this.approvals = approvals;
|
|
||||||
this.json = json;
|
this.json = json;
|
||||||
this.indexer = indexer;
|
this.indexer = indexer;
|
||||||
}
|
}
|
||||||
@@ -107,7 +103,6 @@ public class Restore implements RestModifyView<ChangeResource, RestoreInput>,
|
|||||||
}
|
}
|
||||||
message = newMessage(input, caller, change);
|
message = newMessage(input, caller, change);
|
||||||
db.changeMessages().insert(Collections.singleton(message));
|
db.changeMessages().insert(Collections.singleton(message));
|
||||||
approvals.get().syncChangeStatus(change);
|
|
||||||
db.commit();
|
db.commit();
|
||||||
} finally {
|
} finally {
|
||||||
db.rollback();
|
db.rollback();
|
||||||
|
|||||||
@@ -106,9 +106,7 @@ public class LabelNormalizer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private PatchSetApproval copy(PatchSetApproval src, ChangeControl ctl) {
|
private PatchSetApproval copy(PatchSetApproval src, ChangeControl ctl) {
|
||||||
PatchSetApproval dest = new PatchSetApproval(src.getPatchSetId(), src);
|
return new PatchSetApproval(src.getPatchSetId(), src);
|
||||||
dest.cache(ctl.getChange());
|
|
||||||
return dest;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private PermissionRange getRange(ChangeControl ctl, LabelType lt,
|
private PermissionRange getRange(ChangeControl ctl, LabelType lt,
|
||||||
|
|||||||
@@ -15,12 +15,10 @@
|
|||||||
package com.google.gerrit.server.git;
|
package com.google.gerrit.server.git;
|
||||||
|
|
||||||
import static com.google.gerrit.server.git.MergeUtil.getSubmitter;
|
import static com.google.gerrit.server.git.MergeUtil.getSubmitter;
|
||||||
|
|
||||||
import static java.util.concurrent.TimeUnit.HOURS;
|
import static java.util.concurrent.TimeUnit.HOURS;
|
||||||
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
import static java.util.concurrent.TimeUnit.MILLISECONDS;
|
||||||
import static java.util.concurrent.TimeUnit.MINUTES;
|
import static java.util.concurrent.TimeUnit.MINUTES;
|
||||||
import static java.util.concurrent.TimeUnit.SECONDS;
|
import static java.util.concurrent.TimeUnit.SECONDS;
|
||||||
|
|
||||||
import static org.eclipse.jgit.lib.RefDatabase.ALL;
|
import static org.eclipse.jgit.lib.RefDatabase.ALL;
|
||||||
|
|
||||||
import com.google.common.base.Objects;
|
import com.google.common.base.Objects;
|
||||||
@@ -44,7 +42,6 @@ import com.google.gerrit.reviewdb.client.Project;
|
|||||||
import com.google.gerrit.reviewdb.client.Project.SubmitType;
|
import com.google.gerrit.reviewdb.client.Project.SubmitType;
|
||||||
import com.google.gerrit.reviewdb.client.RevId;
|
import com.google.gerrit.reviewdb.client.RevId;
|
||||||
import com.google.gerrit.reviewdb.server.ReviewDb;
|
import com.google.gerrit.reviewdb.server.ReviewDb;
|
||||||
import com.google.gerrit.server.ApprovalsUtil;
|
|
||||||
import com.google.gerrit.server.ChangeUtil;
|
import com.google.gerrit.server.ChangeUtil;
|
||||||
import com.google.gerrit.server.IdentifiedUser;
|
import com.google.gerrit.server.IdentifiedUser;
|
||||||
import com.google.gerrit.server.account.AccountCache;
|
import com.google.gerrit.server.account.AccountCache;
|
||||||
@@ -899,7 +896,6 @@ public class MergeOp {
|
|||||||
submitter = a;
|
submitter = a;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
a.cache(c);
|
|
||||||
}
|
}
|
||||||
db.patchSetApprovals().update(approvals);
|
db.patchSetApprovals().update(approvals);
|
||||||
db.patchSetApprovals().deleteKeys(toDelete);
|
db.patchSetApprovals().deleteKeys(toDelete);
|
||||||
@@ -1149,7 +1145,6 @@ public class MergeOp {
|
|||||||
change.currentPatchSetId());
|
change.currentPatchSetId());
|
||||||
msg.setMessage("Project was deleted.");
|
msg.setMessage("Project was deleted.");
|
||||||
db.changeMessages().insert(Collections.singleton(msg));
|
db.changeMessages().insert(Collections.singleton(msg));
|
||||||
new ApprovalsUtil(db).syncChangeStatus(change);
|
|
||||||
db.commit();
|
db.commit();
|
||||||
indexer.index(change);
|
indexer.index(change);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2261,8 +2261,6 @@ public class ReceiveCommits {
|
|||||||
change.setStatus(Change.Status.MERGED);
|
change.setStatus(Change.Status.MERGED);
|
||||||
ChangeUtil.updated(change);
|
ChangeUtil.updated(change);
|
||||||
|
|
||||||
approvalsUtil.syncChangeStatus(change);
|
|
||||||
|
|
||||||
final StringBuilder msgBuf = new StringBuilder();
|
final StringBuilder msgBuf = new StringBuilder();
|
||||||
msgBuf.append("Change has been successfully pushed");
|
msgBuf.append("Change has been successfully pushed");
|
||||||
if (!mergedIntoRef.equals(change.getDest().get())) {
|
if (!mergedIntoRef.equals(change.getDest().get())) {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import java.util.List;
|
|||||||
/** A version of the database schema. */
|
/** A version of the database schema. */
|
||||||
public abstract class SchemaVersion {
|
public abstract class SchemaVersion {
|
||||||
/** The current schema version. */
|
/** The current schema version. */
|
||||||
public static final Class<Schema_88> C = Schema_88.class;
|
public static final Class<Schema_89> C = Schema_89.class;
|
||||||
|
|
||||||
public static class Module extends AbstractModule {
|
public static class Module extends AbstractModule {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
// Copyright (C) 2013 The Android Open Source Project
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
package com.google.gerrit.server.schema;
|
||||||
|
|
||||||
|
import com.google.inject.Inject;
|
||||||
|
import com.google.inject.Provider;
|
||||||
|
|
||||||
|
public class Schema_89 extends SchemaVersion {
|
||||||
|
@Inject
|
||||||
|
Schema_89(Provider<Schema_88> prior) {
|
||||||
|
super(prior);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user