@@ -104,28 +104,31 @@ public void basicProcedure() throws SQLException {
104
104
stmt .execute ("DROP PROCEDURE IF EXISTS basic_proc2" );
105
105
stmt .execute (
106
106
"CREATE PROCEDURE basic_proc2 (INOUT t1 INT, IN t2 MEDIUMINT unsigned, OUT t3 DECIMAL(8,3),"
107
- + " OUT t4 VARCHAR(20), IN t5 SMALLINT) BEGIN \n "
107
+ + " OUT t4 VARCHAR(20), IN t5 SMALLINT, IN t6 BOOLEAN ) BEGIN \n "
108
108
+ "set t3 = t1 * t5;\n "
109
109
+ "set t1 = t2 * t1;\n "
110
110
+ "set t4 = 'return data';\n "
111
+ + "set t6 = true;\n "
111
112
+ "END" );
112
113
try (CallableStatement callableStatement =
113
114
sharedConn .prepareCall ("{call basic_proc2(?,?,?,?)}" )) {
114
115
ParameterMetaData meta = callableStatement .getParameterMetaData ();
115
- assertEquals (5 , meta .getParameterCount ());
116
+ assertEquals (6 , meta .getParameterCount ());
116
117
assertEquals ("int" , meta .getParameterClassName (1 ));
117
118
assertEquals ("int" , meta .getParameterClassName (2 ));
118
119
assertEquals ("java.math.BigDecimal" , meta .getParameterClassName (3 ));
119
120
assertEquals ("java.lang.String" , meta .getParameterClassName (4 ));
120
121
assertEquals ("short" , meta .getParameterClassName (5 ));
122
+ assertEquals ("boolean" , meta .getParameterClassName (6 ));
121
123
Common .assertThrowsContains (
122
- SQLException .class , () -> meta .getParameterClassName (6 ), "invalid parameter index 6 " );
124
+ SQLException .class , () -> meta .getParameterClassName (7 ), "invalid parameter index 7 " );
123
125
124
126
assertEquals ("INT" , meta .getParameterTypeName (1 ));
125
127
assertEquals ("MEDIUMINT" , meta .getParameterTypeName (2 ));
126
128
assertEquals ("DECIMAL" , meta .getParameterTypeName (3 ));
127
129
assertEquals ("VARCHAR" , meta .getParameterTypeName (4 ));
128
130
assertEquals ("SMALLINT" , meta .getParameterTypeName (5 ));
131
+ assertEquals ("BOOLEAN" , meta .getParameterTypeName (6 ));
129
132
Common .assertThrowsContains (
130
133
SQLException .class , () -> meta .getParameterTypeName (0 ), "invalid parameter index 0" );
131
134
@@ -134,6 +137,7 @@ public void basicProcedure() throws SQLException {
134
137
assertEquals (Types .DECIMAL , meta .getParameterType (3 ));
135
138
assertEquals (Types .VARCHAR , meta .getParameterType (4 ));
136
139
assertEquals (Types .SMALLINT , meta .getParameterType (5 ));
140
+ assertEquals (Types .BOOLEAN , meta .getParameterType (6 ));
137
141
Common .assertThrowsContains (
138
142
SQLException .class , () -> meta .getParameterType (0 ), "invalid parameter index 0" );
139
143
@@ -142,6 +146,7 @@ public void basicProcedure() throws SQLException {
142
146
assertEquals (ParameterMetaData .parameterModeOut , meta .getParameterMode (3 ));
143
147
assertEquals (ParameterMetaData .parameterModeOut , meta .getParameterMode (4 ));
144
148
assertEquals (ParameterMetaData .parameterModeIn , meta .getParameterMode (5 ));
149
+ assertEquals (ParameterMetaData .parameterModeIn , meta .getParameterMode (6 ));
145
150
Common .assertThrowsContains (
146
151
SQLException .class , () -> meta .getParameterMode (10 ), "invalid parameter index 10" );
147
152
@@ -325,14 +330,15 @@ public void getParameterTypeProcedure() throws SQLException {
325
330
}
326
331
}
327
332
328
-
329
333
@ Test
330
334
public void failStoredProcedureTest () throws Exception {
331
335
Statement stmt = sharedConn .createStatement ();
332
336
stmt .execute ("DROP PROCEDURE IF EXISTS workingStoreProcedure" );
333
337
stmt .execute ("DROP PROCEDURE IF EXISTS failingStoreProcedure" );
334
338
stmt .execute ("CREATE PROCEDURE workingStoreProcedure(a int) begin Do 1; end" );
335
- stmt .execute ("CREATE PROCEDURE failingStoreProcedure(a int) begin SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Custom error'; end" );
339
+ stmt .execute (
340
+ "CREATE PROCEDURE failingStoreProcedure(a int) begin SIGNAL SQLSTATE '45000' SET"
341
+ + " MESSAGE_TEXT = 'Custom error'; end" );
336
342
337
343
try (CallableStatement call1 = sharedConn .prepareCall ("{call useParameterName(?)}" )) {
338
344
call1 .setInt (1 , 1 );
@@ -363,7 +369,8 @@ public void failStoredProcedureTest2() throws Exception {
363
369
stmt .execute ("DROP PROCEDURE IF EXISTS workingStoreProcedure" );
364
370
stmt .execute ("DROP TABLE IF EXISTS saveData" );
365
371
stmt .execute ("CREATE TABLE saveData(i int PRIMARY KEY)" );
366
- stmt .execute ("CREATE PROCEDURE saveDataProc(val int) begin INSERT INTO saveData(i) VALUE (val); end" );
372
+ stmt .execute (
373
+ "CREATE PROCEDURE saveDataProc(val int) begin INSERT INTO saveData(i) VALUE (val); end" );
367
374
368
375
try (CallableStatement call1 = sharedConn .prepareCall ("{call saveDataProc(?)}" )) {
369
376
call1 .setInt (1 , 1 );
@@ -391,5 +398,4 @@ public void failStoredProcedureTest2() throws Exception {
391
398
call1 .executeBatch ();
392
399
}
393
400
}
394
-
395
401
}
0 commit comments