Fix the bug when the stream calculation error occurs

This commit is contained in:
slguan 2019-07-16 10:36:20 +08:00
parent 76ac9464d5
commit 66791ff39f
4 changed files with 338 additions and 343 deletions

View File

@ -423,7 +423,7 @@ void *tscProcessMsgFromServer(char *msg, void *ahandle, void *thandle) {
return ahandle;
}
static SSqlObj *tscCreateSqlObjForSubquery(SSqlObj *pSql, SRetrieveSupport *trsupport);
static SSqlObj* tscCreateSqlObjForSubquery(SSqlObj *pSql, SRetrieveSupport *trsupport, SSqlObj* pOld);
static int tscLaunchMetricSubQueries(SSqlObj *pSql);
int tscProcessSql(SSqlObj *pSql) {
@ -595,8 +595,9 @@ int tscLaunchMetricSubQueries(SSqlObj *pSql) {
pthread_mutex_init(&trs->queryMutex, &mutexattr);
pthread_mutexattr_destroy(&mutexattr);
SSqlObj *pNew = tscCreateSqlObjForSubquery(pSql, trs);
SSqlObj *pNew = tscCreateSqlObjForSubquery(pSql, trs, NULL);
tscTrace("%p sub:%p launch subquery.orderOfSub:%d", pSql, pNew, pNew->cmd.vnodeIdx);
tscProcessSql(pNew);
}
@ -656,6 +657,7 @@ static void tscHandleSubRetrievalError(SRetrieveSupport *trsupport, SSqlObj *pSq
tscError("%p sub:%p abort further retrieval due to other queries failure,orderOfSub:%d,code:%d",
pPObj, pSql, idx, *trsupport->code);
} else {
if (trsupport->numOfRetry++ < MAX_NUM_OF_SUBQUERY_RETRY && *(trsupport->code) == TSDB_CODE_SUCCESS) {
/*
* current query failed, and the retry count is less than the available count,
@ -665,12 +667,11 @@ static void tscHandleSubRetrievalError(SRetrieveSupport *trsupport, SSqlObj *pSq
// clear local saved number of results
trsupport->localBuffer->numOfElems = 0;
pthread_mutex_unlock(&trsupport->queryMutex);
SSqlObj *pNew = tscCreateSqlObjForSubquery(trsupport->pParentSqlObj, trsupport);
SSqlObj *pNew = tscCreateSqlObjForSubquery(trsupport->pParentSqlObj, trsupport, pSql);
tscTrace("%p sub:%p retrieve failed, code:%d, orderOfSub:%d, retry:%d, new SqlObj:%p",
trsupport->pParentSqlObj, pSql, numOfRows, idx, trsupport->numOfRetry, pNew);
trsupport->pParentSqlObj, pSql, numOfRows, idx, trsupport->numOfRetry, pNew);
tscProcessSql(pNew);
return;
@ -680,6 +681,7 @@ static void tscHandleSubRetrievalError(SRetrieveSupport *trsupport, SSqlObj *pSq
tscError("%p sub:%p retrieve failed,code:%d,orderOfSub:%d failed.no more retry,set global code:%d",
pPObj, pSql, numOfRows, idx, *trsupport->code);
}
}
if (__sync_add_and_fetch_32(trsupport->numOfFinished, 1) < trsupport->numOfVnodes) {
@ -867,10 +869,15 @@ void tscKillMetricQuery(SSqlObj *pSql) {
tscTrace("%p metric query is cancelled", pSql);
}
static SSqlObj *tscCreateSqlObjForSubquery(SSqlObj *pSql, SRetrieveSupport *trsupport) {
static SSqlObj* tscCreateSqlObjForSubquery(SSqlObj *pSql, SRetrieveSupport *trsupport,
SSqlObj* prevSqlObj) {
SSqlCmd *pCmd = &pSql->cmd;
SSqlObj *pNew = (SSqlObj *)calloc(1, sizeof(SSqlObj));
if (pNew == NULL) {
return NULL;
}
pSql->pSubs[trsupport->vnodeIdx - 1] = pNew;
pNew->pTscObj = pSql->pTscObj;
@ -894,14 +901,22 @@ static SSqlObj *tscCreateSqlObjForSubquery(SSqlObj *pSql, SRetrieveSupport *trsu
pNew->param = trsupport;
pNew->cmd.vnodeIdx = trsupport->vnodeIdx;
char key[TSDB_MAX_TAGS_LEN + 1] = {0};
tscGetMetricMetaCacheKey(&pNew->cmd, key);
pNew->cmd.pMetricMeta = taosGetDataFromCache(tscCacheHandle, key);
pNew->cmd.pMeterMeta = taosGetDataFromCache(tscCacheHandle, pCmd->name);
if (prevSqlObj == NULL) {
char key[TSDB_MAX_TAGS_LEN + 1] = {0};
tscGetMetricMetaCacheKey(&pNew->cmd, key);
pNew->cmd.pMetricMeta = taosGetDataFromCache(tscCacheHandle, key);
pNew->cmd.pMeterMeta = taosGetDataFromCache(tscCacheHandle, pCmd->name);
} else {
pNew->cmd.pMeterMeta = prevSqlObj->cmd.pMeterMeta;
pNew->cmd.pMetricMeta = prevSqlObj->cmd.pMetricMeta;
prevSqlObj->cmd.pMetricMeta = NULL;
prevSqlObj->cmd.pMeterMeta = NULL;
}
assert(pNew->cmd.pMeterMeta != NULL && pNew->cmd.pMetricMeta != NULL);
return pNew;
}
void tscRetrieveDataRes(void *param, TAOS_RES *tres, int retCode) {
@ -938,7 +953,7 @@ void tscRetrieveDataRes(void *param, TAOS_RES *tres, int retCode) {
tscTrace("%p sub:%p reach the max retry count,set global code:%d", trsupport->pParentSqlObj, pSql, retCode);
__sync_val_compare_and_swap_32(trsupport->code, 0, retCode);
} else { // does not reach the maximum retry count, go on
SSqlObj *pNew = tscCreateSqlObjForSubquery(trsupport->pParentSqlObj, trsupport);
SSqlObj *pNew = tscCreateSqlObjForSubquery(trsupport->pParentSqlObj, trsupport, pSql);
tscTrace("%p sub:%p failed code:%d, retry:%d, new SqlObj:%p", trsupport->pParentSqlObj, pSql, retCode,
trsupport->numOfRetry, pNew);
@ -2731,10 +2746,7 @@ static int32_t tscDoGetMeterMeta(SSqlObj *pSql, char *meterId) {
pNew->fp = tscMeterMetaCallBack;
pNew->param = pSql;
int32_t len = strlen(pSql->sqlstr);
pNew->sqlstr = malloc(len + 1);
strcpy(pNew->sqlstr, pSql->sqlstr);
pNew->sqlstr[len] = 0;
pNew->sqlstr = strdup(pSql->sqlstr);
code = tscProcessSql(pNew);
if (code == TSDB_CODE_SUCCESS) {

View File

@ -196,8 +196,8 @@ typename(A) ::= ids(X) LP signed(Y) RP. {
tSQLSetColumnType(&A, &X);
}
%type signed {int}
signed(A) ::= INTEGER(X). { A = atoi(X.z); }
%type signed {int64_t}
signed(A) ::= INTEGER(X). { A = strtol(X.z, NULL, 10); }
signed(A) ::= PLUS INTEGER(X). { A = strtol(X.z, NULL, 10); }
signed(A) ::= MINUS INTEGER(X). { A = -strtol(X.z, NULL, 10);}
@ -303,11 +303,6 @@ selcollist(A) ::= sclp(P) STAR. {
A = tSQLExprListAppend(P, pNode, 0);
}
selcollist(A) ::= sclp(P) ID(X) DOT STAR. {
tSQLExpr *pNode = tSQLExprIdValueCreate(NULL, TK_ALL);
A = tSQLExprListAppend(P, pNode, 0);
}
// An option "AS <id>" phrase that can follow one of the expressions that
// define the result set, or one of the tables in the FROM clause.
//

View File

@ -593,10 +593,8 @@ void *vnodeQueryInTimeRange(SMeterObj **pMetersObj, SSqlGroupbyExpr *pGroupbyExp
pQuery = &(pQInfo->query);
dTrace("qmsg:%p create QInfo:%p, QInfo created", pQueryMsg, pQInfo);
pQuery->order.order = pQueryMsg->order;
pQuery->skey = pQueryMsg->skey;
pQuery->ekey = pQueryMsg->ekey;
pQuery->lastKey = pQuery->skey;
pQInfo->fp = pQueryFunc[pQueryMsg->order];
@ -680,7 +678,6 @@ void *vnodeQueryOnMultiMeters(SMeterObj **pMetersObj, SSqlGroupbyExpr *pGroupbyE
pQuery = &(pQInfo->query);
dTrace("qmsg:%p create QInfo:%p, QInfo created", pQueryMsg, pQInfo);
pQuery->order.order = pQueryMsg->order;
pQuery->skey = pQueryMsg->skey;
pQuery->ekey = pQueryMsg->ekey;

View File

@ -101,6 +101,7 @@ typedef union {
SQuerySQL* yy24;
tSQLExprList* yy98;
tFieldList* yy151;
int64_t yy189;
tVariantList* yy216;
tVariant yy266;
SCreateTableSQL* yy278;
@ -119,16 +120,16 @@ typedef union {
#define ParseARG_FETCH SSqlInfo* pInfo = yypParser->pInfo
#define ParseARG_STORE yypParser->pInfo = pInfo
#define YYFALLBACK 1
#define YYNSTATE 220
#define YYNRULE 181
#define YY_MAX_SHIFT 219
#define YY_MIN_SHIFTREDUCE 350
#define YY_MAX_SHIFTREDUCE 530
#define YY_MIN_REDUCE 531
#define YY_MAX_REDUCE 711
#define YY_ERROR_ACTION 712
#define YY_ACCEPT_ACTION 713
#define YY_NO_ACTION 714
#define YYNSTATE 217
#define YYNRULE 180
#define YY_MAX_SHIFT 216
#define YY_MIN_SHIFTREDUCE 347
#define YY_MAX_SHIFTREDUCE 526
#define YY_MIN_REDUCE 527
#define YY_MAX_REDUCE 706
#define YY_ERROR_ACTION 707
#define YY_ACCEPT_ACTION 708
#define YY_NO_ACTION 709
/************* End control #defines *******************************************/
/* The yyzerominor constant is used to initialize instances of
@ -200,56 +201,56 @@ static const YYMINORTYPE yyzerominor = { 0 };
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (480)
#define YY_ACTTAB_COUNT (474)
static const YYACTIONTYPE yy_action[] = {
/* 0 */ 382, 31, 30, 713, 219, 29, 28, 27, 383, 68,
/* 10 */ 69, 75, 38, 40, 382, 32, 33, 214, 440, 70,
/* 20 */ 26, 54, 383, 186, 36, 34, 37, 35, 133, 218,
/* 30 */ 438, 7, 31, 30, 58, 99, 29, 28, 27, 38,
/* 40 */ 40, 434, 32, 33, 431, 10, 432, 26, 433, 115,
/* 50 */ 186, 36, 34, 37, 35, 446, 89, 142, 513, 31,
/* 60 */ 30, 113, 115, 29, 28, 27, 38, 40, 152, 32,
/* 70 */ 33, 512, 134, 154, 26, 115, 45, 186, 36, 34,
/* 80 */ 37, 35, 89, 141, 513, 112, 31, 30, 382, 53,
/* 90 */ 29, 28, 27, 46, 442, 40, 383, 32, 33, 468,
/* 100 */ 89, 181, 26, 114, 139, 186, 36, 34, 37, 35,
/* 110 */ 102, 103, 61, 481, 31, 30, 430, 149, 29, 28,
/* 120 */ 27, 20, 20, 183, 153, 55, 89, 207, 63, 430,
/* 130 */ 119, 435, 351, 352, 353, 354, 355, 356, 357, 358,
/* 140 */ 359, 360, 361, 467, 150, 151, 427, 427, 212, 32,
/* 150 */ 33, 29, 28, 27, 26, 202, 160, 186, 36, 34,
/* 160 */ 37, 35, 487, 168, 490, 165, 31, 30, 428, 56,
/* 170 */ 29, 28, 27, 17, 201, 200, 199, 198, 197, 196,
/* 180 */ 195, 194, 193, 192, 414, 509, 403, 404, 405, 406,
/* 190 */ 407, 408, 409, 410, 411, 412, 413, 146, 494, 113,
/* 200 */ 203, 485, 11, 488, 48, 491, 20, 138, 494, 418,
/* 210 */ 135, 485, 430, 488, 57, 491, 462, 463, 132, 49,
/* 220 */ 508, 20, 77, 76, 126, 23, 429, 20, 507, 143,
/* 230 */ 144, 426, 131, 185, 109, 107, 78, 210, 209, 143,
/* 240 */ 144, 146, 494, 443, 208, 485, 427, 488, 129, 491,
/* 250 */ 213, 22, 427, 517, 217, 216, 370, 24, 518, 483,
/* 260 */ 625, 453, 24, 625, 137, 42, 454, 511, 483, 174,
/* 270 */ 15, 14, 170, 143, 144, 36, 34, 37, 35, 128,
/* 280 */ 145, 495, 39, 31, 30, 14, 424, 29, 28, 27,
/* 290 */ 42, 493, 39, 130, 2, 136, 423, 486, 190, 489,
/* 300 */ 21, 493, 21, 436, 484, 437, 492, 67, 66, 527,
/* 310 */ 2, 120, 9, 8, 74, 73, 492, 121, 122, 123,
/* 320 */ 124, 125, 117, 111, 118, 116, 39, 415, 478, 445,
/* 330 */ 477, 147, 474, 473, 148, 493, 421, 211, 86, 460,
/* 340 */ 459, 100, 98, 101, 389, 191, 110, 171, 173, 206,
/* 350 */ 492, 526, 64, 525, 523, 104, 80, 105, 380, 449,
/* 360 */ 379, 175, 71, 439, 179, 377, 376, 155, 106, 47,
/* 370 */ 50, 374, 373, 372, 365, 108, 369, 367, 41, 84,
/* 380 */ 448, 184, 461, 182, 180, 90, 178, 176, 25, 22,
/* 390 */ 205, 44, 215, 188, 530, 156, 157, 159, 158, 529,
/* 400 */ 161, 51, 162, 164, 163, 127, 59, 62, 381, 375,
/* 410 */ 528, 79, 371, 166, 81, 93, 91, 425, 1, 167,
/* 420 */ 95, 92, 94, 521, 96, 97, 169, 12, 13, 172,
/* 430 */ 450, 85, 87, 140, 177, 18, 4, 455, 88, 5,
/* 440 */ 496, 3, 19, 16, 187, 6, 189, 60, 401, 400,
/* 450 */ 399, 398, 397, 396, 395, 394, 393, 42, 392, 391,
/* 460 */ 386, 21, 420, 204, 419, 417, 72, 52, 384, 363,
/* 470 */ 531, 43, 65, 533, 533, 533, 533, 82, 533, 83,
/* 0 */ 379, 31, 30, 708, 216, 29, 28, 27, 380, 68,
/* 10 */ 69, 75, 38, 40, 379, 32, 33, 211, 437, 70,
/* 20 */ 26, 54, 380, 183, 36, 34, 37, 35, 133, 215,
/* 30 */ 435, 7, 31, 30, 58, 99, 29, 28, 27, 38,
/* 40 */ 40, 431, 32, 33, 428, 10, 429, 26, 430, 115,
/* 50 */ 183, 36, 34, 37, 35, 442, 89, 139, 509, 31,
/* 60 */ 30, 113, 115, 29, 28, 27, 38, 40, 149, 32,
/* 70 */ 33, 508, 134, 151, 26, 115, 45, 183, 36, 34,
/* 80 */ 37, 35, 89, 138, 509, 112, 31, 30, 379, 53,
/* 90 */ 29, 28, 27, 46, 439, 40, 380, 32, 33, 464,
/* 100 */ 89, 178, 26, 114, 136, 183, 36, 34, 37, 35,
/* 110 */ 102, 103, 61, 477, 31, 30, 427, 146, 29, 28,
/* 120 */ 27, 20, 20, 180, 150, 55, 89, 204, 63, 427,
/* 130 */ 119, 432, 348, 349, 350, 351, 352, 353, 354, 355,
/* 140 */ 356, 357, 358, 463, 147, 148, 424, 424, 209, 32,
/* 150 */ 33, 29, 28, 27, 26, 199, 157, 183, 36, 34,
/* 160 */ 37, 35, 483, 165, 486, 162, 31, 30, 425, 56,
/* 170 */ 29, 28, 27, 17, 198, 197, 196, 195, 194, 193,
/* 180 */ 192, 191, 190, 189, 411, 505, 400, 401, 402, 403,
/* 190 */ 404, 405, 406, 407, 408, 409, 410, 143, 490, 113,
/* 200 */ 200, 481, 11, 484, 48, 487, 20, 143, 490, 415,
/* 210 */ 135, 481, 427, 484, 57, 487, 458, 459, 132, 49,
/* 220 */ 504, 20, 77, 76, 126, 23, 426, 20, 503, 140,
/* 230 */ 141, 423, 131, 182, 109, 107, 78, 207, 206, 140,
/* 240 */ 141, 143, 490, 440, 205, 481, 424, 484, 129, 487,
/* 250 */ 210, 22, 424, 513, 214, 213, 367, 24, 514, 449,
/* 260 */ 479, 450, 24, 42, 507, 15, 491, 142, 14, 171,
/* 270 */ 14, 130, 167, 140, 141, 36, 34, 37, 35, 128,
/* 280 */ 120, 421, 39, 31, 30, 42, 420, 29, 28, 27,
/* 290 */ 21, 489, 39, 482, 187, 485, 480, 2, 21, 67,
/* 300 */ 66, 489, 9, 8, 121, 433, 488, 434, 74, 73,
/* 310 */ 122, 123, 124, 125, 117, 523, 488, 111, 118, 116,
/* 320 */ 412, 474, 441, 473, 86, 98, 39, 144, 470, 469,
/* 330 */ 145, 456, 418, 208, 455, 489, 100, 101, 386, 188,
/* 340 */ 110, 203, 522, 64, 521, 519, 104, 168, 80, 105,
/* 350 */ 488, 377, 376, 71, 374, 373, 445, 152, 106, 371,
/* 360 */ 370, 170, 50, 47, 436, 369, 362, 172, 108, 176,
/* 370 */ 366, 364, 41, 181, 84, 444, 179, 457, 177, 175,
/* 380 */ 173, 25, 22, 202, 185, 90, 44, 212, 526, 153,
/* 390 */ 154, 51, 155, 156, 127, 59, 62, 525, 378, 372,
/* 400 */ 158, 79, 81, 368, 159, 422, 160, 161, 1, 96,
/* 410 */ 93, 91, 92, 94, 524, 95, 97, 163, 164, 517,
/* 420 */ 166, 12, 13, 169, 85, 446, 87, 137, 174, 4,
/* 430 */ 18, 451, 88, 5, 492, 3, 19, 16, 184, 6,
/* 440 */ 186, 60, 398, 397, 396, 395, 394, 393, 392, 391,
/* 450 */ 390, 42, 389, 388, 383, 21, 417, 201, 416, 65,
/* 460 */ 414, 52, 381, 72, 360, 43, 527, 529, 529, 529,
/* 470 */ 529, 82, 529, 83,
};
static const YYCODETYPE yy_lookahead[] = {
/* 0 */ 1, 33, 34, 187, 188, 37, 38, 39, 9, 61,
@ -277,34 +278,34 @@ static const YYCODETYPE yy_lookahead[] = {
/* 220 */ 228, 190, 64, 65, 66, 227, 209, 190, 228, 33,
/* 230 */ 34, 215, 74, 37, 61, 62, 63, 33, 34, 33,
/* 240 */ 34, 1, 2, 37, 213, 5, 215, 7, 228, 9,
/* 250 */ 213, 93, 215, 87, 57, 58, 59, 91, 87, 1,
/* 260 */ 91, 87, 91, 94, 56, 91, 87, 87, 1, 111,
/* 270 */ 91, 91, 114, 33, 34, 25, 26, 27, 28, 121,
/* 280 */ 56, 87, 86, 33, 34, 91, 87, 37, 38, 39,
/* 290 */ 91, 95, 86, 228, 86, 37, 87, 5, 87, 7,
/* 300 */ 91, 95, 91, 5, 37, 7, 110, 117, 118, 209,
/* 310 */ 86, 228, 117, 118, 67, 68, 110, 228, 228, 228,
/* 320 */ 228, 228, 228, 228, 228, 228, 86, 209, 211, 190,
/* 330 */ 211, 211, 211, 211, 211, 95, 212, 211, 190, 234,
/* 340 */ 234, 190, 217, 190, 190, 190, 190, 113, 238, 190,
/* 350 */ 110, 190, 190, 190, 190, 190, 56, 190, 190, 95,
/* 360 */ 190, 230, 190, 226, 230, 190, 190, 190, 190, 107,
/* 370 */ 105, 190, 190, 190, 190, 190, 190, 190, 104, 191,
/* 380 */ 191, 99, 191, 103, 98, 225, 97, 96, 109, 93,
/* 390 */ 72, 77, 72, 191, 5, 123, 5, 70, 123, 5,
/* 400 */ 123, 191, 5, 70, 123, 191, 194, 194, 193, 191,
/* 410 */ 5, 192, 191, 123, 192, 222, 224, 214, 195, 70,
/* 420 */ 220, 223, 221, 76, 219, 218, 115, 86, 86, 113,
/* 430 */ 87, 112, 86, 1, 86, 91, 100, 87, 86, 100,
/* 440 */ 87, 86, 91, 86, 88, 86, 88, 67, 9, 5,
/* 450 */ 5, 5, 5, 1, 5, 5, 5, 91, 5, 5,
/* 460 */ 73, 91, 5, 15, 5, 87, 70, 86, 73, 56,
/* 470 */ 0, 16, 118, 240, 240, 240, 240, 21, 240, 21,
/* 250 */ 213, 93, 215, 87, 57, 58, 59, 91, 87, 87,
/* 260 */ 1, 87, 91, 91, 87, 91, 87, 56, 91, 111,
/* 270 */ 91, 228, 114, 33, 34, 25, 26, 27, 28, 121,
/* 280 */ 228, 87, 86, 33, 34, 91, 87, 37, 38, 39,
/* 290 */ 91, 95, 86, 5, 87, 7, 37, 86, 91, 117,
/* 300 */ 118, 95, 117, 118, 228, 5, 110, 7, 67, 68,
/* 310 */ 228, 228, 228, 228, 228, 209, 110, 228, 228, 228,
/* 320 */ 209, 211, 190, 211, 190, 217, 86, 211, 211, 211,
/* 330 */ 211, 234, 212, 211, 234, 95, 190, 190, 190, 190,
/* 340 */ 190, 190, 190, 190, 190, 190, 190, 113, 56, 190,
/* 350 */ 110, 190, 190, 190, 190, 190, 95, 190, 190, 190,
/* 360 */ 190, 238, 105, 107, 226, 190, 190, 230, 190, 230,
/* 370 */ 190, 190, 104, 99, 191, 191, 103, 191, 98, 97,
/* 380 */ 96, 109, 93, 72, 191, 225, 77, 72, 5, 123,
/* 390 */ 5, 191, 123, 70, 191, 194, 194, 5, 193, 191,
/* 400 */ 123, 192, 192, 191, 5, 214, 123, 70, 195, 219,
/* 410 */ 222, 224, 223, 221, 5, 220, 218, 123, 70, 76,
/* 420 */ 115, 86, 86, 113, 112, 87, 86, 1, 86, 100,
/* 430 */ 91, 87, 86, 100, 87, 86, 91, 86, 88, 86,
/* 440 */ 88, 67, 9, 5, 5, 5, 5, 1, 5, 5,
/* 450 */ 5, 91, 5, 5, 73, 91, 5, 15, 5, 118,
/* 460 */ 87, 86, 73, 70, 56, 16, 0, 240, 240, 240,
/* 470 */ 240, 21, 240, 21,
};
#define YY_SHIFT_USE_DFLT (-74)
#define YY_SHIFT_COUNT (219)
#define YY_SHIFT_COUNT (216)
#define YY_SHIFT_MIN (-73)
#define YY_SHIFT_MAX (470)
#define YY_SHIFT_MAX (466)
static const short yy_shift_ofst[] = {
/* 0 */ 158, 98, 196, 240, 13, 13, 13, 13, 13, 13,
/* 10 */ -1, 87, 240, 240, 240, 39, 39, 39, 13, 13,
@ -314,62 +315,62 @@ static const short yy_shift_ofst[] = {
/* 50 */ 204, -55, 204, 13, 13, 115, 115, -73, 13, 13,
/* 60 */ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
/* 70 */ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
/* 80 */ 13, 13, 13, 13, 234, 300, 300, 264, 264, 300,
/* 90 */ 265, 262, 274, 282, 280, 286, 289, 291, 279, 296,
/* 100 */ 300, 300, 318, 318, 300, 314, 300, 320, 300, 320,
/* 80 */ 13, 13, 13, 13, 234, 292, 292, 261, 261, 292,
/* 90 */ 257, 256, 268, 274, 273, 280, 282, 284, 272, 289,
/* 100 */ 292, 292, 311, 311, 292, 309, 292, 315, 292, 315,
/* 110 */ -74, 26, 53, 53, 53, 53, 53, 81, 133, 250,
/* 120 */ 250, 250, -32, -32, -32, -32, -52, 8, 41, 114,
/* 130 */ 114, 49, 173, 197, 166, 171, 169, 258, 208, 174,
/* 140 */ 179, 180, 194, 157, 292, 267, 224, -15, 113, 199,
/* 150 */ 209, 211, 190, 195, 298, 247, 389, 272, 391, 275,
/* 160 */ 327, 394, 277, 397, 281, 333, 405, 290, 349, 347,
/* 170 */ 311, 341, 342, 316, 319, 343, 346, 432, 348, 350,
/* 180 */ 352, 344, 336, 351, 339, 353, 355, 357, 356, 359,
/* 190 */ 358, 380, 439, 444, 445, 446, 447, 452, 449, 450,
/* 200 */ 451, 453, 454, 366, 387, 448, 455, 354, 370, 457,
/* 210 */ 459, 378, 381, 370, 396, 395, 456, 458, 413, 470,
/* 130 */ 114, 49, 173, 197, 166, 171, 172, 174, 177, 179,
/* 140 */ 157, 288, 259, 211, -15, 113, 194, 199, 207, 182,
/* 150 */ 185, 300, 241, 383, 266, 385, 269, 323, 392, 277,
/* 160 */ 399, 283, 337, 409, 294, 348, 343, 305, 335, 336,
/* 170 */ 310, 312, 338, 340, 426, 342, 344, 346, 339, 329,
/* 180 */ 345, 333, 347, 349, 351, 350, 353, 352, 374, 433,
/* 190 */ 438, 439, 440, 441, 446, 443, 444, 445, 447, 448,
/* 200 */ 360, 381, 442, 449, 341, 364, 451, 453, 373, 375,
/* 210 */ 364, 393, 389, 450, 452, 408, 466,
};
#define YY_REDUCE_USE_DFLT (-185)
#define YY_REDUCE_COUNT (110)
#define YY_REDUCE_MIN (-184)
#define YY_REDUCE_MAX (223)
#define YY_REDUCE_MAX (213)
static const short yy_reduce_ofst[] = {
/* 0 */ -184, -12, -179, -153, -134, -108, -69, -68, 31, 37,
/* 10 */ -135, -161, -167, -29, -166, -93, -80, 3, -90, -64,
/* 20 */ -42, 16, -2, -183, -143, -125, -98, -43, -8, 0,
/* 30 */ 20, 65, 83, 89, 90, 91, 92, 93, 94, 95,
/* 40 */ 96, 97, 17, 100, 118, 117, 119, 120, 121, 122,
/* 50 */ 123, 124, 126, 139, 148, 105, 106, 125, 151, 153,
/* 60 */ 154, 155, 156, 159, 161, 162, 163, 164, 165, 167,
/* 70 */ 168, 170, 172, 175, 176, 177, 178, 181, 182, 183,
/* 80 */ 184, 185, 186, 187, 110, 188, 189, 131, 134, 191,
/* 90 */ 137, 160, 192, 198, 193, 201, 200, 205, 207, 203,
/* 100 */ 202, 210, 212, 213, 214, 215, 218, 219, 221, 222,
/* 110 */ 223,
/* 30 */ 20, 43, 52, 76, 82, 83, 84, 85, 86, 89,
/* 40 */ 90, 91, 17, 106, 111, 110, 112, 116, 117, 118,
/* 50 */ 119, 120, 122, 132, 134, 97, 100, 108, 146, 147,
/* 60 */ 148, 149, 150, 151, 152, 153, 154, 155, 156, 159,
/* 70 */ 161, 162, 163, 164, 165, 167, 168, 169, 170, 175,
/* 80 */ 176, 178, 180, 181, 123, 183, 184, 137, 139, 186,
/* 90 */ 138, 160, 187, 189, 188, 192, 195, 190, 198, 191,
/* 100 */ 193, 200, 201, 202, 203, 205, 208, 209, 212, 210,
/* 110 */ 213,
};
static const YYACTIONTYPE yy_default[] = {
/* 0 */ 712, 569, 696, 696, 712, 712, 712, 712, 712, 712,
/* 10 */ 628, 543, 712, 712, 696, 712, 712, 712, 712, 712,
/* 20 */ 712, 712, 622, 712, 712, 712, 712, 712, 712, 712,
/* 30 */ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
/* 40 */ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
/* 50 */ 712, 712, 712, 712, 712, 645, 645, 712, 712, 712,
/* 60 */ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
/* 70 */ 712, 559, 712, 712, 712, 712, 712, 712, 712, 712,
/* 80 */ 712, 712, 712, 712, 712, 545, 545, 712, 712, 545,
/* 90 */ 652, 656, 650, 638, 646, 637, 633, 632, 660, 712,
/* 100 */ 545, 545, 568, 568, 545, 712, 545, 566, 545, 566,
/* 110 */ 583, 712, 700, 701, 661, 695, 651, 679, 678, 691,
/* 120 */ 685, 684, 683, 682, 681, 680, 712, 712, 712, 687,
/* 130 */ 686, 712, 712, 712, 712, 712, 665, 712, 663, 712,
/* 140 */ 712, 712, 712, 712, 712, 712, 663, 657, 653, 712,
/* 150 */ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
/* 160 */ 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
/* 170 */ 712, 712, 712, 697, 712, 712, 712, 712, 712, 712,
/* 180 */ 712, 647, 712, 639, 712, 712, 712, 712, 712, 712,
/* 190 */ 603, 712, 712, 712, 712, 712, 712, 712, 712, 712,
/* 200 */ 712, 712, 712, 571, 712, 712, 712, 712, 705, 712,
/* 210 */ 712, 712, 597, 703, 712, 712, 549, 547, 712, 712,
/* 0 */ 707, 565, 691, 691, 707, 707, 707, 707, 707, 707,
/* 10 */ 623, 539, 707, 707, 691, 707, 707, 707, 707, 707,
/* 20 */ 707, 707, 618, 707, 707, 707, 707, 707, 707, 707,
/* 30 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
/* 40 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
/* 50 */ 707, 707, 707, 707, 707, 640, 640, 707, 707, 707,
/* 60 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
/* 70 */ 707, 555, 707, 707, 707, 707, 707, 707, 707, 707,
/* 80 */ 707, 707, 707, 707, 707, 541, 541, 707, 707, 541,
/* 90 */ 647, 651, 645, 633, 641, 632, 628, 627, 655, 707,
/* 100 */ 541, 541, 564, 564, 541, 707, 541, 562, 541, 562,
/* 110 */ 579, 707, 695, 696, 656, 690, 646, 674, 673, 686,
/* 120 */ 680, 679, 678, 677, 676, 675, 707, 707, 707, 682,
/* 130 */ 681, 707, 707, 707, 707, 707, 707, 707, 707, 707,
/* 140 */ 707, 707, 707, 658, 652, 648, 707, 707, 707, 707,
/* 150 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
/* 160 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
/* 170 */ 692, 707, 707, 707, 707, 707, 707, 707, 642, 707,
/* 180 */ 634, 707, 707, 707, 707, 707, 707, 599, 707, 707,
/* 190 */ 707, 707, 707, 707, 707, 707, 707, 707, 707, 707,
/* 200 */ 567, 707, 707, 707, 707, 700, 707, 707, 707, 593,
/* 210 */ 698, 707, 707, 545, 543, 707, 707,
};
/********** End of lemon-generated parsing tables *****************************/
@ -818,93 +819,92 @@ static const char *const yyRuleName[] = {
/* 91 */ "sclp ::=",
/* 92 */ "selcollist ::= sclp expr as",
/* 93 */ "selcollist ::= sclp STAR",
/* 94 */ "selcollist ::= sclp ID DOT STAR",
/* 95 */ "as ::= AS ids",
/* 96 */ "as ::= ids",
/* 97 */ "as ::=",
/* 98 */ "from ::= FROM ids cpxName",
/* 99 */ "tmvar ::= VARIABLE",
/* 100 */ "interval_opt ::= INTERVAL LP tmvar RP",
/* 101 */ "interval_opt ::=",
/* 102 */ "fill_opt ::=",
/* 103 */ "fill_opt ::= FILL LP ID COMMA tagitemlist RP",
/* 104 */ "fill_opt ::= FILL LP ID RP",
/* 105 */ "sliding_opt ::= SLIDING LP tmvar RP",
/* 106 */ "sliding_opt ::=",
/* 107 */ "orderby_opt ::=",
/* 108 */ "orderby_opt ::= ORDER BY sortlist",
/* 109 */ "sortlist ::= sortlist COMMA item sortorder",
/* 110 */ "sortlist ::= item sortorder",
/* 111 */ "item ::= ids cpxName",
/* 112 */ "sortorder ::= ASC",
/* 113 */ "sortorder ::= DESC",
/* 114 */ "sortorder ::=",
/* 115 */ "groupby_opt ::=",
/* 116 */ "groupby_opt ::= GROUP BY grouplist",
/* 117 */ "grouplist ::= grouplist COMMA item",
/* 118 */ "grouplist ::= item",
/* 119 */ "having_opt ::=",
/* 120 */ "having_opt ::= HAVING expr",
/* 121 */ "limit_opt ::=",
/* 122 */ "limit_opt ::= LIMIT signed",
/* 123 */ "limit_opt ::= LIMIT signed OFFSET signed",
/* 124 */ "limit_opt ::= LIMIT signed COMMA signed",
/* 125 */ "slimit_opt ::=",
/* 126 */ "slimit_opt ::= SLIMIT signed",
/* 127 */ "slimit_opt ::= SLIMIT signed SOFFSET signed",
/* 128 */ "slimit_opt ::= SLIMIT signed COMMA signed",
/* 129 */ "where_opt ::=",
/* 130 */ "where_opt ::= WHERE expr",
/* 131 */ "expr ::= LP expr RP",
/* 132 */ "expr ::= ID",
/* 133 */ "expr ::= ID DOT ID",
/* 134 */ "expr ::= ID DOT STAR",
/* 135 */ "expr ::= INTEGER",
/* 136 */ "expr ::= MINUS INTEGER",
/* 137 */ "expr ::= PLUS INTEGER",
/* 138 */ "expr ::= FLOAT",
/* 139 */ "expr ::= MINUS FLOAT",
/* 140 */ "expr ::= PLUS FLOAT",
/* 141 */ "expr ::= STRING",
/* 142 */ "expr ::= NOW",
/* 143 */ "expr ::= VARIABLE",
/* 144 */ "expr ::= BOOL",
/* 145 */ "expr ::= ID LP exprlist RP",
/* 146 */ "expr ::= ID LP STAR RP",
/* 147 */ "expr ::= expr AND expr",
/* 148 */ "expr ::= expr OR expr",
/* 149 */ "expr ::= expr LT expr",
/* 150 */ "expr ::= expr GT expr",
/* 151 */ "expr ::= expr LE expr",
/* 152 */ "expr ::= expr GE expr",
/* 153 */ "expr ::= expr NE expr",
/* 154 */ "expr ::= expr EQ expr",
/* 155 */ "expr ::= expr PLUS expr",
/* 156 */ "expr ::= expr MINUS expr",
/* 157 */ "expr ::= expr STAR expr",
/* 158 */ "expr ::= expr SLASH expr",
/* 159 */ "expr ::= expr REM expr",
/* 160 */ "expr ::= expr LIKE expr",
/* 161 */ "expr ::= expr IN LP exprlist RP",
/* 162 */ "exprlist ::= exprlist COMMA expritem",
/* 163 */ "exprlist ::= expritem",
/* 164 */ "expritem ::= expr",
/* 165 */ "expritem ::=",
/* 166 */ "cmd ::= INSERT INTO cpxName insert_value_list",
/* 167 */ "insert_value_list ::= VALUES LP itemlist RP",
/* 168 */ "insert_value_list ::= insert_value_list VALUES LP itemlist RP",
/* 169 */ "itemlist ::= itemlist COMMA expr",
/* 170 */ "itemlist ::= expr",
/* 171 */ "cmd ::= RESET QUERY CACHE",
/* 172 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist",
/* 173 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids",
/* 174 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist",
/* 175 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids",
/* 176 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids",
/* 177 */ "cmd ::= ALTER TABLE ids cpxName SET ids EQ tagitem",
/* 178 */ "cmd ::= KILL CONNECTION IP COLON INTEGER",
/* 179 */ "cmd ::= KILL STREAM IP COLON INTEGER COLON INTEGER",
/* 180 */ "cmd ::= KILL QUERY IP COLON INTEGER COLON INTEGER",
/* 94 */ "as ::= AS ids",
/* 95 */ "as ::= ids",
/* 96 */ "as ::=",
/* 97 */ "from ::= FROM ids cpxName",
/* 98 */ "tmvar ::= VARIABLE",
/* 99 */ "interval_opt ::= INTERVAL LP tmvar RP",
/* 100 */ "interval_opt ::=",
/* 101 */ "fill_opt ::=",
/* 102 */ "fill_opt ::= FILL LP ID COMMA tagitemlist RP",
/* 103 */ "fill_opt ::= FILL LP ID RP",
/* 104 */ "sliding_opt ::= SLIDING LP tmvar RP",
/* 105 */ "sliding_opt ::=",
/* 106 */ "orderby_opt ::=",
/* 107 */ "orderby_opt ::= ORDER BY sortlist",
/* 108 */ "sortlist ::= sortlist COMMA item sortorder",
/* 109 */ "sortlist ::= item sortorder",
/* 110 */ "item ::= ids cpxName",
/* 111 */ "sortorder ::= ASC",
/* 112 */ "sortorder ::= DESC",
/* 113 */ "sortorder ::=",
/* 114 */ "groupby_opt ::=",
/* 115 */ "groupby_opt ::= GROUP BY grouplist",
/* 116 */ "grouplist ::= grouplist COMMA item",
/* 117 */ "grouplist ::= item",
/* 118 */ "having_opt ::=",
/* 119 */ "having_opt ::= HAVING expr",
/* 120 */ "limit_opt ::=",
/* 121 */ "limit_opt ::= LIMIT signed",
/* 122 */ "limit_opt ::= LIMIT signed OFFSET signed",
/* 123 */ "limit_opt ::= LIMIT signed COMMA signed",
/* 124 */ "slimit_opt ::=",
/* 125 */ "slimit_opt ::= SLIMIT signed",
/* 126 */ "slimit_opt ::= SLIMIT signed SOFFSET signed",
/* 127 */ "slimit_opt ::= SLIMIT signed COMMA signed",
/* 128 */ "where_opt ::=",
/* 129 */ "where_opt ::= WHERE expr",
/* 130 */ "expr ::= LP expr RP",
/* 131 */ "expr ::= ID",
/* 132 */ "expr ::= ID DOT ID",
/* 133 */ "expr ::= ID DOT STAR",
/* 134 */ "expr ::= INTEGER",
/* 135 */ "expr ::= MINUS INTEGER",
/* 136 */ "expr ::= PLUS INTEGER",
/* 137 */ "expr ::= FLOAT",
/* 138 */ "expr ::= MINUS FLOAT",
/* 139 */ "expr ::= PLUS FLOAT",
/* 140 */ "expr ::= STRING",
/* 141 */ "expr ::= NOW",
/* 142 */ "expr ::= VARIABLE",
/* 143 */ "expr ::= BOOL",
/* 144 */ "expr ::= ID LP exprlist RP",
/* 145 */ "expr ::= ID LP STAR RP",
/* 146 */ "expr ::= expr AND expr",
/* 147 */ "expr ::= expr OR expr",
/* 148 */ "expr ::= expr LT expr",
/* 149 */ "expr ::= expr GT expr",
/* 150 */ "expr ::= expr LE expr",
/* 151 */ "expr ::= expr GE expr",
/* 152 */ "expr ::= expr NE expr",
/* 153 */ "expr ::= expr EQ expr",
/* 154 */ "expr ::= expr PLUS expr",
/* 155 */ "expr ::= expr MINUS expr",
/* 156 */ "expr ::= expr STAR expr",
/* 157 */ "expr ::= expr SLASH expr",
/* 158 */ "expr ::= expr REM expr",
/* 159 */ "expr ::= expr LIKE expr",
/* 160 */ "expr ::= expr IN LP exprlist RP",
/* 161 */ "exprlist ::= exprlist COMMA expritem",
/* 162 */ "exprlist ::= expritem",
/* 163 */ "expritem ::= expr",
/* 164 */ "expritem ::=",
/* 165 */ "cmd ::= INSERT INTO cpxName insert_value_list",
/* 166 */ "insert_value_list ::= VALUES LP itemlist RP",
/* 167 */ "insert_value_list ::= insert_value_list VALUES LP itemlist RP",
/* 168 */ "itemlist ::= itemlist COMMA expr",
/* 169 */ "itemlist ::= expr",
/* 170 */ "cmd ::= RESET QUERY CACHE",
/* 171 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist",
/* 172 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids",
/* 173 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist",
/* 174 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids",
/* 175 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids",
/* 176 */ "cmd ::= ALTER TABLE ids cpxName SET ids EQ tagitem",
/* 177 */ "cmd ::= KILL CONNECTION IP COLON INTEGER",
/* 178 */ "cmd ::= KILL STREAM IP COLON INTEGER COLON INTEGER",
/* 179 */ "cmd ::= KILL QUERY IP COLON INTEGER COLON INTEGER",
};
#endif /* NDEBUG */
@ -1364,7 +1364,6 @@ static const struct {
{ 227, 0 },
{ 216, 3 },
{ 216, 2 },
{ 216, 4 },
{ 229, 2 },
{ 229, 1 },
{ 229, 0 },
@ -1685,18 +1684,16 @@ static void yy_reduce(
break;
case 67: /* typename ::= ids LP signed RP */
{
yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy412; // negative value of name length
yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy189; // negative value of name length
tSQLSetColumnType(&yygotominor.yy343, &yymsp[-3].minor.yy0);
}
break;
case 68: /* signed ::= INTEGER */
{ yygotominor.yy412 = atoi(yymsp[0].minor.yy0.z); }
break;
case 69: /* signed ::= PLUS INTEGER */
{ yygotominor.yy412 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
case 69: /* signed ::= PLUS INTEGER */ yytestcase(yyruleno==69);
{ yygotominor.yy189 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
break;
case 70: /* signed ::= MINUS INTEGER */
{ yygotominor.yy412 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);}
{ yygotominor.yy189 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);}
break;
case 71: /* cmd ::= CREATE TABLE ifnotexists ids cpxName create_table_args */
{
@ -1791,37 +1788,31 @@ static void yy_reduce(
yygotominor.yy98 = tSQLExprListAppend(yymsp[-1].minor.yy98, pNode, 0);
}
break;
case 94: /* selcollist ::= sclp ID DOT STAR */
{
tSQLExpr *pNode = tSQLExprIdValueCreate(NULL, TK_ALL);
yygotominor.yy98 = tSQLExprListAppend(yymsp[-3].minor.yy98, pNode, 0);
}
break;
case 95: /* as ::= AS ids */
case 96: /* as ::= ids */ yytestcase(yyruleno==96);
case 94: /* as ::= AS ids */
case 95: /* as ::= ids */ yytestcase(yyruleno==95);
{ yygotominor.yy0 = yymsp[0].minor.yy0; }
break;
case 97: /* as ::= */
case 96: /* as ::= */
{ yygotominor.yy0.n = 0; }
break;
case 98: /* from ::= FROM ids cpxName */
case 97: /* from ::= FROM ids cpxName */
{yygotominor.yy0 = yymsp[-1].minor.yy0; yygotominor.yy0.n += yymsp[0].minor.yy0.n;}
break;
case 99: /* tmvar ::= VARIABLE */
case 98: /* tmvar ::= VARIABLE */
{yygotominor.yy0 = yymsp[0].minor.yy0;}
break;
case 100: /* interval_opt ::= INTERVAL LP tmvar RP */
case 105: /* sliding_opt ::= SLIDING LP tmvar RP */ yytestcase(yyruleno==105);
case 99: /* interval_opt ::= INTERVAL LP tmvar RP */
case 104: /* sliding_opt ::= SLIDING LP tmvar RP */ yytestcase(yyruleno==104);
{yygotominor.yy0 = yymsp[-1].minor.yy0; }
break;
case 101: /* interval_opt ::= */
case 106: /* sliding_opt ::= */ yytestcase(yyruleno==106);
case 100: /* interval_opt ::= */
case 105: /* sliding_opt ::= */ yytestcase(yyruleno==105);
{yygotominor.yy0.n = 0; }
break;
case 102: /* fill_opt ::= */
case 101: /* fill_opt ::= */
{yygotominor.yy216 = 0; }
break;
case 103: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
case 102: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
tVariant A = {0};
toTSDBType(yymsp[-3].minor.yy0.type);
@ -1831,31 +1822,31 @@ static void yy_reduce(
yygotominor.yy216 = yymsp[-1].minor.yy216;
}
break;
case 104: /* fill_opt ::= FILL LP ID RP */
case 103: /* fill_opt ::= FILL LP ID RP */
{
toTSDBType(yymsp[-1].minor.yy0.type);
yygotominor.yy216 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1);
}
break;
case 107: /* orderby_opt ::= */
case 115: /* groupby_opt ::= */ yytestcase(yyruleno==115);
case 106: /* orderby_opt ::= */
case 114: /* groupby_opt ::= */ yytestcase(yyruleno==114);
{yygotominor.yy216 = 0;}
break;
case 108: /* orderby_opt ::= ORDER BY sortlist */
case 116: /* groupby_opt ::= GROUP BY grouplist */ yytestcase(yyruleno==116);
case 107: /* orderby_opt ::= ORDER BY sortlist */
case 115: /* groupby_opt ::= GROUP BY grouplist */ yytestcase(yyruleno==115);
{yygotominor.yy216 = yymsp[0].minor.yy216;}
break;
case 109: /* sortlist ::= sortlist COMMA item sortorder */
case 108: /* sortlist ::= sortlist COMMA item sortorder */
{
yygotominor.yy216 = tVariantListAppend(yymsp[-3].minor.yy216, &yymsp[-1].minor.yy266, yymsp[0].minor.yy412);
}
break;
case 110: /* sortlist ::= item sortorder */
case 109: /* sortlist ::= item sortorder */
{
yygotominor.yy216 = tVariantListAppend(NULL, &yymsp[-1].minor.yy266, yymsp[0].minor.yy412);
}
break;
case 111: /* item ::= ids cpxName */
case 110: /* item ::= ids cpxName */
{
toTSDBType(yymsp[-1].minor.yy0.type);
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
@ -1863,174 +1854,174 @@ static void yy_reduce(
tVariantCreate(&yygotominor.yy266, &yymsp[-1].minor.yy0);
}
break;
case 112: /* sortorder ::= ASC */
case 111: /* sortorder ::= ASC */
{yygotominor.yy412 = TSQL_SO_ASC; }
break;
case 113: /* sortorder ::= DESC */
case 112: /* sortorder ::= DESC */
{yygotominor.yy412 = TSQL_SO_DESC;}
break;
case 114: /* sortorder ::= */
case 113: /* sortorder ::= */
{yygotominor.yy412 = TSQL_SO_ASC;}
break;
case 117: /* grouplist ::= grouplist COMMA item */
case 116: /* grouplist ::= grouplist COMMA item */
{
yygotominor.yy216 = tVariantListAppend(yymsp[-2].minor.yy216, &yymsp[0].minor.yy266, -1);
}
break;
case 118: /* grouplist ::= item */
case 117: /* grouplist ::= item */
{
yygotominor.yy216 = tVariantListAppend(NULL, &yymsp[0].minor.yy266, -1);
}
break;
case 119: /* having_opt ::= */
case 129: /* where_opt ::= */ yytestcase(yyruleno==129);
case 165: /* expritem ::= */ yytestcase(yyruleno==165);
case 118: /* having_opt ::= */
case 128: /* where_opt ::= */ yytestcase(yyruleno==128);
case 164: /* expritem ::= */ yytestcase(yyruleno==164);
{yygotominor.yy370 = 0;}
break;
case 120: /* having_opt ::= HAVING expr */
case 130: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==130);
case 164: /* expritem ::= expr */ yytestcase(yyruleno==164);
case 119: /* having_opt ::= HAVING expr */
case 129: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==129);
case 163: /* expritem ::= expr */ yytestcase(yyruleno==163);
{yygotominor.yy370 = yymsp[0].minor.yy370;}
break;
case 121: /* limit_opt ::= */
case 125: /* slimit_opt ::= */ yytestcase(yyruleno==125);
case 120: /* limit_opt ::= */
case 124: /* slimit_opt ::= */ yytestcase(yyruleno==124);
{yygotominor.yy294.limit = -1; yygotominor.yy294.offset = 0;}
break;
case 122: /* limit_opt ::= LIMIT signed */
case 126: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==126);
{yygotominor.yy294.limit = yymsp[0].minor.yy412; yygotominor.yy294.offset = 0;}
case 121: /* limit_opt ::= LIMIT signed */
case 125: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==125);
{yygotominor.yy294.limit = yymsp[0].minor.yy189; yygotominor.yy294.offset = 0;}
break;
case 123: /* limit_opt ::= LIMIT signed OFFSET signed */
case 127: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ yytestcase(yyruleno==127);
{yygotominor.yy294.limit = yymsp[-2].minor.yy412; yygotominor.yy294.offset = yymsp[0].minor.yy412;}
case 122: /* limit_opt ::= LIMIT signed OFFSET signed */
case 126: /* slimit_opt ::= SLIMIT signed SOFFSET signed */ yytestcase(yyruleno==126);
{yygotominor.yy294.limit = yymsp[-2].minor.yy189; yygotominor.yy294.offset = yymsp[0].minor.yy189;}
break;
case 124: /* limit_opt ::= LIMIT signed COMMA signed */
case 128: /* slimit_opt ::= SLIMIT signed COMMA signed */ yytestcase(yyruleno==128);
{yygotominor.yy294.limit = yymsp[0].minor.yy412; yygotominor.yy294.offset = yymsp[-2].minor.yy412;}
case 123: /* limit_opt ::= LIMIT signed COMMA signed */
case 127: /* slimit_opt ::= SLIMIT signed COMMA signed */ yytestcase(yyruleno==127);
{yygotominor.yy294.limit = yymsp[0].minor.yy189; yygotominor.yy294.offset = yymsp[-2].minor.yy189;}
break;
case 131: /* expr ::= LP expr RP */
case 130: /* expr ::= LP expr RP */
{yygotominor.yy370 = yymsp[-1].minor.yy370; }
break;
case 132: /* expr ::= ID */
case 131: /* expr ::= ID */
{yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_ID);}
break;
case 133: /* expr ::= ID DOT ID */
case 132: /* expr ::= ID DOT ID */
{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ID);}
break;
case 134: /* expr ::= ID DOT STAR */
case 133: /* expr ::= ID DOT STAR */
{yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[-2].minor.yy0, TK_ALL);}
break;
case 135: /* expr ::= INTEGER */
case 134: /* expr ::= INTEGER */
{yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_INTEGER);}
break;
case 136: /* expr ::= MINUS INTEGER */
case 137: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==137);
case 135: /* expr ::= MINUS INTEGER */
case 136: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==136);
{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_INTEGER);}
break;
case 138: /* expr ::= FLOAT */
case 137: /* expr ::= FLOAT */
{yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_FLOAT);}
break;
case 139: /* expr ::= MINUS FLOAT */
case 140: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==140);
case 138: /* expr ::= MINUS FLOAT */
case 139: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==139);
{yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[-1].minor.yy0, TK_FLOAT);}
break;
case 141: /* expr ::= STRING */
case 140: /* expr ::= STRING */
{yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_STRING);}
break;
case 142: /* expr ::= NOW */
case 141: /* expr ::= NOW */
{yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_NOW); }
break;
case 143: /* expr ::= VARIABLE */
case 142: /* expr ::= VARIABLE */
{yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_VARIABLE);}
break;
case 144: /* expr ::= BOOL */
case 143: /* expr ::= BOOL */
{yygotominor.yy370 = tSQLExprIdValueCreate(&yymsp[0].minor.yy0, TK_BOOL);}
break;
case 145: /* expr ::= ID LP exprlist RP */
case 144: /* expr ::= ID LP exprlist RP */
{
yygotominor.yy370 = tSQLExprCreateFunction(yymsp[-1].minor.yy98, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type);
}
break;
case 146: /* expr ::= ID LP STAR RP */
case 145: /* expr ::= ID LP STAR RP */
{
yygotominor.yy370 = tSQLExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type);
}
break;
case 147: /* expr ::= expr AND expr */
case 146: /* expr ::= expr AND expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_AND);}
break;
case 148: /* expr ::= expr OR expr */
case 147: /* expr ::= expr OR expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_OR); }
break;
case 149: /* expr ::= expr LT expr */
case 148: /* expr ::= expr LT expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_LT);}
break;
case 150: /* expr ::= expr GT expr */
case 149: /* expr ::= expr GT expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_GT);}
break;
case 151: /* expr ::= expr LE expr */
case 150: /* expr ::= expr LE expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_LE);}
break;
case 152: /* expr ::= expr GE expr */
case 151: /* expr ::= expr GE expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_GE);}
break;
case 153: /* expr ::= expr NE expr */
case 152: /* expr ::= expr NE expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_NE);}
break;
case 154: /* expr ::= expr EQ expr */
case 153: /* expr ::= expr EQ expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_EQ);}
break;
case 155: /* expr ::= expr PLUS expr */
case 154: /* expr ::= expr PLUS expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_PLUS); }
break;
case 156: /* expr ::= expr MINUS expr */
case 155: /* expr ::= expr MINUS expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_MINUS); }
break;
case 157: /* expr ::= expr STAR expr */
case 156: /* expr ::= expr STAR expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_STAR); }
break;
case 158: /* expr ::= expr SLASH expr */
case 157: /* expr ::= expr SLASH expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_DIVIDE);}
break;
case 159: /* expr ::= expr REM expr */
case 158: /* expr ::= expr REM expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_REM); }
break;
case 160: /* expr ::= expr LIKE expr */
case 159: /* expr ::= expr LIKE expr */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-2].minor.yy370, yymsp[0].minor.yy370, TK_LIKE); }
break;
case 161: /* expr ::= expr IN LP exprlist RP */
case 160: /* expr ::= expr IN LP exprlist RP */
{yygotominor.yy370 = tSQLExprCreate(yymsp[-4].minor.yy370, (tSQLExpr*)yymsp[-1].minor.yy98, TK_IN); }
break;
case 162: /* exprlist ::= exprlist COMMA expritem */
case 169: /* itemlist ::= itemlist COMMA expr */ yytestcase(yyruleno==169);
case 161: /* exprlist ::= exprlist COMMA expritem */
case 168: /* itemlist ::= itemlist COMMA expr */ yytestcase(yyruleno==168);
{yygotominor.yy98 = tSQLExprListAppend(yymsp[-2].minor.yy98,yymsp[0].minor.yy370,0);}
break;
case 163: /* exprlist ::= expritem */
case 170: /* itemlist ::= expr */ yytestcase(yyruleno==170);
case 162: /* exprlist ::= expritem */
case 169: /* itemlist ::= expr */ yytestcase(yyruleno==169);
{yygotominor.yy98 = tSQLExprListAppend(0,yymsp[0].minor.yy370,0);}
break;
case 166: /* cmd ::= INSERT INTO cpxName insert_value_list */
case 165: /* cmd ::= INSERT INTO cpxName insert_value_list */
{
tSetInsertSQLElems(pInfo, &yymsp[-1].minor.yy0, yymsp[0].minor.yy434);
}
break;
case 167: /* insert_value_list ::= VALUES LP itemlist RP */
case 166: /* insert_value_list ::= VALUES LP itemlist RP */
{yygotominor.yy434 = tSQLListListAppend(NULL, yymsp[-1].minor.yy98);}
break;
case 168: /* insert_value_list ::= insert_value_list VALUES LP itemlist RP */
case 167: /* insert_value_list ::= insert_value_list VALUES LP itemlist RP */
{yygotominor.yy434 = tSQLListListAppend(yymsp[-4].minor.yy434, yymsp[-1].minor.yy98);}
break;
case 171: /* cmd ::= RESET QUERY CACHE */
case 170: /* cmd ::= RESET QUERY CACHE */
{ setDCLSQLElems(pInfo, RESET_QUERY_CACHE, 0);}
break;
case 172: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
case 171: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy151, NULL, ALTER_TABLE_ADD_COLUMN);
setSQLInfo(pInfo, pAlterTable, NULL, ALTER_TABLE_ADD_COLUMN);
}
break;
case 173: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
case 172: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
@ -2041,14 +2032,14 @@ static void yy_reduce(
setSQLInfo(pInfo, pAlterTable, NULL, ALTER_TABLE_DROP_COLUMN);
}
break;
case 174: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
case 173: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableSQL* pAlterTable = tAlterTableSQLElems(&yymsp[-4].minor.yy0, yymsp[0].minor.yy151, NULL, ALTER_TABLE_TAGS_ADD);
setSQLInfo(pInfo, pAlterTable, NULL, ALTER_TABLE_TAGS_ADD);
}
break;
case 175: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
case 174: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
@ -2059,7 +2050,7 @@ static void yy_reduce(
setSQLInfo(pInfo, pAlterTable, NULL, ALTER_TABLE_TAGS_DROP);
}
break;
case 176: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
case 175: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
@ -2073,7 +2064,7 @@ static void yy_reduce(
setSQLInfo(pInfo, pAlterTable, NULL, ALTER_TABLE_TAGS_CHG);
}
break;
case 177: /* cmd ::= ALTER TABLE ids cpxName SET ids EQ tagitem */
case 176: /* cmd ::= ALTER TABLE ids cpxName SET ids EQ tagitem */
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
@ -2085,13 +2076,13 @@ static void yy_reduce(
setSQLInfo(pInfo, pAlterTable, NULL, ALTER_TABLE_TAGS_SET);
}
break;
case 178: /* cmd ::= KILL CONNECTION IP COLON INTEGER */
case 177: /* cmd ::= KILL CONNECTION IP COLON INTEGER */
{yymsp[-2].minor.yy0.n += (yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setDCLSQLElems(pInfo, KILL_CONNECTION, 1, &yymsp[-2].minor.yy0);}
break;
case 179: /* cmd ::= KILL STREAM IP COLON INTEGER COLON INTEGER */
case 178: /* cmd ::= KILL STREAM IP COLON INTEGER COLON INTEGER */
{yymsp[-4].minor.yy0.n += (yymsp[-3].minor.yy0.n + yymsp[-2].minor.yy0.n + yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setDCLSQLElems(pInfo, KILL_STREAM, 1, &yymsp[-4].minor.yy0);}
break;
case 180: /* cmd ::= KILL QUERY IP COLON INTEGER COLON INTEGER */
case 179: /* cmd ::= KILL QUERY IP COLON INTEGER COLON INTEGER */
{yymsp[-4].minor.yy0.n += (yymsp[-3].minor.yy0.n + yymsp[-2].minor.yy0.n + yymsp[-1].minor.yy0.n + yymsp[0].minor.yy0.n); setDCLSQLElems(pInfo, KILL_QUERY, 1, &yymsp[-4].minor.yy0);}
break;
default: