Skip to content

Commit

Permalink
Revert "Fixed regression with specifying arg names in call syntax (#2480
Browse files Browse the repository at this point in the history
)"

This reverts commit 0e97689.
  • Loading branch information
Jeffery-Wasty committed Aug 6, 2024
1 parent 0e97689 commit 6762707
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 34 deletions.
3 changes: 1 addition & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)

## [12.8.0] Stable Release
### Fixed issues
- Fixed regression with specifying argument names in callable statement syntax [#2480](https://github.com/microsoft/mssql-jdbc/pull/2480)
- No changes since previous release

## [12.7.1] Preview Release
### Added
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,12 +137,9 @@ private void setPreparedStatementHandle(int handle) {

/**
* Regex for JDBC 'call' escape syntax
*
* Matches {[? =] call sproc ([@arg =] ?, [@arg =] ?, [@arg =] ? ...)}
*/
private static final Pattern callEscapePattern = Pattern
.compile("^\\s*(?i)\\{(\\s*\\??\\s*=?\\s*)call [^\\(\\)]+\\s*" +
"((\\(\\s*(.+\\s*=\\s*)?\\?\\s*(,\\s*\\?\\s*)*\\))?|\\(\\))\\s*}");
.compile("^\\s*(?i)\\{(\\s*\\??\\s*=?\\s*)call [^\\(\\)]+\\s*((\\(\\s*\\?\\s*(,\\s*\\?\\s*)*\\))?|\\(\\))\\s*}");

/**
* Regex for 'exec' escape syntax
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
import java.util.TimeZone;
import java.util.UUID;

import org.junit.Assert;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Tag;
Expand Down Expand Up @@ -58,8 +57,6 @@ public class CallableStatementTest extends AbstractTest {
.escapeIdentifier(RandomUtil.getIdentifier("CallableStatementTest_inputParams_SP"));
private static String conditionalSproc = AbstractSQLGenerator
.escapeIdentifier(RandomUtil.getIdentifier("CallableStatementTest_conditionalSproc"));
private static String simpleRetValSproc = AbstractSQLGenerator
.escapeIdentifier(RandomUtil.getIdentifier("CallableStatementTest_simpleSproc"));
private static String getObjectLocalDateTimeProcedureName = AbstractSQLGenerator
.escapeIdentifier(RandomUtil.getIdentifier("CallableStatementTest_getObjectLocalDateTime_SP"));
private static String getObjectOffsetDateTimeProcedureName = AbstractSQLGenerator
Expand Down Expand Up @@ -103,7 +100,6 @@ public static void setupTest() throws Exception {
TestUtils.dropProcedureIfExists(outOfOrderSproc, stmt);
TestUtils.dropProcedureIfExists(byParamNameSproc, stmt);
TestUtils.dropProcedureIfExists(conditionalSproc, stmt);
TestUtils.dropProcedureIfExists(simpleRetValSproc, stmt);
TestUtils.dropFunctionIfExists(userDefinedFunction, stmt);
TestUtils.dropUserDefinedTypeIfExists(manyParamUserDefinedType, stmt);
TestUtils.dropProcedureIfExists(manyParamProc, stmt);
Expand All @@ -123,7 +119,6 @@ public static void setupTest() throws Exception {
createOutOfOrderSproc();
createByParamNameSproc();
createConditionalProcedure();
createSimpleRetValSproc();
createUserDefinedFunction();
}
}
Expand Down Expand Up @@ -1202,21 +1197,6 @@ public void testCallableStatementDefaultValues() throws SQLException {
}
}

@Test
public void testCallableStatementSetByAnnotatedArgs() throws SQLException {
String call = "{? = call " + simpleRetValSproc + " (@Arg1 = ?)}";
int expectedValue = 1; // The sproc should return this value

try (CallableStatement cstmt = connection.prepareCall(call)) {
cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.setInt(1, 2);
cstmt.setString(2, "foo");
cstmt.execute();

Assert.assertEquals(expectedValue, cstmt.getInt(1));
}
}

@Test
@Tag(Constants.reqExternalSetup)
@Tag(Constants.xAzureSQLDB)
Expand Down Expand Up @@ -1325,7 +1305,6 @@ public static void cleanup() throws SQLException {
TestUtils.dropProcedureIfExists(byParamNameSproc, stmt);
TestUtils.dropProcedureIfExists(currentTimeProc, stmt);
TestUtils.dropProcedureIfExists(conditionalSproc, stmt);
TestUtils.dropProcedureIfExists(simpleRetValSproc, stmt);
TestUtils.dropFunctionIfExists(userDefinedFunction, stmt);
}
}
Expand Down Expand Up @@ -1394,13 +1373,6 @@ private static void createConditionalProcedure() throws SQLException {
}
}

private static void createSimpleRetValSproc() throws SQLException {
String sql = "CREATE PROCEDURE " + simpleRetValSproc + " (@Arg1 VARCHAR(128)) AS DECLARE @ReturnCode INT RETURN 1";
try (Statement stmt = connection.createStatement()) {
stmt.execute(sql);
}
}

private static void createTableManyParams() throws SQLException {
String type = manyParamUserDefinedType;
String sql = "CREATE TABLE" + manyParamsTable + " (c1 " + type + " null, " + "c2 " + type + " null, " + "c3 "
Expand Down

0 comments on commit 6762707

Please sign in to comment.