【标题】(请简要描述下实现的内容)
支持ALTER TABLE ADD(col type), add(Col type) 语法
【实现内容】:
支持ALTER TABLE ADD(col type), add(Col type) 语法

【根因分析】:
语法功能缺失,openGauss仅支持 ALTER TABLE ADD(col type, ...); 的用法,不支持和其他alter table命令再一起结合的 ALTER TABLE ADD(col type, ...), add(col type, ...), other_cmd;

【实现方案】:
参考MySQL的文档,观察MySQL支持的 alter命令。发现对于列定义带括号的场景,仅支持给出列名和列定义,不支持 first/alter,所以参考MySQL的语法,新增语法分支即可。
输入图片说明
新增后发现和原始的 ALTER TABLE ADD(col type, ...); 产生语法冲突,通过分析可以新增的语法分支实际上已经包含了原始语法的功能了,所以可以把原始的语法删掉。另外由于单个的 alter_table_cmd 原本只能代表一个命令,比如加1列,加1个索引等,所以alter_table_cmd 定义为了Node类型。支持 ADD(col type, ...) 后, alter_table_cmd 能代表多个命令,比如加多列。更合适的做法可能是把 alter_table_cmd 改成 List 类型,但是考虑到修改后,所有 alter_table_cmd 的子命令返回值都要改,加个 list_make,改动很多,而且 alter_table_cmd 只有在 alter_table_cmds 分支有被使用,且List和Node 本质上可以通过nodetag区分,所以保持原有定义,在alter_table_cmd 和alter_table_cmds出加注释说明,
alter_table_cmd 虽然定义为Node,但可能返回List,在 alter_table_cmds 处根据实际的nodetag,确定应该做list_make还是list_concat.

【关联需求或issue】:
#I81VS8:【测试类型:SQL功能】【测试版本:5.1.0】ALTER TABLE不支持ALTER TABLE t1 ADD COLUMN (f1 INT, f3 int), ADD COLUMN (f2 INT)语法
【开发自验报告】:

  1. 请附上自验结果(内容或者截图)
    输入图片说明
  2. 是否可以添加fastcheck测试用例,如是,请补充fastcheck用例
    是,已添加
  3. 是否涉及资料修改,如是,在docs仓库补充资料
    是,https://gitee.com/opengauss/docs/pulls/5688
  4. 是否考虑支撑升级和在线扩容等扩展场景
    不涉及
  5. 是否考虑异常场景/并发场景/前向兼容/性能场景
    新语法分支包含了被删掉的旧语法,不影响前向兼容,用例也已覆盖新旧两种语法
  6. 是否对其他模块产生影响
    不涉及

【其他说明】: