You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2017/07/07 14:49:24 UTC

[10/29] ambari git commit: AMBARI-21363 ORA-00911 error during Ambari server schema upgrade due to incorrect syntax of Update statement (dgrinenko)

AMBARI-21363 ORA-00911 error during Ambari server schema upgrade due to incorrect syntax of Update statement (dgrinenko)


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

Branch: refs/heads/branch-feature-AMBARI-21348
Commit: 52980df6f7ac8ee22895c2b102f4c5fe6346a12b
Parents: 777434e
Author: Dmytro Grinenko <ha...@apache.org>
Authored: Thu Jun 29 15:15:23 2017 +0300
Committer: Dmytro Grinenko <ha...@apache.org>
Committed: Thu Jun 29 15:15:23 2017 +0300

----------------------------------------------------------------------
 .../ambari/server/orm/DBAccessorImpl.java       | 43 +++++++++++---------
 .../orm/helpers/dbms/GenericDbmsHelper.java     |  2 +-
 2 files changed, 25 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/52980df6/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 f3250b8..2256d44 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
@@ -204,6 +204,27 @@ public class DBAccessorImpl implements DBAccessor {
     return objectName;
   }
 
+  /**
+   * Setting arguments for prepared statement
+   *
+   * @param preparedStatement {@link PreparedStatement} object
+   * @param arguments array of arguments
+   *
+   * @throws SQLException
+   */
+  private void setArgumentsForPreparedStatement(PreparedStatement preparedStatement, Object[] arguments) throws SQLException{
+    for (int i = 0; i < arguments.length; i++) {
+      if (arguments[i] instanceof byte[]) {
+        byte[] binaryData = (byte[]) arguments[i];
+
+        // JDBC drivers supports only this function signature
+        preparedStatement.setBinaryStream(i+1, new ByteArrayInputStream(binaryData), binaryData.length);
+      } else {
+        preparedStatement.setObject(i+1, arguments[i]);
+      }
+    }
+  }
+
   @Override
   public boolean tableExists(String tableName) throws SQLException {
     boolean result = false;
@@ -878,16 +899,8 @@ public class DBAccessorImpl implements DBAccessor {
     LOG.info("Executing prepared query: {}", query);
 
     PreparedStatement preparedStatement = getConnection().prepareStatement(query);
+    setArgumentsForPreparedStatement(preparedStatement, arguments);
 
-      for (int i = 0; i < arguments.length; i++) {
-        if (arguments[i] instanceof byte[]) {
-          byte[] binaryData = (byte[]) arguments[i];
-          // JDBC drivers supports only this function signature
-          preparedStatement.setBinaryStream(i+1, new ByteArrayInputStream(binaryData), binaryData.length);
-        } else {
-          preparedStatement.setObject(i+1, arguments[i]);
-        }
-      }
     try {
         preparedStatement.execute();
     } catch (SQLException e) {
@@ -908,7 +921,7 @@ public class DBAccessorImpl implements DBAccessor {
    {@inheritDoc}
    */
   public void executePreparedUpdate(String query, Object...arguments) throws SQLException {
-    executePreparedQuery(query, false, arguments);
+    executePreparedUpdate(query, false, arguments);
   }
 
   /**
@@ -918,16 +931,8 @@ public class DBAccessorImpl implements DBAccessor {
     LOG.info("Executing prepared query: {}", query);
 
     PreparedStatement preparedStatement = getConnection().prepareStatement(query);
+    setArgumentsForPreparedStatement(preparedStatement, arguments);
 
-    for (int i = 0; i <= arguments.length; i++) {
-      if (arguments[i] instanceof byte[]) {
-        byte[] binaryData = (byte[]) arguments[i];
-        // JDBC drivers supports only this function signature
-        preparedStatement.setBinaryStream(i+1, new ByteArrayInputStream(binaryData), binaryData.length);
-      } else {
-        preparedStatement.setObject(i+1, arguments[i]);
-      }
-    }
     try {
       preparedStatement.executeUpdate();
     } catch (SQLException e) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/52980df6/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 4b4ce8d..11cbcf9 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
@@ -280,7 +280,7 @@ public class GenericDbmsHelper implements DbmsHelper {
    */
   @Override
   public String getColumnUpdateStatementWhereColumnIsNull(String tableName, String setColumnName, String conditionColumnName){
-    return "UPDATE " + tableName + " SET " + setColumnName + "=? WHERE " + conditionColumnName + " IS NULL;";
+    return "UPDATE " + tableName + " SET " + setColumnName + "=? WHERE " + conditionColumnName + " IS NULL";
   }
 
   /**