SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 02.02.2010 12:15:47

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Тестирование отладчика хранимых процедур и функций MySQL

Приветствую участников форума SQLinfo.ru!

Предлагаю принять участие в тестировании отладчика хранимых процедур и функций MySQL.

Подробнее о программе можно узнать на сайте http://www.mysqldebugger.com

Прямая ссылка на загрузку инсталлятора http://www.mysqldebugger.com/files/mydebugger_setup.exe

Краткая инструкция по работе с отладчиком:

После запуска, программа попросит ввести параметры подключения к MySQL серверу. Для работы необходима версия MySQL 5.0 или выше.

После подключения, откроется главное окно программы. В центре рабочей области находятся вкладки редакторов процедур и функций. При первом запуске будет открыта только одна вкладка <Main>.

В теле <Main> находится скрипт который запускается на выполнение движком отладчика. В нем вы должны написать вызовы отлаживаемых процедур\функций.
Скрипт <Main> по синтаксису аналогичен телам процедур MySQL.

Простой пример скрипта <Main> для отладки процедуры:
begin
  declare p_result integer;
  call my_procedure(p_result);
  select p_result;
end

Простой пример скрипта <Main> для отладки функции:
begin
  declare p_result integer;
  set p_result = my_function();
  select p_result;
end

После написания скрипта <Main> можно расставить точки останова, теперь, отладчик готов к работе, нажимайте Run(F9).

В текущей версии отсутствуют:
  Отладка триггеров.
  Отладка событий.
  Поддержка отладки функций вызванных из DML, например select my_function().

Все остальное, включая нововведения MySQL 5.5 (SIGNAL\RESIGNAL) программа поддерживает.

Буду рад ответить на ваши вопросы в этой теме, либо по почте support@mydebugger.com

Спасибо за внимание. Успехов в отладке!

Неактивен

 

#2 02.02.2010 12:36:43

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

Re: Тестирование отладчика хранимых процедур и функций MySQL

Учитывая различия реализации в различных версиях MySQL, предусмотрен ли выбор версии MySQL с которой работать? Это существенно для корпоративных клиентов, которые во-первых используют только Enterprise-версии, а во-вторых, часто привязаны к старой версии (из-за требований стабильности и сложности миграции большого программного комплекса).

Рекомендую стать технологическим партнером MySQL AB:
https://partner-portal.mysql.com/guide/technology.html

В случае одобрения, партнерство бесплатно, при этом ваш продукт будет рекламироваться на сайте mysql.com в разделе "партнеры" и вы получите логотип для размещения на своем сайте.

Неактивен

 

#3 02.02.2010 12:43:29

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

Выбор версии не предусмотрен. Скажите пожалуйста о каких конкретно проблемах вы говорите.

Спасибо, заявку на партнерскую программу подал давно, они попросили внести исправления на сайте, все сделал, но они уже неделю молчат, наверно им не до того, заняты переходом под крыло ораклаsmile

Неактивен

 

#4 02.02.2010 12:54:41

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

Re: Тестирование отладчика хранимых процедур и функций MySQL

Это такой наблюдательный факт, что крупные компании не спешат с переходом на 5.1 (проблемы и причины могут быть разные - в основном, консерватизм и более высокое число еще не выловленных багов в новых продуктах). Версия MySQL 5.5 на сегодня экспериментальная и в продакшене практически не используется. Если разница в версиях будет только в новых фичах, то пользователь не испытает проблем с дебаггером, но может так произойти, что версия изменит поведение сервера (то есть код, работающий в 5.0 не будет работать в X.X).

Думаю интеграцией и партнерской программой занимаются разные люди. Поэтому не бойтесь напомнить им - лучше всего звонить ответственному лицу по скайпу или телефону.

Неактивен

 

#5 02.02.2010 13:11:30

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

Да, сейчас отладчик не учитывает версию сервера. Те же SIGNAL\RESIGNAL будут отлично компилироваться и отлаживаться на версии < 5.5. Естественно, при попытке сохранить изменения в версии < 5.5 пользователь получит законную ошибку синтаксиса.

Спасибо что напомнили о партнерской программе.

Неактивен

 

#6 02.02.2010 14:06:07

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

Re: Тестирование отладчика хранимых процедур и функций MySQL

byterus написал:

Спасибо что напомнили о партнерской программе.

Как получите статус, мы вам логотип на форуме присвоим smile

Неактивен

 

#7 17.02.2010 19:26:31

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

rgbeast написал:

byterus написал:

Спасибо что напомнили о партнерской программе.

Как получите статус, мы вам логотип на форуме присвоим smile

http://solutions.mysql.com/solutions/item.php?id=1798

Можно присваивать логотипsmile

Неактивен

 

#8 17.02.2010 19:41:43

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

