split out a bunch more tests from misc.source so that the tester knows
what's being tested :)
This commit is contained in:
parent
cac554607f
commit
832c0a4ff1
@ -92,553 +92,6 @@ SELECT count(*) FROM onek where oidrand(onek.oid, 10);
|
||||
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
|
||||
--
|
||||
|
132
src/test/regress/sql/aggregates.sql
Normal file
132
src/test/regress/sql/aggregates.sql
Normal file
@ -0,0 +1,132 @@
|
||||
--
|
||||
-- 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';
|
||||
|
||||
--
|
||||
-- copy
|
||||
--
|
||||
COPY onek TO '_OBJWD_/results/onek.data';
|
||||
|
||||
DELETE FROM onek;
|
||||
|
||||
COPY onek FROM '_OBJWD_/results/onek.data';
|
||||
|
||||
SELECT unique1 FROM onek WHERE unique1 < 2;
|
||||
|
||||
DELETE FROM onek2;
|
||||
|
||||
COPY onek2 FROM '_OBJWD_/results/onek.data';
|
||||
|
||||
SELECT unique1 FROM onek2 WHERE unique1 < 2;
|
||||
|
||||
COPY BINARY stud_emp TO '_OBJWD_/results/stud_emp.data';
|
||||
|
||||
DELETE FROM stud_emp;
|
||||
|
||||
COPY BINARY stud_emp FROM '_OBJWD_/results/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);
|
||||
|
||||
--
|
||||
-- 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;
|
||||
|
159
src/test/regress/sql/alter_table.sql
Normal file
159
src/test/regress/sql/alter_table.sql
Normal file
@ -0,0 +1,159 @@
|
||||
--
|
||||
-- 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;
|
||||
|
168
src/test/regress/sql/portals.sql
Normal file
168
src/test/regress/sql/portals.sql
Normal file
@ -0,0 +1,168 @@
|
||||
--
|
||||
-- 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;
|
96
src/test/regress/sql/portals_p2.sql
Normal file
96
src/test/regress/sql/portals_p2.sql
Normal file
@ -0,0 +1,96 @@
|
||||
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;
|
30
src/test/regress/sql/purge.sql
Normal file
30
src/test/regress/sql/purge.sql
Normal file
@ -0,0 +1,30 @@
|
||||
--
|
||||
-- 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;
|
||||
|
11
src/test/regress/sql/select_views.sql
Normal file
11
src/test/regress/sql/select_views.sql
Normal file
@ -0,0 +1,11 @@
|
||||
--
|
||||
-- VIEW queries
|
||||
--
|
||||
-- test the views defined in create.source
|
||||
--
|
||||
SELECT * from street;
|
||||
|
||||
SELECT * from iexit;
|
||||
|
||||
SELECT * from toyemp where name='sharon';
|
||||
|
@ -1,18 +1,3 @@
|
||||
create_function_1
|
||||
create_type
|
||||
create_table
|
||||
create_function_2
|
||||
copy
|
||||
create_misc
|
||||
create_aggregate
|
||||
create_operator
|
||||
create_view
|
||||
create_index
|
||||
sanity_check
|
||||
timespan
|
||||
datetime
|
||||
reltime
|
||||
abstime
|
||||
boolean
|
||||
box
|
||||
char
|
||||
@ -31,12 +16,36 @@ oidname
|
||||
point
|
||||
polygon
|
||||
text
|
||||
timespan
|
||||
datetime
|
||||
reltime
|
||||
abstime
|
||||
tinterval
|
||||
create_function_1
|
||||
create_type
|
||||
create_table
|
||||
create_function_2
|
||||
copy
|
||||
create_misc
|
||||
create_aggregate
|
||||
create_operator
|
||||
create_view
|
||||
create_index
|
||||
sanity_check
|
||||
select
|
||||
select_into
|
||||
select_distinct
|
||||
select_distinct_on
|
||||
transactions
|
||||
portals
|
||||
errors
|
||||
btree_index
|
||||
hash_index
|
||||
aggregates.sql
|
||||
select_views.sql
|
||||
alter_table.sql
|
||||
purge.sql
|
||||
portals_p2.sql
|
||||
misc
|
||||
|
||||
|
||||
|
34
src/test/regress/sql/transactions.sql
Normal file
34
src/test/regress/sql/transactions.sql
Normal file
@ -0,0 +1,34 @@
|
||||
--
|
||||
-- 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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user