What's new in Debugger for MySQL 1.3

Debugging EVENTS

In order to debug EVENTS, a new statement – CALL EVENT – is introduced. More information.

Debugger for MySQL: Autogenerated event call

MariaDB Support

Debugging procedures, functions, and events. Code editor with support for Code completion and Code parameters. All of these features are now available for users of MariaDB!

Reference manual for the current version of the server

In the Reference manual window you now have the opportunity to generate documentation for the server to which the debugger is currently connected. Thanks to this new feature, you'll always have the latest version of the documentation.

Debugger for MySQL: Reference manual for the current version of the server

And much more

More than 40 builds with new features and bug fixes.



What's new in Debugger for MySQL 1.2

This version features significant improvements in the code editor. Such capabilities as autocomplete and code parameters turned it from a simple editor with syntax highlighting to a modern, powerful development framework.

Autocomplete \ Code completion

The code completion option significantly reduces the development time: depending on what piece of code you’re editing now, it automatically pops up a list with code suggestions that suit best of all here, once you pressed the ‘.’ key.

Debugger for MySQL: Code completion

This code completion list includes column names or aliases, table names, embedded or user defined functions etc. The suggestion list considers where in the line a cursor is and adjusts its contents according to the situation. Whether you write a SELECT statement or INSERT new lines to a table, or want to perform a JOIN – in either case code completion offers the most appropriate suggestions. Also, as you start typing the first letters of a statement you need, the completion lists filters its contents to meet your intent.

Debugger for MySQL: JOIN Code completion

The feature works 100% transparently, just like it does in any other development framework like Visual Studio or Delphi. Conveniently, you can bring up the code completion window manually with the CTRL+SPACE hotkey. To hide the completion list, press the ESC key.

Note that the entire code completion feature is highly customizable. You can optionally turn off the auto pop up (see Tools->Options\Editor\Automatic features\Code completion), adjust the JOIN and JOIN condition completion, the completion on databases, embedded functions and reserved keywords too.

Code parameters

Another utterly useful feature is code parameters tooltips. This works as follows: whenever you type an embedded or a user-defined function followed by the left bracket, or fill in the VALUES of the INSERT operator, you see a tooltip showing required parameters or column names and their types.

Debugger for MySQL: Code parameters

A tooltip appears automatically when you type the ‘(‘ symbol, though you can turn this off if you want in Tools->Options\Editor\Automatic features\Code parameters. You can bring up the tooltip manually if it has hid or if the auto-show is turned off by pressing CTRL+SHIFT+SPACE key combination. To make it disappear at any time, hit the ESC key.

Needles to say, this feature makes it much easier to use functions in your SQL queries. But it also helps you to quickly write your INSERT statements as well. Once you typed ‘(‘, it immediately shows the complete list of columns in a given table alongside with their field type making it simplier to put VALUES to your INSERT statement.

Debugger for MySQL: INSERT INTO Code parameters

What's new in Debugger for MySQL 1.1

We’ve done a great job on fixing bugs that even required us to use MySQL server internal tests. Our users helped us much to find and correct every issue. Thank you for your patience and feedback! Below you can see the description of new capabilities of the program.

MySQL reference manual

Now you can refer to the help manual on the fly. Simply press CTRL+H. We have also implemented the context help from the code editor: put the cursor on a statement and press F1.

Debugger for MySQL: MySQL Reference Manual

Configure environment command

With this command you can quickly create a framework to debug a given routine. The Main script is automatically created and a breakpoint is set. The Configure environment command is under the Schema browser menu and is available for procedures and functions.

Debugger for MySQL: Configure environment

Introduce CURSOR iteration command

Working with the cursor usually requires you to write a bunch of code: declare variables, declare a NOT FOUND handler, declare cursor with the SELECT statement, choose a loop construction (LOOP, WHILE, REPEAT), correctly handle the “done” variable etc. The Introduce CURSOR iteration command saves you many hours and totally excludes the need of chores. You simply indicate a SELECT statement and the rest is done automatically. The command is available from the code editor context menu.

Let’s see how this works on the SELECT * FROM sakila.film example query:

Debugger for MySQL: Introduce CURSOR iteration
BEGIN
  DECLARE v_film_id SMALLINT(5) UNSIGNED;
  DECLARE v_title VARCHAR(255) CHARACTER SET utf8;
  DECLARE v_description TEXT CHARACTER SET utf8;
  DECLARE v_release_year YEAR(4);
  DECLARE v_language_id TINYINT(3) UNSIGNED;
  DECLARE v_original_language_id TINYINT(3) UNSIGNED;
  DECLARE v_rental_duration TINYINT(3) UNSIGNED;
  DECLARE v_rental_rate DECIMAL(4,2);
  DECLARE v_length SMALLINT(5) UNSIGNED;
  DECLARE v_replacement_cost DECIMAL(5,2);
  DECLARE v_rating ENUM('G','PG','PG-13','R','NC-17') CHARACTER SET utf8;
  DECLARE v_special_features SET('Trailers','Commentaries','Deleted Scenes','Behind the Scenes') 
    CHARACTER SET utf8;
  DECLARE v_last_update TIMESTAMP;
  DECLARE done BOOLEAN DEFAULT FALSE;
  DECLARE c_film CURSOR FOR
    SELECT * FROM sakila.film;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

  OPEN c_film;
  c_film_loop: LOOP
    FETCH c_film INTO v_film_id, v_title, v_description, v_release_year, 
      v_language_id, v_original_language_id, v_rental_duration, v_rental_rate, 
      v_length, v_replacement_cost, v_rating, v_special_features, v_last_update;
    IF done THEN LEAVE c_film_loop; END IF;

    -- Insert code here 

  END LOOP;
  CLOSE c_film;
END;