Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
bf5586b4
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看板
提交
bf5586b4
编写于
2月 11, 2020
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more
上级
e8d96d43
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
44 addition
and
28 deletion
+44
-28
src/vnode/common/inc/schema.h
src/vnode/common/inc/schema.h
+42
-28
src/vnode/common/inc/type.h
src/vnode/common/inc/type.h
+2
-0
未找到文件。
src/vnode/common/inc/schema.h
浏览文件 @
bf5586b4
...
...
@@ -3,40 +3,54 @@
#include <stdint.h>
#include "tstring.h"
#include "type.h"
typedef
struct
_scolumn
{
tstring_t
colName
;
// column name
td_datatype_t
type
;
// data type
int32_t
bytes
;
// number of bytes
// Column definition
// TODO: if we need to align the structure
typedef
struct
{
td_datatype_t
type
;
// Column type
int32_t
colId
;
// column ID
int32_t
bytes
;
// column bytes
char
*
colName
;
// the column name
}
SColumn
;
typedef
struct
SSchema
{
int32_t
numOfCols
;
// Schema definition
typedef
struct
{
int32_t
version
;
// schema version, it is used to change the schema
int32_t
numOfCols
;
int32_t
numOfTags
;
int32_t
colIdCounter
;
SColumn
*
columns
;
}
SSchema
;
// Column with version
typedef
struct
{
tstring_t
colName
;
td_datatype_t
type
;
int32_t
colId
;
int32_t
bytes
;
}
SVColumn
;
// Schema with version
typedef
struct
{
int32_t
version
;
// Schema with version
int32_t
numOfCols
;
int32_t
numOfTags
;
SVColumn
*
columns
;
}
SVSchema
;
int32_t
tdAddColumnToSchema
(
tstring_t
pSchema
,
SColumn
col
);
td_datatype_t
tdGetTypeOfCol
(
SSchema
*
pSchema
,
int32_t
col
);
int32_t
tdGetLengthOfCol
(
SSchema
*
pSchema
,
int32_t
col
);
/* Inline schema definition
* +---------+---------+---------+-----+---------+-----------+-----+-----------+
* | int32_t | | | | | | | |
* +---------+---------+---------+-----+---------+-----------+-----+-----------+
* | len | SSchema | SColumn | ... | SColumn | col1_name | ... | colN_name |
* +---------+---------+---------+-----+---------+-----------+-----+-----------+
*/
typedef
char
*
SISchema
// ---- operation on SColumn
#define TD_COLUMN_TYPE(pCol) ((pCol)->type)
#define TD_COLUMN_ID(pCol) ((pCol)->colId)
#define TD_COLUMN_BYTES(pCol) ((pCol)->bytes)
#define TD_COLUMN_NAME(pCol) ((pCol)->colName)
// ---- operation on SSchema
#define TD_SCHEMA_VERSION(pSchema) ((pSchema)->version)
#define TD_SCHEMA_NCOLS(pSchema) ((pSchema)->numOfCols)
#define TD_SCHEMA_NTAGS(pSchema) ((pSchema)->numOfTags)
#define TD_SCHEMA_TOTAL_COLS(pSchema) (TD_SCHEMA_NCOLS(pSchema) + TD_SCHEMA_NTAGS(pSchema))
#define TD_SCHEMA_NEXT_COLID(pSchema) ((pSchema)->colIdCounter++)
#define TD_SCHEMA_COLS(pSchema) ((pSchema)->columns)
#define TD_SCHEMA_TAGS(pSchema) (TD_SCHEMA_COLS(pSchema) + TD_SCHEMA_NCOLS(pSchema))
#define TD_SCHEMA_COLUMN_AT(pSchema, idx) TD_SCHEMA_COLS(pSchema)[idx]
#define TD_SCHEMA_TAG_AT(pSchema, idx) TD_SCHEMA_TAGS(pSchema)[idx]
// ---- operation on SISchema
#define TD_ISCHEMA_LEN(pISchema) *((int32_t *)(pISchema))
#define TD_ISCHEMA_SCHEMA(pISchema) ((SSchema *)((pISchema) + sizeof(int32_t)))
#endif // _TD_SCHEMA_H_
src/vnode/common/inc/type.h
浏览文件 @
bf5586b4
...
...
@@ -29,4 +29,6 @@ typedef enum : uint8_t {
#define TD_DATATYPE_NCHAR_NULL
#define TD_DATATYPE_BINARY_NULL
#define TD_IS_VALID_DATATYPE(type) (((type) > TD_DATA_TYPE_INVLD) && ((type) <= TD_DATATYPE_BINARY))
#endif // _TD_TYPE_H_
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录