oceanbase 无法保证表元数据的一致性

【 使用环境 】测试环境
【 OB or 其他组件 】observer
【 使用版本 】OceanBase_CE-v4.2.1.0
【问题描述】
当表存在未完成的事务时,observer无法阻止其他连接对表结构的DDL操作,导致事务内的的两次查询表结构不一致。
请问oceanbase有无类似mysql metadata lock 概念?如何保证元数据一致性?
【复现路径】问题出现前后相关操作

  1. 初始化数据
    create table t1 (id bigint auto_increment primary key, col2 varchar(255));
    insert into t1(col2) values (‘1’),(‘2’),(‘3’);

  2. 复现步骤

序号1,2 执行结果:

序号 3 执行结果;
这里可以看到DDL操作未被阻塞

序号 4 执行结果 ;
同一事务内的两次相同的查询,表结构不一致

【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

尾部加列在OceanBase中是Online DDL,它不会被阻塞,所以在事务会看到这样的现象。

说的对 我补充下官网online DDL和offline DDL的操作 :joy:
Online DDL 和 Offline DDL 操作-OceanBase 数据库-OceanBase文档中心-分布式数据库使用文档

就算是online DDL,也不应该该表存在未完成事务时还允许有DDL操作。