date and boolean data types added

This commit is contained in:
2021-08-06 22:46:48 +02:00
parent 4b95be1e31
commit 15a065c2aa
17 changed files with 1123 additions and 907 deletions

15
usql.h
View File

@@ -13,7 +13,6 @@ class USql {
public:
USql() = default;
std::unique_ptr<Table> execute(const std::string &command);
private:
@@ -32,7 +31,7 @@ private:
private:
bool eval_where(Node *where, Table *table, Row &row) const;
static bool eval_where(Node *where, Table *table, Row &row) ;
static std::unique_ptr<ValueNode> eval_value_node(Table *table, Row &row, Node *node);
static std::unique_ptr<ValueNode> eval_database_value_node(Table *table, Row &row, Node *node);
@@ -40,9 +39,9 @@ private:
static std::unique_ptr<ValueNode> eval_function_value_node(Table *table, Row &row, Node *node);
bool eval_relational_operator(const RelationalOperatorNode &filter, Table *table, Row &row) const;
bool eval_logical_operator(LogicalOperatorNode &node, Table *pTable, Row &row) const;
std::unique_ptr<ValueNode> eval_arithmetic_operator(ColumnType outType, ArithmeticalOperatorNode &node, Table *table, Row &row) const;
static bool eval_relational_operator(const RelationalOperatorNode &filter, Table *table, Row &row) ;
static bool eval_logical_operator(LogicalOperatorNode &node, Table *pTable, Row &row) ;
static std::unique_ptr<ValueNode> eval_arithmetic_operator(ColumnType outType, ArithmeticalOperatorNode &node, Table *table, Row &row) ;
static std::unique_ptr<Table> create_stmt_result_table(long code, const std::string &text, long affected_rows);
@@ -55,9 +54,9 @@ private:
Parser m_parser;
std::list<Table> m_tables;
void execute_distinct(SelectFromTableNode &node, Table *result) const;
void execute_order_by(SelectFromTableNode &node, Table *table, Table *result) const;
void execute_offset_limit(OffsetLimitNode &node, Table *result) const;
static void execute_distinct(SelectFromTableNode &node, Table *result) ;
static void execute_order_by(SelectFromTableNode &node, Table *table, Table *result) ;
static void execute_offset_limit(OffsetLimitNode &node, Table *result) ;
};
} // namespace