]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-17525 MSSQL UUID column should use VARCHAR instead NVARCHAR
authorAlain Kermis <alain.kermis@sonarsource.com>
Tue, 28 Feb 2023 09:40:14 +0000 (10:40 +0100)
committersonartech <sonartech@sonarsource.com>
Wed, 1 Mar 2023 20:03:05 +0000 (20:03 +0000)
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/def/VarcharColumnDef.java
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/def/VarcharColumnDefTest.java
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/sql/AddColumnsBuilderTest.java
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/sql/AlterColumnsBuilderTest.java
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/sql/CreateTableAsBuilderTest.java
server/sonar-db-migration/src/test/java/org/sonar/server/platform/db/migration/sql/CreateTableBuilderTest.java

index 225b856021ea14f612db2995ba62cb7b98e0dfb0..71ebfc36428f4813738dc0586b8241096fce6225 100644 (file)
@@ -23,7 +23,6 @@ import javax.annotation.CheckForNull;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.Immutable;
 import org.sonar.db.dialect.Dialect;
-import org.sonar.db.dialect.MsSql;
 import org.sonar.db.dialect.Oracle;
 
 import static java.lang.String.format;
@@ -74,14 +73,10 @@ public class VarcharColumnDef extends AbstractColumnDef {
 
   @Override
   public String generateSqlType(Dialect dialect) {
-    switch (dialect.getId()) {
-      case MsSql.ID:
-        return format("NVARCHAR (%d)", columnSize);
-      case Oracle.ID:
-        return format("VARCHAR2 (%d%s)", columnSize, ignoreOracleUnit ? "" : " CHAR");
-      default:
-        return format("VARCHAR (%d)", columnSize);
+    if (dialect.getId().equals(Oracle.ID)) {
+      return format("VARCHAR2 (%d%s)", columnSize, ignoreOracleUnit ? "" : " CHAR");
     }
+    return format("VARCHAR (%d)", columnSize);
   }
 
   public static class Builder {
index 04137db1b3e9e0f37846f8d0a5ba86056736a4f0..84b465e02d1583429ec402ee8b6bd4f50aeb1a4c 100644 (file)
@@ -67,7 +67,7 @@ public class VarcharColumnDefTest {
 
     assertThat(def.generateSqlType(new H2())).isEqualTo("VARCHAR (10)");
     assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("VARCHAR (10)");
-    assertThat(def.generateSqlType(new MsSql())).isEqualTo("NVARCHAR (10)");
+    assertThat(def.generateSqlType(new MsSql())).isEqualTo("VARCHAR (10)");
     assertThat(def.generateSqlType(new Oracle())).isEqualTo("VARCHAR2 (10 CHAR)");
   }
 
index b19dec98acb4e29cc6cac0cfc38a3f350a6afe5f..49cf34a647db642afad2126bef2318b643f355dd 100644 (file)
@@ -57,7 +57,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 NVARCHAR (10) NOT NULL, col_with_default BIT DEFAULT 0 NOT NULL, varchar_col_with_default NVARCHAR (3) DEFAULT 'foo' NOT NULL");
+      .isEqualTo("ALTER TABLE issues ADD date_in_ms BIGINT NULL, name VARCHAR (10) NOT NULL, col_with_default BIT DEFAULT 0 NOT NULL, varchar_col_with_default VARCHAR (3) DEFAULT 'foo' NOT NULL");
   }
 
   @Test
index 5909fc1717f1c853fdfd7f9e48de45a998392b13..47a7abb54511778329d8beca928fe19a797c7a3c 100644 (file)
@@ -56,13 +56,13 @@ public class AlterColumnsBuilderTest {
     assertThat(createSampleBuilder(new MsSql()).build())
       .containsOnly(
         "ALTER TABLE issues ALTER COLUMN value DECIMAL (30,20) NULL",
-        "ALTER TABLE issues ALTER COLUMN name NVARCHAR (10) NULL");
+        "ALTER TABLE issues ALTER COLUMN name VARCHAR (10) NULL");
   }
 
   @Test
   public void update_not_nullable_column_on_mssql() {
     assertThat(createNotNullableBuilder(new MsSql()).build())
-      .containsOnly("ALTER TABLE issues ALTER COLUMN name NVARCHAR (10) NOT NULL");
+      .containsOnly("ALTER TABLE issues ALTER COLUMN name VARCHAR (10) NOT NULL");
   }
 
   @Test
index 39bf2f5942134a22ed7788d0d660eaa13083db75..c23c177efda6ff078a46bf35df260e8df98c79ed 100644 (file)
@@ -39,7 +39,7 @@ public class CreateTableAsBuilderTest {
     String selectInto = "SELECT rule_uuid INTO issues_copy FROM issues";
 
     verifySql(new H2(), createTableAs, "ALTER TABLE issues_copy ALTER COLUMN rule_uuid VARCHAR (40) NOT NULL");
-    verifySql(new MsSql(), selectInto, "ALTER TABLE issues_copy ALTER COLUMN rule_uuid NVARCHAR (40) NOT NULL");
+    verifySql(new MsSql(), selectInto, "ALTER TABLE issues_copy ALTER COLUMN rule_uuid VARCHAR (40) NOT NULL");
     verifySql(new Oracle(), createTableAs, "ALTER TABLE issues_copy MODIFY (rule_uuid VARCHAR2 (40 CHAR) NOT NULL)");
     verifySql(new PostgreSql(), createTableAs, "ALTER TABLE issues_copy ALTER COLUMN rule_uuid TYPE VARCHAR (40), ALTER COLUMN rule_uuid SET NOT NULL");
   }
@@ -48,8 +48,8 @@ public class CreateTableAsBuilderTest {
   public void create_table_with_cast() {
     verifySqlWithCast(new H2(), "CREATE TABLE issues_copy (rule_uuid) AS (SELECT CAST (rule_id AS VARCHAR (40)) AS rule_uuid FROM issues)",
       "ALTER TABLE issues_copy ALTER COLUMN rule_uuid VARCHAR (40) NOT NULL");
-    verifySqlWithCast(new MsSql(), "SELECT CAST (rule_id AS NVARCHAR (40)) AS rule_uuid INTO issues_copy FROM issues",
-      "ALTER TABLE issues_copy ALTER COLUMN rule_uuid NVARCHAR (40) NOT NULL");
+    verifySqlWithCast(new MsSql(), "SELECT CAST (rule_id AS VARCHAR (40)) AS rule_uuid INTO issues_copy FROM issues",
+      "ALTER TABLE issues_copy ALTER COLUMN rule_uuid VARCHAR (40) NOT NULL");
     verifySqlWithCast(new Oracle(), "CREATE TABLE issues_copy (rule_uuid) AS (SELECT CAST (rule_id AS VARCHAR2 (40 CHAR)) AS rule_uuid FROM issues)",
       "ALTER TABLE issues_copy MODIFY (rule_uuid VARCHAR2 (40 CHAR) NOT NULL)");
     verifySqlWithCast(new PostgreSql(), "CREATE TABLE issues_copy (rule_uuid) AS (SELECT CAST (rule_id AS VARCHAR (40)) AS rule_uuid FROM issues)",
index 380b6da318614831aefce84e82670047563b3e6e..8dc5f2fc858c13295126b45a71d3b415735f7506 100644 (file)
@@ -474,7 +474,7 @@ public class CreateTableBuilderTest {
 
   @Test
   public void build_adds_DEFAULT_clause_on_varchar_column_on_MSSQL() {
-    verifyDefaultClauseOnVarcharColumn(MS_SQL, "CREATE TABLE table_42 (status NVARCHAR (1) DEFAULT 'P' NOT NULL)");
+    verifyDefaultClauseOnVarcharColumn(MS_SQL, "CREATE TABLE table_42 (status VARCHAR (1) DEFAULT 'P' NOT NULL)");
   }
 
   @Test