提交 b428c4f1 编写于 作者: X xywang

fix: added Bitwise AND function

上级 97d728d1
......@@ -282,6 +282,8 @@ static uint8_t convertRelationalOperator(SStrToken *pToken) {
return TSDB_BINARY_OP_DIVIDE;
case TK_REM:
return TSDB_BINARY_OP_REMAINDER;
case TK_BITAND:
return TSDB_BINARY_OP_BITAND;
case TK_LIKE:
return TSDB_RELATION_LIKE;
case TK_MATCH:
......@@ -10663,6 +10665,23 @@ int32_t exprTreeFromSqlExpr(SSqlCmd* pCmd, tExprNode **pExpr, const tSqlExpr* pS
}
}
if (pSqlExpr->tokenId == TK_BITAND && pSqlExpr->pLeft != NULL && pSqlExpr->pRight != NULL) {
// for example: col type is "bool" but expr "col & 1" received
uint8_t colType = pLeft->pSchema->type;
SStrToken *exprToken = &pSqlExpr->pRight->exprToken;
if (pSqlExpr->pLeft->type == SQL_NODE_TABLE_COLUMN && pSqlExpr->pRight->type == SQL_NODE_VALUE) {
if (colType == TSDB_DATA_TYPE_BOOL) {
if ((exprToken->n != 4 || strncasecmp(exprToken->z, "true", 4)) && (exprToken->n != 5 || strncasecmp(exprToken->z, "false", 5))) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
} else if (IS_SIGNED_NUMERIC_TYPE(colType) || IS_UNSIGNED_NUMERIC_TYPE(colType)) {
if ((exprToken->n == 4 && strncasecmp(exprToken->z, "true", 4) == 0) || (exprToken->n == 5 || strncasecmp(exprToken->z, "false", 5) == 0)) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
}
}
}
if (pSqlExpr->pRight != NULL) {
int32_t ret = exprTreeFromSqlExpr(pCmd, &pRight, pSqlExpr->pRight, pQueryInfo, pCols, uid);
if (ret != TSDB_CODE_SUCCESS) {
......@@ -10700,9 +10719,11 @@ int32_t exprTreeFromSqlExpr(SSqlCmd* pCmd, tExprNode **pExpr, const tSqlExpr* pS
if (pLeft->_node.optr == TSDB_RELATION_ARROW){
pLeft = pLeft->_node.pLeft;
}
if (pRight->pVal->nType == TSDB_DATA_TYPE_BOOL && pLeft->nodeType == TSQL_NODE_COL &&
(pLeft->pSchema->type == TSDB_DATA_TYPE_BOOL || pLeft->pSchema->type == TSDB_DATA_TYPE_JSON)) {
return TSDB_CODE_TSC_INVALID_OPERATION;
if (pRight->pVal->nType == TSDB_DATA_TYPE_BOOL && pLeft->nodeType == TSQL_NODE_COL) {
if (((*pExpr)->_node.optr != TSDB_BINARY_OP_BITAND && pLeft->pSchema->type == TSDB_DATA_TYPE_BOOL) ||
pLeft->pSchema->type == TSDB_DATA_TYPE_JSON) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
}
}
}
......
......@@ -126,6 +126,9 @@ _arithmetic_getVectorDoubleValue_fn_t getVectorDoubleValueFn(int32_t srcType) {
typedef void* (*_arithmetic_getVectorValueAddr_fn_t)(void *src, int32_t index);
void* getVectorValueAddr_BOOL(void *src, int32_t index) {
return (void*)((bool *)src + index);
}
void* getVectorValueAddr_TINYINT(void *src, int32_t index) {
return (void*)((int8_t *)src + index);
}
......@@ -159,7 +162,9 @@ void* getVectorValueAddr_DOUBLE(void *src, int32_t index) {
_arithmetic_getVectorValueAddr_fn_t getVectorValueAddrFn(int32_t srcType) {
_arithmetic_getVectorValueAddr_fn_t p = NULL;
if(srcType==TSDB_DATA_TYPE_TINYINT) {
if (srcType == TSDB_DATA_TYPE_BOOL) {
p = getVectorValueAddr_BOOL;
}else if(srcType == TSDB_DATA_TYPE_TINYINT) {
p = getVectorValueAddr_TINYINT;
}else if(srcType==TSDB_DATA_TYPE_UTINYINT) {
p = getVectorValueAddr_UTINYINT;
......@@ -469,6 +474,271 @@ void vectorRemainder(void *left, int32_t len1, int32_t _left_type, void *right,
}
}
void vectorBitand(void *left, int32_t len1, int32_t _left_type, void *right, int32_t len2, int32_t _right_type, void *out, int32_t _ord) {
int32_t i = (_ord == TSDB_ORDER_ASC) ? 0 : MAX(len1, len2) - 1;
int32_t step = (_ord == TSDB_ORDER_ASC) ? 1 : -1;
char *output = out;
_arithmetic_getVectorValueAddr_fn_t getVectorValueAddrFnLeft = getVectorValueAddrFn(_left_type);
_arithmetic_getVectorValueAddr_fn_t getVectorValueAddrFnRight = getVectorValueAddrFn(_right_type);
if (len1 == (len2)) {
for (; i >= 0 && i < (len2); i += step) {
if (isNull(getVectorValueAddrFnLeft(left, i), _left_type) || isNull(getVectorValueAddrFnRight(right, i), _right_type)) {
switch (_left_type) {
case TSDB_DATA_TYPE_BOOL:
*(bool *) output = TSDB_DATA_BOOL_NULL;
output += sizeof(bool);
break;
case TSDB_DATA_TYPE_TINYINT:
*(int8_t *) output = TSDB_DATA_TINYINT_NULL;
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_SMALLINT:
*(int16_t *) output = TSDB_DATA_SMALLINT_NULL;
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_INT:
*(int32_t *) output = TSDB_DATA_INT_NULL;
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_BIGINT:
*(int64_t *) output = TSDB_DATA_BIGINT_NULL;
output += sizeof(int64_t);
break;
case TSDB_DATA_TYPE_UTINYINT:
*(uint8_t *) output = TSDB_DATA_UTINYINT_NULL;
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_USMALLINT:
*(uint16_t *) output = TSDB_DATA_USMALLINT_NULL;
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_UINT:
*(uint32_t *) output = TSDB_DATA_UINT_NULL;
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_UBIGINT:
*(uint64_t *) output = TSDB_DATA_UBIGINT_NULL;
output += sizeof(int64_t);
break;
}
continue;
}
switch (_left_type) {
case TSDB_DATA_TYPE_BOOL:
*(bool *) output = (*((bool *) left + i)) & (*((bool *) right + i));
output += sizeof(bool);
break;
case TSDB_DATA_TYPE_TINYINT:
*(int8_t *) output = (*((int8_t *) left + i)) & (*((int8_t *) right + i));
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_SMALLINT:
*(int16_t *) output = (*((int16_t *) left + i)) & (*((int16_t *) right + i));
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_INT:
*(int32_t *) output = (*((int32_t *) left + i)) & (*((int32_t *) right + i));
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_BIGINT:
*(int64_t *) output = (*((int64_t *) left + i)) & (*((int64_t *) right + i));
output += sizeof(int64_t);
break;
case TSDB_DATA_TYPE_UTINYINT:
*(uint8_t *) output = (*((uint8_t *) left + i)) & (*((uint8_t *) right + i));
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_USMALLINT:
*(uint16_t *) output = (*((uint16_t *) left + i)) & (*((uint16_t *) right + i));
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_UINT:
*(uint32_t *) output = (*((uint32_t *) left + i)) & (*((uint32_t *) right + i));
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_UBIGINT:
*(uint64_t *) output = (*((uint64_t *) left + i)) & (*((uint64_t *) right + i));
output += sizeof(int64_t);
break;
}
}
} else if (len1 == 1) {
for (; i >= 0 && i < (len2); i += step) {
if (isNull(getVectorValueAddrFnLeft(left, 0), _left_type) || isNull(getVectorValueAddrFnRight(right, i), _right_type)) {
switch (_left_type) {
case TSDB_DATA_TYPE_BOOL:
*(bool *) output = TSDB_DATA_BOOL_NULL;
output += sizeof(bool);
break;
case TSDB_DATA_TYPE_TINYINT:
*(int8_t *) output = TSDB_DATA_TINYINT_NULL;
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_SMALLINT:
*(int16_t *) output = TSDB_DATA_SMALLINT_NULL;
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_INT:
*(int32_t *) output = TSDB_DATA_INT_NULL;
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_BIGINT:
*(int64_t *) output = TSDB_DATA_BIGINT_NULL;
output += sizeof(int64_t);
break;
case TSDB_DATA_TYPE_UTINYINT:
*(uint8_t *) output = TSDB_DATA_UTINYINT_NULL;
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_USMALLINT:
*(uint16_t *) output = TSDB_DATA_USMALLINT_NULL;
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_UINT:
*(uint32_t *) output = TSDB_DATA_UINT_NULL;
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_UBIGINT:
*(uint64_t *) output = TSDB_DATA_UBIGINT_NULL;
output += sizeof(int64_t);
break;
}
continue;
}
switch (_left_type) {
case TSDB_DATA_TYPE_BOOL:
*(bool *) output = (*(bool *) left) & (*((bool *) right + i));
output += sizeof(bool);
break;
case TSDB_DATA_TYPE_TINYINT:
*(int8_t *) output = (*(int8_t *) left) & (*((int8_t *) right + i));
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_SMALLINT:
*(int16_t *) output = (*(int16_t *) left) & (*((int16_t *) right + i));
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_INT:
*(int32_t *) output = (*(int32_t *) left) & (*((int32_t *) right + i));
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_BIGINT:
*(int64_t *) output = (*(int64_t *) left) & (*((int64_t *) right + i));
output += sizeof(int64_t);
break;
case TSDB_DATA_TYPE_UTINYINT:
*(uint8_t *) output = (*(uint8_t *) left) & (*((uint8_t *) right + i));
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_USMALLINT:
*(uint16_t *) output = (*(uint16_t *) left) & (*((uint16_t *) right + i));
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_UINT:
*(uint32_t *) output = (*(uint32_t *) left) & (*((uint32_t *) right + i));
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_UBIGINT:
*(uint64_t *) output = (*(uint64_t *) left) & (*((uint64_t *) right + i));
output += sizeof(int64_t);
break;
}
}
} else if ((len2) == 1) {
for (; i >= 0 && i < len1; i += step) {
if (isNull(getVectorValueAddrFnLeft(left, i), _left_type) || isNull(getVectorValueAddrFnRight(right, 0), _right_type)) {
switch (_left_type) {
case TSDB_DATA_TYPE_BOOL:
*(bool *) output = TSDB_DATA_BOOL_NULL;
output += sizeof(bool);
break;
case TSDB_DATA_TYPE_TINYINT:
*(int8_t *) output = TSDB_DATA_TINYINT_NULL;
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_SMALLINT:
*(int16_t *) output = TSDB_DATA_SMALLINT_NULL;
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_INT:
*(int32_t *) output = TSDB_DATA_INT_NULL;
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_BIGINT:
*(int64_t *) output = TSDB_DATA_BIGINT_NULL;
output += sizeof(int64_t);
break;
case TSDB_DATA_TYPE_UTINYINT:
*(uint8_t *) output = TSDB_DATA_UTINYINT_NULL;
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_USMALLINT:
*(uint16_t *) output = TSDB_DATA_USMALLINT_NULL;
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_UINT:
*(uint32_t *) output = TSDB_DATA_UINT_NULL;
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_UBIGINT:
*(uint64_t *) output = TSDB_DATA_UBIGINT_NULL;
output += sizeof(int64_t);
break;
}
continue;
}
switch (_left_type) {
case TSDB_DATA_TYPE_BOOL:
*(bool *) output = (*((bool *) left + i)) & (*(bool *) right);
output += sizeof(bool);
break;
case TSDB_DATA_TYPE_TINYINT:
*(int8_t *) output = (*((int8_t *) left + i)) & (*(int8_t *) right);
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_SMALLINT:
*(int16_t *) output = (*((int16_t *) left + i)) & (*(int16_t *) right);
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_INT:
*(int32_t *) output = (*((int32_t *) left + i)) & (*(int32_t *) right);
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_BIGINT:
*(int64_t *) output = (*((int64_t *) left + i)) & (*(int64_t *) right);
output += sizeof(int64_t);
break;
case TSDB_DATA_TYPE_UTINYINT:
*(uint8_t *) output = (*((uint8_t *) left + i)) & (*(uint8_t *) right);
output += sizeof(int8_t);
break;
case TSDB_DATA_TYPE_USMALLINT:
*(uint16_t *) output = (*((uint16_t *) left + i)) & (*(uint16_t *) right);
output += sizeof(int16_t);
break;
case TSDB_DATA_TYPE_UINT:
*(uint32_t *) output = (*((uint32_t *) left + i)) & (*(uint32_t *) right);
output += sizeof(int32_t);
break;
case TSDB_DATA_TYPE_UBIGINT:
*(uint64_t *) output = (*((uint64_t *) left + i)) & (*(uint64_t *) right);
output += sizeof(int64_t);
break;
}
}
}
}
_arithmetic_operator_fn_t getArithmeticOperatorFn(int32_t arithmeticOptr) {
switch (arithmeticOptr) {
case TSDB_BINARY_OP_ADD:
......@@ -481,6 +751,8 @@ _arithmetic_operator_fn_t getArithmeticOperatorFn(int32_t arithmeticOptr) {
return vectorDivide;
case TSDB_BINARY_OP_REMAINDER:
return vectorRemainder;
case TSDB_BINARY_OP_BITAND:
return vectorBitand;
default:
assert(0);
return NULL;
......
......@@ -107,11 +107,13 @@ int32_t exprTreeValidateFunctionNode(char* msgbuf, tExprNode *pExpr) {
}
int32_t exprTreeValidateExprNode(tExprNode *pExpr) {
int16_t leftType = pExpr->_node.pLeft->resultType;
int16_t rightType = pExpr->_node.pRight->resultType;
int16_t resultType = leftType;
if (pExpr->_node.optr == TSDB_BINARY_OP_ADD || pExpr->_node.optr == TSDB_BINARY_OP_SUBTRACT ||
pExpr->_node.optr == TSDB_BINARY_OP_MULTIPLY || pExpr->_node.optr == TSDB_BINARY_OP_DIVIDE ||
pExpr->_node.optr == TSDB_BINARY_OP_REMAINDER) {
int16_t leftType = pExpr->_node.pLeft->resultType;
int16_t rightType = pExpr->_node.pRight->resultType;
if ((!IS_NUMERIC_TYPE(leftType) && !IS_TIMESTAMP_TYPE(leftType)) ||
(!IS_NUMERIC_TYPE(rightType) && !IS_TIMESTAMP_TYPE(rightType))) {
return TSDB_CODE_TSC_INVALID_OPERATION;
......@@ -133,6 +135,171 @@ int32_t exprTreeValidateExprNode(tExprNode *pExpr) {
pExpr->resultBytes = tDataTypes[TSDB_DATA_TYPE_DOUBLE].bytes;
}
return TSDB_CODE_SUCCESS;
} else if (pExpr->_node.optr == TSDB_BINARY_OP_BITAND) {
if ((leftType != TSDB_DATA_TYPE_BOOL && !IS_SIGNED_NUMERIC_TYPE(leftType) && !IS_UNSIGNED_NUMERIC_TYPE(leftType)) ||
(rightType != TSDB_DATA_TYPE_BOOL && !IS_SIGNED_NUMERIC_TYPE(rightType) && !IS_UNSIGNED_NUMERIC_TYPE(rightType)))
{
return TSDB_CODE_TSC_INVALID_OPERATION;
}
uint8_t schemaType;
// now leftType and rightType are both numeric
if (pExpr->_node.pLeft->nodeType == TSQL_NODE_COL && pExpr->_node.pRight->nodeType == TSQL_NODE_COL) {
if (leftType != rightType) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
} else if (pExpr->_node.pLeft->nodeType == TSQL_NODE_COL) {
if (pExpr->_node.pRight->nodeType != TSQL_NODE_VALUE) {
return TSDB_CODE_TSC_INVALID_OPERATION;
} else {
schemaType = pExpr->_node.pLeft->pSchema->type;
int64_t sVal = pExpr->_node.pRight->pVal->i64;
uint64_t uVal = pExpr->_node.pRight->pVal->u64;
switch (schemaType) {
case TSDB_DATA_TYPE_BOOL:
if ((pExpr->_node.pRight->pVal->nType != TSDB_DATA_TYPE_BOOL) ||
(pExpr->_node.pRight->pVal->i64 != 0 &&
pExpr->_node.pRight->pVal->i64 != 1 &&
pExpr->_node.pRight->pVal->i64 != TSDB_DATA_BOOL_NULL))
{
return TSDB_CODE_TSC_INVALID_OPERATION;
}
break;
case TSDB_DATA_TYPE_TINYINT:
if (sVal < -128 || sVal > 127) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
break;
case TSDB_DATA_TYPE_SMALLINT:
if (sVal < -65536 || sVal > 65535) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
break;
case TSDB_DATA_TYPE_INT:
if (sVal < INT32_MIN || sVal > INT32_MAX) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
break;
case TSDB_DATA_TYPE_BIGINT:
if (sVal < INT64_MIN || sVal > INT64_MAX) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
break;
case TSDB_DATA_TYPE_UTINYINT:
if (uVal > 128) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
break;
case TSDB_DATA_TYPE_USMALLINT:
if (uVal > 65536) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
break;
case TSDB_DATA_TYPE_UINT:
if (uVal > UINT32_MAX) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
break;
case TSDB_DATA_TYPE_UBIGINT:
if (uVal > UINT64_MAX) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
break;
}
pExpr->_node.pRight->pSchema->type = schemaType;
pExpr->_node.pRight->pVal->nType = schemaType;
pExpr->_node.pRight->resultType = schemaType;
pExpr->_node.pRight->resultBytes = tDataTypes[schemaType].bytes;
}
} else {
if (pExpr->_node.pLeft->nodeType != TSQL_NODE_VALUE) {
return TSDB_CODE_TSC_INVALID_OPERATION;
} else {
schemaType = pExpr->_node.pRight->pSchema->type;
int64_t sVal = pExpr->_node.pLeft->pVal->i64;
uint64_t uVal = pExpr->_node.pLeft->pVal->u64;
switch (schemaType) {
case TSDB_DATA_TYPE_BOOL:
if ((pExpr->_node.pLeft->pVal->nType != TSDB_DATA_TYPE_BOOL) ||
(pExpr->_node.pLeft->pVal->i64 != 0 &&
pExpr->_node.pLeft->pVal->i64 != 1 &&
pExpr->_node.pLeft->pVal->i64 != TSDB_DATA_BOOL_NULL))
{
return TSDB_CODE_TSC_INVALID_OPERATION;
}
pExpr->_node.pLeft->pVal->nLen = 1;
break;
case TSDB_DATA_TYPE_TINYINT:
if (sVal < -128 || sVal > 127) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
pExpr->_node.pLeft->pVal->nLen = 1;
break;
case TSDB_DATA_TYPE_SMALLINT:
if (sVal < -65536 || sVal > 65535) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
pExpr->_node.pLeft->pVal->nLen = 2;
break;
case TSDB_DATA_TYPE_INT:
if (sVal < INT32_MIN || sVal > INT32_MAX) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
pExpr->_node.pLeft->pVal->nLen = 4;
break;
case TSDB_DATA_TYPE_BIGINT:
if (sVal < INT64_MIN || sVal > INT64_MAX) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
pExpr->_node.pLeft->pVal->nLen = 8;
break;
case TSDB_DATA_TYPE_UTINYINT:
if (uVal > 128) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
pExpr->_node.pLeft->pVal->nLen = 1;
break;
case TSDB_DATA_TYPE_USMALLINT:
if (uVal > 65536) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
pExpr->_node.pLeft->pVal->nLen = 2;
break;
case TSDB_DATA_TYPE_UINT:
if (uVal > UINT32_MAX) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
pExpr->_node.pLeft->pVal->nLen = 4;
break;
case TSDB_DATA_TYPE_UBIGINT:
if (uVal > UINT64_MAX) {
return TSDB_CODE_TSC_INVALID_OPERATION;
}
pExpr->_node.pLeft->pVal->nLen = 8;
break;
}
pExpr->_node.pLeft->pSchema->type = schemaType;
pExpr->_node.pLeft->pVal->nType = schemaType;
pExpr->_node.pLeft->resultType = schemaType;
pExpr->_node.pLeft->resultBytes = tDataTypes[schemaType].bytes;
}
resultType = schemaType;
}
if (resultType == TSDB_DATA_TYPE_BOOL) {
pExpr->resultType = TSDB_DATA_TYPE_BOOL;
pExpr->resultBytes = tDataTypes[TSDB_DATA_TYPE_BOOL].bytes;
} else {
pExpr->resultType = resultType;
pExpr->resultBytes = tDataTypes[resultType].bytes;
}
return TSDB_CODE_SUCCESS;
} else {
return TSDB_CODE_SUCCESS;
}
......@@ -535,7 +702,11 @@ void exprTreeExprNodeTraverse(tExprNode *pExpr, int32_t numOfRows, tExprOperandI
if(leftType == TSDB_DATA_TYPE_TIMESTAMP || rightType == TSDB_DATA_TYPE_TIMESTAMP) {
output->type = TSDB_DATA_TYPE_BIGINT;
} else {
output->type = TSDB_DATA_TYPE_DOUBLE;
if (pExpr->_node.optr == TSDB_BINARY_OP_BITAND) {
output->type = leftType; // rightType must be the same as leftType
} else {
output->type = TSDB_DATA_TYPE_DOUBLE;
}
}
output->bytes = tDataTypes[output->type].bytes;
......
......@@ -183,10 +183,11 @@ do { \
#define TSDB_BINARY_OP_MULTIPLY 32
#define TSDB_BINARY_OP_DIVIDE 33
#define TSDB_BINARY_OP_REMAINDER 34
#define TSDB_BINARY_OP_BITAND 35
#define IS_RELATION_OPTR(op) (((op) >= TSDB_RELATION_LESS) && ((op) < TSDB_RELATION_IN))
#define IS_ARITHMETIC_OPTR(op) (((op) >= TSDB_BINARY_OP_ADD) && ((op) <= TSDB_BINARY_OP_REMAINDER))
#define IS_ARITHMETIC_OPTR(op) (((op) >= TSDB_BINARY_OP_ADD) && ((op) <= TSDB_BINARY_OP_BITAND))
#define TS_PATH_DELIMITER_LEN 1
......
......@@ -801,6 +801,7 @@ expr(A) ::= expr(X) MINUS expr(Y). {A = tSqlExprCreate(X, Y, TK_MINUS); }
expr(A) ::= expr(X) STAR expr(Y). {A = tSqlExprCreate(X, Y, TK_STAR); }
expr(A) ::= expr(X) SLASH expr(Y). {A = tSqlExprCreate(X, Y, TK_DIVIDE);}
expr(A) ::= expr(X) REM expr(Y). {A = tSqlExprCreate(X, Y, TK_REM); }
expr(A) ::= expr(X) BITAND expr(Y). {A = tSqlExprCreate(X, Y, TK_BITAND);}
// like expression
expr(A) ::= expr(X) LIKE expr(Y). {A = tSqlExprCreate(X, Y, TK_LIKE); }
......
......@@ -23,7 +23,6 @@
** input grammar file:
*/
#include <stdio.h>
#include <assert.h>
/************ Begin %include sections from the grammar ************************/
#include <stdio.h>
......@@ -77,10 +76,8 @@
** zero the stack is dynamically sized using realloc()
** ParseARG_SDECL A static variable declaration for the %extra_argument
** ParseARG_PDECL A parameter declaration for the %extra_argument
** ParseARG_PARAM Code to pass %extra_argument as a subroutine parameter
** ParseARG_STORE Code to store %extra_argument into yypParser
** ParseARG_FETCH Code to extract %extra_argument from yypParser
** ParseCTX_* As ParseARG_ except for %extra_context
** YYERRORSYMBOL is the code number of the error symbol. If not
** defined, then do no error processing.
** YYNSTATE the combined number of states.
......@@ -100,59 +97,51 @@
#endif
/************* Begin control #defines *****************************************/
#define YYCODETYPE unsigned short int
#define YYNOCODE 290
#define YYNOCODE 292
#define YYACTIONTYPE unsigned short int
#define ParseTOKENTYPE SStrToken
typedef union {
int yyinit;
ParseTOKENTYPE yy0;
SRelationInfo* yy84;
SArray* yy161;
SSessionWindowVal yy219;
TAOS_FIELD yy223;
SCreateAcctInfo yy231;
SSqlNode* yy276;
SIntervalVal yy300;
SCreateDbInfo yy302;
SCreatedTableInfo yy356;
int64_t yy369;
SLimitVal yy394;
SRangeVal yy420;
int yy452;
SCreateTableSql* yy462;
int32_t yy520;
tVariant yy526;
tSqlExpr* yy546;
SWindowStateVal yy548;
SLimitVal yy6;
SSqlNode* yy86;
tVariant yy110;
TAOS_FIELD yy115;
tSqlExpr* yy142;
SIntervalVal yy238;
SSessionWindowVal yy319;
SRelationInfo* yy328;
SRangeVal yy330;
SCreateDbInfo yy436;
SCreatedTableInfo yy480;
int32_t yy508;
SCreateAcctInfo yy517;
SArray* yy525;
int64_t yy543;
SWindowStateVal yy546;
SCreateTableSql* yy572;
int yy580;
} YYMINORTYPE;
#ifndef YYSTACKDEPTH
#define YYSTACKDEPTH 100
#endif
#define ParseARG_SDECL SSqlInfo* pInfo;
#define ParseARG_PDECL ,SSqlInfo* pInfo
#define ParseARG_PARAM ,pInfo
#define ParseARG_FETCH SSqlInfo* pInfo=yypParser->pInfo;
#define ParseARG_STORE yypParser->pInfo=pInfo;
#define ParseCTX_SDECL
#define ParseCTX_PDECL
#define ParseCTX_PARAM
#define ParseCTX_FETCH
#define ParseCTX_STORE
#define ParseARG_FETCH SSqlInfo* pInfo = yypParser->pInfo
#define ParseARG_STORE yypParser->pInfo = pInfo
#define YYFALLBACK 1
#define YYNSTATE 398
#define YYNRULE 320
#define YYNRULE_WITH_ACTION 320
#define YYNSTATE 400
#define YYNRULE 321
#define YYNTOKEN 204
#define YY_MAX_SHIFT 397
#define YY_MIN_SHIFTREDUCE 625
#define YY_MAX_SHIFTREDUCE 944
#define YY_ERROR_ACTION 945
#define YY_ACCEPT_ACTION 946
#define YY_NO_ACTION 947
#define YY_MIN_REDUCE 948
#define YY_MAX_REDUCE 1267
#define YY_MAX_SHIFT 399
#define YY_MIN_SHIFTREDUCE 627
#define YY_MAX_SHIFTREDUCE 947
#define YY_ERROR_ACTION 948
#define YY_ACCEPT_ACTION 949
#define YY_NO_ACTION 950
#define YY_MIN_REDUCE 951
#define YY_MAX_REDUCE 1271
/************* End control #defines *******************************************/
#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
/* Define the yytestcase() macro to be a no-op if is not already defined
** otherwise.
......@@ -217,318 +206,322 @@ typedef union {
** yy_default[] Default action for each state.
**
*********** Begin parsing tables **********************************************/
#define YY_ACTTAB_COUNT (865)
#define YY_ACTTAB_COUNT (882)
static const YYACTIONTYPE yy_action[] = {
/* 0 */ 105, 676, 1097, 1131, 946, 397, 262, 760, 676, 677,
/* 10 */ 1183, 712, 1184, 314, 37, 38, 677, 41, 42, 396,
/* 20 */ 243, 265, 31, 30, 29, 1089, 163, 40, 347, 45,
/* 30 */ 43, 46, 44, 1086, 1087, 55, 1090, 36, 35, 372,
/* 40 */ 371, 34, 33, 32, 37, 38, 252, 41, 42, 258,
/* 50 */ 85, 265, 31, 30, 29, 24, 1122, 40, 347, 45,
/* 60 */ 43, 46, 44, 318, 100, 1241, 99, 36, 35, 218,
/* 70 */ 214, 34, 33, 32, 288, 1128, 131, 125, 136, 1241,
/* 80 */ 1241, 1243, 1244, 135, 1088, 141, 144, 134, 37, 38,
/* 90 */ 88, 41, 42, 51, 138, 265, 31, 30, 29, 295,
/* 100 */ 294, 40, 347, 45, 43, 46, 44, 343, 34, 33,
/* 110 */ 32, 36, 35, 343, 216, 34, 33, 32, 37, 38,
/* 120 */ 58, 41, 42, 59, 1241, 265, 31, 30, 29, 275,
/* 130 */ 676, 40, 347, 45, 43, 46, 44, 880, 677, 883,
/* 140 */ 185, 36, 35, 676, 217, 34, 33, 32, 13, 37,
/* 150 */ 39, 677, 41, 42, 1241, 382, 265, 31, 30, 29,
/* 160 */ 1106, 874, 40, 347, 45, 43, 46, 44, 245, 395,
/* 170 */ 393, 653, 36, 35, 59, 1104, 34, 33, 32, 209,
/* 180 */ 207, 205, 107, 86, 390, 1034, 204, 151, 150, 149,
/* 190 */ 148, 626, 627, 628, 629, 630, 631, 632, 633, 634,
/* 200 */ 635, 636, 637, 638, 639, 160, 250, 244, 38, 1263,
/* 210 */ 41, 42, 345, 1107, 265, 31, 30, 29, 280, 255,
/* 220 */ 40, 347, 45, 43, 46, 44, 1104, 284, 283, 317,
/* 230 */ 36, 35, 1, 187, 34, 33, 32, 223, 41, 42,
/* 240 */ 268, 178, 265, 31, 30, 29, 1255, 1241, 40, 347,
/* 250 */ 45, 43, 46, 44, 879, 296, 882, 888, 36, 35,
/* 260 */ 304, 94, 34, 33, 32, 67, 341, 389, 388, 340,
/* 270 */ 339, 338, 387, 337, 336, 335, 386, 334, 385, 384,
/* 280 */ 25, 59, 1065, 1053, 1054, 1055, 1056, 1057, 1058, 1059,
/* 290 */ 1060, 1061, 1062, 1063, 1064, 1066, 1067, 222, 224, 237,
/* 300 */ 890, 68, 297, 878, 230, 881, 352, 884, 1241, 1122,
/* 310 */ 147, 146, 145, 229, 181, 237, 890, 355, 94, 878,
/* 320 */ 269, 881, 267, 884, 358, 357, 256, 246, 59, 45,
/* 330 */ 43, 46, 44, 1104, 225, 241, 242, 36, 35, 349,
/* 340 */ 261, 34, 33, 32, 1241, 59, 5, 62, 189, 1194,
/* 350 */ 1122, 241, 242, 188, 114, 119, 110, 118, 68, 788,
/* 360 */ 274, 1233, 785, 257, 786, 108, 787, 266, 247, 1232,
/* 370 */ 1107, 1241, 330, 359, 889, 67, 1193, 389, 388, 1241,
/* 380 */ 1104, 287, 387, 84, 47, 285, 386, 822, 385, 384,
/* 390 */ 238, 825, 1231, 346, 270, 271, 1073, 1103, 1071, 1072,
/* 400 */ 47, 1091, 1241, 1074, 218, 59, 59, 1075, 59, 1076,
/* 410 */ 1077, 59, 161, 895, 1241, 345, 1244, 239, 79, 300,
/* 420 */ 301, 891, 885, 887, 36, 35, 59, 1241, 34, 33,
/* 430 */ 32, 218, 264, 159, 157, 156, 133, 891, 885, 887,
/* 440 */ 276, 1241, 273, 1244, 367, 366, 886, 59, 382, 59,
/* 450 */ 360, 361, 806, 362, 6, 240, 368, 1104, 1104, 220,
/* 460 */ 1104, 80, 886, 1104, 221, 1241, 226, 219, 275, 1241,
/* 470 */ 854, 369, 227, 228, 1241, 232, 1241, 1241, 1104, 186,
/* 480 */ 789, 272, 1241, 1241, 91, 1241, 233, 92, 234, 275,
/* 490 */ 259, 275, 370, 231, 374, 215, 1241, 1107, 1241, 1104,
/* 500 */ 348, 1104, 1105, 1241, 996, 1241, 248, 834, 835, 1006,
/* 510 */ 1181, 199, 1182, 102, 997, 101, 199, 103, 3, 200,
/* 520 */ 289, 199, 803, 831, 291, 299, 298, 291, 841, 842,
/* 530 */ 853, 76, 89, 770, 60, 322, 772, 165, 324, 771,
/* 540 */ 810, 54, 71, 48, 919, 892, 351, 60, 263, 60,
/* 550 */ 71, 10, 106, 71, 15, 675, 14, 83, 9, 9,
/* 560 */ 124, 17, 123, 16, 795, 793, 796, 794, 350, 9,
/* 570 */ 364, 363, 253, 19, 325, 18, 77, 130, 21, 129,
/* 580 */ 20, 143, 142, 1190, 1189, 254, 373, 162, 877, 759,
/* 590 */ 1102, 1130, 26, 1173, 1141, 1138, 1172, 1139, 1123, 292,
/* 600 */ 1143, 164, 169, 1098, 310, 1171, 1170, 180, 182, 1096,
/* 610 */ 183, 184, 1011, 158, 821, 327, 328, 303, 329, 332,
/* 620 */ 333, 69, 212, 65, 344, 1005, 249, 170, 356, 1262,
/* 630 */ 305, 307, 121, 1261, 1258, 190, 81, 365, 1254, 1120,
/* 640 */ 127, 1253, 78, 1250, 191, 1031, 66, 319, 171, 61,
/* 650 */ 70, 213, 28, 993, 315, 173, 137, 309, 313, 991,
/* 660 */ 139, 311, 140, 172, 306, 989, 988, 277, 202, 203,
/* 670 */ 985, 984, 983, 982, 302, 981, 980, 27, 979, 206,
/* 680 */ 208, 971, 210, 968, 211, 964, 87, 331, 290, 1100,
/* 690 */ 90, 95, 308, 383, 376, 132, 375, 377, 378, 379,
/* 700 */ 82, 380, 381, 260, 391, 944, 326, 279, 943, 282,
/* 710 */ 942, 278, 235, 236, 281, 925, 924, 115, 1010, 1009,
/* 720 */ 116, 286, 321, 291, 11, 293, 987, 93, 798, 52,
/* 730 */ 96, 830, 986, 193, 1032, 194, 195, 192, 196, 198,
/* 740 */ 197, 152, 828, 153, 978, 977, 320, 1069, 154, 1033,
/* 750 */ 155, 74, 176, 174, 175, 177, 970, 53, 179, 969,
/* 760 */ 1079, 2, 4, 824, 823, 75, 166, 827, 832, 843,
/* 770 */ 167, 168, 837, 97, 251, 839, 98, 312, 63, 350,
/* 780 */ 316, 12, 104, 49, 22, 23, 323, 64, 107, 109,
/* 790 */ 56, 111, 50, 112, 690, 725, 723, 722, 721, 57,
/* 800 */ 113, 719, 718, 717, 714, 680, 342, 117, 7, 916,
/* 810 */ 914, 894, 917, 893, 915, 8, 896, 354, 120, 72,
/* 820 */ 122, 60, 353, 792, 73, 762, 126, 128, 761, 758,
/* 830 */ 706, 704, 696, 702, 791, 698, 700, 694, 692, 728,
/* 840 */ 727, 726, 724, 720, 716, 715, 201, 643, 948, 678,
/* 850 */ 652, 392, 650, 947, 947, 947, 947, 947, 947, 947,
/* 860 */ 947, 947, 947, 947, 394,
/* 0 */ 219, 678, 1100, 164, 949, 399, 24, 762, 1134, 679,
/* 10 */ 1245, 678, 1247, 252, 38, 39, 1245, 42, 43, 679,
/* 20 */ 1110, 267, 31, 30, 29, 398, 245, 41, 349, 46,
/* 30 */ 44, 47, 45, 32, 109, 1109, 217, 37, 36, 374,
/* 40 */ 373, 35, 34, 33, 38, 39, 1245, 42, 43, 260,
/* 50 */ 179, 267, 31, 30, 29, 254, 1125, 41, 349, 46,
/* 60 */ 44, 47, 45, 32, 35, 34, 33, 37, 36, 306,
/* 70 */ 1094, 35, 34, 33, 290, 678, 297, 296, 38, 39,
/* 80 */ 1131, 42, 43, 679, 714, 267, 31, 30, 29, 60,
/* 90 */ 89, 41, 349, 46, 44, 47, 45, 32, 397, 395,
/* 100 */ 655, 37, 36, 218, 223, 35, 34, 33, 38, 39,
/* 110 */ 13, 42, 43, 1245, 1245, 267, 31, 30, 29, 224,
/* 120 */ 59, 41, 349, 46, 44, 47, 45, 32, 882, 1245,
/* 130 */ 885, 37, 36, 345, 247, 35, 34, 33, 60, 38,
/* 140 */ 40, 1107, 42, 43, 108, 87, 267, 31, 30, 29,
/* 150 */ 277, 876, 41, 349, 46, 44, 47, 45, 32, 86,
/* 160 */ 52, 186, 37, 36, 225, 678, 35, 34, 33, 39,
/* 170 */ 236, 42, 43, 679, 1245, 267, 31, 30, 29, 1236,
/* 180 */ 1245, 41, 349, 46, 44, 47, 45, 32, 60, 1245,
/* 190 */ 1106, 37, 36, 1091, 95, 35, 34, 33, 68, 343,
/* 200 */ 391, 390, 342, 341, 340, 389, 339, 338, 337, 388,
/* 210 */ 336, 387, 386, 628, 629, 630, 631, 632, 633, 634,
/* 220 */ 635, 636, 637, 638, 639, 640, 641, 161, 881, 246,
/* 230 */ 884, 42, 43, 257, 69, 267, 31, 30, 29, 1235,
/* 240 */ 1107, 41, 349, 46, 44, 47, 45, 32, 890, 1245,
/* 250 */ 384, 37, 36, 60, 1267, 35, 34, 33, 25, 1068,
/* 260 */ 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
/* 270 */ 1066, 1067, 1069, 1070, 1125, 229, 1259, 239, 892, 836,
/* 280 */ 837, 880, 231, 883, 1186, 886, 1187, 316, 148, 147,
/* 290 */ 146, 230, 248, 239, 892, 357, 95, 880, 258, 883,
/* 300 */ 1184, 886, 1185, 264, 103, 1107, 102, 46, 44, 47,
/* 310 */ 45, 32, 1234, 243, 244, 37, 36, 351, 282, 35,
/* 320 */ 34, 33, 1245, 1092, 5, 63, 190, 286, 285, 243,
/* 330 */ 244, 189, 115, 120, 111, 119, 69, 790, 320, 101,
/* 340 */ 787, 100, 788, 298, 789, 132, 126, 137, 891, 353,
/* 350 */ 332, 60, 136, 106, 142, 145, 135, 259, 261, 289,
/* 360 */ 241, 85, 48, 139, 1110, 1110, 270, 215, 240, 277,
/* 370 */ 1245, 352, 272, 273, 210, 208, 206, 1245, 48, 1248,
/* 380 */ 187, 205, 152, 151, 150, 149, 1089, 1090, 56, 1093,
/* 390 */ 276, 68, 263, 391, 390, 277, 361, 268, 389, 893,
/* 400 */ 887, 889, 388, 1107, 387, 386, 350, 1076, 60, 1074,
/* 410 */ 1075, 345, 60, 104, 1077, 893, 887, 889, 1078, 299,
/* 420 */ 1079, 1080, 824, 348, 888, 32, 827, 134, 90, 37,
/* 430 */ 36, 60, 1197, 35, 34, 33, 1196, 37, 36, 384,
/* 440 */ 888, 35, 34, 33, 60, 347, 271, 1125, 269, 60,
/* 450 */ 360, 359, 60, 362, 302, 303, 219, 363, 791, 274,
/* 460 */ 1107, 219, 266, 60, 1107, 249, 1245, 808, 1248, 354,
/* 470 */ 278, 1245, 275, 1248, 369, 368, 364, 160, 158, 157,
/* 480 */ 242, 221, 222, 1107, 6, 226, 856, 277, 291, 370,
/* 490 */ 1245, 1245, 1245, 220, 371, 1245, 1107, 372, 1108, 227,
/* 500 */ 228, 1107, 61, 1245, 1107, 805, 233, 234, 376, 1245,
/* 510 */ 1245, 235, 232, 999, 216, 1107, 1245, 1245, 1009, 1000,
/* 520 */ 200, 1245, 1245, 92, 1245, 200, 200, 392, 1037, 1,
/* 530 */ 188, 3, 201, 93, 10, 301, 300, 833, 843, 844,
/* 540 */ 347, 250, 77, 80, 772, 324, 855, 774, 326, 265,
/* 550 */ 773, 166, 72, 49, 922, 812, 894, 319, 61, 61,
/* 560 */ 55, 72, 107, 293, 72, 677, 84, 15, 9, 14,
/* 570 */ 9, 182, 125, 293, 124, 17, 897, 16, 797, 9,
/* 580 */ 798, 795, 287, 796, 366, 365, 81, 78, 19, 879,
/* 590 */ 18, 255, 131, 327, 130, 144, 143, 21, 761, 20,
/* 600 */ 1193, 1192, 256, 375, 162, 26, 163, 1126, 294, 1105,
/* 610 */ 1133, 181, 1144, 1176, 1141, 1142, 1146, 165, 1175, 170,
/* 620 */ 312, 1174, 1101, 1173, 159, 183, 1123, 1099, 184, 823,
/* 630 */ 185, 1014, 329, 173, 330, 331, 334, 335, 70, 213,
/* 640 */ 66, 346, 305, 251, 1008, 358, 307, 1266, 309, 82,
/* 650 */ 122, 171, 1265, 79, 1262, 191, 367, 321, 172, 28,
/* 660 */ 174, 1258, 128, 1257, 317, 315, 1254, 313, 311, 192,
/* 670 */ 308, 1034, 67, 62, 304, 71, 88, 214, 996, 138,
/* 680 */ 994, 178, 140, 141, 992, 175, 991, 27, 279, 203,
/* 690 */ 204, 988, 987, 986, 985, 984, 983, 982, 207, 209,
/* 700 */ 333, 974, 211, 971, 212, 385, 967, 378, 133, 292,
/* 710 */ 1103, 91, 96, 377, 310, 379, 380, 381, 382, 383,
/* 720 */ 393, 83, 947, 281, 262, 328, 280, 946, 283, 284,
/* 730 */ 945, 928, 927, 237, 288, 238, 116, 1013, 293, 1012,
/* 740 */ 117, 323, 11, 94, 800, 53, 295, 97, 832, 75,
/* 750 */ 830, 990, 826, 195, 194, 1035, 153, 193, 989, 197,
/* 760 */ 196, 198, 199, 154, 981, 829, 155, 322, 1072, 1036,
/* 770 */ 980, 825, 156, 973, 54, 176, 177, 180, 972, 2,
/* 780 */ 76, 4, 834, 167, 1082, 845, 168, 169, 839, 98,
/* 790 */ 253, 841, 99, 314, 64, 352, 318, 65, 105, 22,
/* 800 */ 12, 23, 50, 325, 57, 51, 113, 108, 110, 692,
/* 810 */ 112, 727, 58, 114, 725, 724, 723, 721, 720, 719,
/* 820 */ 716, 344, 682, 118, 7, 919, 917, 896, 920, 895,
/* 830 */ 918, 8, 898, 356, 355, 73, 121, 123, 61, 74,
/* 840 */ 794, 764, 763, 127, 129, 760, 708, 706, 698, 704,
/* 850 */ 700, 702, 793, 696, 694, 730, 729, 728, 726, 722,
/* 860 */ 718, 717, 202, 680, 645, 951, 654, 652, 950, 394,
/* 870 */ 950, 950, 950, 950, 950, 950, 950, 950, 950, 950,
/* 880 */ 950, 396,
};
static const YYCODETYPE yy_lookahead[] = {
/* 0 */ 214, 1, 206, 206, 204, 205, 213, 5, 1, 9,
/* 10 */ 285, 5, 287, 288, 14, 15, 9, 17, 18, 206,
/* 20 */ 207, 21, 22, 23, 24, 0, 206, 27, 28, 29,
/* 30 */ 30, 31, 32, 247, 248, 249, 250, 37, 38, 37,
/* 40 */ 38, 41, 42, 43, 14, 15, 1, 17, 18, 253,
/* 50 */ 214, 21, 22, 23, 24, 277, 256, 27, 28, 29,
/* 60 */ 30, 31, 32, 284, 285, 287, 287, 37, 38, 277,
/* 70 */ 277, 41, 42, 43, 274, 278, 66, 67, 68, 287,
/* 80 */ 287, 289, 289, 73, 248, 75, 76, 77, 14, 15,
/* 90 */ 90, 17, 18, 86, 84, 21, 22, 23, 24, 279,
/* 100 */ 280, 27, 28, 29, 30, 31, 32, 88, 41, 42,
/* 110 */ 43, 37, 38, 88, 277, 41, 42, 43, 14, 15,
/* 120 */ 90, 17, 18, 206, 287, 21, 22, 23, 24, 206,
/* 130 */ 1, 27, 28, 29, 30, 31, 32, 5, 9, 7,
/* 140 */ 217, 37, 38, 1, 277, 41, 42, 43, 86, 14,
/* 150 */ 15, 9, 17, 18, 287, 94, 21, 22, 23, 24,
/* 160 */ 259, 87, 27, 28, 29, 30, 31, 32, 251, 69,
/* 170 */ 70, 71, 37, 38, 206, 258, 41, 42, 43, 66,
/* 180 */ 67, 68, 120, 121, 228, 229, 73, 74, 75, 76,
/* 190 */ 77, 49, 50, 51, 52, 53, 54, 55, 56, 57,
/* 200 */ 58, 59, 60, 61, 62, 63, 252, 65, 15, 259,
/* 210 */ 17, 18, 47, 259, 21, 22, 23, 24, 150, 251,
/* 220 */ 27, 28, 29, 30, 31, 32, 258, 159, 160, 64,
/* 230 */ 37, 38, 215, 216, 41, 42, 43, 277, 17, 18,
/* 240 */ 72, 264, 21, 22, 23, 24, 259, 287, 27, 28,
/* 250 */ 29, 30, 31, 32, 5, 282, 7, 125, 37, 38,
/* 260 */ 283, 86, 41, 42, 43, 102, 103, 104, 105, 106,
/* 270 */ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
/* 280 */ 48, 206, 230, 231, 232, 233, 234, 235, 236, 237,
/* 290 */ 238, 239, 240, 241, 242, 243, 244, 65, 277, 1,
/* 300 */ 2, 126, 282, 5, 72, 7, 16, 9, 287, 256,
/* 310 */ 78, 79, 80, 81, 254, 1, 2, 85, 86, 5,
/* 320 */ 152, 7, 154, 9, 156, 157, 251, 274, 206, 29,
/* 330 */ 30, 31, 32, 258, 277, 37, 38, 37, 38, 41,
/* 340 */ 213, 41, 42, 43, 287, 206, 66, 67, 68, 246,
/* 350 */ 256, 37, 38, 73, 74, 75, 76, 77, 126, 2,
/* 360 */ 72, 277, 5, 252, 7, 214, 9, 213, 274, 277,
/* 370 */ 259, 287, 92, 251, 125, 102, 246, 104, 105, 287,
/* 380 */ 258, 149, 109, 151, 86, 206, 113, 5, 115, 116,
/* 390 */ 158, 9, 277, 25, 37, 38, 230, 258, 232, 233,
/* 400 */ 86, 250, 287, 237, 277, 206, 206, 241, 206, 243,
/* 410 */ 244, 206, 206, 123, 287, 47, 289, 277, 101, 37,
/* 420 */ 38, 123, 124, 125, 37, 38, 206, 287, 41, 42,
/* 430 */ 43, 277, 64, 66, 67, 68, 82, 123, 124, 125,
/* 440 */ 152, 287, 154, 289, 156, 157, 148, 206, 94, 206,
/* 450 */ 251, 251, 41, 251, 86, 277, 251, 258, 258, 277,
/* 460 */ 258, 144, 148, 258, 277, 287, 277, 277, 206, 287,
/* 470 */ 80, 251, 277, 277, 287, 277, 287, 287, 258, 217,
/* 480 */ 123, 124, 287, 287, 87, 287, 277, 87, 277, 206,
/* 490 */ 252, 206, 251, 277, 251, 277, 287, 259, 287, 258,
/* 500 */ 217, 258, 217, 287, 212, 287, 124, 132, 133, 212,
/* 510 */ 285, 219, 287, 285, 212, 287, 219, 260, 210, 211,
/* 520 */ 87, 219, 101, 87, 127, 37, 38, 127, 87, 87,
/* 530 */ 140, 101, 275, 87, 101, 87, 87, 101, 87, 87,
/* 540 */ 129, 86, 101, 101, 87, 87, 25, 101, 1, 101,
/* 550 */ 101, 130, 101, 101, 153, 87, 155, 86, 101, 101,
/* 560 */ 153, 153, 155, 155, 5, 5, 7, 7, 47, 101,
/* 570 */ 37, 38, 246, 153, 119, 155, 146, 153, 153, 155,
/* 580 */ 155, 82, 83, 246, 246, 246, 246, 206, 41, 118,
/* 590 */ 206, 206, 276, 286, 206, 206, 286, 206, 256, 256,
/* 600 */ 206, 206, 206, 256, 206, 286, 286, 261, 206, 206,
/* 610 */ 206, 206, 206, 64, 125, 206, 206, 281, 206, 206,
/* 620 */ 206, 206, 206, 206, 206, 206, 281, 272, 206, 206,
/* 630 */ 281, 281, 206, 206, 206, 206, 143, 206, 206, 273,
/* 640 */ 206, 206, 145, 206, 206, 206, 206, 138, 271, 206,
/* 650 */ 206, 206, 142, 206, 141, 269, 206, 134, 136, 206,
/* 660 */ 206, 135, 206, 270, 137, 206, 206, 206, 206, 206,
/* 670 */ 206, 206, 206, 206, 131, 206, 206, 147, 206, 206,
/* 680 */ 206, 206, 206, 206, 206, 206, 122, 93, 208, 208,
/* 690 */ 208, 208, 208, 117, 55, 100, 99, 96, 98, 59,
/* 700 */ 208, 97, 95, 208, 88, 5, 208, 5, 5, 5,
/* 710 */ 5, 161, 208, 208, 161, 104, 103, 214, 218, 218,
/* 720 */ 214, 150, 119, 127, 86, 101, 208, 128, 87, 86,
/* 730 */ 101, 87, 208, 225, 227, 221, 224, 226, 222, 220,
/* 740 */ 223, 209, 125, 209, 208, 208, 255, 245, 209, 229,
/* 750 */ 209, 101, 266, 268, 267, 265, 208, 263, 262, 208,
/* 760 */ 245, 215, 210, 5, 5, 86, 86, 125, 87, 87,
/* 770 */ 86, 101, 87, 86, 1, 87, 86, 86, 101, 47,
/* 780 */ 1, 86, 90, 86, 139, 139, 119, 101, 120, 82,
/* 790 */ 91, 90, 86, 74, 5, 9, 5, 5, 5, 91,
/* 800 */ 90, 5, 5, 5, 5, 89, 16, 82, 86, 9,
/* 810 */ 9, 87, 9, 87, 9, 86, 123, 63, 155, 17,
/* 820 */ 155, 101, 28, 125, 17, 5, 155, 155, 5, 87,
/* 830 */ 5, 5, 5, 5, 125, 5, 5, 5, 5, 5,
/* 840 */ 5, 5, 5, 5, 5, 5, 101, 64, 0, 89,
/* 850 */ 9, 22, 9, 290, 290, 290, 290, 290, 290, 290,
/* 860 */ 290, 290, 290, 290, 22, 290, 290, 290, 290, 290,
/* 870 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 880 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 890 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 900 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 910 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 920 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 930 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 940 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 950 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 960 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 970 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 980 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 990 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 1000 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 1010 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 1020 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 1030 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 1040 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 1050 */ 290, 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 1060 */ 290, 290, 290, 290, 290, 290, 290, 290, 290,
/* 0 */ 278, 1, 207, 207, 205, 206, 278, 5, 207, 9,
/* 10 */ 288, 1, 290, 253, 14, 15, 288, 17, 18, 9,
/* 20 */ 260, 21, 22, 23, 24, 207, 208, 27, 28, 29,
/* 30 */ 30, 31, 32, 33, 215, 260, 278, 37, 38, 37,
/* 40 */ 38, 41, 42, 43, 14, 15, 288, 17, 18, 254,
/* 50 */ 265, 21, 22, 23, 24, 1, 257, 27, 28, 29,
/* 60 */ 30, 31, 32, 33, 41, 42, 43, 37, 38, 284,
/* 70 */ 251, 41, 42, 43, 275, 1, 280, 281, 14, 15,
/* 80 */ 279, 17, 18, 9, 5, 21, 22, 23, 24, 207,
/* 90 */ 90, 27, 28, 29, 30, 31, 32, 33, 69, 70,
/* 100 */ 71, 37, 38, 278, 278, 41, 42, 43, 14, 15,
/* 110 */ 86, 17, 18, 288, 288, 21, 22, 23, 24, 278,
/* 120 */ 90, 27, 28, 29, 30, 31, 32, 33, 5, 288,
/* 130 */ 7, 37, 38, 88, 252, 41, 42, 43, 207, 14,
/* 140 */ 15, 259, 17, 18, 120, 121, 21, 22, 23, 24,
/* 150 */ 207, 87, 27, 28, 29, 30, 31, 32, 33, 215,
/* 160 */ 86, 218, 37, 38, 278, 1, 41, 42, 43, 15,
/* 170 */ 278, 17, 18, 9, 288, 21, 22, 23, 24, 278,
/* 180 */ 288, 27, 28, 29, 30, 31, 32, 33, 207, 288,
/* 190 */ 259, 37, 38, 249, 86, 41, 42, 43, 102, 103,
/* 200 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
/* 210 */ 114, 115, 116, 49, 50, 51, 52, 53, 54, 55,
/* 220 */ 56, 57, 58, 59, 60, 61, 62, 63, 5, 65,
/* 230 */ 7, 17, 18, 252, 126, 21, 22, 23, 24, 278,
/* 240 */ 259, 27, 28, 29, 30, 31, 32, 33, 125, 288,
/* 250 */ 94, 37, 38, 207, 260, 41, 42, 43, 48, 231,
/* 260 */ 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
/* 270 */ 242, 243, 244, 245, 257, 65, 260, 1, 2, 132,
/* 280 */ 133, 5, 72, 7, 286, 9, 288, 289, 78, 79,
/* 290 */ 80, 81, 275, 1, 2, 85, 86, 5, 252, 7,
/* 300 */ 286, 9, 288, 214, 286, 259, 288, 29, 30, 31,
/* 310 */ 32, 33, 278, 37, 38, 37, 38, 41, 150, 41,
/* 320 */ 42, 43, 288, 0, 66, 67, 68, 159, 160, 37,
/* 330 */ 38, 73, 74, 75, 76, 77, 126, 2, 285, 286,
/* 340 */ 5, 288, 7, 283, 9, 66, 67, 68, 125, 25,
/* 350 */ 92, 207, 73, 215, 75, 76, 77, 253, 253, 149,
/* 360 */ 278, 151, 86, 84, 260, 260, 72, 278, 158, 207,
/* 370 */ 288, 47, 37, 38, 66, 67, 68, 288, 86, 290,
/* 380 */ 218, 73, 74, 75, 76, 77, 248, 249, 250, 251,
/* 390 */ 72, 102, 214, 104, 105, 207, 252, 214, 109, 123,
/* 400 */ 124, 125, 113, 259, 115, 116, 218, 231, 207, 233,
/* 410 */ 234, 88, 207, 261, 238, 123, 124, 125, 242, 283,
/* 420 */ 244, 245, 5, 25, 148, 33, 9, 82, 276, 37,
/* 430 */ 38, 207, 247, 41, 42, 43, 247, 37, 38, 94,
/* 440 */ 148, 41, 42, 43, 207, 47, 152, 257, 154, 207,
/* 450 */ 156, 157, 207, 252, 37, 38, 278, 252, 123, 124,
/* 460 */ 259, 278, 64, 207, 259, 275, 288, 41, 290, 16,
/* 470 */ 152, 288, 154, 290, 156, 157, 252, 66, 67, 68,
/* 480 */ 278, 278, 278, 259, 86, 278, 80, 207, 87, 252,
/* 490 */ 288, 288, 288, 278, 252, 288, 259, 252, 218, 278,
/* 500 */ 278, 259, 101, 288, 259, 101, 278, 278, 252, 288,
/* 510 */ 288, 278, 278, 213, 278, 259, 288, 288, 213, 213,
/* 520 */ 220, 288, 288, 87, 288, 220, 220, 229, 230, 216,
/* 530 */ 217, 211, 212, 87, 130, 37, 38, 87, 87, 87,
/* 540 */ 47, 124, 101, 101, 87, 87, 140, 87, 87, 1,
/* 550 */ 87, 101, 101, 101, 87, 129, 87, 64, 101, 101,
/* 560 */ 86, 101, 101, 127, 101, 87, 86, 153, 101, 155,
/* 570 */ 101, 255, 153, 127, 155, 153, 123, 155, 5, 101,
/* 580 */ 7, 5, 207, 7, 37, 38, 144, 146, 153, 41,
/* 590 */ 155, 247, 153, 119, 155, 82, 83, 153, 118, 155,
/* 600 */ 247, 247, 247, 247, 207, 277, 207, 257, 257, 207,
/* 610 */ 207, 262, 207, 287, 207, 207, 207, 207, 287, 207,
/* 620 */ 207, 287, 257, 287, 64, 207, 274, 207, 207, 125,
/* 630 */ 207, 207, 207, 271, 207, 207, 207, 207, 207, 207,
/* 640 */ 207, 207, 282, 282, 207, 207, 282, 207, 282, 143,
/* 650 */ 207, 273, 207, 145, 207, 207, 207, 138, 272, 142,
/* 660 */ 270, 207, 207, 207, 141, 136, 207, 135, 134, 207,
/* 670 */ 137, 207, 207, 207, 131, 207, 122, 207, 207, 207,
/* 680 */ 207, 266, 207, 207, 207, 269, 207, 147, 207, 207,
/* 690 */ 207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
/* 700 */ 93, 207, 207, 207, 207, 117, 207, 55, 100, 209,
/* 710 */ 209, 209, 209, 99, 209, 96, 98, 59, 97, 95,
/* 720 */ 88, 209, 5, 5, 209, 209, 161, 5, 161, 5,
/* 730 */ 5, 104, 103, 209, 150, 209, 215, 219, 127, 219,
/* 740 */ 215, 119, 86, 128, 87, 86, 101, 101, 87, 101,
/* 750 */ 125, 209, 5, 222, 226, 228, 210, 227, 209, 223,
/* 760 */ 225, 224, 221, 210, 209, 125, 210, 256, 246, 230,
/* 770 */ 209, 5, 210, 209, 264, 268, 267, 263, 209, 216,
/* 780 */ 86, 211, 87, 86, 246, 87, 86, 101, 87, 86,
/* 790 */ 1, 87, 86, 86, 101, 47, 1, 101, 90, 139,
/* 800 */ 86, 139, 86, 119, 91, 86, 74, 120, 82, 5,
/* 810 */ 90, 9, 91, 90, 5, 5, 5, 5, 5, 5,
/* 820 */ 5, 16, 89, 82, 86, 9, 9, 87, 9, 87,
/* 830 */ 9, 86, 123, 63, 28, 17, 155, 155, 101, 17,
/* 840 */ 125, 5, 5, 155, 155, 87, 5, 5, 5, 5,
/* 850 */ 5, 5, 125, 5, 5, 5, 5, 5, 5, 5,
/* 860 */ 5, 5, 101, 89, 64, 0, 9, 9, 291, 22,
/* 870 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 880 */ 291, 22, 291, 291, 291, 291, 291, 291, 291, 291,
/* 890 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 900 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 910 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 920 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 930 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 940 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 950 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 960 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 970 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 980 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 990 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 1000 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 1010 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 1020 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 1030 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 1040 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 1050 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 1060 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 1070 */ 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
/* 1080 */ 291, 291, 291, 291, 291, 291,
};
#define YY_SHIFT_COUNT (397)
#define YY_SHIFT_COUNT (399)
#define YY_SHIFT_MIN (0)
#define YY_SHIFT_MAX (848)
#define YY_SHIFT_MAX (865)
static const unsigned short int yy_shift_ofst[] = {
/* 0 */ 232, 163, 163, 273, 273, 19, 298, 314, 314, 314,
/* 10 */ 7, 129, 129, 129, 129, 129, 129, 129, 129, 129,
/* 20 */ 129, 129, 45, 45, 0, 142, 314, 314, 314, 314,
/* 30 */ 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
/* 40 */ 314, 314, 314, 314, 314, 314, 314, 314, 357, 357,
/* 50 */ 357, 175, 175, 375, 129, 25, 129, 129, 129, 129,
/* 60 */ 129, 354, 19, 45, 45, 61, 61, 6, 865, 865,
/* 70 */ 865, 357, 357, 357, 382, 382, 2, 2, 2, 2,
/* 80 */ 2, 2, 62, 2, 129, 129, 129, 129, 129, 411,
/* 90 */ 129, 129, 129, 175, 175, 129, 129, 129, 129, 390,
/* 100 */ 390, 390, 390, 421, 175, 129, 129, 129, 129, 129,
/* 110 */ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
/* 120 */ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
/* 130 */ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
/* 140 */ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
/* 150 */ 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
/* 160 */ 129, 549, 549, 549, 549, 489, 489, 489, 489, 549,
/* 170 */ 493, 497, 509, 510, 513, 522, 526, 523, 527, 543,
/* 180 */ 530, 564, 549, 549, 549, 594, 594, 576, 19, 19,
/* 190 */ 549, 549, 595, 597, 639, 601, 600, 640, 604, 607,
/* 200 */ 576, 6, 549, 549, 616, 616, 549, 616, 549, 616,
/* 210 */ 549, 549, 865, 865, 30, 74, 104, 104, 104, 135,
/* 220 */ 193, 221, 280, 300, 300, 300, 300, 300, 300, 10,
/* 230 */ 113, 387, 387, 387, 387, 168, 288, 368, 68, 67,
/* 240 */ 67, 132, 249, 100, 367, 433, 397, 400, 488, 436,
/* 250 */ 441, 442, 165, 430, 317, 446, 448, 449, 451, 452,
/* 260 */ 455, 457, 458, 521, 547, 290, 468, 401, 407, 408,
/* 270 */ 559, 560, 533, 420, 424, 471, 425, 499, 700, 550,
/* 280 */ 702, 703, 553, 704, 705, 611, 613, 571, 596, 603,
/* 290 */ 638, 599, 641, 643, 624, 629, 644, 650, 617, 642,
/* 300 */ 758, 759, 679, 681, 680, 682, 684, 685, 670, 687,
/* 310 */ 688, 690, 773, 691, 677, 645, 732, 779, 686, 646,
/* 320 */ 692, 695, 603, 697, 667, 706, 668, 707, 699, 701,
/* 330 */ 719, 789, 708, 710, 786, 791, 792, 793, 796, 797,
/* 340 */ 798, 799, 716, 790, 725, 800, 801, 722, 724, 726,
/* 350 */ 803, 805, 693, 729, 794, 754, 802, 663, 665, 720,
/* 360 */ 720, 720, 720, 698, 709, 807, 671, 672, 720, 720,
/* 370 */ 720, 820, 823, 742, 720, 825, 826, 827, 828, 830,
/* 380 */ 831, 832, 833, 834, 835, 836, 837, 838, 839, 840,
/* 390 */ 745, 760, 841, 829, 843, 842, 783, 848,
/* 0 */ 210, 96, 96, 289, 289, 45, 276, 292, 292, 292,
/* 10 */ 74, 10, 10, 10, 10, 10, 10, 10, 10, 10,
/* 20 */ 10, 10, 54, 54, 0, 164, 292, 292, 292, 292,
/* 30 */ 292, 292, 292, 292, 292, 292, 292, 292, 292, 292,
/* 40 */ 292, 292, 292, 292, 292, 292, 292, 292, 292, 335,
/* 50 */ 335, 335, 108, 108, 147, 10, 323, 10, 10, 10,
/* 60 */ 10, 10, 345, 45, 54, 54, 156, 156, 79, 882,
/* 70 */ 882, 882, 335, 335, 335, 417, 417, 2, 2, 2,
/* 80 */ 2, 2, 2, 24, 2, 10, 10, 10, 10, 10,
/* 90 */ 426, 10, 10, 10, 108, 108, 10, 10, 10, 10,
/* 100 */ 406, 406, 406, 406, 404, 108, 10, 10, 10, 10,
/* 110 */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
/* 120 */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
/* 130 */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
/* 140 */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
/* 150 */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
/* 160 */ 10, 10, 560, 560, 560, 560, 504, 504, 504, 504,
/* 170 */ 560, 506, 508, 519, 517, 523, 529, 532, 534, 533,
/* 180 */ 543, 540, 554, 560, 560, 560, 607, 607, 588, 45,
/* 190 */ 45, 560, 560, 608, 614, 652, 619, 618, 658, 621,
/* 200 */ 624, 588, 79, 560, 560, 632, 632, 560, 632, 560,
/* 210 */ 632, 560, 560, 882, 882, 30, 64, 94, 94, 94,
/* 220 */ 125, 154, 214, 278, 278, 278, 278, 278, 278, 258,
/* 230 */ 279, 308, 392, 392, 392, 392, 400, 294, 318, 398,
/* 240 */ 168, 23, 23, 123, 223, 29, 411, 401, 436, 446,
/* 250 */ 498, 450, 451, 452, 493, 441, 442, 457, 458, 460,
/* 260 */ 461, 463, 474, 467, 469, 324, 548, 453, 478, 414,
/* 270 */ 419, 422, 573, 576, 547, 435, 439, 480, 444, 513,
/* 280 */ 717, 565, 718, 722, 567, 724, 725, 627, 629, 584,
/* 290 */ 611, 622, 656, 615, 657, 659, 645, 646, 661, 648,
/* 300 */ 625, 640, 747, 766, 694, 695, 697, 698, 700, 701,
/* 310 */ 686, 703, 704, 706, 789, 707, 693, 660, 748, 795,
/* 320 */ 696, 662, 708, 714, 622, 716, 684, 719, 687, 726,
/* 330 */ 713, 720, 732, 804, 721, 723, 802, 809, 810, 811,
/* 340 */ 812, 813, 814, 815, 733, 805, 741, 816, 817, 738,
/* 350 */ 740, 742, 819, 821, 709, 745, 806, 770, 818, 681,
/* 360 */ 682, 737, 737, 737, 737, 715, 727, 822, 688, 689,
/* 370 */ 737, 737, 737, 836, 837, 758, 737, 841, 842, 843,
/* 380 */ 844, 845, 846, 848, 849, 850, 851, 852, 853, 854,
/* 390 */ 855, 856, 761, 774, 857, 847, 858, 859, 800, 865,
};
#define YY_REDUCE_COUNT (213)
#define YY_REDUCE_MIN (-275)
#define YY_REDUCE_MAX (552)
#define YY_REDUCE_COUNT (214)
#define YY_REDUCE_MIN (-278)
#define YY_REDUCE_MAX (570)
static const short yy_reduce_ofst[] = {
/* 0 */ -200, 52, 52, 166, 166, -214, -207, 127, 154, -208,
/* 10 */ -180, -83, -32, 75, 122, 199, 200, 202, 205, 220,
/* 20 */ 241, 243, -275, -221, -203, -187, -222, -163, -133, -40,
/* 30 */ 21, 57, 84, 92, 115, 140, 178, 182, 187, 189,
/* 40 */ 190, 195, 196, 198, 209, 211, 216, 218, -46, 111,
/* 50 */ 238, 53, 94, -23, -204, 151, -77, 262, 283, 285,
/* 60 */ 139, 292, -164, 225, 228, 297, 302, -44, 257, 17,
/* 70 */ 308, -99, -50, -13, -27, 20, 103, 130, 326, 337,
/* 80 */ 338, 339, 60, 340, 179, 206, 381, 384, 385, 316,
/* 90 */ 388, 389, 391, 342, 343, 394, 395, 396, 398, 307,
/* 100 */ 310, 319, 320, 346, 347, 402, 403, 404, 405, 406,
/* 110 */ 409, 410, 412, 413, 414, 415, 416, 417, 418, 419,
/* 120 */ 422, 423, 426, 427, 428, 429, 431, 432, 434, 435,
/* 130 */ 437, 438, 439, 440, 443, 444, 445, 447, 450, 453,
/* 140 */ 454, 456, 459, 460, 461, 462, 463, 464, 465, 466,
/* 150 */ 467, 469, 470, 472, 473, 474, 475, 476, 477, 478,
/* 160 */ 479, 480, 481, 482, 483, 336, 345, 349, 350, 484,
/* 170 */ 366, 355, 377, 393, 386, 485, 487, 486, 490, 494,
/* 180 */ 496, 491, 492, 495, 498, 500, 501, 502, 503, 506,
/* 190 */ 504, 505, 507, 511, 508, 514, 512, 516, 517, 519,
/* 200 */ 515, 520, 518, 524, 532, 534, 536, 539, 537, 541,
/* 210 */ 548, 551, 546, 552,
/* 0 */ -201, 28, 28, 176, 176, 138, 89, 178, 183, -278,
/* 10 */ -204, -118, -19, 46, 144, 201, 205, 224, 237, 242,
/* 20 */ 245, 256, -2, 53, -199, -182, -272, -242, -175, -174,
/* 30 */ -159, -114, -108, -99, -39, 34, 82, 202, 203, 204,
/* 40 */ 207, 215, 221, 222, 228, 229, 233, 234, 236, -240,
/* 50 */ 104, 105, 17, 190, -215, -205, -181, -57, 162, 188,
/* 60 */ 280, -69, 300, -56, 14, 18, 305, 306, 298, 152,
/* 70 */ 313, 320, -225, -6, 16, 60, 136, 185, 189, 344,
/* 80 */ 353, 354, 355, 316, 356, 375, 397, 399, 402, 403,
/* 90 */ 328, 405, 407, 408, 350, 351, 409, 410, 412, 413,
/* 100 */ 326, 331, 334, 336, 349, 365, 418, 420, 421, 423,
/* 110 */ 424, 425, 427, 428, 429, 430, 431, 432, 433, 434,
/* 120 */ 437, 438, 440, 443, 445, 447, 448, 449, 454, 455,
/* 130 */ 456, 459, 462, 464, 465, 466, 468, 470, 471, 472,
/* 140 */ 473, 475, 476, 477, 479, 481, 482, 483, 484, 485,
/* 150 */ 486, 487, 488, 489, 490, 491, 492, 494, 495, 496,
/* 160 */ 497, 499, 500, 501, 502, 503, 360, 361, 364, 366,
/* 170 */ 505, 352, 378, 386, 362, 390, 416, 507, 509, 415,
/* 180 */ 510, 514, 511, 512, 515, 516, 518, 520, 522, 521,
/* 190 */ 525, 524, 526, 527, 530, 528, 531, 535, 536, 537,
/* 200 */ 541, 538, 539, 542, 549, 546, 553, 555, 556, 561,
/* 210 */ 562, 564, 569, 563, 570,
};
static const YYACTIONTYPE yy_default[] = {
/* 0 */ 945, 1068, 1007, 1078, 994, 1004, 1246, 1246, 1246, 1246,
/* 10 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 20 */ 945, 945, 945, 945, 1132, 965, 945, 945, 945, 945,
/* 30 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 40 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 50 */ 945, 945, 945, 1156, 945, 1004, 945, 945, 945, 945,
/* 60 */ 945, 1014, 1004, 945, 945, 1014, 1014, 945, 1127, 1052,
/* 70 */ 1070, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 80 */ 945, 945, 1099, 945, 945, 945, 945, 945, 945, 1134,
/* 90 */ 1140, 1137, 945, 945, 945, 1142, 945, 945, 945, 1178,
/* 100 */ 1178, 1178, 1178, 1125, 945, 945, 945, 945, 945, 945,
/* 110 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 120 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 130 */ 945, 945, 945, 945, 945, 945, 945, 992, 945, 990,
/* 140 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 150 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 160 */ 963, 967, 967, 967, 967, 945, 945, 945, 945, 967,
/* 170 */ 1187, 1191, 1168, 1185, 1179, 1163, 1161, 1159, 1167, 1152,
/* 180 */ 1195, 1101, 967, 967, 967, 1012, 1012, 1008, 1004, 1004,
/* 190 */ 967, 967, 1030, 1028, 1026, 1018, 1024, 1020, 1022, 1016,
/* 200 */ 995, 945, 967, 967, 1002, 1002, 967, 1002, 967, 1002,
/* 210 */ 967, 967, 1052, 1070, 1245, 945, 1196, 1186, 1245, 945,
/* 220 */ 1228, 1227, 945, 1236, 1235, 1234, 1226, 1225, 1224, 945,
/* 230 */ 945, 1220, 1223, 1222, 1221, 945, 945, 1198, 945, 1230,
/* 240 */ 1229, 945, 945, 945, 945, 945, 945, 945, 1149, 945,
/* 250 */ 945, 945, 1174, 1192, 1188, 945, 945, 945, 945, 945,
/* 260 */ 945, 945, 945, 1199, 945, 945, 945, 945, 945, 945,
/* 270 */ 945, 945, 1113, 945, 945, 1080, 945, 945, 945, 945,
/* 280 */ 945, 945, 945, 945, 945, 945, 945, 945, 1124, 945,
/* 290 */ 945, 945, 945, 945, 1136, 1135, 945, 945, 945, 945,
/* 300 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 310 */ 945, 945, 945, 945, 1180, 945, 1175, 945, 1169, 945,
/* 320 */ 945, 945, 1092, 945, 945, 945, 945, 945, 945, 945,
/* 330 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 340 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 350 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 1264,
/* 360 */ 1259, 1260, 1257, 945, 945, 945, 945, 945, 1256, 1251,
/* 370 */ 1252, 945, 945, 945, 1249, 945, 945, 945, 945, 945,
/* 380 */ 945, 945, 945, 945, 945, 945, 945, 945, 945, 945,
/* 390 */ 1036, 945, 945, 974, 945, 972, 945, 945,
/* 0 */ 948, 1071, 1010, 1081, 997, 1007, 1250, 1250, 1250, 1250,
/* 10 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 20 */ 948, 948, 948, 948, 1135, 968, 948, 948, 948, 948,
/* 30 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 40 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 50 */ 948, 948, 948, 948, 1159, 948, 1007, 948, 948, 948,
/* 60 */ 948, 948, 1017, 1007, 948, 948, 1017, 1017, 948, 1130,
/* 70 */ 1055, 1073, 948, 948, 948, 948, 948, 948, 948, 948,
/* 80 */ 948, 948, 948, 1102, 948, 948, 948, 948, 948, 948,
/* 90 */ 1137, 1143, 1140, 948, 948, 948, 1145, 948, 948, 948,
/* 100 */ 1181, 1181, 1181, 1181, 1128, 948, 948, 948, 948, 948,
/* 110 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 120 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 130 */ 948, 948, 948, 948, 948, 948, 948, 948, 995, 948,
/* 140 */ 993, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 150 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 160 */ 948, 966, 970, 970, 970, 970, 948, 948, 948, 948,
/* 170 */ 970, 1190, 1194, 1171, 1188, 1182, 1166, 1164, 1162, 1170,
/* 180 */ 1155, 1198, 1104, 970, 970, 970, 1015, 1015, 1011, 1007,
/* 190 */ 1007, 970, 970, 1033, 1031, 1029, 1021, 1027, 1023, 1025,
/* 200 */ 1019, 998, 948, 970, 970, 1005, 1005, 970, 1005, 970,
/* 210 */ 1005, 970, 970, 1055, 1073, 1249, 948, 1199, 1189, 1249,
/* 220 */ 948, 1231, 1230, 1240, 1239, 1238, 1229, 1228, 1227, 948,
/* 230 */ 948, 948, 1223, 1226, 1225, 1224, 1237, 948, 948, 1201,
/* 240 */ 948, 1233, 1232, 948, 948, 948, 948, 948, 948, 948,
/* 250 */ 1152, 948, 948, 948, 1177, 1195, 1191, 948, 948, 948,
/* 260 */ 948, 948, 948, 948, 948, 1202, 948, 948, 948, 948,
/* 270 */ 948, 948, 948, 948, 1116, 948, 948, 1083, 948, 948,
/* 280 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 290 */ 1127, 948, 948, 948, 948, 948, 1139, 1138, 948, 948,
/* 300 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 310 */ 948, 948, 948, 948, 948, 948, 1183, 948, 1178, 948,
/* 320 */ 1172, 948, 948, 948, 1095, 948, 948, 948, 948, 948,
/* 330 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 340 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 350 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 360 */ 948, 1268, 1263, 1264, 1261, 948, 948, 948, 948, 948,
/* 370 */ 1260, 1255, 1256, 948, 948, 948, 1253, 948, 948, 948,
/* 380 */ 948, 948, 948, 948, 948, 948, 948, 948, 948, 948,
/* 390 */ 948, 948, 1039, 948, 948, 977, 948, 975, 948, 948,
};
/********** End of lemon-generated parsing tables *****************************/
......@@ -791,7 +784,6 @@ struct yyParser {
int yyerrcnt; /* Shifts left before out of the error */
#endif
ParseARG_SDECL /* A place to hold %extra_argument */
ParseCTX_SDECL /* A place to hold %extra_context */
#if YYSTACKDEPTH<=0
int yystksz; /* Current side of the stack */
yyStackEntry *yystack; /* The parser's stack */
......@@ -1043,92 +1035,93 @@ static const char *const yyTokenName[] = {
/* 201 */ "INTO",
/* 202 */ "VALUES",
/* 203 */ "FILE",
/* 204 */ "program",
/* 205 */ "cmd",
/* 206 */ "ids",
/* 207 */ "dbPrefix",
/* 208 */ "cpxName",
/* 209 */ "ifexists",
/* 210 */ "alter_db_optr",
/* 211 */ "alter_topic_optr",
/* 212 */ "acct_optr",
/* 213 */ "exprlist",
/* 214 */ "ifnotexists",
/* 215 */ "db_optr",
/* 216 */ "topic_optr",
/* 217 */ "typename",
/* 218 */ "bufsize",
/* 219 */ "pps",
/* 220 */ "tseries",
/* 221 */ "dbs",
/* 222 */ "streams",
/* 223 */ "storage",
/* 224 */ "qtime",
/* 225 */ "users",
/* 226 */ "conns",
/* 227 */ "state",
/* 228 */ "intitemlist",
/* 229 */ "intitem",
/* 230 */ "keep",
/* 231 */ "cache",
/* 232 */ "replica",
/* 233 */ "quorum",
/* 234 */ "days",
/* 235 */ "minrows",
/* 236 */ "maxrows",
/* 237 */ "blocks",
/* 238 */ "ctime",
/* 239 */ "wal",
/* 240 */ "fsync",
/* 241 */ "comp",
/* 242 */ "prec",
/* 243 */ "update",
/* 244 */ "cachelast",
/* 245 */ "partitions",
/* 246 */ "signed",
/* 247 */ "create_table_args",
/* 248 */ "create_stable_args",
/* 249 */ "create_table_list",
/* 250 */ "create_from_stable",
/* 251 */ "columnlist",
/* 252 */ "tagitemlist",
/* 253 */ "tagNamelist",
/* 254 */ "to_opt",
/* 255 */ "split_opt",
/* 256 */ "select",
/* 257 */ "to_split",
/* 258 */ "column",
/* 259 */ "tagitem",
/* 260 */ "selcollist",
/* 261 */ "from",
/* 262 */ "where_opt",
/* 263 */ "range_option",
/* 264 */ "interval_option",
/* 265 */ "sliding_opt",
/* 266 */ "session_option",
/* 267 */ "windowstate_option",
/* 268 */ "fill_opt",
/* 269 */ "groupby_opt",
/* 270 */ "having_opt",
/* 271 */ "orderby_opt",
/* 272 */ "slimit_opt",
/* 273 */ "limit_opt",
/* 274 */ "union",
/* 275 */ "sclp",
/* 276 */ "distinct",
/* 277 */ "expr",
/* 278 */ "as",
/* 279 */ "tablelist",
/* 280 */ "sub",
/* 281 */ "tmvar",
/* 282 */ "timestamp",
/* 283 */ "intervalKey",
/* 284 */ "sortlist",
/* 285 */ "item",
/* 286 */ "sortorder",
/* 287 */ "arrow",
/* 288 */ "grouplist",
/* 289 */ "expritem",
/* 204 */ "error",
/* 205 */ "program",
/* 206 */ "cmd",
/* 207 */ "ids",
/* 208 */ "dbPrefix",
/* 209 */ "cpxName",
/* 210 */ "ifexists",
/* 211 */ "alter_db_optr",
/* 212 */ "alter_topic_optr",
/* 213 */ "acct_optr",
/* 214 */ "exprlist",
/* 215 */ "ifnotexists",
/* 216 */ "db_optr",
/* 217 */ "topic_optr",
/* 218 */ "typename",
/* 219 */ "bufsize",
/* 220 */ "pps",
/* 221 */ "tseries",
/* 222 */ "dbs",
/* 223 */ "streams",
/* 224 */ "storage",
/* 225 */ "qtime",
/* 226 */ "users",
/* 227 */ "conns",
/* 228 */ "state",
/* 229 */ "intitemlist",
/* 230 */ "intitem",
/* 231 */ "keep",
/* 232 */ "cache",
/* 233 */ "replica",
/* 234 */ "quorum",
/* 235 */ "days",
/* 236 */ "minrows",
/* 237 */ "maxrows",
/* 238 */ "blocks",
/* 239 */ "ctime",
/* 240 */ "wal",
/* 241 */ "fsync",
/* 242 */ "comp",
/* 243 */ "prec",
/* 244 */ "update",
/* 245 */ "cachelast",
/* 246 */ "partitions",
/* 247 */ "signed",
/* 248 */ "create_table_args",
/* 249 */ "create_stable_args",
/* 250 */ "create_table_list",
/* 251 */ "create_from_stable",
/* 252 */ "columnlist",
/* 253 */ "tagitemlist",
/* 254 */ "tagNamelist",
/* 255 */ "to_opt",
/* 256 */ "split_opt",
/* 257 */ "select",
/* 258 */ "to_split",
/* 259 */ "column",
/* 260 */ "tagitem",
/* 261 */ "selcollist",
/* 262 */ "from",
/* 263 */ "where_opt",
/* 264 */ "range_option",
/* 265 */ "interval_option",
/* 266 */ "sliding_opt",
/* 267 */ "session_option",
/* 268 */ "windowstate_option",
/* 269 */ "fill_opt",
/* 270 */ "groupby_opt",
/* 271 */ "having_opt",
/* 272 */ "orderby_opt",
/* 273 */ "slimit_opt",
/* 274 */ "limit_opt",
/* 275 */ "union",
/* 276 */ "sclp",
/* 277 */ "distinct",
/* 278 */ "expr",
/* 279 */ "as",
/* 280 */ "tablelist",
/* 281 */ "sub",
/* 282 */ "tmvar",
/* 283 */ "timestamp",
/* 284 */ "intervalKey",
/* 285 */ "sortlist",
/* 286 */ "item",
/* 287 */ "sortorder",
/* 288 */ "arrow",
/* 289 */ "grouplist",
/* 290 */ "expritem",
};
#endif /* defined(YYCOVERAGE) || !defined(NDEBUG) */
......@@ -1422,40 +1415,41 @@ static const char *const yyRuleName[] = {
/* 283 */ "expr ::= expr STAR expr",
/* 284 */ "expr ::= expr SLASH expr",
/* 285 */ "expr ::= expr REM expr",
/* 286 */ "expr ::= expr LIKE expr",
/* 287 */ "expr ::= expr MATCH expr",
/* 288 */ "expr ::= expr NMATCH expr",
/* 289 */ "expr ::= ID CONTAINS STRING",
/* 290 */ "expr ::= ID DOT ID CONTAINS STRING",
/* 291 */ "arrow ::= ID ARROW STRING",
/* 292 */ "arrow ::= ID DOT ID ARROW STRING",
/* 293 */ "expr ::= arrow",
/* 294 */ "expr ::= expr IN LP exprlist RP",
/* 295 */ "exprlist ::= exprlist COMMA expritem",
/* 296 */ "exprlist ::= expritem",
/* 297 */ "expritem ::= expr",
/* 298 */ "expritem ::=",
/* 299 */ "cmd ::= RESET QUERY CACHE",
/* 300 */ "cmd ::= SYNCDB ids REPLICA",
/* 301 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist",
/* 302 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids",
/* 303 */ "cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist",
/* 304 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist",
/* 305 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids",
/* 306 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids",
/* 307 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem",
/* 308 */ "cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist",
/* 309 */ "cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist",
/* 310 */ "cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids",
/* 311 */ "cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist",
/* 312 */ "cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist",
/* 313 */ "cmd ::= ALTER STABLE ids cpxName DROP TAG ids",
/* 314 */ "cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids",
/* 315 */ "cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem",
/* 316 */ "cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist",
/* 317 */ "cmd ::= KILL CONNECTION INTEGER",
/* 318 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER",
/* 319 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER",
/* 286 */ "expr ::= expr BITAND expr",
/* 287 */ "expr ::= expr LIKE expr",
/* 288 */ "expr ::= expr MATCH expr",
/* 289 */ "expr ::= expr NMATCH expr",
/* 290 */ "expr ::= ID CONTAINS STRING",
/* 291 */ "expr ::= ID DOT ID CONTAINS STRING",
/* 292 */ "arrow ::= ID ARROW STRING",
/* 293 */ "arrow ::= ID DOT ID ARROW STRING",
/* 294 */ "expr ::= arrow",
/* 295 */ "expr ::= expr IN LP exprlist RP",
/* 296 */ "exprlist ::= exprlist COMMA expritem",
/* 297 */ "exprlist ::= expritem",
/* 298 */ "expritem ::= expr",
/* 299 */ "expritem ::=",
/* 300 */ "cmd ::= RESET QUERY CACHE",
/* 301 */ "cmd ::= SYNCDB ids REPLICA",
/* 302 */ "cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist",
/* 303 */ "cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids",
/* 304 */ "cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist",
/* 305 */ "cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist",
/* 306 */ "cmd ::= ALTER TABLE ids cpxName DROP TAG ids",
/* 307 */ "cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids",
/* 308 */ "cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem",
/* 309 */ "cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist",
/* 310 */ "cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist",
/* 311 */ "cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids",
/* 312 */ "cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist",
/* 313 */ "cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist",
/* 314 */ "cmd ::= ALTER STABLE ids cpxName DROP TAG ids",
/* 315 */ "cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids",
/* 316 */ "cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem",
/* 317 */ "cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist",
/* 318 */ "cmd ::= KILL CONNECTION INTEGER",
/* 319 */ "cmd ::= KILL STREAM INTEGER COLON INTEGER",
/* 320 */ "cmd ::= KILL QUERY INTEGER COLON INTEGER",
};
#endif /* NDEBUG */
......@@ -1504,29 +1498,28 @@ static int yyGrowStack(yyParser *p){
/* Initialize a new parser that has already been allocated.
*/
void ParseInit(void *yypRawParser ParseCTX_PDECL){
yyParser *yypParser = (yyParser*)yypRawParser;
ParseCTX_STORE
void ParseInit(void *yypParser){
yyParser *pParser = (yyParser*)yypParser;
#ifdef YYTRACKMAXSTACKDEPTH
yypParser->yyhwm = 0;
pParser->yyhwm = 0;
#endif
#if YYSTACKDEPTH<=0
yypParser->yytos = NULL;
yypParser->yystack = NULL;
yypParser->yystksz = 0;
if( yyGrowStack(yypParser) ){
yypParser->yystack = &yypParser->yystk0;
yypParser->yystksz = 1;
pParser->yytos = NULL;
pParser->yystack = NULL;
pParser->yystksz = 0;
if( yyGrowStack(pParser) ){
pParser->yystack = &pParser->yystk0;
pParser->yystksz = 1;
}
#endif
#ifndef YYNOERRORRECOVERY
yypParser->yyerrcnt = -1;
pParser->yyerrcnt = -1;
#endif
yypParser->yytos = yypParser->yystack;
yypParser->yystack[0].stateno = 0;
yypParser->yystack[0].major = 0;
pParser->yytos = pParser->yystack;
pParser->yystack[0].stateno = 0;
pParser->yystack[0].major = 0;
#if YYSTACKDEPTH>0
yypParser->yystackEnd = &yypParser->yystack[YYSTACKDEPTH-1];
pParser->yystackEnd = &pParser->yystack[YYSTACKDEPTH-1];
#endif
}
......@@ -1543,14 +1536,11 @@ void ParseInit(void *yypRawParser ParseCTX_PDECL){
** A pointer to a parser. This pointer is used in subsequent calls
** to Parse and ParseFree.
*/
void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE) ParseCTX_PDECL){
yyParser *yypParser;
yypParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) );
if( yypParser ){
ParseCTX_STORE
ParseInit(yypParser ParseCTX_PARAM);
}
return (void*)yypParser;
void *ParseAlloc(void *(*mallocProc)(YYMALLOCARGTYPE)){
yyParser *pParser;
pParser = (yyParser*)(*mallocProc)( (YYMALLOCARGTYPE)sizeof(yyParser) );
if( pParser ) ParseInit(pParser);
return pParser;
}
#endif /* Parse_ENGINEALWAYSONSTACK */
......@@ -1567,8 +1557,7 @@ static void yy_destructor(
YYCODETYPE yymajor, /* Type code for object to destroy */
YYMINORTYPE *yypminor /* The object to be destroyed */
){
ParseARG_FETCH
ParseCTX_FETCH
ParseARG_FETCH;
switch( yymajor ){
/* Here is inserted the actions which take place when a
** terminal or non-terminal is destroyed. This can happen
......@@ -1581,57 +1570,57 @@ static void yy_destructor(
** inside the C code.
*/
/********* Begin destructor definitions ***************************************/
case 213: /* exprlist */
case 260: /* selcollist */
case 275: /* sclp */
case 214: /* exprlist */
case 261: /* selcollist */
case 276: /* sclp */
{
tSqlExprListDestroy((yypminor->yy161));
tSqlExprListDestroy((yypminor->yy525));
}
break;
case 228: /* intitemlist */
case 230: /* keep */
case 251: /* columnlist */
case 252: /* tagitemlist */
case 253: /* tagNamelist */
case 268: /* fill_opt */
case 269: /* groupby_opt */
case 271: /* orderby_opt */
case 284: /* sortlist */
case 288: /* grouplist */
{
taosArrayDestroy(&(yypminor->yy161));
case 229: /* intitemlist */
case 231: /* keep */
case 252: /* columnlist */
case 253: /* tagitemlist */
case 254: /* tagNamelist */
case 269: /* fill_opt */
case 270: /* groupby_opt */
case 272: /* orderby_opt */
case 285: /* sortlist */
case 289: /* grouplist */
{
taosArrayDestroy(&(yypminor->yy525));
}
break;
case 249: /* create_table_list */
case 250: /* create_table_list */
{
destroyCreateTableSql((yypminor->yy462));
destroyCreateTableSql((yypminor->yy572));
}
break;
case 256: /* select */
case 257: /* select */
{
destroySqlNode((yypminor->yy276));
destroySqlNode((yypminor->yy86));
}
break;
case 261: /* from */
case 279: /* tablelist */
case 280: /* sub */
case 262: /* from */
case 280: /* tablelist */
case 281: /* sub */
{
destroyRelationInfo((yypminor->yy84));
destroyRelationInfo((yypminor->yy328));
}
break;
case 262: /* where_opt */
case 270: /* having_opt */
case 277: /* expr */
case 282: /* timestamp */
case 287: /* arrow */
case 289: /* expritem */
case 263: /* where_opt */
case 271: /* having_opt */
case 278: /* expr */
case 283: /* timestamp */
case 288: /* arrow */
case 290: /* expritem */
{
tSqlExprDestroy((yypminor->yy546));
tSqlExprDestroy((yypminor->yy142));
}
break;
case 274: /* union */
case 275: /* union */
{
destroyAllSqlNode((yypminor->yy161));
destroyAllSqlNode((yypminor->yy525));
}
break;
/********* End destructor definitions *****************************************/
......@@ -1743,12 +1732,13 @@ int ParseCoverage(FILE *out){
** Find the appropriate action for a parser given the terminal
** look-ahead token iLookAhead.
*/
static YYACTIONTYPE yy_find_shift_action(
YYCODETYPE iLookAhead, /* The look-ahead token */
YYACTIONTYPE stateno /* Current state number */
static unsigned int yy_find_shift_action(
yyParser *pParser, /* The parser */
YYCODETYPE iLookAhead /* The look-ahead token */
){
int i;
int stateno = pParser->yytos->stateno;
if( stateno>YY_MAX_SHIFT ) return stateno;
assert( stateno <= YY_SHIFT_COUNT );
#if defined(YYCOVERAGE)
......@@ -1756,19 +1746,15 @@ static YYACTIONTYPE yy_find_shift_action(
#endif
do{
i = yy_shift_ofst[stateno];
assert( i>=0 );
assert( i<=YY_ACTTAB_COUNT );
assert( i+YYNTOKEN<=(int)YY_NLOOKAHEAD );
assert( i>=0 && i+YYNTOKEN<=sizeof(yy_lookahead)/sizeof(yy_lookahead[0]) );
assert( iLookAhead!=YYNOCODE );
assert( iLookAhead < YYNTOKEN );
i += iLookAhead;
assert( i<(int)YY_NLOOKAHEAD );
if( yy_lookahead[i]!=iLookAhead ){
#ifdef YYFALLBACK
YYCODETYPE iFallback; /* Fallback token */
assert( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) );
iFallback = yyFallback[iLookAhead];
if( iFallback!=0 ){
if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
&& (iFallback = yyFallback[iLookAhead])!=0 ){
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
......@@ -1783,8 +1769,15 @@ static YYACTIONTYPE yy_find_shift_action(
#ifdef YYWILDCARD
{
int j = i - iLookAhead + YYWILDCARD;
assert( j<(int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])) );
if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){
if(
#if YY_SHIFT_MIN+YYWILDCARD<0
j>=0 &&
#endif
#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
j<YY_ACTTAB_COUNT &&
#endif
yy_lookahead[j]==YYWILDCARD && iLookAhead>0
){
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
......@@ -1798,7 +1791,6 @@ static YYACTIONTYPE yy_find_shift_action(
#endif /* YYWILDCARD */
return yy_default[stateno];
}else{
assert( i>=0 && i<sizeof(yy_action)/sizeof(yy_action[0]) );
return yy_action[i];
}
}while(1);
......@@ -1808,8 +1800,8 @@ static YYACTIONTYPE yy_find_shift_action(
** Find the appropriate action for a parser given the non-terminal
** look-ahead token iLookAhead.
*/
static YYACTIONTYPE yy_find_reduce_action(
YYACTIONTYPE stateno, /* Current state number */
static int yy_find_reduce_action(
int stateno, /* Current state number */
YYCODETYPE iLookAhead /* The look-ahead token */
){
int i;
......@@ -1838,8 +1830,7 @@ static YYACTIONTYPE yy_find_reduce_action(
** The following routine is called if the stack overflows.
*/
static void yyStackOverflow(yyParser *yypParser){
ParseARG_FETCH
ParseCTX_FETCH
ParseARG_FETCH;
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
......@@ -1850,8 +1841,7 @@ static void yyStackOverflow(yyParser *yypParser){
** stack every overflows */
/******** Begin %stack_overflow code ******************************************/
/******** End %stack_overflow code ********************************************/
ParseARG_STORE /* Suppress warning about unused %extra_argument var */
ParseCTX_STORE
ParseARG_STORE; /* Suppress warning about unused %extra_argument var */
}
/*
......@@ -1880,8 +1870,8 @@ static void yyTraceShift(yyParser *yypParser, int yyNewState, const char *zTag){
*/
static void yy_shift(
yyParser *yypParser, /* The parser to be shifted */
YYACTIONTYPE yyNewState, /* The new state to shift in */
YYCODETYPE yyMajor, /* The major token to shift in */
int yyNewState, /* The new state to shift in */
int yyMajor, /* The major token to shift in */
ParseTOKENTYPE yyMinor /* The minor token to shift in */
){
yyStackEntry *yytos;
......@@ -1911,660 +1901,340 @@ static void yy_shift(
yyNewState += YY_MIN_REDUCE - YY_MIN_SHIFTREDUCE;
}
yytos = yypParser->yytos;
yytos->stateno = yyNewState;
yytos->major = yyMajor;
yytos->stateno = (YYACTIONTYPE)yyNewState;
yytos->major = (YYCODETYPE)yyMajor;
yytos->minor.yy0 = yyMinor;
yyTraceShift(yypParser, yyNewState, "Shift");
}
/* For rule J, yyRuleInfoLhs[J] contains the symbol on the left-hand side
** of that rule */
static const YYCODETYPE yyRuleInfoLhs[] = {
204, /* (0) program ::= cmd */
205, /* (1) cmd ::= SHOW DATABASES */
205, /* (2) cmd ::= SHOW TOPICS */
205, /* (3) cmd ::= SHOW FUNCTIONS */
205, /* (4) cmd ::= SHOW MNODES */
205, /* (5) cmd ::= SHOW DNODES */
205, /* (6) cmd ::= SHOW ACCOUNTS */
205, /* (7) cmd ::= SHOW USERS */
205, /* (8) cmd ::= SHOW MODULES */
205, /* (9) cmd ::= SHOW QUERIES */
205, /* (10) cmd ::= SHOW CONNECTIONS */
205, /* (11) cmd ::= SHOW STREAMS */
205, /* (12) cmd ::= SHOW VARIABLES */
205, /* (13) cmd ::= SHOW SCORES */
205, /* (14) cmd ::= SHOW GRANTS */
205, /* (15) cmd ::= SHOW VNODES */
205, /* (16) cmd ::= SHOW VNODES ids */
207, /* (17) dbPrefix ::= */
207, /* (18) dbPrefix ::= ids DOT */
208, /* (19) cpxName ::= */
208, /* (20) cpxName ::= DOT ids */
205, /* (21) cmd ::= SHOW CREATE TABLE ids cpxName */
205, /* (22) cmd ::= SHOW CREATE STABLE ids cpxName */
205, /* (23) cmd ::= SHOW CREATE DATABASE ids */
205, /* (24) cmd ::= SHOW dbPrefix TABLES */
205, /* (25) cmd ::= SHOW dbPrefix TABLES LIKE STRING */
205, /* (26) cmd ::= SHOW dbPrefix STABLES */
205, /* (27) cmd ::= SHOW dbPrefix STABLES LIKE STRING */
205, /* (28) cmd ::= SHOW dbPrefix VGROUPS */
205, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */
205, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */
205, /* (31) cmd ::= DROP DATABASE ifexists ids */
205, /* (32) cmd ::= DROP TOPIC ifexists ids */
205, /* (33) cmd ::= DROP FUNCTION ids */
205, /* (34) cmd ::= DROP DNODE ids */
205, /* (35) cmd ::= DROP USER ids */
205, /* (36) cmd ::= DROP ACCOUNT ids */
205, /* (37) cmd ::= USE ids */
205, /* (38) cmd ::= DESCRIBE ids cpxName */
205, /* (39) cmd ::= DESC ids cpxName */
205, /* (40) cmd ::= ALTER USER ids PASS ids */
205, /* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
205, /* (42) cmd ::= ALTER DNODE ids ids */
205, /* (43) cmd ::= ALTER DNODE ids ids ids */
205, /* (44) cmd ::= ALTER LOCAL ids */
205, /* (45) cmd ::= ALTER LOCAL ids ids */
205, /* (46) cmd ::= ALTER DATABASE ids alter_db_optr */
205, /* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */
205, /* (48) cmd ::= ALTER ACCOUNT ids acct_optr */
205, /* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
205, /* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */
206, /* (51) ids ::= ID */
206, /* (52) ids ::= STRING */
209, /* (53) ifexists ::= IF EXISTS */
209, /* (54) ifexists ::= */
214, /* (55) ifnotexists ::= IF NOT EXISTS */
214, /* (56) ifnotexists ::= */
205, /* (57) cmd ::= CREATE DNODE ids */
205, /* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
205, /* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
205, /* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
205, /* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
205, /* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
205, /* (63) cmd ::= CREATE USER ids PASS ids */
218, /* (64) bufsize ::= */
218, /* (65) bufsize ::= BUFSIZE INTEGER */
219, /* (66) pps ::= */
219, /* (67) pps ::= PPS INTEGER */
220, /* (68) tseries ::= */
220, /* (69) tseries ::= TSERIES INTEGER */
221, /* (70) dbs ::= */
221, /* (71) dbs ::= DBS INTEGER */
222, /* (72) streams ::= */
222, /* (73) streams ::= STREAMS INTEGER */
223, /* (74) storage ::= */
223, /* (75) storage ::= STORAGE INTEGER */
224, /* (76) qtime ::= */
224, /* (77) qtime ::= QTIME INTEGER */
225, /* (78) users ::= */
225, /* (79) users ::= USERS INTEGER */
226, /* (80) conns ::= */
226, /* (81) conns ::= CONNS INTEGER */
227, /* (82) state ::= */
227, /* (83) state ::= STATE ids */
212, /* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
228, /* (85) intitemlist ::= intitemlist COMMA intitem */
228, /* (86) intitemlist ::= intitem */
229, /* (87) intitem ::= INTEGER */
230, /* (88) keep ::= KEEP intitemlist */
231, /* (89) cache ::= CACHE INTEGER */
232, /* (90) replica ::= REPLICA INTEGER */
233, /* (91) quorum ::= QUORUM INTEGER */
234, /* (92) days ::= DAYS INTEGER */
235, /* (93) minrows ::= MINROWS INTEGER */
236, /* (94) maxrows ::= MAXROWS INTEGER */
237, /* (95) blocks ::= BLOCKS INTEGER */
238, /* (96) ctime ::= CTIME INTEGER */
239, /* (97) wal ::= WAL INTEGER */
240, /* (98) fsync ::= FSYNC INTEGER */
241, /* (99) comp ::= COMP INTEGER */
242, /* (100) prec ::= PRECISION STRING */
243, /* (101) update ::= UPDATE INTEGER */
244, /* (102) cachelast ::= CACHELAST INTEGER */
245, /* (103) partitions ::= PARTITIONS INTEGER */
215, /* (104) db_optr ::= */
215, /* (105) db_optr ::= db_optr cache */
215, /* (106) db_optr ::= db_optr replica */
215, /* (107) db_optr ::= db_optr quorum */
215, /* (108) db_optr ::= db_optr days */
215, /* (109) db_optr ::= db_optr minrows */
215, /* (110) db_optr ::= db_optr maxrows */
215, /* (111) db_optr ::= db_optr blocks */
215, /* (112) db_optr ::= db_optr ctime */
215, /* (113) db_optr ::= db_optr wal */
215, /* (114) db_optr ::= db_optr fsync */
215, /* (115) db_optr ::= db_optr comp */
215, /* (116) db_optr ::= db_optr prec */
215, /* (117) db_optr ::= db_optr keep */
215, /* (118) db_optr ::= db_optr update */
215, /* (119) db_optr ::= db_optr cachelast */
216, /* (120) topic_optr ::= db_optr */
216, /* (121) topic_optr ::= topic_optr partitions */
210, /* (122) alter_db_optr ::= */
210, /* (123) alter_db_optr ::= alter_db_optr replica */
210, /* (124) alter_db_optr ::= alter_db_optr quorum */
210, /* (125) alter_db_optr ::= alter_db_optr keep */
210, /* (126) alter_db_optr ::= alter_db_optr blocks */
210, /* (127) alter_db_optr ::= alter_db_optr comp */
210, /* (128) alter_db_optr ::= alter_db_optr update */
210, /* (129) alter_db_optr ::= alter_db_optr cachelast */
211, /* (130) alter_topic_optr ::= alter_db_optr */
211, /* (131) alter_topic_optr ::= alter_topic_optr partitions */
217, /* (132) typename ::= ids */
217, /* (133) typename ::= ids LP signed RP */
217, /* (134) typename ::= ids UNSIGNED */
246, /* (135) signed ::= INTEGER */
246, /* (136) signed ::= PLUS INTEGER */
246, /* (137) signed ::= MINUS INTEGER */
205, /* (138) cmd ::= CREATE TABLE create_table_args */
205, /* (139) cmd ::= CREATE TABLE create_stable_args */
205, /* (140) cmd ::= CREATE STABLE create_stable_args */
205, /* (141) cmd ::= CREATE TABLE create_table_list */
249, /* (142) create_table_list ::= create_from_stable */
249, /* (143) create_table_list ::= create_table_list create_from_stable */
247, /* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
248, /* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
250, /* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
250, /* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
253, /* (148) tagNamelist ::= tagNamelist COMMA ids */
253, /* (149) tagNamelist ::= ids */
247, /* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
254, /* (151) to_opt ::= */
254, /* (152) to_opt ::= TO ids cpxName */
255, /* (153) split_opt ::= */
255, /* (154) split_opt ::= SPLIT ids */
251, /* (155) columnlist ::= columnlist COMMA column */
251, /* (156) columnlist ::= column */
258, /* (157) column ::= ids typename */
252, /* (158) tagitemlist ::= tagitemlist COMMA tagitem */
252, /* (159) tagitemlist ::= tagitem */
259, /* (160) tagitem ::= INTEGER */
259, /* (161) tagitem ::= FLOAT */
259, /* (162) tagitem ::= STRING */
259, /* (163) tagitem ::= BOOL */
259, /* (164) tagitem ::= NULL */
259, /* (165) tagitem ::= NOW */
259, /* (166) tagitem ::= NOW PLUS VARIABLE */
259, /* (167) tagitem ::= NOW MINUS VARIABLE */
259, /* (168) tagitem ::= MINUS INTEGER */
259, /* (169) tagitem ::= MINUS FLOAT */
259, /* (170) tagitem ::= PLUS INTEGER */
259, /* (171) tagitem ::= PLUS FLOAT */
256, /* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
256, /* (173) select ::= LP select RP */
274, /* (174) union ::= select */
274, /* (175) union ::= union UNION ALL select */
205, /* (176) cmd ::= union */
256, /* (177) select ::= SELECT selcollist */
275, /* (178) sclp ::= selcollist COMMA */
275, /* (179) sclp ::= */
260, /* (180) selcollist ::= sclp distinct expr as */
260, /* (181) selcollist ::= sclp STAR */
278, /* (182) as ::= AS ids */
278, /* (183) as ::= ids */
278, /* (184) as ::= */
276, /* (185) distinct ::= DISTINCT */
276, /* (186) distinct ::= */
261, /* (187) from ::= FROM tablelist */
261, /* (188) from ::= FROM sub */
280, /* (189) sub ::= LP union RP */
280, /* (190) sub ::= LP union RP ids */
280, /* (191) sub ::= sub COMMA LP union RP ids */
279, /* (192) tablelist ::= ids cpxName */
279, /* (193) tablelist ::= ids cpxName ids */
279, /* (194) tablelist ::= tablelist COMMA ids cpxName */
279, /* (195) tablelist ::= tablelist COMMA ids cpxName ids */
281, /* (196) tmvar ::= VARIABLE */
282, /* (197) timestamp ::= INTEGER */
282, /* (198) timestamp ::= MINUS INTEGER */
282, /* (199) timestamp ::= PLUS INTEGER */
282, /* (200) timestamp ::= STRING */
282, /* (201) timestamp ::= NOW */
282, /* (202) timestamp ::= NOW PLUS VARIABLE */
282, /* (203) timestamp ::= NOW MINUS VARIABLE */
263, /* (204) range_option ::= */
263, /* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */
264, /* (206) interval_option ::= intervalKey LP tmvar RP */
264, /* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
264, /* (208) interval_option ::= */
283, /* (209) intervalKey ::= INTERVAL */
283, /* (210) intervalKey ::= EVERY */
266, /* (211) session_option ::= */
266, /* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
267, /* (213) windowstate_option ::= */
267, /* (214) windowstate_option ::= STATE_WINDOW LP ids RP */
268, /* (215) fill_opt ::= */
268, /* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
268, /* (217) fill_opt ::= FILL LP ID RP */
265, /* (218) sliding_opt ::= SLIDING LP tmvar RP */
265, /* (219) sliding_opt ::= */
271, /* (220) orderby_opt ::= */
271, /* (221) orderby_opt ::= ORDER BY sortlist */
284, /* (222) sortlist ::= sortlist COMMA item sortorder */
284, /* (223) sortlist ::= sortlist COMMA arrow sortorder */
284, /* (224) sortlist ::= item sortorder */
284, /* (225) sortlist ::= arrow sortorder */
285, /* (226) item ::= ID */
285, /* (227) item ::= ID DOT ID */
286, /* (228) sortorder ::= ASC */
286, /* (229) sortorder ::= DESC */
286, /* (230) sortorder ::= */
269, /* (231) groupby_opt ::= */
269, /* (232) groupby_opt ::= GROUP BY grouplist */
288, /* (233) grouplist ::= grouplist COMMA item */
288, /* (234) grouplist ::= grouplist COMMA arrow */
288, /* (235) grouplist ::= item */
288, /* (236) grouplist ::= arrow */
270, /* (237) having_opt ::= */
270, /* (238) having_opt ::= HAVING expr */
273, /* (239) limit_opt ::= */
273, /* (240) limit_opt ::= LIMIT signed */
273, /* (241) limit_opt ::= LIMIT signed OFFSET signed */
273, /* (242) limit_opt ::= LIMIT signed COMMA signed */
272, /* (243) slimit_opt ::= */
272, /* (244) slimit_opt ::= SLIMIT signed */
272, /* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */
272, /* (246) slimit_opt ::= SLIMIT signed COMMA signed */
262, /* (247) where_opt ::= */
262, /* (248) where_opt ::= WHERE expr */
277, /* (249) expr ::= LP expr RP */
277, /* (250) expr ::= ID */
277, /* (251) expr ::= ID DOT ID */
277, /* (252) expr ::= ID DOT STAR */
277, /* (253) expr ::= INTEGER */
277, /* (254) expr ::= MINUS INTEGER */
277, /* (255) expr ::= PLUS INTEGER */
277, /* (256) expr ::= FLOAT */
277, /* (257) expr ::= MINUS FLOAT */
277, /* (258) expr ::= PLUS FLOAT */
277, /* (259) expr ::= STRING */
277, /* (260) expr ::= NOW */
277, /* (261) expr ::= TODAY */
277, /* (262) expr ::= VARIABLE */
277, /* (263) expr ::= PLUS VARIABLE */
277, /* (264) expr ::= MINUS VARIABLE */
277, /* (265) expr ::= BOOL */
277, /* (266) expr ::= NULL */
277, /* (267) expr ::= ID LP exprlist RP */
277, /* (268) expr ::= ID LP STAR RP */
277, /* (269) expr ::= ID LP expr AS typename RP */
277, /* (270) expr ::= expr IS NULL */
277, /* (271) expr ::= expr IS NOT NULL */
277, /* (272) expr ::= expr LT expr */
277, /* (273) expr ::= expr GT expr */
277, /* (274) expr ::= expr LE expr */
277, /* (275) expr ::= expr GE expr */
277, /* (276) expr ::= expr NE expr */
277, /* (277) expr ::= expr EQ expr */
277, /* (278) expr ::= expr BETWEEN expr AND expr */
277, /* (279) expr ::= expr AND expr */
277, /* (280) expr ::= expr OR expr */
277, /* (281) expr ::= expr PLUS expr */
277, /* (282) expr ::= expr MINUS expr */
277, /* (283) expr ::= expr STAR expr */
277, /* (284) expr ::= expr SLASH expr */
277, /* (285) expr ::= expr REM expr */
277, /* (286) expr ::= expr LIKE expr */
277, /* (287) expr ::= expr MATCH expr */
277, /* (288) expr ::= expr NMATCH expr */
277, /* (289) expr ::= ID CONTAINS STRING */
277, /* (290) expr ::= ID DOT ID CONTAINS STRING */
287, /* (291) arrow ::= ID ARROW STRING */
287, /* (292) arrow ::= ID DOT ID ARROW STRING */
277, /* (293) expr ::= arrow */
277, /* (294) expr ::= expr IN LP exprlist RP */
213, /* (295) exprlist ::= exprlist COMMA expritem */
213, /* (296) exprlist ::= expritem */
289, /* (297) expritem ::= expr */
289, /* (298) expritem ::= */
205, /* (299) cmd ::= RESET QUERY CACHE */
205, /* (300) cmd ::= SYNCDB ids REPLICA */
205, /* (301) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
205, /* (302) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
205, /* (303) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
205, /* (304) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
205, /* (305) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
205, /* (306) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
205, /* (307) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
205, /* (308) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
205, /* (309) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
205, /* (310) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
205, /* (311) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
205, /* (312) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
205, /* (313) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
205, /* (314) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
205, /* (315) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
205, /* (316) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
205, /* (317) cmd ::= KILL CONNECTION INTEGER */
205, /* (318) cmd ::= KILL STREAM INTEGER COLON INTEGER */
205, /* (319) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
/* For rule J, yyRuleInfoNRhs[J] contains the negative of the number
** of symbols on the right-hand side of that rule. */
static const signed char yyRuleInfoNRhs[] = {
-1, /* (0) program ::= cmd */
-2, /* (1) cmd ::= SHOW DATABASES */
-2, /* (2) cmd ::= SHOW TOPICS */
-2, /* (3) cmd ::= SHOW FUNCTIONS */
-2, /* (4) cmd ::= SHOW MNODES */
-2, /* (5) cmd ::= SHOW DNODES */
-2, /* (6) cmd ::= SHOW ACCOUNTS */
-2, /* (7) cmd ::= SHOW USERS */
-2, /* (8) cmd ::= SHOW MODULES */
-2, /* (9) cmd ::= SHOW QUERIES */
-2, /* (10) cmd ::= SHOW CONNECTIONS */
-2, /* (11) cmd ::= SHOW STREAMS */
-2, /* (12) cmd ::= SHOW VARIABLES */
-2, /* (13) cmd ::= SHOW SCORES */
-2, /* (14) cmd ::= SHOW GRANTS */
-2, /* (15) cmd ::= SHOW VNODES */
-3, /* (16) cmd ::= SHOW VNODES ids */
0, /* (17) dbPrefix ::= */
-2, /* (18) dbPrefix ::= ids DOT */
0, /* (19) cpxName ::= */
-2, /* (20) cpxName ::= DOT ids */
-5, /* (21) cmd ::= SHOW CREATE TABLE ids cpxName */
-5, /* (22) cmd ::= SHOW CREATE STABLE ids cpxName */
-4, /* (23) cmd ::= SHOW CREATE DATABASE ids */
-3, /* (24) cmd ::= SHOW dbPrefix TABLES */
-5, /* (25) cmd ::= SHOW dbPrefix TABLES LIKE STRING */
-3, /* (26) cmd ::= SHOW dbPrefix STABLES */
-5, /* (27) cmd ::= SHOW dbPrefix STABLES LIKE STRING */
-3, /* (28) cmd ::= SHOW dbPrefix VGROUPS */
-5, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */
-5, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */
-4, /* (31) cmd ::= DROP DATABASE ifexists ids */
-4, /* (32) cmd ::= DROP TOPIC ifexists ids */
-3, /* (33) cmd ::= DROP FUNCTION ids */
-3, /* (34) cmd ::= DROP DNODE ids */
-3, /* (35) cmd ::= DROP USER ids */
-3, /* (36) cmd ::= DROP ACCOUNT ids */
-2, /* (37) cmd ::= USE ids */
-3, /* (38) cmd ::= DESCRIBE ids cpxName */
-3, /* (39) cmd ::= DESC ids cpxName */
-5, /* (40) cmd ::= ALTER USER ids PASS ids */
-5, /* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
-4, /* (42) cmd ::= ALTER DNODE ids ids */
-5, /* (43) cmd ::= ALTER DNODE ids ids ids */
-3, /* (44) cmd ::= ALTER LOCAL ids */
-4, /* (45) cmd ::= ALTER LOCAL ids ids */
-4, /* (46) cmd ::= ALTER DATABASE ids alter_db_optr */
-4, /* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */
-4, /* (48) cmd ::= ALTER ACCOUNT ids acct_optr */
-6, /* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
-6, /* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */
-1, /* (51) ids ::= ID */
-1, /* (52) ids ::= STRING */
-2, /* (53) ifexists ::= IF EXISTS */
0, /* (54) ifexists ::= */
-3, /* (55) ifnotexists ::= IF NOT EXISTS */
0, /* (56) ifnotexists ::= */
-3, /* (57) cmd ::= CREATE DNODE ids */
-6, /* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
-5, /* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
-5, /* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
-8, /* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
-9, /* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
-5, /* (63) cmd ::= CREATE USER ids PASS ids */
0, /* (64) bufsize ::= */
-2, /* (65) bufsize ::= BUFSIZE INTEGER */
0, /* (66) pps ::= */
-2, /* (67) pps ::= PPS INTEGER */
0, /* (68) tseries ::= */
-2, /* (69) tseries ::= TSERIES INTEGER */
0, /* (70) dbs ::= */
-2, /* (71) dbs ::= DBS INTEGER */
0, /* (72) streams ::= */
-2, /* (73) streams ::= STREAMS INTEGER */
0, /* (74) storage ::= */
-2, /* (75) storage ::= STORAGE INTEGER */
0, /* (76) qtime ::= */
-2, /* (77) qtime ::= QTIME INTEGER */
0, /* (78) users ::= */
-2, /* (79) users ::= USERS INTEGER */
0, /* (80) conns ::= */
-2, /* (81) conns ::= CONNS INTEGER */
0, /* (82) state ::= */
-2, /* (83) state ::= STATE ids */
-9, /* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
-3, /* (85) intitemlist ::= intitemlist COMMA intitem */
-1, /* (86) intitemlist ::= intitem */
-1, /* (87) intitem ::= INTEGER */
-2, /* (88) keep ::= KEEP intitemlist */
-2, /* (89) cache ::= CACHE INTEGER */
-2, /* (90) replica ::= REPLICA INTEGER */
-2, /* (91) quorum ::= QUORUM INTEGER */
-2, /* (92) days ::= DAYS INTEGER */
-2, /* (93) minrows ::= MINROWS INTEGER */
-2, /* (94) maxrows ::= MAXROWS INTEGER */
-2, /* (95) blocks ::= BLOCKS INTEGER */
-2, /* (96) ctime ::= CTIME INTEGER */
-2, /* (97) wal ::= WAL INTEGER */
-2, /* (98) fsync ::= FSYNC INTEGER */
-2, /* (99) comp ::= COMP INTEGER */
-2, /* (100) prec ::= PRECISION STRING */
-2, /* (101) update ::= UPDATE INTEGER */
-2, /* (102) cachelast ::= CACHELAST INTEGER */
-2, /* (103) partitions ::= PARTITIONS INTEGER */
0, /* (104) db_optr ::= */
-2, /* (105) db_optr ::= db_optr cache */
-2, /* (106) db_optr ::= db_optr replica */
-2, /* (107) db_optr ::= db_optr quorum */
-2, /* (108) db_optr ::= db_optr days */
-2, /* (109) db_optr ::= db_optr minrows */
-2, /* (110) db_optr ::= db_optr maxrows */
-2, /* (111) db_optr ::= db_optr blocks */
-2, /* (112) db_optr ::= db_optr ctime */
-2, /* (113) db_optr ::= db_optr wal */
-2, /* (114) db_optr ::= db_optr fsync */
-2, /* (115) db_optr ::= db_optr comp */
-2, /* (116) db_optr ::= db_optr prec */
-2, /* (117) db_optr ::= db_optr keep */
-2, /* (118) db_optr ::= db_optr update */
-2, /* (119) db_optr ::= db_optr cachelast */
-1, /* (120) topic_optr ::= db_optr */
-2, /* (121) topic_optr ::= topic_optr partitions */
0, /* (122) alter_db_optr ::= */
-2, /* (123) alter_db_optr ::= alter_db_optr replica */
-2, /* (124) alter_db_optr ::= alter_db_optr quorum */
-2, /* (125) alter_db_optr ::= alter_db_optr keep */
-2, /* (126) alter_db_optr ::= alter_db_optr blocks */
-2, /* (127) alter_db_optr ::= alter_db_optr comp */
-2, /* (128) alter_db_optr ::= alter_db_optr update */
-2, /* (129) alter_db_optr ::= alter_db_optr cachelast */
-1, /* (130) alter_topic_optr ::= alter_db_optr */
-2, /* (131) alter_topic_optr ::= alter_topic_optr partitions */
-1, /* (132) typename ::= ids */
-4, /* (133) typename ::= ids LP signed RP */
-2, /* (134) typename ::= ids UNSIGNED */
-1, /* (135) signed ::= INTEGER */
-2, /* (136) signed ::= PLUS INTEGER */
-2, /* (137) signed ::= MINUS INTEGER */
-3, /* (138) cmd ::= CREATE TABLE create_table_args */
-3, /* (139) cmd ::= CREATE TABLE create_stable_args */
-3, /* (140) cmd ::= CREATE STABLE create_stable_args */
-3, /* (141) cmd ::= CREATE TABLE create_table_list */
-1, /* (142) create_table_list ::= create_from_stable */
-2, /* (143) create_table_list ::= create_table_list create_from_stable */
-6, /* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
-10, /* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
-10, /* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
-13, /* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
-3, /* (148) tagNamelist ::= tagNamelist COMMA ids */
-1, /* (149) tagNamelist ::= ids */
-7, /* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
0, /* (151) to_opt ::= */
-3, /* (152) to_opt ::= TO ids cpxName */
0, /* (153) split_opt ::= */
-2, /* (154) split_opt ::= SPLIT ids */
-3, /* (155) columnlist ::= columnlist COMMA column */
-1, /* (156) columnlist ::= column */
-2, /* (157) column ::= ids typename */
-3, /* (158) tagitemlist ::= tagitemlist COMMA tagitem */
-1, /* (159) tagitemlist ::= tagitem */
-1, /* (160) tagitem ::= INTEGER */
-1, /* (161) tagitem ::= FLOAT */
-1, /* (162) tagitem ::= STRING */
-1, /* (163) tagitem ::= BOOL */
-1, /* (164) tagitem ::= NULL */
-1, /* (165) tagitem ::= NOW */
-3, /* (166) tagitem ::= NOW PLUS VARIABLE */
-3, /* (167) tagitem ::= NOW MINUS VARIABLE */
-2, /* (168) tagitem ::= MINUS INTEGER */
-2, /* (169) tagitem ::= MINUS FLOAT */
-2, /* (170) tagitem ::= PLUS INTEGER */
-2, /* (171) tagitem ::= PLUS FLOAT */
-15, /* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
-3, /* (173) select ::= LP select RP */
-1, /* (174) union ::= select */
-4, /* (175) union ::= union UNION ALL select */
-1, /* (176) cmd ::= union */
-2, /* (177) select ::= SELECT selcollist */
-2, /* (178) sclp ::= selcollist COMMA */
0, /* (179) sclp ::= */
-4, /* (180) selcollist ::= sclp distinct expr as */
-2, /* (181) selcollist ::= sclp STAR */
-2, /* (182) as ::= AS ids */
-1, /* (183) as ::= ids */
0, /* (184) as ::= */
-1, /* (185) distinct ::= DISTINCT */
0, /* (186) distinct ::= */
-2, /* (187) from ::= FROM tablelist */
-2, /* (188) from ::= FROM sub */
-3, /* (189) sub ::= LP union RP */
-4, /* (190) sub ::= LP union RP ids */
-6, /* (191) sub ::= sub COMMA LP union RP ids */
-2, /* (192) tablelist ::= ids cpxName */
-3, /* (193) tablelist ::= ids cpxName ids */
-4, /* (194) tablelist ::= tablelist COMMA ids cpxName */
-5, /* (195) tablelist ::= tablelist COMMA ids cpxName ids */
-1, /* (196) tmvar ::= VARIABLE */
-1, /* (197) timestamp ::= INTEGER */
-2, /* (198) timestamp ::= MINUS INTEGER */
-2, /* (199) timestamp ::= PLUS INTEGER */
-1, /* (200) timestamp ::= STRING */
-1, /* (201) timestamp ::= NOW */
-3, /* (202) timestamp ::= NOW PLUS VARIABLE */
-3, /* (203) timestamp ::= NOW MINUS VARIABLE */
0, /* (204) range_option ::= */
-6, /* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */
-4, /* (206) interval_option ::= intervalKey LP tmvar RP */
-6, /* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
0, /* (208) interval_option ::= */
-1, /* (209) intervalKey ::= INTERVAL */
-1, /* (210) intervalKey ::= EVERY */
0, /* (211) session_option ::= */
-7, /* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
0, /* (213) windowstate_option ::= */
-4, /* (214) windowstate_option ::= STATE_WINDOW LP ids RP */
0, /* (215) fill_opt ::= */
-6, /* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
-4, /* (217) fill_opt ::= FILL LP ID RP */
-4, /* (218) sliding_opt ::= SLIDING LP tmvar RP */
0, /* (219) sliding_opt ::= */
0, /* (220) orderby_opt ::= */
-3, /* (221) orderby_opt ::= ORDER BY sortlist */
-4, /* (222) sortlist ::= sortlist COMMA item sortorder */
-4, /* (223) sortlist ::= sortlist COMMA arrow sortorder */
-2, /* (224) sortlist ::= item sortorder */
-2, /* (225) sortlist ::= arrow sortorder */
-1, /* (226) item ::= ID */
-3, /* (227) item ::= ID DOT ID */
-1, /* (228) sortorder ::= ASC */
-1, /* (229) sortorder ::= DESC */
0, /* (230) sortorder ::= */
0, /* (231) groupby_opt ::= */
-3, /* (232) groupby_opt ::= GROUP BY grouplist */
-3, /* (233) grouplist ::= grouplist COMMA item */
-3, /* (234) grouplist ::= grouplist COMMA arrow */
-1, /* (235) grouplist ::= item */
-1, /* (236) grouplist ::= arrow */
0, /* (237) having_opt ::= */
-2, /* (238) having_opt ::= HAVING expr */
0, /* (239) limit_opt ::= */
-2, /* (240) limit_opt ::= LIMIT signed */
-4, /* (241) limit_opt ::= LIMIT signed OFFSET signed */
-4, /* (242) limit_opt ::= LIMIT signed COMMA signed */
0, /* (243) slimit_opt ::= */
-2, /* (244) slimit_opt ::= SLIMIT signed */
-4, /* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */
-4, /* (246) slimit_opt ::= SLIMIT signed COMMA signed */
0, /* (247) where_opt ::= */
-2, /* (248) where_opt ::= WHERE expr */
-3, /* (249) expr ::= LP expr RP */
-1, /* (250) expr ::= ID */
-3, /* (251) expr ::= ID DOT ID */
-3, /* (252) expr ::= ID DOT STAR */
-1, /* (253) expr ::= INTEGER */
-2, /* (254) expr ::= MINUS INTEGER */
-2, /* (255) expr ::= PLUS INTEGER */
-1, /* (256) expr ::= FLOAT */
-2, /* (257) expr ::= MINUS FLOAT */
-2, /* (258) expr ::= PLUS FLOAT */
-1, /* (259) expr ::= STRING */
-1, /* (260) expr ::= NOW */
-1, /* (261) expr ::= TODAY */
-1, /* (262) expr ::= VARIABLE */
-2, /* (263) expr ::= PLUS VARIABLE */
-2, /* (264) expr ::= MINUS VARIABLE */
-1, /* (265) expr ::= BOOL */
-1, /* (266) expr ::= NULL */
-4, /* (267) expr ::= ID LP exprlist RP */
-4, /* (268) expr ::= ID LP STAR RP */
-6, /* (269) expr ::= ID LP expr AS typename RP */
-3, /* (270) expr ::= expr IS NULL */
-4, /* (271) expr ::= expr IS NOT NULL */
-3, /* (272) expr ::= expr LT expr */
-3, /* (273) expr ::= expr GT expr */
-3, /* (274) expr ::= expr LE expr */
-3, /* (275) expr ::= expr GE expr */
-3, /* (276) expr ::= expr NE expr */
-3, /* (277) expr ::= expr EQ expr */
-5, /* (278) expr ::= expr BETWEEN expr AND expr */
-3, /* (279) expr ::= expr AND expr */
-3, /* (280) expr ::= expr OR expr */
-3, /* (281) expr ::= expr PLUS expr */
-3, /* (282) expr ::= expr MINUS expr */
-3, /* (283) expr ::= expr STAR expr */
-3, /* (284) expr ::= expr SLASH expr */
-3, /* (285) expr ::= expr REM expr */
-3, /* (286) expr ::= expr LIKE expr */
-3, /* (287) expr ::= expr MATCH expr */
-3, /* (288) expr ::= expr NMATCH expr */
-3, /* (289) expr ::= ID CONTAINS STRING */
-5, /* (290) expr ::= ID DOT ID CONTAINS STRING */
-3, /* (291) arrow ::= ID ARROW STRING */
-5, /* (292) arrow ::= ID DOT ID ARROW STRING */
-1, /* (293) expr ::= arrow */
-5, /* (294) expr ::= expr IN LP exprlist RP */
-3, /* (295) exprlist ::= exprlist COMMA expritem */
-1, /* (296) exprlist ::= expritem */
-1, /* (297) expritem ::= expr */
0, /* (298) expritem ::= */
-3, /* (299) cmd ::= RESET QUERY CACHE */
-3, /* (300) cmd ::= SYNCDB ids REPLICA */
-7, /* (301) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
-7, /* (302) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
-7, /* (303) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
-7, /* (304) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
-7, /* (305) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
-8, /* (306) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
-9, /* (307) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
-7, /* (308) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
-7, /* (309) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
-7, /* (310) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
-7, /* (311) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
-7, /* (312) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
-7, /* (313) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
-8, /* (314) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
-9, /* (315) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
-7, /* (316) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
-3, /* (317) cmd ::= KILL CONNECTION INTEGER */
-5, /* (318) cmd ::= KILL STREAM INTEGER COLON INTEGER */
-5, /* (319) cmd ::= KILL QUERY INTEGER COLON INTEGER */
/* The following table contains information about every rule that
** is used during the reduce.
*/
static const struct {
YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
signed char nrhs; /* Negative of the number of RHS symbols in the rule */
} yyRuleInfo[] = {
{ 205, -1 }, /* (0) program ::= cmd */
{ 206, -2 }, /* (1) cmd ::= SHOW DATABASES */
{ 206, -2 }, /* (2) cmd ::= SHOW TOPICS */
{ 206, -2 }, /* (3) cmd ::= SHOW FUNCTIONS */
{ 206, -2 }, /* (4) cmd ::= SHOW MNODES */
{ 206, -2 }, /* (5) cmd ::= SHOW DNODES */
{ 206, -2 }, /* (6) cmd ::= SHOW ACCOUNTS */
{ 206, -2 }, /* (7) cmd ::= SHOW USERS */
{ 206, -2 }, /* (8) cmd ::= SHOW MODULES */
{ 206, -2 }, /* (9) cmd ::= SHOW QUERIES */
{ 206, -2 }, /* (10) cmd ::= SHOW CONNECTIONS */
{ 206, -2 }, /* (11) cmd ::= SHOW STREAMS */
{ 206, -2 }, /* (12) cmd ::= SHOW VARIABLES */
{ 206, -2 }, /* (13) cmd ::= SHOW SCORES */
{ 206, -2 }, /* (14) cmd ::= SHOW GRANTS */
{ 206, -2 }, /* (15) cmd ::= SHOW VNODES */
{ 206, -3 }, /* (16) cmd ::= SHOW VNODES ids */
{ 208, 0 }, /* (17) dbPrefix ::= */
{ 208, -2 }, /* (18) dbPrefix ::= ids DOT */
{ 209, 0 }, /* (19) cpxName ::= */
{ 209, -2 }, /* (20) cpxName ::= DOT ids */
{ 206, -5 }, /* (21) cmd ::= SHOW CREATE TABLE ids cpxName */
{ 206, -5 }, /* (22) cmd ::= SHOW CREATE STABLE ids cpxName */
{ 206, -4 }, /* (23) cmd ::= SHOW CREATE DATABASE ids */
{ 206, -3 }, /* (24) cmd ::= SHOW dbPrefix TABLES */
{ 206, -5 }, /* (25) cmd ::= SHOW dbPrefix TABLES LIKE STRING */
{ 206, -3 }, /* (26) cmd ::= SHOW dbPrefix STABLES */
{ 206, -5 }, /* (27) cmd ::= SHOW dbPrefix STABLES LIKE STRING */
{ 206, -3 }, /* (28) cmd ::= SHOW dbPrefix VGROUPS */
{ 206, -5 }, /* (29) cmd ::= DROP TABLE ifexists ids cpxName */
{ 206, -5 }, /* (30) cmd ::= DROP STABLE ifexists ids cpxName */
{ 206, -4 }, /* (31) cmd ::= DROP DATABASE ifexists ids */
{ 206, -4 }, /* (32) cmd ::= DROP TOPIC ifexists ids */
{ 206, -3 }, /* (33) cmd ::= DROP FUNCTION ids */
{ 206, -3 }, /* (34) cmd ::= DROP DNODE ids */
{ 206, -3 }, /* (35) cmd ::= DROP USER ids */
{ 206, -3 }, /* (36) cmd ::= DROP ACCOUNT ids */
{ 206, -2 }, /* (37) cmd ::= USE ids */
{ 206, -3 }, /* (38) cmd ::= DESCRIBE ids cpxName */
{ 206, -3 }, /* (39) cmd ::= DESC ids cpxName */
{ 206, -5 }, /* (40) cmd ::= ALTER USER ids PASS ids */
{ 206, -5 }, /* (41) cmd ::= ALTER USER ids PRIVILEGE ids */
{ 206, -4 }, /* (42) cmd ::= ALTER DNODE ids ids */
{ 206, -5 }, /* (43) cmd ::= ALTER DNODE ids ids ids */
{ 206, -3 }, /* (44) cmd ::= ALTER LOCAL ids */
{ 206, -4 }, /* (45) cmd ::= ALTER LOCAL ids ids */
{ 206, -4 }, /* (46) cmd ::= ALTER DATABASE ids alter_db_optr */
{ 206, -4 }, /* (47) cmd ::= ALTER TOPIC ids alter_topic_optr */
{ 206, -4 }, /* (48) cmd ::= ALTER ACCOUNT ids acct_optr */
{ 206, -6 }, /* (49) cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{ 206, -6 }, /* (50) cmd ::= COMPACT VNODES IN LP exprlist RP */
{ 207, -1 }, /* (51) ids ::= ID */
{ 207, -1 }, /* (52) ids ::= STRING */
{ 210, -2 }, /* (53) ifexists ::= IF EXISTS */
{ 210, 0 }, /* (54) ifexists ::= */
{ 215, -3 }, /* (55) ifnotexists ::= IF NOT EXISTS */
{ 215, 0 }, /* (56) ifnotexists ::= */
{ 206, -3 }, /* (57) cmd ::= CREATE DNODE ids */
{ 206, -6 }, /* (58) cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{ 206, -5 }, /* (59) cmd ::= CREATE DATABASE ifnotexists ids db_optr */
{ 206, -5 }, /* (60) cmd ::= CREATE TOPIC ifnotexists ids topic_optr */
{ 206, -8 }, /* (61) cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{ 206, -9 }, /* (62) cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{ 206, -5 }, /* (63) cmd ::= CREATE USER ids PASS ids */
{ 219, 0 }, /* (64) bufsize ::= */
{ 219, -2 }, /* (65) bufsize ::= BUFSIZE INTEGER */
{ 220, 0 }, /* (66) pps ::= */
{ 220, -2 }, /* (67) pps ::= PPS INTEGER */
{ 221, 0 }, /* (68) tseries ::= */
{ 221, -2 }, /* (69) tseries ::= TSERIES INTEGER */
{ 222, 0 }, /* (70) dbs ::= */
{ 222, -2 }, /* (71) dbs ::= DBS INTEGER */
{ 223, 0 }, /* (72) streams ::= */
{ 223, -2 }, /* (73) streams ::= STREAMS INTEGER */
{ 224, 0 }, /* (74) storage ::= */
{ 224, -2 }, /* (75) storage ::= STORAGE INTEGER */
{ 225, 0 }, /* (76) qtime ::= */
{ 225, -2 }, /* (77) qtime ::= QTIME INTEGER */
{ 226, 0 }, /* (78) users ::= */
{ 226, -2 }, /* (79) users ::= USERS INTEGER */
{ 227, 0 }, /* (80) conns ::= */
{ 227, -2 }, /* (81) conns ::= CONNS INTEGER */
{ 228, 0 }, /* (82) state ::= */
{ 228, -2 }, /* (83) state ::= STATE ids */
{ 213, -9 }, /* (84) acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{ 229, -3 }, /* (85) intitemlist ::= intitemlist COMMA intitem */
{ 229, -1 }, /* (86) intitemlist ::= intitem */
{ 230, -1 }, /* (87) intitem ::= INTEGER */
{ 231, -2 }, /* (88) keep ::= KEEP intitemlist */
{ 232, -2 }, /* (89) cache ::= CACHE INTEGER */
{ 233, -2 }, /* (90) replica ::= REPLICA INTEGER */
{ 234, -2 }, /* (91) quorum ::= QUORUM INTEGER */
{ 235, -2 }, /* (92) days ::= DAYS INTEGER */
{ 236, -2 }, /* (93) minrows ::= MINROWS INTEGER */
{ 237, -2 }, /* (94) maxrows ::= MAXROWS INTEGER */
{ 238, -2 }, /* (95) blocks ::= BLOCKS INTEGER */
{ 239, -2 }, /* (96) ctime ::= CTIME INTEGER */
{ 240, -2 }, /* (97) wal ::= WAL INTEGER */
{ 241, -2 }, /* (98) fsync ::= FSYNC INTEGER */
{ 242, -2 }, /* (99) comp ::= COMP INTEGER */
{ 243, -2 }, /* (100) prec ::= PRECISION STRING */
{ 244, -2 }, /* (101) update ::= UPDATE INTEGER */
{ 245, -2 }, /* (102) cachelast ::= CACHELAST INTEGER */
{ 246, -2 }, /* (103) partitions ::= PARTITIONS INTEGER */
{ 216, 0 }, /* (104) db_optr ::= */
{ 216, -2 }, /* (105) db_optr ::= db_optr cache */
{ 216, -2 }, /* (106) db_optr ::= db_optr replica */
{ 216, -2 }, /* (107) db_optr ::= db_optr quorum */
{ 216, -2 }, /* (108) db_optr ::= db_optr days */
{ 216, -2 }, /* (109) db_optr ::= db_optr minrows */
{ 216, -2 }, /* (110) db_optr ::= db_optr maxrows */
{ 216, -2 }, /* (111) db_optr ::= db_optr blocks */
{ 216, -2 }, /* (112) db_optr ::= db_optr ctime */
{ 216, -2 }, /* (113) db_optr ::= db_optr wal */
{ 216, -2 }, /* (114) db_optr ::= db_optr fsync */
{ 216, -2 }, /* (115) db_optr ::= db_optr comp */
{ 216, -2 }, /* (116) db_optr ::= db_optr prec */
{ 216, -2 }, /* (117) db_optr ::= db_optr keep */
{ 216, -2 }, /* (118) db_optr ::= db_optr update */
{ 216, -2 }, /* (119) db_optr ::= db_optr cachelast */
{ 217, -1 }, /* (120) topic_optr ::= db_optr */
{ 217, -2 }, /* (121) topic_optr ::= topic_optr partitions */
{ 211, 0 }, /* (122) alter_db_optr ::= */
{ 211, -2 }, /* (123) alter_db_optr ::= alter_db_optr replica */
{ 211, -2 }, /* (124) alter_db_optr ::= alter_db_optr quorum */
{ 211, -2 }, /* (125) alter_db_optr ::= alter_db_optr keep */
{ 211, -2 }, /* (126) alter_db_optr ::= alter_db_optr blocks */
{ 211, -2 }, /* (127) alter_db_optr ::= alter_db_optr comp */
{ 211, -2 }, /* (128) alter_db_optr ::= alter_db_optr update */
{ 211, -2 }, /* (129) alter_db_optr ::= alter_db_optr cachelast */
{ 212, -1 }, /* (130) alter_topic_optr ::= alter_db_optr */
{ 212, -2 }, /* (131) alter_topic_optr ::= alter_topic_optr partitions */
{ 218, -1 }, /* (132) typename ::= ids */
{ 218, -4 }, /* (133) typename ::= ids LP signed RP */
{ 218, -2 }, /* (134) typename ::= ids UNSIGNED */
{ 247, -1 }, /* (135) signed ::= INTEGER */
{ 247, -2 }, /* (136) signed ::= PLUS INTEGER */
{ 247, -2 }, /* (137) signed ::= MINUS INTEGER */
{ 206, -3 }, /* (138) cmd ::= CREATE TABLE create_table_args */
{ 206, -3 }, /* (139) cmd ::= CREATE TABLE create_stable_args */
{ 206, -3 }, /* (140) cmd ::= CREATE STABLE create_stable_args */
{ 206, -3 }, /* (141) cmd ::= CREATE TABLE create_table_list */
{ 250, -1 }, /* (142) create_table_list ::= create_from_stable */
{ 250, -2 }, /* (143) create_table_list ::= create_table_list create_from_stable */
{ 248, -6 }, /* (144) create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{ 249, -10 }, /* (145) create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{ 251, -10 }, /* (146) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{ 251, -13 }, /* (147) create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{ 254, -3 }, /* (148) tagNamelist ::= tagNamelist COMMA ids */
{ 254, -1 }, /* (149) tagNamelist ::= ids */
{ 248, -7 }, /* (150) create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
{ 255, 0 }, /* (151) to_opt ::= */
{ 255, -3 }, /* (152) to_opt ::= TO ids cpxName */
{ 256, 0 }, /* (153) split_opt ::= */
{ 256, -2 }, /* (154) split_opt ::= SPLIT ids */
{ 252, -3 }, /* (155) columnlist ::= columnlist COMMA column */
{ 252, -1 }, /* (156) columnlist ::= column */
{ 259, -2 }, /* (157) column ::= ids typename */
{ 253, -3 }, /* (158) tagitemlist ::= tagitemlist COMMA tagitem */
{ 253, -1 }, /* (159) tagitemlist ::= tagitem */
{ 260, -1 }, /* (160) tagitem ::= INTEGER */
{ 260, -1 }, /* (161) tagitem ::= FLOAT */
{ 260, -1 }, /* (162) tagitem ::= STRING */
{ 260, -1 }, /* (163) tagitem ::= BOOL */
{ 260, -1 }, /* (164) tagitem ::= NULL */
{ 260, -1 }, /* (165) tagitem ::= NOW */
{ 260, -3 }, /* (166) tagitem ::= NOW PLUS VARIABLE */
{ 260, -3 }, /* (167) tagitem ::= NOW MINUS VARIABLE */
{ 260, -2 }, /* (168) tagitem ::= MINUS INTEGER */
{ 260, -2 }, /* (169) tagitem ::= MINUS FLOAT */
{ 260, -2 }, /* (170) tagitem ::= PLUS INTEGER */
{ 260, -2 }, /* (171) tagitem ::= PLUS FLOAT */
{ 257, -15 }, /* (172) select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
{ 257, -3 }, /* (173) select ::= LP select RP */
{ 275, -1 }, /* (174) union ::= select */
{ 275, -4 }, /* (175) union ::= union UNION ALL select */
{ 206, -1 }, /* (176) cmd ::= union */
{ 257, -2 }, /* (177) select ::= SELECT selcollist */
{ 276, -2 }, /* (178) sclp ::= selcollist COMMA */
{ 276, 0 }, /* (179) sclp ::= */
{ 261, -4 }, /* (180) selcollist ::= sclp distinct expr as */
{ 261, -2 }, /* (181) selcollist ::= sclp STAR */
{ 279, -2 }, /* (182) as ::= AS ids */
{ 279, -1 }, /* (183) as ::= ids */
{ 279, 0 }, /* (184) as ::= */
{ 277, -1 }, /* (185) distinct ::= DISTINCT */
{ 277, 0 }, /* (186) distinct ::= */
{ 262, -2 }, /* (187) from ::= FROM tablelist */
{ 262, -2 }, /* (188) from ::= FROM sub */
{ 281, -3 }, /* (189) sub ::= LP union RP */
{ 281, -4 }, /* (190) sub ::= LP union RP ids */
{ 281, -6 }, /* (191) sub ::= sub COMMA LP union RP ids */
{ 280, -2 }, /* (192) tablelist ::= ids cpxName */
{ 280, -3 }, /* (193) tablelist ::= ids cpxName ids */
{ 280, -4 }, /* (194) tablelist ::= tablelist COMMA ids cpxName */
{ 280, -5 }, /* (195) tablelist ::= tablelist COMMA ids cpxName ids */
{ 282, -1 }, /* (196) tmvar ::= VARIABLE */
{ 283, -1 }, /* (197) timestamp ::= INTEGER */
{ 283, -2 }, /* (198) timestamp ::= MINUS INTEGER */
{ 283, -2 }, /* (199) timestamp ::= PLUS INTEGER */
{ 283, -1 }, /* (200) timestamp ::= STRING */
{ 283, -1 }, /* (201) timestamp ::= NOW */
{ 283, -3 }, /* (202) timestamp ::= NOW PLUS VARIABLE */
{ 283, -3 }, /* (203) timestamp ::= NOW MINUS VARIABLE */
{ 264, 0 }, /* (204) range_option ::= */
{ 264, -6 }, /* (205) range_option ::= RANGE LP timestamp COMMA timestamp RP */
{ 265, -4 }, /* (206) interval_option ::= intervalKey LP tmvar RP */
{ 265, -6 }, /* (207) interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
{ 265, 0 }, /* (208) interval_option ::= */
{ 284, -1 }, /* (209) intervalKey ::= INTERVAL */
{ 284, -1 }, /* (210) intervalKey ::= EVERY */
{ 267, 0 }, /* (211) session_option ::= */
{ 267, -7 }, /* (212) session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{ 268, 0 }, /* (213) windowstate_option ::= */
{ 268, -4 }, /* (214) windowstate_option ::= STATE_WINDOW LP ids RP */
{ 269, 0 }, /* (215) fill_opt ::= */
{ 269, -6 }, /* (216) fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{ 269, -4 }, /* (217) fill_opt ::= FILL LP ID RP */
{ 266, -4 }, /* (218) sliding_opt ::= SLIDING LP tmvar RP */
{ 266, 0 }, /* (219) sliding_opt ::= */
{ 272, 0 }, /* (220) orderby_opt ::= */
{ 272, -3 }, /* (221) orderby_opt ::= ORDER BY sortlist */
{ 285, -4 }, /* (222) sortlist ::= sortlist COMMA item sortorder */
{ 285, -4 }, /* (223) sortlist ::= sortlist COMMA arrow sortorder */
{ 285, -2 }, /* (224) sortlist ::= item sortorder */
{ 285, -2 }, /* (225) sortlist ::= arrow sortorder */
{ 286, -1 }, /* (226) item ::= ID */
{ 286, -3 }, /* (227) item ::= ID DOT ID */
{ 287, -1 }, /* (228) sortorder ::= ASC */
{ 287, -1 }, /* (229) sortorder ::= DESC */
{ 287, 0 }, /* (230) sortorder ::= */
{ 270, 0 }, /* (231) groupby_opt ::= */
{ 270, -3 }, /* (232) groupby_opt ::= GROUP BY grouplist */
{ 289, -3 }, /* (233) grouplist ::= grouplist COMMA item */
{ 289, -3 }, /* (234) grouplist ::= grouplist COMMA arrow */
{ 289, -1 }, /* (235) grouplist ::= item */
{ 289, -1 }, /* (236) grouplist ::= arrow */
{ 271, 0 }, /* (237) having_opt ::= */
{ 271, -2 }, /* (238) having_opt ::= HAVING expr */
{ 274, 0 }, /* (239) limit_opt ::= */
{ 274, -2 }, /* (240) limit_opt ::= LIMIT signed */
{ 274, -4 }, /* (241) limit_opt ::= LIMIT signed OFFSET signed */
{ 274, -4 }, /* (242) limit_opt ::= LIMIT signed COMMA signed */
{ 273, 0 }, /* (243) slimit_opt ::= */
{ 273, -2 }, /* (244) slimit_opt ::= SLIMIT signed */
{ 273, -4 }, /* (245) slimit_opt ::= SLIMIT signed SOFFSET signed */
{ 273, -4 }, /* (246) slimit_opt ::= SLIMIT signed COMMA signed */
{ 263, 0 }, /* (247) where_opt ::= */
{ 263, -2 }, /* (248) where_opt ::= WHERE expr */
{ 278, -3 }, /* (249) expr ::= LP expr RP */
{ 278, -1 }, /* (250) expr ::= ID */
{ 278, -3 }, /* (251) expr ::= ID DOT ID */
{ 278, -3 }, /* (252) expr ::= ID DOT STAR */
{ 278, -1 }, /* (253) expr ::= INTEGER */
{ 278, -2 }, /* (254) expr ::= MINUS INTEGER */
{ 278, -2 }, /* (255) expr ::= PLUS INTEGER */
{ 278, -1 }, /* (256) expr ::= FLOAT */
{ 278, -2 }, /* (257) expr ::= MINUS FLOAT */
{ 278, -2 }, /* (258) expr ::= PLUS FLOAT */
{ 278, -1 }, /* (259) expr ::= STRING */
{ 278, -1 }, /* (260) expr ::= NOW */
{ 278, -1 }, /* (261) expr ::= TODAY */
{ 278, -1 }, /* (262) expr ::= VARIABLE */
{ 278, -2 }, /* (263) expr ::= PLUS VARIABLE */
{ 278, -2 }, /* (264) expr ::= MINUS VARIABLE */
{ 278, -1 }, /* (265) expr ::= BOOL */
{ 278, -1 }, /* (266) expr ::= NULL */
{ 278, -4 }, /* (267) expr ::= ID LP exprlist RP */
{ 278, -4 }, /* (268) expr ::= ID LP STAR RP */
{ 278, -6 }, /* (269) expr ::= ID LP expr AS typename RP */
{ 278, -3 }, /* (270) expr ::= expr IS NULL */
{ 278, -4 }, /* (271) expr ::= expr IS NOT NULL */
{ 278, -3 }, /* (272) expr ::= expr LT expr */
{ 278, -3 }, /* (273) expr ::= expr GT expr */
{ 278, -3 }, /* (274) expr ::= expr LE expr */
{ 278, -3 }, /* (275) expr ::= expr GE expr */
{ 278, -3 }, /* (276) expr ::= expr NE expr */
{ 278, -3 }, /* (277) expr ::= expr EQ expr */
{ 278, -5 }, /* (278) expr ::= expr BETWEEN expr AND expr */
{ 278, -3 }, /* (279) expr ::= expr AND expr */
{ 278, -3 }, /* (280) expr ::= expr OR expr */
{ 278, -3 }, /* (281) expr ::= expr PLUS expr */
{ 278, -3 }, /* (282) expr ::= expr MINUS expr */
{ 278, -3 }, /* (283) expr ::= expr STAR expr */
{ 278, -3 }, /* (284) expr ::= expr SLASH expr */
{ 278, -3 }, /* (285) expr ::= expr REM expr */
{ 278, -3 }, /* (286) expr ::= expr BITAND expr */
{ 278, -3 }, /* (287) expr ::= expr LIKE expr */
{ 278, -3 }, /* (288) expr ::= expr MATCH expr */
{ 278, -3 }, /* (289) expr ::= expr NMATCH expr */
{ 278, -3 }, /* (290) expr ::= ID CONTAINS STRING */
{ 278, -5 }, /* (291) expr ::= ID DOT ID CONTAINS STRING */
{ 288, -3 }, /* (292) arrow ::= ID ARROW STRING */
{ 288, -5 }, /* (293) arrow ::= ID DOT ID ARROW STRING */
{ 278, -1 }, /* (294) expr ::= arrow */
{ 278, -5 }, /* (295) expr ::= expr IN LP exprlist RP */
{ 214, -3 }, /* (296) exprlist ::= exprlist COMMA expritem */
{ 214, -1 }, /* (297) exprlist ::= expritem */
{ 290, -1 }, /* (298) expritem ::= expr */
{ 290, 0 }, /* (299) expritem ::= */
{ 206, -3 }, /* (300) cmd ::= RESET QUERY CACHE */
{ 206, -3 }, /* (301) cmd ::= SYNCDB ids REPLICA */
{ 206, -7 }, /* (302) cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{ 206, -7 }, /* (303) cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{ 206, -7 }, /* (304) cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
{ 206, -7 }, /* (305) cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{ 206, -7 }, /* (306) cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{ 206, -8 }, /* (307) cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{ 206, -9 }, /* (308) cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{ 206, -7 }, /* (309) cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
{ 206, -7 }, /* (310) cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{ 206, -7 }, /* (311) cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{ 206, -7 }, /* (312) cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
{ 206, -7 }, /* (313) cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{ 206, -7 }, /* (314) cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{ 206, -8 }, /* (315) cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{ 206, -9 }, /* (316) cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
{ 206, -7 }, /* (317) cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
{ 206, -3 }, /* (318) cmd ::= KILL CONNECTION INTEGER */
{ 206, -5 }, /* (319) cmd ::= KILL STREAM INTEGER COLON INTEGER */
{ 206, -5 }, /* (320) cmd ::= KILL QUERY INTEGER COLON INTEGER */
};
static void yy_accept(yyParser*); /* Forward Declaration */
......@@ -2579,34 +2249,30 @@ static void yy_accept(yyParser*); /* Forward Declaration */
** only called from one place, optimizing compilers will in-line it, which
** means that the extra parameters have no performance impact.
*/
static YYACTIONTYPE yy_reduce(
static void yy_reduce(
yyParser *yypParser, /* The parser */
unsigned int yyruleno, /* Number of the rule by which to reduce */
int yyLookahead, /* Lookahead token, or YYNOCODE if none */
ParseTOKENTYPE yyLookaheadToken /* Value of the lookahead token */
ParseCTX_PDECL /* %extra_context */
){
int yygoto; /* The next state */
YYACTIONTYPE yyact; /* The next action */
int yyact; /* The next action */
yyStackEntry *yymsp; /* The top of the parser's stack */
int yysize; /* Amount to pop the stack */
ParseARG_FETCH
ParseARG_FETCH;
(void)yyLookahead;
(void)yyLookaheadToken;
yymsp = yypParser->yytos;
#ifndef NDEBUG
if( yyTraceFILE && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){
yysize = yyRuleInfoNRhs[yyruleno];
yysize = yyRuleInfo[yyruleno].nrhs;
if( yysize ){
fprintf(yyTraceFILE, "%sReduce %d [%s]%s, pop back to state %d.\n",
fprintf(yyTraceFILE, "%sReduce %d [%s], go to state %d.\n",
yyTracePrompt,
yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action",
yymsp[yysize].stateno);
yyruleno, yyRuleName[yyruleno], yymsp[yysize].stateno);
}else{
fprintf(yyTraceFILE, "%sReduce %d [%s]%s.\n",
yyTracePrompt, yyruleno, yyRuleName[yyruleno],
yyruleno<YYNRULE_WITH_ACTION ? "" : " without external action");
fprintf(yyTraceFILE, "%sReduce %d [%s].\n",
yyTracePrompt, yyruleno, yyRuleName[yyruleno]);
}
}
#endif /* NDEBUG */
......@@ -2614,7 +2280,7 @@ static YYACTIONTYPE yy_reduce(
/* 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 ){
if( yyRuleInfo[yyruleno].nrhs==0 ){
#ifdef YYTRACKMAXSTACKDEPTH
if( (int)(yypParser->yytos - yypParser->yystack)>yypParser->yyhwm ){
yypParser->yyhwm++;
......@@ -2624,19 +2290,13 @@ static YYACTIONTYPE yy_reduce(
#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;
return;
}
#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;
return;
}
yymsp = yypParser->yytos;
}
......@@ -2827,16 +2487,16 @@ static YYACTIONTYPE yy_reduce(
break;
case 46: /* cmd ::= ALTER DATABASE ids alter_db_optr */
case 47: /* cmd ::= ALTER TOPIC ids alter_topic_optr */ yytestcase(yyruleno==47);
{ SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy302, &t);}
{ SStrToken t = {0}; setCreateDbInfo(pInfo, TSDB_SQL_ALTER_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy436, &t);}
break;
case 48: /* cmd ::= ALTER ACCOUNT ids acct_optr */
{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy231);}
{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-1].minor.yy0, NULL, &yymsp[0].minor.yy517);}
break;
case 49: /* cmd ::= ALTER ACCOUNT ids PASS ids acct_optr */
{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy231);}
{ setCreateAcctSql(pInfo, TSDB_SQL_ALTER_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy517);}
break;
case 50: /* cmd ::= COMPACT VNODES IN LP exprlist RP */
{ setCompactVnodeSql(pInfo, TSDB_SQL_COMPACT_VNODE, yymsp[-1].minor.yy161);}
{ setCompactVnodeSql(pInfo, TSDB_SQL_COMPACT_VNODE, yymsp[-1].minor.yy525);}
break;
case 51: /* ids ::= ID */
case 52: /* ids ::= STRING */ yytestcase(yyruleno==52);
......@@ -2858,17 +2518,17 @@ static YYACTIONTYPE yy_reduce(
{ setDCLSqlElems(pInfo, TSDB_SQL_CREATE_DNODE, 1, &yymsp[0].minor.yy0);}
break;
case 58: /* cmd ::= CREATE ACCOUNT ids PASS ids acct_optr */
{ setCreateAcctSql(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy231);}
{ setCreateAcctSql(pInfo, TSDB_SQL_CREATE_ACCT, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy517);}
break;
case 59: /* cmd ::= CREATE DATABASE ifnotexists ids db_optr */
case 60: /* cmd ::= CREATE TOPIC ifnotexists ids topic_optr */ yytestcase(yyruleno==60);
{ setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy302, &yymsp[-2].minor.yy0);}
{ setCreateDbInfo(pInfo, TSDB_SQL_CREATE_DB, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy436, &yymsp[-2].minor.yy0);}
break;
case 61: /* cmd ::= CREATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{ setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy223, &yymsp[0].minor.yy0, 1);}
{ setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy115, &yymsp[0].minor.yy0, 1);}
break;
case 62: /* cmd ::= CREATE AGGREGATE FUNCTION ids AS ids OUTPUTTYPE typename bufsize */
{ setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy223, &yymsp[0].minor.yy0, 2);}
{ setCreateFuncInfo(pInfo, TSDB_SQL_CREATE_FUNCTION, &yymsp[-5].minor.yy0, &yymsp[-3].minor.yy0, &yymsp[-1].minor.yy115, &yymsp[0].minor.yy0, 2);}
break;
case 63: /* cmd ::= CREATE USER ids PASS ids */
{ setCreateUserSql(pInfo, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);}
......@@ -2899,38 +2559,38 @@ static YYACTIONTYPE yy_reduce(
break;
case 84: /* acct_optr ::= pps tseries storage streams qtime dbs users conns state */
{
yylhsminor.yy231.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1;
yylhsminor.yy231.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1;
yylhsminor.yy231.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1;
yylhsminor.yy231.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1;
yylhsminor.yy231.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1;
yylhsminor.yy231.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1;
yylhsminor.yy231.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1;
yylhsminor.yy231.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1;
yylhsminor.yy231.stat = yymsp[0].minor.yy0;
yylhsminor.yy517.maxUsers = (yymsp[-2].minor.yy0.n>0)?atoi(yymsp[-2].minor.yy0.z):-1;
yylhsminor.yy517.maxDbs = (yymsp[-3].minor.yy0.n>0)?atoi(yymsp[-3].minor.yy0.z):-1;
yylhsminor.yy517.maxTimeSeries = (yymsp[-7].minor.yy0.n>0)?atoi(yymsp[-7].minor.yy0.z):-1;
yylhsminor.yy517.maxStreams = (yymsp[-5].minor.yy0.n>0)?atoi(yymsp[-5].minor.yy0.z):-1;
yylhsminor.yy517.maxPointsPerSecond = (yymsp[-8].minor.yy0.n>0)?atoi(yymsp[-8].minor.yy0.z):-1;
yylhsminor.yy517.maxStorage = (yymsp[-6].minor.yy0.n>0)?strtoll(yymsp[-6].minor.yy0.z, NULL, 10):-1;
yylhsminor.yy517.maxQueryTime = (yymsp[-4].minor.yy0.n>0)?strtoll(yymsp[-4].minor.yy0.z, NULL, 10):-1;
yylhsminor.yy517.maxConnections = (yymsp[-1].minor.yy0.n>0)?atoi(yymsp[-1].minor.yy0.z):-1;
yylhsminor.yy517.stat = yymsp[0].minor.yy0;
}
yymsp[-8].minor.yy231 = yylhsminor.yy231;
yymsp[-8].minor.yy517 = yylhsminor.yy517;
break;
case 85: /* intitemlist ::= intitemlist COMMA intitem */
case 158: /* tagitemlist ::= tagitemlist COMMA tagitem */ yytestcase(yyruleno==158);
{ yylhsminor.yy161 = tVariantListAppend(yymsp[-2].minor.yy161, &yymsp[0].minor.yy526, -1); }
yymsp[-2].minor.yy161 = yylhsminor.yy161;
{ yylhsminor.yy525 = tVariantListAppend(yymsp[-2].minor.yy525, &yymsp[0].minor.yy110, -1); }
yymsp[-2].minor.yy525 = yylhsminor.yy525;
break;
case 86: /* intitemlist ::= intitem */
case 159: /* tagitemlist ::= tagitem */ yytestcase(yyruleno==159);
{ yylhsminor.yy161 = tVariantListAppend(NULL, &yymsp[0].minor.yy526, -1); }
yymsp[0].minor.yy161 = yylhsminor.yy161;
{ yylhsminor.yy525 = tVariantListAppend(NULL, &yymsp[0].minor.yy110, -1); }
yymsp[0].minor.yy525 = yylhsminor.yy525;
break;
case 87: /* intitem ::= INTEGER */
case 160: /* tagitem ::= INTEGER */ yytestcase(yyruleno==160);
case 161: /* tagitem ::= FLOAT */ yytestcase(yyruleno==161);
case 162: /* tagitem ::= STRING */ yytestcase(yyruleno==162);
case 163: /* tagitem ::= BOOL */ yytestcase(yyruleno==163);
{ toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy526, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy526 = yylhsminor.yy526;
{ toTSDBType(yymsp[0].minor.yy0.type); tVariantCreate(&yylhsminor.yy110, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy110 = yylhsminor.yy110;
break;
case 88: /* keep ::= KEEP intitemlist */
{ yymsp[-1].minor.yy161 = yymsp[0].minor.yy161; }
{ yymsp[-1].minor.yy525 = yymsp[0].minor.yy525; }
break;
case 89: /* cache ::= CACHE INTEGER */
case 90: /* replica ::= REPLICA INTEGER */ yytestcase(yyruleno==90);
......@@ -2950,200 +2610,200 @@ static YYACTIONTYPE yy_reduce(
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
break;
case 104: /* db_optr ::= */
{setDefaultCreateDbOption(&yymsp[1].minor.yy302); yymsp[1].minor.yy302.dbType = TSDB_DB_TYPE_DEFAULT;}
{setDefaultCreateDbOption(&yymsp[1].minor.yy436); yymsp[1].minor.yy436.dbType = TSDB_DB_TYPE_DEFAULT;}
break;
case 105: /* db_optr ::= db_optr cache */
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.cacheBlockSize = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 106: /* db_optr ::= db_optr replica */
case 123: /* alter_db_optr ::= alter_db_optr replica */ yytestcase(yyruleno==123);
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.replica = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 107: /* db_optr ::= db_optr quorum */
case 124: /* alter_db_optr ::= alter_db_optr quorum */ yytestcase(yyruleno==124);
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.quorum = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 108: /* db_optr ::= db_optr days */
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.daysPerFile = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 109: /* db_optr ::= db_optr minrows */
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.minRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 110: /* db_optr ::= db_optr maxrows */
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.maxRowsPerBlock = strtod(yymsp[0].minor.yy0.z, NULL); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 111: /* db_optr ::= db_optr blocks */
case 126: /* alter_db_optr ::= alter_db_optr blocks */ yytestcase(yyruleno==126);
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.numOfBlocks = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 112: /* db_optr ::= db_optr ctime */
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.commitTime = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 113: /* db_optr ::= db_optr wal */
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.walLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 114: /* db_optr ::= db_optr fsync */
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.fsyncPeriod = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 115: /* db_optr ::= db_optr comp */
case 127: /* alter_db_optr ::= alter_db_optr comp */ yytestcase(yyruleno==127);
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.compressionLevel = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 116: /* db_optr ::= db_optr prec */
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.precision = yymsp[0].minor.yy0; }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.precision = yymsp[0].minor.yy0; }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 117: /* db_optr ::= db_optr keep */
case 125: /* alter_db_optr ::= alter_db_optr keep */ yytestcase(yyruleno==125);
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.keep = yymsp[0].minor.yy161; }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.keep = yymsp[0].minor.yy525; }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 118: /* db_optr ::= db_optr update */
case 128: /* alter_db_optr ::= alter_db_optr update */ yytestcase(yyruleno==128);
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.update = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 119: /* db_optr ::= db_optr cachelast */
case 129: /* alter_db_optr ::= alter_db_optr cachelast */ yytestcase(yyruleno==129);
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.cachelast = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 120: /* topic_optr ::= db_optr */
case 130: /* alter_topic_optr ::= alter_db_optr */ yytestcase(yyruleno==130);
{ yylhsminor.yy302 = yymsp[0].minor.yy302; yylhsminor.yy302.dbType = TSDB_DB_TYPE_TOPIC; }
yymsp[0].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[0].minor.yy436; yylhsminor.yy436.dbType = TSDB_DB_TYPE_TOPIC; }
yymsp[0].minor.yy436 = yylhsminor.yy436;
break;
case 121: /* topic_optr ::= topic_optr partitions */
case 131: /* alter_topic_optr ::= alter_topic_optr partitions */ yytestcase(yyruleno==131);
{ yylhsminor.yy302 = yymsp[-1].minor.yy302; yylhsminor.yy302.partitions = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy302 = yylhsminor.yy302;
{ yylhsminor.yy436 = yymsp[-1].minor.yy436; yylhsminor.yy436.partitions = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[-1].minor.yy436 = yylhsminor.yy436;
break;
case 122: /* alter_db_optr ::= */
{ setDefaultCreateDbOption(&yymsp[1].minor.yy302); yymsp[1].minor.yy302.dbType = TSDB_DB_TYPE_DEFAULT;}
{ setDefaultCreateDbOption(&yymsp[1].minor.yy436); yymsp[1].minor.yy436.dbType = TSDB_DB_TYPE_DEFAULT;}
break;
case 132: /* typename ::= ids */
{
yymsp[0].minor.yy0.type = 0;
tSetColumnType (&yylhsminor.yy223, &yymsp[0].minor.yy0);
tSetColumnType (&yylhsminor.yy115, &yymsp[0].minor.yy0);
}
yymsp[0].minor.yy223 = yylhsminor.yy223;
yymsp[0].minor.yy115 = yylhsminor.yy115;
break;
case 133: /* typename ::= ids LP signed RP */
{
if (yymsp[-1].minor.yy369 <= 0) {
if (yymsp[-1].minor.yy543 <= 0) {
yymsp[-3].minor.yy0.type = 0;
tSetColumnType(&yylhsminor.yy223, &yymsp[-3].minor.yy0);
tSetColumnType(&yylhsminor.yy115, &yymsp[-3].minor.yy0);
} else {
yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy369; // negative value of name length
tSetColumnType(&yylhsminor.yy223, &yymsp[-3].minor.yy0);
yymsp[-3].minor.yy0.type = -yymsp[-1].minor.yy543; // negative value of name length
tSetColumnType(&yylhsminor.yy115, &yymsp[-3].minor.yy0);
}
}
yymsp[-3].minor.yy223 = yylhsminor.yy223;
yymsp[-3].minor.yy115 = yylhsminor.yy115;
break;
case 134: /* typename ::= ids UNSIGNED */
{
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.yy223, &yymsp[-1].minor.yy0);
tSetColumnType (&yylhsminor.yy115, &yymsp[-1].minor.yy0);
}
yymsp[-1].minor.yy223 = yylhsminor.yy223;
yymsp[-1].minor.yy115 = yylhsminor.yy115;
break;
case 135: /* signed ::= INTEGER */
{ yylhsminor.yy369 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[0].minor.yy369 = yylhsminor.yy369;
{ yylhsminor.yy543 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
yymsp[0].minor.yy543 = yylhsminor.yy543;
break;
case 136: /* signed ::= PLUS INTEGER */
{ yymsp[-1].minor.yy369 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
{ yymsp[-1].minor.yy543 = strtol(yymsp[0].minor.yy0.z, NULL, 10); }
break;
case 137: /* signed ::= MINUS INTEGER */
{ yymsp[-1].minor.yy369 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);}
{ yymsp[-1].minor.yy543 = -strtol(yymsp[0].minor.yy0.z, NULL, 10);}
break;
case 141: /* cmd ::= CREATE TABLE create_table_list */
{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy462;}
{ pInfo->type = TSDB_SQL_CREATE_TABLE; pInfo->pCreateTableInfo = yymsp[0].minor.yy572;}
break;
case 142: /* create_table_list ::= create_from_stable */
{
SCreateTableSql* pCreateTable = calloc(1, sizeof(SCreateTableSql));
pCreateTable->childTableInfo = taosArrayInit(4, sizeof(SCreatedTableInfo));
taosArrayPush(pCreateTable->childTableInfo, &yymsp[0].minor.yy356);
taosArrayPush(pCreateTable->childTableInfo, &yymsp[0].minor.yy480);
pCreateTable->type = TSQL_CREATE_TABLE_FROM_STABLE;
yylhsminor.yy462 = pCreateTable;
yylhsminor.yy572 = pCreateTable;
}
yymsp[0].minor.yy462 = yylhsminor.yy462;
yymsp[0].minor.yy572 = yylhsminor.yy572;
break;
case 143: /* create_table_list ::= create_table_list create_from_stable */
{
taosArrayPush(yymsp[-1].minor.yy462->childTableInfo, &yymsp[0].minor.yy356);
yylhsminor.yy462 = yymsp[-1].minor.yy462;
taosArrayPush(yymsp[-1].minor.yy572->childTableInfo, &yymsp[0].minor.yy480);
yylhsminor.yy572 = yymsp[-1].minor.yy572;
}
yymsp[-1].minor.yy462 = yylhsminor.yy462;
yymsp[-1].minor.yy572 = yylhsminor.yy572;
break;
case 144: /* create_table_args ::= ifnotexists ids cpxName LP columnlist RP */
{
yylhsminor.yy462 = tSetCreateTableInfo(yymsp[-1].minor.yy161, NULL, NULL, TSQL_CREATE_TABLE);
setSqlInfo(pInfo, yylhsminor.yy462, NULL, TSDB_SQL_CREATE_TABLE);
yylhsminor.yy572 = tSetCreateTableInfo(yymsp[-1].minor.yy525, NULL, NULL, TSQL_CREATE_TABLE);
setSqlInfo(pInfo, yylhsminor.yy572, NULL, TSDB_SQL_CREATE_TABLE);
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
setCreatedTableName(pInfo, &yymsp[-4].minor.yy0, &yymsp[-5].minor.yy0);
}
yymsp[-5].minor.yy462 = yylhsminor.yy462;
yymsp[-5].minor.yy572 = yylhsminor.yy572;
break;
case 145: /* create_stable_args ::= ifnotexists ids cpxName LP columnlist RP TAGS LP columnlist RP */
{
yylhsminor.yy462 = tSetCreateTableInfo(yymsp[-5].minor.yy161, yymsp[-1].minor.yy161, NULL, TSQL_CREATE_STABLE);
setSqlInfo(pInfo, yylhsminor.yy462, NULL, TSDB_SQL_CREATE_TABLE);
yylhsminor.yy572 = tSetCreateTableInfo(yymsp[-5].minor.yy525, yymsp[-1].minor.yy525, NULL, TSQL_CREATE_STABLE);
setSqlInfo(pInfo, yylhsminor.yy572, NULL, TSDB_SQL_CREATE_TABLE);
yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n;
setCreatedTableName(pInfo, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0);
}
yymsp[-9].minor.yy462 = yylhsminor.yy462;
yymsp[-9].minor.yy572 = yylhsminor.yy572;
break;
case 146: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName TAGS LP tagitemlist RP */
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n;
yylhsminor.yy356 = createNewChildTableInfo(&yymsp[-5].minor.yy0, NULL, yymsp[-1].minor.yy161, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0);
yylhsminor.yy480 = createNewChildTableInfo(&yymsp[-5].minor.yy0, NULL, yymsp[-1].minor.yy525, &yymsp[-8].minor.yy0, &yymsp[-9].minor.yy0);
}
yymsp[-9].minor.yy356 = yylhsminor.yy356;
yymsp[-9].minor.yy480 = yylhsminor.yy480;
break;
case 147: /* create_from_stable ::= ifnotexists ids cpxName USING ids cpxName LP tagNamelist RP TAGS LP tagitemlist RP */
{
yymsp[-8].minor.yy0.n += yymsp[-7].minor.yy0.n;
yymsp[-11].minor.yy0.n += yymsp[-10].minor.yy0.n;
yylhsminor.yy356 = createNewChildTableInfo(&yymsp[-8].minor.yy0, yymsp[-5].minor.yy161, yymsp[-1].minor.yy161, &yymsp[-11].minor.yy0, &yymsp[-12].minor.yy0);
yylhsminor.yy480 = createNewChildTableInfo(&yymsp[-8].minor.yy0, yymsp[-5].minor.yy525, yymsp[-1].minor.yy525, &yymsp[-11].minor.yy0, &yymsp[-12].minor.yy0);
}
yymsp[-12].minor.yy356 = yylhsminor.yy356;
yymsp[-12].minor.yy480 = yylhsminor.yy480;
break;
case 148: /* tagNamelist ::= tagNamelist COMMA ids */
{taosArrayPush(yymsp[-2].minor.yy161, &yymsp[0].minor.yy0); yylhsminor.yy161 = yymsp[-2].minor.yy161; }
yymsp[-2].minor.yy161 = yylhsminor.yy161;
{taosArrayPush(yymsp[-2].minor.yy525, &yymsp[0].minor.yy0); yylhsminor.yy525 = yymsp[-2].minor.yy525; }
yymsp[-2].minor.yy525 = yylhsminor.yy525;
break;
case 149: /* tagNamelist ::= ids */
{yylhsminor.yy161 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy161, &yymsp[0].minor.yy0);}
yymsp[0].minor.yy161 = yylhsminor.yy161;
{yylhsminor.yy525 = taosArrayInit(4, sizeof(SStrToken)); taosArrayPush(yylhsminor.yy525, &yymsp[0].minor.yy0);}
yymsp[0].minor.yy525 = yylhsminor.yy525;
break;
case 150: /* create_table_args ::= ifnotexists ids cpxName to_opt split_opt AS select */
{
yylhsminor.yy462 = tSetCreateTableInfo(NULL, NULL, yymsp[0].minor.yy276, TSQL_CREATE_STREAM);
setSqlInfo(pInfo, yylhsminor.yy462, NULL, TSDB_SQL_CREATE_TABLE);
yylhsminor.yy572 = tSetCreateTableInfo(NULL, NULL, yymsp[0].minor.yy86, TSQL_CREATE_STREAM);
setSqlInfo(pInfo, yylhsminor.yy572, NULL, TSDB_SQL_CREATE_TABLE);
setCreatedStreamOpt(pInfo, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0);
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
setCreatedTableName(pInfo, &yymsp[-5].minor.yy0, &yymsp[-6].minor.yy0);
}
yymsp[-6].minor.yy462 = yylhsminor.yy462;
yymsp[-6].minor.yy572 = yylhsminor.yy572;
break;
case 151: /* to_opt ::= */
case 153: /* split_opt ::= */ yytestcase(yyruleno==153);
......@@ -3159,37 +2819,37 @@ static YYACTIONTYPE yy_reduce(
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;}
break;
case 155: /* columnlist ::= columnlist COMMA column */
{taosArrayPush(yymsp[-2].minor.yy161, &yymsp[0].minor.yy223); yylhsminor.yy161 = yymsp[-2].minor.yy161; }
yymsp[-2].minor.yy161 = yylhsminor.yy161;
{taosArrayPush(yymsp[-2].minor.yy525, &yymsp[0].minor.yy115); yylhsminor.yy525 = yymsp[-2].minor.yy525; }
yymsp[-2].minor.yy525 = yylhsminor.yy525;
break;
case 156: /* columnlist ::= column */
{yylhsminor.yy161 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy161, &yymsp[0].minor.yy223);}
yymsp[0].minor.yy161 = yylhsminor.yy161;
{yylhsminor.yy525 = taosArrayInit(4, sizeof(TAOS_FIELD)); taosArrayPush(yylhsminor.yy525, &yymsp[0].minor.yy115);}
yymsp[0].minor.yy525 = yylhsminor.yy525;
break;
case 157: /* column ::= ids typename */
{
tSetColumnInfo(&yylhsminor.yy223, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy223);
tSetColumnInfo(&yylhsminor.yy115, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy115);
}
yymsp[-1].minor.yy223 = yylhsminor.yy223;
yymsp[-1].minor.yy115 = yylhsminor.yy115;
break;
case 164: /* tagitem ::= NULL */
{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy526, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy526 = yylhsminor.yy526;
{ yymsp[0].minor.yy0.type = 0; tVariantCreate(&yylhsminor.yy110, &yymsp[0].minor.yy0); }
yymsp[0].minor.yy110 = yylhsminor.yy110;
break;
case 165: /* tagitem ::= NOW */
{ yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP; tVariantCreateExt(&yylhsminor.yy526, &yymsp[0].minor.yy0, TK_NOW, true);}
yymsp[0].minor.yy526 = yylhsminor.yy526;
{ yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP; tVariantCreateExt(&yylhsminor.yy110, &yymsp[0].minor.yy0, TK_NOW, true);}
yymsp[0].minor.yy110 = yylhsminor.yy110;
break;
case 166: /* tagitem ::= NOW PLUS VARIABLE */
{
yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP;
tVariantCreateExt(&yymsp[-2].minor.yy526, &yymsp[0].minor.yy0, TK_PLUS, true);
tVariantCreateExt(&yymsp[-2].minor.yy110, &yymsp[0].minor.yy0, TK_PLUS, true);
}
break;
case 167: /* tagitem ::= NOW MINUS VARIABLE */
{
yymsp[0].minor.yy0.type = TSDB_DATA_TYPE_TIMESTAMP;
tVariantCreateExt(&yymsp[-2].minor.yy526, &yymsp[0].minor.yy0, TK_MINUS, true);
tVariantCreateExt(&yymsp[-2].minor.yy110, &yymsp[0].minor.yy0, TK_MINUS, true);
}
break;
case 168: /* tagitem ::= MINUS INTEGER */
......@@ -3200,56 +2860,56 @@ static YYACTIONTYPE yy_reduce(
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.yy526, &yymsp[-1].minor.yy0);
tVariantCreate(&yylhsminor.yy110, &yymsp[-1].minor.yy0);
}
yymsp[-1].minor.yy526 = yylhsminor.yy526;
yymsp[-1].minor.yy110 = yylhsminor.yy110;
break;
case 172: /* select ::= SELECT selcollist from where_opt range_option interval_option sliding_opt session_option windowstate_option fill_opt groupby_opt having_opt orderby_opt slimit_opt limit_opt */
{
yylhsminor.yy276 = tSetQuerySqlNode(&yymsp[-14].minor.yy0, yymsp[-13].minor.yy161, yymsp[-12].minor.yy84, yymsp[-11].minor.yy546, yymsp[-4].minor.yy161, yymsp[-2].minor.yy161, &yymsp[-9].minor.yy300, &yymsp[-7].minor.yy219, &yymsp[-6].minor.yy548, &yymsp[-8].minor.yy0, yymsp[-5].minor.yy161, &yymsp[0].minor.yy394, &yymsp[-1].minor.yy394, yymsp[-3].minor.yy546, &yymsp[-10].minor.yy420);
yylhsminor.yy86 = tSetQuerySqlNode(&yymsp[-14].minor.yy0, yymsp[-13].minor.yy525, yymsp[-12].minor.yy328, yymsp[-11].minor.yy142, yymsp[-4].minor.yy525, yymsp[-2].minor.yy525, &yymsp[-9].minor.yy238, &yymsp[-7].minor.yy319, &yymsp[-6].minor.yy546, &yymsp[-8].minor.yy0, yymsp[-5].minor.yy525, &yymsp[0].minor.yy6, &yymsp[-1].minor.yy6, yymsp[-3].minor.yy142, &yymsp[-10].minor.yy330);
}
yymsp[-14].minor.yy276 = yylhsminor.yy276;
yymsp[-14].minor.yy86 = yylhsminor.yy86;
break;
case 173: /* select ::= LP select RP */
{yymsp[-2].minor.yy276 = yymsp[-1].minor.yy276;}
{yymsp[-2].minor.yy86 = yymsp[-1].minor.yy86;}
break;
case 174: /* union ::= select */
{ yylhsminor.yy161 = setSubclause(NULL, yymsp[0].minor.yy276); }
yymsp[0].minor.yy161 = yylhsminor.yy161;
{ yylhsminor.yy525 = setSubclause(NULL, yymsp[0].minor.yy86); }
yymsp[0].minor.yy525 = yylhsminor.yy525;
break;
case 175: /* union ::= union UNION ALL select */
{ yylhsminor.yy161 = appendSelectClause(yymsp[-3].minor.yy161, yymsp[0].minor.yy276); }
yymsp[-3].minor.yy161 = yylhsminor.yy161;
{ yylhsminor.yy525 = appendSelectClause(yymsp[-3].minor.yy525, yymsp[0].minor.yy86); }
yymsp[-3].minor.yy525 = yylhsminor.yy525;
break;
case 176: /* cmd ::= union */
{ setSqlInfo(pInfo, yymsp[0].minor.yy161, NULL, TSDB_SQL_SELECT); }
{ setSqlInfo(pInfo, yymsp[0].minor.yy525, NULL, TSDB_SQL_SELECT); }
break;
case 177: /* select ::= SELECT selcollist */
{
yylhsminor.yy276 = tSetQuerySqlNode(&yymsp[-1].minor.yy0, yymsp[0].minor.yy161, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
yylhsminor.yy86 = tSetQuerySqlNode(&yymsp[-1].minor.yy0, yymsp[0].minor.yy525, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
}
yymsp[-1].minor.yy276 = yylhsminor.yy276;
yymsp[-1].minor.yy86 = yylhsminor.yy86;
break;
case 178: /* sclp ::= selcollist COMMA */
{yylhsminor.yy161 = yymsp[-1].minor.yy161;}
yymsp[-1].minor.yy161 = yylhsminor.yy161;
{yylhsminor.yy525 = yymsp[-1].minor.yy525;}
yymsp[-1].minor.yy525 = yylhsminor.yy525;
break;
case 179: /* sclp ::= */
case 220: /* orderby_opt ::= */ yytestcase(yyruleno==220);
{yymsp[1].minor.yy161 = 0;}
{yymsp[1].minor.yy525 = 0;}
break;
case 180: /* selcollist ::= sclp distinct expr as */
{
yylhsminor.yy161 = tSqlExprListAppend(yymsp[-3].minor.yy161, yymsp[-1].minor.yy546, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0);
yylhsminor.yy525 = tSqlExprListAppend(yymsp[-3].minor.yy525, yymsp[-1].minor.yy142, yymsp[-2].minor.yy0.n? &yymsp[-2].minor.yy0:0, yymsp[0].minor.yy0.n?&yymsp[0].minor.yy0:0);
}
yymsp[-3].minor.yy161 = yylhsminor.yy161;
yymsp[-3].minor.yy525 = yylhsminor.yy525;
break;
case 181: /* selcollist ::= sclp STAR */
{
tSqlExpr *pNode = tSqlExprCreateIdValue(pInfo, NULL, TK_ALL);
yylhsminor.yy161 = tSqlExprListAppend(yymsp[-1].minor.yy161, pNode, 0, 0);
yylhsminor.yy525 = tSqlExprListAppend(yymsp[-1].minor.yy525, pNode, 0, 0);
}
yymsp[-1].minor.yy161 = yylhsminor.yy161;
yymsp[-1].minor.yy525 = yylhsminor.yy525;
break;
case 182: /* as ::= AS ids */
{ yymsp[-1].minor.yy0 = yymsp[0].minor.yy0; }
......@@ -3267,114 +2927,114 @@ static YYACTIONTYPE yy_reduce(
break;
case 187: /* from ::= FROM tablelist */
case 188: /* from ::= FROM sub */ yytestcase(yyruleno==188);
{yymsp[-1].minor.yy84 = yymsp[0].minor.yy84;}
{yymsp[-1].minor.yy328 = yymsp[0].minor.yy328;}
break;
case 189: /* sub ::= LP union RP */
{yymsp[-2].minor.yy84 = addSubqueryElem(NULL, yymsp[-1].minor.yy161, NULL);}
{yymsp[-2].minor.yy328 = addSubqueryElem(NULL, yymsp[-1].minor.yy525, NULL);}
break;
case 190: /* sub ::= LP union RP ids */
{yymsp[-3].minor.yy84 = addSubqueryElem(NULL, yymsp[-2].minor.yy161, &yymsp[0].minor.yy0);}
{yymsp[-3].minor.yy328 = addSubqueryElem(NULL, yymsp[-2].minor.yy525, &yymsp[0].minor.yy0);}
break;
case 191: /* sub ::= sub COMMA LP union RP ids */
{yylhsminor.yy84 = addSubqueryElem(yymsp[-5].minor.yy84, yymsp[-2].minor.yy161, &yymsp[0].minor.yy0);}
yymsp[-5].minor.yy84 = yylhsminor.yy84;
{yylhsminor.yy328 = addSubqueryElem(yymsp[-5].minor.yy328, yymsp[-2].minor.yy525, &yymsp[0].minor.yy0);}
yymsp[-5].minor.yy328 = yylhsminor.yy328;
break;
case 192: /* tablelist ::= ids cpxName */
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
yylhsminor.yy84 = setTableNameList(NULL, &yymsp[-1].minor.yy0, NULL);
yylhsminor.yy328 = setTableNameList(NULL, &yymsp[-1].minor.yy0, NULL);
}
yymsp[-1].minor.yy84 = yylhsminor.yy84;
yymsp[-1].minor.yy328 = yylhsminor.yy328;
break;
case 193: /* tablelist ::= ids cpxName ids */
{
yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n;
yylhsminor.yy84 = setTableNameList(NULL, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
yylhsminor.yy328 = setTableNameList(NULL, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
}
yymsp[-2].minor.yy84 = yylhsminor.yy84;
yymsp[-2].minor.yy328 = yylhsminor.yy328;
break;
case 194: /* tablelist ::= tablelist COMMA ids cpxName */
{
yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n;
yylhsminor.yy84 = setTableNameList(yymsp[-3].minor.yy84, &yymsp[-1].minor.yy0, NULL);
yylhsminor.yy328 = setTableNameList(yymsp[-3].minor.yy328, &yymsp[-1].minor.yy0, NULL);
}
yymsp[-3].minor.yy84 = yylhsminor.yy84;
yymsp[-3].minor.yy328 = yylhsminor.yy328;
break;
case 195: /* tablelist ::= tablelist COMMA ids cpxName ids */
{
yymsp[-2].minor.yy0.n += yymsp[-1].minor.yy0.n;
yylhsminor.yy84 = setTableNameList(yymsp[-4].minor.yy84, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
yylhsminor.yy328 = setTableNameList(yymsp[-4].minor.yy328, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0);
}
yymsp[-4].minor.yy84 = yylhsminor.yy84;
yymsp[-4].minor.yy328 = yylhsminor.yy328;
break;
case 196: /* tmvar ::= VARIABLE */
{yylhsminor.yy0 = yymsp[0].minor.yy0;}
yymsp[0].minor.yy0 = yylhsminor.yy0;
break;
case 197: /* timestamp ::= INTEGER */
{ yylhsminor.yy546 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_INTEGER);}
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_INTEGER);}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 198: /* timestamp ::= MINUS INTEGER */
case 199: /* timestamp ::= PLUS INTEGER */ yytestcase(yyruleno==199);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy546 = tSqlExprCreateTimestamp(&yymsp[-1].minor.yy0, TK_INTEGER);}
yymsp[-1].minor.yy546 = yylhsminor.yy546;
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy142 = tSqlExprCreateTimestamp(&yymsp[-1].minor.yy0, TK_INTEGER);}
yymsp[-1].minor.yy142 = yylhsminor.yy142;
break;
case 200: /* timestamp ::= STRING */
{ yylhsminor.yy546 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_STRING);}
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_STRING);}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 201: /* timestamp ::= NOW */
{ yylhsminor.yy546 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_NOW); }
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_NOW); }
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 202: /* timestamp ::= NOW PLUS VARIABLE */
{yymsp[-2].minor.yy546 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_PLUS); }
{yymsp[-2].minor.yy142 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_PLUS); }
break;
case 203: /* timestamp ::= NOW MINUS VARIABLE */
{yymsp[-2].minor.yy546 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_MINUS); }
{yymsp[-2].minor.yy142 = tSqlExprCreateTimestamp(&yymsp[0].minor.yy0, TK_MINUS); }
break;
case 204: /* range_option ::= */
{yymsp[1].minor.yy420.start = 0; yymsp[1].minor.yy420.end = 0;}
{yymsp[1].minor.yy330.start = 0; yymsp[1].minor.yy330.end = 0;}
break;
case 205: /* range_option ::= RANGE LP timestamp COMMA timestamp RP */
{yymsp[-5].minor.yy420.start = yymsp[-3].minor.yy546; yymsp[-5].minor.yy420.end = yymsp[-1].minor.yy546;}
{yymsp[-5].minor.yy330.start = yymsp[-3].minor.yy142; yymsp[-5].minor.yy330.end = yymsp[-1].minor.yy142;}
break;
case 206: /* interval_option ::= intervalKey LP tmvar RP */
{yylhsminor.yy300.interval = yymsp[-1].minor.yy0; yylhsminor.yy300.offset.n = 0; yylhsminor.yy300.token = yymsp[-3].minor.yy520;}
yymsp[-3].minor.yy300 = yylhsminor.yy300;
{yylhsminor.yy238.interval = yymsp[-1].minor.yy0; yylhsminor.yy238.offset.n = 0; yylhsminor.yy238.token = yymsp[-3].minor.yy508;}
yymsp[-3].minor.yy238 = yylhsminor.yy238;
break;
case 207: /* interval_option ::= intervalKey LP tmvar COMMA tmvar RP */
{yylhsminor.yy300.interval = yymsp[-3].minor.yy0; yylhsminor.yy300.offset = yymsp[-1].minor.yy0; yylhsminor.yy300.token = yymsp[-5].minor.yy520;}
yymsp[-5].minor.yy300 = yylhsminor.yy300;
{yylhsminor.yy238.interval = yymsp[-3].minor.yy0; yylhsminor.yy238.offset = yymsp[-1].minor.yy0; yylhsminor.yy238.token = yymsp[-5].minor.yy508;}
yymsp[-5].minor.yy238 = yylhsminor.yy238;
break;
case 208: /* interval_option ::= */
{memset(&yymsp[1].minor.yy300, 0, sizeof(yymsp[1].minor.yy300));}
{memset(&yymsp[1].minor.yy238, 0, sizeof(yymsp[1].minor.yy238));}
break;
case 209: /* intervalKey ::= INTERVAL */
{yymsp[0].minor.yy520 = TK_INTERVAL;}
{yymsp[0].minor.yy508 = TK_INTERVAL;}
break;
case 210: /* intervalKey ::= EVERY */
{yymsp[0].minor.yy520 = TK_EVERY; }
{yymsp[0].minor.yy508 = TK_EVERY; }
break;
case 211: /* session_option ::= */
{yymsp[1].minor.yy219.col.n = 0; yymsp[1].minor.yy219.gap.n = 0;}
{yymsp[1].minor.yy319.col.n = 0; yymsp[1].minor.yy319.gap.n = 0;}
break;
case 212: /* session_option ::= SESSION LP ids cpxName COMMA tmvar RP */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
yymsp[-6].minor.yy219.col = yymsp[-4].minor.yy0;
yymsp[-6].minor.yy219.gap = yymsp[-1].minor.yy0;
yymsp[-6].minor.yy319.col = yymsp[-4].minor.yy0;
yymsp[-6].minor.yy319.gap = yymsp[-1].minor.yy0;
}
break;
case 213: /* windowstate_option ::= */
{ yymsp[1].minor.yy548.col.n = 0; yymsp[1].minor.yy548.col.z = NULL;}
{ yymsp[1].minor.yy546.col.n = 0; yymsp[1].minor.yy546.col.z = NULL;}
break;
case 214: /* windowstate_option ::= STATE_WINDOW LP ids RP */
{ yymsp[-3].minor.yy548.col = yymsp[-1].minor.yy0; }
{ yymsp[-3].minor.yy546.col = yymsp[-1].minor.yy0; }
break;
case 215: /* fill_opt ::= */
{ yymsp[1].minor.yy161 = 0; }
{ yymsp[1].minor.yy525 = 0; }
break;
case 216: /* fill_opt ::= FILL LP ID COMMA tagitemlist RP */
{
......@@ -3382,14 +3042,14 @@ static YYACTIONTYPE yy_reduce(
toTSDBType(yymsp[-3].minor.yy0.type);
tVariantCreate(&A, &yymsp[-3].minor.yy0);
tVariantListInsert(yymsp[-1].minor.yy161, &A, -1, 0);
yymsp[-5].minor.yy161 = yymsp[-1].minor.yy161;
tVariantListInsert(yymsp[-1].minor.yy525, &A, -1, 0);
yymsp[-5].minor.yy525 = yymsp[-1].minor.yy525;
}
break;
case 217: /* fill_opt ::= FILL LP ID RP */
{
toTSDBType(yymsp[-1].minor.yy0.type);
yymsp[-3].minor.yy161 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1, true);
yymsp[-3].minor.yy525 = tVariantListAppendToken(NULL, &yymsp[-1].minor.yy0, -1, true);
}
break;
case 218: /* sliding_opt ::= SLIDING LP tmvar RP */
......@@ -3399,313 +3059,317 @@ static YYACTIONTYPE yy_reduce(
{yymsp[1].minor.yy0.n = 0; yymsp[1].minor.yy0.z = NULL; yymsp[1].minor.yy0.type = 0; }
break;
case 221: /* orderby_opt ::= ORDER BY sortlist */
{yymsp[-2].minor.yy161 = yymsp[0].minor.yy161;}
{yymsp[-2].minor.yy525 = yymsp[0].minor.yy525;}
break;
case 222: /* sortlist ::= sortlist COMMA item sortorder */
{
yylhsminor.yy161 = commonItemAppend(yymsp[-3].minor.yy161, &yymsp[-1].minor.yy526, NULL, false, yymsp[0].minor.yy452);
yylhsminor.yy525 = commonItemAppend(yymsp[-3].minor.yy525, &yymsp[-1].minor.yy110, NULL, false, yymsp[0].minor.yy580);
}
yymsp[-3].minor.yy161 = yylhsminor.yy161;
yymsp[-3].minor.yy525 = yylhsminor.yy525;
break;
case 223: /* sortlist ::= sortlist COMMA arrow sortorder */
{
yylhsminor.yy161 = commonItemAppend(yymsp[-3].minor.yy161, NULL, yymsp[-1].minor.yy546, true, yymsp[0].minor.yy452);
yylhsminor.yy525 = commonItemAppend(yymsp[-3].minor.yy525, NULL, yymsp[-1].minor.yy142, true, yymsp[0].minor.yy580);
}
yymsp[-3].minor.yy161 = yylhsminor.yy161;
yymsp[-3].minor.yy525 = yylhsminor.yy525;
break;
case 224: /* sortlist ::= item sortorder */
{
yylhsminor.yy161 = commonItemAppend(NULL, &yymsp[-1].minor.yy526, NULL, false, yymsp[0].minor.yy452);
yylhsminor.yy525 = commonItemAppend(NULL, &yymsp[-1].minor.yy110, NULL, false, yymsp[0].minor.yy580);
}
yymsp[-1].minor.yy161 = yylhsminor.yy161;
yymsp[-1].minor.yy525 = yylhsminor.yy525;
break;
case 225: /* sortlist ::= arrow sortorder */
{
yylhsminor.yy161 = commonItemAppend(NULL, NULL, yymsp[-1].minor.yy546, true, yymsp[0].minor.yy452);
yylhsminor.yy525 = commonItemAppend(NULL, NULL, yymsp[-1].minor.yy142, true, yymsp[0].minor.yy580);
}
yymsp[-1].minor.yy161 = yylhsminor.yy161;
yymsp[-1].minor.yy525 = yylhsminor.yy525;
break;
case 226: /* item ::= ID */
{
toTSDBType(yymsp[0].minor.yy0.type);
tVariantCreate(&yylhsminor.yy526, &yymsp[0].minor.yy0);
tVariantCreate(&yylhsminor.yy110, &yymsp[0].minor.yy0);
}
yymsp[0].minor.yy526 = yylhsminor.yy526;
yymsp[0].minor.yy110 = yylhsminor.yy110;
break;
case 227: /* item ::= ID DOT ID */
{
toTSDBType(yymsp[-2].minor.yy0.type);
yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n);
tVariantCreate(&yylhsminor.yy526, &yymsp[-2].minor.yy0);
tVariantCreate(&yylhsminor.yy110, &yymsp[-2].minor.yy0);
}
yymsp[-2].minor.yy526 = yylhsminor.yy526;
yymsp[-2].minor.yy110 = yylhsminor.yy110;
break;
case 228: /* sortorder ::= ASC */
{ yymsp[0].minor.yy452 = TSDB_ORDER_ASC; }
{ yymsp[0].minor.yy580 = TSDB_ORDER_ASC; }
break;
case 229: /* sortorder ::= DESC */
{ yymsp[0].minor.yy452 = TSDB_ORDER_DESC;}
{ yymsp[0].minor.yy580 = TSDB_ORDER_DESC;}
break;
case 230: /* sortorder ::= */
{ yymsp[1].minor.yy452 = TSDB_ORDER_ASC; }
{ yymsp[1].minor.yy580 = TSDB_ORDER_ASC; }
break;
case 231: /* groupby_opt ::= */
{ yymsp[1].minor.yy161 = 0;}
{ yymsp[1].minor.yy525 = 0;}
break;
case 232: /* groupby_opt ::= GROUP BY grouplist */
{ yymsp[-2].minor.yy161 = yymsp[0].minor.yy161;}
{ yymsp[-2].minor.yy525 = yymsp[0].minor.yy525;}
break;
case 233: /* grouplist ::= grouplist COMMA item */
{
yylhsminor.yy161 = commonItemAppend(yymsp[-2].minor.yy161, &yymsp[0].minor.yy526, NULL, false, -1);
yylhsminor.yy525 = commonItemAppend(yymsp[-2].minor.yy525, &yymsp[0].minor.yy110, NULL, false, -1);
}
yymsp[-2].minor.yy161 = yylhsminor.yy161;
yymsp[-2].minor.yy525 = yylhsminor.yy525;
break;
case 234: /* grouplist ::= grouplist COMMA arrow */
{
yylhsminor.yy161 = commonItemAppend(yymsp[-2].minor.yy161, NULL, yymsp[0].minor.yy546, true, -1);
yylhsminor.yy525 = commonItemAppend(yymsp[-2].minor.yy525, NULL, yymsp[0].minor.yy142, true, -1);
}
yymsp[-2].minor.yy161 = yylhsminor.yy161;
yymsp[-2].minor.yy525 = yylhsminor.yy525;
break;
case 235: /* grouplist ::= item */
{
yylhsminor.yy161 = commonItemAppend(NULL, &yymsp[0].minor.yy526, NULL, false, -1);
yylhsminor.yy525 = commonItemAppend(NULL, &yymsp[0].minor.yy110, NULL, false, -1);
}
yymsp[0].minor.yy161 = yylhsminor.yy161;
yymsp[0].minor.yy525 = yylhsminor.yy525;
break;
case 236: /* grouplist ::= arrow */
{
yylhsminor.yy161 = commonItemAppend(NULL, NULL, yymsp[0].minor.yy546, true, -1);
yylhsminor.yy525 = commonItemAppend(NULL, NULL, yymsp[0].minor.yy142, true, -1);
}
yymsp[0].minor.yy161 = yylhsminor.yy161;
yymsp[0].minor.yy525 = yylhsminor.yy525;
break;
case 237: /* having_opt ::= */
case 247: /* where_opt ::= */ yytestcase(yyruleno==247);
case 298: /* expritem ::= */ yytestcase(yyruleno==298);
{yymsp[1].minor.yy546 = 0;}
case 299: /* expritem ::= */ yytestcase(yyruleno==299);
{yymsp[1].minor.yy142 = 0;}
break;
case 238: /* having_opt ::= HAVING expr */
case 248: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==248);
{yymsp[-1].minor.yy546 = yymsp[0].minor.yy546;}
{yymsp[-1].minor.yy142 = yymsp[0].minor.yy142;}
break;
case 239: /* limit_opt ::= */
case 243: /* slimit_opt ::= */ yytestcase(yyruleno==243);
{yymsp[1].minor.yy394.limit = -1; yymsp[1].minor.yy394.offset = 0;}
{yymsp[1].minor.yy6.limit = -1; yymsp[1].minor.yy6.offset = 0;}
break;
case 240: /* limit_opt ::= LIMIT signed */
case 244: /* slimit_opt ::= SLIMIT signed */ yytestcase(yyruleno==244);
{yymsp[-1].minor.yy394.limit = yymsp[0].minor.yy369; yymsp[-1].minor.yy394.offset = 0;}
{yymsp[-1].minor.yy6.limit = yymsp[0].minor.yy543; yymsp[-1].minor.yy6.offset = 0;}
break;
case 241: /* limit_opt ::= LIMIT signed OFFSET signed */
{ yymsp[-3].minor.yy394.limit = yymsp[-2].minor.yy369; yymsp[-3].minor.yy394.offset = yymsp[0].minor.yy369;}
{ yymsp[-3].minor.yy6.limit = yymsp[-2].minor.yy543; yymsp[-3].minor.yy6.offset = yymsp[0].minor.yy543;}
break;
case 242: /* limit_opt ::= LIMIT signed COMMA signed */
{ yymsp[-3].minor.yy394.limit = yymsp[0].minor.yy369; yymsp[-3].minor.yy394.offset = yymsp[-2].minor.yy369;}
{ yymsp[-3].minor.yy6.limit = yymsp[0].minor.yy543; yymsp[-3].minor.yy6.offset = yymsp[-2].minor.yy543;}
break;
case 245: /* slimit_opt ::= SLIMIT signed SOFFSET signed */
{yymsp[-3].minor.yy394.limit = yymsp[-2].minor.yy369; yymsp[-3].minor.yy394.offset = yymsp[0].minor.yy369;}
{yymsp[-3].minor.yy6.limit = yymsp[-2].minor.yy543; yymsp[-3].minor.yy6.offset = yymsp[0].minor.yy543;}
break;
case 246: /* slimit_opt ::= SLIMIT signed COMMA signed */
{yymsp[-3].minor.yy394.limit = yymsp[0].minor.yy369; yymsp[-3].minor.yy394.offset = yymsp[-2].minor.yy369;}
{yymsp[-3].minor.yy6.limit = yymsp[0].minor.yy543; yymsp[-3].minor.yy6.offset = yymsp[-2].minor.yy543;}
break;
case 249: /* expr ::= LP expr RP */
{yylhsminor.yy546 = yymsp[-1].minor.yy546; yylhsminor.yy546->exprToken.z = yymsp[-2].minor.yy0.z; yylhsminor.yy546->exprToken.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = yymsp[-1].minor.yy142; yylhsminor.yy142->exprToken.z = yymsp[-2].minor.yy0.z; yylhsminor.yy142->exprToken.n = (yymsp[0].minor.yy0.z - yymsp[-2].minor.yy0.z + 1);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 250: /* expr ::= ID */
{ yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_ID);}
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_ID);}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 251: /* expr ::= ID DOT ID */
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 252: /* expr ::= ID DOT STAR */
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ALL);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{ yymsp[-2].minor.yy0.n += (1+yymsp[0].minor.yy0.n); yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ALL);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 253: /* expr ::= INTEGER */
{ yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_INTEGER);}
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_INTEGER);}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 254: /* expr ::= MINUS INTEGER */
case 255: /* expr ::= PLUS INTEGER */ yytestcase(yyruleno==255);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_INTEGER);}
yymsp[-1].minor.yy546 = yylhsminor.yy546;
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_INTEGER; yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_INTEGER);}
yymsp[-1].minor.yy142 = yylhsminor.yy142;
break;
case 256: /* expr ::= FLOAT */
{ yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_FLOAT);}
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_FLOAT);}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 257: /* expr ::= MINUS FLOAT */
case 258: /* expr ::= PLUS FLOAT */ yytestcase(yyruleno==258);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_FLOAT);}
yymsp[-1].minor.yy546 = yylhsminor.yy546;
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_FLOAT; yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_FLOAT);}
yymsp[-1].minor.yy142 = yylhsminor.yy142;
break;
case 259: /* expr ::= STRING */
{ yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING);}
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING);}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 260: /* expr ::= NOW */
{ yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NOW); }
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NOW); }
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 261: /* expr ::= TODAY */
{ yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_TODAY); }
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_TODAY); }
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 262: /* expr ::= VARIABLE */
{ yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_VARIABLE);}
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_VARIABLE);}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 263: /* expr ::= PLUS VARIABLE */
case 264: /* expr ::= MINUS VARIABLE */ yytestcase(yyruleno==264);
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_VARIABLE; yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_VARIABLE);}
yymsp[-1].minor.yy546 = yylhsminor.yy546;
{ yymsp[-1].minor.yy0.n += yymsp[0].minor.yy0.n; yymsp[-1].minor.yy0.type = TK_VARIABLE; yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[-1].minor.yy0, TK_VARIABLE);}
yymsp[-1].minor.yy142 = yylhsminor.yy142;
break;
case 265: /* expr ::= BOOL */
{ yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_BOOL);}
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_BOOL);}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 266: /* expr ::= NULL */
{ yylhsminor.yy546 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NULL);}
yymsp[0].minor.yy546 = yylhsminor.yy546;
{ yylhsminor.yy142 = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_NULL);}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 267: /* expr ::= ID LP exprlist RP */
{ tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy546 = tSqlExprCreateFunction(yymsp[-1].minor.yy161, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); }
yymsp[-3].minor.yy546 = yylhsminor.yy546;
{ tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy142 = tSqlExprCreateFunction(yymsp[-1].minor.yy525, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); }
yymsp[-3].minor.yy142 = yylhsminor.yy142;
break;
case 268: /* expr ::= ID LP STAR RP */
{ tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy546 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); }
yymsp[-3].minor.yy546 = yylhsminor.yy546;
{ tStrTokenAppend(pInfo->funcs, &yymsp[-3].minor.yy0); yylhsminor.yy142 = tSqlExprCreateFunction(NULL, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0, yymsp[-3].minor.yy0.type); }
yymsp[-3].minor.yy142 = yylhsminor.yy142;
break;
case 269: /* expr ::= ID LP expr AS typename RP */
{ tStrTokenAppend(pInfo->funcs, &yymsp[-5].minor.yy0); yylhsminor.yy546 = tSqlExprCreateFuncWithParams(pInfo, yymsp[-3].minor.yy546, &yymsp[-1].minor.yy223, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, yymsp[-5].minor.yy0.type); }
yymsp[-5].minor.yy546 = yylhsminor.yy546;
{ tStrTokenAppend(pInfo->funcs, &yymsp[-5].minor.yy0); yylhsminor.yy142 = tSqlExprCreateFuncWithParams(pInfo, yymsp[-3].minor.yy142, &yymsp[-1].minor.yy115, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0, yymsp[-5].minor.yy0.type); }
yymsp[-5].minor.yy142 = yylhsminor.yy142;
break;
case 270: /* expr ::= expr IS NULL */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, NULL, TK_ISNULL);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, NULL, TK_ISNULL);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 271: /* expr ::= expr IS NOT NULL */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-3].minor.yy546, NULL, TK_NOTNULL);}
yymsp[-3].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-3].minor.yy142, NULL, TK_NOTNULL);}
yymsp[-3].minor.yy142 = yylhsminor.yy142;
break;
case 272: /* expr ::= expr LT expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_LT);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_LT);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 273: /* expr ::= expr GT expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_GT);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_GT);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 274: /* expr ::= expr LE expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_LE);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_LE);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 275: /* expr ::= expr GE expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_GE);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_GE);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 276: /* expr ::= expr NE expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_NE);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_NE);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 277: /* expr ::= expr EQ expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_EQ);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_EQ);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 278: /* expr ::= expr BETWEEN expr AND expr */
{ tSqlExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy546); yylhsminor.yy546 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy546, yymsp[-2].minor.yy546, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy546, TK_LE), TK_AND);}
yymsp[-4].minor.yy546 = yylhsminor.yy546;
{ tSqlExpr* X2 = tSqlExprClone(yymsp[-4].minor.yy142); yylhsminor.yy142 = tSqlExprCreate(tSqlExprCreate(yymsp[-4].minor.yy142, yymsp[-2].minor.yy142, TK_GE), tSqlExprCreate(X2, yymsp[0].minor.yy142, TK_LE), TK_AND);}
yymsp[-4].minor.yy142 = yylhsminor.yy142;
break;
case 279: /* expr ::= expr AND expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_AND);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_AND);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 280: /* expr ::= expr OR expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_OR); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_OR); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 281: /* expr ::= expr PLUS expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_PLUS); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_PLUS); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 282: /* expr ::= expr MINUS expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_MINUS); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_MINUS); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 283: /* expr ::= expr STAR expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_STAR); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_STAR); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 284: /* expr ::= expr SLASH expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_DIVIDE);}
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_DIVIDE);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 285: /* expr ::= expr REM expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_REM); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_REM); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 286: /* expr ::= expr BITAND expr */
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_BITAND);}
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 286: /* expr ::= expr LIKE expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_LIKE); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
case 287: /* expr ::= expr LIKE expr */
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_LIKE); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 287: /* expr ::= expr MATCH expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_MATCH); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
case 288: /* expr ::= expr MATCH expr */
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_MATCH); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 288: /* expr ::= expr NMATCH expr */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-2].minor.yy546, yymsp[0].minor.yy546, TK_NMATCH); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
case 289: /* expr ::= expr NMATCH expr */
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-2].minor.yy142, yymsp[0].minor.yy142, TK_NMATCH); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 289: /* expr ::= ID CONTAINS STRING */
{ tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy546 = tSqlExprCreate(S, M, TK_CONTAINS); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
case 290: /* expr ::= ID CONTAINS STRING */
{ tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy142 = tSqlExprCreate(S, M, TK_CONTAINS); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 290: /* expr ::= ID DOT ID CONTAINS STRING */
{ yymsp[-4].minor.yy0.n += (1+yymsp[-2].minor.yy0.n); tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-4].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy546 = tSqlExprCreate(S, M, TK_CONTAINS); }
yymsp[-4].minor.yy546 = yylhsminor.yy546;
case 291: /* expr ::= ID DOT ID CONTAINS STRING */
{ yymsp[-4].minor.yy0.n += (1+yymsp[-2].minor.yy0.n); tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-4].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy142 = tSqlExprCreate(S, M, TK_CONTAINS); }
yymsp[-4].minor.yy142 = yylhsminor.yy142;
break;
case 291: /* arrow ::= ID ARROW STRING */
{tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy546 = tSqlExprCreate(S, M, TK_ARROW); }
yymsp[-2].minor.yy546 = yylhsminor.yy546;
case 292: /* arrow ::= ID ARROW STRING */
{tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-2].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy142 = tSqlExprCreate(S, M, TK_ARROW); }
yymsp[-2].minor.yy142 = yylhsminor.yy142;
break;
case 292: /* arrow ::= ID DOT ID ARROW STRING */
{yymsp[-4].minor.yy0.n += (1+yymsp[-2].minor.yy0.n); tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-4].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy546 = tSqlExprCreate(S, M, TK_ARROW); }
yymsp[-4].minor.yy546 = yylhsminor.yy546;
case 293: /* arrow ::= ID DOT ID ARROW STRING */
{yymsp[-4].minor.yy0.n += (1+yymsp[-2].minor.yy0.n); tSqlExpr* S = tSqlExprCreateIdValue(pInfo, &yymsp[-4].minor.yy0, TK_ID); tSqlExpr* M = tSqlExprCreateIdValue(pInfo, &yymsp[0].minor.yy0, TK_STRING); yylhsminor.yy142 = tSqlExprCreate(S, M, TK_ARROW); }
yymsp[-4].minor.yy142 = yylhsminor.yy142;
break;
case 293: /* expr ::= arrow */
case 297: /* expritem ::= expr */ yytestcase(yyruleno==297);
{yylhsminor.yy546 = yymsp[0].minor.yy546;}
yymsp[0].minor.yy546 = yylhsminor.yy546;
case 294: /* expr ::= arrow */
case 298: /* expritem ::= expr */ yytestcase(yyruleno==298);
{yylhsminor.yy142 = yymsp[0].minor.yy142;}
yymsp[0].minor.yy142 = yylhsminor.yy142;
break;
case 294: /* expr ::= expr IN LP exprlist RP */
{yylhsminor.yy546 = tSqlExprCreate(yymsp[-4].minor.yy546, (tSqlExpr*)yymsp[-1].minor.yy161, TK_IN); }
yymsp[-4].minor.yy546 = yylhsminor.yy546;
case 295: /* expr ::= expr IN LP exprlist RP */
{yylhsminor.yy142 = tSqlExprCreate(yymsp[-4].minor.yy142, (tSqlExpr*)yymsp[-1].minor.yy525, TK_IN); }
yymsp[-4].minor.yy142 = yylhsminor.yy142;
break;
case 295: /* exprlist ::= exprlist COMMA expritem */
{yylhsminor.yy161 = tSqlExprListAppend(yymsp[-2].minor.yy161,yymsp[0].minor.yy546,0, 0);}
yymsp[-2].minor.yy161 = yylhsminor.yy161;
case 296: /* exprlist ::= exprlist COMMA expritem */
{yylhsminor.yy525 = tSqlExprListAppend(yymsp[-2].minor.yy525,yymsp[0].minor.yy142,0, 0);}
yymsp[-2].minor.yy525 = yylhsminor.yy525;
break;
case 296: /* exprlist ::= expritem */
{yylhsminor.yy161 = tSqlExprListAppend(0,yymsp[0].minor.yy546,0, 0);}
yymsp[0].minor.yy161 = yylhsminor.yy161;
case 297: /* exprlist ::= expritem */
{yylhsminor.yy525 = tSqlExprListAppend(0,yymsp[0].minor.yy142,0, 0);}
yymsp[0].minor.yy525 = yylhsminor.yy525;
break;
case 299: /* cmd ::= RESET QUERY CACHE */
case 300: /* cmd ::= RESET QUERY CACHE */
{ setDCLSqlElems(pInfo, TSDB_SQL_RESET_CACHE, 0);}
break;
case 300: /* cmd ::= SYNCDB ids REPLICA */
case 301: /* cmd ::= SYNCDB ids REPLICA */
{ setDCLSqlElems(pInfo, TSDB_SQL_SYNC_DB_REPLICA, 1, &yymsp[-1].minor.yy0);}
break;
case 301: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
case 302: /* cmd ::= ALTER TABLE ids cpxName ADD COLUMN columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy161, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy525, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 302: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
case 303: /* cmd ::= ALTER TABLE ids cpxName DROP COLUMN ids */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3716,21 +3380,21 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 303: /* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
case 304: /* cmd ::= ALTER TABLE ids cpxName MODIFY COLUMN columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy161, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, -1);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy525, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 304: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
case 305: /* cmd ::= ALTER TABLE ids cpxName ADD TAG columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy161, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy525, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 305: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
case 306: /* cmd ::= ALTER TABLE ids cpxName DROP TAG ids */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3741,7 +3405,7 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 306: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
case 307: /* cmd ::= ALTER TABLE ids cpxName CHANGE TAG ids ids */
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
......@@ -3755,33 +3419,33 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 307: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
case 308: /* cmd ::= ALTER TABLE ids cpxName SET TAG ids EQ tagitem */
{
yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n;
toTSDBType(yymsp[-2].minor.yy0.type);
SArray* A = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1, false);
A = tVariantListAppend(A, &yymsp[0].minor.yy526, -1);
A = tVariantListAppend(A, &yymsp[0].minor.yy110, -1);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-6].minor.yy0, NULL, A, TSDB_ALTER_TABLE_UPDATE_TAG_VAL, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 308: /* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
case 309: /* cmd ::= ALTER TABLE ids cpxName MODIFY TAG columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy161, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, -1);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy525, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, -1);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 309: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
case 310: /* cmd ::= ALTER STABLE ids cpxName ADD COLUMN columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy161, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy525, NULL, TSDB_ALTER_TABLE_ADD_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 310: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
case 311: /* cmd ::= ALTER STABLE ids cpxName DROP COLUMN ids */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3792,21 +3456,21 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 311: /* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
case 312: /* cmd ::= ALTER STABLE ids cpxName MODIFY COLUMN columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy161, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, TSDB_SUPER_TABLE);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy525, NULL, TSDB_ALTER_TABLE_CHANGE_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 312: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
case 313: /* cmd ::= ALTER STABLE ids cpxName ADD TAG columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy161, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy525, NULL, TSDB_ALTER_TABLE_ADD_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 313: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
case 314: /* cmd ::= ALTER STABLE ids cpxName DROP TAG ids */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
......@@ -3817,7 +3481,7 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 314: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
case 315: /* cmd ::= ALTER STABLE ids cpxName CHANGE TAG ids ids */
{
yymsp[-5].minor.yy0.n += yymsp[-4].minor.yy0.n;
......@@ -3831,41 +3495,41 @@ static YYACTIONTYPE yy_reduce(
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 315: /* cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
case 316: /* cmd ::= ALTER STABLE ids cpxName SET TAG ids EQ tagitem */
{
yymsp[-6].minor.yy0.n += yymsp[-5].minor.yy0.n;
toTSDBType(yymsp[-2].minor.yy0.type);
SArray* A = tVariantListAppendToken(NULL, &yymsp[-2].minor.yy0, -1, false);
A = tVariantListAppend(A, &yymsp[0].minor.yy526, -1);
A = tVariantListAppend(A, &yymsp[0].minor.yy110, -1);
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);
}
break;
case 316: /* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
case 317: /* cmd ::= ALTER STABLE ids cpxName MODIFY TAG columnlist */
{
yymsp[-4].minor.yy0.n += yymsp[-3].minor.yy0.n;
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy161, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, TSDB_SUPER_TABLE);
SAlterTableInfo* pAlterTable = tSetAlterTableInfo(&yymsp[-4].minor.yy0, yymsp[0].minor.yy525, NULL, TSDB_ALTER_TABLE_MODIFY_TAG_COLUMN, TSDB_SUPER_TABLE);
setSqlInfo(pInfo, pAlterTable, NULL, TSDB_SQL_ALTER_TABLE);
}
break;
case 317: /* cmd ::= KILL CONNECTION INTEGER */
case 318: /* cmd ::= KILL CONNECTION INTEGER */
{setKillSql(pInfo, TSDB_SQL_KILL_CONNECTION, &yymsp[0].minor.yy0);}
break;
case 318: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */
case 319: /* cmd ::= KILL STREAM INTEGER COLON INTEGER */
{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);}
break;
case 319: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */
case 320: /* cmd ::= KILL QUERY INTEGER COLON INTEGER */
{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);}
break;
default:
break;
/********** End reduce actions ************************************************/
};
assert( yyruleno<sizeof(yyRuleInfoLhs)/sizeof(yyRuleInfoLhs[0]) );
yygoto = yyRuleInfoLhs[yyruleno];
yysize = yyRuleInfoNRhs[yyruleno];
assert( yyruleno<sizeof(yyRuleInfo)/sizeof(yyRuleInfo[0]) );
yygoto = yyRuleInfo[yyruleno].lhs;
yysize = yyRuleInfo[yyruleno].nrhs;
yyact = yy_find_reduce_action(yymsp[yysize].stateno,(YYCODETYPE)yygoto);
/* There are no SHIFTREDUCE actions on nonterminals because the table
......@@ -3880,7 +3544,6 @@ static YYACTIONTYPE yy_reduce(
yymsp->stateno = (YYACTIONTYPE)yyact;
yymsp->major = (YYCODETYPE)yygoto;
yyTraceShift(yypParser, yyact, "... then shift");
return yyact;
}
/*
......@@ -3890,8 +3553,7 @@ static YYACTIONTYPE yy_reduce(
static void yy_parse_failed(
yyParser *yypParser /* The parser */
){
ParseARG_FETCH
ParseCTX_FETCH
ParseARG_FETCH;
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt);
......@@ -3902,8 +3564,7 @@ static void yy_parse_failed(
** parser fails */
/************ Begin %parse_failure code ***************************************/
/************ End %parse_failure code *****************************************/
ParseARG_STORE /* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
}
#endif /* YYNOERRORRECOVERY */
......@@ -3915,8 +3576,7 @@ static void yy_syntax_error(
int yymajor, /* The major type of the error token */
ParseTOKENTYPE yyminor /* The minor type of the error token */
){
ParseARG_FETCH
ParseCTX_FETCH
ParseARG_FETCH;
#define TOKEN yyminor
/************ Begin %syntax_error code ****************************************/
......@@ -3942,8 +3602,7 @@ static void yy_syntax_error(
assert(len <= outputBufLen);
/************ End %syntax_error code ******************************************/
ParseARG_STORE /* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
}
/*
......@@ -3952,8 +3611,7 @@ static void yy_syntax_error(
static void yy_accept(
yyParser *yypParser /* The parser */
){
ParseARG_FETCH
ParseCTX_FETCH
ParseARG_FETCH;
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt);
......@@ -3968,8 +3626,7 @@ static void yy_accept(
/*********** Begin %parse_accept code *****************************************/
/*********** End %parse_accept code *******************************************/
ParseARG_STORE /* Suppress warning about unused %extra_argument variable */
ParseCTX_STORE
ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */
}
/* The main parser program.
......@@ -3998,47 +3655,45 @@ void Parse(
ParseARG_PDECL /* Optional %extra_argument parameter */
){
YYMINORTYPE yyminorunion;
YYACTIONTYPE yyact; /* The parser action. */
unsigned int yyact; /* The parser action. */
#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
int yyendofinput; /* True if we are at the end of input */
#endif
#ifdef YYERRORSYMBOL
int yyerrorhit = 0; /* True if yymajor has invoked an error */
#endif
yyParser *yypParser = (yyParser*)yyp; /* The parser */
ParseCTX_FETCH
ParseARG_STORE
yyParser *yypParser; /* The parser */
yypParser = (yyParser*)yyp;
assert( yypParser->yytos!=0 );
#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
yyendofinput = (yymajor==0);
#endif
ParseARG_STORE;
yyact = yypParser->yytos->stateno;
#ifndef NDEBUG
if( yyTraceFILE ){
if( yyact < YY_MIN_REDUCE ){
int stateno = yypParser->yytos->stateno;
if( stateno < YY_MIN_REDUCE ){
fprintf(yyTraceFILE,"%sInput '%s' in state %d\n",
yyTracePrompt,yyTokenName[yymajor],yyact);
yyTracePrompt,yyTokenName[yymajor],stateno);
}else{
fprintf(yyTraceFILE,"%sInput '%s' with pending reduce %d\n",
yyTracePrompt,yyTokenName[yymajor],yyact-YY_MIN_REDUCE);
yyTracePrompt,yyTokenName[yymajor],stateno-YY_MIN_REDUCE);
}
}
#endif
do{
assert( yyact==yypParser->yytos->stateno );
yyact = yy_find_shift_action((YYCODETYPE)yymajor,yyact);
yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor);
if( yyact >= YY_MIN_REDUCE ){
yyact = yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,
yyminor ParseCTX_PARAM);
yy_reduce(yypParser,yyact-YY_MIN_REDUCE,yymajor,yyminor);
}else if( yyact <= YY_MAX_SHIFTREDUCE ){
yy_shift(yypParser,yyact,(YYCODETYPE)yymajor,yyminor);
yy_shift(yypParser,yyact,yymajor,yyminor);
#ifndef YYNOERRORRECOVERY
yypParser->yyerrcnt--;
#endif
break;
yymajor = YYNOCODE;
}else if( yyact==YY_ACCEPT_ACTION ){
yypParser->yytos--;
yy_accept(yypParser);
......@@ -4089,9 +3744,10 @@ void Parse(
yymajor = YYNOCODE;
}else{
while( yypParser->yytos >= yypParser->yystack
&& yymx != YYERRORSYMBOL
&& (yyact = yy_find_reduce_action(
yypParser->yytos->stateno,
YYERRORSYMBOL)) > YY_MAX_SHIFTREDUCE
YYERRORSYMBOL)) >= YY_MIN_REDUCE
){
yy_pop_parser_stack(yypParser);
}
......@@ -4108,8 +3764,6 @@ void Parse(
}
yypParser->yyerrcnt = 3;
yyerrorhit = 1;
if( yymajor==YYNOCODE ) break;
yyact = yypParser->yytos->stateno;
#elif defined(YYNOERRORRECOVERY)
/* If the YYNOERRORRECOVERY macro is defined, then do not attempt to
** do any kind of error recovery. Instead, simply invoke the syntax
......@@ -4120,7 +3774,8 @@ void Parse(
*/
yy_syntax_error(yypParser,yymajor, yyminor);
yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
break;
yymajor = YYNOCODE;
#else /* YYERRORSYMBOL is not defined */
/* This is what we do if the grammar does not define ERROR:
**
......@@ -4142,10 +3797,10 @@ void Parse(
yypParser->yyerrcnt = -1;
#endif
}
break;
yymajor = YYNOCODE;
#endif
}
}while( yypParser->yytos>yypParser->yystack );
}while( yymajor!=YYNOCODE && yypParser->yytos>yypParser->yystack );
#ifndef NDEBUG
if( yyTraceFILE ){
yyStackEntry *i;
......@@ -4160,17 +3815,3 @@ void Parse(
#endif
return;
}
/*
** Return the fallback token corresponding to canonical token iToken, or
** 0 if iToken has no fallback.
*/
int ParseFallback(int iToken){
#ifdef YYFALLBACK
assert( iToken<(int)(sizeof(yyFallback)/sizeof(yyFallback[0])) );
return yyFallback[iToken];
#else
(void)iToken;
return 0;
#endif
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册