Projection primary key不需要去重。
Projection基于index可以不访问data file。(我们假设只在key attribute上做projection。)
基本思想:扫描已经对key attribute 排好序的index file。重复项在index中相邻。
index file有bi页组成。bi远小于最初pages的总数。
每个方式的输出可能顺序不一样,但结果是一样的。
PSQL的Projection:
ExecProject()提取一个tuple,基于想要的attributes来构建新的tuple。
check_sql_fn_retval() make a new tuple基于output。
ExecStoreTuple()保存result tuple到memory buffer。
Selection
3种selection:
- 基于一个attribute。
- 基于多个attributes。
- 基于相似度,(比如在image database中找image)需要一个similarity function找到相似度最高的或者大于一个阈值的。
pmr:partial match retrieval query,总是相等关系。
rng:range query。
1-d one:如果找到了返回1,没找到返回0。
n-d one:找不到返回0,找的到返回1个答案。
1-d pmr 和 n-d pmr solution有多个.
1-d range:一个属性上的range。
n-d range:多个属性上的range。
两种实现select的方式:
1.对tuples的安排(在data file)
(1