Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
431ab0e8
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,发现更多精彩内容 >>
提交
431ab0e8
编写于
6月 21, 2011
作者:
R
Robert Haas
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add some regression tests for serial pseudotypes.
Josh Kupershmidt
上级
61307dcc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
162 addition
and
6 deletion
+162
-6
src/test/regress/expected/sequence.out
src/test/regress/expected/sequence.out
+103
-5
src/test/regress/sql/sequence.sql
src/test/regress/sql/sequence.sql
+59
-1
未找到文件。
src/test/regress/expected/sequence.out
浏览文件 @
431ab0e8
...
...
@@ -16,6 +16,84 @@ SELECT * FROM serialTest;
force | 100
(3 rows)
-- test smallserial / bigserial
CREATE TABLE serialTest2 (f1 text, f2 serial, f3 smallserial, f4 serial2,
f5 bigserial, f6 serial8);
NOTICE: CREATE TABLE will create implicit sequence "serialtest2_f2_seq" for serial column "serialtest2.f2"
NOTICE: CREATE TABLE will create implicit sequence "serialtest2_f3_seq" for serial column "serialtest2.f3"
NOTICE: CREATE TABLE will create implicit sequence "serialtest2_f4_seq" for serial column "serialtest2.f4"
NOTICE: CREATE TABLE will create implicit sequence "serialtest2_f5_seq" for serial column "serialtest2.f5"
NOTICE: CREATE TABLE will create implicit sequence "serialtest2_f6_seq" for serial column "serialtest2.f6"
INSERT INTO serialTest2 (f1)
VALUES ('test_defaults');
INSERT INTO serialTest2 (f1, f2, f3, f4, f5, f6)
VALUES ('test_max_vals', 2147483647, 32767, 32767, 9223372036854775807,
9223372036854775807),
('test_min_vals', -2147483648, -32768, -32768, -9223372036854775808,
-9223372036854775808);
-- All these INSERTs should fail:
INSERT INTO serialTest2 (f1, f3)
VALUES ('bogus', -32769);
ERROR: smallint out of range
INSERT INTO serialTest2 (f1, f4)
VALUES ('bogus', -32769);
ERROR: smallint out of range
INSERT INTO serialTest2 (f1, f3)
VALUES ('bogus', 32768);
ERROR: smallint out of range
INSERT INTO serialTest2 (f1, f4)
VALUES ('bogus', 32768);
ERROR: smallint out of range
INSERT INTO serialTest2 (f1, f5)
VALUES ('bogus', -9223372036854775809);
ERROR: bigint out of range
INSERT INTO serialTest2 (f1, f6)
VALUES ('bogus', -9223372036854775809);
ERROR: bigint out of range
INSERT INTO serialTest2 (f1, f5)
VALUES ('bogus', 9223372036854775808);
ERROR: bigint out of range
INSERT INTO serialTest2 (f1, f6)
VALUES ('bogus', 9223372036854775808);
ERROR: bigint out of range
SELECT * FROM serialTest2 ORDER BY f2 ASC;
f1 | f2 | f3 | f4 | f5 | f6
---------------+-------------+--------+--------+----------------------+----------------------
test_min_vals | -2147483648 | -32768 | -32768 | -9223372036854775808 | -9223372036854775808
test_defaults | 1 | 1 | 1 | 1 | 1
test_max_vals | 2147483647 | 32767 | 32767 | 9223372036854775807 | 9223372036854775807
(3 rows)
SELECT nextval('serialTest2_f2_seq');
nextval
---------
2
(1 row)
SELECT nextval('serialTest2_f3_seq');
nextval
---------
2
(1 row)
SELECT nextval('serialTest2_f4_seq');
nextval
---------
2
(1 row)
SELECT nextval('serialTest2_f5_seq');
nextval
---------
2
(1 row)
SELECT nextval('serialTest2_f6_seq');
nextval
---------
2
(1 row)
-- basic sequence operations using both text and oid references
CREATE SEQUENCE sequence_test;
SELECT nextval('sequence_test'::text);
...
...
@@ -221,11 +299,19 @@ SELECT nextval('sequence_test2');
(1 row)
-- Information schema
SELECT * FROM information_schema.sequences WHERE sequence_name IN ('sequence_test2');
sequence_catalog | sequence_schema | sequence_name | data_type | numeric_precision | numeric_precision_radix | numeric_scale | start_value | minimum_value | maximum_value | increment | cycle_option
------------------+-----------------+----------------+-----------+-------------------+-------------------------+---------------+-------------+---------------+---------------+-----------+--------------
regression | public | sequence_test2 | bigint | 64 | 2 | 0 | 32 | 5 | 36 | 4 | YES
(1 row)
SELECT * FROM information_schema.sequences WHERE sequence_name IN
('sequence_test2', 'serialtest2_f2_seq', 'serialtest2_f3_seq',
'serialtest2_f4_seq', 'serialtest2_f5_seq', 'serialtest2_f6_seq')
ORDER BY sequence_name ASC;
sequence_catalog | sequence_schema | sequence_name | data_type | numeric_precision | numeric_precision_radix | numeric_scale | start_value | minimum_value | maximum_value | increment | cycle_option
------------------+-----------------+--------------------+-----------+-------------------+-------------------------+---------------+-------------+---------------+---------------------+-----------+--------------
regression | public | sequence_test2 | bigint | 64 | 2 | 0 | 32 | 5 | 36 | 4 | YES
regression | public | serialtest2_f2_seq | bigint | 64 | 2 | 0 | 1 | 1 | 9223372036854775807 | 1 | NO
regression | public | serialtest2_f3_seq | bigint | 64 | 2 | 0 | 1 | 1 | 9223372036854775807 | 1 | NO
regression | public | serialtest2_f4_seq | bigint | 64 | 2 | 0 | 1 | 1 | 9223372036854775807 | 1 | NO
regression | public | serialtest2_f5_seq | bigint | 64 | 2 | 0 | 1 | 1 | 9223372036854775807 | 1 | NO
regression | public | serialtest2_f6_seq | bigint | 64 | 2 | 0 | 1 | 1 | 9223372036854775807 | 1 | NO
(6 rows)
-- Test comments
COMMENT ON SEQUENCE asdf IS 'won''t work';
...
...
@@ -289,5 +375,17 @@ REVOKE ALL ON seq3 FROM seq_user;
SELECT lastval();
ERROR: permission denied for sequence seq3
ROLLBACK;
-- Sequences should get wiped out as well:
DROP TABLE serialTest, serialTest2;
-- Make sure sequences are gone:
SELECT * FROM information_schema.sequences WHERE sequence_name IN
('sequence_test2', 'serialtest2_f2_seq', 'serialtest2_f3_seq',
'serialtest2_f4_seq', 'serialtest2_f5_seq', 'serialtest2_f6_seq')
ORDER BY sequence_name ASC;
sequence_catalog | sequence_schema | sequence_name | data_type | numeric_precision | numeric_precision_radix | numeric_scale | start_value | minimum_value | maximum_value | increment | cycle_option
------------------+-----------------+----------------+-----------+-------------------+-------------------------+---------------+-------------+---------------+---------------+-----------+--------------
regression | public | sequence_test2 | bigint | 64 | 2 | 0 | 32 | 5 | 36 | 4 | YES
(1 row)
DROP USER seq_user;
DROP SEQUENCE seq;
src/test/regress/sql/sequence.sql
浏览文件 @
431ab0e8
...
...
@@ -11,6 +11,52 @@ INSERT INTO serialTest VALUES ('wrong', NULL);
SELECT
*
FROM
serialTest
;
-- test smallserial / bigserial
CREATE
TABLE
serialTest2
(
f1
text
,
f2
serial
,
f3
smallserial
,
f4
serial2
,
f5
bigserial
,
f6
serial8
);
INSERT
INTO
serialTest2
(
f1
)
VALUES
(
'test_defaults'
);
INSERT
INTO
serialTest2
(
f1
,
f2
,
f3
,
f4
,
f5
,
f6
)
VALUES
(
'test_max_vals'
,
2147483647
,
32767
,
32767
,
9223372036854775807
,
9223372036854775807
),
(
'test_min_vals'
,
-
2147483648
,
-
32768
,
-
32768
,
-
9223372036854775808
,
-
9223372036854775808
);
-- All these INSERTs should fail:
INSERT
INTO
serialTest2
(
f1
,
f3
)
VALUES
(
'bogus'
,
-
32769
);
INSERT
INTO
serialTest2
(
f1
,
f4
)
VALUES
(
'bogus'
,
-
32769
);
INSERT
INTO
serialTest2
(
f1
,
f3
)
VALUES
(
'bogus'
,
32768
);
INSERT
INTO
serialTest2
(
f1
,
f4
)
VALUES
(
'bogus'
,
32768
);
INSERT
INTO
serialTest2
(
f1
,
f5
)
VALUES
(
'bogus'
,
-
9223372036854775809
);
INSERT
INTO
serialTest2
(
f1
,
f6
)
VALUES
(
'bogus'
,
-
9223372036854775809
);
INSERT
INTO
serialTest2
(
f1
,
f5
)
VALUES
(
'bogus'
,
9223372036854775808
);
INSERT
INTO
serialTest2
(
f1
,
f6
)
VALUES
(
'bogus'
,
9223372036854775808
);
SELECT
*
FROM
serialTest2
ORDER
BY
f2
ASC
;
SELECT
nextval
(
'serialTest2_f2_seq'
);
SELECT
nextval
(
'serialTest2_f3_seq'
);
SELECT
nextval
(
'serialTest2_f4_seq'
);
SELECT
nextval
(
'serialTest2_f5_seq'
);
SELECT
nextval
(
'serialTest2_f6_seq'
);
-- basic sequence operations using both text and oid references
CREATE
SEQUENCE
sequence_test
;
...
...
@@ -86,7 +132,10 @@ SELECT nextval('sequence_test2');
SELECT
nextval
(
'sequence_test2'
);
-- Information schema
SELECT
*
FROM
information_schema
.
sequences
WHERE
sequence_name
IN
(
'sequence_test2'
);
SELECT
*
FROM
information_schema
.
sequences
WHERE
sequence_name
IN
(
'sequence_test2'
,
'serialtest2_f2_seq'
,
'serialtest2_f3_seq'
,
'serialtest2_f4_seq'
,
'serialtest2_f5_seq'
,
'serialtest2_f6_seq'
)
ORDER
BY
sequence_name
ASC
;
-- Test comments
COMMENT
ON
SEQUENCE
asdf
IS
'won
''
t work'
;
...
...
@@ -118,5 +167,14 @@ REVOKE ALL ON seq3 FROM seq_user;
SELECT
lastval
();
ROLLBACK
;
-- Sequences should get wiped out as well:
DROP
TABLE
serialTest
,
serialTest2
;
-- Make sure sequences are gone:
SELECT
*
FROM
information_schema
.
sequences
WHERE
sequence_name
IN
(
'sequence_test2'
,
'serialtest2_f2_seq'
,
'serialtest2_f3_seq'
,
'serialtest2_f4_seq'
,
'serialtest2_f5_seq'
,
'serialtest2_f6_seq'
)
ORDER
BY
sequence_name
ASC
;
DROP
USER
seq_user
;
DROP
SEQUENCE
seq
;
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录