Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jobily
TDengine
提交
dcbef83d
T
TDengine
项目概览
jobily
/
TDengine
9 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dcbef83d
编写于
8月 15, 2023
作者:
W
wangjiaming0909
1
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: support column comment
上级
0fc4546c
变更
10
展开全部
隐藏空白更改
内联
并排
Showing
10 changed file
with
2464 addition
and
2435 deletion
+2464
-2435
include/common/tmsg.h
include/common/tmsg.h
+2
-0
include/common/ttokendef.h
include/common/ttokendef.h
+118
-118
include/libs/nodes/cmdnodes.h
include/libs/nodes/cmdnodes.h
+1
-1
include/util/tdef.h
include/util/tdef.h
+1
-0
source/common/src/tmsg.c
source/common/src/tmsg.c
+4
-0
source/dnode/mnode/impl/src/mndStb.c
source/dnode/mnode/impl/src/mndStb.c
+2
-0
source/libs/parser/inc/sql.y
source/libs/parser/inc/sql.y
+1
-1
source/libs/parser/src/parTranslater.c
source/libs/parser/src/parTranslater.c
+2
-0
source/libs/parser/src/sql.c
source/libs/parser/src/sql.c
+2320
-2315
tests/system-test/0-others/show.py
tests/system-test/0-others/show.py
+13
-0
未找到文件。
include/common/tmsg.h
浏览文件 @
dcbef83d
...
...
@@ -231,6 +231,7 @@ typedef struct SField {
uint8_t
type
;
int8_t
flags
;
int32_t
bytes
;
char
comment
[
TSDB_COL_COMMENT_LEN
];
}
SField
;
typedef
struct
SRetention
{
...
...
@@ -309,6 +310,7 @@ struct SSchema {
col_id_t
colId
;
int32_t
bytes
;
char
name
[
TSDB_COL_NAME_LEN
];
char
comment
[
TSDB_COL_COMMENT_LEN
];
};
struct
SSchema2
{
...
...
include/common/ttokendef.h
浏览文件 @
dcbef83d
...
...
@@ -16,105 +16,105 @@
#ifndef _TD_COMMON_TOKEN_H_
#define _TD_COMMON_TOKEN_H_
#define TK_OR
1
#define TK_AND
2
#define TK_UNION
3
#define TK_ALL
4
#define TK_MINUS
5
#define TK_EXCEPT
6
#define TK_INTERSECT
7
#define TK_NK_BITAND
8
#define TK_NK_BITOR
9
#define TK_NK_LSHIFT
10
#define TK_NK_RSHIFT
11
#define TK_NK_PLUS
12
#define TK_NK_MINUS
13
#define TK_NK_STAR
14
#define TK_NK_SLASH
15
#define TK_NK_REM
16
#define TK_NK_CONCAT
17
#define TK_CREATE
18
#define TK_ACCOUNT
19
#define TK_NK_ID
20
#define TK_PASS
21
#define TK_NK_STRING
22
#define TK_ALTER
23
#define TK_PPS
24
#define TK_TSERIES
25
#define TK_STORAGE
26
#define TK_STREAMS
27
#define TK_QTIME
28
#define TK_DBS
29
#define TK_USERS
30
#define TK_CONNS
31
#define TK_STATE
32
#define TK_USER
33
#define TK_ENABLE
34
#define TK_NK_INTEGER
35
#define TK_SYSINFO
36
#define TK_DROP
37
#define TK_GRANT
38
#define TK_ON
39
#define TK_TO
40
#define TK_REVOKE
41
#define TK_FROM
42
#define TK_SUBSCRIBE
43
#define TK_NK_COMMA
44
#define TK_READ
45
#define TK_WRITE
46
#define TK_NK_DOT
47
#define TK_WITH
48
#define TK_DNODE
49
#define TK_PORT
50
#define TK_DNODES
51
#define TK_RESTORE
52
#define TK_NK_IPTOKEN
53
#define TK_FORCE
54
#define TK_UNSAFE
55
#define TK_LOCAL
56
#define TK_QNODE
57
#define TK_BNODE
58
#define TK_SNODE
59
#define TK_MNODE
60
#define TK_VNODE
61
#define TK_DATABASE
62
#define TK_USE
63
#define TK_FLUSH
64
#define TK_TRIM
65
#define TK_COMPACT
66
#define TK_IF
67
#define TK_NOT
68
#define TK_EXISTS
69
#define TK_BUFFER
70
#define TK_CACHEMODEL
71
#define TK_CACHESIZE
72
#define TK_COMP
73
#define TK_DURATION
74
#define TK_NK_VARIABLE
75
#define TK_MAXROWS
76
#define TK_MINROWS
77
#define TK_KEEP
78
#define TK_PAGES
79
#define TK_PAGESIZE
80
#define TK_TSDB_PAGESIZE
81
#define TK_PRECISION
82
#define TK_REPLICA
83
#define TK_VGROUPS
84
#define TK_SINGLE_STABLE
85
#define TK_RETENTIONS
86
#define TK_SCHEMALESS
87
#define TK_WAL_LEVEL
88
#define TK_WAL_FSYNC_PERIOD
89
#define TK_WAL_RETENTION_PERIOD
90
#define TK_WAL_RETENTION_SIZE
91
#define TK_WAL_ROLL_PERIOD
92
#define TK_WAL_SEGMENT_SIZE
93
#define TK_STT_TRIGGER
94
#define TK_TABLE_PREFIX
95
#define TK_TABLE_SUFFIX
96
#define TK_NK_COLON
97
#define TK_MAX_SPEED
98
#define TK_START
99
#define TK_OR 1
#define TK_AND 2
#define TK_UNION 3
#define TK_ALL 4
#define TK_MINUS 5
#define TK_EXCEPT 6
#define TK_INTERSECT 7
#define TK_NK_BITAND 8
#define TK_NK_BITOR 9
#define TK_NK_LSHIFT 10
#define TK_NK_RSHIFT 11
#define TK_NK_PLUS 12
#define TK_NK_MINUS 13
#define TK_NK_STAR 14
#define TK_NK_SLASH 15
#define TK_NK_REM 16
#define TK_NK_CONCAT 17
#define TK_CREATE 18
#define TK_ACCOUNT 19
#define TK_NK_ID 20
#define TK_PASS 21
#define TK_NK_STRING 22
#define TK_ALTER 23
#define TK_PPS 24
#define TK_TSERIES 25
#define TK_STORAGE 26
#define TK_STREAMS 27
#define TK_QTIME 28
#define TK_DBS 29
#define TK_USERS 30
#define TK_CONNS 31
#define TK_STATE 32
#define TK_USER 33
#define TK_ENABLE 34
#define TK_NK_INTEGER 35
#define TK_SYSINFO 36
#define TK_DROP 37
#define TK_GRANT 38
#define TK_ON 39
#define TK_TO 40
#define TK_REVOKE 41
#define TK_FROM 42
#define TK_SUBSCRIBE 43
#define TK_NK_COMMA 44
#define TK_READ 45
#define TK_WRITE 46
#define TK_NK_DOT 47
#define TK_WITH 48
#define TK_DNODE 49
#define TK_PORT 50
#define TK_DNODES 51
#define TK_RESTORE 52
#define TK_NK_IPTOKEN 53
#define TK_FORCE 54
#define TK_UNSAFE 55
#define TK_LOCAL 56
#define TK_QNODE 57
#define TK_BNODE 58
#define TK_SNODE 59
#define TK_MNODE 60
#define TK_VNODE 61
#define TK_DATABASE 62
#define TK_USE 63
#define TK_FLUSH 64
#define TK_TRIM 65
#define TK_COMPACT 66
#define TK_IF 67
#define TK_NOT 68
#define TK_EXISTS 69
#define TK_BUFFER 70
#define TK_CACHEMODEL 71
#define TK_CACHESIZE 72
#define TK_COMP 73
#define TK_DURATION 74
#define TK_NK_VARIABLE 75
#define TK_MAXROWS 76
#define TK_MINROWS 77
#define TK_KEEP 78
#define TK_PAGES 79
#define TK_PAGESIZE 80
#define TK_TSDB_PAGESIZE 81
#define TK_PRECISION 82
#define TK_REPLICA 83
#define TK_VGROUPS 84
#define TK_SINGLE_STABLE 85
#define TK_RETENTIONS 86
#define TK_SCHEMALESS 87
#define TK_WAL_LEVEL 88
#define TK_WAL_FSYNC_PERIOD 89
#define TK_WAL_RETENTION_PERIOD 90
#define TK_WAL_RETENTION_SIZE 91
#define TK_WAL_ROLL_PERIOD 92
#define TK_WAL_SEGMENT_SIZE 93
#define TK_STT_TRIGGER 94
#define TK_TABLE_PREFIX 95
#define TK_TABLE_SUFFIX 96
#define TK_NK_COLON 97
#define TK_MAX_SPEED 98
#define TK_START 99
#define TK_TIMESTAMP 100
#define TK_END 101
#define TK_TABLE 102
...
...
@@ -130,25 +130,25 @@
#define TK_NK_EQ 112
#define TK_USING 113
#define TK_TAGS 114
#define TK_
BOOL
115
#define TK_
TINYINT
116
#define TK_
SMALLINT
117
#define TK_
INT
118
#define TK_INT
EGER
119
#define TK_
BIGINT
120
#define TK_
FLOAT
121
#define TK_
DOUBLE
122
#define TK_
BINARY
123
#define TK_
NCHAR
124
#define TK_
UNSIGNED
125
#define TK_
JSON
126
#define TK_
VARCHAR
127
#define TK_
MEDIUMBLOB
128
#define TK_
BLOB
129
#define TK_
VARBINARY
130
#define TK_
GEOMETRY
131
#define TK_
DECIMAL
132
#define TK_
COMMENT
133
#define TK_
COMMENT
115
#define TK_
BOOL
116
#define TK_
TINYINT
117
#define TK_
SMALLINT
118
#define TK_INT
119
#define TK_
INTEGER
120
#define TK_
BIGINT
121
#define TK_
FLOAT
122
#define TK_
DOUBLE
123
#define TK_
BINARY
124
#define TK_
NCHAR
125
#define TK_
UNSIGNED
126
#define TK_
JSON
127
#define TK_
VARCHAR
128
#define TK_
MEDIUMBLOB
129
#define TK_
BLOB
130
#define TK_
VARBINARY
131
#define TK_
GEOMETRY
132
#define TK_
DECIMAL
133
#define TK_MAX_DELAY 134
#define TK_WATERMARK 135
#define TK_ROLLUP 136
...
...
include/libs/nodes/cmdnodes.h
浏览文件 @
dcbef83d
...
...
@@ -155,7 +155,7 @@ typedef struct SColumnDefNode {
ENodeType
type
;
char
colName
[
TSDB_COL_NAME_LEN
];
SDataType
dataType
;
char
comments
[
TSDB_
TB
_COMMENT_LEN
];
char
comments
[
TSDB_
COL
_COMMENT_LEN
];
bool
sma
;
}
SColumnDefNode
;
...
...
include/util/tdef.h
浏览文件 @
dcbef83d
...
...
@@ -230,6 +230,7 @@ typedef enum ELogicConditionType {
#define TSDB_APP_NAME_LEN TSDB_UNI_LEN
#define TSDB_TB_COMMENT_LEN 1025
#define TSDB_COL_COMMENT_LEN 1025
#define TSDB_QUERY_ID_LEN 26
#define TSDB_TRANS_OPER_LEN 16
...
...
source/common/src/tmsg.c
浏览文件 @
dcbef83d
...
...
@@ -534,6 +534,7 @@ int32_t tSerializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pReq
if
(
tEncodeI8
(
&
encoder
,
pField
->
flags
)
<
0
)
return
-
1
;
if
(
tEncodeI32
(
&
encoder
,
pField
->
bytes
)
<
0
)
return
-
1
;
if
(
tEncodeCStr
(
&
encoder
,
pField
->
name
)
<
0
)
return
-
1
;
if
(
tEncodeCStr
(
&
encoder
,
pField
->
comment
)
<
0
)
return
-
1
;
}
for
(
int32_t
i
=
0
;
i
<
pReq
->
numOfTags
;
++
i
)
{
...
...
@@ -542,6 +543,7 @@ int32_t tSerializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pReq
if
(
tEncodeI8
(
&
encoder
,
pField
->
flags
)
<
0
)
return
-
1
;
if
(
tEncodeI32
(
&
encoder
,
pField
->
bytes
)
<
0
)
return
-
1
;
if
(
tEncodeCStr
(
&
encoder
,
pField
->
name
)
<
0
)
return
-
1
;
if
(
tEncodeCStr
(
&
encoder
,
pField
->
comment
)
<
0
)
return
-
1
;
}
for
(
int32_t
i
=
0
;
i
<
pReq
->
numOfFuncs
;
++
i
)
{
...
...
@@ -608,6 +610,7 @@ int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pR
if
(
tDecodeI8
(
&
decoder
,
&
field
.
flags
)
<
0
)
return
-
1
;
if
(
tDecodeI32
(
&
decoder
,
&
field
.
bytes
)
<
0
)
return
-
1
;
if
(
tDecodeCStrTo
(
&
decoder
,
field
.
name
)
<
0
)
return
-
1
;
if
(
tDecodeCStrTo
(
&
decoder
,
field
.
comment
)
<
0
)
return
-
1
;
if
(
taosArrayPush
(
pReq
->
pColumns
,
&
field
)
==
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
...
...
@@ -620,6 +623,7 @@ int32_t tDeserializeSMCreateStbReq(void *buf, int32_t bufLen, SMCreateStbReq *pR
if
(
tDecodeI8
(
&
decoder
,
&
field
.
flags
)
<
0
)
return
-
1
;
if
(
tDecodeI32
(
&
decoder
,
&
field
.
bytes
)
<
0
)
return
-
1
;
if
(
tDecodeCStrTo
(
&
decoder
,
field
.
name
)
<
0
)
return
-
1
;
if
(
tDecodeCStrTo
(
&
decoder
,
field
.
comment
)
<
0
)
return
-
1
;
if
(
taosArrayPush
(
pReq
->
pTags
,
&
field
)
==
NULL
)
{
terrno
=
TSDB_CODE_OUT_OF_MEMORY
;
return
-
1
;
...
...
source/dnode/mnode/impl/src/mndStb.c
浏览文件 @
dcbef83d
...
...
@@ -834,6 +834,7 @@ int32_t mndBuildStbFromReq(SMnode *pMnode, SStbObj *pDst, SMCreateStbReq *pCreat
pSchema
->
bytes
=
pField
->
bytes
;
pSchema
->
flags
=
pField
->
flags
;
memcpy
(
pSchema
->
name
,
pField
->
name
,
TSDB_COL_NAME_LEN
);
memcpy
(
pSchema
->
comment
,
pField
->
comment
,
TSDB_COL_COMMENT_LEN
);
pSchema
->
colId
=
pDst
->
nextColId
;
pDst
->
nextColId
++
;
}
...
...
@@ -847,6 +848,7 @@ int32_t mndBuildStbFromReq(SMnode *pMnode, SStbObj *pDst, SMCreateStbReq *pCreat
SSCHMEA_SET_IDX_ON
(
pSchema
);
}
memcpy
(
pSchema
->
name
,
pField
->
name
,
TSDB_COL_NAME_LEN
);
memcpy
(
pSchema
->
comment
,
pField
->
comment
,
TSDB_COL_COMMENT_LEN
);
pSchema
->
colId
=
pDst
->
nextColId
;
pDst
->
nextColId
++
;
}
...
...
source/libs/parser/inc/sql.y
浏览文件 @
dcbef83d
...
...
@@ -358,7 +358,7 @@ column_def_list(A) ::= column_def(B).
column_def_list(A) ::= column_def_list(B) NK_COMMA column_def(C). { A = addNodeToList(pCxt, B, C); }
column_def(A) ::= column_name(B) type_name(C). { A = createColumnDefNode(pCxt, &B, C, NULL); }
//
column_def(A) ::= column_name(B) type_name(C) COMMENT NK_STRING(D). { A = createColumnDefNode(pCxt, &B, C, &D); }
column_def(A) ::= column_name(B) type_name(C) COMMENT NK_STRING(D). { A = createColumnDefNode(pCxt, &B, C, &D); }
%type type_name { SDataType }
%destructor type_name { }
...
...
source/libs/parser/src/parTranslater.c
浏览文件 @
dcbef83d
...
...
@@ -4688,6 +4688,7 @@ static int32_t columnDefNodeToField(SNodeList* pList, SArray** pArray) {
SColumnDefNode
*
pCol
=
(
SColumnDefNode
*
)
pNode
;
SField
field
=
{.
type
=
pCol
->
dataType
.
type
,
.
bytes
=
calcTypeBytes
(
pCol
->
dataType
)};
strcpy
(
field
.
name
,
pCol
->
colName
);
strcpy
(
field
.
comment
,
pCol
->
comments
);
if
(
pCol
->
sma
)
{
field
.
flags
|=
COL_SMA_ON
;
}
...
...
@@ -5035,6 +5036,7 @@ static void toSchema(const SColumnDefNode* pCol, col_id_t colId, SSchema* pSchem
pSchema
->
bytes
=
calcTypeBytes
(
pCol
->
dataType
);
pSchema
->
flags
=
flags
;
strcpy
(
pSchema
->
name
,
pCol
->
colName
);
strcpy
(
pSchema
->
comment
,
pCol
->
comments
);
}
typedef
struct
SSampleAstInfo
{
...
...
source/libs/parser/src/sql.c
浏览文件 @
dcbef83d
此差异已折叠。
点击以展开。
tests/system-test/0-others/show.py
浏览文件 @
dcbef83d
...
...
@@ -210,6 +210,18 @@ class TDTestCase:
licences_info
=
tdSql
.
queryResult
tdSql
.
checkEqual
(
grants_info
,
licences_info
)
def
show_create_table_with_col_comment
(
self
):
tdSql
.
execute
(
"create database comment_test_db"
)
tdSql
.
execute
(
"use comment_test_db"
)
tdSql
.
execute
(
"create table normal_table(ts timestamp, c2 int comment 'c2 comment')"
)
tdSql
.
execute
(
"create stable super_table(ts timestamp comment 'ts', c2 int comment 'c2 comment') tags(tg int comment 'tg comment')"
)
tdSql
.
query
(
'show create table normal_table'
)
create_sql
=
"create table `normal_table` (`ts` timestamp, `c2` int)"
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
1
].
lower
(),
create_sql
)
tdSql
.
query
(
'show create table super_table'
)
create_sql
=
"create stable `super_table` (`ts` timestamp, `c2` int) tags (`tg` int)"
tdSql
.
checkEqual
(
tdSql
.
queryResult
[
0
][
1
].
lower
(),
create_sql
)
def
run
(
self
):
self
.
check_gitinfo
()
self
.
show_base
()
...
...
@@ -218,6 +230,7 @@ class TDTestCase:
self
.
show_create_sql
()
self
.
show_create_sysdb_sql
()
self
.
show_create_systb_sql
()
self
.
show_create_table_with_col_comment
()
def
stop
(
self
):
tdSql
.
close
()
...
...
jobily
@jobily
mentioned in commit
366a9cc0
·
9月 06, 2023
mentioned in commit
366a9cc0
mentioned in commit 366a9cc0090588b715cba5c40373827da5d6fb0c
开关提交列表
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录