HGSQL开始支持调试了

 
HGSQL调试

HGSQL1.06 1001 版开始支持程序化SQL,可以用于存储过程和触发器。功能非常强大,当没有调试,是一个遗憾。HGSQL的在1.061216版的发布带来了很大的惊喜,开始支持调试了。

HGSQL是解释性语言,它的调试与普通高级语言是不同的,它的调试不是基于CPU的中断,而是基于多线程的。它不仅可以调试到数学表达式,还可以调试到SQL存储过程内部。它的调试框架对外的接口是8个调试函数,使用这8个调试函数,任何人都可以开发自己的HGSQL调试器。HGSQL本身也也做了调试器实现,并集成进了新版的SQLHUB管理器中。下面调试函数和调试器的实现做一些介绍:

调试函数
DEBUG

语法:

debug(sql)

功能:

启用调试器,调试sql

返回值类型:

字符串

示例:

debug('a:=1;b:=2;c:=a+b;')

+----------------------------+

| DEBUG('a:=1;b:=2;c:=a+b;') |

+----------------------------+

|                            |

+----------------------------+

DEBUG_CHILDEXP

语法:

debug_childexp([path])

功能:

返回指定路径下的表达式列表,有两个字段,exp:表达式;break:是否有断点path是以逗号间隔的路径字符串,例如:2,3表示从根开始的第2个表达式下的第三个表达式

返回值类型:

字符串

示例:

select * from debug_childexp('');

+--------+-------+

| EXP    | BREAK |

+--------+-------+

| A:=1   | false |

| B:=2   | false |

| C:=A+B | false |

+--------+-------+

DEBUG_BREAK

语法:

debug_break(path)

功能:

在指定路径上设置断点

返回值类型:

字符串

示例:

debug_break(1);

+----------------+

| DEBUG_BREAK(1) |

+----------------+

|                |

+----------------+

select * from debug_childexp('');

+--------+-------+

| EXP    | BREAK |

+--------+-------+

| A:=1   | true  |

| B:=2   | false |

| C:=A+B | false |

+--------+-------+

 

DEBUG_UNBREAK

语法:

debug_unbreak(path)

功能:

取消指定路径上的断点

返回值类型:

空串

示例:

debug_unbreak(1)

+------------------+

| DEBUG_UNBREAK(1) |

+------------------+

|                  |

+------------------+

select * from debug_childexp('')

+--------+-------+

| EXP    | BREAK |

+--------+-------+

| A:=1   | false |

| B:=2   | false |

| C:=A+B | false |

+--------+-------+

DEBUG_RUN

语法:

debug_run()

功能:

开始执行调试,遇到断点返回该断点的路径,否则返回空字符串

返回值类型:

字符串

示例:

debug_run();

+-------------+

| DEBUG_RUN() |

+-------------+

| 2           |

+-------------+

 

DEBUG_VARSET

语法:

debug_varset(path)

功能:

查看指定路径上的变量表

返回值类型:

数据集

示例:

select * from debug_varset(1);

+--------+-------+

| NAME   | VALUE |

+--------+-------+

| A      | 1     |

| RESULT | 1     |

+--------+-------+

DEBUG_EVAL

语法:

debug_var(path,strExp)

功能:

在指定变量上执行表达式

返回值类型:

数据集

示例:

select * from debug_eval(1,'a + 20');

+----+

| F1 |

+----+

| 21 |

+----+

 

DEBUG_STOP

语法:

debug_stop()

功能:

停止调试

返回值类型:

字符串

示例:

debug_stop()

+--------------+

| DEBUG_STOP() |

+--------------+

|              |

+--------------+

调试器 

在命令区输入SQL语句,点击调试按钮 ,系统打开调试器,如下图:

调试过程:

²        点击 设置断点

²        点击 开始调试

²        点击任意结点查看变量

²        点击 ,系统显示表达式输入框,如下图:

输入表达式,系统显示执行结果,如下图:

提示:如果选择变量表中记录,系统会把变量名称作为表达式。

²        点击 停止调试,或点击 重新开始调试。

备注:如果是sql存储过程,可以调试到存储过程内部,如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值