]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-5007 inverse order of multiple-column index in RULES
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Thu, 12 Jun 2014 22:37:49 +0000 (00:37 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Thu, 12 Jun 2014 22:37:49 +0000 (00:37 +0200)
sonar-core/src/main/java/org/sonar/core/persistence/DatabaseVersion.java
sonar-core/src/main/resources/org/sonar/core/persistence/rows-h2.sql
sonar-core/src/main/resources/org/sonar/core/persistence/schema-h2.ddl
sonar-plugin-api/src/main/java/org/sonar/api/rule/RuleKey.java
sonar-server/src/main/webapp/WEB-INF/db/migrate/546_inverse_rule_key_index.rb [new file with mode: 0644]

index 27bde939cd38fe4db95adccc7b92c0612161f7f8..9282569d03542960d6e7f9ac81a2efd88fc24bf6 100644 (file)
@@ -33,7 +33,7 @@ import java.util.List;
  */
 public class DatabaseVersion implements BatchComponent, ServerComponent {
 
-  public static final int LAST_VERSION = 545;
+  public static final int LAST_VERSION = 546;
 
   public static enum Status {
     UP_TO_DATE, REQUIRES_UPGRADE, REQUIRES_DOWNGRADE, FRESH_INSTALL
index 7ae350296b67bcca0da1fbe25bba89daf3495508..5a3eaa6e00bb3dc590f48e86e723dd4ae3f8b4fc 100644 (file)
@@ -240,6 +240,7 @@ INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('542');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('543');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('544');
 INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('545');
+INSERT INTO SCHEMA_MIGRATIONS(VERSION) VALUES ('546');
 
 INSERT INTO USERS(ID, LOGIN, NAME, EMAIL, CRYPTED_PASSWORD, SALT, CREATED_AT, UPDATED_AT, REMEMBER_TOKEN, REMEMBER_TOKEN_EXPIRES_AT) VALUES (1, 'admin', 'Administrator', '', 'a373a0e667abb2604c1fd571eb4ad47fe8cc0878', '48bc4b0d93179b5103fd3885ea9119498e9d161b', '2011-09-26 22:27:48.0', '2011-09-26 22:27:48.0', null, null);
 ALTER TABLE USERS ALTER COLUMN ID RESTART WITH 2;
index be5dfd5a49917b8fb8856f104f5384112af8d2ae..f3ae5b2a6a6378eb64886e101598f58aa9754162 100644 (file)
@@ -687,7 +687,7 @@ CREATE INDEX "SNAPSHOTS_ROOT_PROJECT_ID" ON "SNAPSHOTS" ("ROOT_PROJECT_ID");
 
 CREATE INDEX "GROUP_ROLES_ROLE" ON "GROUP_ROLES" ("ROLE");
 
-CREATE UNIQUE INDEX "RULES_PLUGIN_KEY_AND_NAME" ON "RULES" ("PLUGIN_RULE_KEY", "PLUGIN_NAME");
+CREATE UNIQUE INDEX "RULES_REPO_KEY" ON "RULES" ("PLUGIN_NAME", "PLUGIN_RULE_KEY");
 
 CREATE INDEX "CHARACTERISTICS_ENABLED" ON "CHARACTERISTICS" ("ENABLED");
 
index 32ad3329656f9c9191d1d90abe625b265caa9879..a474347df74b5c9a25e69226e066b2de0b6567f8 100644 (file)
@@ -30,6 +30,8 @@ import java.io.Serializable;
  * @since 3.6
  */
 public class RuleKey implements Serializable {
+
+  public static final String MANUAL_REPOSITORY_KEY = "manual";
   private final String repository, rule;
 
   protected RuleKey(String repositoryKey, String ruleKey) {
@@ -70,6 +72,10 @@ public class RuleKey implements Serializable {
     return rule;
   }
 
+  public boolean isManual() {
+    return MANUAL_REPOSITORY_KEY.equals(repository);
+  }
+
   @Override
   public boolean equals(Object o) {
     if (this == o) {
diff --git a/sonar-server/src/main/webapp/WEB-INF/db/migrate/546_inverse_rule_key_index.rb b/sonar-server/src/main/webapp/WEB-INF/db/migrate/546_inverse_rule_key_index.rb
new file mode 100644 (file)
index 0000000..f2920f9
--- /dev/null
@@ -0,0 +1,35 @@
+#
+# SonarQube, open source software quality management tool.
+# Copyright (C) 2008-2014 SonarSource
+# mailto:contact AT sonarsource DOT com
+#
+# SonarQube is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 3 of the License, or (at your option) any later version.
+#
+# SonarQube is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+#
+
+#
+# SQ 4.4
+#
+class InverseRuleKeyIndex < ActiveRecord::Migration
+
+  def self.up
+    begin
+      remove_index :rules, :name => 'rules_plugin_key_and_name'
+    rescue
+      #ignore
+    end
+    add_index :rules, [:plugin_name, :plugin_rule_key], :unique => true, :name => 'rules_repo_key'
+  end
+
+end