Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

插件支持改写SQL限制查询结果数量 #526

Closed
HuangWeiCen opened this issue May 13, 2022 · 0 comments
Closed

插件支持改写SQL限制查询结果数量 #526

HuangWeiCen opened this issue May 13, 2022 · 0 comments

Comments

@HuangWeiCen
Copy link
Contributor

HuangWeiCen commented May 13, 2022

背景

SQLE插件支持根据SQLE的要求改写SQL, 如用户下发的SQL可以查询出50条数据,但SQLE要求只能查询出这50条数据的第11到第20条据, 则此时插件返回的改写后SQL应当可以查询出原SQL结果的第11条到第20条数据
#509

开发方案

  1. 增加一套新的插件config, 新config和旧config大致相同, 区别在于将原有不符合规范的地方全部调整规范, 并增加插件版本的概念, 以便兼容后续插件升级
  2. 支持SQL改写的插件将会以"独立"插件的形式存在, 独立是指单独注册, 而非此插件在独立的插件程序中
  3. 读取插件时将会先当成新版插件加载, 如果加载失败则当作旧版插件加载, 如果再次失败则认为插件存在问题
  4. 新旧版插件都会使用同一套接口, 旧插件如果存在缺失的功能则会用默认实现替代

影响面

  1. 对旧版插件理论上无影响
  2. 此次将插件系统改造的更符合规范后理论上后续再增加插件或者升级插件将无需再定义一套插件3.0

方案备注

  1. 因为原有插件系统很多地方没有考虑拓展问题, 所以暂时能想到的解决方案就是两套插件规范并行
  2. 以前未考虑到的拓展问题包括Client和Server的Config声明的插件名不同, 在一个插件程序只包含一个插件时这样没有问题, 但如果需要一个插件程序包括多个插件时插件名不同将导致无法将插件对应起来
  3. 未考虑到的拓展问题还包括没有考虑到插件版本的问题, 这导致后续升级插件规范时只能采用尝试加载的方式试出真正的插件版本
@HuangWeiCen HuangWeiCen added this to the v1.2205.0 milestone May 13, 2022
@HuangWeiCen HuangWeiCen self-assigned this May 13, 2022
@HuangWeiCen HuangWeiCen mentioned this issue May 24, 2022
@sjjian sjjian modified the milestones: v1.2205.0, v1.2206.0 May 27, 2022
This was referenced May 31, 2022
LordofAvernus pushed a commit that referenced this issue Nov 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants