MiniOB 1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
Public 成员函数 | Private 属性 | 所有成员列表
FieldExpr类 参考

字段表达式 更多...

#include <expression.h>

类 FieldExpr 继承关系图:
Expression

Public 成员函数

 FieldExpr (const Table *table, const FieldMeta *field)
 
 FieldExpr (const Field &field)
 
bool equal (const Expression &other) const override
 判断两个表达式是否相等 更多...
 
unique_ptr< Expressioncopy () const override
 复制表达式 更多...
 
ExprType type () const override
 表达式的类型 可以根据表达式类型来转换为具体的子类 更多...
 
AttrType value_type () const override
 表达式值的类型 更多...
 
int value_length () const override
 表达式值的长度 更多...
 
Fieldfield ()
 
const Fieldfield () const
 
const char * table_name () const
 
const char * field_name () const
 
RC get_column (Chunk &chunk, Column &column) override
 chunk 中获取表达式的计算结果 column 更多...
 
RC get_value (const Tuple &tuple, Value &value) const override
 根据具体的tuple,来计算当前表达式的值。tuple有可能是一个具体某个表的行数据 更多...
 
- Public 成员函数 继承自 Expression
virtual unique_ptr< Expressioncopy () const =0
 复制表达式 更多...
 
virtual bool equal (const Expression &other) const
 判断两个表达式是否相等 更多...
 
virtual RC get_value (const Tuple &tuple, Value &value) const =0
 根据具体的tuple,来计算当前表达式的值。tuple有可能是一个具体某个表的行数据 更多...
 
virtual RC try_get_value (Value &value) const
 在没有实际运行的情况下,也就是无法获取tuple的情况下,尝试获取表达式的值 更多...
 
virtual RC get_column (Chunk &chunk, Column &column)
 chunk 中获取表达式的计算结果 column 更多...
 
virtual ExprType type () const =0
 表达式的类型 可以根据表达式类型来转换为具体的子类 更多...
 
virtual AttrType value_type () const =0
 表达式值的类型 更多...
 
virtual int value_length () const
 表达式值的长度 更多...
 
virtual const char * name () const
 表达式的名字,比如是字段名称,或者用户在执行SQL语句时输入的内容
 
virtual void set_name (string name)
 
virtual int pos () const
 表达式在下层算子返回的 chunk 中的位置
 
virtual void set_pos (int pos)
 
virtual RC eval (Chunk &chunk, vector< uint8_t > &select)
 用于 ComparisonExpr 获得比较结果 select更多...
 

Private 属性

Field field_
 

额外继承的成员函数

- Protected 属性 继承自 Expression
int pos_ = -1
 表达式在下层算子返回的 chunk 中的位置 更多...
 

详细描述

字段表达式

成员函数说明

◆ copy()

unique_ptr< Expression > FieldExpr::copy ( ) const
inlineoverridevirtual

复制表达式

实现了 Expression.

◆ equal()

bool FieldExpr::equal ( const Expression other) const
overridevirtual

判断两个表达式是否相等

重载 Expression .

◆ get_column()

RC FieldExpr::get_column ( Chunk chunk,
Column column 
)
overridevirtual

chunk 中获取表达式的计算结果 column

重载 Expression .

◆ get_value()

RC FieldExpr::get_value ( const Tuple tuple,
Value value 
) const
overridevirtual

根据具体的tuple,来计算当前表达式的值。tuple有可能是一个具体某个表的行数据

实现了 Expression.

◆ type()

ExprType FieldExpr::type ( ) const
inlineoverridevirtual

表达式的类型 可以根据表达式类型来转换为具体的子类

实现了 Expression.

◆ value_length()

int FieldExpr::value_length ( ) const
inlineoverridevirtual

表达式值的长度

重载 Expression .

◆ value_type()

AttrType FieldExpr::value_type ( ) const
inlineoverridevirtual

表达式值的类型

一个表达式运算出结果后,只有一个值

实现了 Expression.


该类的文档由以下文件生成: