]> source.dussan.org Git - sonarqube.git/commitdiff
Replace VARCHAR by NVARCHAR on MsSQL
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Mon, 12 Oct 2015 06:12:46 +0000 (08:12 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Mon, 12 Oct 2015 06:12:55 +0000 (08:12 +0200)
sonar-db/src/main/java/org/sonar/db/version/StringColumnDef.java
sonar-db/src/test/java/org/sonar/db/version/AddColumnsBuilderTest.java
sonar-db/src/test/java/org/sonar/db/version/AlterColumnsBuilderTest.java
sonar-db/src/test/java/org/sonar/db/version/StringColumnDefTest.java

index 6753e856f0e2eae36507c29732524940b7781500..11dee2383ac02966532be89e5ccbfa3926ba3016 100644 (file)
@@ -22,7 +22,9 @@ package org.sonar.db.version;
 
 import javax.annotation.CheckForNull;
 import org.sonar.db.dialect.Dialect;
+import org.sonar.db.dialect.MsSql;
 
+import static java.lang.String.format;
 import static java.util.Objects.requireNonNull;
 import static org.sonar.db.version.ColumnDefValidation.validateColumnName;
 
@@ -44,7 +46,10 @@ public class StringColumnDef extends AbstractColumnDef {
 
   @Override
   public String generateSqlType(Dialect dialect) {
-    return "VARCHAR (" + Integer.toString(columnSize) + ")";
+    if (MsSql.ID.equals(dialect.getId())) {
+      return format("NVARCHAR (%d)", columnSize);
+    }
+    return format("VARCHAR (%d)", columnSize);
   }
 
   public static class Builder {
index 7970db2afec3057bef8f5815f9125e58ed9af25f..ed76c4e61735cf4e096494d469ef5bc9e84504c4 100644 (file)
@@ -65,7 +65,7 @@ public class AddColumnsBuilderTest {
   @Test
   public void add_columns_on_mssql() {
     assertThat(createSampleBuilder(new MsSql()).build())
-      .isEqualTo("ALTER TABLE issues ADD date_in_ms BIGINT NULL, name VARCHAR (10) NOT NULL");
+      .isEqualTo("ALTER TABLE issues ADD date_in_ms BIGINT NULL, name NVARCHAR (10) NOT NULL");
   }
 
   @Test
index d801cc37fb7e95b7d065797c1f7f9aae6ffa5ced..a87836e1166a6363a9d3f1a2e6cbd1773efc0d15 100644 (file)
@@ -50,7 +50,7 @@ public class AlterColumnsBuilderTest {
   @Test
   public void update_columns_on_mssql() {
     assertThat(createSampleBuilder(new MsSql()).build())
-      .containsOnly("ALTER TABLE issues ALTER COLUMN value DECIMAL (30,20)", "ALTER TABLE issues ALTER COLUMN name VARCHAR (10)");
+      .containsOnly("ALTER TABLE issues ALTER COLUMN value DECIMAL (30,20)", "ALTER TABLE issues ALTER COLUMN name NVARCHAR (10)");
   }
 
   @Test
index 82e50b583f16c29a8273e388824bb5faa31147ef..448457f93073bcb35035e7fed743ad690100167b 100644 (file)
@@ -60,7 +60,7 @@ public class StringColumnDefTest {
     assertThat(def.generateSqlType(new H2())).isEqualTo("VARCHAR (10)");
     assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("VARCHAR (10)");
     assertThat(def.generateSqlType(new MySql())).isEqualTo("VARCHAR (10)");
-    assertThat(def.generateSqlType(new MsSql())).isEqualTo("VARCHAR (10)");
+    assertThat(def.generateSqlType(new MsSql())).isEqualTo("NVARCHAR (10)");
     assertThat(def.generateSqlType(new Oracle())).isEqualTo("VARCHAR (10)");
   }