天天看点

GreenPlum内核升级

GreenPlum内核升级

PostgreSQL(简称pg)是一个高级的对象关系数据库管理系统,它支持SQL标准的一个扩展子集。最近在研究pg14的create table like语句,如下命令会被拆分成若干个statement,在greenplum中QD与QE的处理还不一样,会将statement从QD分发到各个QE上。

CREATE TABLE inhg (x text, LIKE inhx INCLUDING INDEXES);      

当前sql语句会在内核中拆分成create、like table两个statement。

create table statement中会使用DistributeBy的内容生成GpPolicy,同时会定义Relation。

like table statement中会生成AlterTableCmd、CommentStmt、IndexStmt,这些会在下一轮调用中使用,例如:上面这个语句会生成IndexStmt,将like的table(inhx)的index克隆一份。