RelRoot说明

RelNode树的根节点

RelRoot存在的一个重要的原因是处理类似这样的查询:

select name from emp order by empno desc

Calcite知道结果必须被排序,但不能代表它按照排序规则进行排序,因为结果中没有empno这个字段。但是我们可以这样表示:

RelRoot:{

    rel:Sort($1,DESC)

                Project(name,empno)

                        TableScan(EMP)

    fields: [0]

    collation: [1 DESC]

}

注意在结果中存在empno这个字段,但是字段面(fields)告诉使用者把它扔掉了

另外一个用例是类似这样的查询:

select name as n,name as n2,empno as n from emp

name字段有多个使用,并且有多个列用n作为别名,你可以这样来表示:

RelRoot:{

        rel:Project(name,empno)

                TableScan(EMP)

        fields:[(0,"n"),(0,"n2"),(1,"n")]

        collation: []

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • SQL ==SQLPLUS== DML(Data Manipulation Language,数据操作语言)---...
    蝌蚪1573阅读 3,704评论 0 4
  • mysql数据库中 :database : 文件夹table : 数据表(数据文件) 进入mysqlmysql -...
    赋闲阅读 3,680评论 0 0
  • 1.简介 数据存储有哪些方式?电子表格,纸质文件,数据库。 那么究竟什么是关系型数据库? 目前对数据库的分类主要是...
    乔震阅读 5,883评论 0 2
  • 《自习课上》 文/颜克 她在画画 她在剪纸 她们在讨论五线谱第二条线的休止符 她在看书 她在写字 她俩在缠一团毛线...
    颜克阅读 1,202评论 0 1
  • Marks阅读 1,148评论 0 0

友情链接更多精彩内容