You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by vb...@apache.org on 2014/09/25 17:12:00 UTC

git commit: AMBARI-7488. setNullable action for MySQL needs to be refactored.(vbrodetskyi)

Repository: ambari
Updated Branches:
  refs/heads/trunk 0d220839c -> 0833a91d0


AMBARI-7488. setNullable action for MySQL needs to be refactored.(vbrodetskyi)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0833a91d
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0833a91d
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0833a91d

Branch: refs/heads/trunk
Commit: 0833a91d03a7f8e2fb2e007c1b033450f30a46f4
Parents: 0d22083
Author: Vitaly Brodetskyi <vb...@hortonworks.com>
Authored: Thu Sep 25 18:10:55 2014 +0300
Committer: Vitaly Brodetskyi <vb...@hortonworks.com>
Committed: Thu Sep 25 18:10:55 2014 +0300

----------------------------------------------------------------------
 .../main/java/org/apache/ambari/server/orm/DBAccessor.java    | 6 +++---
 .../java/org/apache/ambari/server/orm/DBAccessorImpl.java     | 5 ++---
 .../org/apache/ambari/server/orm/helpers/dbms/DbmsHelper.java | 7 +++----
 .../apache/ambari/server/orm/helpers/dbms/DerbyHelper.java    | 4 ++--
 .../ambari/server/orm/helpers/dbms/GenericDbmsHelper.java     | 7 +++----
 .../apache/ambari/server/orm/helpers/dbms/MySqlHelper.java    | 5 +++--
 .../apache/ambari/server/orm/helpers/dbms/OracleHelper.java   | 4 ++--
 .../apache/ambari/server/orm/helpers/dbms/PostgresHelper.java | 4 ++--
 .../org/apache/ambari/server/upgrade/UpgradeCatalog170.java   | 6 +-----
 .../java/org/apache/ambari/server/orm/DBAccessorImplTest.java | 6 ++++--
 10 files changed, 25 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessor.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessor.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessor.java
