diff --git a/include/common/tglobal.h b/include/common/tglobal.h index 1d9900c22e..887f4cb6dc 100644 --- a/include/common/tglobal.h +++ b/include/common/tglobal.h @@ -215,6 +215,7 @@ extern int32_t tsMaxStreamBackendCache; extern int32_t tsPQSortMemThreshold; extern int32_t tsResolveFQDNRetryTime; +extern bool tsExperimental; // #define NEEDTO_COMPRESSS_MSG(size) (tsCompressMsgSize != -1 && (size) > tsCompressMsgSize) int32_t taosCreateLog(const char *logname, int32_t logFileNum, const char *cfgDir, const char **envCmd, diff --git a/source/common/src/tglobal.c b/source/common/src/tglobal.c index 0cf9cb34c1..fd88098b03 100644 --- a/source/common/src/tglobal.c +++ b/source/common/src/tglobal.c @@ -282,6 +282,8 @@ int32_t tsS3BlockCacheSize = 16; // number of blocks int32_t tsS3PageCacheSize = 4096; // number of pages int32_t tsS3UploadDelaySec = 60 * 60 * 24; +bool tsExperimental = true; + #ifndef _STORAGE int32_t taosSetTfsCfg(SConfig *pCfg) { SConfigItem *pItem = cfgGetItem(pCfg, "dataDir"); @@ -529,6 +531,7 @@ static int32_t taosAddClientCfg(SConfig *pCfg) { } if (cfgAddInt32(pCfg, "numOfTaskQueueThreads", tsNumOfTaskQueueThreads, 4, 1024, CFG_SCOPE_CLIENT, CFG_DYN_NONE) != 0) return -1; + if (cfgAddBool(pCfg, "experimental", tsExperimental, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; return 0; } @@ -796,6 +799,8 @@ static int32_t taosAddServerCfg(SConfig *pCfg) { return -1; if (cfgAddBool(pCfg, "enableWhiteList", tsEnableWhiteList, CFG_SCOPE_SERVER, CFG_DYN_ENT_SERVER) != 0) return -1; + if (cfgAddBool(pCfg, "experimental", tsExperimental, CFG_SCOPE_BOTH, CFG_DYN_BOTH) != 0) return -1; + GRANT_CFG_ADD; return 0; } @@ -1081,6 +1086,8 @@ static int32_t taosSetClientCfg(SConfig *pCfg) { tsTimeToGetAvailableConn = cfgGetItem(pCfg, "timeToGetAvailableConn")->i32; tsKeepAliveIdle = cfgGetItem(pCfg, "keepAliveIdle")->i32; + + tsExperimental = cfgGetItem(pCfg, "experimental")->bval; return 0; } @@ -1215,6 +1222,8 @@ static int32_t taosSetServerCfg(SConfig *pCfg) { tsS3PageCacheSize = cfgGetItem(pCfg, "s3PageCacheSize")->i32; tsS3UploadDelaySec = cfgGetItem(pCfg, "s3UploadDelaySec")->i32; + tsExperimental = cfgGetItem(pCfg, "experimental")->bval; + GRANT_CFG_GET; return 0; } @@ -1485,6 +1494,7 @@ static int32_t taosCfgDynamicOptionsForServer(SConfig *pCfg, char *name) { {"s3PageCacheSize", &tsS3PageCacheSize}, {"s3UploadDelaySec", &tsS3UploadDelaySec}, {"supportVnodes", &tsNumOfSupportVnodes}, + {"experimental", &tsExperimental} }; if (taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true) != 0) { @@ -1708,6 +1718,7 @@ static int32_t taosCfgDynamicOptionsForClient(SConfig *pCfg, char *name) { {"shellActivityTimer", &tsShellActivityTimer}, {"slowLogThreshold", &tsSlowLogThreshold}, {"useAdapter", &tsUseAdapter}, + {"experimental", &tsExperimental} }; if (taosCfgSetOption(debugOptions, tListLen(debugOptions), pItem, true) != 0) { diff --git a/source/libs/executor/src/scanoperator.c b/source/libs/executor/src/scanoperator.c index ea73f60468..cb58022569 100644 --- a/source/libs/executor/src/scanoperator.c +++ b/source/libs/executor/src/scanoperator.c @@ -3675,8 +3675,11 @@ SOperatorInfo* createTableMergeScanOperatorInfo(STableScanPhysiNode* pTableScanN int32_t rowSize = pInfo->pResBlock->info.rowSize; uint32_t nCols = taosArrayGetSize(pInfo->pResBlock->pDataBlock); pInfo->bufPageSize = getProperSortPageSize(rowSize, nCols); - - pInfo->filesetDelimited = pTableScanNode->filesetDelimited; + if (!tsExperimental) { + pInfo->filesetDelimited = false; + } else { + pInfo->filesetDelimited = pTableScanNode->filesetDelimited; + } setOperatorInfo(pOperator, "TableMergeScanOperator", QUERY_NODE_PHYSICAL_PLAN_TABLE_MERGE_SCAN, false, OP_NOT_OPENED, pInfo, pTaskInfo); pOperator->exprSupp.numOfExprs = numOfCols;