I have stored procedure with variable contaiting BLOB with size about 1MB.
When debugging I get error in "update_watch" procedure, that uses varchar(2000) input parameter. Is it possible to use and debug variables with size >2000 bytes?
error with debugging BLOB variables
Indeed, we limited the watch size to 2000 characters for performance gain. But described problem should not appear. Debugger must show truncated value.
Could you perform some tests for us?
Please create the sample stored procedure written below, and execute it in the application. You must see the error message saying:
"Failed to execute test.sp
Data too long for column 'a' at row 1"
Then compile stored procedure without debug information. Execute it once again. Do you see the error message box?
Also we need 'sql_mode' variable value from you. You can get it by executing following statement.
SELECT @@sql_mode statement
CREATE PROCEDURE test.sp()
BEGIN
declare a varchar (2) default 'qwerty';
END
Could you perform some tests for us?
Please create the sample stored procedure written below, and execute it in the application. You must see the error message saying:
"Failed to execute test.sp
Data too long for column 'a' at row 1"
Then compile stored procedure without debug information. Execute it once again. Do you see the error message box?
Also we need 'sql_mode' variable value from you. You can get it by executing following statement.
SELECT @@sql_mode statement
CREATE PROCEDURE test.sp()
BEGIN
declare a varchar (2) default 'qwerty';
END
In example procedure I get error anyway with dubug info and without.
My stored procedure work fine when compiled without debugging info, but with debugging i get the same error like in this example procedure:
"Data too long for column 'in_watch_value' at row 62"
When I debug this procedure error appears on query like this:
"select blob1,blob2 into varBlob1,varBlob2 from table1 where id=varID;"
where fields and variables type is longblob.
sql_mode : STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
My stored procedure work fine when compiled without debugging info, but with debugging i get the same error like in this example procedure:
"Data too long for column 'in_watch_value' at row 62"
When I debug this procedure error appears on query like this:
"select blob1,blob2 into varBlob1,varBlob2 from table1 where id=varID;"
where fields and variables type is longblob.
sql_mode : STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
We cannot reproduce the problem using our MySql servers. Please tell us the version of your server. Also execute the example written below. Does the error happen again?
SET SESSION sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DROP PROCEDURE IF EXISTS test.sp;
CREATE PROCEDURE test.sp()
BEGIN
DECLARE a VARCHAR (2) DEFAULT 'qwerty';
END;
SET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
CALL test.sp();
SET SESSION sql_mode = 'NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DROP PROCEDURE IF EXISTS test.sp;
CREATE PROCEDURE test.sp()
BEGIN
DECLARE a VARCHAR (2) DEFAULT 'qwerty';
END;
SET SESSION sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
CALL test.sp();