Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
f9526f88
Commit
f9526f88
authored
Apr 27, 1997
by
Marc G. Fournier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clean up misc.source and create *individual test* files ... trying to move
away from one big massive confusing file
parent
b63e57be
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
208 additions
and
1050 deletions
+208
-1050
src/test/regress/sql/btree_index.sql
src/test/regress/sql/btree_index.sql
+53
-0
src/test/regress/sql/hash_index.sql
src/test/regress/sql/hash_index.sql
+153
-0
src/test/regress/sql/misc.sql
src/test/regress/sql/misc.sql
+0
-1050
src/test/regress/sql/tests
src/test/regress/sql/tests
+2
-0
No files found.
src/test/regress/sql/btree_index.sql
0 → 100644
View file @
f9526f88
--
-- btree index
-- test retrieval of min/max keys for each
--
SELECT
b
.
*
FROM
bt_i4_heap
b
WHERE
b
.
seqno
<
1
;
SELECT
b
.
*
FROM
bt_i4_heap
b
WHERE
b
.
seqno
>=
9999
;
SELECT
b
.
*
FROM
bt_i4_heap
b
WHERE
b
.
seqno
=
4500
;
SELECT
b
.
*
FROM
bt_c16_heap
b
WHERE
b
.
seqno
<
'1'
::
char16
;
SELECT
b
.
*
FROM
bt_c16_heap
b
WHERE
b
.
seqno
>=
'9999'
::
char16
;
SELECT
b
.
*
FROM
bt_c16_heap
b
WHERE
b
.
seqno
=
'4500'
::
char16
;
SELECT
b
.
*
FROM
bt_txt_heap
b
WHERE
b
.
seqno
<
'1'
::
text
;
SELECT
b
.
*
FROM
bt_txt_heap
b
WHERE
b
.
seqno
>=
'9999'
::
text
;
SELECT
b
.
*
FROM
bt_txt_heap
b
WHERE
b
.
seqno
=
'4500'
::
text
;
SELECT
b
.
*
FROM
bt_f8_heap
b
WHERE
b
.
seqno
<
'1'
::
float8
;
SELECT
b
.
*
FROM
bt_f8_heap
b
WHERE
b
.
seqno
>=
'9999'
::
float8
;
SELECT
b
.
*
FROM
bt_f8_heap
b
WHERE
b
.
seqno
=
'4500'
::
float8
;
src/test/regress/sql/hash_index.sql
0 → 100644
View file @
f9526f88
--
-- hash index
-- grep 843938989 hash.data
--
SELECT
hash_i4_heap
.
*
WHERE
hash_i4_heap
.
random
=
843938989
;
--
-- hash index
-- grep 66766766 hash.data
--
SELECT
hash_i4_heap
.
*
WHERE
hash_i4_heap
.
random
=
66766766
;
--
-- hash index
-- grep 1505703298 hash.data
--
SELECT
hash_c16_heap
.
*
WHERE
hash_c16_heap
.
random
=
'1505703298'
::
char16
;
--
-- hash index
-- grep 7777777 hash.data
--
SELECT
hash_c16_heap
.
*
WHERE
hash_c16_heap
.
random
=
'7777777'
::
char16
;
--
-- hash index
-- grep 1351610853 hash.data
--
SELECT
hash_txt_heap
.
*
WHERE
hash_txt_heap
.
random
=
'1351610853'
::
text
;
--
-- hash index
-- grep 111111112222222233333333 hash.data
--
SELECT
hash_txt_heap
.
*
WHERE
hash_txt_heap
.
random
=
'111111112222222233333333'
::
text
;
--
-- hash index
-- grep 444705537 hash.data
--
SELECT
hash_f8_heap
.
*
WHERE
hash_f8_heap
.
random
=
'444705537'
::
float8
;
--
-- hash index
-- grep 88888888 hash.data
--
SELECT
hash_f8_heap
.
*
WHERE
hash_f8_heap
.
random
=
'88888888'
::
float8
;
--
-- hash index
-- grep '^90[^0-9]' hashovfl.data
--
-- SELECT count(*) AS i988 FROM hash_ovfl_heap
-- WHERE x = 90;
--
-- hash index
-- grep '^1000[^0-9]' hashovfl.data
--
-- SELECT count(*) AS i0 FROM hash_ovfl_heap
-- WHERE x = 1000;
--
-- HASH
--
UPDATE
hash_i4_heap
SET
random
=
1
WHERE
hash_i4_heap
.
seqno
=
1492
;
SELECT
h
.
seqno
AS
i1492
,
h
.
random
AS
i1
FROM
hash_i4_heap
h
WHERE
h
.
random
=
1
;
UPDATE
hash_i4_heap
SET
seqno
=
20000
WHERE
hash_i4_heap
.
random
=
1492795354
;
SELECT
h
.
seqno
AS
i20000
FROM
hash_i4_heap
h
WHERE
h
.
random
=
1492795354
;
UPDATE
hash_c16_heap
SET
random
=
'0123456789abcdef'
::
char16
WHERE
hash_c16_heap
.
seqno
=
6543
;
SELECT
h
.
seqno
AS
i6543
,
h
.
random
AS
c0_to_f
FROM
hash_c16_heap
h
WHERE
h
.
random
=
'0123456789abcdef'
::
char16
;
UPDATE
hash_c16_heap
SET
seqno
=
20000
WHERE
hash_c16_heap
.
random
=
'76652222'
::
char16
;
--
-- this is the row we just replaced; index scan should return zero rows
--
SELECT
h
.
seqno
AS
emptyset
FROM
hash_c16_heap
h
WHERE
h
.
random
=
'76652222'
::
char16
;
UPDATE
hash_txt_heap
SET
random
=
'0123456789abcdefghijklmnop'
::
text
WHERE
hash_txt_heap
.
seqno
=
4002
;
SELECT
h
.
seqno
AS
i4002
,
h
.
random
AS
c0_to_p
FROM
hash_txt_heap
h
WHERE
h
.
random
=
'0123456789abcdefghijklmnop'
::
text
;
UPDATE
hash_txt_heap
SET
seqno
=
20000
WHERE
hash_txt_heap
.
random
=
'959363399'
::
text
;
SELECT
h
.
seqno
AS
t20000
FROM
hash_txt_heap
h
WHERE
h
.
random
=
'959363399'
::
text
;
UPDATE
hash_f8_heap
SET
random
=
'-1234.1234'
::
float8
WHERE
hash_f8_heap
.
seqno
=
8906
;
SELECT
h
.
seqno
AS
i8096
,
h
.
random
AS
f1234_1234
FROM
hash_f8_heap
h
WHERE
h
.
random
=
'-1234.1234'
::
float8
;
UPDATE
hash_f8_heap
SET
seqno
=
20000
WHERE
hash_f8_heap
.
random
=
'488912369'
::
float8
;
SELECT
h
.
seqno
AS
f20000
FROM
hash_f8_heap
h
WHERE
h
.
random
=
'488912369'
::
float8
;
-- UPDATE hash_ovfl_heap
-- SET x = 1000
-- WHERE x = 90;
-- this vacuums the index as well
-- VACUUM hash_ovfl_heap;
-- SELECT count(*) AS i0 FROM hash_ovfl_heap
-- WHERE x = 90;
-- SELECT count(*) AS i988 FROM hash_ovfl_heap
-- WHERE x = 1000;
src/test/regress/sql/misc.sql
deleted
100644 → 0
View file @
b63e57be
--
-- hash index
-- grep 843938989 hash.data
--
SELECT
hash_i4_heap
.
*
WHERE
hash_i4_heap
.
random
=
843938989
;
--
-- hash index
-- grep 66766766 hash.data
--
SELECT
hash_i4_heap
.
*
WHERE
hash_i4_heap
.
random
=
66766766
;
--
-- hash index
-- grep 1505703298 hash.data
--
SELECT
hash_c16_heap
.
*
WHERE
hash_c16_heap
.
random
=
'1505703298'
::
char16
;
--
-- hash index
-- grep 7777777 hash.data
--
SELECT
hash_c16_heap
.
*
WHERE
hash_c16_heap
.
random
=
'7777777'
::
char16
;
--
-- hash index
-- grep 1351610853 hash.data
--
SELECT
hash_txt_heap
.
*
WHERE
hash_txt_heap
.
random
=
'1351610853'
::
text
;
--
-- hash index
-- grep 111111112222222233333333 hash.data
--
SELECT
hash_txt_heap
.
*
WHERE
hash_txt_heap
.
random
=
'111111112222222233333333'
::
text
;
--
-- hash index
-- grep 444705537 hash.data
--
SELECT
hash_f8_heap
.
*
WHERE
hash_f8_heap
.
random
=
'444705537'
::
float8
;
--
-- hash index
-- grep 88888888 hash.data
--
SELECT
hash_f8_heap
.
*
WHERE
hash_f8_heap
.
random
=
'88888888'
::
float8
;
--
-- hash index
-- grep '^90[^0-9]' hashovfl.data
--
-- SELECT count(*) AS i988 FROM hash_ovfl_heap
-- WHERE x = 90;
--
-- hash index
-- grep '^1000[^0-9]' hashovfl.data
--
-- SELECT count(*) AS i0 FROM hash_ovfl_heap
-- WHERE x = 1000;
--
-- btree index
-- test retrieval of min/max keys for each
--
SELECT
b
.
*
FROM
bt_i4_heap
b
WHERE
b
.
seqno
<
1
;
SELECT
b
.
*
FROM
bt_i4_heap
b
WHERE
b
.
seqno
>=
9999
;
SELECT
b
.
*
FROM
bt_i4_heap
b
WHERE
b
.
seqno
=
4500
;
SELECT
b
.
*
FROM
bt_c16_heap
b
WHERE
b
.
seqno
<
'1'
::
char16
;
SELECT
b
.
*
FROM
bt_c16_heap
b
WHERE
b
.
seqno
>=
'9999'
::
char16
;
SELECT
b
.
*
FROM
bt_c16_heap
b
WHERE
b
.
seqno
=
'4500'
::
char16
;
SELECT
b
.
*
FROM
bt_txt_heap
b
WHERE
b
.
seqno
<
'1'
::
text
;
SELECT
b
.
*
FROM
bt_txt_heap
b
WHERE
b
.
seqno
>=
'9999'
::
text
;
SELECT
b
.
*
FROM
bt_txt_heap
b
WHERE
b
.
seqno
=
'4500'
::
text
;
SELECT
b
.
*
FROM
bt_f8_heap
b
WHERE
b
.
seqno
<
'1'
::
float8
;
SELECT
b
.
*
FROM
bt_f8_heap
b
WHERE
b
.
seqno
>=
'9999'
::
float8
;
SELECT
b
.
*
FROM
bt_f8_heap
b
WHERE
b
.
seqno
=
'4500'
::
float8
;
--
-- replace
--
--
-- BTREE
--
UPDATE
onek
SET
unique1
=
onek
.
unique1
+
1
;
UPDATE
onek
SET
unique1
=
onek
.
unique1
-
1
;
--
-- BTREE partial
--
-- UPDATE onek2
-- SET unique1 = onek2.unique1 + 1;
--UPDATE onek2
-- SET unique1 = onek2.unique1 - 1;
--
-- BTREE shutting out non-functional updates
--
-- the following two tests seem to take a long time on some
-- systems. This non-func update stuff needs to be examined
-- more closely. - jolly (2/22/96)
--
UPDATE
temp
SET
stringu1
=
reverse_c16
(
onek
.
stringu1
)
WHERE
onek
.
stringu1
=
'JBAAAA'
and
onek
.
stringu1
=
temp
.
stringu1
;
UPDATE
temp
SET
stringu1
=
reverse_c16
(
onek2
.
stringu1
)
WHERE
onek2
.
stringu1
=
'JCAAAA'
and
onek2
.
stringu1
=
temp
.
stringu1
;
DROP
TABLE
temp
;
--UPDATE person*
-- SET age = age + 1;
--UPDATE person*
-- SET age = age + 3
-- WHERE name = 'linda';
--
-- HASH
--
UPDATE
hash_i4_heap
SET
random
=
1
WHERE
hash_i4_heap
.
seqno
=
1492
;
SELECT
h
.
seqno
AS
i1492
,
h
.
random
AS
i1
FROM
hash_i4_heap
h
WHERE
h
.
random
=
1
;
UPDATE
hash_i4_heap
SET
seqno
=
20000
WHERE
hash_i4_heap
.
random
=
1492795354
;
SELECT
h
.
seqno
AS
i20000
FROM
hash_i4_heap
h
WHERE
h
.
random
=
1492795354
;
UPDATE
hash_c16_heap
SET
random
=
'0123456789abcdef'
::
char16
WHERE
hash_c16_heap
.
seqno
=
6543
;
SELECT
h
.
seqno
AS
i6543
,
h
.
random
AS
c0_to_f
FROM
hash_c16_heap
h
WHERE
h
.
random
=
'0123456789abcdef'
::
char16
;
UPDATE
hash_c16_heap
SET
seqno
=
20000
WHERE
hash_c16_heap
.
random
=
'76652222'
::
char16
;
--
-- this is the row we just replaced; index scan should return zero rows
--
SELECT
h
.
seqno
AS
emptyset
FROM
hash_c16_heap
h
WHERE
h
.
random
=
'76652222'
::
char16
;
UPDATE
hash_txt_heap
SET
random
=
'0123456789abcdefghijklmnop'
::
text
WHERE
hash_txt_heap
.
seqno
=
4002
;
SELECT
h
.
seqno
AS
i4002
,
h
.
random
AS
c0_to_p
FROM
hash_txt_heap
h
WHERE
h
.
random
=
'0123456789abcdefghijklmnop'
::
text
;
UPDATE
hash_txt_heap
SET
seqno
=
20000
WHERE
hash_txt_heap
.
random
=
'959363399'
::
text
;
SELECT
h
.
seqno
AS
t20000
FROM
hash_txt_heap
h
WHERE
h
.
random
=
'959363399'
::
text
;
UPDATE
hash_f8_heap
SET
random
=
'-1234.1234'
::
float8
WHERE
hash_f8_heap
.
seqno
=
8906
;
SELECT
h
.
seqno
AS
i8096
,
h
.
random
AS
f1234_1234
FROM
hash_f8_heap
h
WHERE
h
.
random
=
'-1234.1234'
::
float8
;
UPDATE
hash_f8_heap
SET
seqno
=
20000
WHERE
hash_f8_heap
.
random
=
'488912369'
::
float8
;
SELECT
h
.
seqno
AS
f20000
FROM
hash_f8_heap
h
WHERE
h
.
random
=
'488912369'
::
float8
;
-- UPDATE hash_ovfl_heap
-- SET x = 1000
-- WHERE x = 90;
-- this vacuums the index as well
-- VACUUM hash_ovfl_heap;
-- SELECT count(*) AS i0 FROM hash_ovfl_heap
-- WHERE x = 90;
-- SELECT count(*) AS i988 FROM hash_ovfl_heap
-- WHERE x = 1000;
--
-- append
-- (is tested in create.source)
--
--
-- queries to plan and execute each plannode and execnode we have
--
--
-- builtin functions
--
--
-- copy
--
COPY
onek
TO
'_OBJWD_/onek.data'
;
DELETE
FROM
onek
;
COPY
onek
FROM
'_OBJWD_/onek.data'
;
SELECT
unique1
FROM
onek
WHERE
unique1
<
2
;
DELETE
FROM
onek2
;
COPY
onek2
FROM
'_OBJWD_/onek.data'
;
SELECT
unique1
FROM
onek2
WHERE
unique1
<
2
;
COPY
BINARY
stud_emp
TO
'_OBJWD_/stud_emp.data'
;
DELETE
FROM
stud_emp
;
COPY
BINARY
stud_emp
FROM
'_OBJWD_/stud_emp.data'
;
SELECT
*
FROM
stud_emp
;
-- COPY aggtest FROM stdin;
-- 56 7.8
-- 100 99.097
-- 0 0.09561
-- 42 324.78
-- .
-- COPY aggtest TO stdout;
--
-- test the random function
--
-- count the number of tuples originally
SELECT
count
(
*
)
FROM
onek
;
-- select roughly 1/10 of the tuples
SELECT
count
(
*
)
FROM
onek
where
oidrand
(
onek
.
oid
,
10
);
-- select again, the count should be different
SELECT
count
(
*
)
FROM
onek
where
oidrand
(
onek
.
oid
,
10
);
--
-- transaction blocks
--
BEGIN
;
SELECT
*
INTO
TABLE
xacttest
FROM
aggtest
;
INSERT
INTO
xacttest
(
a
,
b
)
VALUES
(
777
,
777
.
777
);
END
;
-- should retrieve one value--
SELECT
a
FROM
xacttest
WHERE
a
>
100
;
BEGIN
;
CREATE
TABLE
disappear
(
a
int4
);
DELETE
FROM
aggtest
;
-- should be empty
SELECT
*
FROM
aggtest
;
ABORT
;
-- should not exist
SELECT
oid
FROM
pg_class
WHERE
relname
=
'disappear'
;
-- should have members again
SELECT
*
FROM
aggtest
;
--
-- portal manipulation
--
BEGIN
;
DECLARE
foo1
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo2
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo3
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo4
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo5
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo6
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo7
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo8
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo9
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo10
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo11
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo12
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo13
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo14
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo15
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo16
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo17
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo18
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo19
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo20
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo21
CURSOR
FOR
SELECT
*
FROM
tenk1
;
DECLARE
foo22
CURSOR
FOR
SELECT
*
FROM
tenk2
;
DECLARE
foo23
CURSOR
FOR
SELECT
*
FROM
tenk1
;
FETCH
1
in
foo1
;
FETCH
2
in
foo2
;
FETCH
3
in
foo3
;
FETCH
4
in
foo4
;
FETCH
5
in
foo5
;
FETCH
6
in
foo6
;
FETCH
7
in
foo7
;
FETCH
8
in
foo8
;
FETCH
9
in
foo9
;
FETCH
10
in
foo10
;
FETCH
11
in
foo11
;
FETCH
12
in
foo12
;
FETCH
13
in
foo13
;
FETCH
14
in
foo14
;
FETCH
15
in
foo15
;
FETCH
16
in
foo16
;
FETCH
17
in
foo17
;
FETCH
18
in
foo18
;
FETCH
19
in
foo19
;
FETCH
20
in
foo20
;
FETCH
21
in
foo21
;
FETCH
22
in
foo22
;
FETCH
23
in
foo23
;
FETCH
backward
1
in
foo23
;
FETCH
backward
2
in
foo22
;
FETCH
backward
3
in
foo21
;
FETCH
backward
4
in
foo20
;
FETCH
backward
5
in
foo19
;
FETCH
backward
6
in
foo18
;
FETCH
backward
7
in
foo17
;
FETCH
backward
8
in
foo16
;
FETCH
backward
9
in
foo15
;
FETCH
backward
10
in
foo14
;
FETCH
backward
11
in
foo13
;
FETCH
backward
12
in
foo12
;
FETCH
backward
13
in
foo11
;
FETCH
backward
14
in
foo10
;
FETCH
backward
15
in
foo9
;
FETCH
backward
16
in
foo8
;
FETCH
backward
17
in
foo7
;
FETCH
backward
18
in
foo6
;
FETCH
backward
19
in
foo5
;
FETCH
backward
20
in
foo4
;
FETCH
backward
21
in
foo3
;
FETCH
backward
22
in
foo2
;
FETCH
backward
23
in
foo1
;
CLOSE
foo1
;
CLOSE
foo2
;
CLOSE
foo3
;
CLOSE
foo4
;
CLOSE
foo5
;
CLOSE
foo6
;
CLOSE
foo7
;
CLOSE
foo8
;
CLOSE
foo9
;
CLOSE
foo10
;
CLOSE
foo11
;
CLOSE
foo12
;
end
;
EXTEND
INDEX
onek2_u1_prtl
WHERE
onek2
.
unique1
<=
60
;
BEGIN
;
DECLARE
foo13
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
50
;
DECLARE
foo14
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
51
;
DECLARE
foo15
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
52
;
DECLARE
foo16
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
53
;
DECLARE
foo17
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
54
;
DECLARE
foo18
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
55
;
DECLARE
foo19
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
56
;
DECLARE
foo20
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
57
;
DECLARE
foo21
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
58
;
DECLARE
foo22
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
59
;
DECLARE
foo23
CURSOR
FOR
SELECT
*
FROM
onek
WHERE
unique1
=
60
;
DECLARE
foo24
CURSOR
FOR
SELECT
*
FROM
onek2
WHERE
unique1
=
50
;
DECLARE
foo25
CURSOR
FOR
SELECT
*
FROM
onek2
WHERE
unique1
=
60
;
FETCH
all
in
foo13
;
FETCH
all
in
foo14
;
FETCH
all
in
foo15
;
FETCH
all
in
foo16
;
FETCH
all
in
foo17
;
FETCH
all
in
foo18
;
FETCH
all
in
foo19
;
FETCH
all
in
foo20
;
FETCH
all
in
foo21
;
FETCH
all
in
foo22
;
FETCH
all
in
foo23
;
FETCH
all
in
foo24
;
FETCH
all
in
foo25
;
CLOSE
foo13
;
CLOSE
foo14
;
CLOSE
foo15
;
CLOSE
foo16
;
CLOSE
foo17
;
CLOSE
foo18
;
CLOSE
foo19
;
CLOSE
foo20
;
CLOSE
foo21
;
CLOSE
foo22
;
CLOSE
foo23
;
CLOSE
foo24
;
CLOSE
foo25
;
END
;
--
-- PURGE
--
-- we did two updates on each of these 10K tables up above. we should
-- therefore go from 10002 tuples (two of which are not visible without
-- using a time qual) to 10000.
--
-- vacuuming here also tests whether or not the hash index compaction
-- code works; this used to be commented out because the hash AM would
-- miss deleting a bunch of index tuples, which caused big problems when
-- you dereferenced the tids and found garbage..
--
-- absolute time
PURGE
hash_f8_heap
BEFORE
'now'
;
SELECT
count
(
*
)
AS
has_10002
FROM
hash_f8_heap
[,]
h
;
VACUUM
hash_f8_heap
;
SELECT
count
(
*
)
AS
has_10000
FROM
hash_f8_heap
[,]
h
;
-- relative time
PURGE
hash_i4_heap
AFTER
'@ 1 second ago'
;
SELECT
count
(
*
)
AS
has_10002
FROM
hash_i4_heap
[,]
h
;
VACUUM
hash_i4_heap
;
SELECT
count
(
*
)
AS
has_10000
FROM
hash_i4_heap
[,]
h
;
--
-- add attribute
--
CREATE
TABLE
temp
(
initial
int4
);
ALTER
TABLE
temp
ADD
COLUMN
a
int4
;
ALTER
TABLE
temp
ADD
COLUMN
b
char16
;
ALTER
TABLE
temp
ADD
COLUMN
c
text
;
ALTER
TABLE
temp
ADD
COLUMN
d
float8
;
ALTER
TABLE
temp
ADD
COLUMN
e
float4
;
ALTER
TABLE
temp
ADD
COLUMN
f
int2
;
ALTER
TABLE
temp
ADD
COLUMN
g
polygon
;
ALTER
TABLE
temp
ADD
COLUMN
h
abstime
;
ALTER
TABLE
temp
ADD
COLUMN
i
char
;
ALTER
TABLE
temp
ADD
COLUMN
j
abstime
[];
ALTER
TABLE
temp
ADD
COLUMN
k
dt
;
ALTER
TABLE
temp
ADD
COLUMN
l
tid
;
ALTER
TABLE
temp
ADD
COLUMN
m
xid
;
ALTER
TABLE
temp
ADD
COLUMN
n
oid8
;
--ALTER TABLE temp ADD COLUMN o lock;
ALTER
TABLE
temp
ADD
COLUMN
p
smgr
;
ALTER
TABLE
temp
ADD
COLUMN
q
point
;
ALTER
TABLE
temp
ADD
COLUMN
r
lseg
;
ALTER
TABLE
temp
ADD
COLUMN
s
path
;
ALTER
TABLE
temp
ADD
COLUMN
t
box
;
ALTER
TABLE
temp
ADD
COLUMN
u
tinterval
;
ALTER
TABLE
temp
ADD
COLUMN
v
oidint4
;
ALTER
TABLE
temp
ADD
COLUMN
w
oidname
;
ALTER
TABLE
temp
ADD
COLUMN
x
float8
[];
ALTER
TABLE
temp
ADD
COLUMN
y
float4
[];
ALTER
TABLE
temp
ADD
COLUMN
z
int2
[];
INSERT
INTO
temp
(
a
,
b
,
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
,
k
,
l
,
m
,
n
,
p
,
q
,
r
,
s
,
t
,
u
,
v
,
w
,
x
,
y
,
z
)
VALUES
(
4
,
'char16'
,
'text'
,
4
.
1
,
4
.
1
,
2
,
'(4.1,4.1,3.1,3.1)'
,
'Mon May 1 00:30:30 1995'
,
'c'
,
'{Mon May 1 00:30:30 1995, Monday Aug 24 14:43:07 1992, epoch}'
,
314159
,
'(1,1)'
,
512
,
'1 2 3 4 5 6 7 8'
,
'magnetic disk'
,
'(1.1,1.1)'
,
'(4.1,4.1,3.1,3.1)'
,
'(0,2,4.1,4.1,3.1,3.1)'
,
'(4.1,4.1,3.1,3.1)'
,
'["current" "infinity"]'
,
'1/3'
,
'1,char16'
,
'{1.0,2.0,3.0,4.0}'
,
'{1.0,2.0,3.0,4.0}'
,
'{1,2,3,4}'
);
SELECT
*
FROM
temp
;
DROP
TABLE
temp
;
-- the wolf bug - schema mods caused inconsistent row descriptors
CREATE
TABLE
temp
(
initial
int4
)
ARCHIVE
=
light
;
ALTER
TABLE
temp
ADD
COLUMN
a
int4
;
ALTER
TABLE
temp
ADD
COLUMN
b
char16
;
ALTER
TABLE
temp
ADD
COLUMN
c
text
;
ALTER
TABLE
temp
ADD
COLUMN
d
float8
;
ALTER
TABLE
temp
ADD
COLUMN
e
float4
;
ALTER
TABLE
temp
ADD
COLUMN
f
int2
;
ALTER
TABLE
temp
ADD
COLUMN
g
polygon
;
ALTER
TABLE
temp
ADD
COLUMN
h
abstime
;
ALTER
TABLE
temp
ADD
COLUMN
i
char
;
ALTER
TABLE
temp
ADD
COLUMN
j
abstime
[];
ALTER
TABLE
temp
ADD
COLUMN
k
dt
;
ALTER
TABLE
temp
ADD
COLUMN
l
tid
;
ALTER
TABLE
temp
ADD
COLUMN
m
xid
;
ALTER
TABLE
temp
ADD
COLUMN
n
oid8
;
--ALTER TABLE temp ADD COLUMN o lock;
ALTER
TABLE
temp
ADD
COLUMN
p
smgr
;
ALTER
TABLE
temp
ADD
COLUMN
q
point
;
ALTER
TABLE
temp
ADD
COLUMN
r
lseg
;
ALTER
TABLE
temp
ADD
COLUMN
s
path
;
ALTER
TABLE
temp
ADD
COLUMN
t
box
;
ALTER
TABLE
temp
ADD
COLUMN
u
tinterval
;
ALTER
TABLE
temp
ADD
COLUMN
v
oidint4
;
ALTER
TABLE
temp
ADD
COLUMN
w
oidname
;
ALTER
TABLE
temp
ADD
COLUMN
x
float8
[];
ALTER
TABLE
temp
ADD
COLUMN
y
float4
[];
ALTER
TABLE
temp
ADD
COLUMN
z
int2
[];
INSERT
INTO
temp
(
a
,
b
,
c
,
d
,
e
,
f
,
g
,
h
,
i
,
j
,
k
,
l
,
m
,
n
,
p
,
q
,
r
,
s
,
t
,
u
,
v
,
w
,
x
,
y
,
z
)
VALUES
(
4
,
'char16'
,
'text'
,
4
.
1
,
4
.
1
,
2
,
'(4.1,4.1,3.1,3.1)'
,
'Mon May 1 00:30:30 1995'
,
'c'
,
'{Mon May 1 00:30:30 1995, Monday Aug 24 14:43:07 1992, epoch}'
,
314159
,
'(1,1)'
,
512
,
'1 2 3 4 5 6 7 8'
,
'magnetic disk'
,
'(1.1,1.1)'
,
'(4.1,4.1,3.1,3.1)'
,
'(0,2,4.1,4.1,3.1,3.1)'
,
'(4.1,4.1,3.1,3.1)'
,
'["current" "infinity"]'
,
'1/3'
,
'1,char16'
,
'{1.0,2.0,3.0,4.0}'
,
'{1.0,2.0,3.0,4.0}'
,
'{1,2,3,4}'
);
SELECT
*
FROM
temp
[,];
DROP
TABLE
temp
;
--
-- rename -
-- should preserve indices
--
ALTER
TABLE
tenk1
RENAME
TO
ten_k
;
-- 20 values, sorted
SELECT
unique1
FROM
ten_k
WHERE
unique1
<
20
;
-- 20 values, sorted
SELECT
unique2
FROM
ten_k
WHERE
unique2
<
20
;
-- 100 values, sorted
SELECT
hundred
FROM
ten_k
WHERE
hundred
=
50
;
ALTER
TABLE
ten_k
RENAME
TO
tenk1
;
-- 5 values, sorted
SELECT
unique1
FROM
tenk1
WHERE
unique1
<
5
;
--
-- VIEW queries
--
-- test the views defined in create.source
--
SELECT
*
from
street
;
SELECT
*
from
iexit
;
SELECT
*
from
toyemp
where
name
=
'sharon'
;
--
-- AGGREGATES
--
SELECT
avg
(
four
)
AS
avg_1
FROM
onek
;
SELECT
avg
(
a
)
AS
avg_49
FROM
aggtest
WHERE
a
<
100
;
SELECT
avg
(
b
)
AS
avg_107_943
FROM
aggtest
;
SELECT
avg
(
gpa
)
AS
avg_3_4
FROM
student
;
SELECT
sum
(
four
)
AS
sum_1500
FROM
onek
;
SELECT
sum
(
a
)
AS
sum_198
FROM
aggtest
;
SELECT
sum
(
b
)
AS
avg_431_773
FROM
aggtest
;
SELECT
sum
(
gpa
)
AS
avg_6_8
FROM
student
;
SELECT
max
(
four
)
AS
max_3
FROM
onek
;
SELECT
max
(
a
)
AS
max_100
FROM
aggtest
;
SELECT
max
(
aggtest
.
b
)
AS
max_324_78
FROM
aggtest
;
SELECT
max
(
student
.
gpa
)
AS
max_3_7
FROM
student
;
SELECT
count
(
four
)
AS
cnt_1000
FROM
onek
;
SELECT
newavg
(
four
)
AS
avg_1
FROM
onek
;
SELECT
newsum
(
four
)
AS
sum_1500
FROM
onek
;
SELECT
newcnt
(
four
)
AS
cnt_1000
FROM
onek
;
--
-- inheritance stress test
--
SELECT
*
FROM
a_star
*
;
SELECT
*
FROM
b_star
*
x
WHERE
x
.
b
=
'bumble'
::
text
or
x
.
a
<
3
;
SELECT
class
,
a
FROM
c_star
*
x
WHERE
x
.
c
~
'hi'
::
text
;
SELECT
class
,
b
,
c
FROM
d_star
*
x
WHERE
x
.
a
<
100
;
SELECT
class
,
c
FROM
e_star
*
x
WHERE
x
.
c
NOTNULL
;
SELECT
*
FROM
f_star
*
x
WHERE
x
.
c
ISNULL
;
ALTER
TABLE
f_star
RENAME
COLUMN
f
TO
ff
;
ALTER
TABLE
e_star
*
RENAME
COLUMN
e
TO
ee
;
ALTER
TABLE
d_star
*
RENAME
COLUMN
d
TO
dd
;
ALTER
TABLE
c_star
*
RENAME
COLUMN
c
TO
cc
;
ALTER
TABLE
b_star
*
RENAME
COLUMN
b
TO
bb
;
ALTER
TABLE
a_star
*
RENAME
COLUMN
a
TO
aa
;
SELECT
class
,
aa
FROM
a_star
*
x
WHERE
aa
ISNULL
;
ALTER
TABLE
a_star
RENAME
COLUMN
aa
TO
foo
;
SELECT
class
,
foo
FROM
a_star
x
WHERE
x
.
foo
>=
2
;
ALTER
TABLE
a_star
RENAME
COLUMN
foo
TO
aa
;
SELECT
*
from
a_star
*
WHERE
aa
<
1000
;
ALTER
TABLE
f_star
ADD
COLUMN
f
int4
;
UPDATE
f_star
SET
f
=
10
;
ALTER
TABLE
e_star
*
ADD
COLUMN
e
int4
;
--UPDATE e_star* SET e = 42;
SELECT
*
FROM
e_star
*
;
ALTER
TABLE
a_star
*
ADD
COLUMN
a
text
;
--UPDATE b_star*
-- SET a = 'gazpacho'::text
-- WHERE aa > 4;
SELECT
class
,
aa
,
a
FROM
a_star
*
;
--
-- versions
--
--
-- postquel functions
--
--
-- mike does post_hacking,
-- joe and sally play basketball, and
-- everyone else does nothing.
--
SELECT
p
.
name
,
p
.
hobbies
.
name
FROM
person
p
;
--
-- as above, but jeff also does post_hacking.
--
SELECT
p
.
name
,
p
.
hobbies
.
name
FROM
person
*
p
;
--
-- the next two queries demonstrate how functions generate bogus duplicates.
-- this is a "feature" ..
--
SELECT
DISTINCT
hobbies_r
.
name
,
hobbies_r
.
equipment
.
name
FROM
hobbies_r
;
SELECT
hobbies_r
.
name
,
hobbies_r
.
equipment
.
name
FROM
hobbies_r
;
--
-- mike needs advil and peet's coffee,
-- joe and sally need hightops, and
-- everyone else is fine.
--
SELECT
p
.
name
,
p
.
hobbies
.
name
,
p
.
hobbies
.
equipment
.
name
FROM
person
p
;
--
-- as above, but jeff needs advil and peet's coffee as well.
--
SELECT
p
.
name
,
p
.
hobbies
.
name
,
p
.
hobbies
.
equipment
.
name
FROM
person
*
p
;
--
-- just like the last two, but make sure that the target list fixup and
-- unflattening is being done correctly.
--
SELECT
p
.
hobbies
.
equipment
.
name
,
p
.
name
,
p
.
hobbies
.
name
FROM
person
p
;
SELECT
p
.
hobbies
.
equipment
.
name
,
p
.
name
,
p
.
hobbies
.
name
FROM
person
*
p
;
SELECT
p
.
hobbies
.
equipment
.
name
,
p
.
hobbies
.
name
,
p
.
name
FROM
person
p
;
SELECT
p
.
hobbies
.
equipment
.
name
,
p
.
hobbies
.
name
,
p
.
name
FROM
person
*
p
;
SELECT
user_relns
()
AS
user_relns
ORDER
BY
user_relns
;
--SELECT name(equipment(hobby_construct('skywalking'::text, 'mer'::text))) AS equip_name;
--
-- functional joins
--
--
-- instance rules
--
--
-- rewrite rules
--
--
-- ARRAYS
--
SELECT
*
FROM
arrtest
;
SELECT
arrtest
.
a
[
1
],
arrtest
.
b
[
1
][
1
][
1
],
arrtest
.
c
[
1
],
arrtest
.
d
[
1
][
1
],
arrtest
.
e
[
0
]
FROM
arrtest
;
-- ??? what about
-- SELECT a[1], b[1][1][1], c[1], d[1][1], e[0]
-- FROM arrtest;
SELECT
arrtest
.
a
[
1
:
3
],
arrtest
.
b
[
1
:
1
][
1
:
2
][
1
:
2
],
arrtest
.
c
[
1
:
2
],
arrtest
.
d
[
1
:
1
][
1
:
2
]
FROM
arrtest
;
-- returns three different results--
SELECT
array_dims
(
arrtest
.
b
)
AS
x
;
-- returns nothing
SELECT
*
FROM
arrtest
WHERE
arrtest
.
a
[
1
]
<
5
and
arrtest
.
c
=
'{"foobar"}'
::
_char16
;
-- updating array subranges seems to be broken
--
-- UPDATE arrtest
-- SET a[1:2] = '{16,25}',
-- b[1:1][1:1][1:2] = '{113, 117}',
-- c[1:1] = '{"new_word"}';
SELECT
arrtest
.
a
[
1
:
3
],
arrtest
.
b
[
1
:
1
][
1
:
2
][
1
:
2
],
arrtest
.
c
[
1
:
2
],
arrtest
.
d
[
1
:
1
][
1
:
2
]
FROM
arrtest
;
--
-- expensive functions
--
src/test/regress/sql/tests
View file @
f9526f88
...
...
@@ -37,4 +37,6 @@ select_into
select_distinct
select_distinct_on
errors
btree_index
hash_index
misc
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment