Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
6ad698c9
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6ad698c9
编写于
12月 04, 1997
作者:
T
Thomas G. Lockhart
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add some printing capability for a few more node types (CreateStmt,
IndexStmt, IndexElem, ColumnDef).
上级
02958645
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
112 addition
and
7 deletion
+112
-7
src/backend/nodes/outfuncs.c
src/backend/nodes/outfuncs.c
+112
-7
未找到文件。
src/backend/nodes/outfuncs.c
浏览文件 @
6ad698c9
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
*
*
*
*
* IDENTIFICATION
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.1
0 1997/09/08 21:44:07 momjian
Exp $
* $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.1
1 1997/12/04 23:20:32 thomas
Exp $
*
*
* NOTES
* NOTES
* Every (plan) node in POSTGRES has an associated "out" routine which
* Every (plan) node in POSTGRES has an associated "out" routine which
...
@@ -67,6 +67,70 @@ _outIntList(StringInfo str, List *list)
...
@@ -67,6 +67,70 @@ _outIntList(StringInfo str, List *list)
appendStringInfo
(
str
,
")"
);
appendStringInfo
(
str
,
")"
);
}
}
static
void
_outCreateStmt
(
StringInfo
str
,
CreateStmt
*
node
)
{
char
buf
[
500
];
sprintf
(
buf
,
"CREATE"
);
appendStringInfo
(
str
,
buf
);
sprintf
(
buf
,
" :relname %s"
,
node
->
relname
);
appendStringInfo
(
str
,
buf
);
appendStringInfo
(
str
,
" :columns"
);
_outNode
(
str
,
node
->
tableElts
);
}
/* _outCreateStmt() */
static
void
_outIndexStmt
(
StringInfo
str
,
IndexStmt
*
node
)
{
char
buf
[
500
];
sprintf
(
buf
,
"INDEX"
);
appendStringInfo
(
str
,
buf
);
sprintf
(
buf
,
" :idxname %s"
,
node
->
idxname
);
appendStringInfo
(
str
,
buf
);
sprintf
(
buf
,
" :relname %s"
,
node
->
relname
);
appendStringInfo
(
str
,
buf
);
sprintf
(
buf
,
" :method %s"
,
node
->
accessMethod
);
appendStringInfo
(
str
,
buf
);
sprintf
(
buf
,
" :unique %s"
,
(
node
->
unique
?
"y"
:
"n"
));
appendStringInfo
(
str
,
buf
);
appendStringInfo
(
str
,
" :columns"
);
_outNode
(
str
,
node
->
indexParams
);
}
/* _outIndexStmt() */
static
void
_outColumnDef
(
StringInfo
str
,
ColumnDef
*
node
)
{
char
buf
[
500
];
sprintf
(
buf
,
"COLUMNDEF"
);
appendStringInfo
(
str
,
buf
);
sprintf
(
buf
,
" :colname %s"
,
node
->
colname
);
appendStringInfo
(
str
,
buf
);
appendStringInfo
(
str
,
" :typename"
);
_outNode
(
str
,
node
->
typename
);
}
/* _outColumnDef() */
static
void
_outIndexElem
(
StringInfo
str
,
IndexElem
*
node
)
{
char
buf
[
500
];
sprintf
(
buf
,
"INDEXELEM"
);
appendStringInfo
(
str
,
buf
);
sprintf
(
buf
,
" :name %s"
,
node
->
name
);
appendStringInfo
(
str
,
buf
);
sprintf
(
buf
,
" :class %s"
,
node
->
class
);
appendStringInfo
(
str
,
buf
);
appendStringInfo
(
str
,
" :tname"
);
_outNode
(
str
,
node
->
tname
);
}
/* _outIndexElem() */
static
void
static
void
_outQuery
(
StringInfo
str
,
Query
*
node
)
_outQuery
(
StringInfo
str
,
Query
*
node
)
{
{
...
@@ -77,14 +141,41 @@ _outQuery(StringInfo str, Query *node)
...
@@ -77,14 +141,41 @@ _outQuery(StringInfo str, Query *node)
sprintf
(
buf
,
" :command %d"
,
node
->
commandType
);
sprintf
(
buf
,
" :command %d"
,
node
->
commandType
);
appendStringInfo
(
str
,
buf
);
appendStringInfo
(
str
,
buf
);
if
(
node
->
utilityStmt
&&
if
(
node
->
utilityStmt
)
nodeTag
(
node
->
utilityStmt
)
==
T_NotifyStmt
)
{
sprintf
(
buf
,
" :utility %s"
,
switch
(
nodeTag
(
node
->
utilityStmt
))
((
NotifyStmt
*
)
(
node
->
utilityStmt
))
->
relname
);
{
case
T_CreateStmt
:
sprintf
(
buf
,
" :create %s"
,
((
CreateStmt
*
)
(
node
->
utilityStmt
))
->
relname
);
appendStringInfo
(
str
,
buf
);
_outNode
(
str
,
node
->
utilityStmt
);
break
;
case
T_IndexStmt
:
sprintf
(
buf
,
" :index %s on %s"
,
((
IndexStmt
*
)
(
node
->
utilityStmt
))
->
idxname
,
((
IndexStmt
*
)
(
node
->
utilityStmt
))
->
relname
);
appendStringInfo
(
str
,
buf
);
_outNode
(
str
,
node
->
utilityStmt
);
break
;
case
T_NotifyStmt
:
sprintf
(
buf
,
" :utility %s"
,
((
NotifyStmt
*
)
(
node
->
utilityStmt
))
->
relname
);
appendStringInfo
(
str
,
buf
);
break
;
default:
sprintf
(
buf
,
" :utility ?"
);
appendStringInfo
(
str
,
buf
);
}
}
else
else
{
/* use "" to designate */
/* use "" to designate */
sprintf
(
buf
,
" :utility
\"\"
"
);
appendStringInfo
(
str
,
" :utility
\"\"
"
);
appendStringInfo
(
str
,
buf
);
}
sprintf
(
buf
,
" :resrel %d"
,
node
->
resultRelation
);
sprintf
(
buf
,
" :resrel %d"
,
node
->
resultRelation
);
appendStringInfo
(
str
,
buf
);
appendStringInfo
(
str
,
buf
);
...
@@ -1527,6 +1618,20 @@ _outNode(StringInfo str, void *obj)
...
@@ -1527,6 +1618,20 @@ _outNode(StringInfo str, void *obj)
appendStringInfo
(
str
,
"{"
);
appendStringInfo
(
str
,
"{"
);
switch
(
nodeTag
(
obj
))
switch
(
nodeTag
(
obj
))
{
{
case
T_CreateStmt
:
_outCreateStmt
(
str
,
obj
);
break
;
case
T_IndexStmt
:
_outIndexStmt
(
str
,
obj
);
break
;
case
T_ColumnDef
:
_outColumnDef
(
str
,
obj
);
break
;
case
T_IndexElem
:
_outIndexElem
(
str
,
obj
);
break
;
case
T_Query
:
case
T_Query
:
_outQuery
(
str
,
obj
);
_outQuery
(
str
,
obj
);
break
;
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录