Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
3a143367
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,发现更多精彩内容 >>
提交
3a143367
编写于
4月 15, 2004
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Modify COPY for() loop to use attnum as a variable name, not 'i'.
上级
6c72f44c
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
16 addition
and
15 deletion
+16
-15
src/backend/commands/copy.c
src/backend/commands/copy.c
+16
-15
未找到文件。
src/backend/commands/copy.c
浏览文件 @
3a143367
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.2
19 2004/04/06 13:21:3
3 momjian Exp $
* $PostgreSQL: pgsql/src/backend/commands/copy.c,v 1.2
20 2004/04/15 22:36:0
3 momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -1258,6 +1258,7 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
ExprState
**
constraintexprs
;
bool
hasConstraints
=
false
;
int
i
;
int
attnum
;
List
*
cur
;
Oid
in_func_oid
;
Datum
*
values
;
...
...
@@ -1317,39 +1318,39 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
defexprs
=
(
ExprState
**
)
palloc
((
num_phys_attrs
+
1
)
*
sizeof
(
ExprState
*
));
constraintexprs
=
(
ExprState
**
)
palloc0
((
num_phys_attrs
+
1
)
*
sizeof
(
ExprState
*
));
for
(
i
=
0
;
i
<
num_phys_attrs
;
i
++
)
for
(
attnum
=
1
;
attnum
<=
num_phys_attrs
;
attnum
++
)
{
/* We don't need info for dropped attributes */
if
(
attr
[
i
]
->
attisdropped
)
if
(
attr
[
attnum
-
1
]
->
attisdropped
)
continue
;
/* Fetch the input function and typelem info */
if
(
binary
)
getTypeBinaryInputInfo
(
attr
[
i
]
->
atttypid
,
&
in_func_oid
,
&
elements
[
i
]);
getTypeBinaryInputInfo
(
attr
[
attnum
-
1
]
->
atttypid
,
&
in_func_oid
,
&
elements
[
attnum
-
1
]);
else
getTypeInputInfo
(
attr
[
i
]
->
atttypid
,
&
in_func_oid
,
&
elements
[
i
]);
fmgr_info
(
in_func_oid
,
&
in_functions
[
i
]);
getTypeInputInfo
(
attr
[
attnum
-
1
]
->
atttypid
,
&
in_func_oid
,
&
elements
[
attnum
-
1
]);
fmgr_info
(
in_func_oid
,
&
in_functions
[
attnum
-
1
]);
/* Get default info if needed */
if
(
!
intMember
(
i
+
1
,
attnumlist
))
if
(
!
intMember
(
attnum
,
attnumlist
))
{
/* attribute is NOT to be copied from input */
/* use default value if one exists */
Node
*
defexpr
=
build_column_default
(
rel
,
i
+
1
);
Node
*
defexpr
=
build_column_default
(
rel
,
attnum
);
if
(
defexpr
!=
NULL
)
{
defexprs
[
num_defaults
]
=
ExecPrepareExpr
((
Expr
*
)
defexpr
,
estate
);
defmap
[
num_defaults
]
=
i
;
defmap
[
num_defaults
]
=
attnum
-
1
;
num_defaults
++
;
}
}
/* If it's a domain type, set up to check domain constraints */
if
(
get_typtype
(
attr
[
i
]
->
atttypid
)
==
'd'
)
if
(
get_typtype
(
attr
[
attnum
-
1
]
->
atttypid
)
==
'd'
)
{
Param
*
prm
;
Node
*
node
;
...
...
@@ -1365,14 +1366,14 @@ CopyFrom(Relation rel, List *attnumlist, bool binary, bool oids,
prm
=
makeNode
(
Param
);
prm
->
paramkind
=
PARAM_EXEC
;
prm
->
paramid
=
0
;
prm
->
paramtype
=
getBaseType
(
attr
[
i
]
->
atttypid
);
prm
->
paramtype
=
getBaseType
(
attr
[
attnum
-
1
]
->
atttypid
);
node
=
coerce_to_domain
((
Node
*
)
prm
,
prm
->
paramtype
,
attr
[
i
]
->
atttypid
,
attr
[
attnum
-
1
]
->
atttypid
,
COERCE_IMPLICIT_CAST
);
constraintexprs
[
i
]
=
ExecPrepareExpr
((
Expr
*
)
node
,
constraintexprs
[
attnum
-
1
]
=
ExecPrepareExpr
((
Expr
*
)
node
,
estate
);
hasConstraints
=
true
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录