index be18970..9eca8c0 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessor.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessor.java
@@ -310,14 +310,14 @@ public interface DBAccessor {
    * 
    * @param tableName
    *          the name of the table (not {@code null}).
-   * @param columnName
-   *          the name of the column to alter (not {@code null}).
+   * @param columnInfo
+   *          the column object to get name and type of column (not {@code null}).
    * @param nullable
    *          {@code true} to indicate that the column allows {@code NULL}
    *          values, {@code false} otherwise.
    * @throws SQLException
    */
-  public void setNullable(String tableName, String columnName, boolean nullable)
+  public void setNullable(String tableName, DBAccessor.DBColumnInfo columnInfo, boolean nullable)
       throws SQLException;
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java
index 8586273..f9407f7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/DBAccessorImpl.java
@@ -587,10 +587,9 @@ public class DBAccessorImpl implements DBAccessor {
   }
 
   @Override
-  public void setNullable(String tableName, String columnName, boolean nullable)
+  public void setNullable(String tableName, DBAccessor.DBColumnInfo columnInfo, boolean nullable)
       throws SQLException {
-    String statement = dbmsHelper.getSetNullableStatement(tableName,
-        columnName, nullable);
+    String statement = dbmsHelper.getSetNullableStatement(tableName, columnInfo, nullable);
 
     executeQuery(statement);
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DbmsHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DbmsHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DbmsHelper.java
index 52eac62..dcef71c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DbmsHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DbmsHelper.java
@@ -77,13 +77,12 @@ public interface DbmsHelper {
    * 
    * @param tableName
    *          the table (not {@code null}).
-   * @param columnName
-   *          the column to alert the nullable state of (not {@code null}).
+   * @param columnInfo
+   *          the column object to get name and type of column (not {@code null}).
    * @param nullable
    *          {@code true} to indicate that the column allows {@code NULL}
    *          values, {@code false} otherwise.
    * @return the statement (never {@code null}).
    */
-  String getSetNullableStatement(String tableName, String columnName,
-      boolean nullable);
+  String getSetNullableStatement(String tableName, DBAccessor.DBColumnInfo columnInfo, boolean nullable);
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DerbyHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DerbyHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DerbyHelper.java
index 5f39509..c012a77 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DerbyHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/DerbyHelper.java
@@ -52,8 +52,8 @@ public class DerbyHelper extends GenericDbmsHelper {
 
   @Override
   public StringBuilder writeSetNullableString(StringBuilder builder,
-      String tableName, String columnName, boolean nullable) {
-    builder.append(" ALTER COLUMN ").append(columnName);
+      String tableName, DBAccessor.DBColumnInfo columnInfo, boolean nullable) {
+    builder.append(" ALTER COLUMN ").append(columnInfo.getName());
     String nullStatement = nullable ? " NULL" : " NOT NULL";
     builder.append(nullStatement);
     return builder;

http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/GenericDbmsHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/GenericDbmsHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/GenericDbmsHelper.java
index a273265..0ee2920 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/GenericDbmsHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/GenericDbmsHelper.java
@@ -69,11 +69,10 @@ public class GenericDbmsHelper implements DbmsHelper {
   }
 
   @Override
-  public String getSetNullableStatement(String tableName, String columnName,
-      boolean nullable) {
+  public String getSetNullableStatement(String tableName, DBAccessor.DBColumnInfo columnInfo, boolean nullable) {
     StringBuilder stringBuilder = new StringBuilder();
     writeAlterTableClause(stringBuilder, tableName);
-    writeSetNullableString(stringBuilder, tableName, columnName, nullable);
+    writeSetNullableString(stringBuilder, tableName, columnInfo, nullable);
     return stringBuilder.toString();
   }
 
@@ -115,7 +114,7 @@ public class GenericDbmsHelper implements DbmsHelper {
   }
 
   public StringBuilder writeSetNullableString(StringBuilder builder,
-      String tableName, String columnName, boolean nullable) {
+      String tableName, DBAccessor.DBColumnInfo columnInfo, boolean nullable) {
     throw new UnsupportedOperationException(
         "Column nullable modification not supported for generic DB");
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/MySqlHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/MySqlHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/MySqlHelper.java
index 841a854..4accda9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/MySqlHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/MySqlHelper.java
@@ -54,8 +54,9 @@ public class MySqlHelper extends GenericDbmsHelper {
 
   @Override
   public StringBuilder writeSetNullableString(StringBuilder builder,
-      String tableName, String columnName, boolean nullable) {
-    builder.append(" MODIFY ").append(columnName);
+      String tableName, DBAccessor.DBColumnInfo columnInfo, boolean nullable) {
+    builder.append(" MODIFY ").append(columnInfo.getName()).append(" ");
+    writeColumnType(builder, columnInfo);
     String nullStatement = nullable ? " NULL" : " NOT NULL";
     builder.append(nullStatement);
     return builder;

http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/OracleHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/OracleHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/OracleHelper.java
index 4da8e8f..0059566 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/OracleHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/OracleHelper.java
@@ -46,8 +46,8 @@ public class OracleHelper extends GenericDbmsHelper {
 
   @Override
   public StringBuilder writeSetNullableString(StringBuilder builder,
-      String tableName, String columnName, boolean nullable) {
-    builder.append(" MODIFY ").append(columnName);
+      String tableName, DBAccessor.DBColumnInfo columnInfo, boolean nullable) {
+    builder.append(" MODIFY ").append(columnInfo.getName());
     String nullStatement = nullable ? " NULL" : " NOT NULL";
     builder.append(nullStatement);
     return builder;

http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/PostgresHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/PostgresHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/PostgresHelper.java
index c3ad9c5..9de073a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/PostgresHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/helpers/dbms/PostgresHelper.java
@@ -46,8 +46,8 @@ public class PostgresHelper extends GenericDbmsHelper {
 
   @Override
   public StringBuilder writeSetNullableString(StringBuilder builder,
-      String tableName, String columnName, boolean nullable) {
-    builder.append(" ALTER COLUMN ").append(columnName);
+      String tableName, DBAccessor.DBColumnInfo columnInfo, boolean nullable) {
+    builder.append(" ALTER COLUMN ").append(columnInfo.getName());
     String nullStatement = nullable ? " SET NULL" : " SET NOT NULL";
     builder.append(nullStatement);
     return builder;

http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
index 7e7738c..35e80ff 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog170.java
@@ -366,11 +366,7 @@ public class UpgradeCatalog170 extends AbstractUpgradeCatalog {
 
     populateConfigVersions();
 
-    if (Configuration.MYSQL_DB_NAME.equals(dbType)) {
-      dbAccessor.executeQuery("ALTER TABLE clusterconfig MODIFY version BIGINT NOT NULL");
-    } else {
-      dbAccessor.setNullable("clusterconfig", "version", false);
-    }
+    dbAccessor.setNullable("clusterconfig", new DBColumnInfo("version", Long.class, null), false);
 
     dbAccessor.executeQuery("ALTER TABLE clusterconfig ADD CONSTRAINT UQ_config_type_tag UNIQUE (cluster_id, type_name, version_tag)", true);
     dbAccessor.executeQuery("ALTER TABLE clusterconfig ADD CONSTRAINT UQ_config_type_version UNIQUE (cluster_id, type_name, version)", true);

http://git-wip-us.apache.org/repos/asf/ambari/blob/0833a91d/ambari-server/src/test/java/org/apache/ambari/server/orm/DBAccessorImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/DBAccessorImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/DBAccessorImplTest.java
index 8abadea..7ad7638 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/DBAccessorImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/DBAccessorImplTest.java
@@ -332,7 +332,8 @@ public class DBAccessorImplTest {
 
     statement.close();
 
-    dbAccessor.setNullable(tableName, "isNullable", false);
+    dbAccessor.setNullable(tableName, new DBColumnInfo("isNullable",
+            String.class, 1000, "test", false), false);
     statement = dbAccessor.getConnection().createStatement();
     resultSet = statement.executeQuery("SELECT isNullable FROM " + tableName);
     rsmd = resultSet.getMetaData();
@@ -340,7 +341,8 @@ public class DBAccessorImplTest {
 
     statement.close();
 
-    dbAccessor.setNullable(tableName, "isNullable", true);
+    dbAccessor.setNullable(tableName, new DBColumnInfo("isNullable",
+            String.class, 1000, "test", false), true);
     statement = dbAccessor.getConnection().createStatement();
     resultSet = statement.executeQuery("SELECT isNullable FROM " + tableName);
     rsmd = resultSet.getMetaData();