SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.03.2008 15:37:43

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Глюки с кодировкой в хранимом коде

Коллеги,
че-то я не понимаю. По-моему, баг:

mysql> SET NAMES utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW CREATE FUNCTION testcharset\G
*************************** 1. row ***************************
       Function: testcharset
       sql_mode:
Create Function: CREATE DEFINER=`username`@`hostname` FUNCTION `testcharset`() RETURNS varchar(255)
BEGIN
  DECLARE c VARCHAR(255) CHARSET utf8;
  SET c = 'ФЫВАЭЖ';
  RETURN c;
END
1 row in set (0.00 sec)

mysql> SELECT testcharset();
+---------------+
| testcharset() |
+---------------+
| ??????        |
+---------------+
1 row in set, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;
+---------+------+----------------------------------------------------+
| Level   | Code | Message                                            |
+---------+------+----------------------------------------------------+
| Warning | 1265 | Data truncated for column 'testcharset()' at row 1 |
+---------+------+----------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT VERSION();
+------------+
| VERSION()  |
+------------+
| 5.0.22-log |
+------------+
1 row in set (0.00 sec)

Неактивен

 

#2 16.03.2008 17:27:45

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Глюки с кодировкой в хранимом коде

Похоже бага в SHOW CREATE FUNCTION. У меня определенная функция выдает данные в правильной кодировке, но вот SHOW CREATE FUNCTION не работает.

Код:

mysql> select version();
+------------+
| version()  |
+------------+
| 5.0.22-log | 
+------------+
1 row in set (0.00 sec)

mysql> set names koi8r;
Query OK, 0 rows affected (0.00 sec)

mysql> use test
mysql> CREATE FUNCTION `testcharset`() RETURNS varchar(255) CHARSET utf8 BEGIN   DECLARE c VARCHAR(255) CHARSET utf8;   SET c = 'ФЫВАЭЖ';   RETURN c; END//
Query OK, 0 rows affected (0.00 sec)

mysql> select testcharset()//
+---------------+
| testcharset() |
+---------------+
| ФЫВАЭЖ        | 
+---------------+
1 row in set (0.00 sec)

mysql> show create function testcharset\G
*************************** 1. row ***************************
       Function: testcharset
       sql_mode: 
Create Function: CREATE DEFINER=`root`@`localhost` FUNCTION `testcharset`() RETURNS varchar(255)
BEGIN   DECLARE c VARCHAR(255) CHARSET utf8;   SET c = '??????';   RETURN c; END
1 row in set (0.00 sec)

Неактивен

 

#3 27.03.2008 06:55:21

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 849

Re: Глюки с кодировкой в хранимом коде

Разместил немного измененный репорт:
http://bugs.mysql.com/bug.php?id=35588&thanks=4

Неактивен

 

#4 27.03.2008 12:59:16

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Глюки с кодировкой в хранимом коде

Уже ответили с дополнительным вопросом

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson