diff --git a/src/client/inc/tschemautil.h b/src/client/inc/tschemautil.h index ed19a5e3b61f753542192c06744363d6b2a53165..2fc77d69bbe0f276aa5b963da95ef8e6c98dcdae 100644 --- a/src/client/inc/tschemautil.h +++ b/src/client/inc/tschemautil.h @@ -47,7 +47,7 @@ int32_t tscGetNumOfColumns(const STableMeta* pTableMeta); * @param pTableMeta * @return */ -STableInfo tscGetTableInfo(const STableMeta* pTableMeta); +STableComInfo tscGetTableInfo(const STableMeta* pTableMeta); /** * get the schema diff --git a/src/client/inc/tsclient.h b/src/client/inc/tsclient.h index 67ac00c0c76d79f9b628aeb6d5d1912689d9a14d..181f55a614311359bdd1cc4f59f6eaeab5f14583 100644 --- a/src/client/inc/tsclient.h +++ b/src/client/inc/tsclient.h @@ -47,47 +47,28 @@ typedef struct SSqlGroupbyExpr { int16_t orderType; // order by type: asc/desc } SSqlGroupbyExpr; -typedef struct STableInfo { +typedef struct STableComInfo { uint8_t numOfTags; uint8_t precision; int16_t numOfColumns; int16_t rowSize; -} STableInfo; +} STableComInfo; typedef struct STableMeta { - char* tableId; // null-terminated string - - union { - // pointer to super table if it is created according to super table - struct STableMeta* pSTable; - - // otherwise, the following information is required. - STableInfo tableInfo; - }; - - uint8_t tableType; - int16_t sversion; - int8_t numOfVpeers; + //super table if it is created according to super table, otherwise, tableInfo is used + union { struct STableMeta* pSTable; STableComInfo tableInfo; }; + uint8_t tableType; + int8_t numOfVpeers; + int16_t sversion; SVnodeDesc vpeerDesc[TSDB_VNODES_SUPPORT]; - int32_t vgid; - int32_t sid; - uint64_t uid; - - // if the table is TSDB_CHILD_TABLE, schema is acquired by super table meta info - SSchema schema[]; + int32_t vgid; // virtual group id, which current table belongs to + int32_t sid; // the index of one table in a virtual node + uint64_t uid; // unique id of a table + SSchema schema[]; // if the table is TSDB_CHILD_TABLE, schema is acquired by super table meta info } STableMeta; -typedef struct SSTableMeta { - char* tableId; - STableInfo tableInfo; - int32_t sid; - int32_t vgid; - uint64_t uid; - SSchema schema[]; -} SSTableMeta; - typedef struct STableMetaInfo { - STableMeta * pTableMeta; // table meta info + STableMeta * pTableMeta; // table meta, cached in client side and acquried by name SSuperTableMeta *pMetricMeta; // metricmeta /* @@ -95,7 +76,7 @@ typedef struct STableMetaInfo { * 2. keep the vnode index for multi-vnode insertion */ int32_t vnodeIndex; - char name[TSDB_TABLE_ID_LEN + 1]; // (super) table name + char name[TSDB_TABLE_ID_LEN]; // (super) table name int16_t numOfTags; // total required tags in query, including groupby tags int16_t tagColumnIndex[TSDB_MAX_TAGS]; // clause + tag projection } STableMetaInfo; diff --git a/src/client/src/tscFunctionImpl.c b/src/client/src/tscFunctionImpl.c index 885b78010d388a70513f5e9234b67fdf82d36c14..e5b40e94bcc8f3eb5d4b987c2d2b61e2e2b3d600 100644 --- a/src/client/src/tscFunctionImpl.c +++ b/src/client/src/tscFunctionImpl.c @@ -4601,12 +4601,8 @@ static void rate_func_merge(SQLFunctionCtx *pCtx) { if (numOfNotNull > 0) { pBuf->hasResult = DATA_SET_FLAG; } - - return; } - - static void rate_func_copy(SQLFunctionCtx *pCtx) { assert(pCtx->inputType == TSDB_DATA_TYPE_BINARY); diff --git a/src/client/src/tscParseInsert.c b/src/client/src/tscParseInsert.c index 6155168a3b2370773774e1bb2c507adea5898024..75ead0007b02561dd39d22714556accc62148098 100644 --- a/src/client/src/tscParseInsert.c +++ b/src/client/src/tscParseInsert.c @@ -504,7 +504,7 @@ int tsParseValues(char **str, STableDataBlocks *pDataBlock, STableMeta *pTableMe int16_t numOfRows = 0; SSchema *pSchema = tscGetTableSchema(pTableMeta); - STableInfo tinfo = tscGetTableInfo(pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMeta); int32_t precision = tinfo.precision; @@ -658,7 +658,7 @@ static int32_t doParseInsertStatement(SSqlObj *pSql, void *pTableHashList, char SSqlCmd * pCmd = &pSql->cmd; STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0); STableMeta * pTableMeta = pTableMetaInfo->pTableMeta; - STableInfo tinfo = tscGetTableInfo(pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMeta); STableDataBlocks *dataBuf = NULL; int32_t ret = tscGetDataBlockFromList(pTableHashList, pCmd->pDataBlocks, pTableMeta->uid, TSDB_DEFAULT_PAYLOAD_SIZE, @@ -790,7 +790,7 @@ static int32_t tscCheckIfCreateTable(char **sqlstr, SSqlObj *pSql) { } SSchema *pTagSchema = tscGetTableTagSchema(pSTableMeterMetaInfo->pTableMeta); - STableInfo tinfo = tscGetTableInfo(pSTableMeterMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pSTableMeterMetaInfo->pTableMeta); index = 0; sToken = tStrGetToken(sql, &index, false, 0, NULL); @@ -1096,7 +1096,7 @@ int doParseInsertSql(SSqlObj *pSql, char *str) { } int32_t numOfCols = tscGetNumOfTags(pTableMetaInfo->pTableMeta); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); if (sToken.type == TK_VALUES) { SParsedDataColInfo spd = {.numOfCols = numOfCols}; @@ -1390,7 +1390,7 @@ static int tscInsertDataFromFile(SSqlObj *pSql, FILE *fp, char *tmpTokenBuf) { STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0); STableMeta * pTableMeta = pTableMetaInfo->pTableMeta; - STableInfo tinfo = tscGetTableInfo(pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMeta); assert(pCmd->numOfClause == 1); diff --git a/src/client/src/tscSQLParser.c b/src/client/src/tscSQLParser.c index 9d76a2e6819d7e7991237e892a108bf7bc3ecdc3..02267e0796be8eabe514593d466ada8400a850e6 100644 --- a/src/client/src/tscSQLParser.c +++ b/src/client/src/tscSQLParser.c @@ -153,7 +153,7 @@ static int setColumnFilterInfoForTimestamp(SQueryInfo* pQueryInfo, tVariant* pVa char* seg = strnchr(pVar->pz, '-', pVar->nLen, false); STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); if (seg != NULL) { if (taosParseTime(pVar->pz, &time, pVar->nLen, tinfo.precision) != TSDB_CODE_SUCCESS) { @@ -590,7 +590,7 @@ int32_t parseIntervalClause(SQueryInfo* pQueryInfo, SQuerySQL* pQuerySql) { const char* msg2 = "interval cannot be less than 10 ms"; STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); if (pQuerySql->interval.type == 0 || pQuerySql->interval.n == 0) { return TSDB_CODE_SUCCESS; @@ -683,7 +683,7 @@ int32_t parseSlidingClause(SQueryInfo* pQueryInfo, SQuerySQL* pQuerySql) { STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); SSQLToken* pSliding = &pQuerySql->sliding; - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); if (pSliding->n != 0) { getTimestampInUsFromStr(pSliding->z, pSliding->n, &pQueryInfo->slidingTime); @@ -1380,7 +1380,7 @@ static int32_t doAddProjectionExprAndResultFields(SQueryInfo* pQueryInfo, SColum STableMeta* pTableMeta = pTableMetaInfo->pTableMeta; SSchema* pSchema = tscGetTableSchema(pTableMeta); - STableInfo tinfo = tscGetTableInfo(pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMeta); if (UTIL_METER_IS_SUPERTABLE(pTableMetaInfo)) { numOfTotalColumns = tinfo.numOfColumns + tinfo.numOfTags; @@ -3621,7 +3621,7 @@ static int32_t getTimeRangeFromExpr(SQueryInfo* pQueryInfo, tSQLExpr* pExpr) { } STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, index.tableIndex); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); tSQLExpr* pRight = pExpr->pRight; @@ -5708,7 +5708,7 @@ int32_t doCheckForQuery(SSqlObj* pSql, SQuerySQL* pQuerySql, int32_t index) { } // set where info - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); if (pQuerySql->pWhere != NULL) { if (parseWhereClause(pQueryInfo, &pQuerySql->pWhere, pSql) != TSDB_CODE_SUCCESS) { diff --git a/src/client/src/tscSchemaUtil.c b/src/client/src/tscSchemaUtil.c index a9a37217e088fc9e159acda8262217b757f62de7..76e116a2ce0fb9310b34875549cef1303d7939e4 100644 --- a/src/client/src/tscSchemaUtil.c +++ b/src/client/src/tscSchemaUtil.c @@ -24,7 +24,7 @@ int32_t tscGetNumOfTags(const STableMeta* pTableMeta) { assert(pTableMeta != NULL); - STableInfo tinfo = tscGetTableInfo(pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMeta); if (pTableMeta->tableType == TSDB_NORMAL_TABLE) { assert(tinfo.numOfTags == 0); @@ -44,7 +44,7 @@ int32_t tscGetNumOfColumns(const STableMeta* pTableMeta) { assert(pTableMeta != NULL); // table created according to super table, use data from super table - STableInfo tinfo = tscGetTableInfo(pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMeta); return tinfo.numOfColumns; } @@ -64,13 +64,13 @@ SSchema *tscGetTableSchema(const STableMeta *pTableMeta) { SSchema* tscGetTableTagSchema(const STableMeta* pTableMeta) { assert(pTableMeta != NULL && (pTableMeta->tableType == TSDB_SUPER_TABLE || pTableMeta->tableType == TSDB_CHILD_TABLE)); - STableInfo tinfo = tscGetTableInfo(pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMeta); assert(tinfo.numOfTags > 0); return tscGetTableColumnSchema(pTableMeta, tinfo.numOfColumns); } -STableInfo tscGetTableInfo(const STableMeta* pTableMeta) { +STableComInfo tscGetTableInfo(const STableMeta* pTableMeta) { assert(pTableMeta != NULL); if (pTableMeta->tableType == TSDB_CHILD_TABLE) { @@ -156,7 +156,7 @@ STableMeta* tscCreateTableMetaFromMsg(STableMetaMsg* pTableMetaMsg, size_t* size int32_t schemaSize = (pTableMetaMsg->numOfColumns + pTableMetaMsg->numOfTags) * sizeof(SSchema); STableMeta* pTableMeta = calloc(1, sizeof(STableMeta) + schemaSize); pTableMeta->tableType = pTableMetaMsg->tableType; - pTableMeta->tableInfo = (STableInfo){.numOfTags = pTableMetaMsg->numOfTags, .numOfColumns = pTableMetaMsg->numOfColumns, + pTableMeta->tableInfo = (STableComInfo){.numOfTags = pTableMetaMsg->numOfTags, .numOfColumns = pTableMetaMsg->numOfColumns, .precision = pTableMetaMsg->precision}; pTableMeta->sid = pTableMetaMsg->sid; pTableMeta->uid = pTableMetaMsg->uid; diff --git a/src/client/src/tscSecondaryMerge.c b/src/client/src/tscSecondaryMerge.c index 5647815102b1b39cf81ef261adcd748b1cd8e0c4..0ee8afd53c59969f11bfed85c1c32804e48050f9 100644 --- a/src/client/src/tscSecondaryMerge.c +++ b/src/client/src/tscSecondaryMerge.c @@ -320,7 +320,7 @@ void tscCreateLocalReducer(tExtMemBuffer **pMemBuffer, int32_t numOfBuffer, tOrd pRes->numOfGroups = 0; STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); int16_t prec = tinfo.precision; int64_t stime = (pQueryInfo->stime < pQueryInfo->etime) ? pQueryInfo->stime : pQueryInfo->etime; @@ -777,7 +777,7 @@ void savePrevRecordAndSetupInterpoInfo(SLocalReducer *pLocalReducer, SQueryInfo // discard following dataset in the same group and reset the interpolation information STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); int16_t prec = tinfo.precision; int64_t stime = (pQueryInfo->stime < pQueryInfo->etime) ? pQueryInfo->stime : pQueryInfo->etime; @@ -921,7 +921,7 @@ static void doInterpolateResult(SSqlObj *pSql, SLocalReducer *pLocalReducer, boo } STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); int8_t precision = tinfo.precision; @@ -1274,7 +1274,7 @@ static void resetEnvForNewResultset(SSqlRes *pRes, SSqlCmd *pCmd, SLocalReducer pQueryInfo->limit.offset = pLocalReducer->offset; STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); int8_t precision = tinfo.precision; @@ -1302,7 +1302,7 @@ static bool doInterpolationForCurrentGroup(SSqlObj *pSql) { SInterpolationInfo *pInterpoInfo = &pLocalReducer->interpolationInfo; STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); int8_t p = tinfo.precision; @@ -1339,7 +1339,7 @@ static bool doHandleLastRemainData(SSqlObj *pSql) { SQueryInfo * pQueryInfo = tscGetQueryInfoDetail(pCmd, pCmd->clauseIndex); STableMetaInfo *pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); int8_t precision = tinfo.precision; if ((isAllSourcesCompleted(pLocalReducer) && !pLocalReducer->hasPrevRow) || pLocalReducer->pLocalDataSrc[0] == NULL || diff --git a/src/client/src/tscServer.c b/src/client/src/tscServer.c index 857a9e550258ce0ca20517361216bb1732d435d0..550a8876224e81c33fa239ebefcdbd76fae5bd7f 100644 --- a/src/client/src/tscServer.c +++ b/src/client/src/tscServer.c @@ -2176,7 +2176,7 @@ int tscProcessDescribeTableRsp(SSqlObj *pSql) { SSqlCmd * pCmd = &pSql->cmd; STableMetaInfo *pTableMetaInfo = tscGetTableMetaInfoFromCmd(pCmd, pCmd->clauseIndex, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); int32_t numOfRes = tinfo.numOfColumns + tinfo.numOfTags; return tscLocalResultCommonBuilder(pSql, numOfRes); @@ -3147,7 +3147,7 @@ int32_t tscGetTableMeta(SSqlObj *pSql, STableMetaInfo *pTableMetaInfo) { pTableMetaInfo->pTableMeta = (STableMeta *)taosCacheAcquireByName(tscCacheHandle, pTableMetaInfo->name); if (pTableMetaInfo->pTableMeta != NULL) { - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); tscTrace("%p retrieve tableMeta from cache, the number of columns:%d, numOfTags:%d", pSql, tinfo.numOfColumns, tinfo.numOfTags); diff --git a/src/client/src/tscStream.c b/src/client/src/tscStream.c index e326b8d1696b688b3a775a57c8174f28fd80088d..ac8fb95a1326e7847cc8706c6419cdc63e94880e 100644 --- a/src/client/src/tscStream.c +++ b/src/client/src/tscStream.c @@ -541,7 +541,7 @@ TAOS_STREAM *taos_open_stream(TAOS *taos, const char *sqlstr, void (*fp)(void *p SQueryInfo* pQueryInfo = tscGetQueryInfoDetail(pCmd, 0); STableMetaInfo* pTableMetaInfo = tscGetMetaInfo(pQueryInfo, 0); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); pStream->fp = fp; pStream->callback = callback; diff --git a/src/client/src/tscUtil.c b/src/client/src/tscUtil.c index a1c0bf30191a00e148de6f493e2020a3490479a4..16a39a4db45fda80a3bcdbad170389858bb2a18f 100644 --- a/src/client/src/tscUtil.c +++ b/src/client/src/tscUtil.c @@ -1583,7 +1583,7 @@ bool tscValidateColumnId(STableMetaInfo* pTableMetaInfo, int32_t colId) { } SSchema* pSchema = tscGetTableSchema(pTableMetaInfo->pTableMeta); - STableInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); + STableComInfo tinfo = tscGetTableInfo(pTableMetaInfo->pTableMeta); int32_t numOfTotal = tinfo.numOfTags + tinfo.numOfColumns;