From 1ee1691ae19355862a2960cf5a3fb6acf94a12d3 Mon Sep 17 00:00:00 2001 From: Xiaoyu Wang Date: Thu, 17 Mar 2022 22:28:21 -0400 Subject: [PATCH] logic plan code reorganize --- include/common/ttokendef.h | 26 +++++++++---------- source/libs/parser/src/sql.c | 29 ++++++++++++++++------ source/libs/planner/src/planLogicCreater.c | 2 +- 3 files changed, 36 insertions(+), 21 deletions(-) diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index e89df62b8e..27d509e931 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -33,22 +33,22 @@ #define TK_NK_SLASH 15 #define TK_NK_REM 16 #define TK_NK_CONCAT 17 -#define TK_ALTER 18 +#define TK_CREATE 18 #define TK_ACCOUNT 19 #define TK_NK_ID 20 #define TK_PASS 21 -#define TK_PPS 22 -#define TK_TSERIES 23 -#define TK_STORAGE 24 -#define TK_STREAMS 25 -#define TK_QTIME 26 -#define TK_DBS 27 -#define TK_USERS 28 -#define TK_CONNS 29 -#define TK_STATE 30 -#define TK_CREATE 31 -#define TK_USER 32 -#define TK_NK_STRING 33 +#define TK_NK_STRING 22 +#define TK_ALTER 23 +#define TK_PPS 24 +#define TK_TSERIES 25 +#define TK_STORAGE 26 +#define TK_STREAMS 27 +#define TK_QTIME 28 +#define TK_DBS 29 +#define TK_USERS 30 +#define TK_CONNS 31 +#define TK_STATE 32 +#define TK_USER 33 #define TK_PRIVILEGE 34 #define TK_DROP 35 #define TK_SHOW 36 diff --git a/source/libs/parser/src/sql.c b/source/libs/parser/src/sql.c index fa7eb6bc89..3d88eb5336 100644 --- a/source/libs/parser/src/sql.c +++ b/source/libs/parser/src/sql.c @@ -2499,20 +2499,35 @@ static YYACTIONTYPE yy_reduce( yymsp[-1].minor.yy26 = yylhsminor.yy26; break; case 93: /* alter_table_clause ::= full_table_name ADD COLUMN column_name type_name */ - case 95: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ yytestcase(yyruleno==95); - case 97: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ yytestcase(yyruleno==97); - case 99: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ yytestcase(yyruleno==99); { yylhsminor.yy26 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy26, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy353, yymsp[0].minor.yy370); } yymsp[-4].minor.yy26 = yylhsminor.yy26; break; case 94: /* alter_table_clause ::= full_table_name DROP COLUMN column_name */ - case 98: /* alter_table_clause ::= full_table_name DROP TAG column_name */ yytestcase(yyruleno==98); -{ yylhsminor.yy26 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy26, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[0].minor.yy353); } +{ yylhsminor.yy26 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy26, TSDB_ALTER_TABLE_DROP_COLUMN, &yymsp[0].minor.yy353); } yymsp[-3].minor.yy26 = yylhsminor.yy26; break; + case 95: /* alter_table_clause ::= full_table_name MODIFY COLUMN column_name type_name */ +{ yylhsminor.yy26 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy26, TSDB_ALTER_TABLE_UPDATE_COLUMN_BYTES, &yymsp[-1].minor.yy353, yymsp[0].minor.yy370); } + yymsp[-4].minor.yy26 = yylhsminor.yy26; + break; case 96: /* alter_table_clause ::= full_table_name RENAME COLUMN column_name column_name */ - case 100: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ yytestcase(yyruleno==100); -{ yylhsminor.yy26 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy26, TSDB_ALTER_TABLE_ADD_COLUMN, &yymsp[-1].minor.yy353, &yymsp[0].minor.yy353); } +{ yylhsminor.yy26 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy26, TSDB_ALTER_TABLE_UPDATE_COLUMN_NAME, &yymsp[-1].minor.yy353, &yymsp[0].minor.yy353); } + yymsp[-4].minor.yy26 = yylhsminor.yy26; + break; + case 97: /* alter_table_clause ::= full_table_name ADD TAG column_name type_name */ +{ yylhsminor.yy26 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy26, TSDB_ALTER_TABLE_ADD_TAG, &yymsp[-1].minor.yy353, yymsp[0].minor.yy370); } + yymsp[-4].minor.yy26 = yylhsminor.yy26; + break; + case 98: /* alter_table_clause ::= full_table_name DROP TAG column_name */ +{ yylhsminor.yy26 = createAlterTableDropCol(pCxt, yymsp[-3].minor.yy26, TSDB_ALTER_TABLE_DROP_TAG, &yymsp[0].minor.yy353); } + yymsp[-3].minor.yy26 = yylhsminor.yy26; + break; + case 99: /* alter_table_clause ::= full_table_name MODIFY TAG column_name type_name */ +{ yylhsminor.yy26 = createAlterTableAddModifyCol(pCxt, yymsp[-4].minor.yy26, TSDB_ALTER_TABLE_UPDATE_TAG_BYTES, &yymsp[-1].minor.yy353, yymsp[0].minor.yy370); } + yymsp[-4].minor.yy26 = yylhsminor.yy26; + break; + case 100: /* alter_table_clause ::= full_table_name RENAME TAG column_name column_name */ +{ yylhsminor.yy26 = createAlterTableRenameCol(pCxt, yymsp[-4].minor.yy26, TSDB_ALTER_TABLE_UPDATE_TAG_NAME, &yymsp[-1].minor.yy353, &yymsp[0].minor.yy353); } yymsp[-4].minor.yy26 = yylhsminor.yy26; break; case 101: /* alter_table_clause ::= full_table_name SET TAG column_name NK_EQ literal */ diff --git a/source/libs/planner/src/planLogicCreater.c b/source/libs/planner/src/planLogicCreater.c index 0d263e4484..fd03eacf3f 100644 --- a/source/libs/planner/src/planLogicCreater.c +++ b/source/libs/planner/src/planLogicCreater.c @@ -114,7 +114,7 @@ static int32_t pushLogicNode(SLogicPlanContext* pCxt, SLogicNode** pOldRoot, SLo static int32_t createChildLogicNode(SLogicPlanContext* pCxt, SSelectStmt* pSelect, FCreateLogicNode func, SLogicNode** pRoot) { SLogicNode* pNode = NULL; int32_t code = func(pCxt, pSelect, &pNode); - if (TSDB_CODE_SUCCESS == code) { + if (TSDB_CODE_SUCCESS == code && NULL != pNode) { code = pushLogicNode(pCxt, pRoot, pNode); } if (TSDB_CODE_SUCCESS != code) {