Re: Тестирование отладчика хранимых процедур и функций MySQL

Поздравляю с получением статуса. Логотип присвоен smile

Неактивен

 

#9 17.02.2010 19:44:32

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

rgbeast написал:

Поздравляю с получением статуса. Логотип присвоен smile

Спасибо, дело за малым, начать тестироватьsmile

Неактивен

 

#10 17.02.2010 20:24:46

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

Re: Тестирование отладчика хранимых процедур и функций MySQL

byterus написал:

Спасибо, дело за малым, начать тестироватьsmile

Windows-барьер - это серьезный барьер. Надо под wine попробовать.

Неактивен

 

#11 23.06.2010 14:28:20

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

Вести с полейsmile

Текущая версия отладчика 1.2, подробности о новых возможностях смотрите в разделе Что нового.
Сегодня опубликовано руководство Работа с отладчиком в ОС Linux.

Программа бесплатна для русскоязычных пользователей, для получения лицензии пишите на support@mydebugger.com

Успехов в отладке!

Неактивен

 

#12 23.06.2010 15:05:54

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Тестирование отладчика хранимых процедур и функций MySQL

Аха, под wine завелось smile Как давно я не видел виндовых окошек smile

Что означает «configure debug environment»? В базе изменений, вроде, не
увидел.

Неактивен

 

#13 23.06.2010 15:08:39

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

Отлично! «configure debug environment» автоматически генерирует скрипт для отладки выбранной рутины(содержимое вкладки Main).

Неактивен

 

#14 23.06.2010 15:38:24

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Тестирование отладчика хранимых процедур и функций MySQL

Кажется, идею понял smile

В качестве улучшения usability можно попробовать в случае, когда
main пустой, открыта другая вкладка с процедурой, и человек нажал
debug, создавать main автоматически. Возможно, даже лучше сказать,
что «main был пустой, создал сценарий для запуска этой процедуры
по умолчанию».

Да, еще вопрос — забыл сразу задать. Зачем нужно выбирать обяза-
тельно базу при подключении? Потом я же могу все равно базу менять
через GUI?

Неактивен

 

#15 23.06.2010 15:43:28

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

Спасибо за предложение! Программа пытается опознать что во вкладке Main нет исполняющихся статементов и выдает диалог с предложением использовать команду Configure environment.

После подключения базу изменить нельзя.

Неактивен

 

#16 17.09.2010 12:24:58

tan4ik
Участник
Зарегистрирован: 20.11.2009
Сообщений: 7

Re: Тестирование отладчика хранимых процедур и функций MySQL

Здравствуйте smile
Я тут тестирую свои процедуры и ваш отладчик заодно, так вот smile

У меня возникла следующая проблема:

есть процедура:


CREATE PROCEDURE `getCurrency`(
    IN sidid INT(5),
    IN curlang VARCHAR(5),
    IN curSubemitent INT(13)
)
BEGIN
    DROP TABLE IF EXISTS `ocms_currecy_view`;
    IF curSubemitent IS NOT NULL  AND curSubemitent > 0 THEN
        CREATE TEMPORARY TABLE `ocms_currecy_view` AS
            SELECT
               DISTINCT c.`currency`, c.`sid`, ci.`lang`, ci.`title`, c.`prefix`, ce.`emitent`, c.`main`, c.`amount_sale`, c.`amount_purchase`
            FROM
                `ocms_currency_i18n` AS ci,
                `ocms_currency` AS c
            LEFT JOIN
                `ocms_currency_emitent` AS ce ON
                    ( ce.`currency` = c.`currency` AND
                    ce.`sid` = c.`sid` )
            INNER JOIN
                `ocms_subemitents` AS s ON
                    ( c.`currency` = s.`currency`  AND
                    s.`sid` = c.`sid` )
            WHERE
                c.`currency` = ci.`currency` AND
                c.`sid` = ci.`sid` AND
                ci.`lang` = curlang AND
                s.`subemitent` = curSubemitent AND
                c.`sid` = sidid;
       
    ELSE
   
        CREATE TEMPORARY TABLE `ocms_currecy_view` AS
            SELECT
               DISTINCT c.`currency`, c.`sid`, ci.`lang`, ci.`title`, c.`prefix`, ce.`emitent`, c.`main`, c.`amount_sale`, c.`amount_purchase`
            FROM
                `ocms_currency_i18n` AS ci,
                `ocms_currency` AS c
            LEFT JOIN
                `ocms_currency_emitent` AS ce ON
                    ( ce.`currency` = c.`currency` AND
                    ce.`sid` = c.`sid` )
            WHERE
                c.`currency` = ci.`currency` AND
                c.`sid` = ci.`sid` AND
                ci.`lang` = curlang AND
                c.`sid` = sidid;
    END IF;
