未验证 提交 1a2cf476 编写于 作者: 羽飞's avatar 羽飞 提交者: GitHub

修复clang 14 compile error (#193)

### What problem were solved in this pull request?

Issue Number: close #192 

Problem:
clang 14编译失败

### What is changed and how it works?
修复编译错误

### Other information
上级 6d9a299a
...@@ -21,7 +21,7 @@ See the Mulan PSL v2 for more details. */ ...@@ -21,7 +21,7 @@ See the Mulan PSL v2 for more details. */
using namespace std; using namespace std;
InsertPhysicalOperator::InsertPhysicalOperator(Table *table, vector<Value> &&values) InsertPhysicalOperator::InsertPhysicalOperator(Table *table, vector<Value> &&values)
: table_(table), values_(move(values)) : table_(table), values_(std::move(values))
{} {}
RC InsertPhysicalOperator::open(Trx *trx) RC InsertPhysicalOperator::open(Trx *trx)
......
...@@ -75,7 +75,7 @@ string TableScanPhysicalOperator::param() const ...@@ -75,7 +75,7 @@ string TableScanPhysicalOperator::param() const
void TableScanPhysicalOperator::set_predicates(vector<unique_ptr<Expression>> &&exprs) void TableScanPhysicalOperator::set_predicates(vector<unique_ptr<Expression>> &&exprs)
{ {
predicates_ = move(exprs); predicates_ = std::move(exprs);
} }
RC TableScanPhysicalOperator::filter(RowTuple &tuple, bool &result) RC TableScanPhysicalOperator::filter(RowTuple &tuple, bool &result)
......
...@@ -262,10 +262,10 @@ RC OptimizeStage::create_select_logical_plan( ...@@ -262,10 +262,10 @@ RC OptimizeStage::create_select_logical_plan(
unique_ptr<LogicalOperator> project_oper(new ProjectLogicalOperator(all_fields)); unique_ptr<LogicalOperator> project_oper(new ProjectLogicalOperator(all_fields));
if (predicate_oper) { if (predicate_oper) {
predicate_oper->add_child(move(table_oper)); predicate_oper->add_child(std::move(table_oper));
project_oper->add_child(move(predicate_oper)); project_oper->add_child(std::move(predicate_oper));
} else { } else {
project_oper->add_child(move(table_oper)); project_oper->add_child(std::move(table_oper));
} }
logical_operator.swap(project_oper); logical_operator.swap(project_oper);
...@@ -296,10 +296,10 @@ RC OptimizeStage::create_predicate_logical_plan( ...@@ -296,10 +296,10 @@ RC OptimizeStage::create_predicate_logical_plan(
unique_ptr<PredicateLogicalOperator> predicate_oper; unique_ptr<PredicateLogicalOperator> predicate_oper;
if (!cmp_exprs.empty()) { if (!cmp_exprs.empty()) {
unique_ptr<ConjunctionExpr> conjunction_expr(new ConjunctionExpr(ConjunctionExpr::Type::AND, cmp_exprs)); unique_ptr<ConjunctionExpr> conjunction_expr(new ConjunctionExpr(ConjunctionExpr::Type::AND, cmp_exprs));
predicate_oper = unique_ptr<PredicateLogicalOperator>(new PredicateLogicalOperator(move(conjunction_expr))); predicate_oper = unique_ptr<PredicateLogicalOperator>(new PredicateLogicalOperator(std::move(conjunction_expr)));
} }
logical_operator = move(predicate_oper); logical_operator = std::move(predicate_oper);
return RC::SUCCESS; return RC::SUCCESS;
} }
...@@ -335,13 +335,13 @@ RC OptimizeStage::create_delete_logical_plan( ...@@ -335,13 +335,13 @@ RC OptimizeStage::create_delete_logical_plan(
unique_ptr<LogicalOperator> delete_oper(new DeleteLogicalOperator(table)); unique_ptr<LogicalOperator> delete_oper(new DeleteLogicalOperator(table));
if (predicate_oper) { if (predicate_oper) {
predicate_oper->add_child(move(table_get_oper)); predicate_oper->add_child(std::move(table_get_oper));
delete_oper->add_child(move(predicate_oper)); delete_oper->add_child(std::move(predicate_oper));
} else { } else {
delete_oper->add_child(move(table_get_oper)); delete_oper->add_child(std::move(table_get_oper));
} }
logical_operator = move(delete_oper); logical_operator = std::move(delete_oper);
return rc; return rc;
} }
......
...@@ -12,6 +12,8 @@ See the Mulan PSL v2 for more details. */ ...@@ -12,6 +12,8 @@ See the Mulan PSL v2 for more details. */
// Created by Wangyunlai on 2022/12/14. // Created by Wangyunlai on 2022/12/14.
// //
#include <utility>
#include "sql/optimizer/physical_plan_generator.h" #include "sql/optimizer/physical_plan_generator.h"
#include "sql/operator/table_get_logical_operator.h" #include "sql/operator/table_get_logical_operator.h"
#include "sql/operator/table_scan_physical_operator.h" #include "sql/operator/table_scan_physical_operator.h"
...@@ -128,12 +130,12 @@ RC PhysicalPlanGenerator::create_plan(TableGetLogicalOperator &table_get_oper, u ...@@ -128,12 +130,12 @@ RC PhysicalPlanGenerator::create_plan(TableGetLogicalOperator &table_get_oper, u
&tuple_cell, true /*left_inclusive*/, &tuple_cell, true /*left_inclusive*/,
&tuple_cell, true /*right_inclusive*/); &tuple_cell, true /*right_inclusive*/);
index_scan_oper->set_predicates(move(predicates)); index_scan_oper->set_predicates(std::move(predicates));
oper = unique_ptr<PhysicalOperator>(index_scan_oper); oper = unique_ptr<PhysicalOperator>(index_scan_oper);
LOG_TRACE("use index scan"); LOG_TRACE("use index scan");
} else { } else {
auto table_scan_oper = new TableScanPhysicalOperator(table, table_get_oper.readonly()); auto table_scan_oper = new TableScanPhysicalOperator(table, table_get_oper.readonly());
table_scan_oper->set_predicates(move(predicates)); table_scan_oper->set_predicates(std::move(predicates));
oper = unique_ptr<PhysicalOperator>(table_scan_oper); oper = unique_ptr<PhysicalOperator>(table_scan_oper);
LOG_TRACE("use table scan"); LOG_TRACE("use table scan");
} }
...@@ -158,9 +160,9 @@ RC PhysicalPlanGenerator::create_plan(PredicateLogicalOperator &pred_oper, uniqu ...@@ -158,9 +160,9 @@ RC PhysicalPlanGenerator::create_plan(PredicateLogicalOperator &pred_oper, uniqu
vector<unique_ptr<Expression>> &expressions = pred_oper.expressions(); vector<unique_ptr<Expression>> &expressions = pred_oper.expressions();
ASSERT(expressions.size() == 1, "predicate logical operator's children should be 1"); ASSERT(expressions.size() == 1, "predicate logical operator's children should be 1");
unique_ptr<Expression> expression = move(expressions.front()); unique_ptr<Expression> expression = std::move(expressions.front());
oper = unique_ptr<PhysicalOperator>(new PredicatePhysicalOperator(move(expression))); oper = unique_ptr<PhysicalOperator>(new PredicatePhysicalOperator(std::move(expression)));
oper->add_child(move(child_phy_oper)); oper->add_child(std::move(child_phy_oper));
return rc; return rc;
} }
...@@ -187,7 +189,7 @@ RC PhysicalPlanGenerator::create_plan(ProjectLogicalOperator &project_oper, uniq ...@@ -187,7 +189,7 @@ RC PhysicalPlanGenerator::create_plan(ProjectLogicalOperator &project_oper, uniq
} }
if (child_phy_oper) { if (child_phy_oper) {
project_operator->add_child(move(child_phy_oper)); project_operator->add_child(std::move(child_phy_oper));
} }
oper = unique_ptr<PhysicalOperator>(project_operator); oper = unique_ptr<PhysicalOperator>(project_operator);
...@@ -200,7 +202,7 @@ RC PhysicalPlanGenerator::create_plan(InsertLogicalOperator &insert_oper, unique ...@@ -200,7 +202,7 @@ RC PhysicalPlanGenerator::create_plan(InsertLogicalOperator &insert_oper, unique
{ {
Table *table = insert_oper.table(); Table *table = insert_oper.table();
vector<Value> &values = insert_oper.values(); vector<Value> &values = insert_oper.values();
InsertPhysicalOperator *insert_phy_oper = new InsertPhysicalOperator(table, move(values)); InsertPhysicalOperator *insert_phy_oper = new InsertPhysicalOperator(table, std::move(values));
oper.reset(insert_phy_oper); oper.reset(insert_phy_oper);
return RC::SUCCESS; return RC::SUCCESS;
} }
...@@ -224,7 +226,7 @@ RC PhysicalPlanGenerator::create_plan(DeleteLogicalOperator &delete_oper, unique ...@@ -224,7 +226,7 @@ RC PhysicalPlanGenerator::create_plan(DeleteLogicalOperator &delete_oper, unique
oper = unique_ptr<PhysicalOperator>(new DeletePhysicalOperator(delete_oper.table())); oper = unique_ptr<PhysicalOperator>(new DeletePhysicalOperator(delete_oper.table()));
if (child_physical_oper) { if (child_physical_oper) {
oper->add_child(move(child_physical_oper)); oper->add_child(std::move(child_physical_oper));
} }
return rc; return rc;
} }
...@@ -243,10 +245,10 @@ RC PhysicalPlanGenerator::create_plan(ExplainLogicalOperator &explain_oper, uniq ...@@ -243,10 +245,10 @@ RC PhysicalPlanGenerator::create_plan(ExplainLogicalOperator &explain_oper, uniq
return rc; return rc;
} }
explain_physical_oper->add_child(move(child_physical_oper)); explain_physical_oper->add_child(std::move(child_physical_oper));
} }
oper = move(explain_physical_oper); oper = std::move(explain_physical_oper);
return rc; return rc;
} }
...@@ -269,9 +271,9 @@ RC PhysicalPlanGenerator::create_plan(JoinLogicalOperator &join_oper, unique_ptr ...@@ -269,9 +271,9 @@ RC PhysicalPlanGenerator::create_plan(JoinLogicalOperator &join_oper, unique_ptr
return rc; return rc;
} }
join_physical_oper->add_child(move(child_physical_oper)); join_physical_oper->add_child(std::move(child_physical_oper));
} }
oper = move(join_physical_oper); oper = std::move(join_physical_oper);
return rc; return rc;
} }
...@@ -47,6 +47,7 @@ typedef int16_t flex_int16_t; ...@@ -47,6 +47,7 @@ typedef int16_t flex_int16_t;
typedef uint16_t flex_uint16_t; typedef uint16_t flex_uint16_t;
typedef int32_t flex_int32_t; typedef int32_t flex_int32_t;
typedef uint32_t flex_uint32_t; typedef uint32_t flex_uint32_t;
typedef uint64_t flex_uint64_t;
#else #else
typedef signed char flex_int8_t; typedef signed char flex_int8_t;
typedef short int flex_int16_t; typedef short int flex_int16_t;
...@@ -170,6 +171,11 @@ typedef void* yyscan_t; ...@@ -170,6 +171,11 @@ typedef void* yyscan_t;
typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef struct yy_buffer_state *YY_BUFFER_STATE;
#endif #endif
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
#define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2 #define EOB_ACT_LAST_MATCH 2
...@@ -192,11 +198,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; ...@@ -192,11 +198,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif
#ifndef YY_STRUCT_YY_BUFFER_STATE #ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE
struct yy_buffer_state struct yy_buffer_state
...@@ -214,7 +215,7 @@ struct yy_buffer_state ...@@ -214,7 +215,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB /* Number of characters read into yy_ch_buf, not including EOB
* characters. * characters.
*/ */
int yy_n_chars; yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it, /* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to * and can realloc() it to grow it, and should free() it to
...@@ -293,7 +294,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner ); ...@@ -293,7 +294,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
void *yyalloc (yy_size_t ,yyscan_t yyscanner ); void *yyalloc (yy_size_t ,yyscan_t yyscanner );
void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
...@@ -344,7 +345,7 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); ...@@ -344,7 +345,7 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
*/ */
#define YY_DO_BEFORE_ACTION \ #define YY_DO_BEFORE_ACTION \
yyg->yytext_ptr = yy_bp; \ yyg->yytext_ptr = yy_bp; \
yyleng = (size_t) (yy_cp - yy_bp); \ yyleng = (yy_size_t) (yy_cp - yy_bp); \
yyg->yy_hold_char = *yy_cp; \ yyg->yy_hold_char = *yy_cp; \
*yy_cp = '\0'; \ *yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp; yyg->yy_c_buf_p = yy_cp;
...@@ -625,7 +626,7 @@ extern double atof(); ...@@ -625,7 +626,7 @@ extern double atof();
/* 1. 匹配的规则长的优先 */ /* 1. 匹配的规则长的优先 */
/* 2. 写在最前面的优先 */ /* 2. 写在最前面的优先 */
/* yylval 就可以认为是 yacc 中 %union 定义的结构体(union 结构) */ /* yylval 就可以认为是 yacc 中 %union 定义的结构体(union 结构) */
#line 629 "lex_sql.cpp" #line 630 "lex_sql.cpp"
#define INITIAL 0 #define INITIAL 0
#define STR 1 #define STR 1
...@@ -655,8 +656,8 @@ struct yyguts_t ...@@ -655,8 +656,8 @@ struct yyguts_t
size_t yy_buffer_stack_max; /**< capacity of stack. */ size_t yy_buffer_stack_max; /**< capacity of stack. */
YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
char yy_hold_char; char yy_hold_char;
int yy_n_chars; yy_size_t yy_n_chars;
int yyleng_r; yy_size_t yyleng_r;
char *yy_c_buf_p; char *yy_c_buf_p;
int yy_init; int yy_init;
int yy_start; int yy_start;
...@@ -713,7 +714,7 @@ FILE *yyget_out (yyscan_t yyscanner ); ...@@ -713,7 +714,7 @@ FILE *yyget_out (yyscan_t yyscanner );
void yyset_out (FILE * out_str ,yyscan_t yyscanner ); void yyset_out (FILE * out_str ,yyscan_t yyscanner );
int yyget_leng (yyscan_t yyscanner ); yy_size_t yyget_leng (yyscan_t yyscanner );
char *yyget_text (yyscan_t yyscanner ); char *yyget_text (yyscan_t yyscanner );
...@@ -769,7 +770,7 @@ static int input (yyscan_t yyscanner ); ...@@ -769,7 +770,7 @@ static int input (yyscan_t yyscanner );
/* This used to be an fputs(), but since the string might contain NUL's, /* This used to be an fputs(), but since the string might contain NUL's,
* we now use fwrite(). * we now use fwrite().
*/ */
#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #define ECHO fwrite( yytext, yyleng, 1, yyout )
#endif #endif
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
...@@ -780,7 +781,7 @@ static int input (yyscan_t yyscanner ); ...@@ -780,7 +781,7 @@ static int input (yyscan_t yyscanner );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \ { \
int c = '*'; \ int c = '*'; \
unsigned n; \ yy_size_t n; \
for ( n = 0; n < max_size && \ for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \ buf[n] = (char) c; \
...@@ -868,7 +869,7 @@ YY_DECL ...@@ -868,7 +869,7 @@ YY_DECL
#line 55 "lex_sql.l" #line 55 "lex_sql.l"
#line 872 "lex_sql.cpp" #line 873 "lex_sql.cpp"
yylval = yylval_param; yylval = yylval_param;
...@@ -1223,7 +1224,7 @@ YY_RULE_SETUP ...@@ -1223,7 +1224,7 @@ YY_RULE_SETUP
#line 113 "lex_sql.l" #line 113 "lex_sql.l"
ECHO; ECHO;
YY_BREAK YY_BREAK
#line 1227 "lex_sql.cpp" #line 1228 "lex_sql.cpp"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(STR): case YY_STATE_EOF(STR):
yyterminate(); yyterminate();
...@@ -1411,7 +1412,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) ...@@ -1411,7 +1412,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
else else
{ {
int num_to_read = yy_size_t num_to_read =
YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
while ( num_to_read <= 0 ) while ( num_to_read <= 0 )
...@@ -1425,7 +1426,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) ...@@ -1425,7 +1426,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
if ( b->yy_is_our_buffer ) if ( b->yy_is_our_buffer )
{ {
int new_size = b->yy_buf_size * 2; yy_size_t new_size = b->yy_buf_size * 2;
if ( new_size <= 0 ) if ( new_size <= 0 )
b->yy_buf_size += b->yy_buf_size / 8; b->yy_buf_size += b->yy_buf_size / 8;
...@@ -1456,7 +1457,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) ...@@ -1456,7 +1457,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
/* Read in more data. */ /* Read in more data. */
YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
yyg->yy_n_chars, (size_t) num_to_read ); yyg->yy_n_chars, num_to_read );
YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
} }
...@@ -1581,7 +1582,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) ...@@ -1581,7 +1582,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
else else
{ /* need more input */ { /* need more input */
int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
++yyg->yy_c_buf_p; ++yyg->yy_c_buf_p;
switch ( yy_get_next_buffer( yyscanner ) ) switch ( yy_get_next_buffer( yyscanner ) )
...@@ -1605,7 +1606,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) ...@@ -1605,7 +1606,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
case EOB_ACT_END_OF_FILE: case EOB_ACT_END_OF_FILE:
{ {
if ( yywrap(yyscanner ) ) if ( yywrap(yyscanner ) )
return EOF; return 0;
if ( ! yyg->yy_did_buffer_switch_on_eof ) if ( ! yyg->yy_did_buffer_switch_on_eof )
YY_NEW_FILE; YY_NEW_FILE;
...@@ -1865,7 +1866,7 @@ void yypop_buffer_state (yyscan_t yyscanner) ...@@ -1865,7 +1866,7 @@ void yypop_buffer_state (yyscan_t yyscanner)
*/ */
static void yyensure_buffer_stack (yyscan_t yyscanner) static void yyensure_buffer_stack (yyscan_t yyscanner)
{ {
int num_to_alloc; yy_size_t num_to_alloc;
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
if (!yyg->yy_buffer_stack) { if (!yyg->yy_buffer_stack) {
...@@ -1963,12 +1964,11 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner) ...@@ -1963,12 +1964,11 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)
* @param yyscanner The scanner object. * @param yyscanner The scanner object.
* @return the newly allocated buffer state object. * @return the newly allocated buffer state object.
*/ */
YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner)
{ {
YY_BUFFER_STATE b; YY_BUFFER_STATE b;
char *buf; char *buf;
yy_size_t n; yy_size_t n, i;
int i;
/* Get memory for full buffer, including space for trailing EOB's. */ /* Get memory for full buffer, including space for trailing EOB's. */
n = _yybytes_len + 2; n = _yybytes_len + 2;
...@@ -2078,7 +2078,7 @@ FILE *yyget_out (yyscan_t yyscanner) ...@@ -2078,7 +2078,7 @@ FILE *yyget_out (yyscan_t yyscanner)
/** Get the length of the current token. /** Get the length of the current token.
* @param yyscanner The scanner object. * @param yyscanner The scanner object.
*/ */
int yyget_leng (yyscan_t yyscanner) yy_size_t yyget_leng (yyscan_t yyscanner)
{ {
struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
return yyleng; return yyleng;
......
...@@ -51,6 +51,7 @@ typedef int16_t flex_int16_t; ...@@ -51,6 +51,7 @@ typedef int16_t flex_int16_t;
typedef uint16_t flex_uint16_t; typedef uint16_t flex_uint16_t;
typedef int32_t flex_int32_t; typedef int32_t flex_int32_t;
typedef uint32_t flex_uint32_t; typedef uint32_t flex_uint32_t;
typedef uint64_t flex_uint64_t;
#else #else
typedef signed char flex_int8_t; typedef signed char flex_int8_t;
typedef short int flex_int16_t; typedef short int flex_int16_t;
...@@ -161,7 +162,7 @@ struct yy_buffer_state ...@@ -161,7 +162,7 @@ struct yy_buffer_state
/* Number of characters read into yy_ch_buf, not including EOB /* Number of characters read into yy_ch_buf, not including EOB
* characters. * characters.
*/ */
int yy_n_chars; yy_size_t yy_n_chars;
/* Whether we "own" the buffer - i.e., we know we created it, /* Whether we "own" the buffer - i.e., we know we created it,
* and can realloc() it to grow it, and should free() it to * and can realloc() it to grow it, and should free() it to
...@@ -205,7 +206,7 @@ void yypop_buffer_state (yyscan_t yyscanner ); ...@@ -205,7 +206,7 @@ void yypop_buffer_state (yyscan_t yyscanner );
YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner );
void *yyalloc (yy_size_t ,yyscan_t yyscanner ); void *yyalloc (yy_size_t ,yyscan_t yyscanner );
void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner ); void *yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
...@@ -261,7 +262,7 @@ FILE *yyget_out (yyscan_t yyscanner ); ...@@ -261,7 +262,7 @@ FILE *yyget_out (yyscan_t yyscanner );
void yyset_out (FILE * out_str ,yyscan_t yyscanner ); void yyset_out (FILE * out_str ,yyscan_t yyscanner );
int yyget_leng (yyscan_t yyscanner ); yy_size_t yyget_leng (yyscan_t yyscanner );
char *yyget_text (yyscan_t yyscanner ); char *yyget_text (yyscan_t yyscanner );
...@@ -341,6 +342,6 @@ extern int yylex \ ...@@ -341,6 +342,6 @@ extern int yylex \
#line 113 "lex_sql.l" #line 113 "lex_sql.l"
#line 345 "lex_sql.h" #line 346 "lex_sql.h"
#undef yyIN_HEADER #undef yyIN_HEADER
#endif /* yyHEADER_H */ #endif /* yyHEADER_H */
...@@ -586,12 +586,12 @@ static const yytype_int16 yyrline[] = ...@@ -586,12 +586,12 @@ static const yytype_int16 yyrline[] =
{ {
0, 142, 142, 150, 151, 152, 153, 154, 155, 156, 0, 142, 142, 150, 151, 152, 153, 154, 155, 156,
157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
167, 171, 176, 181, 187, 193, 199, 205, 212, 218, 167, 171, 177, 182, 188, 194, 200, 206, 213, 219,
226, 240, 250, 269, 272, 285, 293, 303, 306, 307, 227, 241, 251, 270, 273, 286, 294, 304, 307, 308,
308, 311, 327, 330, 341, 346, 351, 361, 373, 388, 309, 312, 328, 331, 342, 347, 352, 362, 374, 389,
411, 418, 430, 435, 446, 449, 463, 466, 479, 482, 412, 419, 431, 436, 447, 450, 464, 467, 480, 483,
488, 491, 496, 503, 515, 527, 539, 554, 555, 556, 489, 492, 497, 504, 516, 528, 540, 555, 556, 557,
557, 558, 559, 563, 573, 580, 581 558, 559, 560, 564, 574, 581, 582
}; };
#endif #endif
...@@ -1648,81 +1648,82 @@ yyreduce: ...@@ -1648,81 +1648,82 @@ yyreduce:
case 21: /* exit: EXIT */ case 21: /* exit: EXIT */
#line 171 "yacc_sql.y" #line 171 "yacc_sql.y"
{ {
(void)yynerrs;
(yyval.command) = new Command(SCF_EXIT); (yyval.command) = new Command(SCF_EXIT);
} }
#line 1654 "yacc_sql.cpp" #line 1655 "yacc_sql.cpp"
break; break;
case 22: /* help: HELP */ case 22: /* help: HELP */
#line 176 "yacc_sql.y" #line 177 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_HELP); (yyval.command) = new Command(SCF_HELP);
} }
#line 1662 "yacc_sql.cpp" #line 1663 "yacc_sql.cpp"
break; break;
case 23: /* sync: SYNC */ case 23: /* sync: SYNC */
#line 181 "yacc_sql.y" #line 182 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_SYNC); (yyval.command) = new Command(SCF_SYNC);
} }
#line 1670 "yacc_sql.cpp" #line 1671 "yacc_sql.cpp"
break; break;
case 24: /* begin: TRX_BEGIN */ case 24: /* begin: TRX_BEGIN */
#line 187 "yacc_sql.y" #line 188 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_BEGIN); (yyval.command) = new Command(SCF_BEGIN);
} }
#line 1678 "yacc_sql.cpp" #line 1679 "yacc_sql.cpp"
break; break;
case 25: /* commit: TRX_COMMIT */ case 25: /* commit: TRX_COMMIT */
#line 193 "yacc_sql.y" #line 194 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_COMMIT); (yyval.command) = new Command(SCF_COMMIT);
} }
#line 1686 "yacc_sql.cpp" #line 1687 "yacc_sql.cpp"
break; break;
case 26: /* rollback: TRX_ROLLBACK */ case 26: /* rollback: TRX_ROLLBACK */
#line 199 "yacc_sql.y" #line 200 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_ROLLBACK); (yyval.command) = new Command(SCF_ROLLBACK);
} }
#line 1694 "yacc_sql.cpp" #line 1695 "yacc_sql.cpp"
break; break;
case 27: /* drop_table: DROP TABLE ID */ case 27: /* drop_table: DROP TABLE ID */
#line 205 "yacc_sql.y" #line 206 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_DROP_TABLE); (yyval.command) = new Command(SCF_DROP_TABLE);
(yyval.command)->drop_table.relation_name = (yyvsp[0].string); (yyval.command)->drop_table.relation_name = (yyvsp[0].string);
free((yyvsp[0].string)); free((yyvsp[0].string));
} }
#line 1704 "yacc_sql.cpp" #line 1705 "yacc_sql.cpp"
break; break;
case 28: /* show_tables: SHOW TABLES */ case 28: /* show_tables: SHOW TABLES */
#line 212 "yacc_sql.y" #line 213 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_SHOW_TABLES); (yyval.command) = new Command(SCF_SHOW_TABLES);
} }
#line 1712 "yacc_sql.cpp" #line 1713 "yacc_sql.cpp"
break; break;
case 29: /* desc_table: DESC ID */ case 29: /* desc_table: DESC ID */
#line 218 "yacc_sql.y" #line 219 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_DESC_TABLE); (yyval.command) = new Command(SCF_DESC_TABLE);
(yyval.command)->desc_table.relation_name = (yyvsp[0].string); (yyval.command)->desc_table.relation_name = (yyvsp[0].string);
free((yyvsp[0].string)); free((yyvsp[0].string));
} }
#line 1722 "yacc_sql.cpp" #line 1723 "yacc_sql.cpp"
break; break;
case 30: /* create_index: CREATE INDEX ID ON ID LBRACE ID RBRACE */ case 30: /* create_index: CREATE INDEX ID ON ID LBRACE ID RBRACE */
#line 227 "yacc_sql.y" #line 228 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_CREATE_INDEX); (yyval.command) = new Command(SCF_CREATE_INDEX);
CreateIndex &create_index = (yyval.command)->create_index; CreateIndex &create_index = (yyval.command)->create_index;
...@@ -1733,11 +1734,11 @@ yyreduce: ...@@ -1733,11 +1734,11 @@ yyreduce:
free((yyvsp[-3].string)); free((yyvsp[-3].string));
free((yyvsp[-1].string)); free((yyvsp[-1].string));
} }
#line 1737 "yacc_sql.cpp" #line 1738 "yacc_sql.cpp"
break; break;
case 31: /* drop_index: DROP INDEX ID ON ID */ case 31: /* drop_index: DROP INDEX ID ON ID */
#line 241 "yacc_sql.y" #line 242 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_DROP_INDEX); (yyval.command) = new Command(SCF_DROP_INDEX);
(yyval.command)->drop_index.index_name = (yyvsp[-2].string); (yyval.command)->drop_index.index_name = (yyvsp[-2].string);
...@@ -1745,11 +1746,11 @@ yyreduce: ...@@ -1745,11 +1746,11 @@ yyreduce:
free((yyvsp[-2].string)); free((yyvsp[-2].string));
free((yyvsp[0].string)); free((yyvsp[0].string));
} }
#line 1749 "yacc_sql.cpp" #line 1750 "yacc_sql.cpp"
break; break;
case 32: /* create_table: CREATE TABLE ID LBRACE attr_def attr_def_list RBRACE */ case 32: /* create_table: CREATE TABLE ID LBRACE attr_def attr_def_list RBRACE */
#line 251 "yacc_sql.y" #line 252 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_CREATE_TABLE); (yyval.command) = new Command(SCF_CREATE_TABLE);
CreateTable &create_table = (yyval.command)->create_table; CreateTable &create_table = (yyval.command)->create_table;
...@@ -1765,19 +1766,19 @@ yyreduce: ...@@ -1765,19 +1766,19 @@ yyreduce:
std::reverse(create_table.attr_infos.begin(), create_table.attr_infos.end()); std::reverse(create_table.attr_infos.begin(), create_table.attr_infos.end());
delete (yyvsp[-2].attr_info); delete (yyvsp[-2].attr_info);
} }
#line 1769 "yacc_sql.cpp" #line 1770 "yacc_sql.cpp"
break; break;
case 33: /* attr_def_list: %empty */ case 33: /* attr_def_list: %empty */
#line 269 "yacc_sql.y" #line 270 "yacc_sql.y"
{ {
(yyval.attr_infos) = nullptr; (yyval.attr_infos) = nullptr;
} }
#line 1777 "yacc_sql.cpp" #line 1778 "yacc_sql.cpp"
break; break;
case 34: /* attr_def_list: COMMA attr_def attr_def_list */ case 34: /* attr_def_list: COMMA attr_def attr_def_list */
#line 273 "yacc_sql.y" #line 274 "yacc_sql.y"
{ {
if ((yyvsp[0].attr_infos) != nullptr) { if ((yyvsp[0].attr_infos) != nullptr) {
(yyval.attr_infos) = (yyvsp[0].attr_infos); (yyval.attr_infos) = (yyvsp[0].attr_infos);
...@@ -1787,11 +1788,11 @@ yyreduce: ...@@ -1787,11 +1788,11 @@ yyreduce:
(yyval.attr_infos)->emplace_back(*(yyvsp[-1].attr_info)); (yyval.attr_infos)->emplace_back(*(yyvsp[-1].attr_info));
delete (yyvsp[-1].attr_info); delete (yyvsp[-1].attr_info);
} }
#line 1791 "yacc_sql.cpp" #line 1792 "yacc_sql.cpp"
break; break;
case 35: /* attr_def: ID type LBRACE number RBRACE */ case 35: /* attr_def: ID type LBRACE number RBRACE */
#line 286 "yacc_sql.y" #line 287 "yacc_sql.y"
{ {
(yyval.attr_info) = new AttrInfo; (yyval.attr_info) = new AttrInfo;
(yyval.attr_info)->type = (AttrType)(yyvsp[-3].number); (yyval.attr_info)->type = (AttrType)(yyvsp[-3].number);
...@@ -1799,11 +1800,11 @@ yyreduce: ...@@ -1799,11 +1800,11 @@ yyreduce:
(yyval.attr_info)->length = (yyvsp[-1].number); (yyval.attr_info)->length = (yyvsp[-1].number);
free((yyvsp[-4].string)); free((yyvsp[-4].string));
} }
#line 1803 "yacc_sql.cpp" #line 1804 "yacc_sql.cpp"
break; break;
case 36: /* attr_def: ID type */ case 36: /* attr_def: ID type */
#line 294 "yacc_sql.y" #line 295 "yacc_sql.y"
{ {
(yyval.attr_info) = new AttrInfo; (yyval.attr_info) = new AttrInfo;
(yyval.attr_info)->type = (AttrType)(yyvsp[0].number); (yyval.attr_info)->type = (AttrType)(yyvsp[0].number);
...@@ -1811,35 +1812,35 @@ yyreduce: ...@@ -1811,35 +1812,35 @@ yyreduce:
(yyval.attr_info)->length = 4; (yyval.attr_info)->length = 4;
free((yyvsp[-1].string)); free((yyvsp[-1].string));
} }
#line 1815 "yacc_sql.cpp" #line 1816 "yacc_sql.cpp"
break; break;
case 37: /* number: NUMBER */ case 37: /* number: NUMBER */
#line 303 "yacc_sql.y" #line 304 "yacc_sql.y"
{(yyval.number) = (yyvsp[0].number);} {(yyval.number) = (yyvsp[0].number);}
#line 1821 "yacc_sql.cpp" #line 1822 "yacc_sql.cpp"
break; break;
case 38: /* type: INT_T */ case 38: /* type: INT_T */
#line 306 "yacc_sql.y" #line 307 "yacc_sql.y"
{ (yyval.number)=INTS; } { (yyval.number)=INTS; }
#line 1827 "yacc_sql.cpp" #line 1828 "yacc_sql.cpp"
break; break;
case 39: /* type: STRING_T */ case 39: /* type: STRING_T */
#line 307 "yacc_sql.y" #line 308 "yacc_sql.y"
{ (yyval.number)=CHARS; } { (yyval.number)=CHARS; }
#line 1833 "yacc_sql.cpp" #line 1834 "yacc_sql.cpp"
break; break;
case 40: /* type: FLOAT_T */ case 40: /* type: FLOAT_T */
#line 308 "yacc_sql.y" #line 309 "yacc_sql.y"
{ (yyval.number)=FLOATS; } { (yyval.number)=FLOATS; }
#line 1839 "yacc_sql.cpp" #line 1840 "yacc_sql.cpp"
break; break;
case 41: /* insert: INSERT INTO ID VALUES LBRACE value value_list RBRACE */ case 41: /* insert: INSERT INTO ID VALUES LBRACE value value_list RBRACE */
#line 312 "yacc_sql.y" #line 313 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_INSERT); (yyval.command) = new Command(SCF_INSERT);
(yyval.command)->insertion.relation_name = (yyvsp[-5].string); (yyval.command)->insertion.relation_name = (yyvsp[-5].string);
...@@ -1851,19 +1852,19 @@ yyreduce: ...@@ -1851,19 +1852,19 @@ yyreduce:
delete (yyvsp[-2].value); delete (yyvsp[-2].value);
free((yyvsp[-5].string)); free((yyvsp[-5].string));
} }
#line 1855 "yacc_sql.cpp" #line 1856 "yacc_sql.cpp"
break; break;
case 42: /* value_list: %empty */ case 42: /* value_list: %empty */
#line 327 "yacc_sql.y" #line 328 "yacc_sql.y"
{ {
(yyval.value_list) = nullptr; (yyval.value_list) = nullptr;
} }
#line 1863 "yacc_sql.cpp" #line 1864 "yacc_sql.cpp"
break; break;
case 43: /* value_list: COMMA value value_list */ case 43: /* value_list: COMMA value value_list */
#line 330 "yacc_sql.y" #line 331 "yacc_sql.y"
{ {
if ((yyvsp[0].value_list) != nullptr) { if ((yyvsp[0].value_list) != nullptr) {
(yyval.value_list) = (yyvsp[0].value_list); (yyval.value_list) = (yyvsp[0].value_list);
...@@ -1873,31 +1874,31 @@ yyreduce: ...@@ -1873,31 +1874,31 @@ yyreduce:
(yyval.value_list)->emplace_back(*(yyvsp[-1].value)); (yyval.value_list)->emplace_back(*(yyvsp[-1].value));
delete (yyvsp[-1].value); delete (yyvsp[-1].value);
} }
#line 1877 "yacc_sql.cpp" #line 1878 "yacc_sql.cpp"
break; break;
case 44: /* value: NUMBER */ case 44: /* value: NUMBER */
#line 341 "yacc_sql.y" #line 342 "yacc_sql.y"
{ {
(yyval.value) = new Value; (yyval.value) = new Value;
(yyval.value)->type = INTS; (yyval.value)->type = INTS;
(yyval.value)->int_value = (yyvsp[0].number); (yyval.value)->int_value = (yyvsp[0].number);
} }
#line 1887 "yacc_sql.cpp" #line 1888 "yacc_sql.cpp"
break; break;
case 45: /* value: FLOAT */ case 45: /* value: FLOAT */
#line 346 "yacc_sql.y" #line 347 "yacc_sql.y"
{ {
(yyval.value) = new Value; (yyval.value) = new Value;
(yyval.value)->type = FLOATS; (yyval.value)->type = FLOATS;
(yyval.value)->float_value = (yyvsp[0].floats); (yyval.value)->float_value = (yyvsp[0].floats);
} }
#line 1897 "yacc_sql.cpp" #line 1898 "yacc_sql.cpp"
break; break;
case 46: /* value: SSS */ case 46: /* value: SSS */
#line 351 "yacc_sql.y" #line 352 "yacc_sql.y"
{ {
char *tmp = common::substr((yyvsp[0].string),1,strlen((yyvsp[0].string))-2); char *tmp = common::substr((yyvsp[0].string),1,strlen((yyvsp[0].string))-2);
(yyval.value) = new Value; (yyval.value) = new Value;
...@@ -1905,11 +1906,11 @@ yyreduce: ...@@ -1905,11 +1906,11 @@ yyreduce:
(yyval.value)->string_value = tmp; (yyval.value)->string_value = tmp;
free(tmp); free(tmp);
} }
#line 1909 "yacc_sql.cpp" #line 1910 "yacc_sql.cpp"
break; break;
case 47: /* delete: DELETE FROM ID where */ case 47: /* delete: DELETE FROM ID where */
#line 362 "yacc_sql.y" #line 363 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_DELETE); (yyval.command) = new Command(SCF_DELETE);
(yyval.command)->deletion.relation_name = (yyvsp[-1].string); (yyval.command)->deletion.relation_name = (yyvsp[-1].string);
...@@ -1919,11 +1920,11 @@ yyreduce: ...@@ -1919,11 +1920,11 @@ yyreduce:
} }
free((yyvsp[-1].string)); free((yyvsp[-1].string));
} }
#line 1923 "yacc_sql.cpp" #line 1924 "yacc_sql.cpp"
break; break;
case 48: /* update: UPDATE ID SET ID EQ value where */ case 48: /* update: UPDATE ID SET ID EQ value where */
#line 374 "yacc_sql.y" #line 375 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_UPDATE); (yyval.command) = new Command(SCF_UPDATE);
(yyval.command)->update.relation_name = (yyvsp[-5].string); (yyval.command)->update.relation_name = (yyvsp[-5].string);
...@@ -1936,11 +1937,11 @@ yyreduce: ...@@ -1936,11 +1937,11 @@ yyreduce:
free((yyvsp[-5].string)); free((yyvsp[-5].string));
free((yyvsp[-3].string)); free((yyvsp[-3].string));
} }
#line 1940 "yacc_sql.cpp" #line 1941 "yacc_sql.cpp"
break; break;
case 49: /* select: SELECT select_attr FROM ID rel_list where */ case 49: /* select: SELECT select_attr FROM ID rel_list where */
#line 389 "yacc_sql.y" #line 390 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_SELECT); (yyval.command) = new Command(SCF_SELECT);
if ((yyvsp[-4].rel_attr_list) != nullptr) { if ((yyvsp[-4].rel_attr_list) != nullptr) {
...@@ -1960,11 +1961,11 @@ yyreduce: ...@@ -1960,11 +1961,11 @@ yyreduce:
} }
free((yyvsp[-2].string)); free((yyvsp[-2].string));
} }
#line 1964 "yacc_sql.cpp" #line 1965 "yacc_sql.cpp"
break; break;
case 50: /* select_attr: STAR */ case 50: /* select_attr: STAR */
#line 411 "yacc_sql.y" #line 412 "yacc_sql.y"
{ {
(yyval.rel_attr_list) = new std::vector<RelAttr>; (yyval.rel_attr_list) = new std::vector<RelAttr>;
RelAttr attr; RelAttr attr;
...@@ -1972,11 +1973,11 @@ yyreduce: ...@@ -1972,11 +1973,11 @@ yyreduce:
attr.attribute_name = "*"; attr.attribute_name = "*";
(yyval.rel_attr_list)->emplace_back(attr); (yyval.rel_attr_list)->emplace_back(attr);
} }
#line 1976 "yacc_sql.cpp" #line 1977 "yacc_sql.cpp"
break; break;
case 51: /* select_attr: rel_attr attr_list */ case 51: /* select_attr: rel_attr attr_list */
#line 418 "yacc_sql.y" #line 419 "yacc_sql.y"
{ {
if ((yyvsp[0].rel_attr_list) != nullptr) { if ((yyvsp[0].rel_attr_list) != nullptr) {
(yyval.rel_attr_list) = (yyvsp[0].rel_attr_list); (yyval.rel_attr_list) = (yyvsp[0].rel_attr_list);
...@@ -1986,21 +1987,21 @@ yyreduce: ...@@ -1986,21 +1987,21 @@ yyreduce:
(yyval.rel_attr_list)->emplace_back(*(yyvsp[-1].rel_attr)); (yyval.rel_attr_list)->emplace_back(*(yyvsp[-1].rel_attr));
delete (yyvsp[-1].rel_attr); delete (yyvsp[-1].rel_attr);
} }
#line 1990 "yacc_sql.cpp" #line 1991 "yacc_sql.cpp"
break; break;
case 52: /* rel_attr: ID */ case 52: /* rel_attr: ID */
#line 430 "yacc_sql.y" #line 431 "yacc_sql.y"
{ {
(yyval.rel_attr) = new RelAttr; (yyval.rel_attr) = new RelAttr;
(yyval.rel_attr)->attribute_name = (yyvsp[0].string); (yyval.rel_attr)->attribute_name = (yyvsp[0].string);
free((yyvsp[0].string)); free((yyvsp[0].string));
} }
#line 2000 "yacc_sql.cpp" #line 2001 "yacc_sql.cpp"
break; break;
case 53: /* rel_attr: ID DOT ID */ case 53: /* rel_attr: ID DOT ID */
#line 435 "yacc_sql.y" #line 436 "yacc_sql.y"
{ {
(yyval.rel_attr) = new RelAttr; (yyval.rel_attr) = new RelAttr;
(yyval.rel_attr)->relation_name = (yyvsp[-2].string); (yyval.rel_attr)->relation_name = (yyvsp[-2].string);
...@@ -2008,19 +2009,19 @@ yyreduce: ...@@ -2008,19 +2009,19 @@ yyreduce:
free((yyvsp[-2].string)); free((yyvsp[-2].string));
free((yyvsp[0].string)); free((yyvsp[0].string));
} }
#line 2012 "yacc_sql.cpp" #line 2013 "yacc_sql.cpp"
break; break;
case 54: /* attr_list: %empty */ case 54: /* attr_list: %empty */
#line 446 "yacc_sql.y" #line 447 "yacc_sql.y"
{ {
(yyval.rel_attr_list) = nullptr; (yyval.rel_attr_list) = nullptr;
} }
#line 2020 "yacc_sql.cpp" #line 2021 "yacc_sql.cpp"
break; break;
case 55: /* attr_list: COMMA rel_attr attr_list */ case 55: /* attr_list: COMMA rel_attr attr_list */
#line 449 "yacc_sql.y" #line 450 "yacc_sql.y"
{ {
if ((yyvsp[0].rel_attr_list) != nullptr) { if ((yyvsp[0].rel_attr_list) != nullptr) {
(yyval.rel_attr_list) = (yyvsp[0].rel_attr_list); (yyval.rel_attr_list) = (yyvsp[0].rel_attr_list);
...@@ -2031,19 +2032,19 @@ yyreduce: ...@@ -2031,19 +2032,19 @@ yyreduce:
(yyval.rel_attr_list)->emplace_back(*(yyvsp[-1].rel_attr)); (yyval.rel_attr_list)->emplace_back(*(yyvsp[-1].rel_attr));
delete (yyvsp[-1].rel_attr); delete (yyvsp[-1].rel_attr);
} }
#line 2035 "yacc_sql.cpp" #line 2036 "yacc_sql.cpp"
break; break;
case 56: /* rel_list: %empty */ case 56: /* rel_list: %empty */
#line 463 "yacc_sql.y" #line 464 "yacc_sql.y"
{ {
(yyval.relation_list) = nullptr; (yyval.relation_list) = nullptr;
} }
#line 2043 "yacc_sql.cpp" #line 2044 "yacc_sql.cpp"
break; break;
case 57: /* rel_list: COMMA ID rel_list */ case 57: /* rel_list: COMMA ID rel_list */
#line 466 "yacc_sql.y" #line 467 "yacc_sql.y"
{ {
if ((yyvsp[0].relation_list) != nullptr) { if ((yyvsp[0].relation_list) != nullptr) {
(yyval.relation_list) = (yyvsp[0].relation_list); (yyval.relation_list) = (yyvsp[0].relation_list);
...@@ -2054,55 +2055,55 @@ yyreduce: ...@@ -2054,55 +2055,55 @@ yyreduce:
(yyval.relation_list)->push_back((yyvsp[-1].string)); (yyval.relation_list)->push_back((yyvsp[-1].string));
free((yyvsp[-1].string)); free((yyvsp[-1].string));
} }
#line 2058 "yacc_sql.cpp" #line 2059 "yacc_sql.cpp"
break; break;
case 58: /* where: %empty */ case 58: /* where: %empty */
#line 479 "yacc_sql.y" #line 480 "yacc_sql.y"
{ {
(yyval.condition_list) = nullptr; (yyval.condition_list) = nullptr;
} }
#line 2066 "yacc_sql.cpp" #line 2067 "yacc_sql.cpp"
break; break;
case 59: /* where: WHERE condition_list */ case 59: /* where: WHERE condition_list */
#line 482 "yacc_sql.y" #line 483 "yacc_sql.y"
{ {
(yyval.condition_list) = (yyvsp[0].condition_list); (yyval.condition_list) = (yyvsp[0].condition_list);
} }
#line 2074 "yacc_sql.cpp" #line 2075 "yacc_sql.cpp"
break; break;
case 60: /* condition_list: %empty */ case 60: /* condition_list: %empty */
#line 488 "yacc_sql.y" #line 489 "yacc_sql.y"
{ {
(yyval.condition_list) = nullptr; (yyval.condition_list) = nullptr;
} }
#line 2082 "yacc_sql.cpp" #line 2083 "yacc_sql.cpp"
break; break;
case 61: /* condition_list: condition */ case 61: /* condition_list: condition */
#line 491 "yacc_sql.y" #line 492 "yacc_sql.y"
{ {
(yyval.condition_list) = new std::vector<Condition>; (yyval.condition_list) = new std::vector<Condition>;
(yyval.condition_list)->emplace_back(*(yyvsp[0].condition)); (yyval.condition_list)->emplace_back(*(yyvsp[0].condition));
delete (yyvsp[0].condition); delete (yyvsp[0].condition);
} }
#line 2092 "yacc_sql.cpp" #line 2093 "yacc_sql.cpp"
break; break;
case 62: /* condition_list: condition AND condition_list */ case 62: /* condition_list: condition AND condition_list */
#line 496 "yacc_sql.y" #line 497 "yacc_sql.y"
{ {
(yyval.condition_list) = (yyvsp[0].condition_list); (yyval.condition_list) = (yyvsp[0].condition_list);
(yyval.condition_list)->emplace_back(*(yyvsp[-2].condition)); (yyval.condition_list)->emplace_back(*(yyvsp[-2].condition));
delete (yyvsp[-2].condition); delete (yyvsp[-2].condition);
} }
#line 2102 "yacc_sql.cpp" #line 2103 "yacc_sql.cpp"
break; break;
case 63: /* condition: rel_attr comp_op value */ case 63: /* condition: rel_attr comp_op value */
#line 504 "yacc_sql.y" #line 505 "yacc_sql.y"
{ {
(yyval.condition) = new Condition; (yyval.condition) = new Condition;
(yyval.condition)->left_is_attr = 1; (yyval.condition)->left_is_attr = 1;
...@@ -2114,11 +2115,11 @@ yyreduce: ...@@ -2114,11 +2115,11 @@ yyreduce:
delete (yyvsp[-2].rel_attr); delete (yyvsp[-2].rel_attr);
delete (yyvsp[0].value); delete (yyvsp[0].value);
} }
#line 2118 "yacc_sql.cpp" #line 2119 "yacc_sql.cpp"
break; break;
case 64: /* condition: value comp_op value */ case 64: /* condition: value comp_op value */
#line 516 "yacc_sql.y" #line 517 "yacc_sql.y"
{ {
(yyval.condition) = new Condition; (yyval.condition) = new Condition;
(yyval.condition)->left_is_attr = 0; (yyval.condition)->left_is_attr = 0;
...@@ -2130,11 +2131,11 @@ yyreduce: ...@@ -2130,11 +2131,11 @@ yyreduce:
delete (yyvsp[-2].value); delete (yyvsp[-2].value);
delete (yyvsp[0].value); delete (yyvsp[0].value);
} }
#line 2134 "yacc_sql.cpp" #line 2135 "yacc_sql.cpp"
break; break;
case 65: /* condition: rel_attr comp_op rel_attr */ case 65: /* condition: rel_attr comp_op rel_attr */
#line 528 "yacc_sql.y" #line 529 "yacc_sql.y"
{ {
(yyval.condition) = new Condition; (yyval.condition) = new Condition;
(yyval.condition)->left_is_attr = 1; (yyval.condition)->left_is_attr = 1;
...@@ -2146,11 +2147,11 @@ yyreduce: ...@@ -2146,11 +2147,11 @@ yyreduce:
delete (yyvsp[-2].rel_attr); delete (yyvsp[-2].rel_attr);
delete (yyvsp[0].rel_attr); delete (yyvsp[0].rel_attr);
} }
#line 2150 "yacc_sql.cpp" #line 2151 "yacc_sql.cpp"
break; break;
case 66: /* condition: value comp_op rel_attr */ case 66: /* condition: value comp_op rel_attr */
#line 540 "yacc_sql.y" #line 541 "yacc_sql.y"
{ {
(yyval.condition) = new Condition; (yyval.condition) = new Condition;
(yyval.condition)->left_is_attr = 0; (yyval.condition)->left_is_attr = 0;
...@@ -2162,67 +2163,67 @@ yyreduce: ...@@ -2162,67 +2163,67 @@ yyreduce:
delete (yyvsp[-2].value); delete (yyvsp[-2].value);
delete (yyvsp[0].rel_attr); delete (yyvsp[0].rel_attr);
} }
#line 2166 "yacc_sql.cpp" #line 2167 "yacc_sql.cpp"
break; break;
case 67: /* comp_op: EQ */ case 67: /* comp_op: EQ */
#line 554 "yacc_sql.y" #line 555 "yacc_sql.y"
{ (yyval.comp) = EQUAL_TO; } { (yyval.comp) = EQUAL_TO; }
#line 2172 "yacc_sql.cpp" #line 2173 "yacc_sql.cpp"
break; break;
case 68: /* comp_op: LT */ case 68: /* comp_op: LT */
#line 555 "yacc_sql.y" #line 556 "yacc_sql.y"
{ (yyval.comp) = LESS_THAN; } { (yyval.comp) = LESS_THAN; }
#line 2178 "yacc_sql.cpp" #line 2179 "yacc_sql.cpp"
break; break;
case 69: /* comp_op: GT */ case 69: /* comp_op: GT */
#line 556 "yacc_sql.y" #line 557 "yacc_sql.y"
{ (yyval.comp) = GREAT_THAN; } { (yyval.comp) = GREAT_THAN; }
#line 2184 "yacc_sql.cpp" #line 2185 "yacc_sql.cpp"
break; break;
case 70: /* comp_op: LE */ case 70: /* comp_op: LE */
#line 557 "yacc_sql.y" #line 558 "yacc_sql.y"
{ (yyval.comp) = LESS_EQUAL; } { (yyval.comp) = LESS_EQUAL; }
#line 2190 "yacc_sql.cpp" #line 2191 "yacc_sql.cpp"
break; break;
case 71: /* comp_op: GE */ case 71: /* comp_op: GE */
#line 558 "yacc_sql.y" #line 559 "yacc_sql.y"
{ (yyval.comp) = GREAT_EQUAL; } { (yyval.comp) = GREAT_EQUAL; }
#line 2196 "yacc_sql.cpp" #line 2197 "yacc_sql.cpp"
break; break;
case 72: /* comp_op: NE */ case 72: /* comp_op: NE */
#line 559 "yacc_sql.y" #line 560 "yacc_sql.y"
{ (yyval.comp) = NOT_EQUAL; } { (yyval.comp) = NOT_EQUAL; }
#line 2202 "yacc_sql.cpp" #line 2203 "yacc_sql.cpp"
break; break;
case 73: /* load_data: LOAD DATA INFILE SSS INTO TABLE ID */ case 73: /* load_data: LOAD DATA INFILE SSS INTO TABLE ID */
#line 564 "yacc_sql.y" #line 565 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_LOAD_DATA); (yyval.command) = new Command(SCF_LOAD_DATA);
(yyval.command)->load_data.relation_name = (yyvsp[0].string); (yyval.command)->load_data.relation_name = (yyvsp[0].string);
(yyval.command)->load_data.file_name = (yyvsp[-3].string); (yyval.command)->load_data.file_name = (yyvsp[-3].string);
free((yyvsp[0].string)); free((yyvsp[0].string));
} }
#line 2213 "yacc_sql.cpp" #line 2214 "yacc_sql.cpp"
break; break;
case 74: /* explain: EXPLAIN command_wrapper */ case 74: /* explain: EXPLAIN command_wrapper */
#line 574 "yacc_sql.y" #line 575 "yacc_sql.y"
{ {
(yyval.command) = new Command(SCF_EXPLAIN); (yyval.command) = new Command(SCF_EXPLAIN);
(yyval.command)->explain.cmd = std::unique_ptr<Command>((yyvsp[0].command)); (yyval.command)->explain.cmd = std::unique_ptr<Command>((yyvsp[0].command));
} }
#line 2222 "yacc_sql.cpp" #line 2223 "yacc_sql.cpp"
break; break;
#line 2226 "yacc_sql.cpp" #line 2227 "yacc_sql.cpp"
default: break; default: break;
} }
...@@ -2452,7 +2453,7 @@ yyreturn: ...@@ -2452,7 +2453,7 @@ yyreturn:
return yyresult; return yyresult;
} }
#line 583 "yacc_sql.y" #line 584 "yacc_sql.y"
//_____________________________________________________________________ //_____________________________________________________________________
extern void scan_string(const char *str, yyscan_t scanner); extern void scan_string(const char *str, yyscan_t scanner);
......
...@@ -169,6 +169,7 @@ command_wrapper: ...@@ -169,6 +169,7 @@ command_wrapper:
exit: exit:
EXIT { EXIT {
(void)yynerrs; // 这么写为了消除yynerrs未使用的告警。如果你有更好的方法欢迎提PR
$$ = new Command(SCF_EXIT); $$ = new Command(SCF_EXIT);
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册