Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
5101c057
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
5101c057
编写于
2月 28, 2022
作者:
S
Shengliang Guan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
minor changes
上级
e54eef75
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
669 addition
and
640 deletion
+669
-640
include/common/common.h
include/common/common.h
+9
-8
include/common/taosdef.h
include/common/taosdef.h
+5
-21
include/common/tdataformat.h
include/common/tdataformat.h
+133
-132
include/common/tep.h
include/common/tep.h
+39
-21
include/common/tglobal.h
include/common/tglobal.h
+3
-3
include/common/tmsg.h
include/common/tmsg.h
+32
-32
include/common/tmsgdef.h
include/common/tmsgdef.h
+1
-1
include/common/tname.h
include/common/tname.h
+12
-14
include/common/trequest.h
include/common/trequest.h
+4
-4
include/common/trow.h
include/common/trow.h
+53
-54
include/common/tschema.h
include/common/tschema.h
+1
-1
include/common/ttime.h
include/common/ttime.h
+5
-5
include/common/ttokendef.h
include/common/ttokendef.h
+274
-276
include/common/ttszip.h
include/common/ttszip.h
+7
-6
include/common/ttypes.h
include/common/ttypes.h
+63
-49
include/common/tvariant.h
include/common/tvariant.h
+11
-11
source/common/src/tep.c
source/common/src/tep.c
+17
-2
未找到文件。
include/common/common.h
浏览文件 @
5101c057
...
...
@@ -13,17 +13,18 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#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 (int
32_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_
include/common/taosdef.h
浏览文件 @
5101c057
...
...
@@ -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
,
...
...
include/common/tdataformat.h
浏览文件 @
5101c057
...
...
@@ -12,6 +12,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#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) +
int
32_t
version
;
// version
int
32_t
numOfCols
;
// Number of columns appended
int
32_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
);
int
32_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
int
32_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
;
int
32_t
tCols
;
int
32_t
nCols
;
int
32_t
tlen
;
uint16_t
flen
;
uint16_t
vlen
;
int
version
;
int
32_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
);
int
32_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
);
int
32_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
int
32_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 int
32_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 int
32_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, int
32_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, int
32_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, int
32_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, int
32_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, int
32_t
dstIdx, SDataRow src,
STSchema *pSrcSchema, int
32_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
int
32_t
bytes
;
// column data bytes defined
int
32_t
offset
;
// data offset in a SDataRow (including the header size)
int
32_t
spaceSize
;
// Total space size for this column
int
32_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
,
in
t
maxPoints
);
int
32_t
tdAllocMemForCol
(
SDataCol
*
pCol
,
int32_
t
maxPoints
);
void
dataColInit
(
SDataCol
*
pDataCol
,
STColumn
*
pCol
,
in
t
maxPoints
);
int
dataColAppendVal
(
SDataCol
*
pCol
,
const
void
*
value
,
int
numOfRows
,
in
t
maxPoints
);
void
*
dataColSetOffset
(
SDataCol
*
pCol
,
in
t
nEle
);
void
dataColInit
(
SDataCol
*
pDataCol
,
STColumn
*
pCol
,
int32_
t
maxPoints
);
int
32_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
,
int
32_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, int
32_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, int
32_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
int
32_t
maxPoints
;
// max number of points
int
32_t
numOfRows
;
int
32_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
,
int
32_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
,
in
t
maxRows
);
SDataCols
*
tdNewDataCols
(
int
32_t
maxCols
,
int32_
t
maxRows
);
void
tdResetDataCols
(
SDataCols
*
pCols
);
int
tdInitDataCols
(
SDataCols
*
pCols
,
STSchema
*
pSchema
);
int
32_t
tdInitDataCols
(
SDataCols
*
pCols
,
STSchema
*
pSchema
);
SDataCols
*
tdDupDataCols
(
SDataCols
*
pCols
,
bool
keepData
);
SDataCols
*
tdFreeDataCols
(
SDataCols
*
pCols
);
int
tdMergeDataCols
(
SDataCols
*
target
,
SDataCols
*
source
,
int
rowsToMerge
,
in
t
*
pOffset
,
bool
forceSetNull
);
int
32_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
);
int
32_t
tdSetKVRowDataOfCol
(
SKVRow
*
orow
,
int16_t
colId
,
int8_t
type
,
void
*
value
);
int
32_t
tdEncodeKVRow
(
void
**
buf
,
SKVRow
row
);
void
*
tdDecodeKVRow
(
void
*
buf
,
SKVRow
*
row
);
void
tdSortKVRowByColIdx
(
SKVRow
row
);
static
FORCE_INLINE
int
32_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 int
32_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
);
int
32_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
int
32_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
];
int
32_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 int
32_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);
...
...
include/common/tep.h
浏览文件 @
5101c057
#ifndef TDENGINE_TEP_H
#define TDENGINE_TEP_H
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* 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 <http://www.gnu.org/licenses/>.
*/
#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
);
int
32_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_
include/common/tglobal.h
浏览文件 @
5101c057
...
...
@@ -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
[];
...
...
include/common/tmsg.h
浏览文件 @
5101c057
...
...
@@ -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
int
32_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<char*>
}
SCMSubscribeReq
;
static
FORCE_INLINE
int
tSerializeSCMSubscribeReq
(
void
**
buf
,
const
SCMSubscribeReq
*
pReq
)
{
int
tlen
=
0
;
static
FORCE_INLINE
int
32_t
tSerializeSCMSubscribeReq
(
void
**
buf
,
const
SCMSubscribeReq
*
pReq
)
{
int
32_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
(
int
32_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
(
int
32_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
int
32_t
tSerializeSCMSubscribeRsp
(
void
**
buf
,
const
SCMSubscribeRsp
*
pRsp
)
{
int
32_t
tlen
=
0
;
tlen
+=
taosEncodeFixedI32
(
buf
,
pRsp
->
topicNum
);
for
(
int
i
=
0
;
i
<
pRsp
->
topicNum
;
i
++
)
{
for
(
int
32_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
(
int
32_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
int
32_t
tSerializeSMVSubscribeReq
(
void
**
buf
,
SMVSubscribeReq
*
pReq
)
{
int
32_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
int
32_t
taosEncodeSMqHbRsp
(
void
**
buf
,
const
SMqHbRsp
*
pRsp
)
{
int
32_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<SMqHbRsp>
}
SMqHbOneTopicBatchRsp
;
static
FORCE_INLINE
int
taosEncodeSMqHbOneTopicBatchRsp
(
void
**
buf
,
const
SMqHbOneTopicBatchRsp
*
pBatchRsp
)
{
int
tlen
=
0
;
static
FORCE_INLINE
int
32_t
taosEncodeSMqHbOneTopicBatchRsp
(
void
**
buf
,
const
SMqHbOneTopicBatchRsp
*
pBatchRsp
)
{
int
32_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<SMqHbOneTopicBatchRsp>
}
SMqHbBatchRsp
;
static
FORCE_INLINE
int
taosEncodeSMqHbBatchRsp
(
void
**
buf
,
const
SMqHbBatchRsp
*
pBatchRsp
)
{
int
tlen
=
0
;
static
FORCE_INLINE
int
32_t
taosEncodeSMqHbBatchRsp
(
void
**
buf
,
const
SMqHbBatchRsp
*
pBatchRsp
)
{
int
32_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
int
32_t
taosEncodeSMqVgInfo
(
void
**
buf
,
const
SMqHbVgInfo
*
pVgInfo
)
{
int
32_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
int
32_t
taosEncodeSMqHbTopicInfoMsg
(
void
**
buf
,
const
SMqHbTopicInfo
*
pTopicInfo
)
{
int
32_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<SMqHbTopicInfo>
}
SMqHbMsg
;
static
FORCE_INLINE
int
taosEncodeSMqMsg
(
void
**
buf
,
const
SMqHbMsg
*
pMsg
)
{
int
tlen
=
0
;
static
FORCE_INLINE
int
32_t
taosEncodeSMqMsg
(
void
**
buf
,
const
SMqHbMsg
*
pMsg
)
{
int
32_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
(
int
32_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
(
int
32_t
i
=
0
;
i
<
sz
;
i
++
)
{
SMqHbTopicInfo
topicInfo
;
buf
=
taosDecodeSMqHbTopicInfoMsg
(
buf
,
&
topicInfo
);
taosArrayPush
(
pMsg
->
pTopics
,
&
topicInfo
);
...
...
include/common/tmsgdef.h
浏览文件 @
5101c057
...
...
@@ -47,7 +47,7 @@ enum {
#define TD_NEW_MSG_SEG(TYPE) TYPE##_NUM,
#define TD_DEF_MSG_TYPE(TYPE, MSG, REQ, RSP)
int
tMsgDict
[]
=
{
int
32_t
tMsgDict
[]
=
{
#elif defined(TD_MSG_SEG_CODE_)
...
...
include/common/tname.h
浏览文件 @
5101c057
...
...
@@ -13,26 +13,25 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#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_
include/common/trequest.h
浏览文件 @
5101c057
...
...
@@ -13,8 +13,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _TD_
T
REQUEST_H_
#define _TD_
T
REQUEST_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
;
int
32_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
include/common/trow.h
浏览文件 @
5101c057
...
...
@@ -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.
// (int
32_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
,
in
t
maxPoints
);
int
32_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
int
32_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
=
*
(
in
t
*
)
arg1
;
static
int
32_t
tdCompareColId
(
const
void
*
arg1
,
const
void
*
arg2
)
{
int
32_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
,
int
32_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
,
int
32_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
);
int
32_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
);
int
32_t
tRowReaderRead
(
STSRowReader
*
pRowReader
,
col_id_t
cid
,
void
*
target
,
uint64_t
size
);
// STSRowBatchIter
#define tRowBatchIterInit(pRB) \
...
...
include/common/tschema.h
浏览文件 @
5101c057
...
...
@@ -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);
int
32_t
tSchemaBuilderPutColumn(char *cname, bool sma, uint8_t type, col_id_t cid, uint32_t bytes, char *comment);
#endif
...
...
include/common/ttime.h
浏览文件 @
5101c057
...
...
@@ -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_*/
include/common/ttokendef.h
浏览文件 @
5101c057
...
...
@@ -13,284 +13,282 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#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_*/
include/common/ttszip.h
浏览文件 @
5101c057
...
...
@@ -13,17 +13,18 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#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_
include/common/ttypes.h
浏览文件 @
5101c057
#ifndef TDENGINE_TTYPE_H
#define TDENGINE_TTYPE_H
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* 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 <http://www.gnu.org/licenses/>.
*/
#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
,
in
t
bufferSize
);
int
(
*
decompFunc
)(
const
char
*
const
input
,
int
compressedSize
,
const
in
t
nelements
,
char
*
const
output
,
int
outputSize
,
char
algorithm
,
char
*
const
buffer
,
in
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
);
int
32_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
);
int
32_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_
include/common/tvariant.h
浏览文件 @
5101c057
...
...
@@ -13,34 +13,34 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#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_
source/common/src/tep.c
浏览文件 @
5101c057
/*
* Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
*
* 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 <http://www.gnu.org/licenses/>.
*/
#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
)
{
int
32_t
taosGetFqdnPortFromEp
(
const
char
*
ep
,
SEp
*
pEp
)
{
pEp
->
port
=
0
;
strcpy
(
pEp
->
fqdn
,
ep
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录