| Bug #10262 | Stored procedures: character set clause ignored for variables | ||
|---|---|---|---|
| Submitted: | 29 Apr 2005 14:08 | Modified: | 4 Oct 2005 6:51 |
| Reporter: | Peter Gulutzan | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server: Stored Routines | Severity: | S3 (Non-critical) |
| Version: | 5.0.6-beta-debug | OS: | Linux (Linux, Windows) |
| Assigned to: | CPU Architecture: | Any | |
[29 Apr 2005 14:08]
Peter Gulutzan
[15 Sep 2005 8:11]
Valeriy Kravchuk
I was able to repeat on 5.0.12-beta-nt:
mysql> use test
Database changed
mysql> create table t92 (s1 char character set sjis);
Query OK, 0 rows affected (0.66 sec)
mysql> insert into t92 values (0x8150);
Query OK, 1 row affected (0.14 sec)
mysql> delimiter //
mysql> create procedure p92 () begin declare v char character set sjis; declare
-> c cursor for select s1 from t92; open c; fetch c into v; select hex(v),
-> octet_length(v); end//
Query OK, 0 rows affected (0.31 sec)
mysql> call p92()//
+--------+-----------------+
| hex(v) | octet_length(v) |
+--------+-----------------+
| 3F | 1 |
+--------+-----------------+
1 row in set (0.18 sec)
Query OK, 0 rows affected (0.22 sec)
mysql> select s1, hex(s1), octet_length(s1) from t92//
+------+---------+------------------+
| s1 | hex(s1) | octet_length(s1) |
+------+---------+------------------+
| ? | 8150 | 2 |
+------+---------+------------------+
1 row in set (0.00 sec)
mysql> select version()//
+----------------+
| version() |
+----------------+
| 5.0.12-beta-nt |
+----------------+
1 row in set (0.00 sec)
So, it is a really different behaviour in SP.
[3 Oct 2005 21:17]
Alexander Nozdrin
It seems, the bug was fixed by BUG#6513.
[4 Oct 2005 6:51]
Valeriy Kravchuk
I was unable to repeat it any more on 5.0.13-rc-nt:
mysql> use test;
Database changed
mysql> drop table t92;
Query OK, 0 rows affected (0.53 sec)
mysql> create table t92 (s1 char character set sjis);
Query OK, 0 rows affected (0.27 sec)
mysql> insert into t92 values (0x8150);
Query OK, 1 row affected (0.11 sec)
mysql> drop procedure p92;
Query OK, 0 rows affected (0.22 sec)
mysql> delimiter //
mysql> create procedure p92 () begin declare v char character set sjis; declare
-> c cursor for select s1 from t92; open c; fetch c into v; select hex(v),
-> octet_length(v); end//
Query OK, 0 rows affected (0.02 sec)
mysql> call p92()//
+--------+-----------------+
| hex(v) | octet_length(v) |
+--------+-----------------+
| 8150 | 2 |
+--------+-----------------+
1 row in set (0.01 sec)
Query OK, 0 rows affected (0.04 sec)
mysql> select s1, hex(s1), octet_length(s1) from t92//
+------+---------+------------------+
| s1 | hex(s1) | octet_length(s1) |
+------+---------+------------------+
| ? | 8150 | 2 |
+------+---------+------------------+
1 row in set (0.00 sec)
mysql> select version()//
+--------------+
| version() |
+--------------+
| 5.0.13-rc-nt |
+--------------+
1 row in set (0.00 sec)
Looks like bug #6513 fixed in this version solved this problem too.
[10 Oct 2005 21:03]
Roland Bouman
I'm having a similar bug with varchar stored procedure parameters in mysql 5.0.13-rc-nt. see: bug 13909. (Sorry if this is a duplicate)
