Merge branch '3.0' of https://github.com/taosdata/TDengine into feature/vnode_refact
This commit is contained in:
commit
db7c80b2b6
|
@ -182,47 +182,48 @@
|
||||||
#define TK_FIRST 164
|
#define TK_FIRST 164
|
||||||
#define TK_LAST 165
|
#define TK_LAST 165
|
||||||
#define TK_NOW 166
|
#define TK_NOW 166
|
||||||
#define TK_ROWTS 167
|
#define TK_TODAY 167
|
||||||
#define TK_TBNAME 168
|
#define TK_ROWTS 168
|
||||||
#define TK_QSTARTTS 169
|
#define TK_TBNAME 169
|
||||||
#define TK_QENDTS 170
|
#define TK_QSTARTTS 170
|
||||||
#define TK_WSTARTTS 171
|
#define TK_QENDTS 171
|
||||||
#define TK_WENDTS 172
|
#define TK_WSTARTTS 172
|
||||||
#define TK_WDURATION 173
|
#define TK_WENDTS 173
|
||||||
#define TK_BETWEEN 174
|
#define TK_WDURATION 174
|
||||||
#define TK_IS 175
|
#define TK_BETWEEN 175
|
||||||
#define TK_NK_LT 176
|
#define TK_IS 176
|
||||||
#define TK_NK_GT 177
|
#define TK_NK_LT 177
|
||||||
#define TK_NK_LE 178
|
#define TK_NK_GT 178
|
||||||
#define TK_NK_GE 179
|
#define TK_NK_LE 179
|
||||||
#define TK_NK_NE 180
|
#define TK_NK_GE 180
|
||||||
#define TK_MATCH 181
|
#define TK_NK_NE 181
|
||||||
#define TK_NMATCH 182
|
#define TK_MATCH 182
|
||||||
#define TK_JOIN 183
|
#define TK_NMATCH 183
|
||||||
#define TK_INNER 184
|
#define TK_JOIN 184
|
||||||
#define TK_SELECT 185
|
#define TK_INNER 185
|
||||||
#define TK_DISTINCT 186
|
#define TK_SELECT 186
|
||||||
#define TK_WHERE 187
|
#define TK_DISTINCT 187
|
||||||
#define TK_PARTITION 188
|
#define TK_WHERE 188
|
||||||
#define TK_BY 189
|
#define TK_PARTITION 189
|
||||||
#define TK_SESSION 190
|
#define TK_BY 190
|
||||||
#define TK_STATE_WINDOW 191
|
#define TK_SESSION 191
|
||||||
#define TK_SLIDING 192
|
#define TK_STATE_WINDOW 192
|
||||||
#define TK_FILL 193
|
#define TK_SLIDING 193
|
||||||
#define TK_VALUE 194
|
#define TK_FILL 194
|
||||||
#define TK_NONE 195
|
#define TK_VALUE 195
|
||||||
#define TK_PREV 196
|
#define TK_NONE 196
|
||||||
#define TK_LINEAR 197
|
#define TK_PREV 197
|
||||||
#define TK_NEXT 198
|
#define TK_LINEAR 198
|
||||||
#define TK_GROUP 199
|
#define TK_NEXT 199
|
||||||
#define TK_HAVING 200
|
#define TK_GROUP 200
|
||||||
#define TK_ORDER 201
|
#define TK_HAVING 201
|
||||||
#define TK_SLIMIT 202
|
#define TK_ORDER 202
|
||||||
#define TK_SOFFSET 203
|
#define TK_SLIMIT 203
|
||||||
#define TK_LIMIT 204
|
#define TK_SOFFSET 204
|
||||||
#define TK_OFFSET 205
|
#define TK_LIMIT 205
|
||||||
#define TK_ASC 206
|
#define TK_OFFSET 206
|
||||||
#define TK_NULLS 207
|
#define TK_ASC 207
|
||||||
|
#define TK_NULLS 208
|
||||||
|
|
||||||
#define TK_NK_SPACE 300
|
#define TK_NK_SPACE 300
|
||||||
#define TK_NK_COMMENT 301
|
#define TK_NK_COMMENT 301
|
||||||
|
|
|
@ -117,6 +117,7 @@ extern const int32_t TYPE_BYTES[15];
|
||||||
#define TSDB_INS_TABLE_VGROUPS "vgroups"
|
#define TSDB_INS_TABLE_VGROUPS "vgroups"
|
||||||
#define TSDB_INS_TABLE_BNODES "bnodes"
|
#define TSDB_INS_TABLE_BNODES "bnodes"
|
||||||
#define TSDB_INS_TABLE_SNODES "snodes"
|
#define TSDB_INS_TABLE_SNODES "snodes"
|
||||||
|
#define TSDB_INS_TABLE_LICENCES "grants"
|
||||||
|
|
||||||
#define TSDB_INDEX_TYPE_SMA "SMA"
|
#define TSDB_INDEX_TYPE_SMA "SMA"
|
||||||
#define TSDB_INDEX_TYPE_FULLTEXT "FULLTEXT"
|
#define TSDB_INDEX_TYPE_FULLTEXT "FULLTEXT"
|
||||||
|
|
|
@ -24,13 +24,6 @@ target_include_directories(
|
||||||
)
|
)
|
||||||
target_link_libraries(taosd dnode)
|
target_link_libraries(taosd dnode)
|
||||||
|
|
||||||
IF (TD_GRANT)
|
|
||||||
TARGET_LINK_LIBRARIES(taosd grant)
|
|
||||||
ENDIF ()
|
|
||||||
IF (TD_USB_DONGLE)
|
|
||||||
TARGET_LINK_LIBRARIES(taosd usb_dongle)
|
|
||||||
ENDIF ()
|
|
||||||
|
|
||||||
if(${BUILD_TEST})
|
if(${BUILD_TEST})
|
||||||
add_subdirectory(test)
|
add_subdirectory(test)
|
||||||
endif(${BUILD_TEST})
|
endif(${BUILD_TEST})
|
||||||
|
|
|
@ -91,7 +91,7 @@ static int32_t dndParseArgs(int32_t argc, char const *argv[]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dndGenerateGrant() {
|
static void dndGenerateGrant() {
|
||||||
grantParseParameter();
|
parseGrantParameter();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dndPrintVersion() {
|
static void dndPrintVersion() {
|
||||||
|
|
|
@ -44,6 +44,7 @@ void grantReset(EGrantType grant, uint64_t value);
|
||||||
void grantAdd(EGrantType grant, uint64_t value);
|
void grantAdd(EGrantType grant, uint64_t value);
|
||||||
void grantRestore(EGrantType grant, uint64_t value);
|
void grantRestore(EGrantType grant, uint64_t value);
|
||||||
|
|
||||||
|
void parseGrantParameter();
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -28,4 +28,6 @@ void grantReset(EGrantType grant, uint64_t value) {}
|
||||||
void grantAdd(EGrantType grant, uint64_t value) {}
|
void grantAdd(EGrantType grant, uint64_t value) {}
|
||||||
void grantRestore(EGrantType grant, uint64_t value) {}
|
void grantRestore(EGrantType grant, uint64_t value) {}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
void parseGrantParameter() { parseGrantParameter(); }
|
|
@ -151,6 +151,22 @@ static const SInfosTableSchema userUsersSchema[] = {
|
||||||
{.name = "create_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP},
|
{.name = "create_time", .bytes = 8, .type = TSDB_DATA_TYPE_TIMESTAMP},
|
||||||
{.name = "account", .bytes = TSDB_USER_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
{.name = "account", .bytes = TSDB_USER_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
};
|
};
|
||||||
|
static const SInfosTableSchema grantsSchema[] = {
|
||||||
|
{.name = "version", .bytes = 8 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "expire time", .bytes = 19 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "expired", .bytes = 5 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "storage(GB)", .bytes = 21 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "timeseries", .bytes = 21 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "databases", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "users", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "accounts", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "dnodes", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "connections", .bytes = 11 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "streams", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "cpu cores", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "speed(PPS)", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
{.name = "querytime", .bytes = 9 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
};
|
||||||
static const SInfosTableSchema vgroupsSchema[] = {
|
static const SInfosTableSchema vgroupsSchema[] = {
|
||||||
{.name = "vgroup_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT},
|
{.name = "vgroup_id", .bytes = 4, .type = TSDB_DATA_TYPE_INT},
|
||||||
{.name = "db_name", .bytes = SYSTABLE_SCH_DB_NAME_LEN, .type = TSDB_DATA_TYPE_BINARY},
|
{.name = "db_name", .bytes = SYSTABLE_SCH_DB_NAME_LEN, .type = TSDB_DATA_TYPE_BINARY},
|
||||||
|
@ -211,6 +227,7 @@ static const SInfosTableMeta infosMeta[] = {
|
||||||
{TSDB_INS_TABLE_USER_TABLE_DISTRIBUTED, userTblDistSchema, tListLen(userTblDistSchema)},
|
{TSDB_INS_TABLE_USER_TABLE_DISTRIBUTED, userTblDistSchema, tListLen(userTblDistSchema)},
|
||||||
{TSDB_INS_TABLE_USER_USERS, userUsersSchema, tListLen(userUsersSchema)},
|
{TSDB_INS_TABLE_USER_USERS, userUsersSchema, tListLen(userUsersSchema)},
|
||||||
{TSDB_INS_TABLE_VGROUPS, vgroupsSchema, tListLen(vgroupsSchema)},
|
{TSDB_INS_TABLE_VGROUPS, vgroupsSchema, tListLen(vgroupsSchema)},
|
||||||
|
{TSDB_INS_TABLE_LICENCES, grantsSchema, tListLen(grantsSchema)},
|
||||||
};
|
};
|
||||||
|
|
||||||
// connection/application/
|
// connection/application/
|
||||||
|
|
|
@ -687,6 +687,8 @@ static int32_t mndGetUserMeta(SNodeMsg *pReq, SShowObj *pShow, STableMetaRsp *pM
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t mndRetrieveUsers(SNodeMsg *pReq, SShowObj *pShow, char *data, int32_t rows) {
|
static int32_t mndRetrieveUsers(SNodeMsg *pReq, SShowObj *pShow, char *data, int32_t rows) {
|
||||||
|
printf("%s(%d) %s rows=%d\n", __FILE__, __LINE__,__func__,rows);
|
||||||
|
printf("%s(%d) %s pShow->numOfReads=%d\n", __FILE__, __LINE__,__func__,pShow->numOfReads);
|
||||||
SMnode *pMnode = pReq->pNode;
|
SMnode *pMnode = pReq->pNode;
|
||||||
SSdb *pSdb = pMnode->pSdb;
|
SSdb *pSdb = pMnode->pSdb;
|
||||||
int32_t numOfRows = 0;
|
int32_t numOfRows = 0;
|
||||||
|
@ -701,10 +703,12 @@ static int32_t mndRetrieveUsers(SNodeMsg *pReq, SShowObj *pShow, char *data, int
|
||||||
cols = 0;
|
cols = 0;
|
||||||
|
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
|
printf("%s(%d) %s pWrite=%p\n", __FILE__, __LINE__,__func__,pWrite);
|
||||||
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pUser->user, pShow->bytes[cols]);
|
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pUser->user, pShow->bytes[cols]);
|
||||||
cols++;
|
cols++;
|
||||||
|
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
|
printf("%s(%d) %s pWrite=%p\n", __FILE__, __LINE__,__func__,pWrite);
|
||||||
if (pUser->superUser) {
|
if (pUser->superUser) {
|
||||||
const char *src = "super";
|
const char *src = "super";
|
||||||
STR_WITH_SIZE_TO_VARSTR(pWrite, src, strlen(src));
|
STR_WITH_SIZE_TO_VARSTR(pWrite, src, strlen(src));
|
||||||
|
@ -715,10 +719,12 @@ static int32_t mndRetrieveUsers(SNodeMsg *pReq, SShowObj *pShow, char *data, int
|
||||||
cols++;
|
cols++;
|
||||||
|
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
|
printf("%s(%d) %s pWrite=%p\n", __FILE__, __LINE__,__func__,pWrite);
|
||||||
*(int64_t *)pWrite = pUser->createdTime;
|
*(int64_t *)pWrite = pUser->createdTime;
|
||||||
cols++;
|
cols++;
|
||||||
|
|
||||||
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
pWrite = data + pShow->offset[cols] * rows + pShow->bytes[cols] * numOfRows;
|
||||||
|
printf("%s(%d) %s pWrite=%p\n", __FILE__, __LINE__,__func__,pWrite);
|
||||||
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pUser->acct, pShow->bytes[cols]);
|
STR_WITH_MAXSIZE_TO_VARSTR(pWrite, pUser->acct, pShow->bytes[cols]);
|
||||||
cols++;
|
cols++;
|
||||||
|
|
||||||
|
@ -728,6 +734,7 @@ static int32_t mndRetrieveUsers(SNodeMsg *pReq, SShowObj *pShow, char *data, int
|
||||||
|
|
||||||
mndVacuumResult(data, pShow->numOfColumns, numOfRows, rows, pShow);
|
mndVacuumResult(data, pShow->numOfColumns, numOfRows, rows, pShow);
|
||||||
pShow->numOfReads += numOfRows;
|
pShow->numOfReads += numOfRows;
|
||||||
|
printf("%s(%d) %s numOfRows=%d\n", __FILE__, __LINE__,__func__,numOfRows);
|
||||||
return numOfRows;
|
return numOfRows;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -772,6 +772,8 @@ SOperatorInfo* createSysTableScanOperatorInfo(void* pSysTableReadHandle, SSDataB
|
||||||
tableType = TSDB_MGMT_TABLE_USER;
|
tableType = TSDB_MGMT_TABLE_USER;
|
||||||
} else if (strncasecmp(name, TSDB_INS_TABLE_DNODES, tListLen(pName->tname)) == 0) {
|
} else if (strncasecmp(name, TSDB_INS_TABLE_DNODES, tListLen(pName->tname)) == 0) {
|
||||||
tableType = TSDB_MGMT_TABLE_DNODE;
|
tableType = TSDB_MGMT_TABLE_DNODE;
|
||||||
|
} else if (strncasecmp(name, TSDB_INS_TABLE_LICENCES, tListLen(pName->tname)) == 0) {
|
||||||
|
tableType = TSDB_MGMT_TABLE_GRANTS;
|
||||||
} else if (strncasecmp(name, TSDB_INS_TABLE_MNODES, tListLen(pName->tname)) == 0) {
|
} else if (strncasecmp(name, TSDB_INS_TABLE_MNODES, tListLen(pName->tname)) == 0) {
|
||||||
tableType = TSDB_MGMT_TABLE_MNODE;
|
tableType = TSDB_MGMT_TABLE_MNODE;
|
||||||
} else if (strncasecmp(name, TSDB_INS_TABLE_MODULES, tListLen(pName->tname)) == 0) {
|
} else if (strncasecmp(name, TSDB_INS_TABLE_MODULES, tListLen(pName->tname)) == 0) {
|
||||||
|
|
|
@ -588,6 +588,7 @@ column_reference(A) ::= column_name(B).
|
||||||
column_reference(A) ::= table_name(B) NK_DOT column_name(C). { A = createRawExprNodeExt(pCxt, &B, &C, createColumnNode(pCxt, &B, &C)); }
|
column_reference(A) ::= table_name(B) NK_DOT column_name(C). { A = createRawExprNodeExt(pCxt, &B, &C, createColumnNode(pCxt, &B, &C)); }
|
||||||
|
|
||||||
pseudo_column(A) ::= NOW(B). { A = createRawExprNode(pCxt, &B, createFunctionNode(pCxt, &B, NULL)); }
|
pseudo_column(A) ::= NOW(B). { A = createRawExprNode(pCxt, &B, createFunctionNode(pCxt, &B, NULL)); }
|
||||||
|
pseudo_column(A) ::= TODAY(B). { A = createRawExprNode(pCxt, &B, createFunctionNode(pCxt, &B, NULL)); }
|
||||||
pseudo_column(A) ::= ROWTS(B). { A = createRawExprNode(pCxt, &B, createFunctionNode(pCxt, &B, NULL)); }
|
pseudo_column(A) ::= ROWTS(B). { A = createRawExprNode(pCxt, &B, createFunctionNode(pCxt, &B, NULL)); }
|
||||||
pseudo_column(A) ::= TBNAME(B). { A = createRawExprNode(pCxt, &B, createFunctionNode(pCxt, &B, NULL)); }
|
pseudo_column(A) ::= TBNAME(B). { A = createRawExprNode(pCxt, &B, createFunctionNode(pCxt, &B, NULL)); }
|
||||||
pseudo_column(A) ::= QSTARTTS(B). { A = createRawExprNode(pCxt, &B, createFunctionNode(pCxt, &B, NULL)); }
|
pseudo_column(A) ::= QSTARTTS(B). { A = createRawExprNode(pCxt, &B, createFunctionNode(pCxt, &B, NULL)); }
|
||||||
|
|
|
@ -175,6 +175,7 @@ static SKeyword keywordTable[] = {
|
||||||
{"TBNAME", TK_TBNAME},
|
{"TBNAME", TK_TBNAME},
|
||||||
{"TIMESTAMP", TK_TIMESTAMP},
|
{"TIMESTAMP", TK_TIMESTAMP},
|
||||||
{"TINYINT", TK_TINYINT},
|
{"TINYINT", TK_TINYINT},
|
||||||
|
{"TODAY", TK_TODAY},
|
||||||
{"TOPIC", TK_TOPIC},
|
{"TOPIC", TK_TOPIC},
|
||||||
{"TOPICS", TK_TOPICS},
|
{"TOPICS", TK_TOPICS},
|
||||||
{"TSERIES", TK_TSERIES},
|
{"TSERIES", TK_TSERIES},
|
||||||
|
|
|
@ -2363,7 +2363,6 @@ static int32_t translateQuery(STranslateContext* pCxt, SNode* pNode) {
|
||||||
break;
|
break;
|
||||||
case QUERY_NODE_SHOW_APPS_STMT:
|
case QUERY_NODE_SHOW_APPS_STMT:
|
||||||
case QUERY_NODE_SHOW_CONNECTIONS_STMT:
|
case QUERY_NODE_SHOW_CONNECTIONS_STMT:
|
||||||
case QUERY_NODE_SHOW_LICENCE_STMT:
|
|
||||||
case QUERY_NODE_SHOW_QUERIES_STMT:
|
case QUERY_NODE_SHOW_QUERIES_STMT:
|
||||||
case QUERY_NODE_SHOW_SCORES_STMT:
|
case QUERY_NODE_SHOW_SCORES_STMT:
|
||||||
case QUERY_NODE_SHOW_TOPICS_STMT:
|
case QUERY_NODE_SHOW_TOPICS_STMT:
|
||||||
|
@ -2551,6 +2550,8 @@ static const char* getSysTableName(ENodeType type) {
|
||||||
return TSDB_INS_TABLE_BNODES;
|
return TSDB_INS_TABLE_BNODES;
|
||||||
case QUERY_NODE_SHOW_SNODES_STMT:
|
case QUERY_NODE_SHOW_SNODES_STMT:
|
||||||
return TSDB_INS_TABLE_SNODES;
|
return TSDB_INS_TABLE_SNODES;
|
||||||
|
case QUERY_NODE_SHOW_LICENCE_STMT:
|
||||||
|
return TSDB_INS_TABLE_LICENCES;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3058,6 +3059,7 @@ static int32_t rewriteAlterTable(STranslateContext* pCxt, SQuery* pQuery) {
|
||||||
static int32_t rewriteQuery(STranslateContext* pCxt, SQuery* pQuery) {
|
static int32_t rewriteQuery(STranslateContext* pCxt, SQuery* pQuery) {
|
||||||
int32_t code = TSDB_CODE_SUCCESS;
|
int32_t code = TSDB_CODE_SUCCESS;
|
||||||
switch (nodeType(pQuery->pRoot)) {
|
switch (nodeType(pQuery->pRoot)) {
|
||||||
|
case QUERY_NODE_SHOW_LICENCE_STMT:
|
||||||
case QUERY_NODE_SHOW_DATABASES_STMT:
|
case QUERY_NODE_SHOW_DATABASES_STMT:
|
||||||
case QUERY_NODE_SHOW_TABLES_STMT:
|
case QUERY_NODE_SHOW_TABLES_STMT:
|
||||||
case QUERY_NODE_SHOW_STABLES_STMT:
|
case QUERY_NODE_SHOW_STABLES_STMT:
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue