Migrate schema to meet 30 char length of database id limitation

Some databases restrict the id of database objects to be max 30 char long.
Migrate the ReviewDB to meet this requirement.

This change changes two tables, that were introduced in Schema 74:
ACCOUNT_GROUP_INCLUDES_BY_UUID => ACCOUNT_GROUP_BY_ID
ACCOUNT_GROUP_INCLUDES_BY_UUID_AUDIT => ACCOUNT_GROUP_BY_ID_AUD

one column:
ACCOUNTS.SHOW_USERNAME_IN_REVIEW_CATEGORY => SHOW_USER_IN_REVIEW

and three indexes:
account_project_watches_byProject => account_project_watches_byP
patch_set_approvals_closedByUser => patch_set_approvals_closedByU
submodule_subscription_access_bySubscription =>
submodule_subscr_acc_byS

Change-Id: I93589a406274b952350174a4e79a7602ea57d05a
This commit is contained in:
David Ostrovsky
2013-07-12 00:57:56 +02:00
parent adf540382b
commit d3bd961be5
23 changed files with 288 additions and 146 deletions

View File

@@ -128,7 +128,7 @@ public final class AccountGeneralPreferences {
protected boolean reversePatchSetOrder;
@Column(id = 11)
protected boolean showUsernameInReviewCategory;
protected boolean showUserInReview;
@Column(id = 12)
protected boolean relativeDateInChangeTable;
@@ -210,11 +210,11 @@ public final class AccountGeneralPreferences {
}
public boolean isShowUsernameInReviewCategory() {
return showUsernameInReviewCategory;
return showUserInReview;
}
public void setShowUsernameInReviewCategory(final boolean showUsernameInReviewCategory) {
this.showUsernameInReviewCategory = showUsernameInReviewCategory;
this.showUserInReview = showUsernameInReviewCategory;
}
public DateFormat getDateFormat() {
@@ -265,7 +265,7 @@ public final class AccountGeneralPreferences {
useFlashClipboard = true;
copySelfOnEmail = false;
reversePatchSetOrder = false;
showUsernameInReviewCategory = false;
showUserInReview = false;
downloadUrl = null;
downloadCommand = null;
dateFormat = null;

View File

@@ -18,7 +18,7 @@ import com.google.gwtorm.client.Column;
import com.google.gwtorm.client.CompoundKey;
/** Membership of an {@link AccountGroup} in an {@link AccountGroup}. */
public final class AccountGroupIncludeByUuid {
public final class AccountGroupById {
public static class Key extends CompoundKey<AccountGroup.Id> {
private static final long serialVersionUID = 1L;
@@ -60,14 +60,14 @@ public final class AccountGroupIncludeByUuid {
@Column(id = 1, name = Column.NONE)
protected Key key;
protected AccountGroupIncludeByUuid() {
protected AccountGroupById() {
}
public AccountGroupIncludeByUuid(final AccountGroupIncludeByUuid.Key k) {
public AccountGroupById(final AccountGroupById.Key k) {
key = k;
}
public AccountGroupIncludeByUuid.Key getKey() {
public AccountGroupById.Key getKey() {
return key;
}

View File

@@ -20,7 +20,7 @@ import com.google.gwtorm.client.CompoundKey;
import java.sql.Timestamp;
/** Inclusion of an {@link AccountGroup} in another {@link AccountGroup}. */
public final class AccountGroupIncludeByUuidAudit {
public final class AccountGroupByIdAud {
public static class Key extends CompoundKey<AccountGroup.Id> {
private static final long serialVersionUID = 1L;
@@ -75,23 +75,23 @@ public final class AccountGroupIncludeByUuidAudit {
@Column(id = 4, notNull = false)
protected Timestamp removedOn;
protected AccountGroupIncludeByUuidAudit() {
protected AccountGroupByIdAud() {
}
public AccountGroupIncludeByUuidAudit(final AccountGroupIncludeByUuid m,
public AccountGroupByIdAud(final AccountGroupById m,
final Account.Id adder, final Timestamp when) {
final AccountGroup.Id group = m.getGroupId();
final AccountGroup.UUID include = m.getIncludeUUID();
key = new AccountGroupIncludeByUuidAudit.Key(group, include, when);
key = new AccountGroupByIdAud.Key(group, include, when);
addedBy = adder;
}
public AccountGroupIncludeByUuidAudit(final AccountGroupIncludeByUuid m,
public AccountGroupByIdAud(final AccountGroupById m,
final Account.Id adder) {
this(m, adder, now());
}
public AccountGroupIncludeByUuidAudit.Key getKey() {
public AccountGroupByIdAud.Key getKey() {
return key;
}

View File

@@ -15,24 +15,24 @@
package com.google.gerrit.reviewdb.server;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.reviewdb.client.AccountGroupIncludeByUuid;
import com.google.gerrit.reviewdb.client.AccountGroupById;
import com.google.gwtorm.server.Access;
import com.google.gwtorm.server.OrmException;
import com.google.gwtorm.server.PrimaryKey;
import com.google.gwtorm.server.Query;
import com.google.gwtorm.server.ResultSet;
public interface AccountGroupIncludeByUuidAccess extends
Access<AccountGroupIncludeByUuid, AccountGroupIncludeByUuid.Key> {
public interface AccountGroupByIdAccess extends
Access<AccountGroupById, AccountGroupById.Key> {
@PrimaryKey("key")
AccountGroupIncludeByUuid get(AccountGroupIncludeByUuid.Key key) throws OrmException;
AccountGroupById get(AccountGroupById.Key key) throws OrmException;
@Query("WHERE key.includeUUID = ?")
ResultSet<AccountGroupIncludeByUuid> byIncludeUUID(AccountGroup.UUID uuid) throws OrmException;
ResultSet<AccountGroupById> byIncludeUUID(AccountGroup.UUID uuid) throws OrmException;
@Query("WHERE key.groupId = ?")
ResultSet<AccountGroupIncludeByUuid> byGroup(AccountGroup.Id id) throws OrmException;
ResultSet<AccountGroupById> byGroup(AccountGroup.Id id) throws OrmException;
@Query("")
ResultSet<AccountGroupIncludeByUuid> all() throws OrmException;
ResultSet<AccountGroupById> all() throws OrmException;
}

View File

@@ -15,20 +15,20 @@
package com.google.gerrit.reviewdb.server;
import com.google.gerrit.reviewdb.client.AccountGroup;
import com.google.gerrit.reviewdb.client.AccountGroupIncludeByUuidAudit;
import com.google.gerrit.reviewdb.client.AccountGroupByIdAud;
import com.google.gwtorm.server.Access;
import com.google.gwtorm.server.OrmException;
import com.google.gwtorm.server.PrimaryKey;
import com.google.gwtorm.server.Query;
import com.google.gwtorm.server.ResultSet;
public interface AccountGroupIncludeByUuidAuditAccess extends
Access<AccountGroupIncludeByUuidAudit, AccountGroupIncludeByUuidAudit.Key> {
public interface AccountGroupByIdAudAccess extends
Access<AccountGroupByIdAud, AccountGroupByIdAud.Key> {
@PrimaryKey("key")
AccountGroupIncludeByUuidAudit get(AccountGroupIncludeByUuidAudit.Key key)
AccountGroupByIdAud get(AccountGroupByIdAud.Key key)
throws OrmException;
@Query("WHERE key.groupId = ? AND key.includeUUID = ?")
ResultSet<AccountGroupIncludeByUuidAudit> byGroupInclude(AccountGroup.Id groupId,
ResultSet<AccountGroupByIdAud> byGroupInclude(AccountGroup.Id groupId,
AccountGroup.UUID incGroupUUID) throws OrmException;
}

View File

@@ -105,10 +105,10 @@ public interface ReviewDb extends Schema {
SubmoduleSubscriptionAccess submoduleSubscriptions();
@Relation(id = 29)
AccountGroupIncludeByUuidAccess accountGroupIncludesByUuid();
AccountGroupByIdAccess accountGroupById();
@Relation(id = 30)
AccountGroupIncludeByUuidAuditAccess accountGroupIncludesByUuidAudit();
AccountGroupByIdAudAccess accountGroupByIdAud();
/** Create the next unique id for an {@link Account}. */
@Sequence(startWith = 1000000)

View File

@@ -34,17 +34,16 @@ ON account_group_members (group_id);
-- *********************************************************************
-- AccountGroupIncludeByUuidAccess
-- AccountGroupByIdAccess
-- @PrimaryKey covers: byGroup
CREATE INDEX account_group_includes_by_uuid_byInclude
ON account_group_includes_by_uuid (include_uuid);
CREATE INDEX account_group_id_byInclude
ON account_group_by_id (include_uuid);
-- *********************************************************************
-- AccountProjectWatchAccess
-- @PrimaryKey covers: byAccount
-- covers: byProject
CREATE INDEX account_project_watches_byProject
CREATE INDEX account_project_watches_byP
ON account_project_watches (project_name);
@@ -114,7 +113,7 @@ CREATE INDEX patch_set_approvals_openByUser
ON patch_set_approvals (change_open, account_id);
-- covers: closedByUser
CREATE INDEX patch_set_approvals_closedByUser
CREATE INDEX patch_set_approvals_closedByU
ON patch_set_approvals (change_open, account_id, change_sort_key);
@@ -163,5 +162,5 @@ ON starred_changes (change_id);
-- *********************************************************************
-- SubmoduleSubscriptionAccess
CREATE INDEX submodule_subscription_access_bySubscription
CREATE INDEX submodule_subscr_acc_byS
ON submodule_subscriptions (submodule_project_name, submodule_branch_name);

View File

@@ -82,17 +82,16 @@ ON account_group_members (group_id);
-- *********************************************************************
-- AccountGroupIncludeByUuidAccess
-- AccountGroupByIdAccess
-- @PrimaryKey covers: byGroup
CREATE INDEX account_group_includes_by_uuid_byInclude
ON account_group_includes_by_uuid (include_uuid);
CREATE INDEX account_group_id_byInclude
ON account_group_by_id (include_uuid);
-- *********************************************************************
-- AccountProjectWatchAccess
-- @PrimaryKey covers: byAccount
-- covers: byProject
CREATE INDEX account_project_watches_byProject
CREATE INDEX account_project_watches_byP
ON account_project_watches (project_name);
@@ -170,7 +169,7 @@ ON patch_set_approvals (account_id)
WHERE change_open = 'Y';
-- covers: closedByUser
CREATE INDEX patch_set_approvals_closedByUser
CREATE INDEX patch_set_approvals_closedByU
ON patch_set_approvals (account_id, change_sort_key)
WHERE change_open = 'N';
@@ -222,5 +221,5 @@ ON starred_changes (change_id);
-- *********************************************************************
-- SubmoduleSubscriptionAccess
CREATE INDEX submodule_subscription_access_bySubscription
CREATE INDEX submodule_subscr_acc_byS
ON submodule_subscriptions (submodule_project_name, submodule_branch_name);