Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
慢慢CG
TDengine
提交
186662aa
T
TDengine
项目概览
慢慢CG
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
186662aa
编写于
5月 10, 2021
作者:
H
Haojun Liao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[td-225]
上级
8880e515
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
10 deletion
+11
-10
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+10
-8
src/query/inc/qSqlparser.h
src/query/inc/qSqlparser.h
+1
-2
未找到文件。
src/client/src/tscSQLParser.c
浏览文件 @
186662aa
...
@@ -7189,16 +7189,11 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
...
@@ -7189,16 +7189,11 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
if
(
pSqlNode
->
from
->
type
==
SQL_NODE_FROM_SUBQUERY
)
{
if
(
pSqlNode
->
from
->
type
==
SQL_NODE_FROM_SUBQUERY
)
{
// parse the subquery in the first place
// parse the subquery in the first place
S
Array
*
list
=
taosArrayGetP
(
pSqlNode
->
from
->
list
,
0
);
S
RelElementPair
*
sub
=
taosArrayGet
(
pSqlNode
->
from
->
list
,
0
);
SSqlNode
*
p
=
taosArrayGetP
(
list
,
0
);
SSqlNode
*
p
=
taosArrayGetP
(
sub
->
pSubquery
,
0
);
SQueryInfo
*
pQueryInfo
=
tscGetQueryInfo
(
&
pSql
->
cmd
,
0
);
code
=
validateSqlNode
(
pSql
,
p
,
pQueryInfo
);
code
=
validateSqlNode
(
pSql
,
p
,
pQueryInfo
);
if
(
code
==
TSDB_CODE_TSC_ACTION_IN_PROGRESS
)
{
if
(
code
==
TSDB_CODE_TSC_ACTION_IN_PROGRESS
||
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
}
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
return
code
;
return
code
;
}
}
...
@@ -7211,6 +7206,13 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
...
@@ -7211,6 +7206,13 @@ int32_t validateSqlNode(SSqlObj* pSql, SSqlNode* pSqlNode, SQueryInfo* pQueryInf
STableMetaInfo
*
pTableMetaInfo1
=
calloc
(
1
,
sizeof
(
STableMetaInfo
));
STableMetaInfo
*
pTableMetaInfo1
=
calloc
(
1
,
sizeof
(
STableMetaInfo
));
pTableMetaInfo1
->
pTableMeta
=
pTableMeta
;
pTableMetaInfo1
->
pTableMeta
=
pTableMeta
;
if
(
sub
->
aliasName
.
n
>
0
)
{
if
(
sub
->
aliasName
.
n
>
TSDB_TABLE_FNAME_LEN
)
{
return
invalidSqlErrMsg
(
tscGetErrorMsgPayload
(
pCmd
),
"subquery alias name too long"
);
}
strncpy
(
pTableMetaInfo1
->
aliasName
,
sub
->
aliasName
.
z
,
sub
->
aliasName
.
n
);
}
current
->
pTableMetaInfo
=
calloc
(
1
,
POINTER_BYTES
);
current
->
pTableMetaInfo
=
calloc
(
1
,
POINTER_BYTES
);
current
->
pTableMetaInfo
[
0
]
=
pTableMetaInfo1
;
current
->
pTableMetaInfo
[
0
]
=
pTableMetaInfo1
;
current
->
numOfTables
=
1
;
current
->
numOfTables
=
1
;
...
...
src/query/inc/qSqlparser.h
浏览文件 @
186662aa
...
@@ -111,7 +111,6 @@ typedef struct SRelElementPair {
...
@@ -111,7 +111,6 @@ typedef struct SRelElementPair {
union
{
union
{
SStrToken
tableName
;
SStrToken
tableName
;
SArray
*
pSubquery
;
SArray
*
pSubquery
;
//SSqlNode *pSubquery;
};
};
SStrToken
aliasName
;
SStrToken
aliasName
;
...
@@ -119,7 +118,7 @@ typedef struct SRelElementPair {
...
@@ -119,7 +118,7 @@ typedef struct SRelElementPair {
typedef
struct
SRelationInfo
{
typedef
struct
SRelationInfo
{
int32_t
type
;
// nested query|table name list
int32_t
type
;
// nested query|table name list
SArray
*
list
;
// SArray<SRelElementPair>
|SArray<SSqlNode*>
SArray
*
list
;
// SArray<SRelElementPair>
}
SRelationInfo
;
}
SRelationInfo
;
typedef
struct
SCreatedTableInfo
{
typedef
struct
SCreatedTableInfo
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录