~santec/stk-dbug/trunk

« back to all changes in this revision

Viewing changes to dbug.sql

  • Committer: Federico Razzoli
  • Date: 2013-05-08 14:47:19 UTC
  • Revision ID: santec@riseup.net-20130508144719-vo30d1oeasovtcy3
ability to read and write commands with 2 parameters

Show diffs side-by-side

added added

removed removed

Lines of Context:
195
195
-- messages for the Worker
196
196
CREATE TABLE IF NOT EXISTS `stk_dbug`.`message`
197
197
(
198
 
        `id`       SMALLINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT 'Command id',
199
 
        `sender`   BIGINT UNSIGNED NOT NULL                   COMMENT 'Inspector ID',
200
 
        `command`  ENUM('die') NOT NULL                       COMMENT 'Command'
 
198
        `id`       SMALLINT UNSIGNED  NOT NULL PRIMARY KEY AUTO_INCREMENT  COMMENT 'Command id',
 
199
        `sender`   BIGINT UNSIGNED    NOT NULL                   COMMENT 'Inspector ID',
 
200
        `command`  ENUM('die')        NOT NULL                   COMMENT 'Command',
 
201
        `p1`       VARCHAR(500)       NOT NULL                   COMMENT 'Command Param 1',
 
202
        `p2`       VARCHAR(500)       NOT NULL                   COMMENT 'Command Param 2'
201
203
)
202
204
        ENGINE    = MEMORY,
203
205
        MIN_ROWS  = 0,
416
418
-- from current thread.
417
419
-- command: command to send to the Worker
418
420
DROP PROCEDURE IF EXISTS `message_send`;
419
 
CREATE PROCEDURE message_send(command CHAR(10))
 
421
CREATE PROCEDURE message_send(command VARCHAR(10), `param1` VARCHAR(500), `param2` VARCHAR(500))
420
422
        MODIFIES SQL DATA
421
423
        LANGUAGE SQL
422
424
        COMMENT 'Internal. "Send" message to Worker'
424
426
        CALL `stk_dbug`.set_role('I');
425
427
        
426
428
        INSERT INTO `stk_dbug`.`message`
427
 
                        (`sender`, `command`)
 
429
                        (`sender`, `command`, `p1`, `p2`)
428
430
                VALUES
429
 
                        (CONNECTION_ID(), command);
 
431
                        (CONNECTION_ID(), command, `param1`, `param2`);
430
432
END;
431
433
 
432
434
 
479
481
BEGIN
480
482
        CALL `stk_dbug`.set_role('I');
481
483
        
482
 
        CALL `stk_dbug`.`message_send`('die');
 
484
        CALL `stk_dbug`.`message_send`('die', '', '');
483
485
END;
484
486
 
485
487
 
749
751
        -- received command
750
752
        DECLARE `cmd_id` TINYINT UNSIGNED DEFAULT NULL;
751
753
        DECLARE `cmd_txt` TEXT DEFAULT NULL;
 
754
        DECLARE `cmd_p1` TEXT DEFAULT NULL;
 
755
        DECLARE `cmd_p2` TEXT DEFAULT NULL;
752
756
        DECLARE `tab_exists` BOOLEAN DEFAULT TRUE;
753
757
        
754
758
        -- check for Inspector's commands
755
759
        DECLARE `__stk_d_crs_command` CURSOR FOR
756
760
                SELECT
757
 
                                `m`.`id`, `m`.`command`
 
761
                                `m`.`id`, `m`.`command`, `m`.`p1`, `m`.`p2`
758
762
                        FROM `stk_dbug`.`message` `m`
759
763
                        INNER JOIN `stk_dbug`.`inspection` `i`
760
764
                        ON `m`.`sender` = `i`.`inspector_id`
780
784
                OPEN `__stk_d_crs_command`;
781
785
                `__stk_d_cmd`:
782
786
                LOOP
783
 
                        FETCH NEXT FROM `__stk_d_crs_command` INTO `cmd_id`, `cmd_txt`;
 
787
                        FETCH NEXT FROM `__stk_d_crs_command` INTO `cmd_id`, `cmd_txt`, `cmd_p1`, `cmd_p2`;
784
788
                        
785
789
                        IF `eof` IS TRUE THEN
786
790
                                LEAVE `__stk_d_cmd`;