diff --git a/src/mnode/inc/mgmtDb.h b/src/mnode/inc/mgmtDb.h index 820079961a829f6b24fccbbf663a181479cd6bef..20575e21822de58c02938c720e1807401a66062b 100644 --- a/src/mnode/inc/mgmtDb.h +++ b/src/mnode/inc/mgmtDb.h @@ -41,6 +41,7 @@ SDbObj *mgmtGetDbByTableId(char *db); int32_t mgmtCreateDb(SAcctObj *pAcct, SCreateDbMsg *pCreate); int32_t mgmtDropDbByName(SAcctObj *pAcct, char *name, short ignoreNotExists); int32_t mgmtDropDb(SDbObj *pDb); +bool mgmtCheckIsMonitorDB(char *db, char *monitordb); #ifdef __cplusplus } diff --git a/src/mnode/inc/mgmtSuperTable.h b/src/mnode/inc/mgmtSuperTable.h index c631d1df61826e179b17273b284162789b816399..6b87ee38ac63333d3914def7dbe3370454bfed49 100644 --- a/src/mnode/inc/mgmtSuperTable.h +++ b/src/mnode/inc/mgmtSuperTable.h @@ -37,6 +37,7 @@ int32_t mgmtDropSuperTableTag(SSuperTableObj *pTable, char *tagName); int32_t mgmtModifySuperTableTagNameByName(SSuperTableObj *pTable, char *oldTagName, char *newTagName); int32_t mgmtAddSuperTableColumn(SSuperTableObj *pTable, SSchema schema[], int32_t ncols); int32_t mgmtDropSuperTableColumnByName(SSuperTableObj *pTable, char *colName); +int32_t mgmtGetTagsLength(SSuperTableObj* pSuperTable, int32_t col); #ifdef __cplusplus } diff --git a/src/mnode/inc/mgmtUtil.h b/src/mnode/inc/mgmtUtil.h deleted file mode 100644 index 9bce2e95a28da6cabe04a0eb9e006ecc11c1b4dd..0000000000000000000000000000000000000000 --- a/src/mnode/inc/mgmtUtil.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -#ifndef TBASE_MNODE_UTIL_H -#define TBASE_MNODE_UTIL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include "mnode.h" - -bool mgmtTableCreateFromSuperTable(STabObj *pTableObj); -bool mgmtIsSuperTable(STabObj *pTableObj); -bool mgmtIsNormalTable(STabObj *pTableObj); -int32_t mgmtGetTagsLength(SSuperTableObj* pSuperTable, int32_t col); -bool mgmtCheckIsMonitorDB(char *db, char *monitordb); -int32_t mgmtCheckDBParams(SCreateDbMsg *pCreate); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/mnode/src/mgmtChildTable.c b/src/mnode/src/mgmtChildTable.c index 41596f3ddda7b4b17f64c7f09d2637adf0e125d8..c99e4746ab2f37e2449807a61d9dbe64038137d6 100644 --- a/src/mnode/src/mgmtChildTable.c +++ b/src/mnode/src/mgmtChildTable.c @@ -33,7 +33,6 @@ #include "mgmtGrant.h" #include "mgmtSuperTable.h" #include "mgmtTable.h" -#include "mgmtUtil.h" #include "mgmtVgroup.h" void *tsChildTableSdb; diff --git a/src/mnode/src/mgmtDb.c b/src/mnode/src/mgmtDb.c index f976e48eb6c16d82b38c90cc2f50dfad10842c42..379f678ac1e0e7921b4c12988b420a362ac4cf3d 100644 --- a/src/mnode/src/mgmtDb.c +++ b/src/mnode/src/mgmtDb.c @@ -26,7 +26,6 @@ #include "mgmtDnodeInt.h" #include "mgmtGrant.h" #include "mgmtTable.h" -#include "mgmtUtil.h" #include "mgmtVgroup.h" extern void *tsVgroupSdb; @@ -116,6 +115,79 @@ SDbObj *mgmtGetDbByTableId(char *meterId) { return (SDbObj *)sdbGetRow(tsDbSdb, db); } +int32_t mgmtCheckDBParams(SCreateDbMsg *pCreate) { + if (pCreate->commitLog < 0 || pCreate->commitLog > 1) { + mError("invalid db option commitLog: %d, only 0 or 1 allowed", pCreate->commitLog); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->replications < TSDB_REPLICA_MIN_NUM || pCreate->replications > TSDB_REPLICA_MAX_NUM) { + mError("invalid db option replications: %d valid range: [%d, %d]", pCreate->replications, TSDB_REPLICA_MIN_NUM, + TSDB_REPLICA_MAX_NUM); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->daysPerFile < TSDB_FILE_MIN_PARTITION_RANGE || pCreate->daysPerFile > TSDB_FILE_MAX_PARTITION_RANGE) { + mError("invalid db option daysPerFile: %d valid range: [%d, %d]", pCreate->daysPerFile, TSDB_FILE_MIN_PARTITION_RANGE, + TSDB_FILE_MAX_PARTITION_RANGE); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->daysToKeep1 > pCreate->daysToKeep2 || pCreate->daysToKeep2 > pCreate->daysToKeep) { + mError("invalid db option daystokeep1: %d, daystokeep2: %d, daystokeep: %d", pCreate->daysToKeep1, + pCreate->daysToKeep2, pCreate->daysToKeep); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->daysToKeep1 < TSDB_FILE_MIN_PARTITION_RANGE || pCreate->daysToKeep1 < pCreate->daysPerFile) { + mError("invalid db option daystokeep: %d", pCreate->daysToKeep); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->rowsInFileBlock < TSDB_MIN_ROWS_IN_FILEBLOCK || pCreate->rowsInFileBlock > TSDB_MAX_ROWS_IN_FILEBLOCK) { + mError("invalid db option rowsInFileBlock: %d valid range: [%d, %d]", pCreate->rowsInFileBlock, + TSDB_MIN_ROWS_IN_FILEBLOCK, TSDB_MAX_ROWS_IN_FILEBLOCK); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->cacheBlockSize < TSDB_MIN_CACHE_BLOCK_SIZE || pCreate->cacheBlockSize > TSDB_MAX_CACHE_BLOCK_SIZE) { + mError("invalid db option cacheBlockSize: %d valid range: [%d, %d]", pCreate->cacheBlockSize, + TSDB_MIN_CACHE_BLOCK_SIZE, TSDB_MAX_CACHE_BLOCK_SIZE); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->maxSessions < TSDB_MIN_TABLES_PER_VNODE || pCreate->maxSessions > TSDB_MAX_TABLES_PER_VNODE) { + mError("invalid db option maxSessions: %d valid range: [%d, %d]", pCreate->maxSessions, TSDB_MIN_TABLES_PER_VNODE, + TSDB_MAX_TABLES_PER_VNODE); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->precision != TSDB_TIME_PRECISION_MILLI && pCreate->precision != TSDB_TIME_PRECISION_MICRO) { + mError("invalid db option timePrecision: %d valid value: [%d, %d]", pCreate->precision, TSDB_TIME_PRECISION_MILLI, + TSDB_TIME_PRECISION_MICRO); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->cacheNumOfBlocks.fraction < TSDB_MIN_AVG_BLOCKS || pCreate->cacheNumOfBlocks.fraction > TSDB_MAX_AVG_BLOCKS) { + mError("invalid db option ablocks: %f valid value: [%d, %d]", pCreate->cacheNumOfBlocks.fraction, 0, TSDB_MAX_AVG_BLOCKS); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->commitTime < TSDB_MIN_COMMIT_TIME_INTERVAL || pCreate->commitTime > TSDB_MAX_COMMIT_TIME_INTERVAL) { + mError("invalid db option commitTime: %d valid range: [%d, %d]", pCreate->commitTime, TSDB_MIN_COMMIT_TIME_INTERVAL, + TSDB_MAX_COMMIT_TIME_INTERVAL); + return TSDB_CODE_INVALID_OPTION; + } + + if (pCreate->compression < TSDB_MIN_COMPRESSION_LEVEL || pCreate->compression > TSDB_MAX_COMPRESSION_LEVEL) { + mError("invalid db option compression: %d valid range: [%d, %d]", pCreate->compression, TSDB_MIN_COMPRESSION_LEVEL, + TSDB_MAX_COMPRESSION_LEVEL); + return TSDB_CODE_INVALID_OPTION; + } + + return TSDB_CODE_SUCCESS; +} + int32_t mgmtCheckDbParams(SCreateDbMsg *pCreate) { // assign default parameters if (pCreate->maxSessions < 0) pCreate->maxSessions = tsSessionsPerVnode; // @@ -314,6 +386,14 @@ int32_t mgmtDropDbByName(SAcctObj *pAcct, char *name, short ignoreNotExists) { return mgmtDropDb(pDb); } +bool mgmtCheckIsMonitorDB(char *db, char *monitordb) { + char dbName[TSDB_DB_NAME_LEN + 1] = {0}; + extractDBName(db, dbName); + + size_t len = strlen(dbName); + return (strncasecmp(dbName, monitordb, len) == 0 && len == strlen(monitordb)); +} + void mgmtMonitorDbDrop(void *unused, void *unusedt) { void * pNode = NULL; SDbObj *pDb = NULL; diff --git a/src/mnode/src/mgmtNormalTable.c b/src/mnode/src/mgmtNormalTable.c index 396262b527987ca89de93a84cea5f10d018ea994..ea482838a6d718983eff93f3740d198e93df80e0 100644 --- a/src/mnode/src/mgmtNormalTable.c +++ b/src/mnode/src/mgmtNormalTable.c @@ -33,7 +33,6 @@ #include "mgmtNormalTable.h" #include "mgmtSuperTable.h" #include "mgmtTable.h" -#include "mgmtUtil.h" #include "mgmtVgroup.h" void *tsNormalTableSdb; diff --git a/src/mnode/src/mgmtShell.c b/src/mnode/src/mgmtShell.c index 5f69bfc4aaadd984be604d21e14b05d3af867935..1ddf6500ee6a5f3f9892915b9fa7129a901b03b5 100644 --- a/src/mnode/src/mgmtShell.c +++ b/src/mnode/src/mgmtShell.c @@ -29,7 +29,6 @@ #include "mgmtShell.h" #include "mgmtTable.h" #include "mgmtUser.h" -#include "mgmtUtil.h" #include "mgmtVgroup.h" #include "taosmsg.h" #include "tlog.h" diff --git a/src/mnode/src/mgmtStreamTable.c b/src/mnode/src/mgmtStreamTable.c index 8786d53e7ee3d215523cce834ff754bd5fdafa16..031954bb1573ea5dae72233d0307f6624ad6df59 100644 --- a/src/mnode/src/mgmtStreamTable.c +++ b/src/mnode/src/mgmtStreamTable.c @@ -33,7 +33,6 @@ #include "mgmtStreamTable.h" #include "mgmtSuperTable.h" #include "mgmtTable.h" -#include "mgmtUtil.h" #include "mgmtVgroup.h" void *tsStreamTableSdb; diff --git a/src/mnode/src/mgmtSuperTable.c b/src/mnode/src/mgmtSuperTable.c index 379336e20a258a62cb032ec1b77eaeff66937ca7..efdda6f22351db9646427f481a4f2d6480de9bd0 100644 --- a/src/mnode/src/mgmtSuperTable.c +++ b/src/mnode/src/mgmtSuperTable.c @@ -33,7 +33,6 @@ #include "mgmtGrant.h" #include "mgmtSuperTable.h" #include "mgmtTable.h" -#include "mgmtUtil.h" #include "mgmtVgroup.h" void *tsSuperTableSdb; @@ -591,4 +590,15 @@ void mgmtAddTableIntoSuperTable(SSuperTableObj *pStable) { void mgmtRemoveTableFromSuperTable(SSuperTableObj *pStable) { pStable->numOfTables--; -} \ No newline at end of file +} + +int32_t mgmtGetTagsLength(SSuperTableObj* pSuperTable, int32_t col) { // length before column col + int32_t len = 0; + int32_t tagColumnIndexOffset = pSuperTable->numOfColumns; + + for (int32_t i = 0; i < pSuperTable->numOfTags && i < col; ++i) { + len += ((SSchema*)pSuperTable->schema)[tagColumnIndexOffset + i].bytes; + } + + return len; +} diff --git a/src/mnode/src/mgmtTable.c b/src/mnode/src/mgmtTable.c index 57cc51fa7dd1f87e55674364a299b9f1a75c0747..f2a2e0cb9272fc2b8ca7473e5b79e75f3e56576f 100644 --- a/src/mnode/src/mgmtTable.c +++ b/src/mnode/src/mgmtTable.c @@ -36,7 +36,6 @@ #include "mgmtStreamTable.h" #include "mgmtSuperTable.h" #include "mgmtTable.h" -#include "mgmtUtil.h" #include "mgmtVgroup.h" int32_t mgmtInitTables() { diff --git a/src/mnode/src/mgmtUtil.c b/src/mnode/src/mgmtUtil.c deleted file mode 100644 index c2da5c398e8ba580ae8c2bac0344921181292017..0000000000000000000000000000000000000000 --- a/src/mnode/src/mgmtUtil.c +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2019 TAOS Data, Inc. - * - * This program is free software: you can use, redistribute, and/or modify - * it under the terms of the GNU Affero General Public License, version 3 - * or later ("AGPL"), as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -#define _DEFAULT_SOURCE -#include "os.h" -#include "mnode.h" -#include "mgmtUtil.h" -#include "mgmtTable.h" -#include "tschemautil.h" - -bool mgmtTableCreateFromSuperTable(STabObj* pTableObj) { - return pTableObj->tableType == TSDB_TABLE_TYPE_CHILD_TABLE; -} - -bool mgmtIsSuperTable(STabObj* pTableObj) { - return pTableObj->tableType == TSDB_TABLE_TYPE_SUPER_TABLE; -} - -bool mgmtIsNormalTable(STabObj* pTableObj) { - return !mgmtIsSuperTable(pTableObj); -} -// -///** -// * TODO: the tag offset value should be kept in memory to avoid dynamically calculating the value -// * -// * @param pTable -// * @param col -// * @param pTagColSchema -// * @return -// */ -//char* mgmtTableGetTag(STabObj* pTable, int32_t col, SSchema* pTagColSchema) { -// if (!mgmtTableCreateFromSuperTable(pTable)) { -// return NULL; -// } -// -// STabObj* pSuperTable = mgmtGetTable(pTable->pTagData); -// int32_t offset = mgmtGetTagsLength(pSuperTable, col) + TSDB_TABLE_ID_LEN; -// assert(offset > 0); -// -// if (pTagColSchema != NULL) { -// *pTagColSchema = ((SSchema*)pSuperTable->schema)[pSuperTable->numOfColumns + col]; -// } -// -// return (pTable->pTagData + offset); -//} - -int32_t mgmtGetTagsLength(SSuperTableObj* pSuperTable, int32_t col) { // length before column col - int32_t len = 0; - int32_t tagColumnIndexOffset = pSuperTable->numOfColumns; - - for (int32_t i = 0; i < pSuperTable->numOfTags && i < col; ++i) { - len += ((SSchema*)pSuperTable->schema)[tagColumnIndexOffset + i].bytes; - } - - return len; -} - -bool mgmtCheckIsMonitorDB(char *db, char *monitordb) { - char dbName[TSDB_DB_NAME_LEN + 1] = {0}; - extractDBName(db, dbName); - - size_t len = strlen(dbName); - return (strncasecmp(dbName, monitordb, len) == 0 && len == strlen(monitordb)); -} - -int32_t mgmtCheckDBParams(SCreateDbMsg *pCreate) { - if (pCreate->commitLog < 0 || pCreate->commitLog > 1) { - mError("invalid db option commitLog: %d, only 0 or 1 allowed", pCreate->commitLog); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->replications < TSDB_REPLICA_MIN_NUM || pCreate->replications > TSDB_REPLICA_MAX_NUM) { - mError("invalid db option replications: %d valid range: [%d, %d]", pCreate->replications, TSDB_REPLICA_MIN_NUM, - TSDB_REPLICA_MAX_NUM); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->daysPerFile < TSDB_FILE_MIN_PARTITION_RANGE || pCreate->daysPerFile > TSDB_FILE_MAX_PARTITION_RANGE) { - mError("invalid db option daysPerFile: %d valid range: [%d, %d]", pCreate->daysPerFile, TSDB_FILE_MIN_PARTITION_RANGE, - TSDB_FILE_MAX_PARTITION_RANGE); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->daysToKeep1 > pCreate->daysToKeep2 || pCreate->daysToKeep2 > pCreate->daysToKeep) { - mError("invalid db option daystokeep1: %d, daystokeep2: %d, daystokeep: %d", pCreate->daysToKeep1, - pCreate->daysToKeep2, pCreate->daysToKeep); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->daysToKeep1 < TSDB_FILE_MIN_PARTITION_RANGE || pCreate->daysToKeep1 < pCreate->daysPerFile) { - mError("invalid db option daystokeep: %d", pCreate->daysToKeep); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->rowsInFileBlock < TSDB_MIN_ROWS_IN_FILEBLOCK || pCreate->rowsInFileBlock > TSDB_MAX_ROWS_IN_FILEBLOCK) { - mError("invalid db option rowsInFileBlock: %d valid range: [%d, %d]", pCreate->rowsInFileBlock, - TSDB_MIN_ROWS_IN_FILEBLOCK, TSDB_MAX_ROWS_IN_FILEBLOCK); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->cacheBlockSize < TSDB_MIN_CACHE_BLOCK_SIZE || pCreate->cacheBlockSize > TSDB_MAX_CACHE_BLOCK_SIZE) { - mError("invalid db option cacheBlockSize: %d valid range: [%d, %d]", pCreate->cacheBlockSize, - TSDB_MIN_CACHE_BLOCK_SIZE, TSDB_MAX_CACHE_BLOCK_SIZE); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->maxSessions < TSDB_MIN_TABLES_PER_VNODE || pCreate->maxSessions > TSDB_MAX_TABLES_PER_VNODE) { - mError("invalid db option maxSessions: %d valid range: [%d, %d]", pCreate->maxSessions, TSDB_MIN_TABLES_PER_VNODE, - TSDB_MAX_TABLES_PER_VNODE); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->precision != TSDB_TIME_PRECISION_MILLI && pCreate->precision != TSDB_TIME_PRECISION_MICRO) { - mError("invalid db option timePrecision: %d valid value: [%d, %d]", pCreate->precision, TSDB_TIME_PRECISION_MILLI, - TSDB_TIME_PRECISION_MICRO); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->cacheNumOfBlocks.fraction < TSDB_MIN_AVG_BLOCKS || pCreate->cacheNumOfBlocks.fraction > TSDB_MAX_AVG_BLOCKS) { - mError("invalid db option ablocks: %f valid value: [%d, %d]", pCreate->cacheNumOfBlocks.fraction, 0, TSDB_MAX_AVG_BLOCKS); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->commitTime < TSDB_MIN_COMMIT_TIME_INTERVAL || pCreate->commitTime > TSDB_MAX_COMMIT_TIME_INTERVAL) { - mError("invalid db option commitTime: %d valid range: [%d, %d]", pCreate->commitTime, TSDB_MIN_COMMIT_TIME_INTERVAL, - TSDB_MAX_COMMIT_TIME_INTERVAL); - return TSDB_CODE_INVALID_OPTION; - } - - if (pCreate->compression < TSDB_MIN_COMPRESSION_LEVEL || pCreate->compression > TSDB_MAX_COMPRESSION_LEVEL) { - mError("invalid db option compression: %d valid range: [%d, %d]", pCreate->compression, TSDB_MIN_COMPRESSION_LEVEL, - TSDB_MAX_COMPRESSION_LEVEL); - return TSDB_CODE_INVALID_OPTION; - } - - return TSDB_CODE_SUCCESS; -} diff --git a/src/vnode/detail/src/vnodeSupertableQuery.c b/src/vnode/detail/src/vnodeSupertableQuery.c index b8b0d136455479221df41cefa20fbe5a201998f2..74f96aa1a8dfe7c2cd26cae4231b29bb86fa2eff 100644 --- a/src/vnode/detail/src/vnodeSupertableQuery.c +++ b/src/vnode/detail/src/vnodeSupertableQuery.c @@ -16,7 +16,6 @@ #define _DEFAULT_SOURCE #include "os.h" #include "mnode.h" -#include "mgmtUtil.h" #include "textbuffer.h" #include "tschemautil.h" #include "tsqlfunction.h"