Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
5ec60556
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,发现更多精彩内容 >>
提交
5ec60556
编写于
9月 17, 1997
作者:
E
Edmund Mergl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
*** empty log message ***
上级
364efd10
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
0 addition
and
261 deletion
+0
-261
src/interfaces/perl5/test.pl
src/interfaces/perl5/test.pl
+0
-261
未找到文件。
src/interfaces/perl5/test.pl
已删除
100644 → 0
浏览文件 @
364efd10
#-------------------------------------------------------
#
# $Id: test.pl,v 1.2 1997/06/02 19:42:07 mergl Exp $
#
# Copyright (c) 1997 Edmund Mergl
#
#-------------------------------------------------------
# Before `make install' is performed this script should be runnable with
# `make test'. After `make install' it should work as `perl test.pl'
######################### We start with some black magic to print on failure.
BEGIN
{
$|
=
1
;
print
"
1..49
\n
";
}
END
{
print
"
not ok 1
\n
"
unless
$loaded
;}
use
Pg
;
$loaded
=
1
;
print
"
ok 1
\n
";
######################### End of black magic.
$dbmain
=
'
template1
';
$dbname
=
'
pgperltest
';
$trace
=
'
/tmp/pgtrace.out
';
$cnt
=
2
;
$DEBUG
=
0
;
# set this to 1 for traces
$|
=
1
;
######################### the following methods will be tested
# connectdb
# db
# user
# host
# port
# finish
# status
# errorMessage
# trace
# untrace
# exec
# getline
# endcopy
# putline
# resultStatus
# ntuples
# nfields
# fname
# fnumber
# ftype
# fsize
# cmdStatus
# oidStatus
# getvalue
######################### the following methods will not be tested
# setdb
# conndefaults
# reset
# options
# tty
# getlength
# getisnull
# print
# notifies
# displayTuples
# printTuples
# lo_import
# lo_export
# lo_unlink
# lo_open
# lo_close
# lo_read
# lo_write
# lo_creat
# lo_seek
# lo_tell
######################### handles error condition
$SIG
{
PIPE
}
=
sub
{
print
"
broken pipe
\n
"
};
######################### create and connect to test database
# 2-4
$conn
=
Pg::
connectdb
("
dbname =
$dbmain
");
cmp_eq
(
PGRES_CONNECTION_OK
,
$conn
->
status
);
# might fail if $dbname doesn't exist => don't check resultStatus
$result
=
$conn
->
exec
("
DROP DATABASE
$dbname
");
$result
=
$conn
->
exec
("
CREATE DATABASE
$dbname
");
cmp_eq
(
PGRES_COMMAND_OK
,
$result
->
resultStatus
);
$conn
=
Pg::
connectdb
("
dbname =
$dbname
");
cmp_eq
(
PGRES_CONNECTION_OK
,
$conn
->
status
);
######################### debug, PQtrace
if
(
$DEBUG
)
{
open
(
TRACE
,
"
>
$trace
")
||
die
"
can not open
$trace
: $!
";
$conn
->
trace
(
TRACE
);
}
######################### check PGconn
# 5-8
$db
=
$conn
->
db
;
cmp_eq
(
$dbname
,
$db
);
$user
=
$conn
->
user
;
cmp_ne
("",
$user
);
$host
=
$conn
->
host
;
cmp_ne
("",
$host
);
$port
=
$conn
->
port
;
cmp_ne
("",
$port
);
######################### create and insert into table
# 9-20
$result
=
$conn
->
exec
("
CREATE TABLE person (id int4, name char16)
");
cmp_eq
(
PGRES_COMMAND_OK
,
$result
->
resultStatus
);
cmp_eq
("
CREATE
",
$result
->
cmdStatus
);
for
(
$i
=
1
;
$i
<=
5
;
$i
++
)
{
$result
=
$conn
->
exec
("
INSERT INTO person VALUES (
$i
, 'Edmund Mergl')
");
cmp_eq
(
PGRES_COMMAND_OK
,
$result
->
resultStatus
);
cmp_ne
(
0
,
$result
->
oidStatus
);
}
######################### copy to stdout, PQgetline
# 21-27
$result
=
$conn
->
exec
("
COPY person TO STDOUT
");
cmp_eq
(
PGRES_COPY_OUT
,
$result
->
resultStatus
);
$i
=
1
;
while
(
-
1
!=
$ret
)
{
$ret
=
$conn
->
getline
(
$string
,
256
);
last
if
$string
eq
"
\\
.
";
cmp_eq
("
$i
Edmund Mergl
",
$string
);
$i
++
;
}
cmp_eq
(
0
,
$conn
->
endcopy
);
######################### delete and copy from stdin, PQputline
# 28-33
$result
=
$conn
->
exec
("
BEGIN
");
cmp_eq
(
PGRES_COMMAND_OK
,
$result
->
resultStatus
);
$result
=
$conn
->
exec
("
DELETE FROM person
");
cmp_eq
(
PGRES_COMMAND_OK
,
$result
->
resultStatus
);
cmp_eq
("
DELETE
",
$result
->
cmdStatus
);
$result
=
$conn
->
exec
("
COPY person FROM STDIN
");
cmp_eq
(
PGRES_COPY_IN
,
$result
->
resultStatus
);
for
(
$i
=
1
;
$i
<=
5
;
$i
++
)
{
# watch the tabs and do not forget the newlines
$conn
->
putline
("
$i
Edmund Mergl
\n
");
}
$conn
->
putline
("
\\
.
\n
");
cmp_eq
(
0
,
$conn
->
endcopy
);
$result
=
$conn
->
exec
("
END
");
cmp_eq
(
PGRES_COMMAND_OK
,
$result
->
resultStatus
);
######################### select from person, PQgetvalue
# 34-47
$result
=
$conn
->
exec
("
SELECT * FROM person
");
cmp_eq
(
PGRES_TUPLES_OK
,
$result
->
resultStatus
);
for
(
$k
=
0
;
$k
<
$result
->
nfields
;
$k
++
)
{
$fname
=
$result
->
fname
(
$k
);
$ftype
=
$result
->
ftype
(
$k
);
$fsize
=
$result
->
fsize
(
$k
);
if
(
0
==
$k
)
{
cmp_eq
("
id
",
$fname
);
cmp_eq
(
23
,
$ftype
);
cmp_eq
(
4
,
$fsize
);
}
else
{
cmp_eq
("
name
",
$fname
);
cmp_eq
(
20
,
$ftype
);
cmp_eq
(
16
,
$fsize
);
}
$fnumber
=
$result
->
fnumber
(
$fname
);
cmp_eq
(
$k
,
$fnumber
);
}
for
(
$k
=
0
;
$k
<
$result
->
ntuples
;
$k
++
)
{
$string
=
"";
for
(
$l
=
0
;
$l
<
$result
->
nfields
;
$l
++
)
{
$string
.=
$result
->
getvalue
(
$k
,
$l
)
.
"
";
}
$i
=
$k
+
1
;
cmp_eq
("
$i
Edmund Mergl
",
$string
);
}
######################### debug, PQuntrace
if
(
$DEBUG
)
{
close
(
TRACE
)
||
die
"
bad TRACE: $!
";
$conn
->
untrace
;
}
######################### disconnect and drop test database
# 48-49
$conn
=
Pg::
connectdb
("
dbname =
$dbmain
");
cmp_eq
(
PGRES_CONNECTION_OK
,
$conn
->
status
);
$result
=
$conn
->
exec
("
DROP DATABASE
$dbname
");
cmp_eq
(
PGRES_COMMAND_OK
,
$result
->
resultStatus
);
######################### hopefully
print
"
all tests passed.
\n
"
if
50
==
$cnt
;
######################### utility functions
sub
cmp_eq
{
my
$cmp
=
shift
;
my
$ret
=
shift
;
my
$msg
;
if
("
$cmp
"
eq
"
$ret
")
{
print
"
ok
$cnt
\n
";
}
else
{
$msg
=
$conn
->
errorMessage
;
print
"
not ok
$cnt
:
$cmp
,
$ret
\n
$msg
\n
";
exit
;
}
$cnt
++
;
}
sub
cmp_ne
{
my
$cmp
=
shift
;
my
$ret
=
shift
;
my
$msg
;
if
("
$cmp
"
ne
"
$ret
")
{
print
"
ok
$cnt
\n
";
}
else
{
$msg
=
$conn
->
errorMessage
;
print
"
not ok
$cnt
:
$cmp
,
$ret
\n
$msg
\n
";
exit
;
}
$cnt
++
;
}
######################### EOF
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录