Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
oceanbase
oceanbase
提交
11c17f83
O
oceanbase
项目概览
oceanbase
/
oceanbase
9 个月 前同步成功
通知
261
Star
6084
Fork
1301
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oceanbase
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
11c17f83
编写于
3月 24, 2022
作者:
M
Monk-Liu
提交者:
LINGuanRen
3月 24, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
:In parser_node.c, count_child and merge_child will set ret to -4013, if there wasnt enough memory.
上级
676333a3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
15 addition
and
15 deletion
+15
-15
src/sql/parser/parse_node.c
src/sql/parser/parse_node.c
+15
-15
未找到文件。
src/sql/parser/parse_node.c
浏览文件 @
11c17f83
...
...
@@ -120,16 +120,16 @@ int count_child(ParseNode* root, void* malloc_pool, int* count)
}
else
if
(
NULL
==
root
)
{
*
count
=
0
;
}
else
if
(
NULL
==
(
stack_top
=
new_link_node
(
malloc_pool
)))
{
ret
=
1
;
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR failed to malloc memory
\n
"
);
}
else
{
*
count
=
0
;
stack_top
->
val_
=
root
;
do
{
ParseNode
*
tree
=
NULL
;
if
(
NULL
==
stack_top
||
NULL
==
(
tree
=
(
ParseNode
*
)
stack_top
->
val_
))
{
ret
=
1
;
ParseNode
*
tree
=
NULL
;
if
(
NULL
==
stack_top
||
NULL
==
(
tree
=
(
ParseNode
*
)
stack_top
->
val_
))
{
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR invalid null argument
\n
"
);
}
else
{
stack_top
=
stack_top
->
next_
;
...
...
@@ -142,7 +142,7 @@ int count_child(ParseNode* root, void* malloc_pool, int* count)
// do nothing
}
else
{
if
(
NULL
==
tree
->
children_
)
{
ret
=
1
;
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR invalid null children
\n
"
);
}
ParserLinkNode
*
tmp_node
=
NULL
;
...
...
@@ -151,7 +151,7 @@ int count_child(ParseNode* root, void* malloc_pool, int* count)
if
(
NULL
==
child
)
{
// do nothing
}
else
if
(
NULL
==
(
tmp_node
=
new_link_node
(
malloc_pool
)))
{
ret
=
1
;
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR failed to allocate memory
\n
"
);
}
else
{
tmp_node
->
val_
=
child
;
...
...
@@ -171,20 +171,20 @@ int merge_child(ParseNode* node, void* malloc_pool, ParseNode* source_tree, int*
int
ret
=
0
;
ParserLinkNode
*
stack_top
=
NULL
;
if
(
OB_UNLIKELY
(
NULL
==
node
||
NULL
==
index
))
{
ret
=
1
;
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR node%p or index:%p is NULL
\n
"
,
node
,
index
);
}
else
if
(
NULL
==
source_tree
)
{
// do nothing
}
else
if
(
NULL
==
(
stack_top
=
new_link_node
(
malloc_pool
)))
{
ret
=
1
;
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR failed to malloc memory
\n
"
);
}
else
{
stack_top
->
val_
=
source_tree
;
do
{
ParseNode
*
tree
=
NULL
;
if
(
NULL
==
stack_top
||
NULL
==
(
tree
=
(
ParseNode
*
)
stack_top
->
val_
))
{
ret
=
1
;
ParseNode
*
tree
=
NULL
;
if
(
NULL
==
stack_top
||
NULL
==
(
tree
=
(
ParseNode
*
)
stack_top
->
val_
))
{
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR invalid null argument
\n
"
);
}
else
{
// pop stack
...
...
@@ -194,11 +194,11 @@ int merge_child(ParseNode* node, void* malloc_pool, ParseNode* source_tree, int*
// do nothing
}
else
if
(
T_LINK_NODE
!=
tree
->
type_
)
{
if
(
OB_UNLIKELY
(
*
index
<
0
||
*
index
>=
node
->
num_child_
))
{
ret
=
1
;
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR invalid index: %d, num_child:%d
\n
tree: %d"
,
*
index
,
node
->
num_child_
,
tree
->
type_
);
}
else
if
(
NULL
==
node
->
children_
)
{
ret
=
1
;
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR invalid null children pointer
\n
"
);
}
else
{
node
->
children_
[
*
index
]
=
tree
;
...
...
@@ -207,7 +207,7 @@ int merge_child(ParseNode* node, void* malloc_pool, ParseNode* source_tree, int*
}
else
if
(
tree
->
num_child_
<=
0
)
{
// do nothing
}
else
if
(
NULL
==
tree
->
children_
)
{
ret
=
1
;
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR invalid children pointer
\n
"
);
}
else
{
ParserLinkNode
*
tmp_node
=
NULL
;
...
...
@@ -215,7 +215,7 @@ int merge_child(ParseNode* node, void* malloc_pool, ParseNode* source_tree, int*
if
(
NULL
==
tree
->
children_
[
i
])
{
// do nothing
}
else
if
(
NULL
==
(
tmp_node
=
new_link_node
(
malloc_pool
)))
{
ret
=
1
;
ret
=
OB_PARSER_ERR_NO_MEMORY
;
(
void
)
fprintf
(
stderr
,
"ERROR failed to malloc memory
\n
"
);
}
else
{
// push stack
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录