6.4 投影 project
在进行表扫描的时候,只获取选中的字段值
主要函数
physical_scan physical_scan_project_create(physical_scan scan);
创建一个投影的物理计划,如果成功,返回 physical_scan 结构;否则返回NULL
void physical_scan_project_init_scan(physical_scan *scan);
初始化投影的物理计划
int physical_scan_project_before_first(physical_scan *scan);
移动要读取的位置到第0条记录
int physical_scan_project_next(physical_scan *scan);
获得下一条记录,如果成功,就返回1;否则返回0
int physical_scan_project_close(physical_scan *scan);
关闭投影的物理计划
variant physical_scan_project_get_val(physical_scan scan, char tableName, char fieldName);
(未实现)获得当前表中 fieldName 字段的值
variant physical_scan_project_get_val_by_index(physical_scan scan, int index);
通过索引获得索引字段的值,返回variant结构体指针,包含了数据类型和数据值
int physical_scan_project_get_int_by_index(physical_scan *scan, int index);
当索引字段为整形时,获取索引字段的整数值
int physical_scan_project_get_string_by_index(physical_scan scan, int index, char value);
当索引字段为字符串时,获取索引字段的字符串
int physical_scan_project_get_int(physical_scan scan, char tableName, char *fieldName);
获取当前tableName中fieldName字段的整数值
int physical_scan_project_get_string(physical_scan scan, char tableName, char fieldName, char value);
获取当前tableName中fieldName字段的字符串值
int physical_scan_project_has_field(physical_scan scan, char tableName, char *fieldName);
判断当前tableName表中是否含有fieldName字段
arraylist physical_scan_project_get_fields_name(physical_scan scan, char *tableName);
获得当前 tableName中所有字段的名称
field_info physical_scan_project_get_field(physical_scan scan, char tableName, char fieldName);
获得当前tableName表中fieldName的详细信息,保存在field_info中返回
int physical_scan_project_generate_expr_list(physical_scan *scan);
将要投影的字段放入到一个arraylist中,放入到物理计划结构体中
int physical_scan_project_get_rid(physical_scan scan, record_id recordId);
空
int physical_scan_project_moveto_rid(physical_scan scan, record_id recordId);
空
int physical_scan_project_generate_expr_list(physical_scan *scan);
空