Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 01:27
· 52 commits to main since this release

修复

  • -- @connection 指令不生效,且每次绑定都会多插一行。扩展写入的是
    -- @connection: 名称(带冒号),而解析只认不带冒号的写法,于是指令永远解析不到 ——
    每次执行都会再问一次连接,每次回答都再插一行。两种写法现在都认,写入与解析放在同一处,
    并用往返测试钉住
  • 「Run again」重跑的是该面板第一次执行的 SQL。复用的面板没有更新回调,重跑处理器停留在
    面板创建时捕获的那条语句 —— 新建查询文件时就是模板里的 SELECT 1
  • 从查询历史插入/删除完全没反应。两个命令都用 asNode() 收窄参数,而历史条目没有
    kind 字段,于是拿到 undefined 后静默返回
  • 导出结果时报「结果已不可用」。桥在连接关闭或磁盘预算用尽后会丢弃缓存结果,而面板能活得
    比它久。现在遇到这种情况会重跑语句再导出,而不是丢一个死胡同给用户
  • 保存脚本后执行按钮消失。新建查询是 untitled 文档,存成非 .sql 文件名会被重新判定语言,
    editorLangId == sql 条件随之失效,连带快捷键和 SQL 补全一起消失。菜单改用扩展自己的上下文
    键(同时认带指令的文档),保存后若语言退化为纯文本则恢复为 SQL
  • 结果网格滚动时不断重绘导致难以滚动。每帧重建 tbody 会改变表格高度,可能再触发滚动事件,
    渲染自己喂自己。现在记住已渲染的窗口,窗口未变就不重建;表头高度改为重建时测量一次,
    行位置不再偏移
  • 连接模板的用户覆盖真正生效了。文件里一直写着"可以把副本放到
    <globalStorage>/templates/connection-templates.json,按 id 合并",但代码从未读过那个路径 ——
    是"打算这么做"被当成"已经这么做"写进了文档。现在实现了,并支持用 disabled 移除内置条目

新增

  • 取 DDL 的 SQL 可以自己写(ddl.queries)。很多数据库本来就能直接给出建表语句,而且比"从 JDBC
    元数据重建"更准 —— 重建看不到存储子句、表空间、引擎选项,也看不到驱动报成 OTHER 的类型。规则按连接
    URL 的 glob 匹配,第一条命中生效;没有命中才回到内置重建,所以默认行为不变。示例:
    DESC ${qualified}(Hive)、SELECT pg_get_tabledef('${qualified}')(PostgreSQL)、
    SHOW CREATE TABLE ${quotedQualified}(MySQL)。结果按数据库返回的样子展示:单单元格开成文本,
    否则开结果网格
  • 占位符显式区分原始名与加引号名。这是必须的而不是洁癖:pg_get_tabledef('${quotedQualified}')
    会去找一张名字里带引号的表 —— 不报语法错,只是找不到。现在 ${qualified} 是原始名(用于字符串
    字面量、Hive 的 DESC),${quotedQualified} 才加引号。这个改动同时作用于自定义动作
  • 自定义 SQL 动作(actions 设置):在表、视图、列上按自己的模板跑 SQL。填不上的占位符会阻止
    执行而不是变成空串(LIKE '%%' 那种静默错配比直接拒绝危险得多);语句在已绑定连接的编辑器里打开,
    而不是静默执行
  • 连接改用单页表单,带「测试联通」按钮。必须测试通过才能保存:存一个连不上的连接,问题要到
    第一次查询时才暴露。测试走桥的独立探测通道(开完即关,不进连接池),所以测一个已经连着的连接
    不会干扰它。字段里的 JDBC URL 会随驱动选择自动预填(仅在为空时,不覆盖已填内容)
  • 内置 DDL 生成器的风格选项:ddl.ifNotExists、ddl.indent、ddl.includeIndexes、
    ddl.quoteIdentifiers。有规则匹配时这些不生效
  • query.maxRows:可配置的取数行数上限(0 表示不限),命中上限会标记为截断
  • 表树筛选:按名称过滤表、视图、列、索引,生效时视图描述显示 filter: 关键字
  • result.openIn:结果面板位置,默认 below(上下分屏)
  • 每条 SQL 上方的 Run 按钮(code lens),可用 query.codeLens 关闭
  • 脚本参数变量:${V_DATE} 形式的占位符,打开脚本时下方自动弹出参数面板,
    执行前替换;变量样式可用 variables.pattern 自定义正则。有变量未填值则拒绝执行并指出是哪个