diff --git a/include/common/common.h b/include/common/common.h index 8fa2d03d6d3f79a220b6c10a38070a8a42026155..4beecd75804c1355e8d7c4d7b7ebc32302c60328 100644 --- a/include/common/common.h +++ b/include/common/common.h @@ -13,17 +13,18 @@ * along with this program. If not, see . */ -#ifndef TDENGINE_COMMON_H -#define TDENGINE_COMMON_H - -#ifdef __cplusplus -extern "C" { -#endif +#ifndef _TD_COMMON_DEF_H_ +#define _TD_COMMON_DEF_H_ #include "taosdef.h" #include "tarray.h" #include "tmsg.h" #include "tvariant.h" + +#ifdef __cplusplus +extern "C" { +#endif + // typedef struct STimeWindow { // TSKEY skey; // TSKEY ekey; @@ -214,7 +215,7 @@ static FORCE_INLINE void tDeleteSMqConsumeRsp(SMqConsumeRsp* pRsp) { } taosArrayDestroyEx(pRsp->pBlockData, (void (*)(void*))tDeleteSSDataBlock); pRsp->pBlockData = NULL; - // for (int i = 0; i < taosArrayGetSize(pRsp->pBlockData); i++) { + // for (int32_t i = 0; i < taosArrayGetSize(pRsp->pBlockData); i++) { // SSDataBlock* pDataBlock = (SSDataBlock*)taosArrayGet(pRsp->pBlockData, i); // tDeleteSSDataBlock(pDataBlock); //} @@ -279,4 +280,4 @@ typedef struct SSessionWindow { } #endif -#endif // TDENGINE_COMMON_H +#endif // _TD_COMMON_DEF_H_ diff --git a/include/common/taosdef.h b/include/common/taosdef.h index e5a7a3563e1348b7450f84b936fcb95f7208dd0a..66cb0bb4ba5c48e6320455a94d5b6778c283fbe4 100644 --- a/include/common/taosdef.h +++ b/include/common/taosdef.h @@ -16,27 +16,19 @@ #ifndef _TD_COMMON_TAOS_DEF_H_ #define _TD_COMMON_TAOS_DEF_H_ +#include "taos.h" +#include "tdef.h" + #ifdef __cplusplus extern "C" { #endif -#include "taos.h" -#include "tdef.h" - typedef int64_t tb_uid_t; -#define TSWINDOW_INITIALIZER ((STimeWindow){INT64_MIN, INT64_MAX}) -#define TSWINDOW_DESC_INITIALIZER ((STimeWindow){INT64_MAX, INT64_MIN}) +#define TSWINDOW_INITIALIZER ((STimeWindow){INT64_MIN, INT64_MAX}) +#define TSWINDOW_DESC_INITIALIZER ((STimeWindow){INT64_MAX, INT64_MIN}) #define IS_TSWINDOW_SPECIFIED(win) (((win).skey != INT64_MIN) || ((win).ekey != INT64_MAX)) -typedef enum { - TAOS_QTYPE_RPC = 1, - TAOS_QTYPE_FWD = 2, - TAOS_QTYPE_WAL = 3, - TAOS_QTYPE_CQ = 4, - TAOS_QTYPE_QUERY = 5 -} EQType; - typedef enum { TSDB_SUPER_TABLE = 1, // super table TSDB_CHILD_TABLE = 2, // table created from super table @@ -46,14 +38,6 @@ typedef enum { TSDB_TABLE_MAX = 6 } ETableType; -typedef enum { - TSDB_MOD_MNODE = 1, - TSDB_MOD_HTTP = 2, - TSDB_MOD_MONITOR = 3, - TSDB_MOD_MQTT = 4, - TSDB_MOD_MAX = 5 -} EModuleType; - typedef enum { TSDB_CHECK_ITEM_NETWORK, TSDB_CHECK_ITEM_MEM, diff --git a/include/common/tdataformat.h b/include/common/tdataformat.h index 4a73cf7dd21ceb733b04e8f5ba62bb83ebbc674c..89a0e6b4dc5adf1659fc2a582b64cc355b2c9c89 100644 --- a/include/common/tdataformat.h +++ b/include/common/tdataformat.h @@ -12,6 +12,7 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ + #ifndef _TD_COMMON_DATA_FORMAT_H_ #define _TD_COMMON_DATA_FORMAT_H_ @@ -65,40 +66,40 @@ typedef struct { uint16_t offset; // point offset in STpRow after the header part. } STColumn; -#define colType(col) ((col)->type) -#define colColId(col) ((col)->colId) -#define colBytes(col) ((col)->bytes) +#define colType(col) ((col)->type) +#define colColId(col) ((col)->colId) +#define colBytes(col) ((col)->bytes) #define colOffset(col) ((col)->offset) -#define colSetType(col, t) (colType(col) = (t)) +#define colSetType(col, t) (colType(col) = (t)) #define colSetColId(col, id) (colColId(col) = (id)) -#define colSetBytes(col, b) (colBytes(col) = (b)) +#define colSetBytes(col, b) (colBytes(col) = (b)) #define colSetOffset(col, o) (colOffset(col) = (o)) // ----------------- TSDB SCHEMA DEFINITION typedef struct { - int version; // version - int numOfCols; // Number of columns appended - int tlen; // maximum length of a STpRow without the header part (sizeof(VarDataOffsetT) + sizeof(VarDataLenT) + + int32_t version; // version + int32_t numOfCols; // Number of columns appended + int32_t tlen; // maximum length of a STpRow without the header part (sizeof(VarDataOffsetT) + sizeof(VarDataLenT) + // (bytes)) uint16_t flen; // First part length in a STpRow after the header part uint16_t vlen; // pure value part length, excluded the overhead (bytes only) STColumn columns[]; } STSchema; -#define schemaNCols(s) ((s)->numOfCols) -#define schemaVersion(s) ((s)->version) -#define schemaTLen(s) ((s)->tlen) -#define schemaFLen(s) ((s)->flen) -#define schemaVLen(s) ((s)->vlen) +#define schemaNCols(s) ((s)->numOfCols) +#define schemaVersion(s) ((s)->version) +#define schemaTLen(s) ((s)->tlen) +#define schemaFLen(s) ((s)->flen) +#define schemaVLen(s) ((s)->vlen) #define schemaColAt(s, i) ((s)->columns + i) -#define tdFreeSchema(s) tfree((s)) +#define tdFreeSchema(s) tfree((s)) STSchema *tdDupSchema(const STSchema *pSchema); -int tdEncodeSchema(void **buf, STSchema *pSchema); -void * tdDecodeSchema(void *buf, STSchema **pRSchema); +int32_t tdEncodeSchema(void **buf, STSchema *pSchema); +void *tdDecodeSchema(void *buf, STSchema **pRSchema); -static FORCE_INLINE int comparColId(const void *key1, const void *key2) { +static FORCE_INLINE int32_t comparColId(const void *key1, const void *key2) { if (*(int16_t *)key1 > ((STColumn *)key2)->colId) { return 1; } else if (*(int16_t *)key1 < ((STColumn *)key2)->colId) { @@ -116,26 +117,26 @@ static FORCE_INLINE STColumn *tdGetColOfID(STSchema *pSchema, int16_t colId) { // ----------------- SCHEMA BUILDER DEFINITION typedef struct { - int tCols; - int nCols; - int tlen; + int32_t tCols; + int32_t nCols; + int32_t tlen; uint16_t flen; uint16_t vlen; - int version; + int32_t version; STColumn *columns; } STSchemaBuilder; -#define TD_VTYPE_BITS 2 // val type +#define TD_VTYPE_BITS 2 // val type #define TD_VTYPE_PARTS 4 // 8 bits / TD_VTYPE_BITS = 4 -#define TD_VTYPE_OPTR 3 // TD_VTYPE_PARTS - 1, utilize to get remainder +#define TD_VTYPE_OPTR 3 // TD_VTYPE_PARTS - 1, utilize to get remainder #define TD_BITMAP_BYTES(cnt) (ceil((double)cnt / TD_VTYPE_PARTS)) #define TD_BIT_TO_BYTES(cnt) (ceil((double)cnt / 8)) -int tdInitTSchemaBuilder(STSchemaBuilder *pBuilder, int32_t version); +int32_t tdInitTSchemaBuilder(STSchemaBuilder *pBuilder, int32_t version); void tdDestroyTSchemaBuilder(STSchemaBuilder *pBuilder); void tdResetTSchemaBuilder(STSchemaBuilder *pBuilder, int32_t version); -int tdAddColToSchema(STSchemaBuilder *pBuilder, int8_t type, int16_t colId, int16_t bytes); +int32_t tdAddColToSchema(STSchemaBuilder *pBuilder, int8_t type, int16_t colId, int16_t bytes); STSchema *tdGetSchemaFromBuilder(STSchemaBuilder *pBuilder); // ----------------- Semantic timestamp key definition @@ -143,17 +144,17 @@ STSchema *tdGetSchemaFromBuilder(STSchemaBuilder *pBuilder); typedef uint64_t TKEY; -#define TKEY_INVALID UINT64_MAX -#define TKEY_NULL TKEY_INVALID +#define TKEY_INVALID UINT64_MAX +#define TKEY_NULL TKEY_INVALID #define TKEY_NEGATIVE_FLAG (((TKEY)1) << 63) -#define TKEY_DELETE_FLAG (((TKEY)1) << 62) -#define TKEY_VALUE_FILTER (~(TKEY_NEGATIVE_FLAG | TKEY_DELETE_FLAG)) +#define TKEY_DELETE_FLAG (((TKEY)1) << 62) +#define TKEY_VALUE_FILTER (~(TKEY_NEGATIVE_FLAG | TKEY_DELETE_FLAG)) #define TKEY_IS_NEGATIVE(tkey) (((tkey)&TKEY_NEGATIVE_FLAG) != 0) -#define TKEY_IS_DELETED(tkey) (((tkey)&TKEY_DELETE_FLAG) != 0) +#define TKEY_IS_DELETED(tkey) (((tkey)&TKEY_DELETE_FLAG) != 0) #define tdSetTKEYDeleted(tkey) ((tkey) | TKEY_DELETE_FLAG) -#define tdGetTKEY(key) (((TKEY)TABS(key)) | (TKEY_NEGATIVE_FLAG & (TKEY)(key))) -#define tdGetKey(tkey) (((TSKEY)((tkey)&TKEY_VALUE_FILTER)) * (TKEY_IS_NEGATIVE(tkey) ? -1 : 1)) +#define tdGetTKEY(key) (((TKEY)TABS(key)) | (TKEY_NEGATIVE_FLAG & (TKEY)(key))) +#define tdGetKey(tkey) (((TSKEY)((tkey)&TKEY_VALUE_FILTER)) * (TKEY_IS_NEGATIVE(tkey) ? -1 : 1)) #define MIN_TS_KEY ((TSKEY)0x8000000000000001) #define MAX_TS_KEY ((TSKEY)0x3fffffffffffffff) @@ -165,15 +166,15 @@ typedef uint64_t TKEY; // typedef uint64_t TKEY; #define TKEY TSKEY -#define TKEY_INVALID UINT64_MAX -#define TKEY_NULL TKEY_INVALID +#define TKEY_INVALID UINT64_MAX +#define TKEY_NULL TKEY_INVALID #define TKEY_NEGATIVE_FLAG (((TKEY)1) << 63) -#define TKEY_VALUE_FILTER (~(TKEY_NEGATIVE_FLAG)) +#define TKEY_VALUE_FILTER (~(TKEY_NEGATIVE_FLAG)) #define TKEY_IS_NEGATIVE(tkey) (((tkey)&TKEY_NEGATIVE_FLAG) != 0) -#define TKEY_IS_DELETED(tkey) (false) +#define TKEY_IS_DELETED(tkey) (false) -#define tdGetTKEY(key) (key) +#define tdGetTKEY(key) (key) #define tdGetKey(tskey) (tskey) #define MIN_TS_KEY ((TSKEY)0x8000000000000001) @@ -194,7 +195,7 @@ static FORCE_INLINE TKEY keyToTkey(TSKEY key) { return tdGetTKEY(lkey); } -static FORCE_INLINE int tkeyComparFn(const void *tkey1, const void *tkey2) { +static FORCE_INLINE int32_t tkeyComparFn(const void *tkey1, const void *tkey2) { TSKEY key1 = tdGetKey(*(TKEY *)tkey1); TSKEY key2 = tdGetKey(*(TKEY *)tkey2); @@ -225,17 +226,17 @@ typedef void *SDataRow; #define TD_DATA_ROW_HEAD_SIZE (sizeof(uint16_t) + sizeof(int16_t)) -#define dataRowLen(r) (*(TDRowLenT *)(r)) // 0~65535 -#define dataRowEnd(r) POINTER_SHIFT(r, dataRowLen(r)) -#define dataRowVersion(r) (*(int16_t *)POINTER_SHIFT(r, sizeof(int16_t))) -#define dataRowTuple(r) POINTER_SHIFT(r, TD_DATA_ROW_HEAD_SIZE) -#define dataRowTKey(r) (*(TKEY *)(dataRowTuple(r))) -#define dataRowKey(r) tdGetKey(dataRowTKey(r)) -#define dataRowSetLen(r, l) (dataRowLen(r) = (l)) -#define dataRowSetVersion(r, v) (dataRowVersion(r) = (v)) -#define dataRowCpy(dst, r) memcpy((dst), (r), dataRowLen(r)) +#define dataRowLen(r) (*(TDRowLenT *)(r)) // 0~65535 +#define dataRowEnd(r) POINTER_SHIFT(r, dataRowLen(r)) +#define dataRowVersion(r) (*(int16_t *)POINTER_SHIFT(r, sizeof(int16_t))) +#define dataRowTuple(r) POINTER_SHIFT(r, TD_DATA_ROW_HEAD_SIZE) +#define dataRowTKey(r) (*(TKEY *)(dataRowTuple(r))) +#define dataRowKey(r) tdGetKey(dataRowTKey(r)) +#define dataRowSetLen(r, l) (dataRowLen(r) = (l)) +#define dataRowSetVersion(r, v) (dataRowVersion(r) = (v)) +#define dataRowCpy(dst, r) memcpy((dst), (r), dataRowLen(r)) #define dataRowMaxBytesFromSchema(s) (schemaTLen(s) + TD_DATA_ROW_HEAD_SIZE) -#define dataRowDeleted(r) TKEY_IS_DELETED(dataRowTKey(r)) +#define dataRowDeleted(r) TKEY_IS_DELETED(dataRowTKey(r)) SDataRow tdNewDataRowFromSchema(STSchema *pSchema); void tdFreeDataRow(SDataRow row); @@ -243,7 +244,7 @@ void tdInitDataRow(SDataRow row, STSchema *pSchema); SDataRow tdDataRowDup(SDataRow row); // offset here not include dataRow header length -static FORCE_INLINE int tdAppendDataColVal(SDataRow row, const void *value, bool isCopyVarData, int8_t type, +static FORCE_INLINE int32_t tdAppendDataColVal(SDataRow row, const void *value, bool isCopyVarData, int8_t type, int32_t offset) { assert(value != NULL); int32_t toffset = offset + TD_DATA_ROW_HEAD_SIZE; @@ -268,7 +269,7 @@ static FORCE_INLINE int tdAppendDataColVal(SDataRow row, const void *value, bool } // offset here not include dataRow header length -static FORCE_INLINE int tdAppendColVal(SDataRow row, const void *value, int8_t type, int32_t offset) { +static FORCE_INLINE int32_t tdAppendColVal(SDataRow row, const void *value, int8_t type, int32_t offset) { return tdAppendDataColVal(row, value, true, type, offset); } @@ -281,25 +282,25 @@ static FORCE_INLINE void *tdGetRowDataOfCol(SDataRow row, int8_t type, int32_t o } } -static FORCE_INLINE void *tdGetPtrToCol(SDataRow row, STSchema *pSchema, int idx) { +static FORCE_INLINE void *tdGetPtrToCol(SDataRow row, STSchema *pSchema, int32_t idx) { return POINTER_SHIFT(row, TD_DATA_ROW_HEAD_SIZE + pSchema->columns[idx].offset); } -static FORCE_INLINE void *tdGetColOfRowBySchema(SDataRow row, STSchema *pSchema, int idx) { +static FORCE_INLINE void *tdGetColOfRowBySchema(SDataRow row, STSchema *pSchema, int32_t idx) { int16_t offset = TD_DATA_ROW_HEAD_SIZE + pSchema->columns[idx].offset; int8_t type = pSchema->columns[idx].type; return tdGetRowDataOfCol(row, type, offset); } -static FORCE_INLINE bool tdIsColOfRowNullBySchema(SDataRow row, STSchema *pSchema, int idx) { +static FORCE_INLINE bool tdIsColOfRowNullBySchema(SDataRow row, STSchema *pSchema, int32_t idx) { int16_t offset = TD_DATA_ROW_HEAD_SIZE + pSchema->columns[idx].offset; int8_t type = pSchema->columns[idx].type; return isNull(tdGetRowDataOfCol(row, type, offset), type); } -static FORCE_INLINE void tdSetColOfRowNullBySchema(SDataRow row, STSchema *pSchema, int idx) { +static FORCE_INLINE void tdSetColOfRowNullBySchema(SDataRow row, STSchema *pSchema, int32_t idx) { int16_t offset = TD_DATA_ROW_HEAD_SIZE + pSchema->columns[idx].offset; int8_t type = pSchema->columns[idx].type; int16_t bytes = pSchema->columns[idx].bytes; @@ -307,8 +308,8 @@ static FORCE_INLINE void tdSetColOfRowNullBySchema(SDataRow row, STSchema *pSche setNull(tdGetRowDataOfCol(row, type, offset), type, bytes); } -static FORCE_INLINE void tdCopyColOfRowBySchema(SDataRow dst, STSchema *pDstSchema, int dstIdx, SDataRow src, - STSchema *pSrcSchema, int srcIdx) { +static FORCE_INLINE void tdCopyColOfRowBySchema(SDataRow dst, STSchema *pDstSchema, int32_t dstIdx, SDataRow src, + STSchema *pSrcSchema, int32_t srcIdx) { int8_t type = pDstSchema->columns[dstIdx].type; assert(type == pSrcSchema->columns[srcIdx].type); void *pData = tdGetPtrToCol(dst, pDstSchema, dstIdx); @@ -364,13 +365,13 @@ typedef struct SDataCol { uint8_t bitmap : 1; // 0: has bitmap if has NULL/NORM rows, 1: no bitmap if all rows are NORM uint8_t reserve : 7; int16_t colId; // column ID - int bytes; // column data bytes defined - int offset; // data offset in a SDataRow (including the header size) - int spaceSize; // Total space size for this column - int len; // column data length + int32_t bytes; // column data bytes defined + int32_t offset; // data offset in a SDataRow (including the header size) + int32_t spaceSize; // Total space size for this column + int32_t len; // column data length VarDataOffsetT *dataOff; // For binary and nchar data, the offset in the data column - void * pData; // Actual data pointer - void * pBitmap; // Bitmap pointer + void *pData; // Actual data pointer + void *pBitmap; // Bitmap pointer TSKEY ts; // only used in last NULL column } SDataCol; @@ -378,17 +379,17 @@ typedef struct SDataCol { #define isAllRowsNone(pCol) ((pCol)->len == 0) static FORCE_INLINE void dataColReset(SDataCol *pDataCol) { pDataCol->len = 0; } -int tdAllocMemForCol(SDataCol *pCol, int maxPoints); +int32_t tdAllocMemForCol(SDataCol *pCol, int32_t maxPoints); -void dataColInit(SDataCol *pDataCol, STColumn *pCol, int maxPoints); -int dataColAppendVal(SDataCol *pCol, const void *value, int numOfRows, int maxPoints); -void *dataColSetOffset(SDataCol *pCol, int nEle); +void dataColInit(SDataCol *pDataCol, STColumn *pCol, int32_t maxPoints); +int32_t dataColAppendVal(SDataCol *pCol, const void *value, int32_t numOfRows, int32_t maxPoints); +void *dataColSetOffset(SDataCol *pCol, int32_t nEle); -bool isNEleNull(SDataCol *pCol, int nEle); +bool isNEleNull(SDataCol *pCol, int32_t nEle); #if 0 // Get the data pointer from a column-wised data -static FORCE_INLINE const void *tdGetColDataOfRow(SDataCol *pCol, int row) { +static FORCE_INLINE const void *tdGetColDataOfRow(SDataCol *pCol, int32_t row) { if (isAllRowsNull(pCol)) { return getNullValue(pCol->type); } @@ -399,7 +400,7 @@ static FORCE_INLINE const void *tdGetColDataOfRow(SDataCol *pCol, int row) { } } -static FORCE_INLINE int32_t dataColGetNEleLen(SDataCol *pDataCol, int rows) { +static FORCE_INLINE int32_t dataColGetNEleLen(SDataCol *pDataCol, int32_t rows) { assert(rows > 0); if (IS_VAR_DATA_TYPE(pDataCol->type)) { @@ -412,15 +413,15 @@ static FORCE_INLINE int32_t dataColGetNEleLen(SDataCol *pDataCol, int rows) { typedef struct { col_id_t maxCols; // max number of columns col_id_t numOfCols; // Total number of cols - int maxPoints; // max number of points - int numOfRows; - int sversion; // TODO: set sversion + int32_t maxPoints; // max number of points + int32_t numOfRows; + int32_t sversion; // TODO: set sversion SDataCol *cols; } SDataCols; -#define keyCol(pCols) (&((pCols)->cols[0])) // Key column +#define keyCol(pCols) (&((pCols)->cols[0])) // Key column #define dataColsTKeyAt(pCols, idx) ((TKEY *)(keyCol(pCols)->pData))[(idx)] // the idx row of column-wised data -#define dataColsKeyAt(pCols, idx) tdGetKey(dataColsTKeyAt(pCols, idx)) +#define dataColsKeyAt(pCols, idx) tdGetKey(dataColsTKeyAt(pCols, idx)) static FORCE_INLINE TKEY dataColsTKeyFirst(SDataCols *pCols) { if (pCols->numOfRows) { return dataColsTKeyAt(pCols, 0); @@ -429,7 +430,7 @@ static FORCE_INLINE TKEY dataColsTKeyFirst(SDataCols *pCols) { } } -static FORCE_INLINE TSKEY dataColsKeyAtRow(SDataCols *pCols, int row) { +static FORCE_INLINE TSKEY dataColsKeyAtRow(SDataCols *pCols, int32_t row) { assert(row < pCols->numOfRows); return dataColsKeyAt(pCols, row); } @@ -458,12 +459,12 @@ static FORCE_INLINE TSKEY dataColsKeyLast(SDataCols *pCols) { } } -SDataCols *tdNewDataCols(int maxCols, int maxRows); +SDataCols *tdNewDataCols(int32_t maxCols, int32_t maxRows); void tdResetDataCols(SDataCols *pCols); -int tdInitDataCols(SDataCols *pCols, STSchema *pSchema); +int32_t tdInitDataCols(SDataCols *pCols, STSchema *pSchema); SDataCols *tdDupDataCols(SDataCols *pCols, bool keepData); SDataCols *tdFreeDataCols(SDataCols *pCols); -int tdMergeDataCols(SDataCols *target, SDataCols *source, int rowsToMerge, int *pOffset, bool forceSetNull); +int32_t tdMergeDataCols(SDataCols *target, SDataCols *source, int32_t rowsToMerge, int32_t *pOffset, bool forceSetNull); // ----------------- K-V data row structure /* |<-------------------------------------- len -------------------------------------------->| @@ -483,30 +484,30 @@ typedef struct { #define TD_KV_ROW_HEAD_SIZE (sizeof(uint16_t) + sizeof(int16_t)) -#define kvRowLen(r) (*(TDRowLenT *)(r)) -#define kvRowNCols(r) (*(int16_t *)POINTER_SHIFT(r, sizeof(uint16_t))) -#define kvRowSetLen(r, len) kvRowLen(r) = (len) -#define kvRowSetNCols(r, n) kvRowNCols(r) = (n) -#define kvRowColIdx(r) (SColIdx *)POINTER_SHIFT(r, TD_KV_ROW_HEAD_SIZE) -#define kvRowValues(r) POINTER_SHIFT(r, TD_KV_ROW_HEAD_SIZE + sizeof(SColIdx) * kvRowNCols(r)) -#define kvRowCpy(dst, r) memcpy((dst), (r), kvRowLen(r)) +#define kvRowLen(r) (*(TDRowLenT *)(r)) +#define kvRowNCols(r) (*(int16_t *)POINTER_SHIFT(r, sizeof(uint16_t))) +#define kvRowSetLen(r, len) kvRowLen(r) = (len) +#define kvRowSetNCols(r, n) kvRowNCols(r) = (n) +#define kvRowColIdx(r) (SColIdx *)POINTER_SHIFT(r, TD_KV_ROW_HEAD_SIZE) +#define kvRowValues(r) POINTER_SHIFT(r, TD_KV_ROW_HEAD_SIZE + sizeof(SColIdx) * kvRowNCols(r)) +#define kvRowCpy(dst, r) memcpy((dst), (r), kvRowLen(r)) #define kvRowColVal(r, colIdx) POINTER_SHIFT(kvRowValues(r), (colIdx)->offset) -#define kvRowColIdxAt(r, i) (kvRowColIdx(r) + (i)) -#define kvRowFree(r) tfree(r) -#define kvRowEnd(r) POINTER_SHIFT(r, kvRowLen(r)) -#define kvRowValLen(r) (kvRowLen(r) - TD_KV_ROW_HEAD_SIZE - sizeof(SColIdx) * kvRowNCols(r)) -#define kvRowTKey(r) (*(TKEY *)(kvRowValues(r))) -#define kvRowKey(r) tdGetKey(kvRowTKey(r)) -#define kvRowKeys(r) POINTER_SHIFT(r, *(uint16_t *)POINTER_SHIFT(r, TD_KV_ROW_HEAD_SIZE + sizeof(int16_t))) -#define kvRowDeleted(r) TKEY_IS_DELETED(kvRowTKey(r)) - -SKVRow tdKVRowDup(SKVRow row); -int tdSetKVRowDataOfCol(SKVRow *orow, int16_t colId, int8_t type, void *value); -int tdEncodeKVRow(void **buf, SKVRow row); -void * tdDecodeKVRow(void *buf, SKVRow *row); -void tdSortKVRowByColIdx(SKVRow row); - -static FORCE_INLINE int comparTagId(const void *key1, const void *key2) { +#define kvRowColIdxAt(r, i) (kvRowColIdx(r) + (i)) +#define kvRowFree(r) tfree(r) +#define kvRowEnd(r) POINTER_SHIFT(r, kvRowLen(r)) +#define kvRowValLen(r) (kvRowLen(r) - TD_KV_ROW_HEAD_SIZE - sizeof(SColIdx) * kvRowNCols(r)) +#define kvRowTKey(r) (*(TKEY *)(kvRowValues(r))) +#define kvRowKey(r) tdGetKey(kvRowTKey(r)) +#define kvRowKeys(r) POINTER_SHIFT(r, *(uint16_t *)POINTER_SHIFT(r, TD_KV_ROW_HEAD_SIZE + sizeof(int16_t))) +#define kvRowDeleted(r) TKEY_IS_DELETED(kvRowTKey(r)) + +SKVRow tdKVRowDup(SKVRow row); +int32_t tdSetKVRowDataOfCol(SKVRow *orow, int16_t colId, int8_t type, void *value); +int32_t tdEncodeKVRow(void **buf, SKVRow row); +void *tdDecodeKVRow(void *buf, SKVRow *row); +void tdSortKVRowByColIdx(SKVRow row); + +static FORCE_INLINE int32_t comparTagId(const void *key1, const void *key2) { if (*(int16_t *)key1 > ((SColIdx *)key2)->colId) { return 1; } else if (*(int16_t *)key1 < ((SColIdx *)key2)->colId) { @@ -528,7 +529,7 @@ static FORCE_INLINE void *tdGetKVRowIdxOfCol(SKVRow row, int16_t colId) { #if 0 // offset here not include kvRow header length -static FORCE_INLINE int tdAppendKvColVal(SKVRow row, const void *value, bool isCopyValData, int16_t colId, int8_t type, +static FORCE_INLINE int32_t tdAppendKvColVal(SKVRow row, const void *value, bool isCopyValData, int16_t colId, int8_t type, int32_t offset) { assert(value != NULL); int32_t toffset = offset + TD_KV_ROW_HEAD_SIZE; @@ -581,15 +582,15 @@ typedef struct { SColIdx *pColIdx; uint16_t alloc; uint16_t size; - void * buf; + void *buf; } SKVRowBuilder; -int tdInitKVRowBuilder(SKVRowBuilder *pBuilder); -void tdDestroyKVRowBuilder(SKVRowBuilder *pBuilder); -void tdResetKVRowBuilder(SKVRowBuilder *pBuilder); -SKVRow tdGetKVRowFromBuilder(SKVRowBuilder *pBuilder); +int32_t tdInitKVRowBuilder(SKVRowBuilder *pBuilder); +void tdDestroyKVRowBuilder(SKVRowBuilder *pBuilder); +void tdResetKVRowBuilder(SKVRowBuilder *pBuilder); +SKVRow tdGetKVRowFromBuilder(SKVRowBuilder *pBuilder); -static FORCE_INLINE int tdAddColToKVRow(SKVRowBuilder *pBuilder, int16_t colId, int8_t type, const void *value) { +static FORCE_INLINE int32_t tdAddColToKVRow(SKVRowBuilder *pBuilder, int16_t colId, int8_t type, const void *value) { if (pBuilder->nCols >= pBuilder->tCols) { pBuilder->tCols *= 2; SColIdx *pColIdx = (SColIdx *)realloc((void *)(pBuilder->pColIdx), sizeof(SColIdx) * pBuilder->tCols); @@ -602,7 +603,7 @@ static FORCE_INLINE int tdAddColToKVRow(SKVRowBuilder *pBuilder, int16_t colId, pBuilder->nCols++; - int tlen = IS_VAR_DATA_TYPE(type) ? varDataTLen(value) : TYPE_BYTES[type]; + int32_t tlen = IS_VAR_DATA_TYPE(type) ? varDataTLen(value) : TYPE_BYTES[type]; if (tlen > pBuilder->alloc - pBuilder->size) { while (tlen > pBuilder->alloc - pBuilder->size) { pBuilder->alloc *= 2; @@ -643,24 +644,24 @@ static FORCE_INLINE int tdAddColToKVRow(SKVRowBuilder *pBuilder, int16_t colId, typedef void *SMemRow; -#define TD_MEM_ROW_TYPE_SIZE sizeof(uint8_t) -#define TD_MEM_ROW_KV_VER_SIZE sizeof(int16_t) +#define TD_MEM_ROW_TYPE_SIZE sizeof(uint8_t) +#define TD_MEM_ROW_KV_VER_SIZE sizeof(int16_t) #define TD_MEM_ROW_KV_TYPE_VER_SIZE (TD_MEM_ROW_TYPE_SIZE + TD_MEM_ROW_KV_VER_SIZE) -#define TD_MEM_ROW_DATA_HEAD_SIZE (TD_MEM_ROW_TYPE_SIZE + TD_DATA_ROW_HEAD_SIZE) -#define TD_MEM_ROW_KV_HEAD_SIZE (TD_MEM_ROW_TYPE_SIZE + TD_MEM_ROW_KV_VER_SIZE + TD_KV_ROW_HEAD_SIZE) +#define TD_MEM_ROW_DATA_HEAD_SIZE (TD_MEM_ROW_TYPE_SIZE + TD_DATA_ROW_HEAD_SIZE) +#define TD_MEM_ROW_KV_HEAD_SIZE (TD_MEM_ROW_TYPE_SIZE + TD_MEM_ROW_KV_VER_SIZE + TD_KV_ROW_HEAD_SIZE) -#define SMEM_ROW_DATA 0x0U // SDataRow -#define SMEM_ROW_KV 0x01U // SKVRow +#define SMEM_ROW_DATA 0x0U // SDataRow +#define SMEM_ROW_KV 0x01U // SKVRow #define KVRatioConvert (0.9f) #define memRowType(r) ((*(uint8_t *)(r)) & 0x01) -#define memRowSetType(r, t) ((*(uint8_t *)(r)) = (t)) // set the total byte in case of dirty memory -#define isDataRowT(t) (SMEM_ROW_DATA == (((uint8_t)(t)) & 0x01)) -#define isDataRow(r) (SMEM_ROW_DATA == memRowType(r)) -#define isKvRowT(t) (SMEM_ROW_KV == (((uint8_t)(t)) & 0x01)) -#define isKvRow(r) (SMEM_ROW_KV == memRowType(r)) +#define memRowSetType(r, t) ((*(uint8_t *)(r)) = (t)) // set the total byte in case of dirty memory +#define isDataRowT(t) (SMEM_ROW_DATA == (((uint8_t)(t)) & 0x01)) +#define isDataRow(r) (SMEM_ROW_DATA == memRowType(r)) +#define isKvRowT(t) (SMEM_ROW_KV == (((uint8_t)(t)) & 0x01)) +#define isKvRow(r) (SMEM_ROW_KV == memRowType(r)) #define isUtilizeKVRow(k, d) ((k) < ((d)*KVRatioConvert)) #define memRowDataBody(r) POINTER_SHIFT(r, TD_MEM_ROW_TYPE_SIZE) // section after flag @@ -668,14 +669,14 @@ typedef void *SMemRow; POINTER_SHIFT(r, TD_MEM_ROW_KV_TYPE_VER_SIZE) // section after flag + sversion as to reuse SKVRow #define memRowDataLen(r) (*(TDRowLenT *)memRowDataBody(r)) // 0~65535 -#define memRowKvLen(r) (*(TDRowLenT *)memRowKvBody(r)) // 0~65535 +#define memRowKvLen(r) (*(TDRowLenT *)memRowKvBody(r)) // 0~65535 #define memRowDataTLen(r) \ ((TDRowLenT)(memRowDataLen(r) + TD_MEM_ROW_TYPE_SIZE)) // using uint32_t/int32_t to store the TLen #define memRowKvTLen(r) ((TDRowLenT)(memRowKvLen(r) + TD_MEM_ROW_KV_TYPE_VER_SIZE)) -#define memRowLen(r) (isDataRow(r) ? memRowDataLen(r) : memRowKvLen(r)) +#define memRowLen(r) (isDataRow(r) ? memRowDataLen(r) : memRowKvLen(r)) #define memRowTLen(r) (isDataRow(r) ? memRowDataTLen(r) : memRowKvTLen(r)) // using uint32_t/int32_t to store the TLen static FORCE_INLINE char *memRowEnd(SMemRow row) { @@ -686,14 +687,14 @@ static FORCE_INLINE char *memRowEnd(SMemRow row) { } } -#define memRowDataVersion(r) dataRowVersion(memRowDataBody(r)) -#define memRowKvVersion(r) (*(int16_t *)POINTER_SHIFT(r, TD_MEM_ROW_TYPE_SIZE)) -#define memRowVersion(r) (isDataRow(r) ? memRowDataVersion(r) : memRowKvVersion(r)) // schema version +#define memRowDataVersion(r) dataRowVersion(memRowDataBody(r)) +#define memRowKvVersion(r) (*(int16_t *)POINTER_SHIFT(r, TD_MEM_ROW_TYPE_SIZE)) +#define memRowVersion(r) (isDataRow(r) ? memRowDataVersion(r) : memRowKvVersion(r)) // schema version #define memRowSetKvVersion(r, v) (memRowKvVersion(r) = (v)) -#define memRowTuple(r) (isDataRow(r) ? dataRowTuple(memRowDataBody(r)) : kvRowValues(memRowKvBody(r))) +#define memRowTuple(r) (isDataRow(r) ? dataRowTuple(memRowDataBody(r)) : kvRowValues(memRowKvBody(r))) #define memRowTKey(r) (isDataRow(r) ? dataRowTKey(memRowDataBody(r)) : kvRowTKey(memRowKvBody(r))) -#define memRowKey(r) (isDataRow(r) ? dataRowKey(memRowDataBody(r)) : kvRowKey(memRowKvBody(r))) +#define memRowKey(r) (isDataRow(r) ? dataRowKey(memRowDataBody(r)) : kvRowKey(memRowKvBody(r))) #define memRowKeys(r) (isDataRow(r) ? dataRowTuple(memRowDataBody(r)) : kvRowKeys(memRowKvBody(r))) #define memRowSetTKey(r, k) \ do { \ @@ -704,11 +705,11 @@ static FORCE_INLINE char *memRowEnd(SMemRow row) { } \ } while (0) -#define memRowSetLen(r, l) (isDataRow(r) ? memRowDataLen(r) = (l) : memRowKvLen(r) = (l)) -#define memRowSetVersion(r, v) (isDataRow(r) ? dataRowSetVersion(memRowDataBody(r), v) : memRowSetKvVersion(r, v)) -#define memRowCpy(dst, r) memcpy((dst), (r), memRowTLen(r)) +#define memRowSetLen(r, l) (isDataRow(r) ? memRowDataLen(r) = (l) : memRowKvLen(r) = (l)) +#define memRowSetVersion(r, v) (isDataRow(r) ? dataRowSetVersion(memRowDataBody(r), v) : memRowSetKvVersion(r, v)) +#define memRowCpy(dst, r) memcpy((dst), (r), memRowTLen(r)) #define memRowMaxBytesFromSchema(s) (schemaTLen(s) + TD_MEM_ROW_DATA_HEAD_SIZE) -#define memRowDeleted(r) TKEY_IS_DELETED(memRowTKey(r)) +#define memRowDeleted(r) TKEY_IS_DELETED(memRowTKey(r)) SMemRow tdMemRowDup(SMemRow row); void tdAppendMemRowToDataCol(SMemRow row, STSchema *pSchema, SDataCols *pCols, bool forceSetNull); @@ -736,7 +737,7 @@ static FORCE_INLINE void *tdGetMemRowDataOfColEx(void *row, int16_t colId, int8_ } } -static FORCE_INLINE int tdAppendMemRowColVal(SMemRow row, const void *value, bool isCopyVarData, int16_t colId, +static FORCE_INLINE int32_t tdAppendMemRowColVal(SMemRow row, const void *value, bool isCopyVarData, int16_t colId, int8_t type, int32_t offset) { if (isDataRow(row)) { tdAppendDataColVal(memRowDataBody(row), value, isCopyVarData, type, offset); diff --git a/include/common/tep.h b/include/common/tep.h index 2be86aa095423603a9d315ae9c85a4323a44fa1f..e098de4ecf1a138c5f5f83595c401e4fd67c5154 100644 --- a/include/common/tep.h +++ b/include/common/tep.h @@ -1,13 +1,28 @@ -#ifndef TDENGINE_TEP_H -#define TDENGINE_TEP_H +/* + * 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 _TD_COMMON_EP_H_ +#define _TD_COMMON_EP_H_ + +#include "common.h" +#include "tmsg.h" #ifdef __cplusplus extern "C" { #endif -#include "os.h" -#include "tmsg.h" -#include "common.h" typedef struct SCorEpSet { int32_t version; @@ -17,16 +32,16 @@ typedef struct SCorEpSet { typedef struct SBlockOrderInfo { int32_t order; int32_t colIndex; - SColumnInfoData *pColData; + SColumnInfoData* pColData; } SBlockOrderInfo; -int taosGetFqdnPortFromEp(const char *ep, SEp *pEp); -void addEpIntoEpSet(SEpSet *pEpSet, const char *fqdn, uint16_t port); +int32_t taosGetFqdnPortFromEp(const char* ep, SEp* pEp); +void addEpIntoEpSet(SEpSet* pEpSet, const char* fqdn, uint16_t port); -bool isEpsetEqual(const SEpSet *s1, const SEpSet *s2); +bool isEpsetEqual(const SEpSet* s1, const SEpSet* s2); -void updateEpSet_s(SCorEpSet *pEpSet, SEpSet *pNewEpSet); -SEpSet getEpSet_s(SCorEpSet *pEpSet); +void updateEpSet_s(SCorEpSet* pEpSet, SEpSet* pNewEpSet); +SEpSet getEpSet_s(SCorEpSet* pEpSet); #define NBIT (3u) #define BitPos(_n) ((_n) & ((1 << NBIT) - 1)) @@ -38,7 +53,8 @@ SEpSet getEpSet_s(SCorEpSet *pEpSet); BMCharPos(bm_, r_) |= (1u << (7u - BitPos(r_))); \ } while (0) -static FORCE_INLINE bool colDataIsNull(const SColumnInfoData* pColumnInfoData, uint32_t totalRows, uint32_t row, SColumnDataAgg* pColAgg) { +static FORCE_INLINE bool colDataIsNull(const SColumnInfoData* pColumnInfoData, uint32_t totalRows, uint32_t row, + SColumnDataAgg* pColAgg) { if (!pColumnInfoData->hasNull) { return false; } @@ -64,12 +80,13 @@ static FORCE_INLINE bool colDataIsNull(const SColumnInfoData* pColumnInfoData, u } } -#define colDataGetData(p1_, r_) \ +#define colDataGetData(p1_, r_) \ ((IS_VAR_DATA_TYPE((p1_)->info.type)) ? (p1_)->pData + (p1_)->varmeta.offset[(r_)] \ : (p1_)->pData + ((r_) * (p1_)->info.bytes)) int32_t colDataAppend(SColumnInfoData* pColumnInfoData, uint32_t currentRow, const char* pData, bool isNull); -int32_t colDataMergeCol(SColumnInfoData* pColumnInfoData, uint32_t numOfRow1, const SColumnInfoData* pSource, uint32_t numOfRow2); +int32_t colDataMergeCol(SColumnInfoData* pColumnInfoData, uint32_t numOfRow1, const SColumnInfoData* pSource, + uint32_t numOfRow2); int32_t blockDataUpdateTsWindow(SSDataBlock* pDataBlock); int32_t colDataGetLength(const SColumnInfoData* pColumnInfoData, int32_t numOfRows); @@ -78,8 +95,9 @@ void colDataTrim(SColumnInfoData* pColumnInfoData); size_t colDataGetNumOfCols(const SSDataBlock* pBlock); size_t colDataGetNumOfRows(const SSDataBlock* pBlock); -int32_t blockDataMerge(SSDataBlock* pDest, const SSDataBlock* pSrc); -int32_t blockDataSplitRows(SSDataBlock* pBlock, bool hasVarCol, int32_t startIndex, int32_t* stopIndex, int32_t pageSize); +int32_t blockDataMerge(SSDataBlock* pDest, const SSDataBlock* pSrc); +int32_t blockDataSplitRows(SSDataBlock* pBlock, bool hasVarCol, int32_t startIndex, int32_t* stopIndex, + int32_t pageSize); SSDataBlock* blockDataExtractBlock(SSDataBlock* pBlock, int32_t startIndex, int32_t rowCount); int32_t blockDataToBuf(char* buf, const SSDataBlock* pBlock); @@ -95,14 +113,14 @@ SSchema* blockDataExtractSchema(const SSDataBlock* pBlock, int32_t* numOfCols); int32_t blockDataSort(SSDataBlock* pDataBlock, SArray* pOrderInfo, bool nullFirst); int32_t blockDataSort_rv(SSDataBlock* pDataBlock, SArray* pOrderInfo, bool nullFirst); -int32_t blockDataEnsureCapacity(SSDataBlock* pDataBlock, uint32_t numOfRows); -void blockDataClearup(SSDataBlock* pDataBlock, bool hasVarCol); +int32_t blockDataEnsureCapacity(SSDataBlock* pDataBlock, uint32_t numOfRows); +void blockDataClearup(SSDataBlock* pDataBlock, bool hasVarCol); SSDataBlock* createOneDataBlock(const SSDataBlock* pDataBlock); -size_t blockDataGetCapacityInRow(const SSDataBlock* pBlock, size_t pageSize); -void *blockDataDestroy(SSDataBlock *pBlock); +size_t blockDataGetCapacityInRow(const SSDataBlock* pBlock, size_t pageSize); +void* blockDataDestroy(SSDataBlock* pBlock); #ifdef __cplusplus } #endif -#endif // TDENGINE_TEP_H +#endif // _TD_COMMON_EP_H_ diff --git a/include/common/tglobal.h b/include/common/tglobal.h index 40999c453c9174b5416dc17c0b73d3269408271a..e09f6d11bdea1f3dbf5a08ab37d3086c9c1d2ed4 100644 --- a/include/common/tglobal.h +++ b/include/common/tglobal.h @@ -16,13 +16,13 @@ #ifndef _TD_COMMON_GLOBAL_H_ #define _TD_COMMON_GLOBAL_H_ +#include "tarray.h" +#include "tdef.h" + #ifdef __cplusplus extern "C" { #endif -#include "tdef.h" -#include "tarray.h" - // cluster extern char tsFirst[]; extern char tsSecond[]; diff --git a/include/common/tmsg.h b/include/common/tmsg.h index fbeb212218bb4f8c708d864aabaf64e59ba14bf6..a739e51d6b2688020e9a81cad47d487a3e6e00fc 100644 --- a/include/common/tmsg.h +++ b/include/common/tmsg.h @@ -16,19 +16,19 @@ #ifndef _TD_COMMON_TAOS_MSG_H_ #define _TD_COMMON_TAOS_MSG_H_ -#ifdef __cplusplus -extern "C" { -#endif - -#include "tencode.h" #include "taosdef.h" #include "taoserror.h" #include "tarray.h" #include "tcoding.h" +#include "tencode.h" #include "thash.h" #include "tlist.h" #include "trow.h" +#ifdef __cplusplus +extern "C" { +#endif + /* ------------------------ MESSAGE DEFINITIONS ------------------------ */ #define TD_MSG_NUMBER_ #undef TD_MSG_DICT_ @@ -48,8 +48,8 @@ extern "C" { #undef TD_MSG_SEG_CODE_ #include "tmsgdef.h" -extern char* tMsgInfo[]; -extern int tMsgDict[]; +extern char* tMsgInfo[]; +extern int32_t tMsgDict[]; #define TMSG_SEG_CODE(TYPE) (((TYPE)&0xff00) >> 8) #define TMSG_SEG_SEQ(TYPE) ((TYPE)&0xff) @@ -655,7 +655,7 @@ int32_t tDeserializeSRetrieveFuncRsp(void* buf, int32_t bufLen, SRetrieveFuncRsp typedef struct { int32_t statusInterval; - int64_t checkTime; // 1970-01-01 00:00:00.000 + int64_t checkTime; // 1970-01-01 00:00:00.000 char timezone[TD_TIMEZONE_LEN]; // tsTimezone char locale[TD_LOCALE_LEN]; // tsLocale char charset[TD_LOCALE_LEN]; // tsCharset @@ -1117,13 +1117,13 @@ typedef struct { SArray* topicNames; // SArray } SCMSubscribeReq; -static FORCE_INLINE int tSerializeSCMSubscribeReq(void** buf, const SCMSubscribeReq* pReq) { - int tlen = 0; +static FORCE_INLINE int32_t tSerializeSCMSubscribeReq(void** buf, const SCMSubscribeReq* pReq) { + int32_t tlen = 0; tlen += taosEncodeFixedI32(buf, pReq->topicNum); tlen += taosEncodeFixedI64(buf, pReq->consumerId); tlen += taosEncodeString(buf, pReq->consumerGroup); - for (int i = 0; i < pReq->topicNum; i++) { + for (int32_t i = 0; i < pReq->topicNum; i++) { tlen += taosEncodeString(buf, (char*)taosArrayGetP(pReq->topicNames, i)); } return tlen; @@ -1134,7 +1134,7 @@ static FORCE_INLINE void* tDeserializeSCMSubscribeReq(void* buf, SCMSubscribeReq buf = taosDecodeFixedI64(buf, &pReq->consumerId); buf = taosDecodeString(buf, &pReq->consumerGroup); pReq->topicNames = taosArrayInit(pReq->topicNum, sizeof(void*)); - for (int i = 0; i < pReq->topicNum; i++) { + for (int32_t i = 0; i < pReq->topicNum; i++) { char* name; buf = taosDecodeString(buf, &name); taosArrayPush(pReq->topicNames, &name); @@ -1153,10 +1153,10 @@ typedef struct { SMqSubTopic topics[]; } SCMSubscribeRsp; -static FORCE_INLINE int tSerializeSCMSubscribeRsp(void** buf, const SCMSubscribeRsp* pRsp) { - int tlen = 0; +static FORCE_INLINE int32_t tSerializeSCMSubscribeRsp(void** buf, const SCMSubscribeRsp* pRsp) { + int32_t tlen = 0; tlen += taosEncodeFixedI32(buf, pRsp->topicNum); - for (int i = 0; i < pRsp->topicNum; i++) { + for (int32_t i = 0; i < pRsp->topicNum; i++) { tlen += taosEncodeFixedI32(buf, pRsp->topics[i].vgId); tlen += taosEncodeFixedI64(buf, pRsp->topics[i].topicId); tlen += taosEncodeSEpSet(buf, &pRsp->topics[i].epSet); @@ -1166,7 +1166,7 @@ static FORCE_INLINE int tSerializeSCMSubscribeRsp(void** buf, const SCMSubscribe static FORCE_INLINE void* tDeserializeSCMSubscribeRsp(void* buf, SCMSubscribeRsp* pRsp) { buf = taosDecodeFixedI32(buf, &pRsp->topicNum); - for (int i = 0; i < pRsp->topicNum; i++) { + for (int32_t i = 0; i < pRsp->topicNum; i++) { buf = taosDecodeFixedI32(buf, &pRsp->topics[i].vgId); buf = taosDecodeFixedI64(buf, &pRsp->topics[i].topicId); buf = taosDecodeSEpSet(buf, &pRsp->topics[i].epSet); @@ -1184,8 +1184,8 @@ typedef struct { char* physicalPlan; } SMVSubscribeReq; -static FORCE_INLINE int tSerializeSMVSubscribeReq(void** buf, SMVSubscribeReq* pReq) { - int tlen = 0; +static FORCE_INLINE int32_t tSerializeSMVSubscribeReq(void** buf, SMVSubscribeReq* pReq) { + int32_t tlen = 0; tlen += taosEncodeFixedI64(buf, pReq->topicId); tlen += taosEncodeFixedI64(buf, pReq->consumerId); tlen += taosEncodeFixedI64(buf, pReq->consumerGroupId); @@ -1397,8 +1397,8 @@ typedef struct SMqHbRsp { SEpSet epSet; } SMqHbRsp; -static FORCE_INLINE int taosEncodeSMqHbRsp(void** buf, const SMqHbRsp* pRsp) { - int tlen = 0; +static FORCE_INLINE int32_t taosEncodeSMqHbRsp(void** buf, const SMqHbRsp* pRsp) { + int32_t tlen = 0; tlen += taosEncodeFixedI8(buf, pRsp->status); tlen += taosEncodeFixedI8(buf, pRsp->vnodeChanged); tlen += taosEncodeFixedI8(buf, pRsp->epChanged); @@ -1419,8 +1419,8 @@ typedef struct SMqHbOneTopicBatchRsp { SArray* rsps; // SArray } SMqHbOneTopicBatchRsp; -static FORCE_INLINE int taosEncodeSMqHbOneTopicBatchRsp(void** buf, const SMqHbOneTopicBatchRsp* pBatchRsp) { - int tlen = 0; +static FORCE_INLINE int32_t taosEncodeSMqHbOneTopicBatchRsp(void** buf, const SMqHbOneTopicBatchRsp* pBatchRsp) { + int32_t tlen = 0; tlen += taosEncodeString(buf, pBatchRsp->topicName); int32_t sz = taosArrayGetSize(pBatchRsp->rsps); tlen += taosEncodeFixedI32(buf, sz); @@ -1449,8 +1449,8 @@ typedef struct SMqHbBatchRsp { SArray* batchRsps; // SArray } SMqHbBatchRsp; -static FORCE_INLINE int taosEncodeSMqHbBatchRsp(void** buf, const SMqHbBatchRsp* pBatchRsp) { - int tlen = 0; +static FORCE_INLINE int32_t taosEncodeSMqHbBatchRsp(void** buf, const SMqHbBatchRsp* pBatchRsp) { + int32_t tlen = 0; tlen += taosEncodeFixedI64(buf, pBatchRsp->consumerId); int32_t sz; tlen += taosEncodeFixedI32(buf, sz); @@ -1591,8 +1591,8 @@ typedef struct SMqHbVgInfo { int32_t vgId; } SMqHbVgInfo; -static FORCE_INLINE int taosEncodeSMqVgInfo(void** buf, const SMqHbVgInfo* pVgInfo) { - int tlen = 0; +static FORCE_INLINE int32_t taosEncodeSMqVgInfo(void** buf, const SMqHbVgInfo* pVgInfo) { + int32_t tlen = 0; tlen += taosEncodeFixedI32(buf, pVgInfo->vgId); return tlen; } @@ -1609,8 +1609,8 @@ typedef struct SMqHbTopicInfo { SArray* pVgInfo; } SMqHbTopicInfo; -static FORCE_INLINE int taosEncodeSMqHbTopicInfoMsg(void** buf, const SMqHbTopicInfo* pTopicInfo) { - int tlen = 0; +static FORCE_INLINE int32_t taosEncodeSMqHbTopicInfoMsg(void** buf, const SMqHbTopicInfo* pTopicInfo) { + int32_t tlen = 0; tlen += taosEncodeFixedI32(buf, pTopicInfo->epoch); tlen += taosEncodeFixedI64(buf, pTopicInfo->topicUid); tlen += taosEncodeString(buf, pTopicInfo->name); @@ -1645,14 +1645,14 @@ typedef struct SMqHbMsg { SArray* pTopics; // SArray } SMqHbMsg; -static FORCE_INLINE int taosEncodeSMqMsg(void** buf, const SMqHbMsg* pMsg) { - int tlen = 0; +static FORCE_INLINE int32_t taosEncodeSMqMsg(void** buf, const SMqHbMsg* pMsg) { + int32_t tlen = 0; tlen += taosEncodeFixedI32(buf, pMsg->status); tlen += taosEncodeFixedI32(buf, pMsg->epoch); tlen += taosEncodeFixedI64(buf, pMsg->consumerId); int32_t sz = taosArrayGetSize(pMsg->pTopics); tlen += taosEncodeFixedI32(buf, sz); - for (int i = 0; i < sz; i++) { + for (int32_t i = 0; i < sz; i++) { SMqHbTopicInfo* topicInfo = (SMqHbTopicInfo*)taosArrayGet(pMsg->pTopics, i); tlen += taosEncodeSMqHbTopicInfoMsg(buf, topicInfo); } @@ -1666,7 +1666,7 @@ static FORCE_INLINE void* taosDecodeSMqMsg(void* buf, SMqHbMsg* pMsg) { int32_t sz; buf = taosDecodeFixedI32(buf, &sz); pMsg->pTopics = taosArrayInit(sz, sizeof(SMqHbTopicInfo)); - for (int i = 0; i < sz; i++) { + for (int32_t i = 0; i < sz; i++) { SMqHbTopicInfo topicInfo; buf = taosDecodeSMqHbTopicInfoMsg(buf, &topicInfo); taosArrayPush(pMsg->pTopics, &topicInfo); diff --git a/include/common/tmsgdef.h b/include/common/tmsgdef.h index a3e44968f76fd43a161d7cd33f4ea5fc0304041b..5117e784be122128b4bcd14869b77550cfa080ac 100644 --- a/include/common/tmsgdef.h +++ b/include/common/tmsgdef.h @@ -47,7 +47,7 @@ enum { #define TD_NEW_MSG_SEG(TYPE) TYPE##_NUM, #define TD_DEF_MSG_TYPE(TYPE, MSG, REQ, RSP) -int tMsgDict[] = { +int32_t tMsgDict[] = { #elif defined(TD_MSG_SEG_CODE_) diff --git a/include/common/tname.h b/include/common/tname.h index 47028fbce18945f1b33f57d5d5ccaba2a730103a..f09cdc81da22352f490145bfde1089f3475f9166 100644 --- a/include/common/tname.h +++ b/include/common/tname.h @@ -13,26 +13,25 @@ * along with this program. If not, see . */ -#ifndef TDENGINE_TNAME_H -#define TDENGINE_TNAME_H +#ifndef _TD_COMMON_NAME_H_ +#define _TD_COMMON_NAME_H_ + +#include "tdef.h" +#include "tmsg.h" #ifdef __cplusplus extern "C" { #endif +#define TSDB_DB_NAME_T 1 +#define TSDB_TABLE_NAME_T 2 -#include "tdef.h" -#include "tmsg.h" - -#define TSDB_DB_NAME_T 1 -#define TSDB_TABLE_NAME_T 2 - -#define T_NAME_ACCT 0x1u -#define T_NAME_DB 0x2u -#define T_NAME_TABLE 0x4u +#define T_NAME_ACCT 0x1u +#define T_NAME_DB 0x2u +#define T_NAME_TABLE 0x4u typedef struct SName { - uint8_t type; //db_name_t, table_name_t + uint8_t type; // db_name_t, table_name_t int32_t acctId; char dbname[TSDB_DB_NAME_LEN]; char tname[TSDB_TABLE_NAME_LEN]; @@ -68,5 +67,4 @@ SSchema createSchema(uint8_t type, int32_t bytes, int32_t colId, const char* nam } #endif - -#endif // TDENGINE_TNAME_H +#endif // _TD_COMMON_NAME_H_ diff --git a/include/common/trequest.h b/include/common/trequest.h index 6932122bc92553255f6989746cbcb091b6f201c6..05abadcb4431f550f36b31c733f278f852e2221b 100644 --- a/include/common/trequest.h +++ b/include/common/trequest.h @@ -13,8 +13,8 @@ * along with this program. If not, see . */ -#ifndef _TD_TREQUEST_H_ -#define _TD_TREQUEST_H_ +#ifndef _TD_COMMON_REQUEST_H_ +#define _TD_COMMON_REQUEST_H_ #ifdef __cplusplus extern "C" { @@ -36,7 +36,7 @@ void tdClearRBIter(SReqBatchIter *pIter); /* ------------------------ TYPES DEFINITION ------------------------ */ struct SReqBatchIter { - int iReq; + int32_t iReq; SReqBatch *pReqBatch; }; @@ -44,4 +44,4 @@ struct SReqBatchIter { } #endif -#endif /*_TD_TREQUEST_H_*/ \ No newline at end of file +#endif /*_TD_COMMON_REQUEST_H_*/ \ No newline at end of file diff --git a/include/common/trow.h b/include/common/trow.h index fad74a359dad164cc18ad7bb1f06b90b116ace24..49bc2f3515a3304e8421d3f6f4cdc33a901be430 100644 --- a/include/common/trow.h +++ b/include/common/trow.h @@ -18,11 +18,11 @@ #include "os.h" #include "talgo.h" +#include "taosdef.h" #include "taoserror.h" #include "tbuffer.h" -#include "tdef.h" -#include "taosdef.h" #include "tdataformat.h" +#include "tdef.h" #include "tschema.h" #include "ttypes.h" #include "tutil.h" @@ -47,21 +47,21 @@ extern "C" { #define TD_VTYPE_NONE 0x0U // none or unknown/undefined #define TD_VTYPE_NULL 0x01U // null val #define TD_VTYPE_NORM 0x02U // normal val: not none, not null -#define TD_VTYPE_MAX 0x03U // +#define TD_VTYPE_MAX 0x03U // #define TD_VTYPE_NONE_BYTE 0x0U #define TD_VTYPE_NULL_BYTE 0x55U #define TD_VTYPE_NORM_BYTE 0xAAU -#define TD_ROWS_ALL_NORM 0x01U +#define TD_ROWS_ALL_NORM 0x01U #define TD_ROWS_NULL_NORM 0x0U -#define TD_COL_ROWS_NORM(c) ((c)->bitmap == TD_ROWS_ALL_NORM) // all rows of SDataCol/SBlockCol is NORM +#define TD_COL_ROWS_NORM(c) ((c)->bitmap == TD_ROWS_ALL_NORM) // all rows of SDataCol/SBlockCol is NORM #define TD_SET_COL_ROWS_BTIMAP(c, v) ((c)->bitmap = (v)) -#define TD_SET_COL_ROWS_NORM(c) TD_SET_COL_ROWS_BTIMAP((c), TD_ROWS_ALL_NORM) -#define TD_SET_COL_ROWS_MISC(c) TD_SET_COL_ROWS_BTIMAP((c), TD_ROWS_NULL_NORM) +#define TD_SET_COL_ROWS_NORM(c) TD_SET_COL_ROWS_BTIMAP((c), TD_ROWS_ALL_NORM) +#define TD_SET_COL_ROWS_MISC(c) TD_SET_COL_ROWS_BTIMAP((c), TD_ROWS_NULL_NORM) -#define KvConvertRatio (0.9f) +#define KvConvertRatio (0.9f) #define isSelectKVRow(klen, tlen) ((klen) < ((tlen)*KvConvertRatio)) #ifdef TD_SUPPORT_BITMAP @@ -98,7 +98,7 @@ typedef void *SRow; typedef struct { TDRowValT valType; - void * val; + void *val; } SCellVal; typedef struct { @@ -157,41 +157,41 @@ typedef struct { int16_t nBitmaps; int16_t nBoundBitmaps; int32_t offset; - void * pBitmap; - void * pOffset; + void *pBitmap; + void *pOffset; int32_t extendedRowSize; } SRowBuilder; -#define TD_ROW_HEAD_LEN (sizeof(STSRow)) +#define TD_ROW_HEAD_LEN (sizeof(STSRow)) #define TD_ROW_NCOLS_LEN (sizeof(col_id_t)) -#define TD_ROW_TYPE(r) ((r)->type) -#define TD_ROW_DELETE(r) ((r)->del) -#define TD_ROW_ENDIAN(r) ((r)->endian) -#define TD_ROW_SVER(r) ((r)->sver) -#define TD_ROW_NCOLS(r) ((r)->data) // only valid for SKvRow -#define TD_ROW_DATA(r) ((r)->data) -#define TD_ROW_LEN(r) ((r)->len) -#define TD_ROW_KEY(r) ((r)->ts) +#define TD_ROW_TYPE(r) ((r)->type) +#define TD_ROW_DELETE(r) ((r)->del) +#define TD_ROW_ENDIAN(r) ((r)->endian) +#define TD_ROW_SVER(r) ((r)->sver) +#define TD_ROW_NCOLS(r) ((r)->data) // only valid for SKvRow +#define TD_ROW_DATA(r) ((r)->data) +#define TD_ROW_LEN(r) ((r)->len) +#define TD_ROW_KEY(r) ((r)->ts) #define TD_ROW_KEY_ADDR(r) POINTER_SHIFT((r), 16) // N.B. If without STSchema, getExtendedRowSize() is used to get the rowMaxBytes and -// (int)ceil((double)nCols/TD_VTYPE_PARTS) should be added if TD_SUPPORT_BITMAP defined. +// (int32_t)ceil((double)nCols/TD_VTYPE_PARTS) should be added if TD_SUPPORT_BITMAP defined. #define TD_ROW_MAX_BYTES_FROM_SCHEMA(s) (schemaTLen(s) + TD_ROW_HEAD_LEN) -#define TD_ROW_SET_TYPE(r, t) (TD_ROW_TYPE(r) = (t)) -#define TD_ROW_SET_DELETE(r) (TD_ROW_DELETE(r) = 1) -#define TD_ROW_SET_SVER(r, v) (TD_ROW_SVER(r) = (v)) -#define TD_ROW_SET_LEN(r, l) (TD_ROW_LEN(r) = (l)) +#define TD_ROW_SET_TYPE(r, t) (TD_ROW_TYPE(r) = (t)) +#define TD_ROW_SET_DELETE(r) (TD_ROW_DELETE(r) = 1) +#define TD_ROW_SET_SVER(r, v) (TD_ROW_SVER(r) = (v)) +#define TD_ROW_SET_LEN(r, l) (TD_ROW_LEN(r) = (l)) #define TD_ROW_SET_NCOLS(r, n) (*(col_id_t *)TD_ROW_NCOLS(r) = (n)) #define TD_ROW_IS_DELETED(r) (TD_ROW_DELETE(r) == 1) -#define TD_IS_TP_ROW(r) (TD_ROW_TYPE(r) == TD_ROW_TP) -#define TD_IS_KV_ROW(r) (TD_ROW_TYPE(r) == TD_ROW_KV) -#define TD_IS_TP_ROW_T(t) ((t) == TD_ROW_TP) -#define TD_IS_KV_ROW_T(t) ((t) == TD_ROW_KV) +#define TD_IS_TP_ROW(r) (TD_ROW_TYPE(r) == TD_ROW_TP) +#define TD_IS_KV_ROW(r) (TD_ROW_TYPE(r) == TD_ROW_KV) +#define TD_IS_TP_ROW_T(t) ((t) == TD_ROW_TP) +#define TD_IS_KV_ROW_T(t) ((t) == TD_ROW_KV) -#define TD_BOOL_STR(b) ((b) ? "true" : "false") +#define TD_BOOL_STR(b) ((b) ? "true" : "false") #define isUtilizeKVRow(k, d) ((k) < ((d)*KVRatioConvert)) #define TD_ROW_COL_IDX(r) POINTER_SHIFT(TD_ROW_DATA(r), sizeof(col_id_t)) @@ -217,7 +217,7 @@ static FORCE_INLINE void tdRowCopy(void *dst, STSRow *row) { memcpy(dst, row, static FORCE_INLINE int32_t tdSetBitmapValType(void *pBitmap, int16_t colIdx, TDRowValT valType); int32_t tdSetBitmapValTypeN(void *pBitmap, int16_t nEle, TDRowValT valType); static FORCE_INLINE int32_t tdGetBitmapValType(void *pBitmap, int16_t colIdx, TDRowValT *pValType); -int tdAppendValToDataCol(SDataCol *pCol, TDRowValT valType, const void *val, int numOfRows, int maxPoints); +int32_t tdAppendValToDataCol(SDataCol *pCol, TDRowValT valType, const void *val, int32_t numOfRows, int32_t maxPoints); static FORCE_INLINE int32_t tdAppendColValToTpRow(SRowBuilder *pBuilder, TDRowValT valType, const void *val, bool isCopyVarData, int8_t colType, int16_t colIdx, int32_t offset); static FORCE_INLINE int32_t tdAppendColValToKvRow(SRowBuilder *pBuilder, TDRowValT valType, const void *val, @@ -272,7 +272,7 @@ static FORCE_INLINE int32_t tdSetBitmapValType(void *pBitmap, int16_t colIdx, TD } int16_t nBytes = colIdx / TD_VTYPE_PARTS; int16_t nOffset = colIdx & TD_VTYPE_OPTR; - char * pDestByte = (char *)POINTER_SHIFT(pBitmap, nBytes); + char *pDestByte = (char *)POINTER_SHIFT(pBitmap, nBytes); switch (nOffset) { case 0: *pDestByte = ((*pDestByte) & 0x3F) | (valType << 6); @@ -310,7 +310,7 @@ static FORCE_INLINE int32_t tdGetBitmapValType(void *pBitmap, int16_t colIdx, TD } int16_t nBytes = colIdx / TD_VTYPE_PARTS; int16_t nOffset = colIdx & TD_VTYPE_OPTR; - char * pDestByte = (char *)POINTER_SHIFT(pBitmap, nBytes); + char *pDestByte = (char *)POINTER_SHIFT(pBitmap, nBytes); switch (nOffset) { case 0: *pValType = (((*pDestByte) & 0xC0) >> 6); @@ -355,7 +355,6 @@ static FORCE_INLINE int32_t tdGetBitmapValType(void *pBitmap, int16_t colIdx, TD * */ - /** * @brief * @@ -432,7 +431,6 @@ static FORCE_INLINE int32_t tdSRowSetExtendedInfo(SRowBuilder *pBuilder, int32_t pBuilder->rowType = TD_ROW_TP; } - } else { pBuilder->rowType = TD_ROW_TP; } @@ -618,7 +616,7 @@ static FORCE_INLINE int32_t tdAppendColValToKvRow(SRowBuilder *pBuilder, TDRowVa if (tdValIsNorm(valType, val, colType)) { // ts key stored in STSRow.ts SKvRowIdx *pColIdx = (SKvRowIdx *)POINTER_SHIFT(TD_ROW_COL_IDX(row), offset); - char * ptr = (char *)POINTER_SHIFT(row, TD_ROW_LEN(row)); + char *ptr = (char *)POINTER_SHIFT(row, TD_ROW_LEN(row)); pColIdx->colId = colId; pColIdx->offset = TD_ROW_LEN(row); // the offset include the TD_ROW_HEAD_LEN @@ -636,7 +634,7 @@ static FORCE_INLINE int32_t tdAppendColValToKvRow(SRowBuilder *pBuilder, TDRowVa // NULL/None value else { SKvRowIdx *pColIdx = (SKvRowIdx *)POINTER_SHIFT(TD_ROW_COL_IDX(row), offset); - char * ptr = (char *)POINTER_SHIFT(row, TD_ROW_LEN(row)); + char *ptr = (char *)POINTER_SHIFT(row, TD_ROW_LEN(row)); pColIdx->colId = colId; pColIdx->offset = TD_ROW_LEN(row); // the offset include the TD_ROW_HEAD_LEN const void *nullVal = getNullValue(colType); @@ -731,7 +729,7 @@ static FORCE_INLINE int32_t tdGetTpRowValOfCol(SCellVal *output, STSRow *pRow, v return TSDB_CODE_SUCCESS; } -static FORCE_INLINE int compareKvRowColId(const void *key1, const void *key2) { +static FORCE_INLINE int32_t compareKvRowColId(const void *key1, const void *key2) { if (*(int16_t *)key1 > ((SColIdx *)key2)->colId) { return 1; } else if (*(int16_t *)key1 < ((SColIdx *)key2)->colId) { @@ -772,8 +770,8 @@ static FORCE_INLINE int32_t tdGetKvRowValOfCol(SCellVal *output, STSRow *pRow, v typedef struct { STSchema *pSchema; - STSRow * pRow; - void * pBitmap; + STSRow *pRow; + void *pBitmap; uint32_t offset; col_id_t maxColId; col_id_t colIdx; // [PRIMARYKEY_TIMESTAMP_COL_ID, nSchemaCols], PRIMARYKEY_TIMESTAMP_COL_ID equals 1 @@ -793,8 +791,8 @@ static FORCE_INLINE void tdSTSRowIterInit(STSRowIter *pIter, STSchema *pSchema) pIter->maxColId = pSchema->columns[pSchema->numOfCols - 1].colId; } -static int tdCompareColId(const void *arg1, const void *arg2) { - int colId = *(int *)arg1; +static int32_t tdCompareColId(const void *arg1, const void *arg2) { + int32_t colId = *(int32_t *)arg1; STColumn *pCol = (STColumn *)arg2; if (colId < pCol->colId) { @@ -878,7 +876,7 @@ static FORCE_INLINE bool tdGetTpRowDataOfCol(STSRowIter *pIter, col_type_t colTy // internal static FORCE_INLINE bool tdGetKvRowValOfColEx(STSRowIter *pIter, col_id_t colId, col_type_t colType, col_id_t *nIdx, SCellVal *pVal) { - STSRow * pRow = pIter->pRow; + STSRow *pRow = pIter->pRow; SKvRowIdx *pKvIdx = NULL; bool colFound = false; col_id_t kvNCols = tdRowGetNCols(pRow); @@ -959,11 +957,11 @@ static FORCE_INLINE bool tdSTSRowIterNext(STSRowIter *pIter, col_id_t colId, col STSRow *mergeTwoRows(void *buffer, STSRow *row1, STSRow *row2, STSchema *pSchema1, STSchema *pSchema2); // Get the data pointer from a column-wised data -static FORCE_INLINE int32_t tdGetColDataOfRow(SCellVal *pVal, SDataCol *pCol, int row) { +static FORCE_INLINE int32_t tdGetColDataOfRow(SCellVal *pVal, SDataCol *pCol, int32_t row) { if (isAllRowsNone(pCol)) { pVal->valType = TD_VTYPE_NULL; #ifdef TD_SUPPORT_READ2 - pVal->val = (void*)getNullValue(pCol->type); + pVal->val = (void *)getNullValue(pCol->type); #else pVal->val = NULL; #endif @@ -981,7 +979,7 @@ static FORCE_INLINE int32_t tdGetColDataOfRow(SCellVal *pVal, SDataCol *pCol, in } else { pVal->valType = TD_VTYPE_NULL; #ifdef TD_SUPPORT_READ2 - pVal->val = (void*)getNullValue(pCol->type); + pVal->val = (void *)getNullValue(pCol->type); #else pVal->val = NULL; #endif @@ -1000,7 +998,8 @@ static FORCE_INLINE bool tdSTpRowGetVal(STSRow *pRow, col_id_t colId, col_type_t return true; } -static FORCE_INLINE bool tdSKvRowGetVal(STSRow *pRow, col_id_t colId, uint32_t offset, col_id_t colIdx, SCellVal *pVal) { +static FORCE_INLINE bool tdSKvRowGetVal(STSRow *pRow, col_id_t colId, uint32_t offset, col_id_t colIdx, + SCellVal *pVal) { if (colId == PRIMARYKEY_TIMESTAMP_COL_ID) { tdRowSetVal(pVal, TD_VTYPE_NORM, TD_ROW_KEY_ADDR(pRow)); return true; @@ -1010,7 +1009,7 @@ static FORCE_INLINE bool tdSKvRowGetVal(STSRow *pRow, col_id_t colId, uint32_t o return true; } -static FORCE_INLINE int32_t dataColGetNEleLen(SDataCol *pDataCol, int rows) { +static FORCE_INLINE int32_t dataColGetNEleLen(SDataCol *pDataCol, int32_t rows) { ASSERT(rows > 0); int32_t result = 0; @@ -1068,7 +1067,7 @@ typedef struct { typedef struct { STSchema *pSchema; - STSRow * pRow; + STSRow *pRow; } STSRowReader; typedef struct { @@ -1079,15 +1078,15 @@ typedef struct { // STSRowBuilder #define trbInit(rt, allocator, endian, target, size) \ { .type = (rt), .bw = tbufInitWriter(allocator, endian), .pRow = (target) } -void trbSetRowInfo(STSRowBuilder *pRB, bool del, uint16_t sver); -void trbSetRowVersion(STSRowBuilder *pRB, uint64_t ver); -void trbSetRowTS(STSRowBuilder *pRB, TSKEY ts); -int trbWriteCol(STSRowBuilder *pRB, void *pData, col_id_t cid); +void trbSetRowInfo(STSRowBuilder *pRB, bool del, uint16_t sver); +void trbSetRowVersion(STSRowBuilder *pRB, uint64_t ver); +void trbSetRowTS(STSRowBuilder *pRB, TSKEY ts); +int32_t trbWriteCol(STSRowBuilder *pRB, void *pData, col_id_t cid); // STSRowReader #define tRowReaderInit(schema, row) \ { .schema = (schema), .row = (row) } -int tRowReaderRead(STSRowReader *pRowReader, col_id_t cid, void *target, uint64_t size); +int32_t tRowReaderRead(STSRowReader *pRowReader, col_id_t cid, void *target, uint64_t size); // STSRowBatchIter #define tRowBatchIterInit(pRB) \ diff --git a/include/common/tschema.h b/include/common/tschema.h index cfa0eeace2a0096492d4bb61e32359f0fe9e5e80..7a270fc9d9d247b5d2ea4483b36969225d5a880e 100644 --- a/include/common/tschema.h +++ b/include/common/tschema.h @@ -70,7 +70,7 @@ typedef struct { { .size = (capacity), .pSchema = (target) } void tSchemaBuilderSetSver(STShemaBuilder *pSchemaBuilder, uint16_t sver); void tSchemaBuilderSetSMA(bool sma, SArray *smaArray); -int tSchemaBuilderPutColumn(char *cname, bool sma, uint8_t type, col_id_t cid, uint32_t bytes, char *comment); +int32_t tSchemaBuilderPutColumn(char *cname, bool sma, uint8_t type, col_id_t cid, uint32_t bytes, char *comment); #endif diff --git a/include/common/ttime.h b/include/common/ttime.h index e22e1d6c4ed9aeb406abce8468d3f92f4599c298..a4b2aa6673c4413225ff0bfdd5b58851f400d2b0 100644 --- a/include/common/ttime.h +++ b/include/common/ttime.h @@ -16,13 +16,13 @@ #ifndef _TD_COMMON_TIME_H_ #define _TD_COMMON_TIME_H_ +#include "taosdef.h" +#include "tmsg.h" + #ifdef __cplusplus extern "C" { #endif -#include "taosdef.h" -#include "tmsg.h" - #define TIME_IS_VAR_DURATION(_t) ((_t) == 'n' || (_t) == 'y' || (_t) == 'N' || (_t) == 'Y') /* @@ -35,7 +35,7 @@ static FORCE_INLINE int64_t taosGetTimestamp(int32_t precision) { return taosGetTimestampUs(); } else if (precision == TSDB_TIME_PRECISION_NANO) { return taosGetTimestampNs(); - }else { + } else { return taosGetTimestampMs(); } } @@ -56,4 +56,4 @@ int64_t convertTimePrecision(int64_t time, int32_t fromPrecision, int32_t toPrec } #endif -#endif /*_TD_COMMON_TIME_H_*/ +#endif /*_TD_COMMON_TIME_H_*/ diff --git a/include/common/ttokendef.h b/include/common/ttokendef.h index 7501f61983ad36d943966d33b47138cda0f38068..f86cbff700c97bcaabad867ce05b705a85efcff5 100644 --- a/include/common/ttokendef.h +++ b/include/common/ttokendef.h @@ -13,284 +13,282 @@ * along with this program. If not, see . */ -#ifndef TDENGINE_TTOKENDEF_H -#define TDENGINE_TTOKENDEF_H +#ifndef _TD_COMMON_TOKEN_H_ +#define _TD_COMMON_TOKEN_H_ -#define TK_ID 1 -#define TK_BOOL 2 -#define TK_INTEGER 3 -#define TK_FLOAT 4 -#define TK_STRING 5 -#define TK_TIMESTAMP 6 -#define TK_OR 7 -#define TK_AND 8 -#define TK_NOT 9 -#define TK_EQ 10 -#define TK_NE 11 -#define TK_ISNULL 12 -#define TK_NOTNULL 13 -#define TK_IS 14 -#define TK_LIKE 15 -#define TK_MATCH 16 -#define TK_NMATCH 17 -#define TK_GLOB 18 -#define TK_BETWEEN 19 -#define TK_IN 20 -#define TK_GT 21 -#define TK_GE 22 -#define TK_LT 23 -#define TK_LE 24 -#define TK_BITAND 25 -#define TK_BITOR 26 -#define TK_LSHIFT 27 -#define TK_RSHIFT 28 -#define TK_PLUS 29 -#define TK_MINUS 30 -#define TK_DIVIDE 31 -#define TK_TIMES 32 -#define TK_STAR 33 -#define TK_SLASH 34 -#define TK_REM 35 -#define TK_CONCAT 36 -#define TK_UMINUS 37 -#define TK_UPLUS 38 -#define TK_BITNOT 39 -#define TK_SHOW 40 -#define TK_DATABASES 41 -#define TK_TOPICS 42 -#define TK_FUNCTIONS 43 -#define TK_MNODES 44 -#define TK_DNODES 45 -#define TK_ACCOUNTS 46 -#define TK_USERS 47 -#define TK_MODULES 48 -#define TK_QUERIES 49 -#define TK_CONNECTIONS 50 -#define TK_STREAMS 51 -#define TK_VARIABLES 52 -#define TK_SCORES 53 -#define TK_GRANTS 54 -#define TK_VNODES 55 -#define TK_DOT 56 -#define TK_CREATE 57 -#define TK_TABLE 58 -#define TK_STABLE 59 -#define TK_DATABASE 60 -#define TK_TABLES 61 -#define TK_STABLES 62 -#define TK_VGROUPS 63 -#define TK_DROP 64 -#define TK_TOPIC 65 -#define TK_FUNCTION 66 -#define TK_DNODE 67 -#define TK_USER 68 -#define TK_ACCOUNT 69 -#define TK_USE 70 -#define TK_DESCRIBE 71 -#define TK_DESC 72 -#define TK_ALTER 73 -#define TK_PASS 74 -#define TK_PRIVILEGE 75 -#define TK_LOCAL 76 -#define TK_COMPACT 77 -#define TK_LP 78 -#define TK_RP 79 -#define TK_IF 80 -#define TK_EXISTS 81 -#define TK_PORT 82 -#define TK_IPTOKEN 83 -#define TK_AS 84 -#define TK_OUTPUTTYPE 85 -#define TK_AGGREGATE 86 -#define TK_BUFSIZE 87 -#define TK_PPS 88 -#define TK_TSERIES 89 -#define TK_DBS 90 -#define TK_STORAGE 91 -#define TK_QTIME 92 -#define TK_CONNS 93 -#define TK_STATE 94 -#define TK_COMMA 95 -#define TK_KEEP 96 -#define TK_CACHE 97 -#define TK_REPLICA 98 -#define TK_QUORUM 99 -#define TK_DAYS 100 -#define TK_MINROWS 101 -#define TK_MAXROWS 102 -#define TK_BLOCKS 103 -#define TK_CTIME 104 -#define TK_WAL 105 -#define TK_FSYNC 106 -#define TK_COMP 107 -#define TK_PRECISION 108 -#define TK_UPDATE 109 -#define TK_CACHELAST 110 -#define TK_STREAM 111 -#define TK_MODE 112 -#define TK_UNSIGNED 113 -#define TK_TAGS 114 -#define TK_USING 115 -#define TK_NULL 116 -#define TK_NOW 117 -#define TK_SELECT 118 -#define TK_UNION 119 -#define TK_ALL 120 -#define TK_DISTINCT 121 -#define TK_FROM 122 -#define TK_VARIABLE 123 -#define TK_INTERVAL 124 -#define TK_EVERY 125 -#define TK_SESSION 126 -#define TK_STATE_WINDOW 127 -#define TK_FILL 128 -#define TK_SLIDING 129 -#define TK_ORDER 130 -#define TK_BY 131 -#define TK_ASC 132 -#define TK_GROUP 133 -#define TK_HAVING 134 -#define TK_LIMIT 135 -#define TK_OFFSET 136 -#define TK_SLIMIT 137 -#define TK_SOFFSET 138 -#define TK_WHERE 139 -#define TK_RESET 140 -#define TK_QUERY 141 -#define TK_SYNCDB 142 -#define TK_ADD 143 -#define TK_COLUMN 144 -#define TK_MODIFY 145 -#define TK_TAG 146 -#define TK_CHANGE 147 -#define TK_SET 148 -#define TK_KILL 149 -#define TK_CONNECTION 150 -#define TK_COLON 151 -#define TK_ABORT 152 -#define TK_AFTER 153 -#define TK_ATTACH 154 -#define TK_BEFORE 155 -#define TK_BEGIN 156 -#define TK_CASCADE 157 -#define TK_CLUSTER 158 -#define TK_CONFLICT 159 -#define TK_COPY 160 -#define TK_DEFERRED 161 -#define TK_DELIMITERS 162 -#define TK_DETACH 163 -#define TK_EACH 164 -#define TK_END 165 -#define TK_EXPLAIN 166 -#define TK_FAIL 167 -#define TK_FOR 168 -#define TK_IGNORE 169 -#define TK_IMMEDIATE 170 -#define TK_INITIALLY 171 -#define TK_INSTEAD 172 -#define TK_KEY 173 -#define TK_OF 174 -#define TK_RAISE 175 -#define TK_REPLACE 176 -#define TK_RESTRICT 177 -#define TK_ROW 178 -#define TK_STATEMENT 179 -#define TK_TRIGGER 180 -#define TK_VIEW 181 -#define TK_SEMI 182 -#define TK_NONE 183 -#define TK_PREV 184 -#define TK_LINEAR 185 -#define TK_IMPORT 186 -#define TK_TBNAME 187 -#define TK_JOIN 188 -#define TK_INSERT 189 -#define TK_INTO 190 -#define TK_VALUES 191 +#define TK_ID 1 +#define TK_BOOL 2 +#define TK_INTEGER 3 +#define TK_FLOAT 4 +#define TK_STRING 5 +#define TK_TIMESTAMP 6 +#define TK_OR 7 +#define TK_AND 8 +#define TK_NOT 9 +#define TK_EQ 10 +#define TK_NE 11 +#define TK_ISNULL 12 +#define TK_NOTNULL 13 +#define TK_IS 14 +#define TK_LIKE 15 +#define TK_MATCH 16 +#define TK_NMATCH 17 +#define TK_GLOB 18 +#define TK_BETWEEN 19 +#define TK_IN 20 +#define TK_GT 21 +#define TK_GE 22 +#define TK_LT 23 +#define TK_LE 24 +#define TK_BITAND 25 +#define TK_BITOR 26 +#define TK_LSHIFT 27 +#define TK_RSHIFT 28 +#define TK_PLUS 29 +#define TK_MINUS 30 +#define TK_DIVIDE 31 +#define TK_TIMES 32 +#define TK_STAR 33 +#define TK_SLASH 34 +#define TK_REM 35 +#define TK_CONCAT 36 +#define TK_UMINUS 37 +#define TK_UPLUS 38 +#define TK_BITNOT 39 +#define TK_SHOW 40 +#define TK_DATABASES 41 +#define TK_TOPICS 42 +#define TK_FUNCTIONS 43 +#define TK_MNODES 44 +#define TK_DNODES 45 +#define TK_ACCOUNTS 46 +#define TK_USERS 47 +#define TK_MODULES 48 +#define TK_QUERIES 49 +#define TK_CONNECTIONS 50 +#define TK_STREAMS 51 +#define TK_VARIABLES 52 +#define TK_SCORES 53 +#define TK_GRANTS 54 +#define TK_VNODES 55 +#define TK_DOT 56 +#define TK_CREATE 57 +#define TK_TABLE 58 +#define TK_STABLE 59 +#define TK_DATABASE 60 +#define TK_TABLES 61 +#define TK_STABLES 62 +#define TK_VGROUPS 63 +#define TK_DROP 64 +#define TK_TOPIC 65 +#define TK_FUNCTION 66 +#define TK_DNODE 67 +#define TK_USER 68 +#define TK_ACCOUNT 69 +#define TK_USE 70 +#define TK_DESCRIBE 71 +#define TK_DESC 72 +#define TK_ALTER 73 +#define TK_PASS 74 +#define TK_PRIVILEGE 75 +#define TK_LOCAL 76 +#define TK_COMPACT 77 +#define TK_LP 78 +#define TK_RP 79 +#define TK_IF 80 +#define TK_EXISTS 81 +#define TK_PORT 82 +#define TK_IPTOKEN 83 +#define TK_AS 84 +#define TK_OUTPUTTYPE 85 +#define TK_AGGREGATE 86 +#define TK_BUFSIZE 87 +#define TK_PPS 88 +#define TK_TSERIES 89 +#define TK_DBS 90 +#define TK_STORAGE 91 +#define TK_QTIME 92 +#define TK_CONNS 93 +#define TK_STATE 94 +#define TK_COMMA 95 +#define TK_KEEP 96 +#define TK_CACHE 97 +#define TK_REPLICA 98 +#define TK_QUORUM 99 +#define TK_DAYS 100 +#define TK_MINROWS 101 +#define TK_MAXROWS 102 +#define TK_BLOCKS 103 +#define TK_CTIME 104 +#define TK_WAL 105 +#define TK_FSYNC 106 +#define TK_COMP 107 +#define TK_PRECISION 108 +#define TK_UPDATE 109 +#define TK_CACHELAST 110 +#define TK_STREAM 111 +#define TK_MODE 112 +#define TK_UNSIGNED 113 +#define TK_TAGS 114 +#define TK_USING 115 +#define TK_NULL 116 +#define TK_NOW 117 +#define TK_SELECT 118 +#define TK_UNION 119 +#define TK_ALL 120 +#define TK_DISTINCT 121 +#define TK_FROM 122 +#define TK_VARIABLE 123 +#define TK_INTERVAL 124 +#define TK_EVERY 125 +#define TK_SESSION 126 +#define TK_STATE_WINDOW 127 +#define TK_FILL 128 +#define TK_SLIDING 129 +#define TK_ORDER 130 +#define TK_BY 131 +#define TK_ASC 132 +#define TK_GROUP 133 +#define TK_HAVING 134 +#define TK_LIMIT 135 +#define TK_OFFSET 136 +#define TK_SLIMIT 137 +#define TK_SOFFSET 138 +#define TK_WHERE 139 +#define TK_RESET 140 +#define TK_QUERY 141 +#define TK_SYNCDB 142 +#define TK_ADD 143 +#define TK_COLUMN 144 +#define TK_MODIFY 145 +#define TK_TAG 146 +#define TK_CHANGE 147 +#define TK_SET 148 +#define TK_KILL 149 +#define TK_CONNECTION 150 +#define TK_COLON 151 +#define TK_ABORT 152 +#define TK_AFTER 153 +#define TK_ATTACH 154 +#define TK_BEFORE 155 +#define TK_BEGIN 156 +#define TK_CASCADE 157 +#define TK_CLUSTER 158 +#define TK_CONFLICT 159 +#define TK_COPY 160 +#define TK_DEFERRED 161 +#define TK_DELIMITERS 162 +#define TK_DETACH 163 +#define TK_EACH 164 +#define TK_END 165 +#define TK_EXPLAIN 166 +#define TK_FAIL 167 +#define TK_FOR 168 +#define TK_IGNORE 169 +#define TK_IMMEDIATE 170 +#define TK_INITIALLY 171 +#define TK_INSTEAD 172 +#define TK_KEY 173 +#define TK_OF 174 +#define TK_RAISE 175 +#define TK_REPLACE 176 +#define TK_RESTRICT 177 +#define TK_ROW 178 +#define TK_STATEMENT 179 +#define TK_TRIGGER 180 +#define TK_VIEW 181 +#define TK_SEMI 182 +#define TK_NONE 183 +#define TK_PREV 184 +#define TK_LINEAR 185 +#define TK_IMPORT 186 +#define TK_TBNAME 187 +#define TK_JOIN 188 +#define TK_INSERT 189 +#define TK_INTO 190 +#define TK_VALUES 191 -#define NEW_TK_OR 1 -#define NEW_TK_AND 2 -#define NEW_TK_UNION 3 -#define NEW_TK_ALL 4 -#define NEW_TK_MINUS 5 -#define NEW_TK_EXCEPT 6 -#define NEW_TK_INTERSECT 7 -#define NEW_TK_NK_PLUS 8 -#define NEW_TK_NK_MINUS 9 -#define NEW_TK_NK_STAR 10 -#define NEW_TK_NK_SLASH 11 -#define NEW_TK_NK_REM 12 -#define NEW_TK_SHOW 13 -#define NEW_TK_DATABASES 14 -#define NEW_TK_NK_INTEGER 15 -#define NEW_TK_NK_FLOAT 16 -#define NEW_TK_NK_STRING 17 -#define NEW_TK_NK_BOOL 18 -#define NEW_TK_TIMESTAMP 19 -#define NEW_TK_NK_VARIABLE 20 -#define NEW_TK_NK_COMMA 21 -#define NEW_TK_NK_ID 22 -#define NEW_TK_NK_LP 23 -#define NEW_TK_NK_RP 24 -#define NEW_TK_NK_DOT 25 -#define NEW_TK_BETWEEN 26 -#define NEW_TK_NOT 27 -#define NEW_TK_IS 28 -#define NEW_TK_NULL 29 -#define NEW_TK_NK_LT 30 -#define NEW_TK_NK_GT 31 -#define NEW_TK_NK_LE 32 -#define NEW_TK_NK_GE 33 -#define NEW_TK_NK_NE 34 -#define NEW_TK_NK_EQ 35 -#define NEW_TK_LIKE 36 -#define NEW_TK_MATCH 37 -#define NEW_TK_NMATCH 38 -#define NEW_TK_IN 39 -#define NEW_TK_FROM 40 -#define NEW_TK_AS 41 -#define NEW_TK_JOIN 42 -#define NEW_TK_ON 43 -#define NEW_TK_INNER 44 -#define NEW_TK_SELECT 45 -#define NEW_TK_DISTINCT 46 -#define NEW_TK_WHERE 47 -#define NEW_TK_PARTITION 48 -#define NEW_TK_BY 49 -#define NEW_TK_SESSION 50 -#define NEW_TK_STATE_WINDOW 51 -#define NEW_TK_INTERVAL 52 -#define NEW_TK_SLIDING 53 -#define NEW_TK_FILL 54 -#define NEW_TK_VALUE 55 -#define NEW_TK_NONE 56 -#define NEW_TK_PREV 57 -#define NEW_TK_LINEAR 58 -#define NEW_TK_NEXT 59 -#define NEW_TK_GROUP 60 -#define NEW_TK_HAVING 61 -#define NEW_TK_ORDER 62 -#define NEW_TK_SLIMIT 63 -#define NEW_TK_SOFFSET 64 -#define NEW_TK_LIMIT 65 -#define NEW_TK_OFFSET 66 -#define NEW_TK_ASC 67 -#define NEW_TK_DESC 68 -#define NEW_TK_NULLS 69 -#define NEW_TK_FIRST 70 -#define NEW_TK_LAST 71 +#define NEW_TK_OR 1 +#define NEW_TK_AND 2 +#define NEW_TK_UNION 3 +#define NEW_TK_ALL 4 +#define NEW_TK_MINUS 5 +#define NEW_TK_EXCEPT 6 +#define NEW_TK_INTERSECT 7 +#define NEW_TK_NK_PLUS 8 +#define NEW_TK_NK_MINUS 9 +#define NEW_TK_NK_STAR 10 +#define NEW_TK_NK_SLASH 11 +#define NEW_TK_NK_REM 12 +#define NEW_TK_SHOW 13 +#define NEW_TK_DATABASES 14 +#define NEW_TK_NK_INTEGER 15 +#define NEW_TK_NK_FLOAT 16 +#define NEW_TK_NK_STRING 17 +#define NEW_TK_NK_BOOL 18 +#define NEW_TK_TIMESTAMP 19 +#define NEW_TK_NK_VARIABLE 20 +#define NEW_TK_NK_COMMA 21 +#define NEW_TK_NK_ID 22 +#define NEW_TK_NK_LP 23 +#define NEW_TK_NK_RP 24 +#define NEW_TK_NK_DOT 25 +#define NEW_TK_BETWEEN 26 +#define NEW_TK_NOT 27 +#define NEW_TK_IS 28 +#define NEW_TK_NULL 29 +#define NEW_TK_NK_LT 30 +#define NEW_TK_NK_GT 31 +#define NEW_TK_NK_LE 32 +#define NEW_TK_NK_GE 33 +#define NEW_TK_NK_NE 34 +#define NEW_TK_NK_EQ 35 +#define NEW_TK_LIKE 36 +#define NEW_TK_MATCH 37 +#define NEW_TK_NMATCH 38 +#define NEW_TK_IN 39 +#define NEW_TK_FROM 40 +#define NEW_TK_AS 41 +#define NEW_TK_JOIN 42 +#define NEW_TK_ON 43 +#define NEW_TK_INNER 44 +#define NEW_TK_SELECT 45 +#define NEW_TK_DISTINCT 46 +#define NEW_TK_WHERE 47 +#define NEW_TK_PARTITION 48 +#define NEW_TK_BY 49 +#define NEW_TK_SESSION 50 +#define NEW_TK_STATE_WINDOW 51 +#define NEW_TK_INTERVAL 52 +#define NEW_TK_SLIDING 53 +#define NEW_TK_FILL 54 +#define NEW_TK_VALUE 55 +#define NEW_TK_NONE 56 +#define NEW_TK_PREV 57 +#define NEW_TK_LINEAR 58 +#define NEW_TK_NEXT 59 +#define NEW_TK_GROUP 60 +#define NEW_TK_HAVING 61 +#define NEW_TK_ORDER 62 +#define NEW_TK_SLIMIT 63 +#define NEW_TK_SOFFSET 64 +#define NEW_TK_LIMIT 65 +#define NEW_TK_OFFSET 66 +#define NEW_TK_ASC 67 +#define NEW_TK_DESC 68 +#define NEW_TK_NULLS 69 +#define NEW_TK_FIRST 70 +#define NEW_TK_LAST 71 -#define TK_SPACE 300 -#define TK_COMMENT 301 -#define TK_ILLEGAL 302 -#define TK_HEX 303 // hex number 0x123 -#define TK_OCT 304 // oct number -#define TK_BIN 305 // bin format data 0b111 -#define TK_FILE 306 -#define TK_QUESTION 307 // denoting the placeholder of "?",when invoking statement bind query - -#define TK_NIL 65535 - -#endif +#define TK_SPACE 300 +#define TK_COMMENT 301 +#define TK_ILLEGAL 302 +#define TK_HEX 303 // hex number 0x123 +#define TK_OCT 304 // oct number +#define TK_BIN 305 // bin format data 0b111 +#define TK_FILE 306 +#define TK_QUESTION 307 // denoting the placeholder of "?",when invoking statement bind query +#define TK_NIL 65535 +#endif /*_TD_COMMON_TOKEN_H_*/ diff --git a/include/common/ttszip.h b/include/common/ttszip.h index d83b0066d5b743155ea3739c38ef46add9194943..71d17ebd71de28b7cbf99fea0face1338ac35c5c 100644 --- a/include/common/ttszip.h +++ b/include/common/ttszip.h @@ -13,17 +13,18 @@ * along with this program. If not, see . */ -#ifndef TDENGINE_TTSZIP_H -#define TDENGINE_TTSZIP_H +#ifndef _TD_COMMON_TTSZIP_H_ +#define _TD_COMMON_TTSZIP_H_ -#ifdef __cplusplus -extern "C" { -#endif #include "os.h" #include "tdef.h" #include "tvariant.h" +#ifdef __cplusplus +extern "C" { +#endif + #define MEM_BUF_SIZE (1 << 20) #define TS_COMP_FILE_MAGIC 0x87F5EC4C #define TS_COMP_FILE_GROUP_MAX 512 @@ -144,4 +145,4 @@ bool tsBufIsValidElem(STSElem* pElem); } #endif -#endif // TDENGINE_TTSZIP_H +#endif // _TD_COMMON_TTSZIP_H_ diff --git a/include/common/ttypes.h b/include/common/ttypes.h index 00dc75e24e9405b6708efbe0c1af77def0aaaa83..f33ef92a8112645d1dded4207688d3d44dcb41c2 100644 --- a/include/common/ttypes.h +++ b/include/common/ttypes.h @@ -1,5 +1,20 @@ -#ifndef TDENGINE_TTYPE_H -#define TDENGINE_TTYPE_H +/* + * 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 _TD_COMMON_TTYPE_H_ +#define _TD_COMMON_TTYPE_H_ #ifdef __cplusplus extern "C" { @@ -27,19 +42,18 @@ typedef struct { } SNCharNullT; #pragma pack(pop) -#define varDataTLen(v) (sizeof(VarDataLenT) + varDataLen(v)) -#define varDataCopy(dst, v) memcpy((dst), (void*) (v), varDataTLen(v)) -#define varDataLenByData(v) (*(VarDataLenT *)(((char*)(v)) - VARSTR_HEADER_SIZE)) -#define varDataSetLen(v, _len) (((VarDataLenT *)(v))[0] = (VarDataLenT) (_len)) -#define IS_VAR_DATA_TYPE(t) (((t) == TSDB_DATA_TYPE_BINARY) || ((t) == TSDB_DATA_TYPE_NCHAR)) - -#define varDataNetLen(v) (htons(((VarDataLenT *)(v))[0])) -#define varDataNetTLen(v) (sizeof(VarDataLenT) + varDataNetLen(v)) +#define varDataTLen(v) (sizeof(VarDataLenT) + varDataLen(v)) +#define varDataCopy(dst, v) memcpy((dst), (void *)(v), varDataTLen(v)) +#define varDataLenByData(v) (*(VarDataLenT *)(((char *)(v)) - VARSTR_HEADER_SIZE)) +#define varDataSetLen(v, _len) (((VarDataLenT *)(v))[0] = (VarDataLenT)(_len)) +#define IS_VAR_DATA_TYPE(t) (((t) == TSDB_DATA_TYPE_BINARY) || ((t) == TSDB_DATA_TYPE_NCHAR)) +#define varDataNetLen(v) (htons(((VarDataLenT *)(v))[0])) +#define varDataNetTLen(v) (sizeof(VarDataLenT) + varDataNetLen(v)) // this data type is internally used only in 'in' query to hold the values -#define TSDB_DATA_TYPE_POINTER_ARRAY (1000) -#define TSDB_DATA_TYPE_VALUE_ARRAY (1001) +#define TSDB_DATA_TYPE_POINTER_ARRAY (1000) +#define TSDB_DATA_TYPE_VALUE_ARRAY (1001) #define GET_TYPED_DATA(_v, _finalType, _type, _data) \ do { \ @@ -57,7 +71,7 @@ typedef struct { case TSDB_DATA_TYPE_USMALLINT: \ (_v) = (_finalType)GET_UINT16_VAL(_data); \ break; \ - case TSDB_DATA_TYPE_TIMESTAMP:\ + case TSDB_DATA_TYPE_TIMESTAMP: \ case TSDB_DATA_TYPE_BIGINT: \ (_v) = (_finalType)(GET_INT64_VAL(_data)); \ break; \ @@ -86,7 +100,7 @@ typedef struct { do { \ switch (_type) { \ case TSDB_DATA_TYPE_BOOL: \ - *(bool *)(_v) = (bool)(_data); \ + *(bool *)(_v) = (bool)(_data); \ break; \ case TSDB_DATA_TYPE_TINYINT: \ *(int8_t *)(_v) = (int8_t)(_data); \ @@ -130,18 +144,19 @@ typedef struct { #define IS_NUMERIC_TYPE(_t) ((IS_SIGNED_NUMERIC_TYPE(_t)) || (IS_UNSIGNED_NUMERIC_TYPE(_t)) || (IS_FLOAT_TYPE(_t))) -#define IS_VALID_TINYINT(_t) ((_t) > INT8_MIN && (_t) <= INT8_MAX) -#define IS_VALID_SMALLINT(_t) ((_t) > INT16_MIN && (_t) <= INT16_MAX) -#define IS_VALID_INT(_t) ((_t) > INT32_MIN && (_t) <= INT32_MAX) -#define IS_VALID_BIGINT(_t) ((_t) > INT64_MIN && (_t) <= INT64_MAX) -#define IS_VALID_UTINYINT(_t) ((_t) >= 0 && (_t) < UINT8_MAX) -#define IS_VALID_USMALLINT(_t) ((_t) >= 0 && (_t) < UINT16_MAX) -#define IS_VALID_UINT(_t) ((_t) >= 0 && (_t) < UINT32_MAX) -#define IS_VALID_UBIGINT(_t) ((_t) >= 0 && (_t) < UINT64_MAX) -#define IS_VALID_FLOAT(_t) ((_t) >= -FLT_MAX && (_t) <= FLT_MAX) -#define IS_VALID_DOUBLE(_t) ((_t) >= -DBL_MAX && (_t) <= DBL_MAX) - -#define IS_CONVERT_AS_SIGNED(_t) (IS_SIGNED_NUMERIC_TYPE(_t) || (_t) == (TSDB_DATA_TYPE_BOOL) || (_t) == (TSDB_DATA_TYPE_TIMESTAMP)) +#define IS_VALID_TINYINT(_t) ((_t) > INT8_MIN && (_t) <= INT8_MAX) +#define IS_VALID_SMALLINT(_t) ((_t) > INT16_MIN && (_t) <= INT16_MAX) +#define IS_VALID_INT(_t) ((_t) > INT32_MIN && (_t) <= INT32_MAX) +#define IS_VALID_BIGINT(_t) ((_t) > INT64_MIN && (_t) <= INT64_MAX) +#define IS_VALID_UTINYINT(_t) ((_t) >= 0 && (_t) < UINT8_MAX) +#define IS_VALID_USMALLINT(_t) ((_t) >= 0 && (_t) < UINT16_MAX) +#define IS_VALID_UINT(_t) ((_t) >= 0 && (_t) < UINT32_MAX) +#define IS_VALID_UBIGINT(_t) ((_t) >= 0 && (_t) < UINT64_MAX) +#define IS_VALID_FLOAT(_t) ((_t) >= -FLT_MAX && (_t) <= FLT_MAX) +#define IS_VALID_DOUBLE(_t) ((_t) >= -DBL_MAX && (_t) <= DBL_MAX) + +#define IS_CONVERT_AS_SIGNED(_t) \ + (IS_SIGNED_NUMERIC_TYPE(_t) || (_t) == (TSDB_DATA_TYPE_BOOL) || (_t) == (TSDB_DATA_TYPE_TIMESTAMP)) #define IS_CONVERT_AS_UNSIGNED(_t) (IS_UNSIGNED_NUMERIC_TYPE(_t) || (_t) == (TSDB_DATA_TYPE_BOOL)) static FORCE_INLINE bool isNull(const void *val, int32_t type) { @@ -162,17 +177,17 @@ static FORCE_INLINE bool isNull(const void *val, int32_t type) { case TSDB_DATA_TYPE_DOUBLE: return *(uint64_t *)val == TSDB_DATA_DOUBLE_NULL; case TSDB_DATA_TYPE_NCHAR: - return varDataLen(val) == sizeof(int32_t) && *(uint32_t*) varDataVal(val) == TSDB_DATA_NCHAR_NULL; + return varDataLen(val) == sizeof(int32_t) && *(uint32_t *)varDataVal(val) == TSDB_DATA_NCHAR_NULL; case TSDB_DATA_TYPE_BINARY: - return varDataLen(val) == sizeof(int8_t) && *(uint8_t *) varDataVal(val) == TSDB_DATA_BINARY_NULL; + return varDataLen(val) == sizeof(int8_t) && *(uint8_t *)varDataVal(val) == TSDB_DATA_BINARY_NULL; case TSDB_DATA_TYPE_UTINYINT: - return *(uint8_t*) val == TSDB_DATA_UTINYINT_NULL; + return *(uint8_t *)val == TSDB_DATA_UTINYINT_NULL; case TSDB_DATA_TYPE_USMALLINT: - return *(uint16_t*) val == TSDB_DATA_USMALLINT_NULL; + return *(uint16_t *)val == TSDB_DATA_USMALLINT_NULL; case TSDB_DATA_TYPE_UINT: - return *(uint32_t*) val == TSDB_DATA_UINT_NULL; + return *(uint32_t *)val == TSDB_DATA_UINT_NULL; case TSDB_DATA_TYPE_UBIGINT: - return *(uint64_t*) val == TSDB_DATA_UBIGINT_NULL; + return *(uint64_t *)val == TSDB_DATA_UBIGINT_NULL; default: return false; @@ -183,32 +198,31 @@ typedef struct tDataTypeDescriptor { int16_t type; int16_t nameLen; int32_t bytes; - char * name; + char *name; int64_t minValue; int64_t maxValue; - int (*compFunc)(const char *const input, int inputSize, const int nelements, char *const output, int outputSize, - char algorithm, char *const buffer, int bufferSize); - int (*decompFunc)(const char *const input, int compressedSize, const int nelements, char *const output, - int outputSize, char algorithm, char *const buffer, int bufferSize); - void (*statisFunc)(const void *pData, int32_t numofrow, int64_t *min, int64_t *max, int64_t *sum, - int16_t *minindex, int16_t *maxindex, int16_t *numofnull); + int32_t (*compFunc)(const char *const input, int32_t inputSize, const int32_t nelements, char *const output, + int32_t outputSize, char algorithm, char *const buffer, int32_t bufferSize); + int32_t (*decompFunc)(const char *const input, int32_t compressedSize, const int32_t nelements, char *const output, + int32_t outputSize, char algorithm, char *const buffer, int32_t bufferSize); + void (*statisFunc)(const void *pData, int32_t numofrow, int64_t *min, int64_t *max, int64_t *sum, int16_t *minindex, + int16_t *maxindex, int16_t *numofnull); } tDataTypeDescriptor; extern tDataTypeDescriptor tDataTypes[15]; bool isValidDataType(int32_t type); -void setVardataNull(void* val, int32_t type); -void setNull(void *val, int32_t type, int32_t bytes); -void setNullN(void *val, int32_t type, int32_t bytes, int32_t numOfElems); +void setVardataNull(void *val, int32_t type); +void setNull(void *val, int32_t type, int32_t bytes); +void setNullN(void *val, int32_t type, int32_t bytes, int32_t numOfElems); const void *getNullValue(int32_t type); -void assignVal(char *val, const char *src, int32_t len, int32_t type); -void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size, void* buf); -void operateVal(void *dst, void *s1, void *s2, int32_t optr, int32_t type); -void* getDataMin(int32_t type); -void* getDataMax(int32_t type); - +void assignVal(char *val, const char *src, int32_t len, int32_t type); +void tsDataSwap(void *pLeft, void *pRight, int32_t type, int32_t size, void *buf); +void operateVal(void *dst, void *s1, void *s2, int32_t optr, int32_t type); +void *getDataMin(int32_t type); +void *getDataMax(int32_t type); #define SET_DOUBLE_NULL(v) (*(uint64_t *)(v) = TSDB_DATA_DOUBLE_NULL) #define SET_BIGINT_NULL(v) (*(uint64_t *)(v) = TSDB_DATA_BIGINT_NULL) @@ -217,4 +231,4 @@ void* getDataMax(int32_t type); } #endif -#endif // TDENGINE_TTYPE_H +#endif // _TD_COMMON_TTYPE_H_ diff --git a/include/common/tvariant.h b/include/common/tvariant.h index e068c6eb6ca4cc56b3eae27d5ca213517ad86752..554c7523101b5e798962b5143f6aab8bac8f3f3a 100644 --- a/include/common/tvariant.h +++ b/include/common/tvariant.h @@ -13,34 +13,34 @@ * along with this program. If not, see . */ -#ifndef TDENGINE_TVARIANT_H -#define TDENGINE_TVARIANT_H +#ifndef _TD_COMMON_VARIANT_H_ +#define _TD_COMMON_VARIANT_H_ + +#include "tarray.h" #ifdef __cplusplus extern "C" { #endif -#include "tarray.h" - // variant, each number/string/field_id has a corresponding struct during parsing sql typedef struct SVariant { - uint32_t nType; - int32_t nLen; // only used for string, for number, it is useless + uint32_t nType; + int32_t nLen; // only used for string, for number, it is useless union { int64_t i; uint64_t u; double d; char *pz; wchar_t *wpz; - SArray *arr; // only for 'in' query to hold value list, not value for a field + SArray *arr; // only for 'in' query to hold value list, not value for a field }; } SVariant; -int32_t toInteger(const char* z, int32_t n, int32_t base, int64_t* value, bool* issigned); +int32_t toInteger(const char *z, int32_t n, int32_t base, int64_t *value, bool *issigned); bool taosVariantIsValid(SVariant *pVar); -void taosVariantCreate(SVariant *pVar, const char* z, int32_t n, int32_t type); +void taosVariantCreate(SVariant *pVar, const char *z, int32_t n, int32_t type); void taosVariantCreateFromBinary(SVariant *pVar, const char *pz, size_t len, uint32_t type); @@ -48,7 +48,7 @@ void taosVariantDestroy(SVariant *pV); void taosVariantAssign(SVariant *pDst, const SVariant *pSrc); -int32_t taosVariantCompare(const SVariant* p1, const SVariant* p2); +int32_t taosVariantCompare(const SVariant *p1, const SVariant *p2); int32_t taosVariantToString(SVariant *pVar, char *dst); @@ -64,4 +64,4 @@ int32_t taosVariantTypeSetType(SVariant *pVariant, char type); } #endif -#endif // TDENGINE_TVARIANT_H +#endif // _TD_COMMON_VARIANT_H_ diff --git a/source/common/src/tep.c b/source/common/src/tep.c index 573ff6d9b7313d4afa59a057ed8d97e878bef493..35e14ecb5a52ca5bb375ecb0903b219b3e44a5fe 100644 --- a/source/common/src/tep.c +++ b/source/common/src/tep.c @@ -1,10 +1,25 @@ +/* + * 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 "tep.h" #include "tcompare.h" -#include "common.h" #include "tglobal.h" #include "tlockfree.h" -int taosGetFqdnPortFromEp(const char *ep, SEp* pEp) { +int32_t taosGetFqdnPortFromEp(const char *ep, SEp* pEp) { pEp->port = 0; strcpy(pEp->fqdn, ep);