MySQL中show index和alter table部分语法兼容checkin评审遗留问题处理:
对于KEY的二义性问题,以MySQL语义为准。通过设置优先级,降低冲突语法的优先级,语法解析时遇到冲突时走新增的语法。 本次语法的冲突是因为删除列(alter table table_name drop opt_column column_name opt_drop_behavior)和新增的删除索引(alter table table_name drop index/key index_name)冲突了,当遇到KEY时,由于KEY可以当成列名,因此前者可以规约成opt_column,后者可以作移进。 具体修改为声明优先级lower_than_key,并在opt_column处应用lower_than_key,告诉解析器遇到冲突时此处作规约的优先级较低,此时遇到KEY时,优先将其当成关键字,在DROP index_key_opt 语法规则下作移进。因为冲突只发生在drop index/key和drop column,因此不会影响到其他语法。
%nonassoc lower_than_key %nonassoc KEY
opt_column: COLUMN { $$ = COLUMN; } | /*EMPTY*/ { $$ = 0; } %prec lower_than_key ;
alter_table_cmd: ... | DROP index_key_opt name opt_drop_behavior { AlterTableCmd *n = makeNode(AlterTableCmd); n->subtype = AT_DropIndex; n->name = $3; n->behavior = $4; n->missing_ok = FALSE; $$ = (Node *)n; }
-----邮件原件----- 发件人: pengjiong [mailto:pengjiong1@huawei.com] 发送时间: 2022年8月10日 18:17 收件人: plugin@opengauss.org 主题: [Plugin] 【会议纪要】2022.8.10 Plugin SIG例会
1. MySQL SQL mode strict mode实现限制问题重新澄清 刘伟@云和恩墨 无问题。前期已有类似issue在plugin sig评审过。
2. Mysql兼容性操作符项目设计方案评审(众智-孙明) 1. 所有操作符,日期/时间/字符串等数据类型都要支持,表现保持和MySQL一致即可 2. expr like binary expr 转换成openGauss的like即可 3. 功能冲突的统一使用GUC参数控制,默认关闭,保持openGauss的逻辑。文档中说明
3. 兼容MySQL大小写敏感方案讨论(罗梓浩) 1. 索引名大小写敏感问题,由于MySQL本身也不支持,所以不处理 2. 影响范围问题,会议后再详细讨论下
4. 兼容分区表 truncate exchange analyze 语法 checkin 评审 王修强@云和恩墨 通过
5. MySQL中show index和alter table部分语法兼容checkin评审(陈晓滨) 1. KEY想其他方法实现,不能提升关键字等级 2. 其他OK _______________________________________________ Plugin mailing list -- plugin@opengauss.org To unsubscribe send an email to plugin-leave@opengauss.org