END
//

В которой осуществляется выборка данных. Так вот подобный синтаксис переменных  curlang,  sidid - программа не пропускает - говорит об ошибке в WHERE и требует их записи в @curlang  и @sidid. Но когда я записываю их подобным образом - она их делает нулевыми, хотя на входе , благодаря вашей программе я вижу что они не пустые smile
В общем я не понимаю sad может кто объяснит мне проблема в том что я не разобралась с синтаксисом или в том что это глюк в программе. Буду благодарна за ответы.

Отредактированно tan4ik (17.09.2010 12:26:00)

Неактивен

 

#17 17.09.2010 12:31:41

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

tan4ik написал:

В общем я не понимаю sad может кто объяснит мне проблема в том что я не разобралась с синтаксисом или в том что это глюк в программе.

Это глюк в программе, давно хотел исправить. Сейчас займусь. Спасибо!

Неактивен

 

#18 17.09.2010 13:47:16

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

tan4ik,

Баг исправил, обновляйтесьsmile

Неактивен

 

#19 17.09.2010 14:08:33

tan4ik
Участник
Зарегистрирован: 20.11.2009
Сообщений: 7

Re: Тестирование отладчика хранимых процедур и функций MySQL

Я шоке! Вы её поддерживаете! Какая радость! Сейчас будем пробовать!!!!!! Спасибо, что так быстро!!! smile

Неактивен

 

#20 17.09.2010 14:54:23

tan4ik
Участник
Зарегистрирован: 20.11.2009
Сообщений: 7

Re: Тестирование отладчика хранимых процедур и функций MySQL

А вот ещё вопрос!
А отладку мной написанных функций как делать??
Он при пошаговом выполнение - почему-то не переходит в функции - хотя по результатам я вижу что они отрабатывают.

Неактивен

 

#21 17.09.2010 15:00:15

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

А отладку мной написанных функций как делать??

В дереве объектов выбрать нужную функцию и из контекстного меню выбрать команду Configure environment, программа автоматически сгенерирует скрипт для отладки. Тут более подробно расписано.

Неактивен

 

#22 15.12.2010 15:51:38

incorri
Участник
Зарегистрирован: 15.12.2010
Сообщений: 2

Re: Тестирование отладчика хранимых процедур и функций MySQL

Отличная программа
спасибо

Единственный недостаток.
нужно обязательно выбирать схему с которой работаешь.

У меня десятки схем и запросы (втом числе в функциях и процедурах) пересекаются между схемами,
а также создана отдельная схема исключительно под процедуры.

В остальном очень удобно - Спасибо за проделанную работу.

Отредактированно incorri (15.12.2010 16:14:09)

Неактивен

 

#23 15.12.2010 18:07:54

byterus
ISV
MySQL Ready Partner
Зарегистрирован: 02.02.2010
Сообщений: 39

Re: Тестирование отладчика хранимых процедур и функций MySQL

incorri, если из одной базы вызывается процедура\функция находящаяся в другой базе, то программа во время ее отладки переключает контекст на базу в которой находится вызываемый модуль. Так что проблем с разными базами быть не должно.

Спасибо за отзыв!

Неактивен

 

#24 16.12.2010 12:36:46

incorri
Участник
Зарегистрирован: 15.12.2010
Сообщений: 2

Re: Тестирование отладчика хранимых процедур и функций MySQL

byterus написал:

incorri, если из одной базы вызывается процедура\функция находящаяся в другой базе, то программа во время ее отладки переключает контекст на базу в которой находится вызываемый модуль. Так что проблем с разными базами быть не должно.

Спасибо за отзыв!

Да, абсолютно верно. Уже проверил.
Просто немного коробит когда коннектишся обязательное указание схемы.

Спасибо за ответ.

Неактивен

 

#25 20.01.2011 12:20:23

tan4ik
Участник
Зарегистрирован: 20.11.2009
Сообщений: 7

Re: Тестирование отладчика хранимых процедур и функций MySQL

Здравствуйте, нашла ещё один баг или не баг smile не знаю даже smile
в общем если есть создание временной таблицы

CREATE TEMPORARY TABLE `table3` CHARACTER SET utf8 COLLATE utf8_bin
        SELECT
            ss.`x2`, ss.`x4`
        FROM
            `table1` AS ss,
            `table2` AS s
            WHERE
                ss.`x1` = y1 AND
                ss.`x2` > 0 AND
                ss.`x3` = s.`x3` AND
                ss.`x4` = s.`x4` AND
                s.`x5` = y5 AND
                ss.`x3` = y3
            GROUP BY ss.`x4`;

то отладка завершается ошибкой, которая говорит о том, что поле y1 не существует, хотя на самом деле - это не поле, а переменная

Неактивен

 

Board footer

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