]> source.dussan.org Git - sonarqube.git/commitdiff
Use VARCHAR2 on Oracle instead of VARCHAR
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Tue, 22 Aug 2017 15:33:27 +0000 (17:33 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Thu, 24 Aug 2017 09:54:24 +0000 (11:54 +0200)
The type VARCHAR has been badly introduced when implementing
the Java DB migration tool.

Keeping VARCHAR on some installations should not be a problem. A fix
will be done if needed.

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/CreateTableBuilderTest.java

index be650c124d8c33562a663cff5a9fec45f7195036..c882054d5bb8d777f4a4e05ff29962e5625c0900 100644 (file)
@@ -66,7 +66,7 @@ public class VarcharColumnDef extends AbstractColumnDef {
       case MsSql.ID:
         return format("NVARCHAR (%d)", columnSize);
       case Oracle.ID:
-        return format("VARCHAR (%d%s)", columnSize, ignoreOracleUnit ? "" : " CHAR");
+        return format("VARCHAR2 (%d%s)", columnSize, ignoreOracleUnit ? "" : " CHAR");
       default:
         return format("VARCHAR (%d)", columnSize);
     }
index 63f1e304dc84550db15cd4b5ba2995c044b97eeb..e2f5f3de0b39f70385da79f29b92c9e7a10e1356 100644 (file)
@@ -75,7 +75,7 @@ public class VarcharColumnDefTest {
     assertThat(def.generateSqlType(new PostgreSql())).isEqualTo("VARCHAR (10)");
     assertThat(def.generateSqlType(new MySql())).isEqualTo("VARCHAR (10)");
     assertThat(def.generateSqlType(new MsSql())).isEqualTo("NVARCHAR (10)");
-    assertThat(def.generateSqlType(new Oracle())).isEqualTo("VARCHAR (10 CHAR)");
+    assertThat(def.generateSqlType(new Oracle())).isEqualTo("VARCHAR2 (10 CHAR)");
   }
 
   @Test
@@ -87,7 +87,7 @@ public class VarcharColumnDefTest {
       .setIgnoreOracleUnit(true)
       .build();
 
-    assertThat(def.generateSqlType(new Oracle())).isEqualTo("VARCHAR (10)");
+    assertThat(def.generateSqlType(new Oracle())).isEqualTo("VARCHAR2 (10)");
   }
 
   @Test
index bc4603ee82026d97f571e998fec751ce7ee842ef..6a0278dae6736cd528bbf6b5381bf65359634000 100644 (file)
@@ -57,7 +57,7 @@ public class AddColumnsBuilderTest {
   @Test
   public void add_columns_on_oracle() {
     assertThat(createSampleBuilder(new Oracle()).build())
-      .isEqualTo("ALTER TABLE issues ADD (date_in_ms NUMBER (38) NULL, name VARCHAR (10 CHAR) NOT NULL, col_with_default NUMBER(1) DEFAULT 0 NOT NULL, varchar_col_with_default VARCHAR (3 CHAR) DEFAULT 'foo' NOT NULL)");
+      .isEqualTo("ALTER TABLE issues ADD (date_in_ms NUMBER (38) NULL, name VARCHAR2 (10 CHAR) NOT NULL, col_with_default NUMBER(1) DEFAULT 0 NOT NULL, varchar_col_with_default VARCHAR2 (3 CHAR) DEFAULT 'foo' NOT NULL)");
   }
 
   @Test
index 5a78971598901030b03e3d09f85ef28675fd44f0..617c7f0802ecd2e4e8eb99bc873024491d9822c7 100644 (file)
@@ -100,13 +100,13 @@ public class AlterColumnsBuilderTest {
     assertThat(createSampleBuilder(new Oracle()).build())
       .containsOnly(
         "ALTER TABLE issues MODIFY (value NUMERIC (30,20) NULL)",
-        "ALTER TABLE issues MODIFY (name VARCHAR (10 CHAR) NULL)");
+        "ALTER TABLE issues MODIFY (name VARCHAR2 (10 CHAR) NULL)");
   }
 
   @Test
   public void update_not_nullable_column_on_oracle() {
     assertThat(createNotNullableBuilder(new Oracle()).build())
-      .containsOnly("ALTER TABLE issues MODIFY (name VARCHAR (10 CHAR) NOT NULL)");
+      .containsOnly("ALTER TABLE issues MODIFY (name VARCHAR2 (10 CHAR) NOT NULL)");
   }
 
   @Test
index 15882c6ce43ba6ce9e47fcc039c1bb90ea7ad6ec..4e7627ec8817553476995dedb2bce33655378e7b 100644 (file)
@@ -528,7 +528,7 @@ public class CreateTableBuilderTest {
 
   @Test
   public void build_adds_DEFAULT_clause_on_varchar_column_on_Oracle() {
-    verifyDefaultClauseOnVarcharColumn(ORACLE, "CREATE TABLE table_42 (status VARCHAR (1 CHAR) DEFAULT 'P' NOT NULL)");
+    verifyDefaultClauseOnVarcharColumn(ORACLE, "CREATE TABLE table_42 (status VARCHAR2 (1 CHAR) DEFAULT 'P' NOT NULL)");
   }
 
   @Test