Uploaded image for project: 'MariaDB Connector/J'
  1. MariaDB Connector/J
  2. CONJ-263

Error in stored procedure or SQL statement with allowMultiQueries does not raise Exception when there is a result returned prior to erroneous statement

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 1.3.0, 1.3.6
    • 1.3.7
    • Other
    • None
    • MariaDB 10.0.19

    Description

      Scenario 1:
      Stored procedure:

      DELIMITER $$
      CREATE PROCEDURE `TEST_SP1`()
      BEGIN

      SELECT @Something := 'Something'; – this statement triggers the issue

      SIGNAL SQLSTATE '70100'
      SET MESSAGE_TEXT = 'Test error from SP';
      END

      Java code:
      Connection conn = null;
      try{
      conn =
      DriverManager.getConnection("jdbc:mysql://<server>/<Database>?" +
      "user=<user>&password=<pwd>");
      CallableStatement cStmt = conn.prepareCall("

      {call TEST_SP1()}

      ");
      boolean success = cStmt.execute();
      System.out.println("Successful");
      } catch (Exception ex)

      { System.out.println("Exception caught: " + ex.toString()); throw ex; }

      finally

      { conn.close(); }

      Expected:
      Exception is raised

      Actual:
      Call returns successfully, execute() method returns true


      Scenario 2:
      Connection conn = null;
      try{ conn = DriverManager.getConnection("jdbc:mysql://<server>/<Database>?" + "user=<user>&password=<pwd>&allowMultiQueries=true"); PreparedStatement stmt = conn.prepareStatement("SELECT 1; INSERT INTO TEST_TBL ;"); stmt.execute(); System.out.println("Successful"); } catch (Exception ex) { System.out.println("Exception caught: " + ex.toString()); throw ex; } finally { conn.close(); }

      Expected:
      Syntax error in Insert statement.

      Actual:
      Successful. if I remove the "SELECT 1; " prior to Insert statement, it does throw java.sql.SQLSyntaxErrorException

      Attachments

        Activity

          diego dupin Diego Dupin added a comment -

          Good remark.

          Exceptions must be thrown immediatly when there is exception in multiple queries.

          Commit : https://github.com/MariaDB/mariadb-connector-j/commit/c02b37914c4d15e43f24f2ce4af7064bc9e9da7d

          diego dupin Diego Dupin added a comment - Good remark. Exceptions must be thrown immediatly when there is exception in multiple queries. Commit : https://github.com/MariaDB/mariadb-connector-j/commit/c02b37914c4d15e43f24f2ce4af7064bc9e9da7d

          People

            diego dupin Diego Dupin
            snarra Sridevi Narra
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.