Closed Kurairaito closed 7 years ago
Confirmed. Doesn't seem to apply to declared variables, so probably it's something wrong in insert_into_variables_parameters(). No estimate yet for a fix date.
I tried to fix the issue, now the $setup test_procedure does not fail anymore, and then when doing
$debug test_procedure(@o_bool,@o_result);
$NEXT
$refresh variables;
SELECT * FROM xxxmdbug.variables;
I get what seems to be the good result :
But the value is never updated. Any hint where it could come from ?
Note : I modified the procedure to add a boolean in first output parameter to check difference in xxxmdbug.variables
My attemp : https://github.com/ocelot-inc/ocelotgui/pull/3
New statement : my fix works. I was tricked because the last line of a procedure cannot be actually debugged. I tried with the following procedure :
BEGIN
DECLARE test_enum ENUM('test1','test2');
SET test_enum = "test2";
SET o_bool = 1;
SET o_result = "ok";
SET o_bool = 2;
END
And doing the following for each statement:
$NEXT
$refresh variables
SELECT * FROM xxxmdbug.variables
Update all the value except for the last (SET o_bool = 2;)
Will create another issue for this one.
@Kurairaito, I am impressed that you found and fixed my error. Thank you! Patch is accepted and merged. Note to other readers: This patch may also be a fix for SET and DECIMAL. It only works if you run $attach again. It is only in source, until the next release.
Here is an example of stored procedure that fail:
You can execute this code in phpmyadmin
in ocelot gui :
if you execute the same procedure from phpMyAdmin, you will have the o_result value set to 'ok'
Other stored procedure that do not use ENUM type in parameter seems to work fine (tested only with BIGINT and BOOLEAN).
ocelot version : latest release (1.0.4) x64 mariaDB version : 10.1.22 host : Ubuntu 17.04 x64