提交 c8591f09 编写于 作者: wmmhello's avatar wmmhello

fix/TD-10399 <fix> fix invalidate error tips

上级 35a20136
......@@ -425,7 +425,7 @@ int64_t convertTimePrecision(int64_t time, int32_t fromPrecision, int32_t toPrec
} //end switch fromPrecision
end_:
if (tempResult > (double)INT64_MAX) return INT64_MAX;
if (tempResult < (double)INT64_MIN) return INT64_MIN;
if (tempResult < (double)INT64_MIN) return INT64_MIN + 1; // INT64_MIN means NULL
return time;
}
......
......@@ -281,7 +281,7 @@ void *destroyRelationInfo(SRelationInfo* pFromInfo);
SRelationInfo *addSubqueryElem(SRelationInfo* pRelationInfo, SArray* pSub, SStrToken* pAlias);
// sql expr leaf node
tSqlExpr *tSqlExprCreateIdValue(SStrToken *pToken, int32_t optrType);
tSqlExpr *tSqlExprCreateIdValue(SSqlInfo* pInfo, SStrToken *pToken, int32_t optrType);
tSqlExpr *tSqlExprCreateFunction(SArray *pParam, SStrToken *pFuncToken, SStrToken *endToken, int32_t optType);
SArray *tStrTokenAppend(SArray *pList, SStrToken *pToken);
......
......@@ -90,7 +90,6 @@ dbPrefix(A) ::= ids(X) DOT. {A = X; }
%type cpxName {SStrToken}
cpxName(A) ::= . {A.n = 0; }
cpxName(A) ::= DOT ids(Y). {A = Y; A.n += 1; }
cmd ::= SHOW CREATE TABLE ids(X) cpxName(Y). {
X.n += Y.n;
setDCLSqlElems(pInfo, TSDB_SQL_SHOW_CREATE_TABLE, 1, &X);
......@@ -520,7 +519,7 @@ selcollist(A) ::= sclp(P) distinct(Z) expr(X) as(Y). {
}
selcollist(A) ::= sclp(P) STAR. {
tSqlExpr *pNode = tSqlExprCreateIdValue(NULL, TK_ALL);
tSqlExpr *pNode = tSqlExprCreateIdValue(pInfo, NULL, TK_ALL);
A = tSqlExprListAppend(P, pNode, 0, 0);
}
......@@ -701,23 +700,23 @@ where_opt(A) ::= WHERE expr(X). {A = X;}
expr(A) ::= LP(X) expr(Y) RP(Z). {A = Y; A->exprToken.z = X.z; A->exprToken.n = (Z.z - X.z + 1);}
expr(A) ::= ID(X). { A = tSqlExprCreateIdValue(&X, TK_ID);}
expr(A) ::= ID(X) DOT ID(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(&X, TK_ID);}
expr(A) ::= ID(X) DOT STAR(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(&X, TK_ALL);}
expr(A) ::= INTEGER(X). { A = tSqlExprCreateIdValue(&X, TK_INTEGER);}
expr(A) ::= MINUS(X) INTEGER(Y). { X.n += Y.n; X.type = TK_INTEGER; A = tSqlExprCreateIdValue(&X, TK_INTEGER);}
expr(A) ::= PLUS(X) INTEGER(Y). { X.n += Y.n; X.type = TK_INTEGER; A = tSqlExprCreateIdValue(&X, TK_INTEGER);}
expr(A) ::= FLOAT(X). { A = tSqlExprCreateIdValue(&X, TK_FLOAT);}
expr(A) ::= MINUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(&X, TK_FLOAT);}
expr(A) ::= PLUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(&X, TK_FLOAT);}
expr(A) ::= STRING(X). { A = tSqlExprCreateIdValue(&X, TK_STRING);}
expr(A) ::= NOW(X). { A = tSqlExprCreateIdValue(&X, TK_NOW); }
expr(A) ::= VARIABLE(X). { A = tSqlExprCreateIdValue(&X, TK_VARIABLE);}
expr(A) ::= PLUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(&X, TK_VARIABLE);}
expr(A) ::= MINUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(&X, TK_VARIABLE);}
expr(A) ::= BOOL(X). { A = tSqlExprCreateIdValue(&X, TK_BOOL);}
expr(A) ::= NULL(X). { A = tSqlExprCreateIdValue(&X, TK_NULL);}
expr(A) ::= ID(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_ID);}
expr(A) ::= ID(X) DOT ID(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(pInfo, &X, TK_ID);}
expr(A) ::= ID(X) DOT STAR(Y). { X.n += (1+Y.n); A = tSqlExprCreateIdValue(pInfo, &X, TK_ALL);}
expr(A) ::= INTEGER(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_INTEGER);}
expr(A) ::= MINUS(X) INTEGER(Y). { X.n += Y.n; X.type = TK_INTEGER; A = tSqlExprCreateIdValue(pInfo, &X, TK_INTEGER);}
expr(A) ::= PLUS(X) INTEGER(Y). { X.n += Y.n; X.type = TK_INTEGER; A = tSqlExprCreateIdValue(pInfo, &X, TK_INTEGER);}
expr(A) ::= FLOAT(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_FLOAT);}
expr(A) ::= MINUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(pInfo, &X, TK_FLOAT);}
expr(A) ::= PLUS(X) FLOAT(Y). { X.n += Y.n; X.type = TK_FLOAT; A = tSqlExprCreateIdValue(pInfo, &X, TK_FLOAT);}
expr(A) ::= STRING(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_STRING);}
expr(A) ::= NOW(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_NOW); }
expr(A) ::= VARIABLE(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_VARIABLE);}
expr(A) ::= PLUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(pInfo, &X, TK_VARIABLE);}
expr(A) ::= MINUS(X) VARIABLE(Y). { X.n += Y.n; X.type = TK_VARIABLE; A = tSqlExprCreateIdValue(pInfo, &X, TK_VARIABLE);}
expr(A) ::= BOOL(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_BOOL);}
expr(A) ::= NULL(X). { A = tSqlExprCreateIdValue(pInfo, &X, TK_NULL);}
// ordinary functions: min(x), max(x), top(k, 20)
expr(A) ::= ID(X) LP exprlist(Y) RP(E). { tStrTokenAppend(pInfo->funcs, &X); A = tSqlExprCreateFunction(Y, &X, &E, X.type); }
......
......@@ -70,8 +70,7 @@ SSqlInfo qSqlParse(const char *pStr) {
default:
Parse(pParser, t0.type, t0, &sqlInfo);
if (sqlInfo.valid == false || terrno != TSDB_CODE_SUCCESS) {
snprintf(sqlInfo.msg, tListLen(sqlInfo.msg), "%s", t0.z);
if (sqlInfo.valid == false) {
goto abort_parse;
}
}
......@@ -135,7 +134,7 @@ SArray *tStrTokenAppend(SArray *pList, SStrToken *pToken) {
return pList;
}
tSqlExpr *tSqlExprCreateIdValue(SStrToken *pToken, int32_t optrType) {
tSqlExpr *tSqlExprCreateIdValue(SSqlInfo* pInfo, SStrToken *pToken, int32_t optrType) {
tSqlExpr *pSqlExpr = calloc(1, sizeof(tSqlExpr));
if (pToken != NULL) {
......@@ -170,6 +169,7 @@ tSqlExpr *tSqlExprCreateIdValue(SStrToken *pToken, int32_t optrType) {
char unit = 0;
int32_t ret = parseAbsoluteDuration(pToken->z, pToken->n, &pSqlExpr->value.i64, &unit, TSDB_TIME_PRECISION_NANO);
if (ret != TSDB_CODE_SUCCESS) {
snprintf(pInfo->msg, tListLen(pInfo->msg), "%s", pToken->z);
terrno = TSDB_CODE_TSC_SQL_SYNTAX_ERROR;
}
}
......
/* This file is automatically generated by Lemon from input grammar
** source file "sql.y". */
/*
** 2000-05-29
**
......@@ -22,9 +24,8 @@
** The following is the concatenation of all %include directives from the
** input grammar file:
*/
#include <stdio.h>
#include <assert.h>
/************ Begin %include sections from the grammar ************************/
#line 23 "sql.y"
#include <stdio.h>
#include <stdlib.h>
......@@ -37,12 +38,209 @@
#include "ttokendef.h"
#include "tutil.h"
#include "tvariant.h"
#line 42 "sql.c"
/**************** End of %include directives **********************************/
/* These constants specify the various numeric values for terminal symbols
** in a format understandable to "makeheaders". This section is blank unless
** "lemon" is run with the "-m" command-line option.
***************** Begin makeheaders token definitions *************************/
/**************** End makeheaders token definitions ***************************/
/* These constants specify the various numeric values for terminal symbols.
***************** Begin token definitions *************************************/
#ifndef TK_ID
#define TK_ID 1
#define TK_BOOL 2
#define TK_TINYINT 3
#define TK_SMALLINT 4
#define TK_INTEGER 5
#define TK_BIGINT 6
#define TK_FLOAT 7
#define TK_DOUBLE 8
#define TK_STRING 9
#define TK_TIMESTAMP 10
#define TK_BINARY 11
#define TK_NCHAR 12
#define TK_OR 13
#define TK_AND 14
#define TK_NOT 15
#define TK_EQ 16
#define TK_NE 17
#define TK_ISNULL 18
#define TK_NOTNULL 19
#define TK_IS 20
#define TK_LIKE 21
#define TK_MATCH 22
#define TK_NMATCH 23
#define TK_GLOB 24
#define TK_BETWEEN 25
#define TK_IN 26
#define TK_GT 27
#define TK_GE 28
#define TK_LT 29
#define TK_LE 30
#define TK_BITAND 31
#define TK_BITOR 32
#define TK_LSHIFT 33
#define TK_RSHIFT 34
#define TK_PLUS 35
#define TK_MINUS 36
#define TK_DIVIDE 37
#define TK_TIMES 38
#define TK_STAR 39
#define TK_SLASH 40
#define TK_REM 41
#define TK_CONCAT 42
#define TK_UMINUS 43
#define TK_UPLUS 44
#define TK_BITNOT 45
#define TK_SHOW 46
#define TK_DATABASES 47
#define TK_TOPICS 48
#define TK_FUNCTIONS 49
#define TK_MNODES 50
#define TK_DNODES 51
#define TK_ACCOUNTS 52
#define TK_USERS 53
#define TK_MODULES 54
#define TK_QUERIES 55
#define TK_CONNECTIONS 56
#define TK_STREAMS 57
#define TK_VARIABLES 58
#define TK_SCORES 59
#define TK_GRANTS 60
#define TK_VNODES 61
#define TK_DOT 62
#define TK_CREATE 63
#define TK_TABLE 64
#define TK_STABLE 65
#define TK_DATABASE 66
#define TK_TABLES 67
#define TK_STABLES 68
#define TK_VGROUPS 69
#define TK_DROP 70
#define TK_TOPIC 71
#define TK_FUNCTION 72
#define TK_DNODE 73
#define TK_USER 74
#define TK_ACCOUNT 75
#define TK_USE 76
#define TK_DESCRIBE 77
#define TK_DESC 78
#define TK_ALTER 79
#define TK_PASS 80
#define TK_PRIVILEGE 81
#define TK_LOCAL 82
#define TK_COMPACT 83
#define TK_LP 84
#define TK_RP 85
#define TK_IF 86
#define TK_EXISTS 87
#define TK_AS 88
#define TK_OUTPUTTYPE 89
#define TK_AGGREGATE 90
#define TK_BUFSIZE 91
#define TK_PPS 92
#define TK_TSERIES 93
#define TK_DBS 94
#define TK_STORAGE 95
#define TK_QTIME 96
#define TK_CONNS 97
#define TK_STATE 98
#define TK_COMMA 99
#define TK_KEEP 100
#define TK_CACHE 101
#define TK_REPLICA 102
#define TK_QUORUM 103
#define TK_DAYS 104
#define TK_MINROWS 105
#define TK_MAXROWS 106
#define TK_BLOCKS 107
#define TK_CTIME 108
#define TK_WAL 109
#define TK_FSYNC 110
#define TK_COMP 111
#define TK_PRECISION 112
#define TK_UPDATE 113
#define TK_CACHELAST 114
#define TK_PARTITIONS 115
#define TK_UNSIGNED 116
#define TK_TAGS 117
#define TK_USING 118
#define TK_NULL 119
#define TK_NOW 120
#define TK_SELECT 121
#define TK_UNION 122
#define TK_ALL 123
#define TK_DISTINCT 124
#define TK_FROM 125
#define TK_VARIABLE 126
#define TK_INTERVAL 127
#define TK_EVERY 128
#define TK_SESSION 129
#define TK_STATE_WINDOW 130
#define TK_FILL 131
#define TK_SLIDING 132
#define TK_ORDER 133
#define TK_BY 134
#define TK_ASC 135
#define TK_GROUP 136
#define TK_HAVING 137
#define TK_LIMIT 138
#define TK_OFFSET 139
#define TK_SLIMIT 140
#define TK_SOFFSET 141
#define TK_WHERE 142
#define TK_RESET 143
#define TK_QUERY 144
#define TK_SYNCDB 145
#define TK_ADD 146
#define TK_COLUMN 147
#define TK_MODIFY 148
#define TK_TAG 149
#define TK_CHANGE 150
#define TK_SET 151
#define TK_KILL 152
#define TK_CONNECTION 153
#define TK_STREAM 154
#define TK_COLON 155
#define TK_ABORT 156
#define TK_AFTER 157
#define TK_ATTACH 158
#define TK_BEFORE 159
#define TK_BEGIN 160
#define TK_CASCADE 161
#define TK_CLUSTER 162
#define TK_CONFLICT 163
#define TK_COPY 164
#define TK_DEFERRED 165
#define TK_DELIMITERS 166
#define TK_DETACH 167
#define TK_EACH 168
#define TK_END 169
#define TK_EXPLAIN 170
#define TK_FAIL 171
#define TK_FOR 172
#define TK_IGNORE 173
#define TK_IMMEDIATE 174
#define TK_INITIALLY 175
#define TK_INSTEAD 176
#define TK_KEY 177
#define TK_OF 178
#define TK_RAISE 179
#define TK_REPLACE 180
#define TK_RESTRICT 181
#define TK_ROW 182
#define TK_STATEMENT 183
#define TK_TRIGGER 184
#define TK_VIEW 185
#define TK_IPTOKEN 186
#define TK_SEMI 187
#define TK_NONE 188
#define TK_PREV 189
#define TK_LINEAR 190
#define TK_IMPORT 191
#define TK_TBNAME 192
#define TK_JOIN 193
#define TK_INSERT 194
#define TK_INTO 195
#define TK_VALUES 196
#endif
/**************** End token definitions ***************************************/
/* The next sections is a series of control #defines.
** various aspects of the generated parser.
......@@ -771,6 +969,7 @@ typedef struct yyParser yyParser;
#ifndef NDEBUG
#include <stdio.h>
#include <assert.h>
static FILE *yyTraceFILE = 0;
static char *yyTracePrompt = 0;
#endif /* NDEBUG */
......@@ -1513,7 +1712,9 @@ static void yy_destructor(
case 250: /* selcollist */
case 264: /* sclp */
{
#line 762 "sql.y"
tSqlExprListDestroy((yypminor->yy421));
#line 1717 "sql.c"
}
break;
case 221: /* intitemlist */
......@@ -1527,24 +1728,32 @@ tSqlExprListDestroy((yypminor->yy421));
case 272: /* sortlist */
case 276: /* grouplist */
{
#line 256 "sql.y"
taosArrayDestroy((yypminor->yy421));
#line 1733 "sql.c"
}
break;
case 242: /* create_table_list */
{
#line 364 "sql.y"
destroyCreateTableSql((yypminor->yy438));
#line 1740 "sql.c"
}
break;
case 247: /* select */
{
#line 484 "sql.y"
destroySqlNode((yypminor->yy56));
#line 1747 "sql.c"
}
break;
case 251: /* from */
case 268: /* tablelist */
case 269: /* sub */
{
#line 539 "sql.y"
destroyRelationInfo((yypminor->yy8));
#line 1756 "sql.c"
}
break;
case 252: /* where_opt */
......@@ -1552,17 +1761,23 @@ destroyRelationInfo((yypminor->yy8));
case 266: /* expr */
case 277: /* expritem */
{
#line 691 "sql.y"
tSqlExprDestroy((yypminor->yy439));
#line 1766 "sql.c"
}
break;
case 263: /* union */
{
#line 492 "sql.y"
destroyAllSqlNode((yypminor->yy421));
#line 1773 "sql.c"
}
break;
case 273: /* sortitem */
{
#line 624 "sql.y"
tVariantDestroy(&(yypminor->yy430));
#line 1780 "sql.c"
}
break;
/********* End destructor definitions *****************************************/
......@@ -1729,7 +1944,7 @@ static YYACTIONTYPE yy_find_shift_action(
#endif /* YYWILDCARD */
return yy_default[stateno];
}else{
assert( i>=0 && i<sizeof(yy_action)/sizeof(yy_action[0]) );
assert( i>=0 && i<(int)(sizeof(yy_action)/sizeof(yy_action[0])) );
return yy_action[i];
}
}while(1);
......@@ -2473,54 +2688,6 @@ static YYACTIONTYPE yy_reduce(
(void)yyLookahead;
(void)yyLookaheadToken;
yymsp = yypParser->yytos;
#ifndef NDEBUG
if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){
yysize = yyRuleInfoNRhs[yyruleno];
if( yysize ){
fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
yyTracePrompt,
yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action",
yymsp[yysize].stateno);
}else{
fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n",
yyTracePrompt, yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action");
}
}
#endif /* NDEBUG */
/* Check that the stack is large enough to grow by a single entry
** if the RHS of the rule is empty. This ensures that there is room
** enough on the stack to push the LHS value */
if( yyRuleInfoNRhs[yyruleno]==0 ){
#ifdef YYTRACKMAXSTACKDEPTH
if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
yypParser->yyhwm++;
assert( yypParser->yyhwm == (int)(yypParser->yytos - yypParser->yystack));
}
#endif
#if YYSTACKDEPTH>0
if( yypParser->yytos>=yypParser->yystackEnd ){
yyStackOverflow(yypParser);
/* The call to yyStackOverflow() above pops the stack until it is
** empty, causing the main parser loop to exit. So the return value
** is never used and does not matter. */
return 0;
}
#else
if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){
if( yyGrowStack(yypParser) ){
yyStackOverflow(yypParser);
/* The call to yyStackOverflow() above pops the stack until it is
** empty, causing the main parser loop to exit. So the return value
** is never used and does not matter. */
return 0;
}
yymsp = yypParser->yytos;
}
#endif
}
switch( yyruleno ){
/* Beginning here are the reduction cases. A typical example
......@@ -2537,227 +2704,347 @@ static YYACTIONTYPE yy_reduce(
case 139: /* cmd ::= CREATE TABLE create_table_args */ yytestcase(yyruleno==139);
case 140: /* cmd ::= CREATE TABLE create_stable_args */ yytestcase(yyruleno==140);
case 141: /* cmd ::= CREATE STABLE create_stable_args */ yytestcase(yyruleno==141);
#line 63 "sql.y"
{}
#line 2709 "sql.c"
break;
case 1: /* cmd ::= SHOW DATABASES */
#line 66 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_DB, 0, 0);}
#line 2714 "sql.c"
break;
case 2: /* cmd ::= SHOW TOPICS */
#line 67 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_TP, 0, 0);}
#line 2719 "sql.c"
break;
case 3: /* cmd ::= SHOW FUNCTIONS */
#line 68 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_FUNCTION, 0, 0);}
#line 2724 "sql.c"
break;
case 4: /* cmd ::= SHOW MNODES */
#line 69 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_MNODE, 0, 0);}
#line 2729 "sql.c"
break;
case 5: /* cmd ::= SHOW DNODES */
#line 70 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_DNODE, 0, 0);}
#line 2734 "sql.c"
break;
case 6: /* cmd ::= SHOW ACCOUNTS */
#line 71 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_ACCT, 0, 0);}
#line 2739 "sql.c"
break;
case 7: /* cmd ::= SHOW USERS */
#line 72 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_USER, 0, 0);}
#line 2744 "sql.c"
break;
case 8: /* cmd ::= SHOW MODULES */
#line 74 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_MODULE, 0, 0); }
#line 2749 "sql.c"
break;
case 9: /* cmd ::= SHOW QUERIES */
#line 75 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_QUERIES, 0, 0); }
#line 2754 "sql.c"
break;
case 10: /* cmd ::= SHOW CONNECTIONS */
#line 76 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_CONNS, 0, 0);}
#line 2759 "sql.c"
break;
case 11: /* cmd ::= SHOW STREAMS */
#line 77 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_STREAMS, 0, 0); }
#line 2764 "sql.c"
break;
case 12: /* cmd ::= SHOW VARIABLES */
#line 78 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_VARIABLES, 0, 0); }
#line 2769 "sql.c"
break;
case 13: /* cmd ::= SHOW SCORES */
#line 79 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_SCORES, 0, 0); }
#line 2774 "sql.c"
break;
case 14: /* cmd ::= SHOW GRANTS */
#line 80 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_GRANTS, 0, 0); }
#line 2779 "sql.c"
break;
case 15: /* cmd ::= SHOW VNODES */
#line 82 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_VNODES, 0, 0); }
#line 2784 "sql.c"
break;
case 16: /* cmd ::= SHOW VNODES ids */
#line 83 "sql.y"
{ setShowOptions(pInfo, TSDB_MGMT_TABLE_VNODES, &yymsp[0].minor.yy0, 0); }
#line 2789 "sql.c"
break;
case 17: /* dbPrefix ::= */
#line 87 "sql.y"
{yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.type = 0;}
#line 2794 "sql.c"
break;
case 18: /* dbPrefix ::= ids DOT */
#line 88 "sql.y"
{yylhsminor.yy0 = yymsp[-1].minor.yy0; }
#line 2799 "sql.c"
yymsp[-1].minor.yy0 = yylhsminor.yy0;
break;
case 19: /* cpxName ::= */
#line 91 "sql.y"
{yymsp[1].minor.yy0.n = 0; }
#line 2805 "sql.c"
break;
case 20: /* cpxName ::= DOT ids */
#line 92 "sql.y"
{yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n += 1; }
#line 2810 "sql.c"
break;
case 21: /* cmd ::= SHOW CREATE TABLE ids cpxName */
#line 93 "sql.y"
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
setDCLSqlElems(pInfo, TSDB_SQL_SHOW_CREATE_TABLE, 1, &yymsp[-1].minor.yy0);
}
#line 2818 "sql.c"
break;
case 22: /* cmd ::= SHOW CREATE STABLE ids cpxName */
#line 97 "sql.y"
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
setDCLSqlElems(pInfo, TSDB_SQL_SHOW_CREATE_STABLE, 1, &yymsp[-1].minor.yy0);
}
#line 2826 "sql.c"
break;
case 23: /* cmd ::= SHOW CREATE DATABASE ids */
#line 102 "sql.y"
{
setDCLSqlElems(pInfo, TSDB_SQL_SHOW_CREATE_DATABASE, 1, &yymsp[0].minor.yy0);
}
#line 2833 "sql.c"
break;
case 24: /* cmd ::= SHOW dbPrefix TABLES */
#line 106 "sql.y"
{
setShowOptions(pInfo, TSDB_MGMT_TABLE_TABLE, &yymsp[-1].minor.yy0, 0);
}
#line 2840 "sql.c"
break;
case 25: /* cmd ::= SHOW dbPrefix TABLES LIKE ids */
#line 110 "sql.y"
{
setShowOptions(pInfo, TSDB_MGMT_TABLE_TABLE, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0);
}
#line 2847 "sql.c"
break;
case 26: /* cmd ::= SHOW dbPrefix STABLES */
#line 114 "sql.y"
{
setShowOptions(pInfo, TSDB_MGMT_TABLE_METRIC, &yymsp[-1].minor.yy0, 0);
}
#line 2854 "sql.c"
break;
case 27: /* cmd ::= SHOW dbPrefix STABLES LIKE ids */
#line 118 "sql.y"
{
SStrToken token;
tSetDbName(&token, &yymsp[-3].minor.yy0);
setShowOptions(pInfo, TSDB_MGMT_TABLE_METRIC, &token, &yymsp[0].minor.yy0);
}
#line 2863 "sql.c"
break;
case 28: /* cmd ::= SHOW dbPrefix VGROUPS */
#line 124 "sql.y"
{
SStrToken token;
tSetDbName(&token, &yymsp[-1].minor.yy0);
setShowOptions(pInfo, TSDB_MGMT_TABLE_VGROUP, &token, 0);
}
#line 2872 "sql.c"
break;
case 29: /* cmd ::= SHOW dbPrefix VGROUPS ids */
#line 130 "sql.y"
{
SStrToken token;
tSetDbName(&token, &yymsp[-2].minor.yy0);
setShowOptions(pInfo, TSDB_MGMT_TABLE_VGROUP, &token, &yymsp[0].minor.yy0);
}
#line 2881 "sql.c"
break;
case 30: /* cmd ::= DROP TABLE ifexists ids cpxName */
#line 137 "sql.y"
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &yymsp[-1].minor.yy0, &yymsp[-2].minor.yy0, -1, -1);
}
#line 2889 "sql.c"
break;
case 31: /* cmd ::= DROP STABLE ifexists ids cpxName */
#line 143 "sql.y"
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
setDropDbTableInfo(pInfo, TSDB_SQL_DROP_TABLE, &yymsp[-1].minor.yy0, &yymsp[-2].minor.yy0, -1, TSDB_SUPER_TABLE);
}
#line 2897 "sql.c"
break;
case 32: /* cmd ::= DROP DATABASE ifexists ids */
#line 148 "sql.y"
{ setDropDbTableInfo(pInfo, TSDB_SQL_DROP_DB, &yymsp[0].minor.yy0, &yymsp[-1].minor.yy0, TSDB_DB_TYPE_DEFAULT, -1); }
#line 2902 "sql.c"
break;
case 33: /* cmd ::= DROP TOPIC ifexists ids */
#line 149 "sql.y"
{ setDropDbTableInfo(pInfo, TSDB_SQL_DROP_DB, &yymsp[0].minor.yy0, &yymsp[-1].minor.yy0, TSDB_DB_TYPE_TOPIC, -1); }
#line 2907 "sql.c"
break;
case 34: /* cmd ::= DROP FUNCTION ids */
#line 150 "sql.y"
{ setDropFuncInfo(pInfo, TSDB_SQL_DROP_FUNCTION, &yymsp[0].minor.yy0); }
#line 2912 "sql.c"
break;
case 35: /* cmd ::= DROP DNODE ids */
#line 152 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_DROP_DNODE, 1, &yymsp[0].minor.yy0); }
#line 2917 "sql.c"
break;
case 36: /* cmd ::= DROP USER ids */
#line 153 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_DROP_USER, 1, &yymsp[0].minor.yy0); }
#line 2922 "sql.c"
break;
case 37: /* cmd ::= DROP ACCOUNT ids */
#line 154 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_DROP_ACCT, 1, &yymsp[0].minor.yy0); }
#line 2927 "sql.c"
break;
case 38: /* cmd ::= USE ids */
#line 157 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_USE_DB, 1, &yymsp[0].minor.yy0);}
#line 2932 "sql.c"
break;
case 39: /* cmd ::= DESCRIBE ids cpxName */
case 40: /* cmd ::= DESC ids cpxName */ yytestcase(yyruleno==40);
#line 160 "sql.y"
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
setDCLSqlElems(pInfo, TSDB_SQL_DESCRIBE_TABLE, 1, &yymsp[-1].minor.yy0);
}
#line 2941 "sql.c"
break;
case 41: /* cmd ::= ALTER USER ids PASS ids */
#line 170 "sql.y"
{ setAlterUserSql(pInfo, TSDB_ALTER_USER_PASSWD, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, NULL); }
#line 2946 "sql.c"
break;
case 42: /* cmd ::= ALTER USER ids PRIVILEGE ids */
#line 171 "sql.y"
{ setAlterUserSql(pInfo, TSDB_ALTER_USER_PRIVILEGES, &yymsp[-2].minor.yy0, NULL, &yymsp[0].minor.yy0);}
#line 2951 "sql.c"
break;
case 43: /* cmd ::= ALTER DNODE ids ids */
#line 172 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_CFG_DNODE, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); }
#line 2956 "sql.c"
break;
case 44: /* cmd ::= ALTER DNODE ids ids ids */
#line 173 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_CFG_DNODE, 3, &yymsp[-2].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); }
#line 2961 "sql.c"
break;
case 45: /* cmd ::= ALTER LOCAL ids */
#line 174 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_CFG_LOCAL, 1, &yymsp[0].minor.yy0); }
#line 2966 "sql.c"
break;
case 46: /* cmd ::= ALTER LOCAL ids ids */
#line 175 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_CFG_LOCAL, 2, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0); }
#line 2971 "sql.c"
break;
case 47: /* cmd ::= ALTER DATABASE ids alter_db_optr */
case 48: /* cmd ::= ALTER TOPIC ids alter_topic_optr */ yytestcase(yyruleno==48);
#line 176 "sql.y"
{ SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy90, &t);}
#line 2977 "sql.c"
break;
case 49: /* cmd ::= ALTER ACCOUNT ids acct_optr */
#line 179 "sql.y"
{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy171);}
#line 2982 "sql.c"
break;
case 50: /* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
#line 180 "sql.y"
{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy171);}
#line 2987 "sql.c"
break;
case 51: /* cmd ::= COMPACT VNODES IN LP exprlist RP */
#line 184 "sql.y"
{ setCompactVnodeSql(pInfo, TSDB_SQL_COMPACT_VNODE, yymsp[-1].minor.yy421);}
#line 2992 "sql.c"
break;
case 52: /* ids ::= ID */
case 53: /* ids ::= STRING */ yytestcase(yyruleno==53);
#line 190 "sql.y"
{yylhsminor.yy0 = yymsp[0].minor.yy0; }
#line 2998 "sql.c"
yymsp[0].minor.yy0 = yylhsminor.yy0;
break;
case 54: /* ifexists ::= IF EXISTS */
#line 194 "sql.y"
{ yymsp[-1].minor.yy0.n = 1;}
#line 3004 "sql.c"
break;
case 55: /* ifexists ::= */
case 57: /* ifnotexists ::= */ yytestcase(yyruleno==57);
case 181: /* distinct ::= */ yytestcase(yyruleno==181);
#line 195 "sql.y"
{ yymsp[1].minor.yy0.n = 0;}
#line 3011 "sql.c"
break;
case 56: /* ifnotexists ::= IF NOT EXISTS */
#line 198 "sql.y"
{ yymsp[-2].minor.yy0.n = 1;}
#line 3016 "sql.c"
break;
case 58: /* cmd ::= CREATE DNODE ids */
#line 203 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_CREATE_DNODE, 1, &yymsp[0].minor.yy0);}
#line 3021 "sql.c"
break;
case 59: /* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
#line 205 "sql.y"
{ setCreateAcctSql(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy171);}
#line 3026 "sql.c"
break;
case 60: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
case 61: /* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ yytestcase(yyruleno==61);
#line 206 "sql.y"
{ setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy90, &yymsp[-2].minor.yy0);}
#line 3032 "sql.c"
break;
case 62: /* cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
#line 208 "sql.y"
{ setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy183, &yymsp[0].minor.yy0, 1);}
#line 3037 "sql.c"
break;
case 63: /* cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
#line 209 "sql.y"
{ setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy183, &yymsp[0].minor.yy0, 2);}
#line 3042 "sql.c"
break;
case 64: /* cmd ::= CREATE USER ids PASS ids */
#line 210 "sql.y"
{ setCreateUserSql(pInfo, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);}
#line 3047 "sql.c"
break;
case 65: /* bufsize ::= */
case 67: /* pps ::= */ yytestcase(yyruleno==67);
......@@ -2769,7 +3056,9 @@ static YYACTIONTYPE yy_reduce(
case 79: /* users ::= */ yytestcase(yyruleno==79);
case 81: /* conns ::= */ yytestcase(yyruleno==81);
case 83: /* state ::= */ yytestcase(yyruleno==83);
#line 212 "sql.y"
{ yymsp[1].minor.yy0.n = 0; }
#line 3061 "sql.c"
break;
case 66: /* bufsize ::= BUFSIZE INTEGER */
case 68: /* pps ::= PPS INTEGER */ yytestcase(yyruleno==68);
......@@ -2781,9 +3070,12 @@ static YYACTIONTYPE yy_reduce(
case 80: /* users ::= USERS INTEGER */ yytestcase(yyruleno==80);
case 82: /* conns ::= CONNS INTEGER */ yytestcase(yyruleno==82);
case 84: /* state ::= STATE ids */ yytestcase(yyruleno==84);
#line 213 "sql.y"
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
#line 3075 "sql.c"
break;
case 85: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
#line 243 "sql.y"
{
yylhsminor.yy171.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1;
yylhsminor.yy171.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1;
......@@ -2795,16 +3087,21 @@ static YYACTIONTYPE yy_reduce(
yylhsminor.yy171.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1;
yylhsminor.yy171.stat = yymsp[0].minor.yy0;
}
#line 3090 "sql.c"
yymsp[-8].minor.yy171 = yylhsminor.yy171;
break;
case 86: /* intitemlist ::= intitemlist COMMA intitem */
case 155: /* tagitemlist ::= tagitemlist COMMA tagitem */ yytestcase(yyruleno==155);
#line 259 "sql.y"
{ yylhsminor.yy421 = tVariantListAppend(yymsp[-2].minor.yy421, &yymsp[0].minor.yy430, -1); }
#line 3097 "sql.c"
yymsp[-2].minor.yy421 = yylhsminor.yy421;
break;
case 87: /* intitemlist ::= intitem */
case 156: /* tagitemlist ::= tagitem */ yytestcase(yyruleno==156);
#line 260 "sql.y"
{ yylhsminor.yy421 = tVariantListAppend(NULL, &yymsp[0].minor.yy430, -1); }
#line 3104 "sql.c"
yymsp[0].minor.yy421 = yylhsminor.yy421;
break;
case 88: /* intitem ::= INTEGER */
......@@ -2812,11 +3109,15 @@ static YYACTIONTYPE yy_reduce(
case 158: /* tagitem ::= FLOAT */ yytestcase(yyruleno==158);
case 159: /* tagitem ::= STRING */ yytestcase(yyruleno==159);
case 160: /* tagitem ::= BOOL */ yytestcase(yyruleno==160);
#line 262 "sql.y"
{ toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy430, &yymsp[0].minor.yy0); }
#line 3114 "sql.c"
yymsp[0].minor.yy430 = yylhsminor.yy430;
break;
case 89: /* keep ::= KEEP intitemlist */
#line 266 "sql.y"
{ yymsp[-1].minor.yy421 = yymsp[0].minor.yy421; }
#line 3120 "sql.c"
break;
case 90: /* cache ::= CACHE INTEGER */
case 91: /* replica ::= REPLICA INTEGER */ yytestcase(yyruleno==91);
......@@ -2833,99 +3134,142 @@ static YYACTIONTYPE yy_reduce(
case 102: /* update ::= UPDATE INTEGER */ yytestcase(yyruleno==102);
case 103: /* cachelast ::= CACHELAST INTEGER */ yytestcase(yyruleno==103);
case 104: /* partitions ::= PARTITIONS INTEGER */ yytestcase(yyruleno==104);
#line 268 "sql.y"
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
#line 3139 "sql.c"
break;
case 105: /* db_optr ::= */
#line 285 "sql.y"
{setDefaultCreateDbOption(&yymsp[1].minor.yy90); yymsp[1].minor.yy90.dbType = TSDB_DB_TYPE_DEFAULT;}
#line 3144 "sql.c"
break;
case 106: /* db_optr ::= db_optr cache */
#line 287 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3149 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 107: /* db_optr ::= db_optr replica */
case 124: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==124);
#line 288 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3156 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 108: /* db_optr ::= db_optr quorum */
case 125: /* alter_db_optr ::= alter_db_optr quorum */ yytestcase(yyruleno==125);
#line 289 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3163 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 109: /* db_optr ::= db_optr days */
#line 290 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3169 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 110: /* db_optr ::= db_optr minrows */
#line 291 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
#line 3175 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 111: /* db_optr ::= db_optr maxrows */
#line 292 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
#line 3181 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 112: /* db_optr ::= db_optr blocks */
case 127: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==127);
#line 293 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3188 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 113: /* db_optr ::= db_optr ctime */
#line 294 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3194 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 114: /* db_optr ::= db_optr wal */
#line 295 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3200 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 115: /* db_optr ::= db_optr fsync */
#line 296 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3206 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 116: /* db_optr ::= db_optr comp */
case 128: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==128);
#line 297 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3213 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 117: /* db_optr ::= db_optr prec */
#line 298 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.precision = yymsp[0].minor.yy0; }
#line 3219 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 118: /* db_optr ::= db_optr keep */
case 126: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==126);
#line 299 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.keep = yymsp[0].minor.yy421; }
#line 3226 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 119: /* db_optr ::= db_optr update */
case 129: /* alter_db_optr ::= alter_db_optr update */ yytestcase(yyruleno==129);
#line 300 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3233 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 120: /* db_optr ::= db_optr cachelast */
case 130: /* alter_db_optr ::= alter_db_optr cachelast */ yytestcase(yyruleno==130);
#line 301 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3240 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 121: /* topic_optr ::= db_optr */
case 131: /* alter_topic_optr ::= alter_db_optr */ yytestcase(yyruleno==131);
#line 305 "sql.y"
{ yylhsminor.yy90 = yymsp[0].minor.yy90; yylhsminor.yy90.dbType = TSDB_DB_TYPE_TOPIC; }
#line 3247 "sql.c"
yymsp[0].minor.yy90 = yylhsminor.yy90;
break;
case 122: /* topic_optr ::= topic_optr partitions */
case 132: /* alter_topic_optr ::= alter_topic_optr partitions */ yytestcase(yyruleno==132);
#line 306 "sql.y"
{ yylhsminor.yy90 = yymsp[-1].minor.yy90; yylhsminor.yy90.partitions = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3254 "sql.c"
yymsp[-1].minor.yy90 = yylhsminor.yy90;
break;
case 123: /* alter_db_optr ::= */
#line 309 "sql.y"
{ setDefaultCreateDbOption(&yymsp[1].minor.yy90); yymsp[1].minor.yy90.dbType = TSDB_DB_TYPE_DEFAULT;}
#line 3260 "sql.c"
break;
case 133: /* typename ::= ids */
#line 329 "sql.y"
{
yymsp[0].minor.yy0.type = 0;
tSetColumnType (&yylhsminor.yy183, &yymsp[0].minor.yy0);
}
#line 3268 "sql.c"
yymsp[0].minor.yy183 = yylhsminor.yy183;
break;
case 134: /* typename ::= ids LP signed RP */
#line 335 "sql.y"
{
if (yymsp[-1].minor.yy325 <= 0) {
yymsp[-3].minor.yy0.type = 0;
......@@ -2935,30 +3279,42 @@ static YYACTIONTYPE yy_reduce(
tSetColumnType(&yylhsminor.yy183, &yymsp[-3].minor.yy0);
}
}
#line 3282 "sql.c"
yymsp[-3].minor.yy183 = yylhsminor.yy183;
break;
case 135: /* typename ::= ids UNSIGNED */
#line 346 "sql.y"
{
yymsp[-1].minor.yy0.type = 0;
yymsp[-1].minor.yy0.n = ((yymsp[0].minor.yy0.z + yymsp[0].minor.yy0.n) - yymsp[-1].minor.yy0.z);
tSetColumnType (&yylhsminor.yy183, &yymsp[-1].minor.yy0);
}
#line 3292 "sql.c"
yymsp[-1].minor.yy183 = yylhsminor.yy183;
break;
case 136: /* signed ::= INTEGER */
#line 353 "sql.y"
{ yylhsminor.yy325 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3298 "sql.c"
yymsp[0].minor.yy325 = yylhsminor.yy325;
break;
case 137: /* signed ::= PLUS INTEGER */
#line 354 "sql.y"
{ yymsp[-1].minor.yy325 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
#line 3304 "sql.c"
break;
case 138: /* signed ::= MINUS INTEGER */
#line 355 "sql.y"
{ yymsp[-1].minor.yy325 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);}
#line 3309 "sql.c"
break;
case 142: /* cmd ::= CREATE TABLE create_table_list */
#line 361 "sql.y"
{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy438;}
#line 3314 "sql.c"
break;
case 143: /* create_table_list ::= create_from_stable */
#line 365 "sql.y"
{
SCreateTableSql* pCreateTable = calloc(1, sizeof(SCreateTableSql));
pCreateTable->childTableInfo = taosArrayInit(4, sizeof(SCreatedTableInfo));
......@@ -2967,16 +3323,20 @@ static YYACTIONTYPE yy_reduce(
pCreateTable->type = TSQL_CREATE_TABLE_FROM_STABLE;
yylhsminor.yy438 = pCreateTable;
}
#line 3326 "sql.c"
yymsp[0].minor.yy438 = yylhsminor.yy438;
break;
case 144: /* create_table_list ::= create_table_list create_from_stable */
#line 374 "sql.y"
{
taosArrayPush(yymsp[-1].minor.yy438->childTableInfo, &yymsp[0].minor.yy152);
yylhsminor.yy438 = yymsp[-1].minor.yy438;
}
#line 3335 "sql.c"
yymsp[-1].minor.yy438 = yylhsminor.yy438;
break;
case 145: /* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
#line 380 "sql.y"
{
yylhsminor.yy438 = tSetCreateTableInfo(yymsp[-1].minor.yy421, NULL, NULL, TSQL_CREATE_TABLE);
setSqlInfo(pInfo, yylhsminor.yy438, NULL, TSDB_SQL_CREATE_TABLE);
......@@ -2984,9 +3344,11 @@ static YYACTIONTYPE yy_reduce(
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
setCreatedTableName(pInfo, &yymsp[-4].minor.yy0, &yymsp[-5].minor.yy0);
}
#line 3347 "sql.c"
yymsp[-5].minor.yy438 = yylhsminor.yy438;
break;
case 146: /* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
#line 390 "sql.y"
{
yylhsminor.yy438 = tSetCreateTableInfo(yymsp[-5].minor.yy421, yymsp[-1].minor.yy421, NULL, TSQL_CREATE_STABLE);
setSqlInfo(pInfo, yylhsminor.yy438, NULL, TSDB_SQL_CREATE_TABLE);
......@@ -2994,33 +3356,43 @@ static YYACTIONTYPE yy_reduce(
yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n;
setCreatedTableName(pInfo, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0);
}
#line 3359 "sql.c"
yymsp[-9].minor.yy438 = yylhsminor.yy438;
break;
case 147: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
#line 401 "sql.y"
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n;
yylhsminor.yy152 = createNewChildTableInfo(&yymsp[-5].minor.yy0, NULL, yymsp[-1].minor.yy421, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0);
}
#line 3369 "sql.c"
yymsp[-9].minor.yy152 = yylhsminor.yy152;
break;
case 148: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
#line 407 "sql.y"
{
yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n;
yymsp[-11].minor.yy0.n += yymsp[-10].minor.yy0.n;
yylhsminor.yy152 = createNewChildTableInfo(&yymsp[-8].minor.yy0, yymsp[-5].minor.yy421, yymsp[-1].minor.yy421, &yymsp[-11].minor.yy0, &yymsp[-12].minor.yy0);
}
#line 3379 "sql.c"
yymsp[-12].minor.yy152 = yylhsminor.yy152;
break;
case 149: /* tagNamelist ::= tagNamelist COMMA ids */
#line 415 "sql.y"
{taosArrayPush(yymsp[-2].minor.yy421, &yymsp[0].minor.yy0); yylhsminor.yy421 = yymsp[-2].minor.yy421; }
#line 3385 "sql.c"
yymsp[-2].minor.yy421 = yylhsminor.yy421;
break;
case 150: /* tagNamelist ::= ids */
#line 416 "sql.y"
{yylhsminor.yy421 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy421, &yymsp[0].minor.yy0);}
#line 3391 "sql.c"
yymsp[0].minor.yy421 = yylhsminor.yy421;
break;
case 151: /* create_table_args ::= ifnotexists ids cpxName AS select */
#line 420 "sql.y"
{
yylhsminor.yy438 = tSetCreateTableInfo(NULL, NULL, yymsp[0].minor.yy56, TSQL_CREATE_STREAM);
setSqlInfo(pInfo, yylhsminor.yy438, NULL, TSDB_SQL_CREATE_TABLE);
......@@ -3028,186 +3400,266 @@ static YYACTIONTYPE yy_reduce(
yymsp[-3].minor.yy0.n += yymsp[-2].minor.yy0.n;
setCreatedTableName(pInfo, &yymsp[-3].minor.yy0, &yymsp[-4].minor.yy0);
}
#line 3403 "sql.c"
yymsp[-4].minor.yy438 = yylhsminor.yy438;
break;
case 152: /* columnlist ::= columnlist COMMA column */
#line 431 "sql.y"
{taosArrayPush(yymsp[-2].minor.yy421, &yymsp[0].minor.yy183); yylhsminor.yy421 = yymsp[-2].minor.yy421; }
#line 3409 "sql.c"
yymsp[-2].minor.yy421 = yylhsminor.yy421;
break;
case 153: /* columnlist ::= column */
#line 432 "sql.y"
{yylhsminor.yy421 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy421, &yymsp[0].minor.yy183);}
#line 3415 "sql.c"
yymsp[0].minor.yy421 = yylhsminor.yy421;
break;
case 154: /* column ::= ids typename */
#line 436 "sql.y"
{
tSetColumnInfo(&yylhsminor.yy183, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy183);
}
#line 3423 "sql.c"
yymsp[-1].minor.yy183 = yylhsminor.yy183;
break;
case 161: /* tagitem ::= NULL */
#line 451 "sql.y"
{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy430, &yymsp[0].minor.yy0); }
#line 3429 "sql.c"
yymsp[0].minor.yy430 = yylhsminor.yy430;
break;
case 162: /* tagitem ::= NOW */
#line 452 "sql.y"
{ yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP; tVariantCreate(&yylhsminor.yy430, &yymsp[0].minor.yy0);}
#line 3435 "sql.c"
yymsp[0].minor.yy430 = yylhsminor.yy430;
break;
case 163: /* tagitem ::= MINUS INTEGER */
case 164: /* tagitem ::= MINUS FLOAT */ yytestcase(yyruleno==164);
case 165: /* tagitem ::= PLUS INTEGER */ yytestcase(yyruleno==165);
case 166: /* tagitem ::= PLUS FLOAT */ yytestcase(yyruleno==166);
#line 454 "sql.y"
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
yymsp[-1].minor.yy0.type = yymsp[0].minor.yy0.type;
toTSDBType(yymsp[-1].minor.yy0.type);
tVariantCreate(&yylhsminor.yy430, &yymsp[-1].minor.yy0);
}
#line 3449 "sql.c"
yymsp[-1].minor.yy430 = yylhsminor.yy430;
break;
case 167: /* select ::= SELECT selcollist from where_opt interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
#line 485 "sql.y"
{
yylhsminor.yy56 = tSetQuerySqlNode(&yymsp[-13].minor.yy0, yymsp[-12].minor.yy421, yymsp[-11].minor.yy8, yymsp[-10].minor.yy439, yymsp[-4].minor.yy421, yymsp[-2].minor.yy421, &yymsp[-9].minor.yy400, &yymsp[-7].minor.yy147, &yymsp[-6].minor.yy40, &yymsp[-8].minor.yy0, yymsp[-5].minor.yy421, &yymsp[0].minor.yy166, &yymsp[-1].minor.yy166, yymsp[-3].minor.yy439);
}
#line 3457 "sql.c"
yymsp[-13].minor.yy56 = yylhsminor.yy56;
break;
case 168: /* select ::= LP select RP */
#line 489 "sql.y"
{yymsp[-2].minor.yy56 = yymsp[-1].minor.yy56;}
#line 3463 "sql.c"
break;
case 169: /* union ::= select */
#line 493 "sql.y"
{ yylhsminor.yy421 = setSubclause(NULL, yymsp[0].minor.yy56); }
#line 3468 "sql.c"
yymsp[0].minor.yy421 = yylhsminor.yy421;
break;
case 170: /* union ::= union UNION ALL select */
#line 494 "sql.y"
{ yylhsminor.yy421 = appendSelectClause(yymsp[-3].minor.yy421, yymsp[0].minor.yy56); }
#line 3474 "sql.c"
yymsp[-3].minor.yy421 = yylhsminor.yy421;
break;
case 171: /* cmd ::= union */
#line 496 "sql.y"
{ setSqlInfo(pInfo, yymsp[0].minor.yy421, NULL, TSDB_SQL_SELECT); }
#line 3480 "sql.c"
break;
case 172: /* select ::= SELECT selcollist */
#line 503 "sql.y"
{
yylhsminor.yy56 = tSetQuerySqlNode(&yymsp[-1].minor.yy0, yymsp[0].minor.yy421, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
#line 3487 "sql.c"
yymsp[-1].minor.yy56 = yylhsminor.yy56;
break;
case 173: /* sclp ::= selcollist COMMA */
#line 515 "sql.y"
{yylhsminor.yy421 = yymsp[-1].minor.yy421;}
#line 3493 "sql.c"
yymsp[-1].minor.yy421 = yylhsminor.yy421;
break;
case 174: /* sclp ::= */
case 206: /* orderby_opt ::= */ yytestcase(yyruleno==206);
#line 516 "sql.y"
{yymsp[1].minor.yy421 = 0;}
#line 3500 "sql.c"
break;
case 175: /* selcollist ::= sclp distinct expr as */
#line 517 "sql.y"
{
yylhsminor.yy421 = tSqlExprListAppend(yymsp[-3].minor.yy421, yymsp[-1].minor.yy439, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0);
}
#line 3507 "sql.c"
yymsp[-3].minor.yy421 = yylhsminor.yy421;
break;
case 176: /* selcollist ::= sclp STAR */
#line 521 "sql.y"
{
tSqlExpr *pNode = tSqlExprCreateIdValue(NULL, TK_ALL);
tSqlExpr *pNode = tSqlExprCreateIdValue(pInfo, NULL, TK_ALL);
yylhsminor.yy421 = tSqlExprListAppend(yymsp[-1].minor.yy421, pNode, 0, 0);
}
#line 3516 "sql.c"
yymsp[-1].minor.yy421 = yylhsminor.yy421;
break;
case 177: /* as ::= AS ids */
#line 529 "sql.y"
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
#line 3522 "sql.c"
break;
case 178: /* as ::= ids */
#line 530 "sql.y"
{ yylhsminor.yy0 = yymsp[0].minor.yy0; }
#line 3527 "sql.c"
yymsp[0].minor.yy0 = yylhsminor.yy0;
break;
case 179: /* as ::= */
#line 531 "sql.y"
{ yymsp[1].minor.yy0.n = 0; }
#line 3533 "sql.c"
break;
case 180: /* distinct ::= DISTINCT */
#line 534 "sql.y"
{ yylhsminor.yy0 = yymsp[0].minor.yy0; }
#line 3538 "sql.c"
yymsp[0].minor.yy0 = yylhsminor.yy0;
break;
case 182: /* from ::= FROM tablelist */
case 183: /* from ::= FROM sub */ yytestcase(yyruleno==183);
#line 540 "sql.y"
{yymsp[-1].minor.yy8 = yymsp[0].minor.yy8;}
#line 3545 "sql.c"
break;
case 184: /* sub ::= LP union RP */
#line 545 "sql.y"
{yymsp[-2].minor.yy8 = addSubqueryElem(NULL, yymsp[-1].minor.yy421, NULL);}
#line 3550 "sql.c"
break;
case 185: /* sub ::= LP union RP ids */
#line 546 "sql.y"
{yymsp[-3].minor.yy8 = addSubqueryElem(NULL, yymsp[-2].minor.yy421, &yymsp[0].minor.yy0);}
#line 3555 "sql.c"
break;
case 186: /* sub ::= sub COMMA LP union RP ids */
#line 547 "sql.y"
{yylhsminor.yy8 = addSubqueryElem(yymsp[-5].minor.yy8, yymsp[-2].minor.yy421, &yymsp[0].minor.yy0);}
#line 3560 "sql.c"
yymsp[-5].minor.yy8 = yylhsminor.yy8;
break;
case 187: /* tablelist ::= ids cpxName */
#line 551 "sql.y"
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
yylhsminor.yy8 = setTableNameList(NULL, &yymsp[-1].minor.yy0, NULL);
}
#line 3569 "sql.c"
yymsp[-1].minor.yy8 = yylhsminor.yy8;
break;
case 188: /* tablelist ::= ids cpxName ids */
#line 556 "sql.y"
{
yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n;
yylhsminor.yy8 = setTableNameList(NULL, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
}
#line 3578 "sql.c"
yymsp[-2].minor.yy8 = yylhsminor.yy8;
break;
case 189: /* tablelist ::= tablelist COMMA ids cpxName */
#line 561 "sql.y"
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
yylhsminor.yy8 = setTableNameList(yymsp[-3].minor.yy8, &yymsp[-1].minor.yy0, NULL);
}
#line 3587 "sql.c"
yymsp[-3].minor.yy8 = yylhsminor.yy8;
break;
case 190: /* tablelist ::= tablelist COMMA ids cpxName ids */
#line 566 "sql.y"
{
yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n;
yylhsminor.yy8 = setTableNameList(yymsp[-4].minor.yy8, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
}
#line 3596 "sql.c"
yymsp[-4].minor.yy8 = yylhsminor.yy8;
break;
case 191: /* tmvar ::= VARIABLE */
#line 573 "sql.y"
{yylhsminor.yy0 = yymsp[0].minor.yy0;}
#line 3602 "sql.c"
yymsp[0].minor.yy0 = yylhsminor.yy0;
break;
case 192: /* interval_option ::= intervalKey LP tmvar RP */
#line 576 "sql.y"
{yylhsminor.yy400.interval = yymsp[-1].minor.yy0; yylhsminor.yy400.offset.n = 0; yylhsminor.yy400.token = yymsp[-3].minor.yy104;}
#line 3608 "sql.c"
yymsp[-3].minor.yy400 = yylhsminor.yy400;
break;
case 193: /* interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
#line 577 "sql.y"
{yylhsminor.yy400.interval = yymsp[-3].minor.yy0; yylhsminor.yy400.offset = yymsp[-1].minor.yy0; yylhsminor.yy400.token = yymsp[-5].minor.yy104;}
#line 3614 "sql.c"
yymsp[-5].minor.yy400 = yylhsminor.yy400;
break;
case 194: /* interval_option ::= */
#line 578 "sql.y"
{memset(&yymsp[1].minor.yy400, 0, sizeof(yymsp[1].minor.yy400));}
#line 3620 "sql.c"
break;
case 195: /* intervalKey ::= INTERVAL */
#line 581 "sql.y"
{yymsp[0].minor.yy104 = TK_INTERVAL;}
#line 3625 "sql.c"
break;
case 196: /* intervalKey ::= EVERY */
#line 582 "sql.y"
{yymsp[0].minor.yy104 = TK_EVERY; }
#line 3630 "sql.c"
break;
case 197: /* session_option ::= */
#line 585 "sql.y"
{yymsp[1].minor.yy147.col.n = 0; yymsp[1].minor.yy147.gap.n = 0;}
#line 3635 "sql.c"
break;
case 198: /* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
#line 586 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
yymsp[-6].minor.yy147.col = yymsp[-4].minor.yy0;
yymsp[-6].minor.yy147.gap = yymsp[-1].minor.yy0;
}
#line 3644 "sql.c"
break;
case 199: /* windowstate_option ::= */
#line 593 "sql.y"
{ yymsp[1].minor.yy40.col.n = 0; yymsp[1].minor.yy40.col.z = NULL;}
#line 3649 "sql.c"
break;
case 200: /* windowstate_option ::= STATE_WINDOW LP ids RP */
#line 594 "sql.y"
{ yymsp[-3].minor.yy40.col = yymsp[-1].minor.yy0; }
#line 3654 "sql.c"
break;
case 201: /* fill_opt ::= */
#line 598 "sql.y"
{ yymsp[1].minor.yy421 = 0; }
#line 3659 "sql.c"
break;
case 202: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
#line 599 "sql.y"
{
tVariant A = {0};
toTSDBType(yymsp[-3].minor.yy0.type);
......@@ -3216,272 +3668,402 @@ static YYACTIONTYPE yy_reduce(
tVariantListInsert(yymsp[-1].minor.yy421, &A, -1, 0);
yymsp[-5].minor.yy421 = yymsp[-1].minor.yy421;
}
#line 3671 "sql.c"
break;
case 203: /* fill_opt ::= FILL LP ID RP */
#line 608 "sql.y"
{
toTSDBType(yymsp[-1].minor.yy0.type);
yymsp[-3].minor.yy421 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1);
}
#line 3679 "sql.c"
break;
case 204: /* sliding_opt ::= SLIDING LP tmvar RP */
#line 614 "sql.y"
{yymsp[-3].minor.yy0 = yymsp[-1].minor.yy0; }
#line 3684 "sql.c"
break;
case 205: /* sliding_opt ::= */
#line 615 "sql.y"
{yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = NULL; yymsp[1].minor.yy0.type = 0; }
#line 3689 "sql.c"
break;
case 207: /* orderby_opt ::= ORDER BY sortlist */
#line 627 "sql.y"
{yymsp[-2].minor.yy421 = yymsp[0].minor.yy421;}
#line 3694 "sql.c"
break;
case 208: /* sortlist ::= sortlist COMMA item sortorder */
#line 629 "sql.y"
{
yylhsminor.yy421 = tVariantListAppend(yymsp[-3].minor.yy421, &yymsp[-1].minor.yy430, yymsp[0].minor.yy96);
}
#line 3701 "sql.c"
yymsp[-3].minor.yy421 = yylhsminor.yy421;
break;
case 209: /* sortlist ::= item sortorder */
#line 633 "sql.y"
{
yylhsminor.yy421 = tVariantListAppend(NULL, &yymsp[-1].minor.yy430, yymsp[0].minor.yy96);
}
#line 3709 "sql.c"
yymsp[-1].minor.yy421 = yylhsminor.yy421;
break;
case 210: /* item ::= ids cpxName */
#line 638 "sql.y"
{
toTSDBType(yymsp[-1].minor.yy0.type);
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
tVariantCreate(&yylhsminor.yy430, &yymsp[-1].minor.yy0);
}
#line 3720 "sql.c"
yymsp[-1].minor.yy430 = yylhsminor.yy430;
break;
case 211: /* sortorder ::= ASC */
#line 646 "sql.y"
{ yymsp[0].minor.yy96 = TSDB_ORDER_ASC; }
#line 3726 "sql.c"
break;
case 212: /* sortorder ::= DESC */
#line 647 "sql.y"
{ yymsp[0].minor.yy96 = TSDB_ORDER_DESC;}
#line 3731 "sql.c"
break;
case 213: /* sortorder ::= */
#line 648 "sql.y"
{ yymsp[1].minor.yy96 = TSDB_ORDER_ASC; }
#line 3736 "sql.c"
break;
case 214: /* groupby_opt ::= */
#line 656 "sql.y"
{ yymsp[1].minor.yy421 = 0;}
#line 3741 "sql.c"
break;
case 215: /* groupby_opt ::= GROUP BY grouplist */
#line 657 "sql.y"
{ yymsp[-2].minor.yy421 = yymsp[0].minor.yy421;}
#line 3746 "sql.c"
break;
case 216: /* grouplist ::= grouplist COMMA item */
#line 659 "sql.y"
{
yylhsminor.yy421 = tVariantListAppend(yymsp[-2].minor.yy421, &yymsp[0].minor.yy430, -1);
}
#line 3753 "sql.c"
yymsp[-2].minor.yy421 = yylhsminor.yy421;
break;
case 217: /* grouplist ::= item */
#line 663 "sql.y"
{
yylhsminor.yy421 = tVariantListAppend(NULL, &yymsp[0].minor.yy430, -1);
}
#line 3761 "sql.c"
yymsp[0].minor.yy421 = yylhsminor.yy421;
break;
case 218: /* having_opt ::= */
case 228: /* where_opt ::= */ yytestcase(yyruleno==228);
case 272: /* expritem ::= */ yytestcase(yyruleno==272);
#line 670 "sql.y"
{yymsp[1].minor.yy439 = 0;}
#line 3769 "sql.c"
break;
case 219: /* having_opt ::= HAVING expr */
case 229: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==229);
#line 671 "sql.y"
{yymsp[-1].minor.yy439 = yymsp[0].minor.yy439;}
#line 3775 "sql.c"
break;
case 220: /* limit_opt ::= */
case 224: /* slimit_opt ::= */ yytestcase(yyruleno==224);
#line 675 "sql.y"
{yymsp[1].minor.yy166.limit = -1; yymsp[1].minor.yy166.offset = 0;}
#line 3781 "sql.c"
break;
case 221: /* limit_opt ::= LIMIT signed */
case 225: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==225);
#line 676 "sql.y"
{yymsp[-1].minor.yy166.limit = yymsp[0].minor.yy325; yymsp[-1].minor.yy166.offset = 0;}
#line 3787 "sql.c"
break;
case 222: /* limit_opt ::= LIMIT signed OFFSET signed */
#line 678 "sql.y"
{ yymsp[-3].minor.yy166.limit = yymsp[-2].minor.yy325; yymsp[-3].minor.yy166.offset = yymsp[0].minor.yy325;}
#line 3792 "sql.c"
break;
case 223: /* limit_opt ::= LIMIT signed COMMA signed */
#line 680 "sql.y"
{ yymsp[-3].minor.yy166.limit = yymsp[0].minor.yy325; yymsp[-3].minor.yy166.offset = yymsp[-2].minor.yy325;}
#line 3797 "sql.c"
break;
case 226: /* slimit_opt ::= SLIMIT signed SOFFSET signed */
#line 686 "sql.y"
{yymsp[-3].minor.yy166.limit = yymsp[-2].minor.yy325; yymsp[-3].minor.yy166.offset = yymsp[0].minor.yy325;}
#line 3802 "sql.c"
break;
case 227: /* slimit_opt ::= SLIMIT signed COMMA signed */
#line 688 "sql.y"
{yymsp[-3].minor.yy166.limit = yymsp[0].minor.yy325; yymsp[-3].minor.yy166.offset = yymsp[-2].minor.yy325;}
#line 3807 "sql.c"
break;
case 230: /* expr ::= LP expr RP */
#line 701 "sql.y"
{yylhsminor.yy439 = yymsp[-1].minor.yy439; yylhsminor.yy439->exprToken.z = yymsp[-2].minor.yy0.z; yylhsminor.yy439->exprToken.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);}
#line 3812 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 231: /* expr ::= ID */
{ yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_ID);}
#line 703 "sql.y"
{ yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_ID);}
#line 3818 "sql.c"
yymsp[0].minor.yy439 = yylhsminor.yy439;
break;
case 232: /* expr ::= ID DOT ID */
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[-2].minor.yy0, TK_ID);}
#line 704 "sql.y"
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID);}
#line 3824 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 233: /* expr ::= ID DOT STAR */
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[-2].minor.yy0, TK_ALL);}
#line 705 "sql.y"
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ALL);}
#line 3830 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 234: /* expr ::= INTEGER */
{ yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_INTEGER);}
#line 707 "sql.y"
{ yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_INTEGER);}
#line 3836 "sql.c"
yymsp[0].minor.yy439 = yylhsminor.yy439;
break;
case 235: /* expr ::= MINUS INTEGER */
case 236: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==236);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[-1].minor.yy0, TK_INTEGER);}
#line 708 "sql.y"
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_INTEGER);}
#line 3843 "sql.c"
yymsp[-1].minor.yy439 = yylhsminor.yy439;
break;
case 237: /* expr ::= FLOAT */
{ yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_FLOAT);}
#line 710 "sql.y"
{ yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_FLOAT);}
#line 3849 "sql.c"
yymsp[0].minor.yy439 = yylhsminor.yy439;
break;
case 238: /* expr ::= MINUS FLOAT */
case 239: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==239);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[-1].minor.yy0, TK_FLOAT);}
#line 711 "sql.y"
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_FLOAT);}
#line 3856 "sql.c"
yymsp[-1].minor.yy439 = yylhsminor.yy439;
break;
case 240: /* expr ::= STRING */
{ yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_STRING);}
#line 713 "sql.y"
{ yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING);}
#line 3862 "sql.c"
yymsp[0].minor.yy439 = yylhsminor.yy439;
break;
case 241: /* expr ::= NOW */
{ yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_NOW); }
#line 714 "sql.y"
{ yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NOW); }
#line 3868 "sql.c"
yymsp[0].minor.yy439 = yylhsminor.yy439;
break;
case 242: /* expr ::= VARIABLE */
{ yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_VARIABLE);}
#line 715 "sql.y"
{ yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_VARIABLE);}
#line 3874 "sql.c"
yymsp[0].minor.yy439 = yylhsminor.yy439;
break;
case 243: /* expr ::= PLUS VARIABLE */
case 244: /* expr ::= MINUS VARIABLE */ yytestcase(yyruleno==244);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_VARIABLE; yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[-1].minor.yy0, TK_VARIABLE);}
#line 716 "sql.y"
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_VARIABLE; yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_VARIABLE);}
#line 3881 "sql.c"
yymsp[-1].minor.yy439 = yylhsminor.yy439;
break;
case 245: /* expr ::= BOOL */
{ yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_BOOL);}
#line 718 "sql.y"
{ yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_BOOL);}
#line 3887 "sql.c"
yymsp[0].minor.yy439 = yylhsminor.yy439;
break;
case 246: /* expr ::= NULL */
{ yylhsminor.yy439 = tSqlExprCreateIdValue(&yymsp[0].minor.yy0, TK_NULL);}
#line 719 "sql.y"
{ yylhsminor.yy439 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NULL);}
#line 3893 "sql.c"
yymsp[0].minor.yy439 = yylhsminor.yy439;
break;
case 247: /* expr ::= ID LP exprlist RP */
#line 722 "sql.y"
{ tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy439 = tSqlExprCreateFunction(yymsp[-1].minor.yy421, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); }
#line 3899 "sql.c"
yymsp[-3].minor.yy439 = yylhsminor.yy439;
break;
case 248: /* expr ::= ID LP STAR RP */
#line 725 "sql.y"
{ tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy439 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); }
#line 3905 "sql.c"
yymsp[-3].minor.yy439 = yylhsminor.yy439;
break;
case 249: /* expr ::= expr IS NULL */
#line 728 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, NULL, TK_ISNULL);}
#line 3911 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 250: /* expr ::= expr IS NOT NULL */
#line 729 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-3].minor.yy439, NULL, TK_NOTNULL);}
#line 3917 "sql.c"
yymsp[-3].minor.yy439 = yylhsminor.yy439;
break;
case 251: /* expr ::= expr LT expr */
#line 732 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_LT);}
#line 3923 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 252: /* expr ::= expr GT expr */
#line 733 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_GT);}
#line 3929 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 253: /* expr ::= expr LE expr */
#line 734 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_LE);}
#line 3935 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 254: /* expr ::= expr GE expr */
#line 735 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_GE);}
#line 3941 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 255: /* expr ::= expr NE expr */
#line 736 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_NE);}
#line 3947 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 256: /* expr ::= expr EQ expr */
#line 737 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_EQ);}
#line 3953 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 257: /* expr ::= expr BETWEEN expr AND expr */
#line 739 "sql.y"
{ tSqlExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy439); yylhsminor.yy439 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy439, yymsp[-2].minor.yy439, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy439, TK_LE), TK_AND);}
#line 3959 "sql.c"
yymsp[-4].minor.yy439 = yylhsminor.yy439;
break;
case 258: /* expr ::= expr AND expr */
#line 741 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_AND);}
#line 3965 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 259: /* expr ::= expr OR expr */
#line 742 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_OR); }
#line 3971 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 260: /* expr ::= expr PLUS expr */
#line 745 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_PLUS); }
#line 3977 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 261: /* expr ::= expr MINUS expr */
#line 746 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_MINUS); }
#line 3983 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 262: /* expr ::= expr STAR expr */
#line 747 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_STAR); }
#line 3989 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 263: /* expr ::= expr SLASH expr */
#line 748 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_DIVIDE);}
#line 3995 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 264: /* expr ::= expr REM expr */
#line 749 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_REM); }
#line 4001 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 265: /* expr ::= expr LIKE expr */
#line 752 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_LIKE); }
#line 4007 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 266: /* expr ::= expr MATCH expr */
#line 755 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_MATCH); }
#line 4013 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 267: /* expr ::= expr NMATCH expr */
#line 756 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-2].minor.yy439, yymsp[0].minor.yy439, TK_NMATCH); }
#line 4019 "sql.c"
yymsp[-2].minor.yy439 = yylhsminor.yy439;
break;
case 268: /* expr ::= expr IN LP exprlist RP */
#line 759 "sql.y"
{yylhsminor.yy439 = tSqlExprCreate(yymsp[-4].minor.yy439, (tSqlExpr*)yymsp[-1].minor.yy421, TK_IN); }
#line 4025 "sql.c"
yymsp[-4].minor.yy439 = yylhsminor.yy439;
break;
case 269: /* exprlist ::= exprlist COMMA expritem */
#line 767 "sql.y"
{yylhsminor.yy421 = tSqlExprListAppend(yymsp[-2].minor.yy421,yymsp[0].minor.yy439,0, 0);}
#line 4031 "sql.c"
yymsp[-2].minor.yy421 = yylhsminor.yy421;
break;
case 270: /* exprlist ::= expritem */
#line 768 "sql.y"
{yylhsminor.yy421 = tSqlExprListAppend(0,yymsp[0].minor.yy439,0, 0);}
#line 4037 "sql.c"
yymsp[0].minor.yy421 = yylhsminor.yy421;
break;
case 271: /* expritem ::= expr */
#line 769 "sql.y"
{yylhsminor.yy439 = yymsp[0].minor.yy439;}
#line 4043 "sql.c"
yymsp[0].minor.yy439 = yylhsminor.yy439;
break;
case 273: /* cmd ::= RESET QUERY CACHE */
#line 773 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_RESET_CACHE, 0);}
#line 4049 "sql.c"
break;
case 274: /* cmd ::= SYNCDB ids REPLICA */
#line 776 "sql.y"
{ setDCLSqlElems(pInfo, TSDB_SQL_SYNC_DB_REPLICA, 1, &yymsp[-1].minor.yy0);}
#line 4054 "sql.c"
break;
case 275: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
#line 779 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy421, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4063 "sql.c"
break;
case 276: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
#line 785 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3491,22 +4073,28 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, NULL, K, TSDB_ALTER_TABLE_DROP_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4076 "sql.c"
break;
case 277: /* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
#line 795 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy421, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4085 "sql.c"
break;
case 278: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
#line 802 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy421, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4094 "sql.c"
break;
case 279: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
#line 807 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3516,8 +4104,10 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, NULL, A, TSDB_ALTER_TABLE_DROP_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4107 "sql.c"
break;
case 280: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
#line 817 "sql.y"
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
......@@ -3530,8 +4120,10 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-5].minor.yy0, NULL, A, TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4123 "sql.c"
break;
case 281: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
#line 830 "sql.y"
{
yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n;
......@@ -3542,22 +4134,28 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-6].minor.yy0, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4137 "sql.c"
break;
case 282: /* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
#line 841 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy421, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4146 "sql.c"
break;
case 283: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
#line 848 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy421, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4155 "sql.c"
break;
case 284: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
#line 854 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3567,22 +4165,28 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, NULL, K, TSDB_ALTER_TABLE_DROP_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4168 "sql.c"
break;
case 285: /* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
#line 864 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy421, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4177 "sql.c"
break;
case 286: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
#line 871 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy421, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4186 "sql.c"
break;
case 287: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
#line 876 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3592,8 +4196,10 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, NULL, A, TSDB_ALTER_TABLE_DROP_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4199 "sql.c"
break;
case 288: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
#line 886 "sql.y"
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
......@@ -3606,8 +4212,10 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-5].minor.yy0, NULL, A, TSDB_ALTER_TABLE_CHANGE_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4215 "sql.c"
break;
case 289: /* cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
#line 899 "sql.y"
{
yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n;
......@@ -3618,22 +4226,31 @@ static YYACTIONTYPE yy_reduce(
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-6].minor.yy0, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4229 "sql.c"
break;
case 290: /* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
#line 910 "sql.y"
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy421, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
#line 4238 "sql.c"
break;
case 291: /* cmd ::= KILL CONNECTION INTEGER */
#line 917 "sql.y"
{setKillSql(pInfo, TSDB_SQL_KILL_CONNECTION, &yymsp[0].minor.yy0);}
#line 4243 "sql.c"
break;
case 292: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */
#line 918 "sql.y"
{yymsp[-2].minor.yy0.n += (yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setKillSql(pInfo, TSDB_SQL_KILL_STREAM, &yymsp[-2].minor.yy0);}
#line 4248 "sql.c"
break;
case 293: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */
#line 919 "sql.y"
{yymsp[-2].minor.yy0.n += (yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setKillSql(pInfo, TSDB_SQL_KILL_QUERY, &yymsp[-2].minor.yy0);}
#line 4253 "sql.c"
break;
default:
break;
......@@ -3695,6 +4312,7 @@ static void yy_syntax_error(
ParseCTX_FETCH
#define TOKEN yyminor
/************ Begin %syntax_error code ****************************************/
#line 37 "sql.y"
pInfo->valid = false;
int32_t outputBufLen = tListLen(pInfo->msg);
......@@ -3717,6 +4335,7 @@ static void yy_syntax_error(
}
assert(len <= outputBufLen);
#line 4338 "sql.c"
/************ End %syntax_error code ******************************************/
ParseARG_STORE /* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
......@@ -3742,7 +4361,8 @@ static void yy_accept(
/* Here code is inserted which will be executed whenever the
** parser accepts */
/*********** Begin %parse_accept code *****************************************/
#line 61 "sql.y"
#line 4365 "sql.c"
/*********** End %parse_accept code *******************************************/
ParseARG_STORE /* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
......@@ -3803,12 +4423,56 @@ void Parse(
}
#endif
do{
while(1){ /* Exit by "break" */
assert( yypParser->yytos>=yypParser->yystack );
assert( yyact==yypParser->yytos->stateno );
yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact);
if( yyact >= YY_MIN_REDUCE ){
yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,
yyminor ParseCTX_PARAM);
unsigned int yyruleno = yyact - YY_MIN_REDUCE; /* Reduce by this rule */
assert( yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) );
#ifndef NDEBUG
if( yyTraceFILE ){
int yysize = yyRuleInfoNRhs[yyruleno];
if( yysize ){
fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
yyTracePrompt,
yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action",
yypParser->yytos[yysize].stateno);
}else{
fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n",
yyTracePrompt, yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action");
}
}
#endif /* NDEBUG */
/* Check that the stack is large enough to grow by a single entry
** if the RHS of the rule is empty. This ensures that there is room
** enough on the stack to push the LHS value */
if( yyRuleInfoNRhs[yyruleno]==0 ){
#ifdef YYTRACKMAXSTACKDEPTH
if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
yypParser->yyhwm++;
assert( yypParser->yyhwm ==
(int)(yypParser->yytos - yypParser->yystack));
}
#endif
#if YYSTACKDEPTH>0
if( yypParser->yytos>=yypParser->yystackEnd ){
yyStackOverflow(yypParser);
break;
}
#else
if( yypParser->yytos>=&yypParser->yystack[yypParser->yystksz-1] ){
if( yyGrowStack(yypParser) ){
yyStackOverflow(yypParser);
break;
}
}
#endif
}
yyact = yy_reduce(yypParser,yyruleno,yymajor,yyminor ParseCTX_PARAM);
}else if( yyact <= YY_MAX_SHIFTREDUCE ){
yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor);
#ifndef YYNOERRORRECOVERY
......@@ -3864,14 +4528,13 @@ void Parse(
yy_destructor(yypParser, (YYCODETYPE)yymajor, &yyminorunion);
yymajor = YYNOCODE;
}else{
while( yypParser->yytos >= yypParser->yystack
&& (yyact = yy_find_reduce_action(
yypParser->yytos->stateno,
YYERRORSYMBOL)) > YY_MAX_SHIFTREDUCE
){
while( yypParser->yytos > yypParser->yystack ){
yyact = yy_find_reduce_action(yypParser->yytos->stateno,
YYERRORSYMBOL);
if( yyact<=YY_MAX_SHIFTREDUCE ) break;
yy_pop_parser_stack(yypParser);
}
if( yypParser->yytos < yypParser->yystack || yymajor==0 ){
if( yypParser->yytos <= yypParser->yystack || yymajor==0 ){
yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
yy_parse_failed(yypParser);
#ifndef YYNOERRORRECOVERY
......@@ -3921,7 +4584,7 @@ void Parse(
break;
#endif
}
}while( yypParser->yytos>yypParser->yystack );
}
#ifndef NDEBUG
if( yyTraceFILE ){
yyStackEntry *i;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册